/rite-clarify: resolve product decisions
Run this required pass between spec and strategy. If the spec covers every material
decision, ask no questions. Otherwise stay until each material decision has an
owner. This phase settles behavior and constraints; /rite-define settles
implementation.
Reuse devrites-interview in /clarify mode. Write
decision-coverage.md as scan evidence, not an interview transcript.
Rules consulted
Read core.md, its afk-hitl.md, and
reference/decision-coverage.md. Fresh evidence
dispatch uses
agents.md.
Rules
- Search code/docs/contracts first. Facts and reversible implementation/test choices
are agent-owned; ask only about product, scope, policy, irreversible risk, or human-only access.
- Enumerate the full topology before details so no sibling surface is omitted.
- Ask one coherent human-owned decision packet at a time. One packet may close several rows
only when owner and trade-off match; never ask permission for routine repair/retry.
- One scan may cap at five packets for cognitive load, but readiness has no question cap:
re-scan until clear.
- Material assumptions carry evidence, confidence, owner, validation, and consequence.
Workflow
- Orient. Read
.devrites/ACTIVE, state.md, and spec.md. Require
Spec gate: passed; otherwise stop at /rite-spec. Apply the native cursor
protocol below before changing workspace artifacts.
- Enumerate the topology. From the spec, live code, contracts, references,
and recorded decisions, list every material stakeholder/priority, invariant, actor,
journey/component, state, data lifecycle, integration, failure/recovery path,
operation, proof surface, applicability row, and must-NOT boundary.
- Scan coverage. Apply
devrites-interview in clarify mode and mark each
material surface Clear, Partial, Missing, not-applicable, or justified
deferred-nonblocking with evidence and an owner. Use native repository search
first. Ask the host to run devrites-evidence-scout only for a bounded missing
fact, then reconcile its cited result.
- Close decisions. Record facts and reversible technical choices directly.
Ask one coherent option packet only for product, scope, policy, irreversible
risk, or human-only access. Persist answers in the owning artifacts and repeat
the scan until no blocking Partial/Missing row or unowned material assumption
remains.
- Write the verdict. Write
Decision coverage: CLEAR only after re-reading all inputs and confirming
every material row has current evidence and an owner. Normal flow sets phase=clarify and
next_action=/rite-temper. A low-stakes spec — the significance trigger temper itself
skips (rite-temper step 1) — sets next_action=/rite-define instead. A contract-neutral later-phase return uses
the native restore below; changed behavior or acceptance routes to
/rite-plan repair instead. Stop without starting the next phase.
Native clarify cursor protocol
The controlling root edits only cursor rows in state.md; it must preserve unrelated Markdown and the file's existing table/bullet presentation.
- Normal entry from Spec: set
phase=clarify, status=running, and
next_action=/rite-clarify <slug>; omit both return fields.
- Already in Clarify: no-op. Do not overwrite an existing valid return
cursor.
- Later-phase entry: only
temper, define, plan, vet, build,
converge, prove, polish, review, seal, or ship may return. First
copy the current phase and non-empty next_action to return_phase and
return_next_action; then set phase=clarify, status=running, and
next_action=/rite-clarify <slug>. Missing/unknown cursor values fail closed
before any write.
- Contract-neutral restore: after a fresh
Decision coverage: CLEAR, require
phase=clarify, both return fields, a recognized later return_phase, and a
non-empty return_next_action. Restore those values to phase and
next_action, set status=running, and remove both return fields in the same
rewrite. Re-read the cursor and confirm the return rows are absent.
- Contract changed: do not restore the saved cursor. Record drift and route
through
/rite-plan repair, which owns the changed plan and next action.
Never normalize or rewrite the rest of state.md while applying this protocol.
Output
Done: decision coverage closed for <slug>; <n> topology surfaces scanned.
Changed: decision-coverage.md, spec.md, decisions.md, assumptions.md, questions.md
Evidence: Decision coverage: CLEAR; human packets <n>; agent-owned facts <n>
Open: none blocking; deferred-nonblocking <n>
Next: /rite-temper (or /rite-define for a low-stakes spec temper skips)
Record: .devrites/work/<slug>/decision-coverage.md
↻ Hygiene: /clear before /rite-temper (or /rite-define)
If not clear, name the exact rows and next genuine decision packet. An objective spec defect
or factual search task never routes through /rite-resolve.
1---2name: rite-clarify3description: Audit a completed spec for missing decisions before strategy or architecture. Use after /rite-spec when coverage is incomplete or stale; not for spec writing.4---56# /rite-clarify: resolve product decisions78Run this required pass between spec and strategy. If the spec covers every material9decision, ask no questions. Otherwise stay until each material decision has an10owner. This phase settles behavior and constraints; `/rite-define` settles11implementation.1213Reuse [`devrites-interview`](../devrites-interview/SKILL.md) in `/clarify mode`. Write14`decision-coverage.md` as scan evidence, not an interview transcript.1516## Rules consulted1718Read [`core.md`](../devrites-lib/reference/standards/core.md), its `afk-hitl.md`, and19[`reference/decision-coverage.md`](reference/decision-coverage.md). Fresh evidence20dispatch uses21[`agents.md`](../devrites-lib/reference/standards/agents.md).2223## Rules2425- Search code/docs/contracts first. Facts and reversible implementation/test choices26 are agent-owned; ask only about product, scope, policy, irreversible risk, or human-only access.27- Enumerate the full topology before details so no sibling surface is omitted.28- Ask one coherent human-owned decision packet at a time. One packet may close several rows29 only when owner and trade-off match; never ask permission for routine repair/retry.30- One scan may cap at five packets for cognitive load, but readiness has no question cap:31 re-scan until clear.32- Material assumptions carry evidence, confidence, owner, validation, and consequence.3334## Workflow35361. **Orient.** Read `.devrites/ACTIVE`, `state.md`, and `spec.md`. Require37 `Spec gate: passed`; otherwise stop at `/rite-spec`. Apply the native cursor38 protocol below before changing workspace artifacts.392. **Enumerate the topology.** From the spec, live code, contracts, references,40 and recorded decisions, list every material stakeholder/priority, invariant, actor,41 journey/component, state, data lifecycle, integration, failure/recovery path,42 operation, proof surface, applicability row, and must-NOT boundary.433. **Scan coverage.** Apply `devrites-interview` in clarify mode and mark each44 material surface Clear, Partial, Missing, not-applicable, or justified45 deferred-nonblocking with evidence and an owner. Use native repository search46 first. Ask the host to run `devrites-evidence-scout` only for a bounded missing47 fact, then reconcile its cited result.484. **Close decisions.** Record facts and reversible technical choices directly.49 Ask one coherent option packet only for product, scope, policy, irreversible50 risk, or human-only access. Persist answers in the owning artifacts and repeat51 the scan until no blocking Partial/Missing row or unowned material assumption52 remains.535. **Write the verdict.** Write `Decision coverage: CLEAR` only after re-reading all inputs and confirming54 every material row has current evidence and an owner. Normal flow sets `phase=clarify` and55 `next_action=/rite-temper`. A low-stakes spec — the significance trigger temper itself56 skips (rite-temper step 1) — sets `next_action=/rite-define` instead. A contract-neutral later-phase return uses57 the native restore below; changed behavior or acceptance routes to58 `/rite-plan repair` instead. Stop without starting the next phase.5960## Native clarify cursor protocol6162The controlling root edits only cursor rows in `state.md`; it must preserve unrelated Markdown and the file's existing table/bullet presentation.6364- **Normal entry from Spec:** set `phase=clarify`, `status=running`, and65 `next_action=/rite-clarify <slug>`; omit both return fields.66- **Already in Clarify:** no-op. Do not overwrite an existing valid return67 cursor.68- **Later-phase entry:** only `temper`, `define`, `plan`, `vet`, `build`,69 `converge`, `prove`, `polish`, `review`, `seal`, or `ship` may return. First70 copy the current `phase` and non-empty `next_action` to `return_phase` and71 `return_next_action`; then set `phase=clarify`, `status=running`, and72 `next_action=/rite-clarify <slug>`. Missing/unknown cursor values fail closed73 before any write.74- **Contract-neutral restore:** after a fresh `Decision coverage: CLEAR`, require75 `phase=clarify`, both return fields, a recognized later `return_phase`, and a76 non-empty `return_next_action`. Restore those values to `phase` and77 `next_action`, set `status=running`, and remove both return fields in the same78 rewrite. Re-read the cursor and confirm the return rows are absent.79- **Contract changed:** do not restore the saved cursor. Record drift and route80 through `/rite-plan repair`, which owns the changed plan and next action.8182Never normalize or rewrite the rest of `state.md` while applying this protocol.8384## Output8586```text87Done: decision coverage closed for <slug>; <n> topology surfaces scanned.88Changed: decision-coverage.md, spec.md, decisions.md, assumptions.md, questions.md89Evidence: Decision coverage: CLEAR; human packets <n>; agent-owned facts <n>90Open: none blocking; deferred-nonblocking <n>91Next: /rite-temper (or /rite-define for a low-stakes spec temper skips)92Record: .devrites/work/<slug>/decision-coverage.md93↻ Hygiene: /clear before /rite-temper (or /rite-define)94```9596If not clear, name the exact rows and next genuine decision packet. An objective spec defect97or factual search task never routes through `/rite-resolve`.