@ritualai/cli 0.11.0 → 0.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. package/dist/commands/doctor.js +59 -23
  2. package/dist/commands/doctor.js.map +1 -1
  3. package/dist/commands/init.js +35 -0
  4. package/dist/commands/init.js.map +1 -1
  5. package/dist/commands/uninstall.js +114 -0
  6. package/dist/commands/uninstall.js.map +1 -0
  7. package/dist/index.js +10 -0
  8. package/dist/index.js.map +1 -1
  9. package/dist/lib/agents/providers.js +44 -4
  10. package/dist/lib/agents/providers.js.map +1 -1
  11. package/dist/lib/memory-update.js +158 -0
  12. package/dist/lib/memory-update.js.map +1 -0
  13. package/dist/lib/uninstall-plan.js +102 -0
  14. package/dist/lib/uninstall-plan.js.map +1 -0
  15. package/package.json +1 -1
  16. package/skills/claude-code/ritual/.ritual-bundle.json +2 -2
  17. package/skills/claude-code/ritual/SKILL.md +14 -11
  18. package/skills/claude-code/ritual/manifest.json +0 -5
  19. package/skills/claude-code/ritual/references/async-polling.md +5 -5
  20. package/skills/claude-code/ritual/references/brief-verification-checklist.md +12 -6
  21. package/skills/claude-code/ritual/references/build-flow.md +569 -581
  22. package/skills/claude-code/ritual/references/change-preflight.md +81 -0
  23. package/skills/claude-code/ritual/references/cli-output-contract.md +44 -28
  24. package/skills/claude-code/ritual/references/context-pulse-flow.md +0 -1
  25. package/skills/claude-code/ritual/references/lite-flow.md +2750 -0
  26. package/skills/claude-code/ritual/references/resume-flow.md +1 -1
  27. package/skills/claude-code/ritual/references/scoring-fallback.md +1 -1
  28. package/skills/codex/ritual/.ritual-bundle.json +2 -2
  29. package/skills/codex/ritual/SKILL.md +14 -11
  30. package/skills/codex/ritual/manifest.json +0 -5
  31. package/skills/codex/ritual/references/async-polling.md +5 -5
  32. package/skills/codex/ritual/references/brief-verification-checklist.md +12 -6
  33. package/skills/codex/ritual/references/build-flow.md +569 -581
  34. package/skills/codex/ritual/references/change-preflight.md +81 -0
  35. package/skills/codex/ritual/references/cli-output-contract.md +44 -28
  36. package/skills/codex/ritual/references/context-pulse-flow.md +0 -1
  37. package/skills/codex/ritual/references/lite-flow.md +2750 -0
  38. package/skills/codex/ritual/references/resume-flow.md +1 -1
  39. package/skills/codex/ritual/references/scoring-fallback.md +1 -1
  40. package/skills/cursor/ritual/.ritual-bundle.json +2 -2
  41. package/skills/cursor/ritual/SKILL.md +14 -11
  42. package/skills/cursor/ritual/manifest.json +0 -5
  43. package/skills/cursor/ritual/references/async-polling.md +5 -5
  44. package/skills/cursor/ritual/references/brief-verification-checklist.md +12 -6
  45. package/skills/cursor/ritual/references/build-flow.md +569 -581
  46. package/skills/cursor/ritual/references/change-preflight.md +81 -0
  47. package/skills/cursor/ritual/references/cli-output-contract.md +44 -28
  48. package/skills/cursor/ritual/references/context-pulse-flow.md +0 -1
  49. package/skills/cursor/ritual/references/lite-flow.md +2750 -0
  50. package/skills/cursor/ritual/references/resume-flow.md +1 -1
  51. package/skills/cursor/ritual/references/scoring-fallback.md +1 -1
  52. package/skills/gemini/ritual/.ritual-bundle.json +2 -2
  53. package/skills/gemini/ritual/SKILL.md +14 -11
  54. package/skills/gemini/ritual/manifest.json +0 -5
  55. package/skills/gemini/ritual/references/async-polling.md +5 -5
  56. package/skills/gemini/ritual/references/brief-verification-checklist.md +12 -6
  57. package/skills/gemini/ritual/references/build-flow.md +569 -581
  58. package/skills/gemini/ritual/references/change-preflight.md +81 -0
  59. package/skills/gemini/ritual/references/cli-output-contract.md +44 -28
  60. package/skills/gemini/ritual/references/context-pulse-flow.md +0 -1
  61. package/skills/gemini/ritual/references/lite-flow.md +2750 -0
  62. package/skills/gemini/ritual/references/resume-flow.md +1 -1
  63. package/skills/gemini/ritual/references/scoring-fallback.md +1 -1
  64. package/skills/kiro/ritual/.ritual-bundle.json +2 -2
  65. package/skills/kiro/ritual/SKILL.md +14 -11
  66. package/skills/kiro/ritual/manifest.json +0 -5
  67. package/skills/kiro/ritual/references/async-polling.md +5 -5
  68. package/skills/kiro/ritual/references/brief-verification-checklist.md +12 -6
  69. package/skills/kiro/ritual/references/build-flow.md +569 -581
  70. package/skills/kiro/ritual/references/change-preflight.md +81 -0
  71. package/skills/kiro/ritual/references/cli-output-contract.md +44 -28
  72. package/skills/kiro/ritual/references/context-pulse-flow.md +0 -1
  73. package/skills/kiro/ritual/references/lite-flow.md +2750 -0
  74. package/skills/kiro/ritual/references/resume-flow.md +1 -1
  75. package/skills/kiro/ritual/references/scoring-fallback.md +1 -1
  76. package/skills/vscode/ritual/.ritual-bundle.json +2 -2
  77. package/skills/vscode/ritual/SKILL.md +14 -11
  78. package/skills/vscode/ritual/manifest.json +0 -5
  79. package/skills/vscode/ritual/references/async-polling.md +5 -5
  80. package/skills/vscode/ritual/references/brief-verification-checklist.md +12 -6
  81. package/skills/vscode/ritual/references/build-flow.md +569 -581
  82. package/skills/vscode/ritual/references/change-preflight.md +81 -0
  83. package/skills/vscode/ritual/references/cli-output-contract.md +44 -28
  84. package/skills/vscode/ritual/references/context-pulse-flow.md +0 -1
  85. package/skills/vscode/ritual/references/lite-flow.md +2750 -0
  86. package/skills/vscode/ritual/references/resume-flow.md +1 -1
  87. package/skills/vscode/ritual/references/scoring-fallback.md +1 -1
  88. package/skills/claude-code/ritual/references/discovery-classification.md +0 -175
  89. package/skills/codex/ritual/references/discovery-classification.md +0 -175
  90. package/skills/cursor/ritual/references/discovery-classification.md +0 -175
  91. package/skills/gemini/ritual/references/discovery-classification.md +0 -175
  92. package/skills/kiro/ritual/references/discovery-classification.md +0 -175
  93. package/skills/vscode/ritual/references/discovery-classification.md +0 -175
