spec-spine registry
Typed read-only queries against the compiled registry.
Usage
spec-spine registry list [--status S] [--ids-only] [--json]
spec-spine registry show <id> [--json]
spec-spine registry status-report [--nonzero-only] [--json]
spec-spine registry relationships <id> [--json]
spec-spine registry plan [--json]
Subcommands
registry list
Lists specs from the committed registry.
--status S: Filter by status (draft,approved,superseded,retired).--ids-only: Print only the spec IDs, one per line.--json: Output as JSON.
registry show <id>
Shows the details of a single spec.
--json: Output as JSON.
registry status-report
Shows counts of specs by their lifecycle status.
--nonzero-only: Omit statuses with a count of zero.--json: Output as JSON.
registry relationships <id>
Shows the relationship neighborhood (incoming and outgoing edges) for a specific spec.
--json: Output as JSON.
registry plan
The ready set (spec 038): which specs a scheduler may hand out now, and what blocks the rest.
- Excluded from the output entirely:
statusissupersededorretired, orimplementationiscomplete,n-aordeferred. A spec with noimplementationkey counts aspending. - Blocked: at least one
depends_ontarget is not finished (neithercompletenorn-a). Each blocker is named with itsstate; adepends_ontarget that does not resolve to a spec blocks withstate: "unresolved"rather than being ignored. - Ready: everything else, in dependency (topological) order, ties broken by id.
implementation is a hint to the scheduler, never evidence that a spec is done; the evidence is the indexer's verdict, recorded by attest --spec. See Lifecycle and Completion.
--json: Output{ "ready": [ids], "blocked": [{ "id", "blockedBy": [{ "id", "state" }] }] }.
Exit Codes
0: OK.1: Spec ID or view not found.3: I/O, parse, schema, or config error.
Example
$ spec-spine registry list --status approved --ids-only
000-bootstrap
001-compile-registry
002-registry-query
$ spec-spine registry plan
045-next-thing
ready: 1, blocked: 0