027-observation-and-proposals
Observation and proposals: noticing that a repository's governed truth changed, and proposing typed work without acting on it
Adds the transition this product lacks between "spec-spine says the repository means X" and "the operator is offered the work that follows". One observation reads exactly one commit through spec-spine's existing structured reports, reduces the answers to three closed projections, and compares them with the last observation recorded for that repository. Each semantic transition a built-in subscription names becomes a proposal with a deterministic identity, recorded in an append-only chain in the product home. A proposal is never executed by this spec: the operator admits it, admission re-derives its preconditions against the current commit, and an admitted proposal enters spec 003's existing run path with its cause recorded in the attempt's intent. No watcher, no loop, no automatic admission, and no change to spec-spine.
Read the full pinned specification ↗Relationships
Claimed units
- extends
{ "nature": "additive", "spec": "003-work-and-run-semantics", "unit": { "kind": "directory", "path": "crates/statecraft-run/" } } - extends
{ "nature": "additive", "spec": "006-command-surface", "unit": { "kind": "directory", "path": "crates/statecraft-cli/" } }
Source headings
- 027: Observation and proposals
- 1. Purpose
- 2. Territory
- 3. Behavior
- 3.1 An observation is of exactly one commit
- 3.2 A refused observation is recorded, not skipped
- 3.3 Three closed projections
- 3.4 Subscriptions are built in and closed
- 3.5 A proposal's identity is its cause, not its moment
- 3.6 Preconditions are re-derived at admission
- 3.7 The run record names its cause
- 3.8 The observation chain
- 3.9 Verbs
- 3.10 Internal seams
- 3.11 Observable negative cases
- 4. Out of scope
- 5. Resolved decisions
- Verification
Frozen anchors
No frozen anchors declared.