062-one-name-one-freshness-verb
One name for the protocol, one verb for freshness
The session protocol is ambiguous in two places and both are collisions with its own neighbours. Its entry point is named `/init`, which is also a Claude Code built-in meaning the opposite thing (one-time, repository-level, and it writes) and also `spec-spine init`, which means a third thing again. And it asks one question, whether the committed state is current, in two spellings: `compile --check` is a flag and `index check` is a subcommand, so the protocol, the hook, the skills and CI each have to spell both. This spec renames the skill to `/prime` with no alias, and adds `spec-spine check`, an additive top-level verb that runs both freshness reads, reports each tree separately, and composes one exit code. Nothing is removed: both primitives keep their flags, their tests and their contracts, and CI may still call one when it regenerated only one tree.
Read the full pinned specification ↗Relationships
depends on
depended on by
Claimed units
- establishes
{ "kind": "file", "path": "crates/spec-spine-cli/src/cmd_check.rs" } - extends
{ "nature": "additive", "spec": "001-compile-registry", "unit": { "kind": "file", "path": "crates/spec-spine-cli/src/main.rs" } } - extends
{ "nature": "additive", "spec": "001-compile-registry", "unit": { "kind": "file", "path": "crates/spec-spine-core/src/lib.rs" } } - extends
{ "nature": "additive", "spec": "001-compile-registry", "unit": { "kind": "file", "path": "crates/spec-spine-cli/tests/cli.rs" } } - extends
{ "nature": "additive", "spec": "034-machine-readable-verdicts", "unit": { "kind": "file", "path": "crates/spec-spine-types/src/verdict.rs" } } - extends
{ "nature": "superseding", "spec": "093-the-harness-this-repository-runs", "unit": { "kind": "file", "path": ".claude/skills/" } } - extends
{ "nature": "additive", "spec": "093-the-harness-this-repository-runs", "unit": { "kind": "file", "path": "AGENTS.md" } } - extends
{ "nature": "additive", "spec": "093-the-harness-this-repository-runs", "unit": { "kind": "file", "path": ".claude/settings.json" } } - extends
{ "nature": "additive", "spec": "044-index-diagnostics-reach-a-gate", "unit": { "kind": "file", "path": "crates/spec-spine-core/src/diagnostics.rs" } } - extends
{ "nature": "additive", "spec": "094-one-gate-and-the-boundaries-it-holds", "unit": { "kind": "file", "path": "crates/spec-spine-core/tests/gate.rs" } } - extends
{ "nature": "additive", "spec": "093-the-harness-this-repository-runs", "unit": { "kind": "file", "path": "crates/spec-spine-core/tests/harness_skills.rs" } } - extends
{ "nature": "additive", "spec": "093-the-harness-this-repository-runs", "unit": { "kind": "file", "path": "crates/spec-spine-core/tests/harness_hooks.rs" } } - extends
{ "nature": "additive", "spec": "094-one-gate-and-the-boundaries-it-holds", "unit": { "kind": "file", "path": ".github/workflows/ci.yml" } } - extends
{ "nature": "additive", "spec": "093-the-harness-this-repository-runs", "unit": { "kind": "file", "path": ".claude/agents/" } } - extends
{ "nature": "additive", "spec": "057-the-docs-name-what-adopters-derived", "unit": { "kind": "file", "path": "docs/adoption-guide.md" } }
Source headings
- 062: One name for the protocol, one verb for freshness
- 1. Purpose
- 2. Territory
- 3. Behavior
- 3.1 The session skill is `/prime`, with no alias
- 3.2 `spec-spine check` answers the freshness question once
- 3.3 One exit code, composed in a pinned order
- 3.4 Each tree's report passes through unchanged
- 3.5 Every consumer calls the composed verb
- 4. Out of scope
- 5. Resolved decisions
- Verification
Frozen anchors
No frozen anchors declared.