@@ -0,0 +1,81 @@
1
+ # Change pre-flight — restate-before-mutate
2
+
3
+ When the user asks to **change or add** something via a free-text instruction, the agent has to
4
+ *translate* that instruction into a tool call (a `change_prompt`, an anti-goal text, etc.). That
5
+ translation is where intent gets lost: a misread re-rolls the artifact in the wrong direction, and
6
+ the user only finds out *after* the regeneration. This protocol puts a confirmation **before** the
7
+ mutating call: the agent restates what it heard and shows the exact request it's about to send, and
8
+ waits for a `yes`.
9
+
10
+ This is **not** the forward-flow confirmation theatre the SKILL deliberately removed (template-pick,
11
+ sub-problem auto-accept, etc.). Those gated the *default happy path*. This gate fires **only** on an
12
+ explicit, free-text *change/add* request — where the input is ambiguous by nature and a read-back is
13
+ genuinely protective.
14
+
15
+ ## When it fires
16
+
17
+ Before **every** call to a tool that mutates an artifact from a free-text user request:
18
+
19
+ | User asks (free text) | Tool the agent is about to call |
20
+ |---|---|
21
+ | "rethink / change the sub-problems", "show me other angles" | `mcp__ritual__refine_considerations` |
22
+ | "tighten / broaden / reframe / drop X from the scope" | `mcp__ritual__refine_problem_statement` |
23
+ | "add an anti-goal", "don't touch X", "keep Y out of scope" | `mcp__ritual__set_anti_goals` |
24
+
25
+ **Always fire — no exceptions for "obvious" requests.** Even a one-word `tighten` or `broaden` gets
26
+ the restate. The user chose maximum safety here: a one-word instruction is exactly where the agent is
27
+ most tempted to guess a direction, so it's still confirmed.
28
+
29
+ **Does NOT fire on the forward CTAs** — `use` / `run` / `accept shortlist` / `proceed` and their
30
+ aliases already have their own gates. Double-gating those is the theatre we removed. This protocol is
31
+ *only* for the mutate-from-free-text tools above.
32
+
33
+ ## Hard pause — even in auto-mode
34
+
35
+ This is a real `[USER PAUSE]`. In auto-accept / bypass-permissions mode it **still stops and waits**
36
+ for an actual `yes`. Mutations are where a misread is most costly, so the agent never auto-applies a
37
+ change on the user's behalf — auto-mode collapses *forward* pauses, not this one. Per the SKILL
38
+ preamble: never infer, never default, never press on without a real reply.
39
+
40
+ ## The template
41
+
42
+ Render this block, then **stop and wait**:
43
+
44
+ ```
45
+ Got it — you want to {specific restatement of the change, in the user's own terms}.
46
+
47
+ Here's what I'll do: {plain-English effect on the artifact}. I'll ask Ritual to
48
+ {refine the sub-problems / refine the problem frame / add this anti-goal} with this instruction:
49
+
50
+ → "{the EXACT change_prompt / anti-goal text the agent will send the tool}"
51
+
52
+ Apply this? Reply `yes`, or tell me what to adjust.
53
+ ```
54
+
55
+ Rules for the block:
56
+ - **Restate specifically.** "drop the observability sub-problem and add a rollout-safety one" — never
57
+ a generic "you want to make a change." If the agent can't restate the request specifically, it
58
+ doesn't understand it yet: ask a clarifying question instead of guessing a `change_prompt`.
59
+ - **Show the literal request.** The `→ "..."` line is the *exact* string going into the tool
60
+ (`change_prompt` verbatim, or the anti-goal `text`). This is the whole point — the user is
61
+ validating the instruction the model will actually send, not a paraphrase of it.
62
+ - **One confirm token.** `yes` applies. Treat `y`, `apply`, `go`, `do it` as aliases; do not display
63
+ them.
64
+
65
+ ## On the user's reply
66
+
67
+ - **`yes`** → make the tool call exactly as shown. Do not silently alter the `change_prompt` after
68
+ confirmation.
69
+ - **An adjustment** ("no, keep observability, just add rollout-safety") → fold it into the
70
+ `change_prompt`, re-render the block **once** with the revised instruction, and wait again. This is
71
+ a single re-confirm, **not** an open loop — after the second render, a `yes` applies and any further
72
+ change is treated as a fresh request (new restate).
73
+ - **`pause` / `stop`** → honor it; do not call the tool.
74
+
75
+ ## Note — "add a question or matter that wasn't there"
76
+
77
+ There is currently **no MCP tool** to add a *net-new* discovery question or matter that the
78
+ `suggest_discovery_questions` set didn't produce — the user can only accept from the suggested set or
79
+ re-run suggestion with guidance. When that capability ships (a tool to author a custom
80
+ question/matter), it is a mutate-from-free-text action and MUST route through this same pre-flight.
81
+ Until then, this protocol covers the three tools listed above.
@@ -24,6 +24,28 @@ Default user-visible messages should be:
24
24
  - free of raw file-by-file recon dumps unless requested
