Skip to content

T-UE7T-reference-entity-package

Status: closed/done · Impact: medium · Complexity: medium

Ship the substrate for D-0009-reference-entity-and-docs-appendix’s reference type: the entity package, the RF identifier row, and the registry amendments — so external sources can be minted as first-class entities. Pure addition; unblocks every later phase.

LocationRole today
plugin/lib/model/entities/term/The model package this one mirrors — schema, S-0005 definition, body manifest, template, create op
plugin/lib/model/identifier.tsPREFIXES registry — no RF row, so the identifier gate skips docs/planning/references/
docs/planning/decisions/D-0002-entity-identifier-shape.mdPrefix table reserves R for Requirement; no Reference row
docs/planning/decisions/D-ORMG-data-model.mdRoster carries Evidence as deferred; no Reference row

sdlc reference create <slug> --title <name> [--url <url>] mints validating RF-NNNN instances under docs/planning/references/; audit/validate/migrate/setup cover the type with zero wiring; D-0002 and D-ORMG carry the row. Frontmatter and body shape per D-0009 §2: optional url (format: uri), Summary required with ^summary, Material/Notes optional.

  1. Mirror the term package into plugin/lib/model/entities/reference/: schema.json (RF id pattern, status enum open/draft|open/active|closed/retired default open/active, optional url with format: uri, related as cited-by), body-schema.yaml (Summary required with ^summary guidance; Material, Notes optional), body-template.eta, definition.md per S-0005.
  2. ops/create.tsdefineOp({ path: ["reference", "create"] }), positional slug, flags title/-t, url, related repeatable; delegate to runCreate.
  3. PREFIXES row { RF, Reference, references, incrementing } after Term.
  4. Amend D-0002’s prefix table and D-ORMG’s roster (Reference row in the Planning-meta layer; Evidence row notes the curated-catalog slice is now Reference’s).
  5. Re-snapshot help goldens; update the unknown-noun choice list, setup dir count, and ops_create tests.
LocationKindChange
plugin/lib/model/entities/reference/schema.jsonnewRF frontmatter contract
plugin/lib/model/entities/reference/definition.mdnewS-0005 companion definition
plugin/lib/model/entities/reference/body-schema.yamlnewSummary/Material/Notes manifest
plugin/lib/model/entities/reference/body-template.etanewInstance skeleton
plugin/lib/model/entities/reference/ops/create.tsnewsdlc reference create
plugin/lib/model/identifier.tsmodifyPREFIXES gains the RF row
docs/planning/decisions/D-0002-entity-identifier-shape.mdmodifyPrefix table gains the Reference row
docs/planning/decisions/D-ORMG-data-model.mdmodifyRoster row + Evidence note
plugin/cli/tests/goldens/modifyHelp goldens re-snapshot (reference noun)
plugin/lib/tests/ops_create.test.tsmodifyReference create coverage
plugin/lib/services/project/tests/ops.test.tsmodifySetup dir count 10 → 11
  • AC-1: sdlc reference create obsidian-bases --title "Obsidian Bases" --url https://help.obsidian.md/bases writes an instance that passes sdlc entities validate.
  • AC-2: sdlc project setup creates docs/planning/references/; sdlc entities audit discovers the type.
  • AC-3: The commit-time identifier gate flags a misnamed file under docs/planning/references/.
  • AC-4: Full test battery green (bun test incl. goldens).
  • The references artifact and index Appendix (T-FPSR).
  • Site work (T-8YB9, T-E2B1) and the seed corpus (T-XUTL).

← Back to Tasks