Repository navigation
2.1.0 - categorised doc bindings, coverage/bind/retire pipelines, and a generated docs map
LatestOSpec 2.1.0 extends the living-documentation engine from docs/features/ to every documentation category. Bindings can now be declared in docs/api/, docs/design/ and docs/project/ with <!-- ospec:doc <slug> code:... --> (same syntax and slug namespace as ospec:feature), and every binding carries a kind inferred from its path. Obligations become kind-aware: api sections follow the behaviour table, design decisions verify as verify_decision (still holds, or mark Superseded), project overviews verify as verify_structure, and planning/product documents stay reference-only. New onboarding and lifecycle tooling — docs coverage, the docs bind --plan/--execute/--verify pipeline, docs audit --stale and docs retire — brings existing projects under the engine and retires dead documents without ever plain-deleting them. Existing indexes upgrade losslessly; feature-catalog rows and all pre-2.1 behaviour are unchanged.
New
<!-- ospec:doc <slug> code:... -->declares a binding in any documentation category (docs/api/,docs/design/,docs/project/,docs/planning/,docs/product/), sharing one project-wide slug namespace withospec:feature; every binding and indexed document carries akindinferred from its path.- Kind-aware documentation obligations:
apisections follow the behaviour change_type table;design(ADR) sections generate a verification-typeverify_decisionunder every code change type — confirm the decision still holds, or mark the section Superseded;projectoverviews generateverify_structurethe same way;planning/productdocuments generate no obligation. A feature change cannot opt out of the documentation gate by declaring only reference-kind slugs. ospec docs coverage— the inverse ofdocs audit: lists the code areas no binding covers, busiest undocumented areas first, with archived-change evidence counts.ospec docs bind --plan/--execute/--verify— staged onboarding for existing projects: the engine inventories unbound documents and uncovered areas and suggests slug/heading/code from archives, modules and git co-change; a person adjudicatesdocs-binding-plan.json; the engine inserts declarations and draft skeletons mechanically (fence-aware, slug-collision-safe, never prose); a gate refuses while any entry is unadjudicated, unapplied, or still a draft.ospec docs audit --stale— deterministic staleness signals: dead bindings (everycode:path gone from disk), design documents whose every decision is superseded, and documents already markedstatus: deprecated(the retire queue).ospec docs retire— archival retirement: collectsstatus: deprecateddocuments, refuses one whose bindings still point at living code unless it namessuperseded_by, records a manifest row first, and moves the file intochanges/archived/retired-docs/— never a plain delete, and a re-retired path never clobbers its previous archive.docs/project/docs-map.md— a generated navigation map written on every index build: one line per indexed document, grouped by kind, linking relative todocs/project/with each document's binding count.
Improved
ospec index querynow searches section headings inside documents and answers withfile#heading, the same one-jump answer feature slugs already had.ospec docs locatelabels non-feature bindings with their kind (for examplemodule-web [api]), andospec changecandidate lists label api/design references worth reading before implementing.docs/project/feature-catalog.mdlabels non-feature rows in the status cell (for exampleactive · api); feature rows are byte-for-byte unchanged.ospec docs auditdrift entries carry the binding's kind.ospec layout migratemovesdocs/features/,docs/product/and the persistent engine state files (docs-binding-plan.json,docs-migration-plan.json,docs-migration.json) into the nested layout, and rewrites binding-plan entry paths into the nested index coordinates so adjudications survive the flip.- Classic change closeout whitelists the persistent docs plan/state files, so an adjudication- or migration-in-progress no longer blocks closeout as an out-of-scope dirty file.
Docs
- The change and execution protocols (en-US, zh-CN, ja-JP, ar) document the
ospec:docdeclaration, binding kinds, kind-aware obligation semantics, and the coverage/bind onboarding pipeline.
Upgrade
npm install -g @clawplays/ospec-cli@2.1.0
ospec updateFull Changelog: 2.0.2...2.1.0