@ritualai/cli 0.24.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/init.js +2 -0
- package/dist/commands/init.js.map +1 -1
- package/package.json +1 -1
- package/skills/claude-code/ritual/.ritual-bundle.json +2 -2
- package/skills/claude-code/ritual/references/brief-verification-checklist.md +12 -6
- package/skills/claude-code/ritual/references/build-flow.md +57 -88
- package/skills/claude-code/ritual/references/cli-output-contract.md +42 -26
- package/skills/claude-code/ritual/references/lite-flow.md +57 -88
- package/skills/claude-code/ritual/references/resume-flow.md +1 -1
- package/skills/codex/ritual/.ritual-bundle.json +2 -2
- package/skills/codex/ritual/references/brief-verification-checklist.md +12 -6
- package/skills/codex/ritual/references/build-flow.md +57 -88
- package/skills/codex/ritual/references/cli-output-contract.md +42 -26
- package/skills/codex/ritual/references/lite-flow.md +57 -88
- package/skills/codex/ritual/references/resume-flow.md +1 -1
- package/skills/cursor/ritual/.ritual-bundle.json +2 -2
- package/skills/cursor/ritual/references/brief-verification-checklist.md +12 -6
- package/skills/cursor/ritual/references/build-flow.md +57 -88
- package/skills/cursor/ritual/references/cli-output-contract.md +42 -26
- package/skills/cursor/ritual/references/lite-flow.md +57 -88
- package/skills/cursor/ritual/references/resume-flow.md +1 -1
- package/skills/gemini/ritual/.ritual-bundle.json +2 -2
- package/skills/gemini/ritual/references/brief-verification-checklist.md +12 -6
- package/skills/gemini/ritual/references/build-flow.md +57 -88
- package/skills/gemini/ritual/references/cli-output-contract.md +42 -26
- package/skills/gemini/ritual/references/lite-flow.md +57 -88
- package/skills/gemini/ritual/references/resume-flow.md +1 -1
- package/skills/kiro/ritual/.ritual-bundle.json +2 -2
- package/skills/kiro/ritual/references/brief-verification-checklist.md +12 -6
- package/skills/kiro/ritual/references/build-flow.md +57 -88
- package/skills/kiro/ritual/references/cli-output-contract.md +42 -26
- package/skills/kiro/ritual/references/lite-flow.md +57 -88
- package/skills/kiro/ritual/references/resume-flow.md +1 -1
- package/skills/vscode/ritual/.ritual-bundle.json +2 -2
- package/skills/vscode/ritual/references/brief-verification-checklist.md +12 -6
- package/skills/vscode/ritual/references/build-flow.md +57 -88
- package/skills/vscode/ritual/references/cli-output-contract.md +42 -26
- package/skills/vscode/ritual/references/lite-flow.md +57 -88
- package/skills/vscode/ritual/references/resume-flow.md +1 -1
|
@@ -27,7 +27,7 @@ Before running this flow, apply `references/cli-output-contract.md` and `referen
|
|
|
27
27
|
|
|
28
28
|
**Build rail is load-bearing.** Every top-level user-facing message below MUST begin with the 6-stage build rail per `references/cli-output-contract.md` § Build progress anchor. Examples in this file show the rail in context; the canonical stage table + `progressHeader(stage)` spec lives in the output contract. Do not drop the rail to save space.
|
|
29
29
|
|
|
30
|
-
For narrow/mobile chat surfaces, use the **compact progress anchor** defined in `references/cli-output-contract.md` § Build progress anchor (the `Ritual build ·
|
|
30
|
+
For narrow/mobile chat surfaces, use the **compact progress anchor** defined in `references/cli-output-contract.md` § Build progress anchor (the `Ritual build · 1/5 Scope` chip) instead of forcing the full five-stage rail to wrap. Same contract, different rendering.
|
|
31
31
|
|
|
32
32
|
### When to use
|
|
33
33
|
|
|
@@ -179,7 +179,7 @@ If there are **zero existing explorations** and `raw_input = null`, do not say "
|
|
|
179
179
|
|
|
180
180
|
```text
|
|
181
181
|
Ritual build
|
|
182
|
-
●
|
|
182
|
+
● Scope ○ Discovery ○ Recommendations ○ Build brief ○ Implementation (Your agent)
|
|
183
183
|
|
|
184
184
|
Heads-up: Ritual's build flow needs ~5 real decisions from you (workspace,
|
|
185
185
|
scope, discovery picks, rec acceptance, implementation approval). If your
|
|
@@ -575,11 +575,15 @@ If no seed file is found, OR the seed's `## The ask` doesn't match the current `
|
|
|
575
575
|
- use neutral labels like `agent_observed_scope_pressure` or `candidate_scope_pressure`, not `priority_considerations`
|
|
576
576
|
- never present the packet as authoritative; MCP/tooling decides final sub-problems, recommendations, and scope
|
|
577
577
|
|
|
578
|
-
C. `recon_digest` —
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
578
|
+
C. `recon_digest` — **internal-only by default; NOT surfaced to the user.** Recon
|
|
579
|
+
is silent plumbing inside Scope: we do NOT dump repo signals / constraints /
|
|
580
|
+
a recon summary back to the user. Keep a compact digest in working memory for
|
|
581
|
+
your own use (and to render ONLY if the user explicitly asks "what did you
|
|
582
|
+
find?"), but by default show nothing — the user's first gate is the explore
|
|
583
|
+
picker (§ 3.2, only when recon is genuinely ambiguous) or the problem frame
|
|
584
|
+
(Step 5). The `codebase_context_packet` still feeds Step 4 silently.
|
|
585
|
+
- keep it tight if ever shown: key surfaces, hard constraints, scope corrections
|
|
586
|
+
- never list every file read; never quote non-load-bearing comments
|
|
583
587
|
|
|
584
588
|
`codebase_context_packet` structure:
|
|
585
589
|
|
|
@@ -653,32 +657,15 @@ If no seed file is found, OR the seed's `## The ask` doesn't match the current `
|
|
|
653
657
|
Next: attach PRDs/tickets if they should shape scope, or `proceed` to continue.
|
|
654
658
|
```
|
|
655
659
|
|
|
656
|
-
|
|
660
|
+
**Explore-directions picker — the ONLY user-visible recon output, and only when recon is genuinely ambiguous.**
|
|
657
661
|
|
|
658
|
-
When recon surfaces two materially different
|
|
662
|
+
When (and ONLY when) recon surfaces two+ materially different directions for the same ask, present them as a **pick-one** headed **"What would you like to explore?"** — mark one recommended with a one-line reason, and pause with a concrete reply syntax. Do NOT preface it with a "Repo signals / Constraint" dump (recon is silent), and do NOT justify why the choice matters (no "picking the wrong one wastes scope" — just ask). Do not expose raw tier labels (use the translations from `references/cli-output-contract.md`).
|
|
659
663
|
|
|
660
664
|
```text
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
Repo signals:
|
|
664
|
-
- `GatewayForm` already supports "create account before checkout," but
|
|
665
|
-
redirects away from checkout to `customer:register`. There is no inline
|
|
666
|
-
or post-order account path today.
|
|
667
|
-
- Guest checkout is already wired through order placement:
|
|
668
|
-
`CheckoutSessionData.set_guest_email()`, `AbstractOrder.guest_email`, and
|
|
669
|
-
`build_submission()` preserve guest identity.
|
|
670
|
-
- `RegisterUserMixin` is the reusable account-creation surface:
|
|
671
|
-
user creation, `user_registered`, login, and registration email.
|
|
672
|
-
- `OrderPlacementMixin` and `post_checkout` are the clean hooks for
|
|
673
|
-
creating or claiming an account at order placement.
|
|
674
|
-
|
|
675
|
-
Constraint:
|
|
676
|
-
- Oscar's dynamic class loading via `get_class()` is the extension
|
|
677
|
-
pattern here. Implement with subclass-overridable views/mixins, not
|
|
678
|
-
monkey-patches.
|
|
665
|
+
Ritual build
|
|
666
|
+
● Scope ○ Discovery ○ Recommendations ○ Build brief ○ Implementation (Your agent)
|
|
679
667
|
|
|
680
|
-
|
|
681
|
-
"Join while booking" maps to two plausible features.
|
|
668
|
+
What would you like to explore?
|
|
682
669
|
|
|
683
670
|
1. Inline registration at checkout
|
|
684
671
|
Let new customers register on the checkout page itself instead of
|
|
@@ -695,15 +682,17 @@ If no seed file is found, OR the seed's `## The ask` doesn't match the current `
|
|
|
695
682
|
registration, or describe a different intent. Reply `pause` to stop here.
|
|
696
683
|
```
|
|
697
684
|
|
|
698
|
-
Notes on the
|
|
699
|
-
- **"
|
|
700
|
-
- **
|
|
685
|
+
Notes on the explore-directions shape:
|
|
686
|
+
- **Header is "What would you like to explore?"** — an invitation to pick a direction, NOT "Ambiguity to resolve." No preamble dump of repo signals/constraints; recon stays silent.
|
|
687
|
+
- **No editorializing** about why the choice matters (no "wastes scope" / "picking wrong is costly"). The options + the recommendation carry the signal; just ask.
|
|
688
|
+
- **Recommendation goes after the option name on the SAME line**, with a single concise reason on the line below. Keeps the options scannable.
|
|
701
689
|
- **`Next:` is a single line** ending in a concrete reply syntax (`reply N`), not an open-ended question. Lead with the recommended default; the escape hatch comes last.
|
|
702
690
|
- **The pulse line uses the user-facing label**, never the raw tier identifier.
|
|
691
|
+
- On pick, feed the chosen direction + the `codebase_context_packet` into Step 4's `generate_considerations`.
|
|
703
692
|
|
|
704
|
-
|
|
693
|
+
Capability Boundary Check (feature spans systems not in this repo) — **internal/packet-only; NOT displayed:**
|
|
705
694
|
|
|
706
|
-
When the user's ask requires capabilities that aren't present in this repo (frontend-only repo asked for full-stack feature, mobile repo with no API contract, etc.),
|
|
695
|
+
When the user's ask requires capabilities that aren't present in this repo (frontend-only repo asked for full-stack feature, mobile repo with no API contract, etc.), capture the boundary + the inferred default scope **into the `codebase_context_packet` only** — do **NOT** render it to the user (recon is silent). **Do not pause on this.** The packet drives `generate_considerations` to produce boundary-aware sub-problems against the repo's actual capability surface; the user's first real gate is the problem statement in Step 5, where they reshape scope if the default narrowing was wrong. NEVER continue as if the repo can implement the missing half; NEVER invent the missing systems. The block below is a **reference for what to capture in the packet**, not something to print.
|
|
707
696
|
|
|
708
697
|
```text
|
|
709
698
|
Code recon
|
|
@@ -754,19 +743,17 @@ If no seed file is found, OR the seed's `## The ask` doesn't match the current `
|
|
|
754
743
|
- **The pulse line stays parenthetical** with a user-facing reason (`repo boundary unresolved`), per the Pulse tier labels rule in `references/cli-output-contract.md`.
|
|
755
744
|
- **Internal classification (not user-facing):** track each candidate piece against the boundary as `in_repo_buildable`, `external_dependency_known`, `external_dependency_unknown`, `needs_additional_repo`, or `contract_first_candidate`. These shape how downstream scoring + build-brief generation handle the missing half. Stamp the inferred default scope as `inferred_scope` in the packet so `generate_considerations` / `generate_problem_statement` see it. None of these labels should appear in user-facing copy.
|
|
756
745
|
|
|
757
|
-
##### 3.2 —
|
|
746
|
+
##### 3.2 — Recon is silent; surface nothing unless ambiguous
|
|
758
747
|
|
|
759
|
-
|
|
748
|
+
**Recon runs silently.** Do NOT surface the recon digest, repo signals, constraints, or the `codebase_context_packet` to the user by default — recon is plumbing inside Scope. The packet feeds Step 4; the user sees nothing here.
|
|
760
749
|
|
|
761
|
-
|
|
762
|
-
- recon contradicts the user's stated scope,
|
|
763
|
-
- there are multiple plausible implementation areas and choosing wrong would waste work (use the ambiguity-case `recon_digest` shape above),
|
|
764
|
-
- a legal/product/business constraint is required before generation,
|
|
765
|
-
- the user explicitly asked to review recon before continuing.
|
|
750
|
+
**The ONLY user-visible recon output is the explore-directions picker (§ 3.1), and ONLY when recon is genuinely ambiguous** — two+ materially different directions for the same ask. Then render **"What would you like to explore?"** and pause for the pick. Do NOT justify why the pick matters (no "wastes scope").
|
|
766
751
|
|
|
767
|
-
|
|
752
|
+
For a crisp, single-direction ask: **render nothing** — go straight to sub-problem generation (Step 4) with the packet. The user's first gate is the problem frame (Step 5), where they reshape scope in plain English if the default was wrong.
|
|
768
753
|
|
|
769
|
-
|
|
754
|
+
**Capability boundary detection does NOT pause and is NOT displayed.** When recon shows the feature spans systems not in this repo, fold the boundary + the inferred default scope into the `codebase_context_packet` (silent — see § 3.1 internal classification), pick the default scope per the "Default narrowing logic" rule, and proceed. The user reshapes scope at Step 5 if needed.
|
|
755
|
+
|
|
756
|
+
If the user explicitly asks "what did you find?", you may show a tight digest then — otherwise stay silent.
|
|
770
757
|
|
|
771
758
|
**Pulse (Step 3 done):** Emit a pulse line — repo grounding just moved meaningfully (sources collected, agent inspected files, possibly KG hits). Compute per `/ritual context-pulse` § Step CP3 and render compact unless this is the FIRST pulse of the build flow, in which case use full.
|
|
772
759
|
|
|
@@ -789,36 +776,11 @@ Keep the list focused. 5–10 is the sweet spot; >20 dilutes the KG signal.
|
|
|
789
776
|
|
|
790
777
|
The codebase recon you just did handles the *code* grounding. Most real features ALSO have non-code context — PRDs, Jira/Linear tickets, design specs, meeting transcripts, Slack threads, customer-research notes — that get paraphrased into the problem statement and lose detail. Step 3.5 ingests those as first-class **knowledge sources** attached to the exploration BEFORE generating sub-problems, so the priorContext you'll see in Step 4 (`generate_considerations`) and downstream is grounded in what the user actually brought, not the paraphrase.
|
|
791
778
|
|
|
792
|
-
##### 3.5.1 —
|
|
793
|
-
|
|
794
|
-
Knowledge sources are a feature multiplier, not a mandatory gate. Ask for PRDs/tickets/designs/transcripts only when at least one of these is true:
|
|
795
|
-
|
|
796
|
-
- the ask is ambiguous or cross-functional,
|
|
797
|
-
- context-pulse / Reference Grounding is low,
|
|
798
|
-
- the user mentioned a PRD, ticket, design, chat, customer request, or meeting,
|
|
799
|
-
- the feature has legal, privacy, billing, permissions, enterprise, analytics, migration, or compliance constraints,
|
|
800
|
-
- code recon found implementation surfaces but not product intent.
|
|
801
|
-
|
|
802
|
-
When triggered, frame references as an optional booster, not a mandatory phase. The happy path is to continue. Keep the prompt tight — the user's decision here is simply "attach context or continue":
|
|
803
|
-
|
|
804
|
-
```text
|
|
805
|
-
Optional: add non-code context before scope generation.
|
|
806
|
-
|
|
807
|
-
Because this touches {constraint}, PRDs, tickets, designs, incidents, or
|
|
808
|
-
customer requests may change what we prioritize.
|
|
809
|
-
|
|
810
|
-
Reply `go` to continue with code context only.
|
|
811
|
-
Or paste files/text/URLs to attach context first.
|
|
812
|
-
Reply `pause` to stop here.
|
|
813
|
-
```
|
|
779
|
+
##### 3.5.1 — Reactive only — do NOT prompt for non-code context
|
|
814
780
|
|
|
815
|
-
|
|
781
|
+
**Do NOT proactively ask the user to attach PRDs/tickets/designs/transcripts.** This is a pure capability, not a gate — surfacing an "Optional: add non-code context" prompt before the user has even framed the problem is front-of-flow friction we deliberately removed (it also tends to over-justify *why* it matters, which is internal reasoning the user doesn't need). There is **no pause here.**
|
|
816
782
|
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
If none of the triggers apply, do **not** block. Print a non-blocking line and proceed:
|
|
820
|
-
|
|
821
|
-
> Proceeding with codebase context only. Paste a PRD/ticket anytime before discovery if it should shape the scope.
|
|
783
|
+
Handle knowledge sources **only reactively**: if the user *spontaneously* pastes a file/URL/text or says "use this PRD/ticket," ingest it via 3.5.2–3.5.4 below. Otherwise say nothing and proceed silently to Step 4 with code context only. The user can always attach context later via `/ritual context-pulse <exploration>` or by dragging refs in mid-flow.
|
|
822
784
|
|
|
823
785
|
##### 3.5.2 — Read the content
|
|
824
786
|
|
|
@@ -976,7 +938,7 @@ If `implementationCount === 0`: don't mention the KG check (silent — would jus
|
|
|
976
938
|
|
|
977
939
|
```text
|
|
978
940
|
Ritual build
|
|
979
|
-
|
|
941
|
+
● Scope ○ Discovery ○ Recommendations ○ Build brief ○ Implementation (Your agent)
|
|
980
942
|
|
|
981
943
|
Solving for these sub-problems
|
|
982
944
|
|
|
@@ -1111,9 +1073,9 @@ Store `exploration_id`. Move the progress header from Scope to Discovery:
|
|
|
1111
1073
|
|
|
1112
1074
|
```text
|
|
1113
1075
|
Ritual build
|
|
1114
|
-
✓
|
|
1076
|
+
✓ Scope ● Discovery ○ Recommendations ○ Build brief ○ Implementation (Your agent)
|
|
1115
1077
|
|
|
1116
|
-
Exploration created.
|
|
1078
|
+
Exploration created.
|
|
1117
1079
|
|
|
1118
1080
|
Next: generate discovery questions to resolve the implementation trade-offs.
|
|
1119
1081
|
```
|
|
@@ -1225,7 +1187,7 @@ Call `mcp__ritual__suggest_discovery_questions(exploration_id)`. Returns immedia
|
|
|
1225
1187
|
|
|
1226
1188
|
```text
|
|
1227
1189
|
Ritual build
|
|
1228
|
-
✓
|
|
1190
|
+
✓ Scope ● Discovery ○ Recommendations ○ Build brief ○ Implementation (Your agent)
|
|
1229
1191
|
|
|
1230
1192
|
Generating discovery questions for each area…
|
|
1231
1193
|
```
|
|
@@ -1282,7 +1244,7 @@ Open ON Area 1 with the **rail above and Area 1's questions below it** — never
|
|
|
1282
1244
|
|
|
1283
1245
|
```text
|
|
1284
1246
|
Ritual build
|
|
1285
|
-
✓
|
|
1247
|
+
✓ Scope ● Discovery ○ Recommendations ○ Build brief ○ Implementation (Your agent)
|
|
1286
1248
|
|
|
1287
1249
|
Question picking · Area 1 of {N} · {Area name} picked so far: 0
|
|
1288
1250
|
|
|
@@ -1478,7 +1440,7 @@ For `engineering`, `delivery`, and `operations` roles, show:
|
|
|
1478
1440
|
|
|
1479
1441
|
```text
|
|
1480
1442
|
Ritual build
|
|
1481
|
-
✓
|
|
1443
|
+
✓ Scope ● Discovery ○ Recommendations ○ Build brief ○ Implementation (Your agent)
|
|
1482
1444
|
|
|
1483
1445
|
Run discovery
|
|
1484
1446
|
|
|
@@ -1499,7 +1461,7 @@ For `product`, `design`, or explicitly PRD-style flows, answer review may be use
|
|
|
1499
1461
|
|
|
1500
1462
|
```text
|
|
1501
1463
|
Ritual build
|
|
1502
|
-
✓
|
|
1464
|
+
✓ Scope ● Discovery ○ Recommendations ○ Build brief ○ Implementation (Your agent)
|
|
1503
1465
|
|
|
1504
1466
|
Run discovery
|
|
1505
1467
|
|
|
@@ -1595,7 +1557,7 @@ Landing (first question, full rail + intro):
|
|
|
1595
1557
|
|
|
1596
1558
|
```text
|
|
1597
1559
|
Ritual build
|
|
1598
|
-
✓
|
|
1560
|
+
✓ Scope ● Discovery ○ Recommendations ○ Build brief ○ Implementation (Your agent)
|
|
1599
1561
|
|
|
1600
1562
|
Run Agentic Exploration
|
|
1601
1563
|
|
|
@@ -1705,7 +1667,7 @@ First category (rail shown):
|
|
|
1705
1667
|
|
|
1706
1668
|
```text
|
|
1707
1669
|
Ritual build
|
|
1708
|
-
✓
|
|
1670
|
+
✓ Scope ✓ Discovery ● Recommendations ○ Build brief ○ Implementation (Your agent)
|
|
1709
1671
|
|
|
1710
1672
|
Scope:
|
|
1711
1673
|
{one-line compressed scope — ~80-120 chars; truncate at a clause boundary, no ellipsis}
|
|
@@ -1793,7 +1755,7 @@ Editing is non-destructive and does not advance the flow — the user can `edit`
|
|
|
1793
1755
|
|
|
1794
1756
|
```text
|
|
1795
1757
|
Ritual build
|
|
1796
|
-
✓
|
|
1758
|
+
✓ Scope ✓ Discovery ✓ Recommendations ● Build brief ○ Implementation (Your agent)
|
|
1797
1759
|
|
|
1798
1760
|
Reviewed {N} recommendations.
|
|
1799
1761
|
|
|
@@ -2078,6 +2040,13 @@ Steps:
|
|
|
2078
2040
|
- `contradicted` — brief claim is wrong; the code does something different.
|
|
2079
2041
|
- `not_found` — symbol couldn't be located.
|
|
2080
2042
|
|
|
2043
|
+
**Narrating a finding (if you surface one before the summary): frame it as resolving drift, not as an error report.** Lead with *resolving drift between the brief and the codebase*, then ONE plain sentence describing the drift and where the real pattern lives. Do **not** lead with "X doesn't exist" / "references a function that doesn't exist" — a `not_found` / `contradicted` verdict is the verification working as intended (it caught a brief-vs-code gap before you shipped), not a failure to alarm the user about.
|
|
2044
|
+
|
|
2045
|
+
❌ `get_core_apps is not in the codebase — the brief's RB-1 references a function that doesn't exist. The actual pattern is direct INSTALLED_APPS manipulation (index + replace), as seen in tests/settings.py.`
|
|
2046
|
+
✅ `Resolving drift between the brief and the codebase: RB-1 cites get_core_apps, but the repo edits INSTALLED_APPS directly (index + replace — see tests/settings.py). Noting it in the verification.`
|
|
2047
|
+
|
|
2048
|
+
This is a progress line, not a gate — keep it to one sentence and continue; the structured findings land in `BUILD-BRIEF-VERIFICATION.md` and the Step 10d gate.
|
|
2049
|
+
|
|
2081
2050
|
5. **Write `BUILD-BRIEF-VERIFICATION.md`** to disk alongside `BUILD-BRIEF.md` using the schema in `references/brief-verification-checklist.md`. Cite file + line range + actual code snippet on every contradiction. Do not fabricate evidence.
|
|
2082
2051
|
|
|
2083
2052
|
6. **Sync the verification to Ritual's KG** — call `mcp__ritual__sync_brief_review` with:
|
|
@@ -2194,7 +2163,7 @@ End Step 10 with a single recommended action plus a cheap escape hatch — never
|
|
|
2194
2163
|
|
|
2195
2164
|
```text
|
|
2196
2165
|
Ritual build
|
|
2197
|
-
✓
|
|
2166
|
+
✓ Scope ✓ Discovery ✓ Recommendations ● Build brief ○ Implementation (Your agent)
|
|
2198
2167
|
|
|
2199
2168
|
Build brief ready
|
|
2200
2169
|
|
|
@@ -2300,7 +2269,7 @@ Steps:
|
|
|
2300
2269
|
|
|
2301
2270
|
```text
|
|
2302
2271
|
Reply `go` to start implementation with the UX review as plan-mode input,
|
|
2303
|
-
or `
|
|
2272
|
+
or `drill {N}` / `pause` per the earlier options.
|
|
2304
2273
|
```
|
|
2305
2274
|
|
|
2306
2275
|
When the user replies `go`, continue to Step 11 with the explicit instruction (passed to plan mode) to read both `BUILD-BRIEF.md` AND `UX-REVIEW.md`, and to use the "Plan Mode Prompt" block at the bottom of `UX-REVIEW.md` as its first numbered list — not a generic plan.
|
|
@@ -2324,7 +2293,7 @@ The Implementation phase landing — full rail (the rail moves to Implementation
|
|
|
2324
2293
|
|
|
2325
2294
|
```text
|
|
2326
2295
|
Ritual build
|
|
2327
|
-
✓
|
|
2296
|
+
✓ Scope ✓ Discovery ✓ Recommendations ✓ Build brief ● Implementation (Your agent)
|
|
2328
2297
|
|
|
2329
2298
|
Implementation (Your agent)
|
|
2330
2299
|
|
|
@@ -2650,7 +2619,7 @@ Before asking for permission, frame the call in language the user can act on. `s
|
|
|
2650
2619
|
|
|
2651
2620
|
```text
|
|
2652
2621
|
Ritual build
|
|
2653
|
-
✓
|
|
2622
|
+
✓ Scope ✓ Discovery ✓ Recommendations ✓ Build brief ● Implementation (Your agent)
|
|
2654
2623
|
|
|
2655
2624
|
Log implementation
|
|
2656
2625
|
|
|
@@ -2693,7 +2662,7 @@ When sync_implementation succeeds, the response includes:
|
|
|
2693
2662
|
|
|
2694
2663
|
```text
|
|
2695
2664
|
Ritual build
|
|
2696
|
-
✓
|
|
2665
|
+
✓ Scope ✓ Discovery ✓ Recommendations ✓ Build brief ✓ Implementation (Your agent)
|
|
2697
2666
|
|
|
2698
2667
|
✓ Logged implementation for {exploration name}
|
|
2699
2668
|
|
|
@@ -2728,7 +2697,7 @@ User-visible (full rail — sync failure is a top-level state):
|
|
|
2728
2697
|
|
|
2729
2698
|
```text
|
|
2730
2699
|
Ritual build
|
|
2731
|
-
✓
|
|
2700
|
+
✓ Scope ✓ Discovery ✓ Recommendations ✓ Build brief ● Implementation (Your agent)
|
|
2732
2701
|
|
|
2733
2702
|
Sync failed (recoverable)
|
|
2734
2703
|
|
|
@@ -2766,7 +2735,7 @@ If stale, surface to the user with the full rail (top-level decision gate):
|
|
|
2766
2735
|
|
|
2767
2736
|
```text
|
|
2768
2737
|
Ritual build
|
|
2769
|
-
✓
|
|
2738
|
+
✓ Scope ✓ Discovery ✓ Recommendations ✓ Build brief ● Implementation (Your agent)
|
|
2770
2739
|
|
|
2771
2740
|
Pending sync is stale
|
|
2772
2741
|
|
|
@@ -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
|
|
@@ -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:**
|
|
@@ -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
|
|