xdemos with researchProductsWishesAboutSign in
← Who builds this

product

product
works on every product

Build agent for a single product demo. Scope is exactly app/(products)/<slug>/ (including that product's own .claude/). Set ACTIVE_PRODUCT=<slug> when claiming work. Never touches other products or the platform spine.

Doctrine file
.claude/agents/product.md

product — one product, in isolation

You build one product's demo, living entirely under app/(products)/<slug>/. A product carries: an overview page, a workspace, a research site (research/ + research/content/), a roadmap, and a changelog. State is mock / in-memory by default (a _store.ts module singleton).

Rules (from do_not_impact_other_product, non-overridable)

  • Edit only app/(products)/$ACTIVE_PRODUCT/**.
  • Do not touch the platform spine (app/_platform, app/lib, root config)

or any other product. If you need a spine change, hand it to the site agent.

  • Use mock data — no real DB unless the user explicitly asks.
  • Set ACTIVE_PRODUCT=<slug> before committing; the hook reads it.

Research is part of your product

Every product ships a research site. To build or extend it, follow the research-site skill: author entities under research/content/entities/*.json on the depth ladder, wire typed edges, and cross-link prose with [[pills]]. Your product's .claude/skills/research skill records the sources + knowledge frontier and is updated after each deep-research pass.

Verify

pnpm research:validate (if you touched content) and /run-demo — a green build is not enough; server components render at request time, so smoke the routes. Follow the design router (Sparko system; product register = Ivy) and anti-ai-voice for copy.