@ritualai/cli 0.7.14 โ†’ 0.7.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/README.md +44 -0
  2. package/package.json +1 -1
  3. package/skills/claude-code/ritual/.ritual-bundle.json +2 -2
  4. package/skills/claude-code/ritual/DESIGN.md +1 -1
  5. package/skills/claude-code/ritual/SKILL.md +59 -2
  6. package/skills/claude-code/ritual/manifest.json +18 -8
  7. package/skills/claude-code/ritual/references/brief-verification-checklist.md +169 -0
  8. package/skills/claude-code/ritual/references/build-flow.md +206 -20
  9. package/skills/claude-code/ritual/references/resume-flow.md +35 -13
  10. package/skills/claude-code/ritual/references/status-flow.md +94 -0
  11. package/skills/codex/ritual/.ritual-bundle.json +2 -2
  12. package/skills/codex/ritual/DESIGN.md +1 -1
  13. package/skills/codex/ritual/SKILL.md +59 -2
  14. package/skills/codex/ritual/manifest.json +18 -8
  15. package/skills/codex/ritual/references/brief-verification-checklist.md +169 -0
  16. package/skills/codex/ritual/references/build-flow.md +206 -20
  17. package/skills/codex/ritual/references/resume-flow.md +35 -13
  18. package/skills/codex/ritual/references/status-flow.md +94 -0
  19. package/skills/cursor/ritual/.ritual-bundle.json +2 -2
  20. package/skills/cursor/ritual/DESIGN.md +1 -1
  21. package/skills/cursor/ritual/SKILL.md +59 -2
  22. package/skills/cursor/ritual/manifest.json +18 -8
  23. package/skills/cursor/ritual/references/brief-verification-checklist.md +169 -0
  24. package/skills/cursor/ritual/references/build-flow.md +206 -20
  25. package/skills/cursor/ritual/references/resume-flow.md +35 -13
  26. package/skills/cursor/ritual/references/status-flow.md +94 -0
  27. package/skills/gemini/ritual/.ritual-bundle.json +2 -2
  28. package/skills/gemini/ritual/DESIGN.md +1 -1
  29. package/skills/gemini/ritual/SKILL.md +59 -2
  30. package/skills/gemini/ritual/manifest.json +18 -8
  31. package/skills/gemini/ritual/references/brief-verification-checklist.md +169 -0
  32. package/skills/gemini/ritual/references/build-flow.md +206 -20
  33. package/skills/gemini/ritual/references/resume-flow.md +35 -13
  34. package/skills/gemini/ritual/references/status-flow.md +94 -0
  35. package/skills/kiro/ritual/.ritual-bundle.json +2 -2
  36. package/skills/kiro/ritual/DESIGN.md +1 -1
  37. package/skills/kiro/ritual/SKILL.md +59 -2
  38. package/skills/kiro/ritual/manifest.json +18 -8
  39. package/skills/kiro/ritual/references/brief-verification-checklist.md +169 -0
  40. package/skills/kiro/ritual/references/build-flow.md +206 -20
  41. package/skills/kiro/ritual/references/resume-flow.md +35 -13
  42. package/skills/kiro/ritual/references/status-flow.md +94 -0
  43. package/skills/vscode/ritual/.ritual-bundle.json +2 -2
  44. package/skills/vscode/ritual/DESIGN.md +1 -1
  45. package/skills/vscode/ritual/SKILL.md +59 -2
  46. package/skills/vscode/ritual/manifest.json +18 -8
  47. package/skills/vscode/ritual/references/brief-verification-checklist.md +169 -0
  48. package/skills/vscode/ritual/references/build-flow.md +206 -20
  49. package/skills/vscode/ritual/references/resume-flow.md +35 -13
  50. package/skills/vscode/ritual/references/status-flow.md +94 -0
@@ -85,25 +85,47 @@ If exactly one in-flight exploration is recent and clearly the likely target, le
85
85
  >
86
86
  > Resume this? (Y/n, or `list`)
87
87
 
88
- If there are multiple plausible targets, group by state badge and show:
88
+ If there are multiple plausible targets, group by state badge and show. **One picker number per exploration; continuation prose is plain text under it, never its own list item.** Use the exact shape below:
89
89
 
90
90
  > Here's what you have in flight in **{workspace.name}**:
91
91
  >
92
- > **๐Ÿ“ still in discovery** (1)
93
- > - **{name}** โ€” {first 80 chars of problemStatement}
94
- > *Last touched {N} {days/hours} ago. Next: continue sub-problem generation.*
92
+ > **๐Ÿ“ still in discovery** ({count})
95
93
  >
96
- > **๐Ÿ’ฌ waiting on admin to accept recommendations** (2)
97
- > - **{name}** โ€” {โ€ฆ}
98
- > *Last touched {N} days ago. Next: admin reviews + accepts in Step 9.*
99
- > - **{name}** โ€” {โ€ฆ}
100
- > *โ€ฆ*
94
+ > 1. **{name}** โ€” {first 80 chars of problemStatement}
95
+ > Last touched {N} {days/hours} ago. Next: continue sub-problem generation.
101
96
  >