25
25
  - formatted for terminal readability: short paragraphs, blank lines between major items, and label/value blocks instead of dense wrapped prose
26
26
 
27
+ **Output discipline — never leak internal reasoning or mechanics (load-bearing, worked examples):**
28
+
29
+ The two failure modes below are the most common leaks. They are forbidden, not discouraged.
30
+
31
+ 1. **Don't editorialize — just ask.** When you ask the user to choose, render the question + the options. Do NOT justify *why* you're asking or how costly getting it wrong is — that's your reasoning, not the user's decision input.
32
+ - ❌ `"New social commerce experience" maps to several distinct features — picking the wrong one wastes significant scope.`
33
+ - ❌ `Because this spans three cross-functional tracks, attribution rules have real product decisions baked in.`
34
+ - ✅ `What would you like to explore?` (then the options + a recommended one)
35
+
36
+ 2. **Silent checks stay silent — never name a tool or narrate plumbing.** Connection/freshness pings, config reads, workspace lookups, and code recon are invisible. Do NOT print "let me ping Ritual", "checking the workspace config", or any `mcp__ritual__*` tool name.
37
+ - ❌ `Now I'll start the build flow. Let me check the workspace config and ping Ritual simultaneously.`
38
+ - ❌ `Pinging Ritual to verify the connection…`
39
+ - ✅ (nothing — run the check silently; the next user-visible line is the actual gate or status)
40
+
41
+ 3. **Don't narrate your process or restate your own instructions.** Loading a spec, fetching a preview, "before presenting", "must print it verbatim", and naming an internal **Step N** are all scratchpad — do them silently and just present the result. The user never sees the machinery between "I have the data" and "here it is."
42
+ - ❌ `6 recommendations ready. Let me load Step 9's exact rendering spec before presenting.`
43
+ - ❌ `Now I'll fetch the server-rendered preview — must print it verbatim.`
44
+ - ❌ `Let me check what the skill says here, then render it.`
45
+ - ✅ (just present it — the recommendations / the picker / the rail, with no preamble about how you produced it)
46
+
47
+ Rule of thumb: if a line describes what *you* are doing internally (a tool call, loading a spec, a check, why a question matters, what you're about to render), cut it. The user wants the work and the decision, not your scratchpad. Internal **Step N** labels and artifact names ("rendering spec", "server-rendered preview", "the contract") never appear in user-facing copy.
48
+
27
49
  Use this compact status shape whenever possible:
28
50
 
29
51
  ```text
@@ -61,7 +83,7 @@ Do not ask for confirmation after safe defaults. State the default and give a li
61
83
 
62
84
  **[USER PAUSE] policy:** Pause only when the next step would create, approve, delete, implement, accept meaningful cost/time, choose between materially different paths, or resolve ambiguity that code cannot answer. Do not pause for status-only steps, safe defaults, internal recon, silent checks, or no-data outcomes.
63
85
 
64
- **Internal step labels:** Do not expose decimal workflow labels like `Step 1.5`, `Step 7.4.5`, or MCP/tool-step names in user-facing prompts. They are for the skill, not the CLI. Use natural phase language instead: `checking existing explorations`, `choosing a template`, `code recon`, `question picking`, `build brief`, `admin review`, `implementation`, or `sync`. Step numbers are acceptable only in compact progress headings when they help orient the user; avoid them in choice prompts, error messages, and user-facing examples inside this skill.
86
+ **Internal step labels:** Do not expose decimal workflow labels like `Step 1.5`, `Step 7.3.1`, or MCP/tool-step names in user-facing prompts. They are for the skill, not the CLI. Use natural phase language instead: `checking existing explorations`, `choosing a template`, `code recon`, `question picking`, `build brief`, `admin review`, `implementation`, or `sync`. Step numbers are acceptable only in compact progress headings when they help orient the user; avoid them in choice prompts, error messages, and user-facing examples inside this skill.
65
87
 
66
88
  **Pulse tier labels:** Do not expose raw context-pulse tier identifiers (`RAW_ASK`, `UNDER_SPECIFIED`, `EXPLORED`, `READY`, etc.) in user-facing copy. They are scoring-engine internals, not CLI vocabulary. Translate every appearance into natural-language framing keyed to the phase:
67
89
 
@@ -112,19 +134,19 @@ When in doubt, prefer one blank line over none. The cost of a tiny gap is unnoti
112
134
 
113
135
  **Build progress anchor — load-bearing (never omit, render per surface):** Every TOP-LEVEL user-facing message in `/ritual build` and `/ritual resume` MUST begin with a progress anchor before any other content. The anchor is the user's only "where am I in the flow" signal; dropping it silently is worse than printing it redundantly. The agent was historically inferring the rail from examples and squeezing it out under any pressure — this rule makes it explicit, with the exact rendering chosen per surface so the anchor doesn't wrap badly on narrow chat or duplicate a persistent UI stepper.
114
136
 
115
- **Surface-aware rendering** — the canonical six stages stay constant; only the visual changes:
137
+ **Surface-aware rendering** — the canonical five stages stay constant; only the visual changes:
116
138
 
117
139
  | Surface | Rendering | When to use |
118
140
  |---|---|---|
119
- | **CLI / terminal** (current default) | Full two-line rail. `Ritual build` on line 1, `✓ Context ● Scope ○ Discovery ○ Recommendations ○ Build brief ○ Implementation (Your agent)` on line 2. | Terminal scrollback has no persistent UI — the rail IS the anchor. |
120
- | **Mobile chat / narrow chat** | Compact one-line chip. `Ritual build · 2/6 Scope`. Optionally add a second line: `Done: Context · Next: Discovery`. | Six-stage rail wraps and looks noisy inside chat bubbles. |
141
+ | **CLI / terminal** (current default) | Full two-line rail. `Ritual build` on line 1, `● Scope ○ Discovery ○ Recommendations ○ Build brief ○ Implementation (Your agent)` on line 2. | Terminal scrollback has no persistent UI — the rail IS the anchor. |
142
+ | **Mobile chat / narrow chat** | Compact one-line chip. `Ritual build · 1/5 Scope`. Optionally add a second line: `Done: Scope · Next: Recommendations`. | Five-stage rail wraps and looks noisy inside chat bubbles. |
121
143
  | **Rich app with persistent stepper** | Single-line stage label. `Scope` (or `Phase: Scope`). The app's pinned stepper above the conversation is the primary anchor; messages just need the current label. At phase transitions, resume points, and major decision gates, include the compact mobile-style chip even in rich-app surface for transcript portability. | The persistent UI carries the anchor; redundant chrome in every bubble is noise. |
122
144
 
123
145
  **How the agent picks the surface:**
124
146
 
125
147
  - Default to **CLI / terminal** rendering. This SKILL exists primarily to drive CLI surfaces (Claude Code, Cursor, Codex, etc. in their built-in terminals).
126
148
  - If the host signals a non-terminal surface via context (mobile-app chat embedding, web-app chat UI, etc.), drop to the compact chip.
127
- - The rule is: **progress anchor is mandatory; exact visual rendering is surface-specific.** Do NOT force the full six-stage rail when it will wrap.
149
+ - The rule is: **progress anchor is mandatory; exact visual rendering is surface-specific.** Do NOT force the full five-stage rail when it will wrap.
128
150
 
129
151
  **Applies to:**
130
152
 
@@ -163,19 +185,18 @@ The chip's job is "you're still in this phase, this is which item of the series"
163
185
 
164
186
  | Stage | Active during… |
165
187
  |--------------------|--------------------------------------------------------------------------------|
166
- | `Context` | Workspace selection, resume/start check, template, knowledge sources, code recon |
167
- | `Scope` | Problem frame + sub-problem generation/selection, until scope is locked |
188
+ | `Scope` | Silent code recon, problem frame + sub-problem generation/selection, until scope is locked |
168
189
  | `Discovery` | Exploration creation, discovery questions, answers, question picking, answer review |
169
- | `Recommendations` | Recommendation generation, review, admin/collaborator acceptance path |
190
+ | `Recommendations` | Recommendation generation + review |
170
191
  | `Build brief` | Requirements + build brief generation/review |
171
192
  | `Implementation (Your agent)` | Coding, branch/PR work, `sync_implementation` |
172
193
 
173
- Note that the FIRST rail stage is `Context`, not `Recon`. `Context` is broader — workspace pick, resume check, template choice, knowledge sources, AND code recon all live there. Use `Code recon` as the SECTION title inside the stage when the active work is repo inspection (see `references/build-flow.md` § Step 3 examples), not as the rail label. There's also a naming hazard: `/ritual recon` was retired as a command surface, so reusing `Recon` at the rail level could imply it's a separate command.
194
+ The FIRST rail stage is `Scope`. **There is no `Context` stage** — workspace pick, resume/start check, template resolution, and **code recon** all happen as **silent plumbing inside Scope**, never as a visible rail stage. Recon runs but is not surfaced to the user by default (see `references/build-flow.md` § Step 3); only narrate repo inspection if the user explicitly asks. Naming hazard: `/ritual recon` was retired as a command surface, so don't reuse `Recon`/`Context` at the rail level.
174
195
 
175
196
  **Canonical ordering (only the active marker moves):**
176
197
 
177
198
  ```
178
- Context → Scope → Discovery → Recommendations → Build brief → Implementation (Your agent)
199
+ Scope → Discovery → Recommendations → Build brief → Implementation (Your agent)
179
200
  ```
180
201
 
181
202
  - Completed stages: `✓`
@@ -185,46 +206,41 @@ Context → Scope → Discovery → Recommendations → Build brief → Implemen
185
206
  **Build rail spec (`progressHeader(stage)`) — CLI / terminal rendering:**
186
207
 
187
208
  ```text
188
- progressHeader("context") =>
189
- Ritual build
190
- ● Context ○ Scope ○ Discovery ○ Recommendations ○ Build brief ○ Implementation (Your agent)
191
-
192
209
  progressHeader("scope") =>
193
210
  Ritual build
194
- ✓ Context ● Scope ○ Discovery ○ Recommendations ○ Build brief ○ Implementation (Your agent)
211
+ ● Scope ○ Discovery ○ Recommendations ○ Build brief ○ Implementation (Your agent)
195
212
 
196
213
  progressHeader("discovery") =>
197
214
  Ritual build
198
- Context ✓ Scope ● Discovery ○ Recommendations ○ Build brief ○ Implementation (Your agent)
215
+ ✓ Scope ● Discovery ○ Recommendations ○ Build brief ○ Implementation (Your agent)
199
216
 
200
217
  progressHeader("recommendations") =>
201
218
  Ritual build
202
- Context ✓ Scope ✓ Discovery ● Recommendations ○ Build brief ○ Implementation (Your agent)
219
+ ✓ Scope ✓ Discovery ● Recommendations ○ Build brief ○ Implementation (Your agent)
203
220
 
204
221
  progressHeader("build-brief") =>
205
222
  Ritual build
206
- Context ✓ Scope ✓ Discovery ✓ Recommendations ● Build brief ○ Implementation (Your agent)
223
+ ✓ Scope ✓ Discovery ✓ Recommendations ● Build brief ○ Implementation (Your agent)
207
224
 
208
225
  progressHeader("implementation") =>
209
226
  Ritual build
210
- Context ✓ Scope ✓ Discovery ✓ Recommendations ✓ Build brief ● Implementation (Your agent)
227
+ ✓ Scope ✓ Discovery ✓ Recommendations ✓ Build brief ● Implementation (Your agent)
211
228
  ```
212
229
 
213
230
  **Compact chip spec — mobile chat / narrow chat:**
214
231
 
215
232
  ```text
216
- compactChip("context") => Ritual build · 1/6 Context
217
- compactChip("scope") => Ritual build · 2/6 Scope
218
- compactChip("discovery") => Ritual build · 3/6 Discovery
219
- compactChip("recommendations")=> Ritual build · 4/6 Recommendations
220
- compactChip("build-brief") => Ritual build · 5/6 Build brief
221
- compactChip("implementation")=> Ritual build · 6/6 Implementation (Your agent)
233
+ compactChip("scope") => Ritual build · 1/5 Scope
234
+ compactChip("discovery") => Ritual build · 2/5 Discovery
235
+ compactChip("recommendations")=> Ritual build · 3/5 Recommendations
236
+ compactChip("build-brief") => Ritual build · 4/5 Build brief
237
+ compactChip("implementation")=> Ritual build · 5/5 Implementation (Your agent)
222
238
  ```
223
239
 
224
240
  Optional second line at phase transitions, resumes, and decision gates:
225
241
 
226
242
  ```text
227
- Done: Context · Next: Discovery
243
+ Done: Scope · Next: Recommendations
228
244
  ```
229
245
 
230
246
  **Rich-app spec — persistent stepper:**
@@ -283,7 +299,7 @@ Use engineer-facing language in CLI output:
283
299
  |---|---|
284
300
  | `problemStatement` | scope |
285
301
  | `consideration` | sub-problem |
286
- | `Step 1.5`, `Step 7.4.5`, `Step CP3` | natural labels such as "existing work check", "question picking", "build brief" |
302
+ | `Step 1.5`, `Step 7.3.1`, `Step CP3` | natural labels such as "existing work check", "question picking", "build brief" |
287
303
  | raw recon dump | recon digest |
288
304
  | "I inferred…" | direct default + override path |
289
305
  | **`decisions` / `decision` as a label or count** (e.g. "5 decisions logged", "decision list", "the N decisions you made") | Frame as **the implementation itself**. Recommendations get *implemented*; the artifacts of that implementation are surfaced inline (specific choices, deferrals, files touched) rather than as a labeled count. The underlying API parameter is still `decisions[]`, but the user sees "your implementation" / "what you implemented" / inline content. |
@@ -319,7 +335,7 @@ For no-arg `/ritual build` with zero explorations, do not frame `/ritual context
319
335
 
320
336
  ```text
321
337
  Ritual build
322
- Context ○ Scope ○ Discovery ○ Recommendations ○ Build brief ○ Implementation (Your agent)
338
+ ● Scope ○ Discovery ○ Recommendations ○ Build brief ○ Implementation (Your agent)
323
339
 
324
340
  Using workspace: {workspaceName}.
325
341
 
@@ -278,7 +278,6 @@ You're past the recommendation-ready threshold. Generate the brief? (y/N)
278
278
 
279
279
  Render rules:
280
280
  - **Always show reasoning readiness + context debt at the top** (dual framing — the product pitch is about debt going down, but the primary score is the readiness one).
281
- - **`Context deferred` line is conditional** — only shown when deferred > 0 (CLI Tenet #6 — silence on no-data). Reflects deliberate phase-2 classification from Step 7.4.5; NOT counted as a liability.
282
281
  - **State-tier (Context surface) is a separate explicit line** in the full pulse, not folded into the readiness number — so the user can see both the percentage AND its qualitative meaning at a glance.
283
282
  - **Bars are 10-cell `▓` / `░`**, rounded to the nearest 10%.
284
283
  - **Dimensions printed in fixed weight order.** For `dimensionsVersion=2` (current canonical): Feature clarity → Decision resolution → Code grounding → Reference grounding → Assumption load → Validation readiness. For `dimensionsVersion=1` (legacy back-compat): Feature clarity → Decision resolution → Repo grounding → Assumption safety.