@ritualai/cli 0.25.0 → 0.36.9
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/build.js +89 -0
- package/dist/commands/build.js.map +1 -0
- package/dist/commands/init.js +93 -109
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/uninstall.js +6 -1
- package/dist/commands/uninstall.js.map +1 -1
- package/dist/index.js +18 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/agents/configure-mcp.js +63 -0
- package/dist/lib/agents/configure-mcp.js.map +1 -1
- package/dist/lib/agents/launch.js +70 -0
- package/dist/lib/agents/launch.js.map +1 -0
- package/dist/lib/agents/providers.js +8 -2
- package/dist/lib/agents/providers.js.map +1 -1
- package/dist/lib/final-cta-box.js +22 -10
- package/dist/lib/final-cta-box.js.map +1 -1
- package/dist/lib/help-style.js +65 -0
- package/dist/lib/help-style.js.map +1 -0
- package/dist/lib/onboarding-state.js +9 -8
- package/dist/lib/onboarding-state.js.map +1 -1
- package/dist/lib/uninstall-plan.js +18 -1
- package/dist/lib/uninstall-plan.js.map +1 -1
- package/dist/lib/workspace-explainer.js +42 -111
- package/dist/lib/workspace-explainer.js.map +1 -1
- package/dist/lib/workspace-flow.js +4 -1
- package/dist/lib/workspace-flow.js.map +1 -1
- package/package.json +1 -1
- package/skills/claude-code/ritual/.ritual-bundle.json +3 -2
- package/skills/claude-code/ritual/SKILL.md +11 -0
- package/skills/claude-code/ritual/references/build-flow.md +474 -414
- package/skills/claude-code/ritual/references/cli-output-contract.md +90 -34
- package/skills/claude-code/ritual/references/lite-flow.md +484 -421
- package/skills/codex/ritual/.ritual-bundle.json +3 -2
- package/skills/codex/ritual/SKILL.md +11 -0
- package/skills/codex/ritual/references/build-flow.md +474 -414
- package/skills/codex/ritual/references/cli-output-contract.md +90 -34
- package/skills/codex/ritual/references/lite-flow.md +484 -421
- package/skills/cursor/ritual/.ritual-bundle.json +3 -2
- package/skills/cursor/ritual/SKILL.md +11 -0
- package/skills/cursor/ritual/references/build-flow.md +474 -414
- package/skills/cursor/ritual/references/cli-output-contract.md +90 -34
- package/skills/cursor/ritual/references/lite-flow.md +484 -421
- package/skills/gemini/ritual/.ritual-bundle.json +3 -2
- package/skills/gemini/ritual/SKILL.md +11 -0
- package/skills/gemini/ritual/references/build-flow.md +474 -414
- package/skills/gemini/ritual/references/cli-output-contract.md +90 -34
- package/skills/gemini/ritual/references/lite-flow.md +484 -421
- package/skills/kiro/ritual/.ritual-bundle.json +3 -2
- package/skills/kiro/ritual/SKILL.md +11 -0
- package/skills/kiro/ritual/references/build-flow.md +474 -414
- package/skills/kiro/ritual/references/cli-output-contract.md +90 -34
- package/skills/kiro/ritual/references/lite-flow.md +484 -421
- package/skills/vscode/ritual/.ritual-bundle.json +3 -2
- package/skills/vscode/ritual/SKILL.md +11 -0
- package/skills/vscode/ritual/references/build-flow.md +474 -414
- package/skills/vscode/ritual/references/cli-output-contract.md +90 -34
- package/skills/vscode/ritual/references/lite-flow.md +484 -421
- package/dist/lib/build-flow-explainer.js +0 -226
- package/dist/lib/build-flow-explainer.js.map +0 -1
- package/dist/lib/persona-picker.js +0 -171
- package/dist/lib/persona-picker.js.map +0 -1
|
@@ -134,19 +134,19 @@ When in doubt, prefer one blank line over none. The cost of a tiny gap is unnoti
|
|
|
134
134
|
|
|
135
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.
|
|
136
136
|
|
|
137
|
-
**Surface-aware rendering** — the canonical
|
|
137
|
+
**Surface-aware rendering** — the canonical six stages stay constant; only the visual changes:
|
|
138
138
|
|
|
139
139
|
| Surface | Rendering | When to use |
|
|
140
140
|
|---|---|---|
|
|
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 ·
|
|
141
|
+
| **CLI / terminal** (current default) | Full two-line rail. `Ritual build` on line 1, `● Job ○ 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 · 2/6 Scope`. Optionally add a second line: `Done: Job, Scope · Next: Recommendations`. | Six-stage rail wraps and looks noisy inside chat bubbles. |
|
|
143
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. |
|
|
144
144
|
|
|
145
145
|
**How the agent picks the surface:**
|
|
146
146
|
|
|
147
147
|
- Default to **CLI / terminal** rendering. This SKILL exists primarily to drive CLI surfaces (Claude Code, Cursor, Codex, etc. in their built-in terminals).
|
|
148
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.
|
|
149
|
-
- 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 six-stage rail when it will wrap.
|
|
150
150
|
|
|
151
151
|
**Applies to:**
|
|
152
152
|
|
|
@@ -173,74 +173,106 @@ Soft rule of thumb: if the message is a top-level "here's where you are + what t
|
|
|
173
173
|
Discovery — area 2 of 4: {matter.name}
|
|
174
174
|
```
|
|
175
175
|
|
|
176
|
-
Or for
|
|
176
|
+
Or for a single-recommendation drill view in Step 9:
|
|
177
177
|
|
|
178
178
|
```text
|
|
179
|
-
Recommendations
|
|
179
|
+
Recommendations · R{N} — {recommendation title}
|
|
180
180
|
```
|
|
181
181
|
|
|
182
182
|
The chip's job is "you're still in this phase, this is which item of the series" — orientation without the full chrome.
|
|
183
183
|
|
|
184
|
+
**Forward-pointing CTAs (load-bearing):** every advancing option at a `[USER PAUSE]` gate must name its DESTINATION in user language — never a bare "to continue" / "to proceed". Two accepted shapes:
|
|
185
|
+
|
|
186
|
+
- inline parenthetical on the action line: `proceed (generate the {Deliverable})`
|
|
187
|
+
- spelled-out reply line: ``Reply `proceed` to frame the problem (sub-problems + problem statement), or …``
|
|
188
|
+
|
|
189
|
+
Canonical destinations (use these; don't improvise):
|
|
190
|
+
|
|
191
|
+
| Gate | Advancing token | Destination phrase |
|
|
192
|
+
|---|---|---|
|
|
193
|
+
| Job gate (0.7) | `proceed` | frame the problem (sub-problems + problem statement) |
|
|
194
|
+
| Problem frame (5) | `use` | review discovery questions |
|
|
195
|
+
| Suggested-12 landing (7.3.1) | `proceed` | run discovery with these 12 (commits the set; run confirmation follows) |
|
|
196
|
+
| Expert-walk summary (7.4) | `commit` | run discovery → recommendations (~a few minutes) |
|
|
197
|
+
| Run gate (8) | `run` | source answers → generate recommendations |
|
|
198
|
+
| Recommendations (9/9.1) | `proceed` | generate the {Deliverable} (the job's deliverable name from the rail) |
|
|
199
|
+
| Audit gate (9.6.1) | `proceed` | skip the audit and generate the {Deliverable} |
|
|
200
|
+
| Brief gate (10d) | `go` | implement in your agent |
|
|
201
|
+
| Plan handoff (11.0.5) | `ready` | generate the implementation plan |
|
|
202
|
+
|
|
203
|
+
`{Deliverable}` = the rail's stage-5 name (deliverable-named rail). The destination phrase, the rail's next stage, and what actually happens next must tell ONE story.
|
|
204
|
+
|
|
205
|
+
**Universal advance alias:** `proceed` is silently accepted at EVERY advancing gate, mapped to that gate's primary token (`use`, `run`, `commit`, `go`, `ready`, …) — the user only ever needs one word. It is NOT displayed as an extra option. Exception already specified elsewhere: at the discovery pick gate an ambiguous `proceed` means **accept shortlist**, never accept-all. `next` is NOT a universal alias — it has gate-local meaning in the discovery Area walk (expert mode).
|
|
206
|
+
|
|
184
207
|
**Canonical stage table (single source of truth):**
|
|
185
208
|
|
|
186
209
|
| Stage | Active during… |
|
|
187
210
|
|--------------------|--------------------------------------------------------------------------------|
|
|
188
|
-
| `
|
|
211
|
+
| `Job` | The Step 0.7 Job gate — server-side classification of the user's raw ask (`classify_work_item`) + the user's confirmation of the job to be done; active until the user proceeds |
|
|
212
|
+
| `Scope` | Problem frame + sub-problem generation/selection, until scope is locked; the silent grounding recon runs at the lock→create boundary |
|
|
189
213
|
| `Discovery` | Exploration creation, discovery questions, answers, question picking, answer review |
|
|
190
214
|
| `Recommendations` | Recommendation generation + review |
|
|
191
|
-
| `Build brief`
|
|
192
|
-
| `Implementation (Your agent)` | Coding, branch/PR work, `sync_implementation`
|
|
215
|
+
| `{Deliverable}` | **Named for the job's deliverable** — the `deliverableTemplate` returned at the Job gate (e.g. `Launch Brief`, `PRD`, `Service Build Brief`; `Build brief` for the generic `build-feature`). Covers requirements + deliverable generation/review. |
|
|
216
|
+
| `Implementation (Your agent)` | **Development-function jobs ONLY.** Coding, branch/PR work, `sync_implementation`. Non-development jobs (e.g. `create-launch-brief`) OMIT this stage — their rail has FIVE stages and ends at the deliverable. |
|
|
193
217
|
|
|
194
|
-
The FIRST rail stage is `
|
|
218
|
+
The FIRST rail stage is `Job` — the Step 0.7 Job gate (classification + confirmation of the job to be done; on resume paths the gate is skipped and the rail opens with `Job` already `✓`). **There is no `Context` stage** — workspace pick, resume/start check, and template resolution all happen as **silent plumbing inside Scope**, never as a visible rail stage. The grounding **code recon** runs silently AFTER the frame locks (build-flow § Step 5.7) and is not surfaced by default; 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.
|
|
195
219
|
|
|
196
220
|
**Canonical ordering (only the active marker moves):**
|
|
197
221
|
|
|
198
222
|
```
|
|
199
|
-
Scope → Discovery → Recommendations →
|
|
223
|
+
Job → Scope → Discovery → Recommendations → {Deliverable} → Implementation (Your agent — development jobs only)
|
|
200
224
|
```
|
|
201
225
|
|
|
226
|
+
The rail is **deliverable-named and function-shaped** (2026-06-11): stage 5 carries the job's own deliverable name, and stage 6 exists only for development-function jobs. The timeline is the promise — a Launch Brief job promises a Launch Brief, not a code handoff. Before the job is confirmed (the Job gate itself), render the PROPOSED classification's deliverable; a correction updates the rail on the next render.
|
|
227
|
+
|
|
202
228
|
- Completed stages: `✓`
|
|
203
229
|
- Current stage: `●`
|
|
204
230
|
- Future stages: `○`
|
|
205
231
|
|
|
206
|
-
**Build rail spec (`progressHeader(stage)`) — CLI / terminal rendering
|
|
232
|
+
**Build rail spec (`progressHeader(stage, jtbd)`) — CLI / terminal rendering.** `{Deliverable}` below = the job's `deliverableTemplate`; the `Implementation` stage renders only for development-function jobs.
|
|
233
|
+
|
|
234
|
+
Development job (e.g. `build-backend-service` → `Service Build Brief`; generic `build-feature` → `Build brief`):
|
|
207
235
|
|
|
208
236
|
```text
|
|
209
|
-
progressHeader("
|
|
237
|
+
progressHeader("job") =>
|
|
210
238
|
Ritual build
|
|
211
|
-
● Scope ○ Discovery ○ Recommendations ○
|
|
239
|
+
● Job ○ Scope ○ Discovery ○ Recommendations ○ {Deliverable} ○ Implementation (Your agent)
|
|
212
240
|
|
|
213
|
-
progressHeader("
|
|
241
|
+
progressHeader("deliverable") =>
|
|
214
242
|
Ritual build
|
|
215
|
-
✓ Scope
|
|
243
|
+
✓ Job ✓ Scope ✓ Discovery ✓ Recommendations ● {Deliverable} ○ Implementation (Your agent)
|
|
216
244
|
|
|
217
|
-
progressHeader("
|
|
245
|
+
progressHeader("implementation") =>
|
|
218
246
|
Ritual build
|
|
219
|
-
✓ Scope ✓ Discovery
|
|
247
|
+
✓ Job ✓ Scope ✓ Discovery ✓ Recommendations ✓ {Deliverable} ● Implementation (Your agent)
|
|
248
|
+
```
|
|
220
249
|
|
|
221
|
-
|
|
222
|
-
Ritual build
|
|
223
|
-
✓ Scope ✓ Discovery ✓ Recommendations ● Build brief ○ Implementation (Your agent)
|
|
250
|
+
Non-development job (e.g. `create-launch-brief` → `Launch Brief`) — FIVE stages, no Implementation:
|
|
224
251
|
|
|
225
|
-
|
|
252
|
+
```text
|
|
253
|
+
progressHeader("deliverable") =>
|
|
226
254
|
Ritual build
|
|
227
|
-
✓ Scope ✓ Discovery ✓ Recommendations
|
|
255
|
+
✓ Job ✓ Scope ✓ Discovery ✓ Recommendations ● Launch Brief
|
|
228
256
|
```
|
|
229
257
|
|
|
258
|
+
Intermediate stages (scope/discovery/recommendations) advance the markers identically in both shapes.
|
|
259
|
+
|
|
230
260
|
**Compact chip spec — mobile chat / narrow chat:**
|
|
231
261
|
|
|
232
262
|
```text
|
|
233
|
-
|
|
234
|
-
compactChip("
|
|
235
|
-
compactChip("
|
|
236
|
-
compactChip("
|
|
237
|
-
compactChip("
|
|
263
|
+
development job (N/6): non-development job (N/5):
|
|
264
|
+
compactChip("job") => Ritual build · 1/6 Job | 1/5 Job
|
|
265
|
+
compactChip("scope") => Ritual build · 2/6 Scope | 2/5 Scope
|
|
266
|
+
compactChip("discovery") => Ritual build · 3/6 Discovery | 3/5 Discovery
|
|
267
|
+
compactChip("recommendations")=> Ritual build · 4/6 Recommendations | 4/5 Recommendations
|
|
268
|
+
compactChip("deliverable") => Ritual build · 5/6 {Deliverable} | 5/5 {Deliverable}
|
|
269
|
+
compactChip("implementation") => Ritual build · 6/6 Implementation (Your agent) (dev only)
|
|
238
270
|
```
|
|
239
271
|
|
|
240
272
|
Optional second line at phase transitions, resumes, and decision gates:
|
|
241
273
|
|
|
242
274
|
```text
|
|
243
|
-
Done: Scope · Next: Recommendations
|
|
275
|
+
Done: Job, Scope · Next: Recommendations
|
|
244
276
|
```
|
|
245
277
|
|
|
246
278
|
**Rich-app spec — persistent stepper:**
|
|
@@ -274,16 +306,40 @@ When you need to wait for async server work (requirements generation, build brie
|
|
|
274
306
|
|
|
275
307
|
This rule applies to: Step 9.5 (`get_requirement_set_status`), Step 10b (`get_build_brief_status` on timeout), and any future status-poll surface.
|
|
276
308
|
|
|
309
|
+
<!-- skill-options:no-gate-change: pulse render gains a delta + next-lift line; no decision gate, option, or pause is added or changed -->
|
|
310
|
+
|
|
277
311
|
#### Inline pulses — surface reasoning readiness climbing as context debt drops
|
|
278
312
|
|
|
279
313
|
After **Steps 3, 5, 7.4, 8, 9, and 10**, emit a one-line **context pulse** showing how the score moved. This is the visible encouragement loop — the user watches **reasoning readiness** climb (or equivalently, **context debt** drop) with each step instead of just feeling like the agent is asking for more inputs.
|
|
280
314
|
|
|
281
315
|
The pulse rule and visual specs live in the [§ /ritual context-pulse](#ritual-context-pulse) section below — see *Step CP5 — visual modes*. TL;DR:
|
|
282
316
|
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
317
|
+
The pulse has TWO parts, and they sit in DIFFERENT places — the score at the top of the message (status: where you are), and the **lift bridge** immediately above the action line (motivation: why your next move matters).
|
|
318
|
+
|
|
319
|
+
```text
|
|
320
|
+
Pulse: Reasoning Readiness 58% · Context Debt 42% · +3% (scope locked)
|
|
321
|
+
|
|
322
|
+
{…the step's content…}
|
|
323
|
+
|
|
324
|
+
Most of the gap left is unsettled design decisions — that's exactly what
|
|
325
|
+
the next step, discovery, resolves.
|
|
326
|
+
Reply proceed (run discovery → recommendations) · expert · pause
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
- **Score line** (top of the message). Full capitalized labels — `Reasoning Readiness` and `Context Debt`, NOT lowercase. The **`· +N%` delta is MANDATORY** on every pulse after the first (the first pulse has no prior, so it shows just the baseline + reason). The delta is the visible-progress signal — never drop it. Show `+0%` honestly if a step didn't move the score, and `−N%` on a regression (rare; render full then).
|
|
330
|
+
- **Lift bridge** (ONE sentence, immediately ABOVE the action/CTA line — NOT under the score). This is the load-bearing piece: it turns the score into a reason to proceed. Three requirements:
|
|
331
|
+
1. **Plain language for the gap — NEVER the internal dimension name.** The lowest dimension from `score_context_pulse`'s breakdown picks the message, but the user sees what it MEANS, not the label:
|
|
332
|
+
| lowest dimension (internal) | what the user reads (plain) |
|
|
333
|
+
|---|---|
|
|
334
|
+
| `decisionResolution` | the design decisions aren't settled yet |
|
|
335
|
+
| `repoGrounding` | the plan isn't grounded in your code yet |
|
|
336
|
+
| `assumptionSafety` | some assumptions are still unverified |
|
|
337
|
+
| `featureClarity` | what exactly to build is still fuzzy |
|
|
338
|
+
2. **Name the NEXT STEP as the resolver, explicitly.** The bridge must make clear that the action the user is about to take is what closes the gap — `that's exactly what the next step, discovery, resolves` / `code recon next grounds it` / `the build brief locks those down`. The bridge and the forward-CTA below it name the SAME move — one story.
|
|
339
|
+
3. **Terse + declarative** — no `now let me help you improve this` assistant/affect register (`cli-experience-tenets.md`).
|
|
340
|
+
On the LAST scoreable step (Step 10, implementation-ready), there's no further lift — the bridge becomes the readiness statement: `The brief is your build path — implement when ready.`
|
|
341
|
+
- **Full (with bars + Reasoning Readiness / Context Debt / Context Surface labels)** when crossing a state-tier boundary, jumping ≥15%, or regressing. Full mode keeps the same `+N%` delta on the score line and the same lift bridge above the CTA.
|
|
342
|
+
- The score line goes near the top of the step's message; the lift bridge goes right before the action line. Both are additive, not replacements.
|
|
287
343
|
- Prefer `mcp__ritual__score_context_pulse` (one canonical server-side call, persisted for trend reporting); fall back to deterministic agent-side counts only if the tool errors. No LLM call in the hot path either way.
|
|
288
344
|
|
|
289
345
|
**Why full labels (load-bearing):** Users read `28% debt` as a vague accounting number. They read `Context Debt 28%` as a named concept with weight — the same name they'd see in `/ritual context-pulse`'s full view, in the score breakdown, in the docs. Consistency across compact and full forms means the user doesn't have to translate.
|
|
@@ -335,7 +391,7 @@ For no-arg `/ritual build` with zero explorations, do not frame `/ritual context
|
|
|
335
391
|
|
|
336
392
|
```text
|
|
337
393
|
Ritual build
|
|
338
|
-
● Scope ○ Discovery ○ Recommendations ○ Build brief ○ Implementation (Your agent)
|
|
394
|
+
✓ Job ● Scope ○ Discovery ○ Recommendations ○ Build brief ○ Implementation (Your agent)
|
|
339
395
|
|
|
340
396
|
Using workspace: {workspaceName}.
|
|
341
397
|
|