102
- > **โœ… ready for build brief** (1)
103
- > - **{name}** โ€” {โ€ฆ}
104
- > *Last touched {N} days ago. Next: generate the build brief.*
97
+ > **๐Ÿ’ฌ waiting on admin to accept recommendations** ({count})
105
98
  >
106
- > **Which one do you want to resume? (give me the number/name, or "none" to exit)**
99
+ > 2. **{name}** โ€” {โ€ฆ}
100
+ > Last touched {N} days ago. Next: admin reviews + accepts in Step 9.
101
+ > 3. **{name}** โ€” {โ€ฆ}
102
+ > Last touched {N} days ago. Next: โ€ฆ
103
+ >
104
+ > **โœ… ready for build brief** ({count})
105
+ >
106
+ > 4. **{name}** โ€” {โ€ฆ}
107
+ > Last touched {N} days ago. Next: generate the build brief.
108
+ >
109
+ > **Which one do you want to resume? Reply with the number, the name, or `none` to exit.**
110
+
111
+ **Rendering anti-pattern (load-bearing) โ€” observed 2026-05-15:**
112
+
113
+ - โŒ Numbering the SAME exploration's continuation lines (summary, "Last touched", "Next") as separate numbered items:
114
+ ```text
115
+ 1. Social shopping โ€” activate wishlist sharing
116
+ 1. Activate dormant wishlist sharing primitives...
117
+ 1. Last touched ~10 min ago. Next: generate the build brief.
118
+ 2. Join while booking โ€” post-order account claim
119
+ 2. Post-checkout account creation flow...
120
+ 2. Last touched ~2 hours ago. Next: admin reviews + accepts.
121
+ ```
122
+ Three `1.` lines + three `2.` lines is wrong. **Each exploration gets ONE picker number on its title line. The summary, last-touched, and next-action lines belong to that exploration as indented continuation prose โ€” never their own numbered or bulleted entries.**
123
+
124
+ - โŒ Using `-` bullets for explorations when the picker tells the user "reply with the number." Bullets have no numbers; the user can't say "I pick `-`."
125
+
126
+ - โŒ Restarting the picker count at each state bucket (`1.` under "still in discovery", then `1.` again under "waiting on admin"). Numbering is **flat across all buckets** so a single number unambiguously identifies one exploration.
127
+
128
+ **The correct shape is exactly:** state-bucket header โ†’ blank line โ†’ `{N}. **{name}** โ€” {summary}` โ†’ indented continuation prose (2-space indent, no leading marker) โ†’ blank line before next exploration. State-bucket count in parens `({count})` is informational and is NEVER a picker number.
107
129
 
108
130
  State badge โ†’ user-facing label + suggested next step (same table as `/ritual build` Step 1.5):
109
131
 
