| name | new-product-domain |
| description | Author a complete, balanced, realistic product domain from scratch under _config/product-domains/<domain>/ โ framing, customers, strategy, products/deployment, product bricks, streams, data assets, teams, competition, and evidence โ in the right dependency order, with cross-file references kept consistent and docs regenerated. Use when creating a brand-new domain end-to-end, not editing one artifact. Orchestrates the edit-* skills and the validate/audit gates. |
New Product Domain (orchestrator)
End-to-end workflow for building a whole domain. It composes the per-artifact edit-*
skills in dependency order so cross-file references resolve as you go, and gates the
result with validate-domain and audit-domain-balance. Read
.claude/skills/_references/domain-model.md first.
This is a large, multi-step task โ track it with a task list and build incrementally,
validating after each artifact rather than at the end.
Before starting
- Inspect two comparable existing domains and the reference
ride-sharing-marketplace
for shape and density. Copy its structure, not its content.
- Targets for a mature domain: ~4 customer groups with real personas, 20+ bricks
across 3 group levels, 15+ data assets, 8+ teams, 8+ competitors, 8+ sourced
insights. A smaller domain is fine if intentional โ say so.
- The new-domain prompt scaffold lives next to this skill:
.claude/skills/new-product-domain/NEW-DOMAIN-PROMPT.md.
Build order (dependencies flow downward)
Author top-to-bottom; later artifacts reference earlier IDs, so this order keeps
references resolvable.
- Frame & register โ
set-domain-strategy
_domain/DOMAIN.md, start/config.json (creating start/config.json
registers the domain โ run.sh discovers domains from the config tree).
Decide scope, value exchange, vision, 1/3/5-year horizons.
- Customers โ
edit-customers
- Groups, personas, JTBD, journeys, KPI pyramids, per-customer productStrategy,
insights.json. Establishes customer ids + KPI names everything else reuses.
- Product bricks โ
edit-product-bricks
- Root groups โ subgroups โ 20+ bricks with layered modules and dependencies.
Establishes brick ids.
- Streams โ
edit-streams
- Outcome streams + flows over the bricks; reconcile with JTBD
streamsNeeded.
- Data assets โ
edit-data-assets
- Assets + stores + governance; wire
dataDependencies from bricks (back-edit
bricks if needed).
- Products & deployment โ
edit-products
- Portfolio, interfaces,
neededBricks, and deployment.json channels/environments;
reference customer ids and brick ids.
- Teams โ
edit-teams
- Org groups + teams; assign every brick to exactly one owning team; wire
primary customers and data-asset
ownerTeamId back-references.
- Competition โ
edit-competition
- Sourced landscape with official URLs.
- Attach evidence to key bricks/streams.
Reference-integrity pass (do this before declaring done)
Walk the spine and confirm it's unbroken (this is exactly what audit-domain-balance
checks):
customer โ JTBD โ stream/brick โ product.neededBricks โ deployment โ team.ownedBricks,
plus insight โ linkedCustomers, brick.dataDependencies โ asset, asset.ownerTeamId โ team. No orphan bricks, no unowned bricks, no dangling customer/asset/channel refs,
KPI names consistent everywhere.
Validate & generate
python3 .claude/skills/scripts/validate-domain-model.py <domain-id> --strict-ids
โ fix every error.
python3 .claude/skills/scripts/validate-skills.py is for the skill
library itself, not domains โ skip unless editing skills.
- Regenerate all docs for the domain: from
_wiring/product-domains/, set
run ./run-one.sh <domain-id> (start โ customers โ products โ
product-bricks โ teams โ competition, in fixed order).
- Run
audit-domain-balance <domain-id> and resolve P1 findings before calling the
domain done.
Report
Summarize: scope/boundary, counts per artifact vs the mature targets, the integrity
result, the audit verdict (skeletal/partial/mature), and any intentional gaps.