@ritualai/cli 0.36.37 → 0.36.39
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 +42 -3
- package/dist/commands/build.js.map +1 -1
- package/dist/commands/init.js +11 -0
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/login.js +43 -0
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/telemetry.js +35 -0
- package/dist/commands/telemetry.js.map +1 -0
- package/dist/index.js +74 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/config.js +1 -0
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/telemetry.js +234 -0
- package/dist/lib/telemetry.js.map +1 -0
- package/package.json +1 -1
- package/skills/claude-code/ritual/.ritual-bundle.json +3 -3
- package/skills/claude-code/ritual/SKILL.md +4 -4
- package/skills/claude-code/ritual/references/build-flow.md +40 -26
- package/skills/claude-code/ritual/references/lite-flow.md +41 -27
- package/skills/codex/ritual/.ritual-bundle.json +3 -3
- package/skills/codex/ritual/SKILL.md +4 -4
- package/skills/codex/ritual/references/build-flow.md +40 -26
- package/skills/codex/ritual/references/lite-flow.md +41 -27
- package/skills/cursor/ritual/.ritual-bundle.json +3 -3
- package/skills/cursor/ritual/SKILL.md +4 -4
- package/skills/cursor/ritual/references/build-flow.md +40 -26
- package/skills/cursor/ritual/references/lite-flow.md +41 -27
- package/skills/gemini/ritual/.ritual-bundle.json +3 -3
- package/skills/gemini/ritual/SKILL.md +4 -4
- package/skills/gemini/ritual/references/build-flow.md +40 -26
- package/skills/gemini/ritual/references/lite-flow.md +41 -27
- package/skills/kiro/ritual/.ritual-bundle.json +3 -3
- package/skills/kiro/ritual/SKILL.md +4 -4
- package/skills/kiro/ritual/references/build-flow.md +40 -26
- package/skills/kiro/ritual/references/lite-flow.md +41 -27
- package/skills/vscode/ritual/.ritual-bundle.json +3 -3
- package/skills/vscode/ritual/SKILL.md +4 -4
- package/skills/vscode/ritual/references/build-flow.md +40 -26
- package/skills/vscode/ritual/references/lite-flow.md +41 -27
|
@@ -4,6 +4,31 @@ Walks the engineer from a free-form problem statement to vetted, accepted Ritual
|
|
|
4
4
|
|
|
5
5
|
Output: a fully-closed loop — **exploration in COMPLETE state, recommendations accepted (or explicitly handed off to an admin), build brief generated, code implemented, and `sync_implementation` called to register the result in the knowledge graph**. The engineer stays in the driver's seat through concise status updates and explicit pauses only at real decision gates.
|
|
6
6
|
|
|
7
|
+
### ON ENTRY — do this FIRST, then stay on the pipeline (load-bearing)
|
|
8
|
+
<!-- skill-options:no-gate-change: entry-point + planning-phase trigger — names the existing Step 0.7 first action and the existing pre-brief pipeline; adds no pause gate or options -->
|
|
9
|
+
|
|
10
|
+
The instant `/ritual build` is selected (including the no-subcommand default that treats the whole ask as the scope), your **next tool call** is the Step 0.7 **Job gate**: call `classify_work_item` with the user's ask, then render that gate. Everything between here and Step 0.7 — the vocabulary map, the build rail, the runtime contracts — is reference you apply *while* running the flow; it is **not** a reason to delay that first tool call.
|
|
11
|
+
|
|
12
|
+
**The pipeline — you are in the PLANNING phase until the build brief is accepted.** It runs as the six build-rail stages below, **in order**. **Advance through the numbered Steps exactly as written — do not skip ahead or reorder them.** The exact tool sequence lives in the Steps; follow them, don't reconstruct it from memory.
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
Job (classify) -> Scope -> Discovery -> Recommendations -> Build brief (Step 10) | Implementation (Step 11+)
|
|
16
|
+
[------------------------------- planning phase -------------------------------] [---- implementation ----]
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
**`create_exploration` is the END of Scope, not the start.** Scope = sub-problems (Step 4) → problem frame (Step 5) → `create_exploration` (Step 6). Creating the exploration before the sub-problems and frame exist forces a confusing backtrack — don't. After `classify_work_item` returns, render the Job gate, pick/create the workspace (Step 1), then do Steps 4 → 5 → 6 → 7 in order.
|
|
20
|
+
|
|
21
|
+
**The most common failures: (a) freelancing your own questions before classify, and (b) jumping ahead — creating the exploration or touching discovery before Scope is built. Do the next numbered Step; nothing else.**
|
|
22
|
+
|
|
23
|
+
**Forbidden for EVERY turn of the planning phase — not just the first (hard violations):**
|
|
24
|
+
|
|
25
|
+
- Inventing your own clarifying / scoping / "which option did you mean" questions, or using your agent's own question or prompt UI to gather scope. Scope is captured ONLY inside the flow, via `generate_problem_statement` (Step 4). The flow's own gates (Job gate, discovery, rec review) are the only pauses.
|
|
26
|
+
- Running ANY **implementation-phase** tooling before the build brief is generated and accepted (Step 10): file writes/edits, package installs, component/scaffold generators, design-asset generators, todo/task lists. (Examples by agent — v0: `GenerateDesignInspiration`, `TodoManager`, `shadcn add`; Cursor/Claude/etc. have equivalents.) Pulling implementation forward is a hard violation. These resume — and are expected — at **Step 11**.
|
|
27
|
+
- Reading repo files, `.ritual/config.json`, or calling `list_workspaces` before the Job gate is confirmed (Step 0.7). (Code-recon *reads* are fine later, at their step inside the planning phase; this only forbids them up front.)
|
|
28
|
+
- Emitting an empty, "let me think…", or narration-only turn with no tool call (e.g. "I'll start the build flow", "Let me gather context first"). Start the next step; don't announce it.
|
|
29
|
+
|
|
30
|
+
"Proceed with your best judgment" / "no clarification needed" does **not** mean skip the flow — it means run the flow with sane defaults and pause only at the real pause gates.
|
|
31
|
+
|
|
7
32
|
### Vocabulary mapping (engineer-tone)
|
|
8
33
|
|
|
9
34
|
The Ritual data model uses product-research terminology. This skill translates to engineer-natural terms when speaking to the user. The underlying API still uses original names — keep this table mental when you read tool inputs / outputs:
|
|
@@ -288,11 +313,12 @@ Resolution order:
|
|
|
288
313
|
|
|
289
314
|
<!-- skill-options:no-gate-change: adds explainer prose to the existing workspace-pick gate; options and pause unchanged -->
|
|
290
315
|
|
|
291
|
-
>
|
|
292
|
-
> A workspace keeps the context and reasoning Ritual needs for future runs.
|
|
293
|
-
>
|
|
294
|
-
> Where should Ritual save this run?
|
|
316
|
+
> A **workspace** is where Ritual keeps the context, decisions, and reasoning for related work — so future runs build on this one instead of starting cold. You're not in one yet.
|
|
295
317
|
> {numbered list}
|
|
318
|
+
>
|
|
319
|
+
> Where should this run live? (pick one, or I'll create a new workspace for you)
|
|
320
|
+
|
|
321
|
+
(Repo-agnostic on purpose: don't say "this repo" — agents like v0 have no repo. If there are NO existing workspaces, skip the list and just say *"Ritual will set up a workspace for this — a workspace keeps the context for related work. I'll name it `{name}`; sound good?"* and create it.)
|
|
296
322
|
|
|
297
323
|
**[USER PAUSE]** for selection.
|
|
298
324
|
3. **Create a new one if none exist or user wants a fresh one.** Call `mcp__ritual__create_workspace` with a name — convention is to name it after the repo (basename of cwd, or origin remote). Confirm the name with the user first. **[USER PAUSE]**
|
|
@@ -594,12 +620,12 @@ Steps:
|
|
|
594
620
|
<!-- skill-options:no-gate-change: f.1 is an OPTIONAL skippable sub-prompt nested in Step 1.5 step 6 (default skip); adds no tracked pause gate or Step header, so the structural fingerprint is unchanged (check-skill-options-contract green). -->
|
|
595
621
|
f.1 **Unchosen-candidates gate (2026-06-14, unchosen-options → discovery worktrees).** The candidates the user did NOT pick are paths worth not silently dropping. Render ONE compact, SKIPPABLE prompt — for each unchosen candidate, the user can spin up **discovery now** (a background worktree reasons it to a build brief) or **log it as a future job**. Promote DELIBERATELY: the default is to drop. (This gate is itself skipped in autonomous/worktree mode — never spawn discovery recursively.)
|
|
596
622
|
|
|
623
|
+
<!-- skill-options:no-gate-change: prose-only copy tightening of the discover/next-job/skip descriptions; option tokens + gate unchanged -->
|
|
597
624
|
```text
|
|
598
|
-
You picked #{k}.
|
|
599
|
-
• `discover <nums>` —
|
|
600
|
-
|
|
601
|
-
• `
|
|
602
|
-
• `skip` — drop them (default)
|
|
625
|
+
You picked #{k}. For the rest:
|
|
626
|
+
• `discover <nums>` — explore unpicked option(s) in parallel; returns a build brief, no code.
|
|
627
|
+
• `next-job <nums>` — save as future work.
|
|
628
|
+
• `skip` — drop them. Default.
|
|
603
629
|
```
|
|
604
630
|
|
|
605
631
|
Resolve the reply, then continue to Step 2 for the picked candidate:
|
|
@@ -1303,7 +1329,7 @@ Longest phase because generation is async + the user picks per-Area. (Internally
|
|
|
1303
1329
|
**Picking is a deliberate step-through, not a bulk action (load-bearing):** the user going Area by Area and choosing the questions that matter IS the value of discovery — that per-question judgment shapes the whole downstream chain. So **nudge the user to step through and pick**; don't lead with bulk shortcuts.
|
|
1304
1330
|
- **Nudge to step through.** Walk the user Area-by-Area (drop into Area 1, `next`/`prev`) and invite deliberate picks per Area, with `show more` to expand an Area. The framing is "which of these should we dig into?", not "want all of them?".
|
|
1305
1331
|
- **Floor (HARD): at least 6 questions** across any Areas — below this, do NOT commit or proceed (tell them how many more to pick and keep them in the picker). There is NO "skip discovery" path — the agentic run needs a real question set to develop answers against. **Good coverage (SOFT): 15–20 questions** — nudge toward it on the Summary, but never block once ≥6. **No upper cap** — picking many (or all) is a legitimate explicit choice, never a default or fallback. (Uncovered scope is handled downstream when recommendations + requirements are generated and audited, so a thin set is the failure mode to prevent.)
|
|
1306
|
-
- **The default is the suggested 12
|
|
1332
|
+
- **The default is the suggested 12, never "all."** `proceed` commits exactly that suggested set (not every generated question). An ambiguous reply (`proceed`, `go`, `ok`) at this gate means **accept the suggested 12** — never silently accept everything. (The landing summarizes rather than lists them; `expert` is the path to read/adjust the set before committing.)
|
|
1307
1333
|
- **Taking all IS allowed — but only as an explicit user choice, never the default or a fallback.** If the user genuinely says "take all" / "all of them", honor it and commit them; that's a legitimate choice, not an error. Just never *offer* "I'll take all" as the default, and never auto-fall-back to it. (Worth mentioning once, not as a gate: every accepted question is answered individually in the agentic run, so accepting all of them across every Area means many more questions to answer and a much longer run — but it's the user's call.)
|
|
1308
1334
|
|
|
1309
1335
|
**Forbidden behaviors:**
|
|
@@ -1367,31 +1393,19 @@ The user always confirms; nothing is committed without their reply.
|
|
|
1367
1393
|
|
|
1368
1394
|
###### 7.3.1 — First render: the suggested-12 landing (the default)
|
|
1369
1395
|
|
|
1370
|
-
Render
|
|
1396
|
+
Render the **compact landing**: one summary line (counts + that the 12 most impactful were identified) and the action bar. Do NOT list the questions here — the full set is inspected on demand via `expert` (the Area walk). Keeping this terse is deliberate; the earlier "render all 12 in full" landing was too verbose. Full phase rail on this message (we just entered Discovery).
|
|
1371
1397
|
|
|
1372
1398
|
```text
|
|
1373
1399
|
Ritual build
|
|
1374
1400
|
✓ Job ✓ Scope ● Discovery ○ Recommendations ○ {Deliverable} ○ Implementation (Your agent)
|
|
1375
1401
|
|
|
1376
|
-
|
|
1377
|
-
|
|
1378
|
-
These 12 questions target the tradeoffs and unknowns most likely to change the plan.
|
|
1379
|
-
|
|
1380
|
-
{Area name 1}
|
|
1381
|
-
✓ 1. {question, full text, wrapped readably}
|
|
1382
|
-
✓ 2. {question}
|
|
1383
|
-
|
|
1384
|
-
{Area name 2}
|
|
1385
|
-
✓ 3. {question}
|
|
1386
|
-
✓ 4. {question}
|
|
1387
|
-
|
|
1388
|
-
{…every suggested question, grouped by Area, all 12 visible…}
|
|
1402
|
+
We've generated {M} discovery questions across {N} areas and identified the 12 most impactful questions.
|
|
1389
1403
|
|
|
1390
|
-
Reply `proceed` to
|
|
1404
|
+
Reply `proceed` to generate answers and recommendations for these questions, `expert` to inspect and adjust the question set, or `pause`.
|
|
1391
1405
|
```
|
|
1392
1406
|
|
|
1393
1407
|
Branch on reply:
|
|
1394
|
-
- **`proceed`** (or an ambiguous `ok`/`go`): commit exactly the 12
|
|
1408
|
+
- **`proceed`** (or an ambiguous `ok`/`go`): commit exactly the suggested 12 via § 7.4's single batch call (grouped per Area), then continue to § 7.5 → Step 8. Ambiguous replies (`ok`/`go`) map here. The questions aren't listed at this landing by design — a user who wants to read or change them before committing uses `expert`.
|
|
1395
1409
|
- **`expert`**: enter the Area walk below with the suggested 12 **pre-selected** (`picked so far: 12`, ✓ on each suggested row). Numbers TOGGLE in expert mode — typing a selected question's number unselects it.
|
|
1396
1410
|
- **`pause`**: stop here; nothing committed.
|
|
1397
1411
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<!-- GENERATED from references/build-flow.md by apps/cli/scripts/generate-lite-flow.js — DO NOT EDIT. -->
|
|
2
|
-
<!-- source-sha:
|
|
2
|
+
<!-- source-sha: 294b970c48a237b5 -->
|
|
3
3
|
|
|
4
4
|
# /ritual lite — fast build (generated; do not edit)
|
|
5
5
|
|
|
@@ -96,6 +96,31 @@ Walks the engineer from a free-form problem statement to vetted, accepted Ritual
|
|
|
96
96
|
|
|
97
97
|
Output: a fully-closed loop — **exploration in COMPLETE state, recommendations accepted (or explicitly handed off to an admin), build brief generated, code implemented, and `sync_implementation` called to register the result in the knowledge graph**. The engineer stays in the driver's seat through concise status updates and explicit pauses only at real decision gates.
|
|
98
98
|
|
|
99
|
+
### ON ENTRY — do this FIRST, then stay on the pipeline (load-bearing)
|
|
100
|
+
<!-- skill-options:no-gate-change: entry-point + planning-phase trigger — names the existing Step 0.7 first action and the existing pre-brief pipeline; adds no pause gate or options -->
|
|
101
|
+
|
|
102
|
+
The instant `/ritual build` is selected (including the no-subcommand default that treats the whole ask as the scope), your **next tool call** is the Step 0.7 **Job gate**: call `classify_work_item` with the user's ask, then render that gate. Everything between here and Step 0.7 — the vocabulary map, the build rail, the runtime contracts — is reference you apply *while* running the flow; it is **not** a reason to delay that first tool call.
|
|
103
|
+
|
|
104
|
+
**The pipeline — you are in the PLANNING phase until the build brief is accepted.** It runs as the six build-rail stages below, **in order**. **Advance through the numbered Steps exactly as written — do not skip ahead or reorder them.** The exact tool sequence lives in the Steps; follow them, don't reconstruct it from memory.
|
|
105
|
+
|
|
106
|
+
```
|
|
107
|
+
Job (classify) -> Scope -> Discovery -> Recommendations -> Build brief (Step 10) | Implementation (Step 11+)
|
|
108
|
+
[------------------------------- planning phase -------------------------------] [---- implementation ----]
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
**`create_exploration` is the END of Scope, not the start.** Scope = sub-problems (Step 4) → problem frame (Step 5) → `create_exploration` (Step 6). Creating the exploration before the sub-problems and frame exist forces a confusing backtrack — don't. After `classify_work_item` returns, render the Job gate, pick/create the workspace (Step 1), then do Steps 4 → 5 → 6 → 7 in order.
|
|
112
|
+
|
|
113
|
+
**The most common failures: (a) freelancing your own questions before classify, and (b) jumping ahead — creating the exploration or touching discovery before Scope is built. Do the next numbered Step; nothing else.**
|
|
114
|
+
|
|
115
|
+
**Forbidden for EVERY turn of the planning phase — not just the first (hard violations):**
|
|
116
|
+
|
|
117
|
+
- Inventing your own clarifying / scoping / "which option did you mean" questions, or using your agent's own question or prompt UI to gather scope. Scope is captured ONLY inside the flow, via `generate_problem_statement` (Step 4). The flow's own gates (Job gate, discovery, rec review) are the only pauses.
|
|
118
|
+
- Running ANY **implementation-phase** tooling before the build brief is generated and accepted (Step 10): file writes/edits, package installs, component/scaffold generators, design-asset generators, todo/task lists. (Examples by agent — v0: `GenerateDesignInspiration`, `TodoManager`, `shadcn add`; Cursor/Claude/etc. have equivalents.) Pulling implementation forward is a hard violation. These resume — and are expected — at **Step 11**.
|
|
119
|
+
- Reading repo files, `.ritual/config.json`, or calling `list_workspaces` before the Job gate is confirmed (Step 0.7). (Code-recon *reads* are fine later, at their step inside the planning phase; this only forbids them up front.)
|
|
120
|
+
- Emitting an empty, "let me think…", or narration-only turn with no tool call (e.g. "I'll start the build flow", "Let me gather context first"). Start the next step; don't announce it.
|
|
121
|
+
|
|
122
|
+
"Proceed with your best judgment" / "no clarification needed" does **not** mean skip the flow — it means run the flow with sane defaults and pause only at the real pause gates.
|
|
123
|
+
|
|
99
124
|
### Vocabulary mapping (engineer-tone)
|
|
100
125
|
|
|
101
126
|
The Ritual data model uses product-research terminology. This skill translates to engineer-natural terms when speaking to the user. The underlying API still uses original names — keep this table mental when you read tool inputs / outputs:
|
|
@@ -380,11 +405,12 @@ Resolution order:
|
|
|
380
405
|
|
|
381
406
|
<!-- skill-options:no-gate-change: adds explainer prose to the existing workspace-pick gate; options and pause unchanged -->
|
|
382
407
|
|
|
383
|
-
>
|
|
384
|
-
> A workspace keeps the context and reasoning Ritual needs for future runs.
|
|
385
|
-
>
|
|
386
|
-
> Where should Ritual save this run?
|
|
408
|
+
> A **workspace** is where Ritual keeps the context, decisions, and reasoning for related work — so future runs build on this one instead of starting cold. You're not in one yet.
|
|
387
409
|
> {numbered list}
|
|
410
|
+
>
|
|
411
|
+
> Where should this run live? (pick one, or I'll create a new workspace for you)
|
|
412
|
+
|
|
413
|
+
(Repo-agnostic on purpose: don't say "this repo" — agents like v0 have no repo. If there are NO existing workspaces, skip the list and just say *"Ritual will set up a workspace for this — a workspace keeps the context for related work. I'll name it `{name}`; sound good?"* and create it.)
|
|
388
414
|
|
|
389
415
|
**[LITE AUTO — no pause; auto-pick the recommended default]** for selection.
|
|
390
416
|
3. **Create a new one if none exist or user wants a fresh one.** Call `mcp__ritual__create_workspace` with a name — convention is to name it after the repo (basename of cwd, or origin remote). Confirm the name with the user first. **[LITE AUTO — no pause; auto-pick the recommended default]**
|
|
@@ -686,12 +712,12 @@ Steps:
|
|
|
686
712
|
<!-- skill-options:no-gate-change: f.1 is an OPTIONAL skippable sub-prompt nested in Step 1.5 step 6 (default skip); adds no tracked pause gate or Step header, so the structural fingerprint is unchanged (check-skill-options-contract green). -->
|
|
687
713
|
f.1 **Unchosen-candidates gate (2026-06-14, unchosen-options → discovery worktrees).** The candidates the user did NOT pick are paths worth not silently dropping. Render ONE compact, SKIPPABLE prompt — for each unchosen candidate, the user can spin up **discovery now** (a background worktree reasons it to a build brief) or **log it as a future job**. Promote DELIBERATELY: the default is to drop. (This gate is itself skipped in autonomous/worktree mode — never spawn discovery recursively.)
|
|
688
714
|
|
|
715
|
+
<!-- skill-options:no-gate-change: prose-only copy tightening of the discover/next-job/skip descriptions; option tokens + gate unchanged -->
|
|
689
716
|
```text
|
|
690
|
-
You picked #{k}.
|
|
691
|
-
• `discover <nums>` —
|
|
692
|
-
|
|
693
|
-
• `
|
|
694
|
-
• `skip` — drop them (default)
|
|
717
|
+
You picked #{k}. For the rest:
|
|
718
|
+
• `discover <nums>` — explore unpicked option(s) in parallel; returns a build brief, no code.
|
|
719
|
+
• `next-job <nums>` — save as future work.
|
|
720
|
+
• `skip` — drop them. Default.
|
|
695
721
|
```
|
|
696
722
|
|
|
697
723
|
Resolve the reply, then continue to Step 2 for the picked candidate:
|
|
@@ -1367,7 +1393,7 @@ Longest phase because generation is async + the user picks per-Area. (Internally
|
|
|
1367
1393
|
**Picking is a deliberate step-through, not a bulk action (load-bearing):** the user going Area by Area and choosing the questions that matter IS the value of discovery — that per-question judgment shapes the whole downstream chain. So **nudge the user to step through and pick**; don't lead with bulk shortcuts.
|
|
1368
1394
|
- **Nudge to step through.** Walk the user Area-by-Area (drop into Area 1, `next`/`prev`) and invite deliberate picks per Area, with `show more` to expand an Area. The framing is "which of these should we dig into?", not "want all of them?".
|
|
1369
1395
|
- **Floor (HARD): at least 6 questions** across any Areas — below this, do NOT commit or proceed (tell them how many more to pick and keep them in the picker). There is NO "skip discovery" path — the agentic run needs a real question set to develop answers against. **Good coverage (SOFT): 15–20 questions** — nudge toward it on the Summary, but never block once ≥6. **No upper cap** — picking many (or all) is a legitimate explicit choice, never a default or fallback. (Uncovered scope is handled downstream when recommendations + requirements are generated and audited, so a thin set is the failure mode to prevent.)
|
|
1370
|
-
- **The default is the suggested 12
|
|
1396
|
+
- **The default is the suggested 12, never "all."** `proceed` commits exactly that suggested set (not every generated question). An ambiguous reply (`proceed`, `go`, `ok`) at this gate means **accept the suggested 12** — never silently accept everything. (The landing summarizes rather than lists them; `expert` is the path to read/adjust the set before committing.)
|
|
1371
1397
|
- **Taking all IS allowed — but only as an explicit user choice, never the default or a fallback.** If the user genuinely says "take all" / "all of them", honor it and commit them; that's a legitimate choice, not an error. Just never *offer* "I'll take all" as the default, and never auto-fall-back to it. (Worth mentioning once, not as a gate: every accepted question is answered individually in the agentic run, so accepting all of them across every Area means many more questions to answer and a much longer run — but it's the user's call.)
|
|
1372
1398
|
|
|
1373
1399
|
**Forbidden behaviors:**
|
|
@@ -1431,31 +1457,19 @@ The user always confirms; nothing is committed without their reply.
|
|
|
1431
1457
|
|
|
1432
1458
|
###### 7.3.1 — First render: the suggested-12 landing (the default)
|
|
1433
1459
|
|
|
1434
|
-
Render
|
|
1460
|
+
Render the **compact landing**: one summary line (counts + that the 12 most impactful were identified) and the action bar. Do NOT list the questions here — the full set is inspected on demand via `expert` (the Area walk). Keeping this terse is deliberate; the earlier "render all 12 in full" landing was too verbose. Full phase rail on this message (we just entered Discovery).
|
|
1435
1461
|
|
|
1436
1462
|
```text
|
|
1437
1463
|
Ritual build
|
|
1438
1464
|
✓ Job ✓ Scope ● Discovery ○ Recommendations ○ {Deliverable} ○ Implementation (Your agent)
|
|
1439
1465
|
|
|
1440
|
-
|
|
1441
|
-
|
|
1442
|
-
These 12 questions target the tradeoffs and unknowns most likely to change the plan.
|
|
1443
|
-
|
|
1444
|
-
{Area name 1}
|
|
1445
|
-
✓ 1. {question, full text, wrapped readably}
|
|
1446
|
-
✓ 2. {question}
|
|
1447
|
-
|
|
1448
|
-
{Area name 2}
|
|
1449
|
-
✓ 3. {question}
|
|
1450
|
-
✓ 4. {question}
|
|
1451
|
-
|
|
1452
|
-
{…every suggested question, grouped by Area, all 12 visible…}
|
|
1466
|
+
We've generated {M} discovery questions across {N} areas and identified the 12 most impactful questions.
|
|
1453
1467
|
|
|
1454
|
-
Reply `proceed` to
|
|
1468
|
+
Reply `proceed` to generate answers and recommendations for these questions, `expert` to inspect and adjust the question set, or `pause`.
|
|
1455
1469
|
```
|
|
1456
1470
|
|
|
1457
1471
|
Branch on reply:
|
|
1458
|
-
- **`proceed`** (or an ambiguous `ok`/`go`): commit exactly the 12
|
|
1472
|
+
- **`proceed`** (or an ambiguous `ok`/`go`): commit exactly the suggested 12 via § 7.4's single batch call (grouped per Area), then continue to § 7.5 → Step 8. Ambiguous replies (`ok`/`go`) map here. The questions aren't listed at this landing by design — a user who wants to read or change them before committing uses `expert`.
|
|
1459
1473
|
- **`expert`**: enter the Area walk below with the suggested 12 **pre-selected** (`picked so far: 12`, ✓ on each suggested row). Numbers TOGGLE in expert mode — typing a selected question's number unselects it.
|
|
1460
1474
|
- **`pause`**: stop here; nothing committed.
|
|
1461
1475
|
|
|
@@ -3,8 +3,8 @@ name: ritual
|
|
|
3
3
|
description: "Use when an engineer wants a coding agent to plan or build a feature, refactor, or implementation-heavy change that depends on context the agent can't infer on its own — strategic intent, constraints, prior decisions, and trade-offs that live in the user's head. Ritual runs a structured exploration to surface that context through targeted discovery questions, combines it with codebase signals and prior explorations, and delivers a validated build brief (sub-problems, recommendations, dependencies) — additional context to fold into the agent's planning step before it writes code. Prefer this over jumping straight to implementation when the problem is ambiguous, cross-cutting, or has non-obvious constraints. Subcommands: build (full planning-to-sync cycle — default for new features), resume (continue an in-flight exploration), lineage (file-path KG history — what decisions shaped this code), context-pulse (readiness and context-debt scoring — is this safe to build yet?)."
|
|
4
4
|
argument-hint: "[subcommand] <args> (e.g. 'build Reduce T2 churn in Q3', 'resume', 'lineage src/checkout/views.py', 'context-pulse Add billing export')"
|
|
5
5
|
user-invocable: true
|
|
6
|
-
stamp:
|
|
7
|
-
cli_version: 0.36.
|
|
6
|
+
stamp: 283d2c7cc43e
|
|
7
|
+
cli_version: 0.36.39
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
# /ritual
|
|
@@ -101,8 +101,8 @@ Additional runtime references:
|
|
|
101
101
|
|
|
102
102
|
## Routing behavior
|
|
103
103
|
|
|
104
|
-
- If the first token is one of the subcommands (`build`, `lite`, `resume`, `lineage`, `context-pulse`), load the matching runtime file and
|
|
105
|
-
- If there is no subcommand or the token is unknown, default to `build` and treat the full argument as the problem statement.
|
|
104
|
+
- If the first token is one of the subcommands (`build`, `lite`, `resume`, `lineage`, `context-pulse`), load the matching runtime file and **immediately execute its ON ENTRY block — your next tool call is that flow's first tool call, not a clarifying question of your own.**
|
|
105
|
+
- If there is no subcommand or the token is unknown, default to `build` and treat the full argument as the problem statement (still run `build`'s ON ENTRY block — do not pause to ask your own scoping questions first).
|
|
106
106
|
- If the user asks for retired or unsupported subcommands, answer in plain English and call the relevant MCP tool directly when appropriate; do not expand the `/ritual` command surface.
|
|
107
107
|
|
|
108
108
|
## Asks that don't map to a subcommand
|
|
@@ -4,6 +4,31 @@ Walks the engineer from a free-form problem statement to vetted, accepted Ritual
|
|
|
4
4
|
|
|
5
5
|
Output: a fully-closed loop — **exploration in COMPLETE state, recommendations accepted (or explicitly handed off to an admin), build brief generated, code implemented, and `sync_implementation` called to register the result in the knowledge graph**. The engineer stays in the driver's seat through concise status updates and explicit pauses only at real decision gates.
|
|
6
6
|
|
|
7
|
+
### ON ENTRY — do this FIRST, then stay on the pipeline (load-bearing)
|
|
8
|
+
<!-- skill-options:no-gate-change: entry-point + planning-phase trigger — names the existing Step 0.7 first action and the existing pre-brief pipeline; adds no pause gate or options -->
|
|
9
|
+
|
|
10
|
+
The instant `/ritual build` is selected (including the no-subcommand default that treats the whole ask as the scope), your **next tool call** is the Step 0.7 **Job gate**: call `classify_work_item` with the user's ask, then render that gate. Everything between here and Step 0.7 — the vocabulary map, the build rail, the runtime contracts — is reference you apply *while* running the flow; it is **not** a reason to delay that first tool call.
|
|
11
|
+
|
|
12
|
+
**The pipeline — you are in the PLANNING phase until the build brief is accepted.** It runs as the six build-rail stages below, **in order**. **Advance through the numbered Steps exactly as written — do not skip ahead or reorder them.** The exact tool sequence lives in the Steps; follow them, don't reconstruct it from memory.
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
Job (classify) -> Scope -> Discovery -> Recommendations -> Build brief (Step 10) | Implementation (Step 11+)
|
|
16
|
+
[------------------------------- planning phase -------------------------------] [---- implementation ----]
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
**`create_exploration` is the END of Scope, not the start.** Scope = sub-problems (Step 4) → problem frame (Step 5) → `create_exploration` (Step 6). Creating the exploration before the sub-problems and frame exist forces a confusing backtrack — don't. After `classify_work_item` returns, render the Job gate, pick/create the workspace (Step 1), then do Steps 4 → 5 → 6 → 7 in order.
|
|
20
|
+
|
|
21
|
+
**The most common failures: (a) freelancing your own questions before classify, and (b) jumping ahead — creating the exploration or touching discovery before Scope is built. Do the next numbered Step; nothing else.**
|
|
22
|
+
|
|
23
|
+
**Forbidden for EVERY turn of the planning phase — not just the first (hard violations):**
|
|
24
|
+
|
|
25
|
+
- Inventing your own clarifying / scoping / "which option did you mean" questions, or using your agent's own question or prompt UI to gather scope. Scope is captured ONLY inside the flow, via `generate_problem_statement` (Step 4). The flow's own gates (Job gate, discovery, rec review) are the only pauses.
|
|
26
|
+
- Running ANY **implementation-phase** tooling before the build brief is generated and accepted (Step 10): file writes/edits, package installs, component/scaffold generators, design-asset generators, todo/task lists. (Examples by agent — v0: `GenerateDesignInspiration`, `TodoManager`, `shadcn add`; Cursor/Claude/etc. have equivalents.) Pulling implementation forward is a hard violation. These resume — and are expected — at **Step 11**.
|
|
27
|
+
- Reading repo files, `.ritual/config.json`, or calling `list_workspaces` before the Job gate is confirmed (Step 0.7). (Code-recon *reads* are fine later, at their step inside the planning phase; this only forbids them up front.)
|
|
28
|
+
- Emitting an empty, "let me think…", or narration-only turn with no tool call (e.g. "I'll start the build flow", "Let me gather context first"). Start the next step; don't announce it.
|
|
29
|
+
|
|
30
|
+
"Proceed with your best judgment" / "no clarification needed" does **not** mean skip the flow — it means run the flow with sane defaults and pause only at the real pause gates.
|
|
31
|
+
|
|
7
32
|
### Vocabulary mapping (engineer-tone)
|
|
8
33
|
|
|
9
34
|
The Ritual data model uses product-research terminology. This skill translates to engineer-natural terms when speaking to the user. The underlying API still uses original names — keep this table mental when you read tool inputs / outputs:
|
|
@@ -288,11 +313,12 @@ Resolution order:
|
|
|
288
313
|
|
|
289
314
|
<!-- skill-options:no-gate-change: adds explainer prose to the existing workspace-pick gate; options and pause unchanged -->
|
|
290
315
|
|
|
291
|
-
>
|
|
292
|
-
> A workspace keeps the context and reasoning Ritual needs for future runs.
|
|
293
|
-
>
|
|
294
|
-
> Where should Ritual save this run?
|
|
316
|
+
> A **workspace** is where Ritual keeps the context, decisions, and reasoning for related work — so future runs build on this one instead of starting cold. You're not in one yet.
|
|
295
317
|
> {numbered list}
|
|
318
|
+
>
|
|
319
|
+
> Where should this run live? (pick one, or I'll create a new workspace for you)
|
|
320
|
+
|
|
321
|
+
(Repo-agnostic on purpose: don't say "this repo" — agents like v0 have no repo. If there are NO existing workspaces, skip the list and just say *"Ritual will set up a workspace for this — a workspace keeps the context for related work. I'll name it `{name}`; sound good?"* and create it.)
|
|
296
322
|
|
|
297
323
|
**[USER PAUSE]** for selection.
|
|
298
324
|
3. **Create a new one if none exist or user wants a fresh one.** Call `mcp__ritual__create_workspace` with a name — convention is to name it after the repo (basename of cwd, or origin remote). Confirm the name with the user first. **[USER PAUSE]**
|
|
@@ -594,12 +620,12 @@ Steps:
|
|
|
594
620
|
<!-- skill-options:no-gate-change: f.1 is an OPTIONAL skippable sub-prompt nested in Step 1.5 step 6 (default skip); adds no tracked pause gate or Step header, so the structural fingerprint is unchanged (check-skill-options-contract green). -->
|
|
595
621
|
f.1 **Unchosen-candidates gate (2026-06-14, unchosen-options → discovery worktrees).** The candidates the user did NOT pick are paths worth not silently dropping. Render ONE compact, SKIPPABLE prompt — for each unchosen candidate, the user can spin up **discovery now** (a background worktree reasons it to a build brief) or **log it as a future job**. Promote DELIBERATELY: the default is to drop. (This gate is itself skipped in autonomous/worktree mode — never spawn discovery recursively.)
|
|
596
622
|
|
|
623
|
+
<!-- skill-options:no-gate-change: prose-only copy tightening of the discover/next-job/skip descriptions; option tokens + gate unchanged -->
|
|
597
624
|
```text
|
|
598
|
-
You picked #{k}.
|
|
599
|
-
• `discover <nums>` —
|
|
600
|
-
|
|
601
|
-
• `
|
|
602
|
-
• `skip` — drop them (default)
|
|
625
|
+
You picked #{k}. For the rest:
|
|
626
|
+
• `discover <nums>` — explore unpicked option(s) in parallel; returns a build brief, no code.
|
|
627
|
+
• `next-job <nums>` — save as future work.
|
|
628
|
+
• `skip` — drop them. Default.
|
|
603
629
|
```
|
|
604
630
|
|
|
605
631
|
Resolve the reply, then continue to Step 2 for the picked candidate:
|
|
@@ -1303,7 +1329,7 @@ Longest phase because generation is async + the user picks per-Area. (Internally
|
|
|
1303
1329
|
**Picking is a deliberate step-through, not a bulk action (load-bearing):** the user going Area by Area and choosing the questions that matter IS the value of discovery — that per-question judgment shapes the whole downstream chain. So **nudge the user to step through and pick**; don't lead with bulk shortcuts.
|
|
1304
1330
|
- **Nudge to step through.** Walk the user Area-by-Area (drop into Area 1, `next`/`prev`) and invite deliberate picks per Area, with `show more` to expand an Area. The framing is "which of these should we dig into?", not "want all of them?".
|
|
1305
1331
|
- **Floor (HARD): at least 6 questions** across any Areas — below this, do NOT commit or proceed (tell them how many more to pick and keep them in the picker). There is NO "skip discovery" path — the agentic run needs a real question set to develop answers against. **Good coverage (SOFT): 15–20 questions** — nudge toward it on the Summary, but never block once ≥6. **No upper cap** — picking many (or all) is a legitimate explicit choice, never a default or fallback. (Uncovered scope is handled downstream when recommendations + requirements are generated and audited, so a thin set is the failure mode to prevent.)
|
|
1306
|
-
- **The default is the suggested 12
|
|
1332
|
+
- **The default is the suggested 12, never "all."** `proceed` commits exactly that suggested set (not every generated question). An ambiguous reply (`proceed`, `go`, `ok`) at this gate means **accept the suggested 12** — never silently accept everything. (The landing summarizes rather than lists them; `expert` is the path to read/adjust the set before committing.)
|
|
1307
1333
|
- **Taking all IS allowed — but only as an explicit user choice, never the default or a fallback.** If the user genuinely says "take all" / "all of them", honor it and commit them; that's a legitimate choice, not an error. Just never *offer* "I'll take all" as the default, and never auto-fall-back to it. (Worth mentioning once, not as a gate: every accepted question is answered individually in the agentic run, so accepting all of them across every Area means many more questions to answer and a much longer run — but it's the user's call.)
|
|
1308
1334
|
|
|
1309
1335
|
**Forbidden behaviors:**
|
|
@@ -1367,31 +1393,19 @@ The user always confirms; nothing is committed without their reply.
|
|
|
1367
1393
|
|
|
1368
1394
|
###### 7.3.1 — First render: the suggested-12 landing (the default)
|
|
1369
1395
|
|
|
1370
|
-
Render
|
|
1396
|
+
Render the **compact landing**: one summary line (counts + that the 12 most impactful were identified) and the action bar. Do NOT list the questions here — the full set is inspected on demand via `expert` (the Area walk). Keeping this terse is deliberate; the earlier "render all 12 in full" landing was too verbose. Full phase rail on this message (we just entered Discovery).
|
|
1371
1397
|
|
|
1372
1398
|
```text
|
|
1373
1399
|
Ritual build
|
|
1374
1400
|
✓ Job ✓ Scope ● Discovery ○ Recommendations ○ {Deliverable} ○ Implementation (Your agent)
|
|
1375
1401
|
|
|
1376
|
-
|
|
1377
|
-
|
|
1378
|
-
These 12 questions target the tradeoffs and unknowns most likely to change the plan.
|
|
1379
|
-
|
|
1380
|
-
{Area name 1}
|
|
1381
|
-
✓ 1. {question, full text, wrapped readably}
|
|
1382
|
-
✓ 2. {question}
|
|
1383
|
-
|
|
1384
|
-
{Area name 2}
|
|
1385
|
-
✓ 3. {question}
|
|
1386
|
-
✓ 4. {question}
|
|
1387
|
-
|
|
1388
|
-
{…every suggested question, grouped by Area, all 12 visible…}
|
|
1402
|
+
We've generated {M} discovery questions across {N} areas and identified the 12 most impactful questions.
|
|
1389
1403
|
|
|
1390
|
-
Reply `proceed` to
|
|
1404
|
+
Reply `proceed` to generate answers and recommendations for these questions, `expert` to inspect and adjust the question set, or `pause`.
|
|
1391
1405
|
```
|
|
1392
1406
|
|
|
1393
1407
|
Branch on reply:
|
|
1394
|
-
- **`proceed`** (or an ambiguous `ok`/`go`): commit exactly the 12
|
|
1408
|
+
- **`proceed`** (or an ambiguous `ok`/`go`): commit exactly the suggested 12 via § 7.4's single batch call (grouped per Area), then continue to § 7.5 → Step 8. Ambiguous replies (`ok`/`go`) map here. The questions aren't listed at this landing by design — a user who wants to read or change them before committing uses `expert`.
|
|
1395
1409
|
- **`expert`**: enter the Area walk below with the suggested 12 **pre-selected** (`picked so far: 12`, ✓ on each suggested row). Numbers TOGGLE in expert mode — typing a selected question's number unselects it.
|
|
1396
1410
|
- **`pause`**: stop here; nothing committed.
|
|
1397
1411
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<!-- GENERATED from references/build-flow.md by apps/cli/scripts/generate-lite-flow.js — DO NOT EDIT. -->
|
|
2
|
-
<!-- source-sha:
|
|
2
|
+
<!-- source-sha: 294b970c48a237b5 -->
|
|
3
3
|
|
|
4
4
|
# /ritual lite — fast build (generated; do not edit)
|
|
5
5
|
|
|
@@ -96,6 +96,31 @@ Walks the engineer from a free-form problem statement to vetted, accepted Ritual
|
|
|
96
96
|
|
|
97
97
|
Output: a fully-closed loop — **exploration in COMPLETE state, recommendations accepted (or explicitly handed off to an admin), build brief generated, code implemented, and `sync_implementation` called to register the result in the knowledge graph**. The engineer stays in the driver's seat through concise status updates and explicit pauses only at real decision gates.
|
|
98
98
|
|
|
99
|
+
### ON ENTRY — do this FIRST, then stay on the pipeline (load-bearing)
|
|
100
|
+
<!-- skill-options:no-gate-change: entry-point + planning-phase trigger — names the existing Step 0.7 first action and the existing pre-brief pipeline; adds no pause gate or options -->
|
|
101
|
+
|
|
102
|
+
The instant `/ritual build` is selected (including the no-subcommand default that treats the whole ask as the scope), your **next tool call** is the Step 0.7 **Job gate**: call `classify_work_item` with the user's ask, then render that gate. Everything between here and Step 0.7 — the vocabulary map, the build rail, the runtime contracts — is reference you apply *while* running the flow; it is **not** a reason to delay that first tool call.
|
|
103
|
+
|
|
104
|
+
**The pipeline — you are in the PLANNING phase until the build brief is accepted.** It runs as the six build-rail stages below, **in order**. **Advance through the numbered Steps exactly as written — do not skip ahead or reorder them.** The exact tool sequence lives in the Steps; follow them, don't reconstruct it from memory.
|
|
105
|
+
|
|
106
|
+
```
|
|
107
|
+
Job (classify) -> Scope -> Discovery -> Recommendations -> Build brief (Step 10) | Implementation (Step 11+)
|
|
108
|
+
[------------------------------- planning phase -------------------------------] [---- implementation ----]
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
**`create_exploration` is the END of Scope, not the start.** Scope = sub-problems (Step 4) → problem frame (Step 5) → `create_exploration` (Step 6). Creating the exploration before the sub-problems and frame exist forces a confusing backtrack — don't. After `classify_work_item` returns, render the Job gate, pick/create the workspace (Step 1), then do Steps 4 → 5 → 6 → 7 in order.
|
|
112
|
+
|
|
113
|
+
**The most common failures: (a) freelancing your own questions before classify, and (b) jumping ahead — creating the exploration or touching discovery before Scope is built. Do the next numbered Step; nothing else.**
|
|
114
|
+
|
|
115
|
+
**Forbidden for EVERY turn of the planning phase — not just the first (hard violations):**
|
|
116
|
+
|
|
117
|
+
- Inventing your own clarifying / scoping / "which option did you mean" questions, or using your agent's own question or prompt UI to gather scope. Scope is captured ONLY inside the flow, via `generate_problem_statement` (Step 4). The flow's own gates (Job gate, discovery, rec review) are the only pauses.
|
|
118
|
+
- Running ANY **implementation-phase** tooling before the build brief is generated and accepted (Step 10): file writes/edits, package installs, component/scaffold generators, design-asset generators, todo/task lists. (Examples by agent — v0: `GenerateDesignInspiration`, `TodoManager`, `shadcn add`; Cursor/Claude/etc. have equivalents.) Pulling implementation forward is a hard violation. These resume — and are expected — at **Step 11**.
|
|
119
|
+
- Reading repo files, `.ritual/config.json`, or calling `list_workspaces` before the Job gate is confirmed (Step 0.7). (Code-recon *reads* are fine later, at their step inside the planning phase; this only forbids them up front.)
|
|
120
|
+
- Emitting an empty, "let me think…", or narration-only turn with no tool call (e.g. "I'll start the build flow", "Let me gather context first"). Start the next step; don't announce it.
|
|
121
|
+
|
|
122
|
+
"Proceed with your best judgment" / "no clarification needed" does **not** mean skip the flow — it means run the flow with sane defaults and pause only at the real pause gates.
|
|
123
|
+
|
|
99
124
|
### Vocabulary mapping (engineer-tone)
|
|
100
125
|
|
|
101
126
|
The Ritual data model uses product-research terminology. This skill translates to engineer-natural terms when speaking to the user. The underlying API still uses original names — keep this table mental when you read tool inputs / outputs:
|
|
@@ -380,11 +405,12 @@ Resolution order:
|
|
|
380
405
|
|
|
381
406
|
<!-- skill-options:no-gate-change: adds explainer prose to the existing workspace-pick gate; options and pause unchanged -->
|
|
382
407
|
|
|
383
|
-
>
|
|
384
|
-
> A workspace keeps the context and reasoning Ritual needs for future runs.
|
|
385
|
-
>
|
|
386
|
-
> Where should Ritual save this run?
|
|
408
|
+
> A **workspace** is where Ritual keeps the context, decisions, and reasoning for related work — so future runs build on this one instead of starting cold. You're not in one yet.
|
|
387
409
|
> {numbered list}
|
|
410
|
+
>
|
|
411
|
+
> Where should this run live? (pick one, or I'll create a new workspace for you)
|
|
412
|
+
|
|
413
|
+
(Repo-agnostic on purpose: don't say "this repo" — agents like v0 have no repo. If there are NO existing workspaces, skip the list and just say *"Ritual will set up a workspace for this — a workspace keeps the context for related work. I'll name it `{name}`; sound good?"* and create it.)
|
|
388
414
|
|
|
389
415
|
**[LITE AUTO — no pause; auto-pick the recommended default]** for selection.
|
|
390
416
|
3. **Create a new one if none exist or user wants a fresh one.** Call `mcp__ritual__create_workspace` with a name — convention is to name it after the repo (basename of cwd, or origin remote). Confirm the name with the user first. **[LITE AUTO — no pause; auto-pick the recommended default]**
|
|
@@ -686,12 +712,12 @@ Steps:
|
|
|
686
712
|
<!-- skill-options:no-gate-change: f.1 is an OPTIONAL skippable sub-prompt nested in Step 1.5 step 6 (default skip); adds no tracked pause gate or Step header, so the structural fingerprint is unchanged (check-skill-options-contract green). -->
|
|
687
713
|
f.1 **Unchosen-candidates gate (2026-06-14, unchosen-options → discovery worktrees).** The candidates the user did NOT pick are paths worth not silently dropping. Render ONE compact, SKIPPABLE prompt — for each unchosen candidate, the user can spin up **discovery now** (a background worktree reasons it to a build brief) or **log it as a future job**. Promote DELIBERATELY: the default is to drop. (This gate is itself skipped in autonomous/worktree mode — never spawn discovery recursively.)
|
|
688
714
|
|
|
715
|
+
<!-- skill-options:no-gate-change: prose-only copy tightening of the discover/next-job/skip descriptions; option tokens + gate unchanged -->
|
|
689
716
|
```text
|
|
690
|
-
You picked #{k}.
|
|
691
|
-
• `discover <nums>` —
|
|
692
|
-
|
|
693
|
-
• `
|
|
694
|
-
• `skip` — drop them (default)
|
|
717
|
+
You picked #{k}. For the rest:
|
|
718
|
+
• `discover <nums>` — explore unpicked option(s) in parallel; returns a build brief, no code.
|
|
719
|
+
• `next-job <nums>` — save as future work.
|
|
720
|
+
• `skip` — drop them. Default.
|
|
695
721
|
```
|
|
696
722
|
|
|
697
723
|
Resolve the reply, then continue to Step 2 for the picked candidate:
|
|
@@ -1367,7 +1393,7 @@ Longest phase because generation is async + the user picks per-Area. (Internally
|
|
|
1367
1393
|
**Picking is a deliberate step-through, not a bulk action (load-bearing):** the user going Area by Area and choosing the questions that matter IS the value of discovery — that per-question judgment shapes the whole downstream chain. So **nudge the user to step through and pick**; don't lead with bulk shortcuts.
|
|
1368
1394
|
- **Nudge to step through.** Walk the user Area-by-Area (drop into Area 1, `next`/`prev`) and invite deliberate picks per Area, with `show more` to expand an Area. The framing is "which of these should we dig into?", not "want all of them?".
|
|
1369
1395
|
- **Floor (HARD): at least 6 questions** across any Areas — below this, do NOT commit or proceed (tell them how many more to pick and keep them in the picker). There is NO "skip discovery" path — the agentic run needs a real question set to develop answers against. **Good coverage (SOFT): 15–20 questions** — nudge toward it on the Summary, but never block once ≥6. **No upper cap** — picking many (or all) is a legitimate explicit choice, never a default or fallback. (Uncovered scope is handled downstream when recommendations + requirements are generated and audited, so a thin set is the failure mode to prevent.)
|
|
1370
|
-
- **The default is the suggested 12
|
|
1396
|
+
- **The default is the suggested 12, never "all."** `proceed` commits exactly that suggested set (not every generated question). An ambiguous reply (`proceed`, `go`, `ok`) at this gate means **accept the suggested 12** — never silently accept everything. (The landing summarizes rather than lists them; `expert` is the path to read/adjust the set before committing.)
|
|
1371
1397
|
- **Taking all IS allowed — but only as an explicit user choice, never the default or a fallback.** If the user genuinely says "take all" / "all of them", honor it and commit them; that's a legitimate choice, not an error. Just never *offer* "I'll take all" as the default, and never auto-fall-back to it. (Worth mentioning once, not as a gate: every accepted question is answered individually in the agentic run, so accepting all of them across every Area means many more questions to answer and a much longer run — but it's the user's call.)
|
|
1372
1398
|
|
|
1373
1399
|
**Forbidden behaviors:**
|
|
@@ -1431,31 +1457,19 @@ The user always confirms; nothing is committed without their reply.
|
|
|
1431
1457
|
|
|
1432
1458
|
###### 7.3.1 — First render: the suggested-12 landing (the default)
|
|
1433
1459
|
|
|
1434
|
-
Render
|
|
1460
|
+
Render the **compact landing**: one summary line (counts + that the 12 most impactful were identified) and the action bar. Do NOT list the questions here — the full set is inspected on demand via `expert` (the Area walk). Keeping this terse is deliberate; the earlier "render all 12 in full" landing was too verbose. Full phase rail on this message (we just entered Discovery).
|
|
1435
1461
|
|
|
1436
1462
|
```text
|
|
1437
1463
|
Ritual build
|
|
1438
1464
|
✓ Job ✓ Scope ● Discovery ○ Recommendations ○ {Deliverable} ○ Implementation (Your agent)
|
|
1439
1465
|
|
|
1440
|
-
|
|
1441
|
-
|
|
1442
|
-
These 12 questions target the tradeoffs and unknowns most likely to change the plan.
|
|
1443
|
-
|
|
1444
|
-
{Area name 1}
|
|
1445
|
-
✓ 1. {question, full text, wrapped readably}
|
|
1446
|
-
✓ 2. {question}
|
|
1447
|
-
|
|
1448
|
-
{Area name 2}
|
|
1449
|
-
✓ 3. {question}
|
|
1450
|
-
✓ 4. {question}
|
|
1451
|
-
|
|
1452
|
-
{…every suggested question, grouped by Area, all 12 visible…}
|
|
1466
|
+
We've generated {M} discovery questions across {N} areas and identified the 12 most impactful questions.
|
|
1453
1467
|
|
|
1454
|
-
Reply `proceed` to
|
|
1468
|
+
Reply `proceed` to generate answers and recommendations for these questions, `expert` to inspect and adjust the question set, or `pause`.
|
|
1455
1469
|
```
|
|
1456
1470
|
|
|
1457
1471
|
Branch on reply:
|
|
1458
|
-
- **`proceed`** (or an ambiguous `ok`/`go`): commit exactly the 12
|
|
1472
|
+
- **`proceed`** (or an ambiguous `ok`/`go`): commit exactly the suggested 12 via § 7.4's single batch call (grouped per Area), then continue to § 7.5 → Step 8. Ambiguous replies (`ok`/`go`) map here. The questions aren't listed at this landing by design — a user who wants to read or change them before committing uses `expert`.
|
|
1459
1473
|
- **`expert`**: enter the Area walk below with the suggested 12 **pre-selected** (`picked so far: 12`, ✓ on each suggested row). Numbers TOGGLE in expert mode — typing a selected question's number unselects it.
|
|
1460
1474
|
- **`pause`**: stop here; nothing committed.
|
|
1461
1475
|
|
|
@@ -3,8 +3,8 @@ name: ritual
|
|
|
3
3
|
description: "Use when an engineer wants a coding agent to plan or build a feature, refactor, or implementation-heavy change that depends on context the agent can't infer on its own — strategic intent, constraints, prior decisions, and trade-offs that live in the user's head. Ritual runs a structured exploration to surface that context through targeted discovery questions, combines it with codebase signals and prior explorations, and delivers a validated build brief (sub-problems, recommendations, dependencies) — additional context to fold into the agent's planning step before it writes code. Prefer this over jumping straight to implementation when the problem is ambiguous, cross-cutting, or has non-obvious constraints. Subcommands: build (full planning-to-sync cycle — default for new features), resume (continue an in-flight exploration), lineage (file-path KG history — what decisions shaped this code), context-pulse (readiness and context-debt scoring — is this safe to build yet?)."
|
|
4
4
|
argument-hint: "[subcommand] <args> (e.g. 'build Reduce T2 churn in Q3', 'resume', 'lineage src/checkout/views.py', 'context-pulse Add billing export')"
|
|
5
5
|
user-invocable: true
|
|
6
|
-
stamp:
|
|
7
|
-
cli_version: 0.36.
|
|
6
|
+
stamp: 283d2c7cc43e
|
|
7
|
+
cli_version: 0.36.39
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
# /ritual
|
|
@@ -101,8 +101,8 @@ Additional runtime references:
|
|
|
101
101
|
|
|
102
102
|
## Routing behavior
|
|
103
103
|
|
|
104
|
-
- If the first token is one of the subcommands (`build`, `lite`, `resume`, `lineage`, `context-pulse`), load the matching runtime file and
|
|
105
|
-
- If there is no subcommand or the token is unknown, default to `build` and treat the full argument as the problem statement.
|
|
104
|
+
- If the first token is one of the subcommands (`build`, `lite`, `resume`, `lineage`, `context-pulse`), load the matching runtime file and **immediately execute its ON ENTRY block — your next tool call is that flow's first tool call, not a clarifying question of your own.**
|
|
105
|
+
- If there is no subcommand or the token is unknown, default to `build` and treat the full argument as the problem statement (still run `build`'s ON ENTRY block — do not pause to ask your own scoping questions first).
|
|
106
106
|
- If the user asks for retired or unsupported subcommands, answer in plain English and call the relevant MCP tool directly when appropriate; do not expand the `/ritual` command surface.
|
|
107
107
|
|
|
108
108
|
## Asks that don't map to a subcommand
|