@@ -0,0 +1,94 @@
1
+ ## /ritual status
2
+
3
+ Thin in-chat mirror of the terminal CLI command `ritual status [--watch]` (CLI 0.7.14+).
4
+
5
+ The CLI is the primary affordance for the "I walked away from this run; let me check on it" case โ€” it works from any terminal, survives this agent session closing, and supports `--watch` for live tail. **This SKILL subcommand exists for the orthogonal case:** the user is still in the agent session, wants a quick status snapshot, and doesn't want to context-switch to a separate terminal.
6
+
7
+ Same content, two surfaces. Pick whichever fits the user's flow.
8
+
9
+ ### When to use this vs. the terminal CLI
10
+
11
+ | Context | Use |
12
+ |---|---|
13
+ | User is in chat with you and types `/ritual status` | This SKILL subcommand. |
14
+ | User is mid-run and walks away | Tell them about `ritual status --watch` in a separate terminal. Their session can close; the CLI keeps tailing. |
15
+ | User wants to script status / pipe to other tools | Terminal CLI. The SKILL is render-only; the CLI prints to stdout with proper exit codes. |
16
+ | User asks "what's happening?" without typing the slash | Plain English answer โ€” call `mcp__ritual__get_agentic_run` and respond naturally. Don't gratuitously invoke this subcommand. |
17
+
18
+ ### Steps
19
+
20
+ #### Step S1 โ€” Resolve the run
21
+
22
+ The subcommand can be invoked three ways:
23
+
24
+ 1. **`/ritual status`** (no arg) โ€” auto-resolve the current run from workspace context:
25
+ - If `.ritual/config.json` is bound (i.e. `/ritual init` was run in this repo), load `workspaceId` from there.
26
+ - Call `mcp__ritual__list_explorations(workspace_id)`, sort by `updatedAt` desc.
27
+ - For each of the top 5 most-recently-updated, call `mcp__ritual__list_agentic_runs(exploration_id, status='RUNNING', limit=1)` until one returns a run.
28
+ - If none has a RUNNING run, fall back to the most-recently-updated exploration with step != `COMPLETED`.
29
+ - If no workspace is bound to the project, ask the user for an exploration id or to run `/ritual init` first.
30
+
31
+ 2. **`/ritual status <exploration-id>`** โ€” skip auto-resolve, fetch that exploration directly.
32
+
33
+ 3. **`/ritual status --runs`** โ€” list every RUNNING agentic run across the workspace (multi-run case). Render as a numbered picker.
34
+
35
+ #### Step S2 โ€” Fetch state
36
+
37
+ Call in parallel:
38
+
39
+ - `mcp__ritual__get_exploration(exploration_id)` โ†’ exploration name, step, updatedAt, agenticProgress.
40
+ - `mcp__ritual__get_agentic_run(run_id)` IF a RUNNING run was found โ€” gives live progress + run id + status. Read from the **merged view** the MCP tool returns; never from raw `agentic_jobs.totalQuestions` or `agentic_jobs.progress.steps` directly (those fields have a known unwritten-for-`full_exploration_v1` bug).
41
+
42
+ #### Step S3 โ€” Render the run-first layout
43
+
44
+ Mirror the terminal CLI exactly. Run line first, exploration name as a footer parenthetical:
45
+
46
+ ```text
47
+ Run ba4d2b42-โ€ฆ ยท RUNNING for 17m 41s
48
+ Phase answering (58%)
49
+ Questions 42 / 67 ยท 0 failed
50
+ Activity last DB write 1m 12s ago
51
+ Pace ~14s/question ยท ETA ~5m 50s remaining
52
+ Next Recommendations (auto-advances when questions are done)
53
+
54
+ (Exploration: Join while booking โ€” post-order account claim)
55
+ 51f16182-โ€ฆ ยท step: DEVELOPING_ANSWERS
56
+ ```
57
+
58
+ Rendering rules:
59
+
60
+ - **Run line first.** "RUNNING for 17m 41s" is the headline.
61
+ - **Pace + ETA** computed client-side from `(now - run.startedAt) / progress.completedQuestions ร— (totalQuestions - completedQuestions)`. Only show when `completedQuestions >= 3` โ€” below that, render `Pace warming up โ€” check back in 30s`.
62
+ - **Activity** is the freshness signal โ€” if `last write` has been climbing past ~3 min without `completedQuestions` advancing, that's actionable info. Surface it plainly; do not invent a "stuck" diagnosis (that's `RecStallSweeper`'s job, server-side).
63
+ - **Next line** is heuristic based on `progress.phase`:
64
+ - `answering` โ†’ `Recommendations (auto-advances when questions are done)`
65
+ - `submitting` โ†’ `Recommendations`
66
+ - `recommendations` โ†’ `Build brief (after admin review)`
67
+ - `complete` / `failed` โ†’ `โ€”`
68
+ - any unknown โ†’ omit the line entirely
69
+ - **No run, but progress data exists** (run completed or never started): render `Run (no active run)` + phase + Activity. Useful when the user types `/ritual status` after a run finished.
70
+ - **No run, no progress**: render `Run (no run started yet)` + Step + Activity.
71
+
72
+ #### Step S4 โ€” Wrap up
73
+
74
+ After rendering, the agent's job is done. Do NOT auto-poll, do NOT enter a watch loop inside the chat. The CLI's `--watch` is the live-tail surface; this SKILL is a snapshot.
75
+
76
+ If the user wants to check again, they type `/ritual status` again. The agent re-runs S1โ€“S3 from scratch.
77
+
78
+ ### Tools used
79
+
80
+ Read-tier subset of the build-flow tools:
81
+
82
+ 1. `mcp__ritual__list_explorations` (auto-resolve)
83
+ 2. `mcp__ritual__list_agentic_runs` (find RUNNING)
84
+ 3. `mcp__ritual__get_exploration` (S2 โ€” name + step + progress)
85
+ 4. `mcp__ritual__get_agentic_run` (S2 โ€” merged live view)
86
+
87
+ No new MCP tools required. `/ritual status` is a thin orchestration over what already exists.
88
+
89
+ ### Anti-patterns
90
+
91
+ - **Don't introduce a "watch" mode inside this SKILL.** The terminal CLI's `--watch` is the live-tail surface. Re-implementing it in chat doubles the affordance and creates polling loops that survive past the user's intent.
92
+ - **Don't render raw `agentic_jobs` fields.** `AgenticJob.totalQuestions` and `progress.steps[*].status` are not written for `full_exploration_v1` runs. Reading them directly produces the "all-pending" snapshot lie surfaced 2026-05-15. The merged view returned by `get_agentic_run` is the only correct source.
93
+ - **Don't synthesize ETA from `progress.percent` alone.** Use the question-count math (`completedQuestions / elapsed ร— remaining`) because it's more accurate than the coarse percent rounded up at major step boundaries.
94
+ - **Don't gratuitously invoke this subcommand.** If the user asks "what's happening?" without typing `/ritual status`, just answer in plain English using `get_agentic_run`. The slash-command is for explicit status snapshots, not for every progress question.