Skip to content

Work Plan: Product and Component Governance Moves to Venture Repositories

Objective

Resolve the "product registry status" open question by implementing the Founder's direct architectural directive: this governance repository's authority over a venture ends at the venture's existence (name, purpose, scope, target markets, legal structure); everything about what a venture actually builds (product specs, decisions, registry/lifecycle status, backlog, reusable-component content) moves entirely into that venture's own implementation repository.

Scope

  • New company-level ADR (ADR-0017) recording the decision.
  • Rewrite docs/architecture/company-venture-product-model.md's Product/Component layers and fix its stale reference to the superseded ADR-0007 boundary framing.
  • Rewrite portfolio/intake-and-stage-gates.md's registration step.
  • Update templates/implementation-repository/ (both AGENTS.md and docs/ai/README.md) with the product-registration convention, so every future venture inherits it automatically.
  • Reduce portfolio/product-registry.json to a pure cross-venture table of contents, populated from devonside-labs' two products; fix portfolio/repository-registry.json's stale "no product has cleared discovery" note.
  • Retire (not delete) ventures/digital-products/components/component-catalog.md (status: deprecated); remove its now-purposeless category subdirectories and _template/; rewrite components/README.md.
  • Remove ventures/digital-products/products/llc-accounting-tracker/ and products/_template/, after migrating the two files with real, non-duplicated content into devonside-labs.
  • Remove ventures/digital-products/portfolio/product-backlog.md, after migrating it verbatim into devonside-labs.
  • Remove ventures/shelfery/product/ (verified zero real content first — pure removal, no migration needed).
  • Remove the products/ scaffold from ventures/_template/ itself, so future ventures don't inherit the retired pattern.
  • Fix every cross-reference to all of the above found across both ventures' documentation, the root-level docs (README.md, CONTRIBUTING.md, scripts/README.md), the create-product.md/new-product.md prompt and slash command, and scripts/create_product.py (marked retired, not deleted — its test coverage uses tempfile fixtures, unaffected).
  • Companion changes in devonside-labs: product.json for both products, migrated product-backlog.md and the two real files from the governance repo, resolved open question, recorded decision.

Out of scope

  • Fully rewriting Shelfery's stale pre-implementation architecture docs (ventures/shelfery/docs/architecture/README.md, system-context.md) beyond fixing the specific dangling product/ references and flagging the broader staleness with a note — that's a separate, larger task.
  • Rewriting scripts/create_product.py's logic or deleting it and its test — marked retired via docstring/README note instead, to avoid cascading into tests/test_create_product.py and related doc updates for a script with no remaining valid use case but working test coverage.
  • Any change to company-level or venture-level policy content (brand, strategy, standards substance) beyond what's needed to reflect this restructuring.

Applicable authority

  • Founder's direct instruction (this session, 2026-07-27), following from the "product registry status" open question raised in devonside-labs.
  • docs/decisions/ADR-0014-venture-implementation-repositories-are-the-default-pattern.md (the boundary this extends).
  • ventures/digital-products/docs/decisions/DD-DIGPROD-ADR-0003-product-specs-live-in-implementation-repository.md (the same-day, narrower precursor this generalizes venture-wide).
  • docs/standards/archival-and-retention-standard.md (governs how the component catalog is retired — status: deprecated, not deleted).

Files expected to change

See Scope above; touches both devonshire-digital and devonside-labs. Full list is the diff this plan ships with, not restated here — over 40 files across both repositories.

Assumptions

  • "Retire" (the Founder's word for the component catalog) means deprecate-in-place per this repo's own retention standard, not silent deletion — confirmed consistent with how ADRs and other deprecated content are already handled here.
  • The two ventures (Digital Products, Shelfery) should be treated consistently — confirmed explicitly by the Founder ("Yes clean up Shelfery as well").
  • product-specification-standard.md stays at governance level as the full 16-section baseline (not narrowed to NFRs only) — confirmed by the Founder's "your proposal works" after a clarifying question.

Risks

  • Large surface area increases the chance of a missed cross-reference. Mitigated by running python scripts/check.py's link validator repeatedly during the change and a final manual grep sweep for the retired path patterns beyond what the link validator alone catches (plain-prose mentions, not just markdown links).
  • Two files in the removed products/llc-accounting-tracker/ folder held real, non-duplicated content (product-brief.md's market/customer framing, assets/source-requirements-2026-07-12.md). Mitigated by migrating both into devonside-labs before deleting the governance-repo originals, verified by content diff during migration, not after.

Validation plan

  • python scripts/check.py (all four validators) after every structural change, and again at the end.
  • python -m unittest discover tests at the end.
  • Manual grep sweep across both repositories for the retired path patterns, excluding historical/archived records (which intentionally retain the old references with a dated correction note per the retention standard).

Progress checklist

  • [x] ADR-0017 written and approved (Founder, same session).
  • [x] company-venture-product-model.md rewritten.
  • [x] intake-and-stage-gates.md rewritten.
  • [x] templates/implementation-repository/ updated (registration convention).
  • [x] portfolio/product-registry.json reduced to table of contents, populated.
  • [x] portfolio/repository-registry.json stale note fixed.
  • [x] Component catalog deprecated; category subdirectories and _template/ removed; components/README.md rewritten.
  • [x] products/llc-accounting-tracker/ and products/_template/ removed, after migrating real content to devonside-labs.
  • [x] portfolio/product-backlog.md removed, after migrating to devonside-labs.
  • [x] ventures/shelfery/product/ removed; cross-references fixed (AGENTS.md, context-loading.md, implementation-alignment.md, architecture README.md and system-context.md, product-principles.md, roadmap.md, ADR-0010's follow-up, the 2026-07-11 reconciliation work plan).
  • [x] ventures/_template/products/ removed; its own cross-references fixed (AGENTS.md, docs/ai/context-loading.md, docs/architecture/README.md, docs/decisions/README.md, README.md).
  • [x] Root-level fallout fixed: README.md, CONTRIBUTING.md, scripts/README.md, .claude/commands/new-product.md, prompts/create-product.md, scripts/create_product.py (deprecation docstring), templates/product-brief-template.md.
  • [x] devonside-labs companion changes: product.json × 2, migrated product-backlog.md, migrated market-and-positioning.md + source-requirements-2026-07-12.md, resolved open question, decision recorded, roadmap.md/READMEs corrected.
  • [x] python scripts/check.py passing.
  • [x] python -m unittest discover tests passing (38/38).
  • [x] Commit and push both repositories.
  • [x] Archive this plan to work/archive/ once pushed.

Decisions required

None outstanding — every judgment call in this restructuring (retire vs. migrate the component catalog; Shelfery in-scope; product-specification-standard.md scope) was made directly by the Founder in the conversation that produced this plan.

Handoff notes

Complete pending the final commit/push (tracked in the checklist above). If picked up mid-flight: run python scripts/check.py first — if it's green, the structural work is done and only the commit/push/archive steps remain. The devonside-labs side is a separate repository and separate commit; both need to land for this restructuring to be consistent (a devonshire-digital-only commit would leave devonside-labs' docs pointing at a state that doesn't exist yet, and vice versa).


Report an issue about this page