@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.
- package/dist/commands/doctor.js +59 -23
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/init.js +35 -0
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/uninstall.js +114 -0
- package/dist/commands/uninstall.js.map +1 -0
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/agents/providers.js +44 -4
- package/dist/lib/agents/providers.js.map +1 -1
- package/dist/lib/memory-update.js +158 -0
- package/dist/lib/memory-update.js.map +1 -0
- package/dist/lib/uninstall-plan.js +102 -0
- package/dist/lib/uninstall-plan.js.map +1 -0
- package/package.json +1 -1
- package/skills/claude-code/ritual/.ritual-bundle.json +2 -2
- package/skills/claude-code/ritual/SKILL.md +14 -11
- package/skills/claude-code/ritual/manifest.json +0 -5
- package/skills/claude-code/ritual/references/async-polling.md +5 -5
- package/skills/claude-code/ritual/references/brief-verification-checklist.md +12 -6
- package/skills/claude-code/ritual/references/build-flow.md +569 -581
- package/skills/claude-code/ritual/references/change-preflight.md +81 -0
- package/skills/claude-code/ritual/references/cli-output-contract.md +44 -28
- package/skills/claude-code/ritual/references/context-pulse-flow.md +0 -1
- package/skills/claude-code/ritual/references/lite-flow.md +2750 -0
- package/skills/claude-code/ritual/references/resume-flow.md +1 -1
- package/skills/claude-code/ritual/references/scoring-fallback.md +1 -1
- package/skills/codex/ritual/.ritual-bundle.json +2 -2
- package/skills/codex/ritual/SKILL.md +14 -11
- package/skills/codex/ritual/manifest.json +0 -5
- package/skills/codex/ritual/references/async-polling.md +5 -5
- package/skills/codex/ritual/references/brief-verification-checklist.md +12 -6
- package/skills/codex/ritual/references/build-flow.md +569 -581
- package/skills/codex/ritual/references/change-preflight.md +81 -0
- package/skills/codex/ritual/references/cli-output-contract.md +44 -28
- package/skills/codex/ritual/references/context-pulse-flow.md +0 -1
- package/skills/codex/ritual/references/lite-flow.md +2750 -0
- package/skills/codex/ritual/references/resume-flow.md +1 -1
- package/skills/codex/ritual/references/scoring-fallback.md +1 -1
- package/skills/cursor/ritual/.ritual-bundle.json +2 -2
- package/skills/cursor/ritual/SKILL.md +14 -11
- package/skills/cursor/ritual/manifest.json +0 -5
- package/skills/cursor/ritual/references/async-polling.md +5 -5
- package/skills/cursor/ritual/references/brief-verification-checklist.md +12 -6
- package/skills/cursor/ritual/references/build-flow.md +569 -581
- package/skills/cursor/ritual/references/change-preflight.md +81 -0
- package/skills/cursor/ritual/references/cli-output-contract.md +44 -28
- package/skills/cursor/ritual/references/context-pulse-flow.md +0 -1
- package/skills/cursor/ritual/references/lite-flow.md +2750 -0
- package/skills/cursor/ritual/references/resume-flow.md +1 -1
- package/skills/cursor/ritual/references/scoring-fallback.md +1 -1
- package/skills/gemini/ritual/.ritual-bundle.json +2 -2
- package/skills/gemini/ritual/SKILL.md +14 -11
- package/skills/gemini/ritual/manifest.json +0 -5
- package/skills/gemini/ritual/references/async-polling.md +5 -5
- package/skills/gemini/ritual/references/brief-verification-checklist.md +12 -6
- package/skills/gemini/ritual/references/build-flow.md +569 -581
- package/skills/gemini/ritual/references/change-preflight.md +81 -0
- package/skills/gemini/ritual/references/cli-output-contract.md +44 -28
- package/skills/gemini/ritual/references/context-pulse-flow.md +0 -1
- package/skills/gemini/ritual/references/lite-flow.md +2750 -0
- package/skills/gemini/ritual/references/resume-flow.md +1 -1
- package/skills/gemini/ritual/references/scoring-fallback.md +1 -1
- package/skills/kiro/ritual/.ritual-bundle.json +2 -2
- package/skills/kiro/ritual/SKILL.md +14 -11
- package/skills/kiro/ritual/manifest.json +0 -5
- package/skills/kiro/ritual/references/async-polling.md +5 -5
- package/skills/kiro/ritual/references/brief-verification-checklist.md +12 -6
- package/skills/kiro/ritual/references/build-flow.md +569 -581
- package/skills/kiro/ritual/references/change-preflight.md +81 -0
- package/skills/kiro/ritual/references/cli-output-contract.md +44 -28
- package/skills/kiro/ritual/references/context-pulse-flow.md +0 -1
- package/skills/kiro/ritual/references/lite-flow.md +2750 -0
- package/skills/kiro/ritual/references/resume-flow.md +1 -1
- package/skills/kiro/ritual/references/scoring-fallback.md +1 -1
- package/skills/vscode/ritual/.ritual-bundle.json +2 -2
- package/skills/vscode/ritual/SKILL.md +14 -11
- package/skills/vscode/ritual/manifest.json +0 -5
- package/skills/vscode/ritual/references/async-polling.md +5 -5
- package/skills/vscode/ritual/references/brief-verification-checklist.md +12 -6
- package/skills/vscode/ritual/references/build-flow.md +569 -581
- package/skills/vscode/ritual/references/change-preflight.md +81 -0
- package/skills/vscode/ritual/references/cli-output-contract.md +44 -28
- package/skills/vscode/ritual/references/context-pulse-flow.md +0 -1
- package/skills/vscode/ritual/references/lite-flow.md +2750 -0
- package/skills/vscode/ritual/references/resume-flow.md +1 -1
- package/skills/vscode/ritual/references/scoring-fallback.md +1 -1
- package/skills/claude-code/ritual/references/discovery-classification.md +0 -175
- package/skills/codex/ritual/references/discovery-classification.md +0 -175
- package/skills/cursor/ritual/references/discovery-classification.md +0 -175
- package/skills/gemini/ritual/references/discovery-classification.md +0 -175
- package/skills/kiro/ritual/references/discovery-classification.md +0 -175
- 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.
|
|
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
|
|
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,
|
|
120
|
-
| **Mobile chat / narrow chat** | Compact one-line chip. `Ritual build ·
|
|
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
|
|
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
|
-
| `
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
211
|
+
● Scope ○ Discovery ○ Recommendations ○ Build brief ○ Implementation (Your agent)
|
|
195
212
|
|
|
196
213
|
progressHeader("discovery") =>
|
|
197
214
|
Ritual build
|
|
198
|
-
✓
|
|
215
|
+
✓ Scope ● Discovery ○ Recommendations ○ Build brief ○ Implementation (Your agent)
|
|
199
216
|
|
|
200
217
|
progressHeader("recommendations") =>
|
|
201
218
|
Ritual build
|
|
202
|
-
✓
|
|
219
|
+
✓ Scope ✓ Discovery ● Recommendations ○ Build brief ○ Implementation (Your agent)
|
|
203
220
|
|
|
204
221
|
progressHeader("build-brief") =>
|
|
205
222
|
Ritual build
|
|
206
|
-
✓
|
|
223
|
+
✓ Scope ✓ Discovery ✓ Recommendations ● Build brief ○ Implementation (Your agent)
|
|
207
224
|
|
|
208
225
|
progressHeader("implementation") =>
|
|
209
226
|
Ritual build
|
|
210
|
-
✓
|
|
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("
|
|
217
|
-
compactChip("
|
|
218
|
-
compactChip("
|
|
219
|
-
compactChip("
|
|
220
|
-
compactChip("
|
|
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:
|
|
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.
|
|
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
|
-
●
|
|
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.
|