@fro.bot/systematic 2.33.3 → 3.0.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.
Files changed (112) hide show
  1. package/ATTRIBUTIONS.md +1 -1
  2. package/agents/design/design-iterator.md +1 -0
  3. package/agents/research/best-practices-researcher.md +6 -8
  4. package/agents/review/pattern-recognition-specialist.md +1 -1
  5. package/agents/workflow/systematic-implementer.md +1 -0
  6. package/dist/cli.js +348 -53
  7. package/dist/{index-vyzhzvap.js → index-yskzf7vh.js} +587 -386
  8. package/dist/index.js +100 -155
  9. package/dist/lib/agent-overlays.d.ts +0 -1
  10. package/dist/lib/agent-resolver.d.ts +28 -0
  11. package/dist/lib/bootstrap.d.ts +8 -1
  12. package/dist/lib/bundled-names.d.ts +3 -3
  13. package/dist/lib/pi-delegate-session.d.ts +31 -0
  14. package/dist/lib/pi-delegate-tool.d.ts +42 -0
  15. package/dist/lib/removed-names.d.ts +3 -3
  16. package/dist/lib/setup.d.ts +36 -0
  17. package/dist/lib/skill-loader.d.ts +1 -2
  18. package/dist/lib/skill-resolver.d.ts +39 -0
  19. package/dist/lib/skill-tool.d.ts +2 -11
  20. package/dist/lib/skills.d.ts +1 -9
  21. package/dist/lib/source-model-defaults.d.ts +1 -1
  22. package/dist/pi.d.ts +7 -0
  23. package/dist/pi.js +3641 -0
  24. package/dist/schemas/systematic-config.schema.json +47 -242
  25. package/package.json +29 -6
  26. package/skills/ce-brainstorm/references/handoff.md +5 -26
  27. package/skills/ce-brainstorm/references/universal-brainstorming.md +0 -1
  28. package/skills/ce-compound/SKILL.md +8 -12
  29. package/skills/ce-ideate/references/post-ideation-workflow.md +21 -85
  30. package/skills/ce-plan/SKILL.md +6 -6
  31. package/skills/ce-plan/references/deepening-workflow.md +6 -7
  32. package/skills/ce-plan/references/plan-handoff.md +1 -17
  33. package/skills/ce-plan/references/universal-planning.md +0 -4
  34. package/skills/ce-review/SKILL.md +10 -19
  35. package/skills/ce-review/references/persona-catalog.md +2 -7
  36. package/skills/ce-review/references/review-output-template.md +0 -1
  37. package/skills/ce-work/SKILL.md +1 -1
  38. package/skills/deepen-plan/SKILL.md +6 -7
  39. package/skills/document-review/SKILL.md +2 -2
  40. package/skills/git-commit-push-pr/SKILL.md +1 -2
  41. package/skills/lfg/SKILL.md +1 -1
  42. package/skills/onboarding/SKILL.md +1 -12
  43. package/skills/orchestrating-subagents/SKILL.md +2 -2
  44. package/skills/slfg/SKILL.md +2 -3
  45. package/skills/test-browser/SKILL.md +2 -2
  46. package/skills/todos/SKILL.md +239 -0
  47. package/skills/writing-skills/SKILL.md +102 -1
  48. package/skills/{writing-systematic-skills → writing-skills}/references/foundation-conventions.md +5 -5
  49. package/agents/design/design-implementation-reviewer.md +0 -95
  50. package/agents/design/figma-design-sync.md +0 -173
  51. package/agents/docs/ankane-readme-writer.md +0 -51
  52. package/agents/review/cli-agent-readiness-reviewer.md +0 -418
  53. package/agents/review/data-integrity-guardian.md +0 -72
  54. package/agents/review/data-migration-expert.md +0 -99
  55. package/agents/review/dhh-rails-reviewer.md +0 -46
  56. package/agents/review/julik-frontend-races-reviewer.md +0 -49
  57. package/agents/review/kieran-python-reviewer.md +0 -47
  58. package/agents/review/kieran-rails-reviewer.md +0 -47
  59. package/agents/review/performance-oracle.md +0 -112
  60. package/agents/review/schema-drift-detector.md +0 -143
  61. package/agents/review/security-sentinel.md +0 -95
  62. package/agents/workflow/lint.md +0 -17
  63. package/dist/lib/converter.d.ts +0 -14
  64. package/skills/andrew-kane-gem-writer/SKILL.md +0 -184
  65. package/skills/andrew-kane-gem-writer/references/database-adapters.md +0 -231
  66. package/skills/andrew-kane-gem-writer/references/module-organization.md +0 -121
  67. package/skills/andrew-kane-gem-writer/references/rails-integration.md +0 -183
  68. package/skills/andrew-kane-gem-writer/references/resources.md +0 -119
  69. package/skills/andrew-kane-gem-writer/references/testing-patterns.md +0 -261
  70. package/skills/changelog/SKILL.md +0 -139
  71. package/skills/claude-permissions-optimizer/SKILL.md +0 -166
  72. package/skills/claude-permissions-optimizer/scripts/extract-commands.mjs +0 -655
  73. package/skills/claude-permissions-optimizer/scripts/normalize.mjs +0 -151
  74. package/skills/dhh-rails-style/SKILL.md +0 -186
  75. package/skills/dhh-rails-style/references/architecture.md +0 -653
  76. package/skills/dhh-rails-style/references/controllers.md +0 -303
  77. package/skills/dhh-rails-style/references/frontend.md +0 -510
  78. package/skills/dhh-rails-style/references/gems.md +0 -266
  79. package/skills/dhh-rails-style/references/models.md +0 -359
  80. package/skills/dhh-rails-style/references/testing.md +0 -338
  81. package/skills/dspy-ruby/SKILL.md +0 -737
  82. package/skills/dspy-ruby/assets/config-template.rb +0 -187
  83. package/skills/dspy-ruby/assets/module-template.rb +0 -300
  84. package/skills/dspy-ruby/assets/signature-template.rb +0 -221
  85. package/skills/dspy-ruby/references/core-concepts.md +0 -674
  86. package/skills/dspy-ruby/references/observability.md +0 -366
  87. package/skills/dspy-ruby/references/optimization.md +0 -603
  88. package/skills/dspy-ruby/references/providers.md +0 -418
  89. package/skills/dspy-ruby/references/toolsets.md +0 -502
  90. package/skills/every-style-editor/SKILL.md +0 -135
  91. package/skills/every-style-editor/references/EVERY_WRITE_STYLE.md +0 -529
  92. package/skills/feature-video/SKILL.md +0 -383
  93. package/skills/gemini-imagegen/SKILL.md +0 -237
  94. package/skills/gemini-imagegen/requirements.txt +0 -2
  95. package/skills/gemini-imagegen/scripts/compose_images.py +0 -157
  96. package/skills/gemini-imagegen/scripts/edit_image.py +0 -144
  97. package/skills/gemini-imagegen/scripts/gemini_images.py +0 -263
  98. package/skills/gemini-imagegen/scripts/generate_image.py +0 -133
  99. package/skills/gemini-imagegen/scripts/multi_turn_chat.py +0 -216
  100. package/skills/generate_command/SKILL.md +0 -164
  101. package/skills/orchestrating-swarms/SKILL.md +0 -1723
  102. package/skills/proof/SKILL.md +0 -291
  103. package/skills/proof/references/hitl-review.md +0 -368
  104. package/skills/rclone/SKILL.md +0 -150
  105. package/skills/rclone/scripts/check_setup.sh +0 -60
  106. package/skills/setup/SKILL.md +0 -22
  107. package/skills/test-xcode/SKILL.md +0 -214
  108. package/skills/todo-create/SKILL.md +0 -109
  109. package/skills/todo-resolve/SKILL.md +0 -68
  110. package/skills/todo-triage/SKILL.md +0 -70
  111. package/skills/writing-systematic-skills/SKILL.md +0 -119
  112. /package/skills/{todo-create → todos}/assets/todo-template.md +0 -0
@@ -273,12 +273,10 @@ After the learning is written and the refresh decision is made, check whether th
273
273
 
274
274
  Based on problem type, optionally invoke specialized agents to review the documentation:
275
275
 
276
- - **performance_issue** → `systematic:review:performance-oracle`
277
- - **security_issue** → `systematic:review:security-sentinel`
278
- - **database_issue** → `systematic:review:data-integrity-guardian`
276
+ - **performance_issue** → `systematic:review:performance-reviewer`
277
+ - **security_issue** → `systematic:review:security-reviewer`
278
+ - **database_issue** → `systematic:review:data-migrations-reviewer`
279
279
  - Any code-heavy issue → always run `systematic:review:code-simplicity-reviewer`, and additionally run the kieran reviewer that matches the repo's primary stack:
280
- - Ruby/Rails → also run `systematic:review:kieran-rails-reviewer`
281
- - Python → also run `systematic:review:kieran-python-reviewer`
282
280
  - TypeScript/JavaScript → also run `systematic:review:kieran-typescript-reviewer`
283
281
  - Other stacks → no kieran reviewer needed
284
282
 
@@ -397,8 +395,8 @@ Subagent Results:
397
395
  ✓ Session History: 3 prior sessions on same branch, 2 failed approaches surfaced
398
396
 
399
397
  Specialized Agent Reviews (Auto-Triggered):
400
- ✓ performance-oracle: Validated query optimization approach
401
- ✓ kieran-rails-reviewer: Code examples meet Rails conventions
398
+ ✓ performance-reviewer: Validated query optimization approach
399
+ ✓ kieran-typescript-reviewer: Code examples meet TypeScript conventions
402
400
  ✓ code-simplicity-reviewer: Solution is appropriately minimal
403
401
 
404
402
  File created:
@@ -464,16 +462,14 @@ Writes the final learning directly into `docs/solutions/`.
464
462
  Based on problem type, these agents can enhance documentation:
465
463
 
466
464
  ### Code Quality & Review
467
- - **systematic:review:kieran-rails-reviewer**: Reviews code examples for Rails best practices
468
- - **systematic:review:kieran-python-reviewer**: Reviews code examples for Python best practices
469
465
  - **systematic:review:kieran-typescript-reviewer**: Reviews code examples for TypeScript best practices
470
466
  - **systematic:review:code-simplicity-reviewer**: Ensures solution code is minimal and clear
471
467
  - **systematic:review:pattern-recognition-specialist**: Identifies anti-patterns or repeating issues
472
468
 
473
469
  ### Specific Domain Experts
474
- - **systematic:review:performance-oracle**: Analyzes performance_issue category solutions
475
- - **systematic:review:security-sentinel**: Reviews security_issue solutions for vulnerabilities
476
- - **systematic:review:data-integrity-guardian**: Reviews database_issue migrations and queries
470
+ - **systematic:review:performance-reviewer**: Analyzes performance_issue category solutions
471
+ - **systematic:review:security-reviewer**: Reviews security_issue solutions for vulnerabilities
472
+ - **systematic:review:data-migrations-reviewer**: Reviews database_issue migrations and queries
477
473
 
478
474
  ### Enhancement & Research
479
475
  - **systematic:research:best-practices-researcher**: Enriches solution with industry best practices
@@ -51,27 +51,27 @@ Keep the presentation concise. Allow brief follow-up questions and lightweight c
51
51
 
52
52
  ## Phase 5: Persistence (Opt-In, Mode-Aware)
53
53
 
54
- Persistence is opt-in. The terminal review loop is a complete ideation cycle. Refinement loops happen in conversation with no file or network cost. Persistence triggers only when the user explicitly chooses to save, share, or hand off (selected in Phase 6).
54
+ Persistence is opt-in. The terminal review loop is a complete ideation cycle. Refinement loops happen in conversation with no file or network cost. Persistence triggers only when the user explicitly chooses to save or hand off (selected in Phase 6).
55
55
 
56
- When the user picks an option in Phase 6 that requires a durable record (Open and iterate in Proof, Brainstorm, Save and end), ensure a record exists first. When the user chooses to keep refining, no record is needed unless the user asks.
56
+ When the user picks an option in Phase 6 that requires a durable record (Brainstorm, Save and end), ensure a record exists first. When the user chooses to keep refining, no record is needed unless the user asks.
57
57
 
58
58
  **Mode-determined defaults:**
59
59
 
60
60
  | Action | Repo mode default | Elsewhere mode default |
61
61
  |---|---|---|
62
- | Save | `docs/ideation/YYYY-MM-DD-<topic>-ideation.md` | Proof |
63
- | Share | Proof (additional) | Proof (primary) |
62
+ | Save | `docs/ideation/YYYY-MM-DD-<topic>-ideation.md` | Local file (custom path if no repo context) |
64
63
  | Brainstorm handoff | `ce-brainstorm` | `ce-brainstorm` (universal-brainstorming) |
65
64
  | End | Conversation only is fine | Conversation only is fine |
66
65
 
67
- Either mode can also use the other destination on explicit request ("save to Proof even though this is repo mode", "save to a local file even though this is elsewhere"). Honor such overrides directly.
66
+ Both modes persist via local file save. Elsewhere mode without an obvious repo path should ask the user for a save location (current working directory, `/tmp`, or a custom path) using the same file structure as repo mode.
68
67
 
69
- ### 5.1 File Save (default for repo mode; on request for elsewhere mode)
68
+ ### 5.1 File Save (default for both modes)
70
69
 
71
- 1. Ensure `docs/ideation/` exists
70
+ 1. Ensure `docs/ideation/` exists (repo mode) or confirm the chosen save location (elsewhere mode)
72
71
  2. Choose the file path:
73
- - `docs/ideation/YYYY-MM-DD-<topic>-ideation.md`
74
- - `docs/ideation/YYYY-MM-DD-open-ideation.md` when no focus exists
72
+ - `docs/ideation/YYYY-MM-DD-<topic>-ideation.md` (repo mode)
73
+ - `docs/ideation/YYYY-MM-DD-open-ideation.md` when no focus exists (repo mode)
74
+ - user-selected path (elsewhere mode)
75
75
  3. Write or update the ideation document
76
76
 
77
77
  Use this structure and omit clearly irrelevant fields only when necessary:
@@ -111,46 +111,17 @@ If resuming:
111
111
  - update the existing file in place
112
112
  - preserve explored markers
113
113
 
114
- ### 5.2 Proof Save (default for elsewhere mode; on request for repo mode)
115
-
116
- Hand off the ideation content to the `ce-proof` skill in HITL review mode. This uploads the doc, runs an iterative review loop (user annotates in Proof, agent ingests feedback and applies tracked edits), and (in repo mode) syncs the reviewed markdown back to `docs/ideation/`.
117
-
118
- Load the `ce-proof` skill in HITL-review mode with:
119
-
120
- - **source content:** the survivors and rejection summary from Phase 4 (in repo mode, this is the file written in 5.1; in elsewhere mode, render to a temp file as the source for upload)
121
- - **doc title:** `Ideation: <topic>` or the H1 of the ideation doc
122
- - **identity:** `ai:systematic` / `Systematic`
123
- - **recommended next step:** `/ce-brainstorm` (shown in the proof skill's final terminal output)
124
-
125
- The Proof failure ladder in Phase 6.5 governs what happens when this hand-off fails.
126
-
127
- **Caller-aware return.** The return-rule bullets below describe the default control flow, but the next step depends on which Phase 6 option invoked the Proof save. Apply the right branch for the caller:
128
-
129
- - **§6.2 Open and iterate in Proof.** Behavior is mode-aware:
130
- - *Repo mode:* return to the Phase 6 menu on every status. The Proof-reviewed content is now synced locally, and the user typically has a follow-up action in the repo (brainstorm toward a plan, save and end, or keep refining).
131
- - *Elsewhere mode:* on a successful Proof return (`proceeded` or `done_for_now`), exit cleanly — narrate that the artifact lives at `docUrl` (including any stale-local note if applicable) and stop. Proof iteration is often the terminal act in elsewhere mode; forcing another menu choice after the user already got what they came for produces decision fatigue. Only the `aborted` branch returns to the Phase 6 menu so the user can retry or pick another path.
132
- - **§6.3 Brainstorm a selected idea.** On a successful Proof return (`proceeded` or `done_for_now`), do **not** stop at the Phase 6 menu — after applying the per-status handling below (including any stale-local pull offer), continue into §6.3's remaining bullets (mark the chosen idea as `Explored`, then load `ce-brainstorm`). Only the `aborted` branch returns to the Phase 6 menu, since no durable record was written.
133
- - **§6.4 Save and end.** On a successful Proof return (`proceeded` or `done_for_now`), exit cleanly: narrate that the ideation was saved, surface the `docUrl` (and the local-path note if applicable), and stop. Do **not** re-ask the Phase 6 question — the user already chose to end. Only the `aborted` branch returns to the Phase 6 menu so the user can retry or pick a different path.
134
-
135
- When the proof skill returns control:
136
-
137
- - `status: proceeded` with `localSynced: true` → the ideation doc on disk now reflects the review. Apply the caller-aware return rule above for the invoking branch.
138
- - `status: proceeded` with `localSynced: false` → the reviewed version lives in Proof at `docUrl` but the local copy is stale. Offer to pull the Proof doc to `localPath` using the proof skill's Pull workflow. Apply the caller-aware return rule above; if the pull was declined, include a one-line note that `<localPath>` is stale vs. Proof so the next handoff (or final exit narration) doesn't read the old content silently. Placement: above the Phase 6 menu when the caller-aware rule returns to it, in the handoff preamble to `ce-brainstorm` for §6.3, or alongside the final save/exit narration for §6.2 elsewhere / §6.4.
139
- - `status: done_for_now` → the doc on disk may be stale if the user edited in Proof before leaving. Offer to pull the Proof doc to `localPath` so the local ideation artifact stays in sync, then apply the caller-aware return rule above. `done_for_now` means the user stopped the HITL loop — it does not mean they ended the whole ideation session unless the caller-aware rule exits (§6.2 elsewhere mode or §6.4). If the pull was declined, include the stale-local note at the placement described in the previous bullet.
140
- - `status: aborted` → fall back to the Phase 6 menu without changes, regardless of caller. No durable record was written, so §6.3 must not proceed with the brainstorm handoff and §6.4 must not end — the menu lets the user retry or pick another path.
141
-
142
114
  ## Phase 6: Refine or Hand Off
143
115
 
144
116
  Ask what should happen next using the platform's blocking question tool: `question` in OpenCode (call `ToolSearch` with `select:question` first if its schema isn't loaded), `request_user_input` in Codex, `ask_user` in Gemini, `ask_user` in Pi (requires the `pi-ask-user` extension). Fall back to numbered options in chat only when no blocking tool exists in the harness or the call errors (e.g., Codex edit modes) — not because a schema load is required. Never silently skip the question.
145
117
 
146
118
  **Question:** "What should the agent do next?"
147
119
 
148
- Offer these four options (labels are self-contained with the distinguishing word front-loaded so options stay distinct when truncated):
120
+ Offer these three options (labels are self-contained with the distinguishing word front-loaded so options stay distinct when truncated):
149
121
 
150
- 1. **Refine the ideation in conversation (or stop here — no save)** — add ideas, re-evaluate, or deepen analysis. No file or network side effects; ending the conversation at any point after this pick is a valid no-save exit.
151
- 2. **Open and iterate in Proof** — save the ideation to Proof and enter the proof skill's HITL review loop: iterate via comments in the Proof editor; reviewed edits sync back to `docs/ideation/` in repo mode.
152
- 3. **Brainstorm a selected idea** — load `ce-brainstorm` with the chosen idea as the seed. The orchestrator first writes a durable record using the mode default in Phase 5.
153
- 4. **Save and end** — persist the ideation using the mode default (file in repo mode, Proof in elsewhere mode), then end.
122
+ 1. **Refine the ideation in conversation (or stop here — no save)** — add ideas, re-evaluate, or deepen analysis. No file side effects; ending the conversation at any point after this pick is a valid no-save exit.
123
+ 2. **Brainstorm a selected idea** — load `ce-brainstorm` with the chosen idea as the seed. The orchestrator first writes a durable record using the mode default in Phase 5.
124
+ 3. **Save and end** — persist the ideation to a local file using the mode default (Phase 5.1), then end.
154
125
 
155
126
  No-save exit is supported without a dedicated menu option. Pick option 1 and stop the conversation, or use the question tool's free-text escape to say so directly — persistence is opt-in and the terminal review loop is already a complete ideation cycle.
156
127
 
@@ -164,64 +135,29 @@ Route refinement by intent:
164
135
  - `re-evaluate` or `raise the bar` -> return to Phase 3
165
136
  - `dig deeper on idea #N` -> expand only that idea's analysis
166
137
 
167
- No persistence triggers during refinement. The user can choose Save and end (or Brainstorm, or Open and iterate in Proof) when they are ready to persist.
138
+ No persistence triggers during refinement. The user can choose Save and end (or Brainstorm) when they are ready to persist.
168
139
 
169
140
  Ending after refinement — or without any refinement at all — is a valid no-save exit. There is no required next step; stopping the conversation here leaves no durable artifact, which matches the opt-in persistence contract.
170
141
 
171
- ### 6.2 Open and Iterate in Proof
172
-
173
- Invoke the Proof HITL review path via §5.2 with §6.2 as the caller. In repo mode, ensure the local file exists first (run §5.1) so the HITL sync-back has a target; in elsewhere mode, §5.2 renders to a temp file as usual. Honor Phase 5's "ensure a record exists first" contract either way.
174
-
175
- Apply §5.2's caller-aware return rule for the §6.2 branch — behavior is mode-aware. In repo mode, return to the Phase 6 menu on every status so the user can pick a follow-up (brainstorm toward a plan, save-and-end, or keep refining) now that the Proof review is reflected in the local file. In elsewhere mode, exit cleanly on a successful Proof return since Proof iteration is often the terminal act — the artifact lives at `docUrl` and is the canonical record; only the `aborted` status returns to the menu.
176
-
177
- If the Proof handoff fails, the §6.5 Proof Failure Ladder governs recovery.
178
-
179
- ### 6.3 Brainstorm a Selected Idea
142
+ ### 6.2 Brainstorm a Selected Idea
180
143
 
181
- - Write or update the durable record per the mode default in Phase 5 (file in repo mode, Proof in elsewhere mode). When this routes through §5.2 Proof Save, apply §5.2's caller-aware return rule: continue into the next bullet on a successful Proof return instead of bouncing back to the Phase 6 menu. If Proof returned `aborted` (no durable record written), go back to the Phase 6 menu and do **not** proceed with the brainstorm handoff.
144
+ - Write or update the durable record per the mode default in Phase 5 (5.1 file save)
182
145
  - Mark the chosen idea as `Explored` in the saved record
183
146
  - Load the `ce-brainstorm` skill with the chosen idea as the seed
184
147
 
185
- **Repo mode only:** do **not** skip brainstorming and go straight to `ce-plan` from ideation output — `ce-plan` wants brainstorm-grounded requirements. In elsewhere modes, ideation (or ideation + Proof iteration) is a legitimate terminal state; brainstorming is optional deeper development of one idea, not a required next rung on an implementation ladder that does not exist in these modes.
148
+ **Repo mode only:** do **not** skip brainstorming and go straight to `ce-plan` from ideation output — `ce-plan` wants brainstorm-grounded requirements. In elsewhere modes, ideation is a legitimate terminal state; brainstorming is optional deeper development of one idea, not a required next rung on an implementation ladder that does not exist in these modes.
186
149
 
187
- ### 6.4 Save and End
150
+ ### 6.3 Save and End
188
151
 
189
- Persist via the mode default (5.1 in repo mode, 5.2 in elsewhere mode), then end. If the user instead asked to use the non-default destination, honor that explicit request.
152
+ Persist via the mode default (5.1), then end. If the user instead asked to use a non-default destination (custom path), honor that explicit request.
190
153
 
191
- When the path lands in a Proof save (5.2), apply §5.2's caller-aware return rule for the §6.4 branch: on a successful Proof return, exit cleanly — narrate the save, surface the `docUrl` (and any stale-local note if the pull was declined), and stop. Do **not** loop back to the Phase 6 menu; the user already chose to end. Only a `status: aborted` from Proof returns to the menu so the user can retry or pick another path (file save, custom path, or keep refining). The §6.5 Proof Failure Ladder still governs persistent Proof failures and ends at the Phase 6 menu — that failure-recovery path is distinct from the successful-save exit described here.
192
-
193
- When the path lands in a file save (5.1):
194
-
195
- - offer to commit only the ideation doc
154
+ - offer to commit only the ideation doc (repo mode)
196
155
  - do not create a branch
197
156
  - do not push
198
157
  - if the user declines, leave the file uncommitted
199
158
 
200
159
  After the file save (and optional commit), end the session — do not return to the Phase 6 menu.
201
160
 
202
- ### 6.5 Proof Failure Ladder
203
-
204
- The `ce-proof` skill performs single-retry-once internally on transient failures (`STALE_BASE`, `BASE_TOKEN_REQUIRED`) before surfacing failure. The proof skill's return contract does not expose typed error classes to callers — the orchestrator cannot distinguish retryable vs terminal failures from outside.
205
-
206
- **Orchestrator-side retry harness (intentionally minimal):** wrap the proof skill invocation in **one** additional best-effort retry with a short pause (~2 seconds). The proof skill already retried internally, so this catches transient races at the orchestrator boundary without compounding latency. Do not classify error types from outside the skill — no detection mechanism exists.
207
-
208
- Distinguish create-failure from ops-failure by inspecting whether the proof skill returned a `docUrl` before failing:
209
-
210
- - **Create-failure** (no `docUrl` returned): retry the create.
211
- - **Ops-failure** (a `docUrl` was returned, but a later operation failed): retry only the failing operation. **Do not recreate** the document.
212
-
213
- **Failure narration.** Narrate the single retry to the terminal so the pause does not look like a hang ("Retrying Proof... attempt 2/2"). On persistent failure, narrate that retry exhausted before showing the fallback menu.
214
-
215
- **Fallback menu after persistent failure.** Use the platform's blocking question tool. Present these options (omit option (a) if no repo exists at CWD):
216
-
217
- - "Save to `docs/ideation/` instead" (repo-mode default destination, available when CWD is inside a git repo)
218
- - "Save to a custom path the user provides" (validate writable; create parent dirs)
219
- - "Skip save and keep the ideation in conversation" (no persistence)
220
-
221
- If proof returned a partial `docUrl` before failing, surface that URL alongside the fallback options so the user can recover or share the partial record.
222
-
223
- After the fallback completes (any path), continue back to the Phase 6 menu so the user can still refine, iterate in Proof, brainstorm, or save and end.
224
-
225
161
  ## Quality Bar
226
162
 
227
163
  Before finishing, check:
@@ -235,6 +171,6 @@ Before finishing, check:
235
171
  - if sub-agents were used, they improved diversity without replacing the core workflow
236
172
  - every rejected idea has a reason
237
173
  - survivors are materially better than a naive "give me ideas" list
238
- - persistence followed user choice — terminal-only sessions did not write a file or call Proof
174
+ - persistence followed user choice — terminal-only sessions did not write a file
239
175
  - when persistence did trigger, the mode default was respected unless the user explicitly overrode it
240
176
  - acting on an idea routes to `ce-brainstorm`, not directly to implementation
@@ -224,8 +224,8 @@ Prepare a concise planning context summary (a paragraph or two) to pass as input
224
224
 
225
225
  Run these agents in parallel:
226
226
 
227
- - Task systematic:research:repo-research-analyst(Scope: technology, architecture, patterns. {planning context summary})
228
- - Task systematic:research:learnings-researcher(planning context summary)
227
+ - task systematic:research:repo-research-analyst(Scope: technology, architecture, patterns. {planning context summary})
228
+ - task systematic:research:learnings-researcher(planning context summary)
229
229
  Collect:
230
230
  - Technology stack and versions (used in section 1.2 to make sharper external research decisions)
231
231
  - Architectural patterns and conventions to follow
@@ -293,8 +293,8 @@ Announce the decision briefly before continuing. Examples:
293
293
 
294
294
  If Step 1.2 indicates external research is useful, run these agents in parallel:
295
295
 
296
- - Task systematic:research:best-practices-researcher(planning context summary)
297
- - Task systematic:research:framework-docs-researcher(planning context summary)
296
+ - task systematic:research:best-practices-researcher(planning context summary)
297
+ - task systematic:research:framework-docs-researcher(planning context summary)
298
298
 
299
299
  #### 1.4 Consolidate Research
300
300
 
@@ -322,7 +322,7 @@ This ensures flow analysis (Phase 1.5) runs and the confidence check (Phase 5.3)
322
322
 
323
323
  For **Standard** or **Deep** plans, or when user flow completeness is still unclear, run:
324
324
 
325
- - Task systematic:workflow:spec-flow-analyzer(planning context summary, research findings)
325
+ - task systematic:workflow:spec-flow-analyzer(planning context summary, research findings)
326
326
 
327
327
  Use the output to:
328
328
  - Identify missing edge cases, state transitions, or handoff gaps
@@ -790,7 +790,7 @@ Then continue to Phase 5.2 without a blocking question.
790
790
 
791
791
  **REQUIRED: Write the plan file to disk before presenting any options.**
792
792
 
793
- Use the Write tool to save the complete plan to:
793
+ Use the write tool to save the complete plan to:
794
794
 
795
795
  ```text
796
796
  docs/plans/YYYY-MM-DD-NNN-<type>-<descriptive-name>-plan.md
@@ -125,17 +125,16 @@ Use fully-qualified agent names inside Task calls.
125
125
  **System-Wide Impact**
126
126
  - `ce-architecture-strategist` for cross-boundary effects, interface surfaces, and architectural knock-on impact
127
127
  - Add the specific specialist that matches the risk:
128
- - `ce-performance-oracle` for scalability, latency, throughput, and resource-risk analysis
129
- - `ce-security-sentinel` for auth, validation, exploit surfaces, and security boundary review
130
- - `ce-data-integrity-guardian` for migrations, persistent state safety, consistency, and data lifecycle risks
128
+ - `ce-performance-reviewer` for scalability, latency, throughput, and resource-risk analysis
129
+ - `ce-security-reviewer` for auth, validation, exploit surfaces, and security boundary review
130
+ - `ce-data-migrations-reviewer` for migrations, persistent state safety, consistency, and data lifecycle risks
131
131
 
132
132
  **Risks & Dependencies / Operational Notes**
133
133
  - Use the specialist that matches the actual risk:
134
- - `ce-security-sentinel` for security, auth, privacy, and exploit risk
135
- - `ce-data-integrity-guardian` for persistent data safety, constraints, and transaction boundaries
136
- - `ce-data-migration-expert` for migration realism, backfills, and production data transformation risk
134
+ - `ce-security-reviewer` for security, auth, privacy, and exploit risk
135
+ - `ce-data-migrations-reviewer` for persistent data safety, constraints, transaction boundaries, and migration realism
137
136
  - `ce-deployment-verification-agent` for rollout checklists, rollback planning, and launch verification
138
- - `ce-performance-oracle` for capacity, latency, and scaling concerns
137
+ - `ce-performance-reviewer` for capacity, latency, and scaling concerns
139
138
 
140
139
  **Agent Prompt Shape:**
141
140
 
@@ -40,29 +40,13 @@ After document-review completes, present the options using the platform's blocki
40
40
  **Options:**
41
41
  1. **Start `ce:work`** (recommended) - Begin implementing this plan in the current session
42
42
  2. **Create Issue** - Create a tracked issue from this plan in your configured issue tracker (GitHub or Linear)
43
- 3. **Open in Proof (web app) — review and comment to iterate with the agent** - Open the doc in Every's Proof editor, iterate with the agent via comments, or copy a link to share with others
44
- 4. **Done for now** - Pause; the plan file is saved and can be resumed later
43
+ 3. **Done for now** - Pause; the plan file is saved and can be resumed later
45
44
 
46
45
  **Surface additional document review contextually, not as a menu fixture:** When the prior document-review pass surfaced residual P0/P1 findings that the user has not addressed, mention them adjacent to the menu and offer another review pass in prose (e.g., "Document review flagged 2 P1 findings you may want to address — want me to run another pass before you pick?"). Do not add it to the option list.
47
46
 
48
47
  Based on selection:
49
48
  - **Start `ce:work`** -> Call `ce:work` with the plan path
50
49
  - **Create Issue** -> Follow the Issue Creation section below
51
- - **Open in Proof (web app) — review and comment to iterate with the agent** -> Load the `ce-proof` skill in HITL-review mode with:
52
- - source file: `docs/plans/<plan_filename>.md`
53
- - doc title: `Plan: <plan title from frontmatter>`
54
- - identity: `ai:systematic` / `Systematic`
55
- - recommended next step: `ce:work` (shown in the ce-proof skill's final terminal output)
56
-
57
- Follow `references/hitl-review.md` in the ce-proof skill. It uploads the plan, prompts the user for review in Proof's web UI, ingests each thread by reading it fresh and replying in-thread, applies agreed edits as tracked suggestions, and syncs the final markdown back to the plan file atomically on proceed.
58
-
59
- When the ce-proof skill returns:
60
- - `status: proceeded` with `localSynced: true` -> the plan on disk now reflects the review. Re-run `ce-doc-review` on the updated plan before re-rendering the menu — HITL can materially rewrite the plan body, so the prior ce-doc-review pass no longer covers the current file and section 5.3.8 requires a review before any handoff option is offered. Then return to the post-generation options with the refreshed residual findings.
61
- - `status: proceeded` with `localSynced: false` -> the reviewed version lives in Proof at `docUrl` but the local copy is stale. Offer to pull the Proof doc to `localPath` using the ce-proof skill's Pull workflow. If the pull happened, re-run `ce-doc-review` on the pulled file before re-rendering the options (same 5.3.8 rationale — the local plan was materially updated by the pull). If the pull was declined, include a one-line note above the menu that `<localPath>` is stale vs. Proof — otherwise `Start ce:work` or `Create Issue` will silently use the pre-review copy.
62
- - `status: done_for_now` -> the plan on disk may be stale if the user edited in Proof before leaving. Offer to pull the Proof doc to `localPath` so the local plan file stays in sync. If the pull happened, re-run `ce-doc-review` on the pulled file before re-rendering the options (same 5.3.8 rationale). If the pull was declined, include the stale-local note above the menu. `done_for_now` means the user stopped the HITL loop — it does not mean they ended the whole plan session; they may still want to start work or create an issue.
63
- - `status: aborted` -> fall back to the options without changes.
64
-
65
- If the initial upload fails (network error, Proof API down), retry once after a short wait. If it still fails, tell the user the upload didn't succeed and briefly explain why, then return to the options — don't leave them wondering why the option did nothing.
66
50
  - **Done for now** -> Display a brief confirmation that the plan file is saved and end the turn
67
51
  - **If the user asks for another document review** (either from the contextual prompt when P0/P1 findings remain, or by free-form request) -> Load the `ce-doc-review` skill with the plan path for another pass, then return to the options
68
52
  - **Other** -> Accept free text for revisions and loop back to options
@@ -107,8 +107,4 @@ After structuring the plan, ask the user how they want to receive it using the p
107
107
  - Use filename convention: `YYYY-MM-DD-<descriptive-name>-plan.md`
108
108
  - Start the document with a `# Title` heading, followed by `Created: YYYY-MM-DD` on the next line. No YAML frontmatter.
109
109
 
110
- 2. **Open in Proof (web app) — review and comment to iterate with the agent** — Open the doc in Every's Proof editor, iterate with the agent via comments, or copy a link to share with others. Load the `ce-proof` skill to create and open the document.
111
-
112
- 3. **Save to disk AND open in Proof** — Do both: write the markdown file to disk and open the doc in Proof for review.
113
-
114
110
  Do not offer `ce:work` (software-only) or issue creation (not applicable to non-software plans).
@@ -46,7 +46,7 @@ All tokens are optional. Each one present means one less thing to infer. When ab
46
46
  - **Skip all user questions.** Never pause for approval or clarification once scope has been established.
47
47
  - **Apply only `safe_auto -> review-fixer` findings.** Leave `gated_auto`, `manual`, `human`, and `release` work unresolved.
48
48
  - **Write a run artifact** under `.context/systematic/ce-review/<run-id>/` summarizing findings, applied fixes, residual actionable work, and advisory outputs.
49
- - **Create durable todo files only for unresolved actionable findings** whose final owner is `downstream-resolver`. Load the `todo-create` skill for the canonical directory path and naming convention.
49
+ - **Create durable todo files only for unresolved actionable findings** whose final owner is `downstream-resolver`. Load the `todos` skill (Create section) for the canonical directory path and naming convention.
50
50
  - **Never commit, push, or create a PR** from autofix mode. Parent workflows own those decisions.
51
51
 
52
52
  ### Report-only mode rules
@@ -101,7 +101,7 @@ Routing rules:
101
101
 
102
102
  ## Reviewers
103
103
 
104
- 17 reviewer personas in layered conditionals, plus CE-specific agents. See the persona catalog included below for the full catalog.
104
+ 13 reviewer personas in layered conditionals, plus CE-specific agents. See the persona catalog included below for the full catalog.
105
105
 
106
106
  **Always-on (every review):**
107
107
 
@@ -131,22 +131,17 @@ Routing rules:
131
131
 
132
132
  | Agent | Select when diff touches... |
133
133
  |-------|---------------------------|
134
- | `systematic:review:dhh-rails-reviewer` | Rails architecture, service objects, session/auth choices, or Hotwire-vs-SPA boundaries |
135
- | `systematic:review:kieran-rails-reviewer` | Rails application code where conventions, naming, and maintainability are in play |
136
- | `systematic:review:kieran-python-reviewer` | Python modules, endpoints, scripts, or services |
137
134
  | `systematic:review:kieran-typescript-reviewer` | TypeScript components, services, hooks, utilities, or shared types |
138
- | `systematic:review:julik-frontend-races-reviewer` | Stimulus/Turbo controllers, DOM events, timers, animations, or async UI flows |
139
135
 
140
136
  **CE conditional (migration-specific):**
141
137
 
142
138
  | Agent | Select when diff includes migration files |
143
139
  |-------|------------------------------------------|
144
- | `systematic:review:schema-drift-detector` | Cross-references schema.rb against included migrations |
145
140
  | `systematic:review:deployment-verification-agent` | Produces deployment checklist with SQL verification queries |
146
141
 
147
142
  ## Review Scope
148
143
 
149
- Every review spawns all 4 always-on personas plus the 2 CE always-on agents, then adds whichever cross-cutting and stack-specific conditionals fit the diff. The model naturally right-sizes: a small config change triggers 0 conditionals = 6 reviewers. A Rails auth feature might trigger security + reliability + kieran-rails + dhh-rails = 10 reviewers.
144
+ Every review spawns all 4 always-on personas plus the 2 CE always-on agents, then adds whichever cross-cutting and stack-specific conditionals fit the diff. The model naturally right-sizes: a small config change triggers 0 conditionals = 6 reviewers. An auth feature touching data migrations might trigger security + reliability + data-migrations = 9 reviewers.
150
145
 
151
146
  ## Protected Artifacts
152
147
 
@@ -343,7 +338,7 @@ Read the diff and file list from Stage 1. The 4 always-on personas and 2 CE alwa
343
338
 
344
339
  **`previous-comments` is PR-only.** Only select this persona when Stage 1 gathered PR metadata (PR number or URL was provided as an argument, or `gh pr view` returned metadata for the current branch). Skip it entirely for standalone branch reviews with no associated PR -- there are no prior comments to check.
345
340
 
346
- Stack-specific personas are additive. A Rails UI change may warrant `kieran-rails` plus `julik-frontend-races`; a TypeScript API diff may warrant `kieran-typescript` plus `api-contract` and `reliability`.
341
+ Stack-specific personas are additive. A TypeScript API diff may warrant `kieran-typescript` plus `api-contract` and `reliability`.
347
342
 
348
343
  For CE conditional agents, check if the diff includes files matching `db/migrate/*.rb`, `db/schema.rb`, or data backfill scripts.
349
344
 
@@ -358,10 +353,7 @@ Review team:
358
353
  - agent-native-reviewer (always)
359
354
  - learnings-researcher (always)
360
355
  - security -- new endpoint in routes.rb accepts user-provided redirect URL
361
- - kieran-rails -- controller and Turbo flow changed in app/controllers and app/views
362
- - dhh-rails -- diff adds service objects around ordinary Rails CRUD
363
356
  - data-migrations -- adds migration 20260303_add_index_to_orders
364
- - schema-drift-detector -- migration files present
365
357
  ```
366
358
 
367
359
  This is progress reporting, not a blocking confirmation.
@@ -383,7 +375,7 @@ Persona sub-agents do focused, scoped work and should use a fast mid-tier model
383
375
 
384
376
  Use the platform's mid-tier model for all persona and CE sub-agents. In OpenCode, pass `model: "sonnet"` in the Agent tool call. On other platforms, use the equivalent mid-tier (e.g., `gpt-4o` in Codex). If the platform has no model override mechanism or the available model names are unknown, omit the model parameter and let agents inherit the default -- a working review on the parent model is better than a broken dispatch from an unrecognized model name.
385
377
 
386
- CE always-on agents (agent-native-reviewer, learnings-researcher) and CE conditional agents (schema-drift-detector, deployment-verification-agent) also use the mid-tier model since they perform scoped, focused work.
378
+ CE always-on agents (agent-native-reviewer, learnings-researcher) and CE conditional agents (deployment-verification-agent) also use the mid-tier model since they perform scoped, focused work.
387
379
 
388
380
  The orchestrator (this skill) stays on the default model because it handles intent discovery, reviewer selection, finding merge/dedup, and synthesis -- tasks that benefit from stronger reasoning.
389
381
 
@@ -446,7 +438,7 @@ Detail-tier fields (`why_it_matters`, `evidence`) are in the artifact file only.
446
438
 
447
439
  **CE always-on agents** (agent-native-reviewer, learnings-researcher) are dispatched as standard Agent calls in parallel with the persona agents. Give them the same review context bundle the personas receive: entry mode, any PR metadata gathered in Stage 1, intent summary, review base branch name when known, `BASE:` marker, file list, diff, and `UNTRACKED:` scope notes. Do not invoke them with a generic "review this" prompt. Their output is unstructured and synthesized separately in Stage 6.
448
440
 
449
- **CE conditional agents** (schema-drift-detector, deployment-verification-agent) are also dispatched as standard Agent calls when applicable. Pass the same review context bundle plus the applicability reason (for example, which migration files triggered the agent). For schema-drift-detector specifically, pass the resolved review base branch explicitly so it never assumes `main`. Their output is unstructured and must be preserved for Stage 6 synthesis just like the CE always-on agents.
441
+ **CE conditional agents** (deployment-verification-agent) are also dispatched as standard Agent calls when applicable. Pass the same review context bundle plus the applicability reason (for example, which migration files triggered the agent). Their output is unstructured and must be preserved for Stage 6 synthesis just like the CE always-on agents.
450
442
 
451
443
  ### Stage 5: Merge findings
452
444
 
@@ -512,10 +504,9 @@ Assemble the final report using **pipe-delimited markdown tables for findings**
512
504
  7. **Filtered (not validated).** Include when Stage 5b produced any findings with `validated: false`. Render as a pipe-delimited table with columns `#`, `File`, `Issue`, `Reviewer`, `Confidence`, `Validator reason`. These findings are surfaced for human review — they are not removed from the report. The validator found evidence that the issue may not be real in the code as written, was not introduced by this diff, or is already handled elsewhere; the human reviewer makes the final call. Omit this section when no findings were filtered.
513
505
  8. **Learnings & Past Solutions.** Surface learnings-researcher results: if past solutions are relevant, flag them as "Known Pattern" with links to docs/solutions/ files.
514
506
  9. **Agent-Native Gaps.** Surface agent-native-reviewer results. Omit section if no gaps found.
515
- 10. **Schema Drift Check.** If schema-drift-detector ran, summarize whether drift was found. If drift exists, list the unrelated schema objects and the required cleanup command. If clean, say so briefly.
516
- 11. **Deployment Notes.** If deployment-verification-agent ran, surface the key Go/No-Go items: blocking pre-deploy checks, the most important verification queries, rollback caveats, and monitoring focus areas. Keep the checklist actionable rather than dropping it into Coverage.
517
- 12. **Coverage.** Suppressed count, residual risks, testing gaps, failed/timed-out reviewers, validator failures, and any intent uncertainty carried by non-interactive modes.
518
- 13. **Verdict.** Ready to merge / Ready with fixes / Not ready. Fix order if applicable. When an `explicit` plan has unaddressed requirements, the verdict must reflect it — a PR that's code-clean but missing planned requirements is "Not ready" unless the omission is intentional. When an `inferred` plan has unaddressed requirements, note it in the verdict reasoning but do not block on it alone.
507
+ 10. **Deployment Notes.** If deployment-verification-agent ran, surface the key Go/No-Go items: blocking pre-deploy checks, the most important verification queries, rollback caveats, and monitoring focus areas. Keep the checklist actionable rather than dropping it into Coverage.
508
+ 11. **Coverage.** Suppressed count, residual risks, testing gaps, failed/timed-out reviewers, validator failures, and any intent uncertainty carried by non-interactive modes.
509
+ 12. **Verdict.** Ready to merge / Ready with fixes / Not ready. Fix order if applicable. When an `explicit` plan has unaddressed requirements, the verdict must reflect it a PR that's code-clean but missing planned requirements is "Not ready" unless the omission is intentional. When an `inferred` plan has unaddressed requirements, note it in the verdict reasoning but do not block on it alone.
519
510
 
520
511
  Do not include time estimates.
521
512
 
@@ -715,7 +706,7 @@ After presenting findings and verdict (Stage 6), route the next steps by mode. R
715
706
  }
716
707
  ```
717
708
  Capture `branch` and `head_sha` at dispatch time (before any autofixes land), and write the file after the verdict is finalized. This file is additive -- pre-existing artifacts that predate this field are still valid, and downstream skills fall back to file mtime when it is missing.
718
- - In autofix mode, create durable todo files only for unresolved actionable findings whose final owner is `downstream-resolver`. Load the `todo-create` skill for the canonical directory path, naming convention, YAML frontmatter structure, and template. Each todo should map the finding's severity to the todo priority (`P0`/`P1` -> `p1`, `P2` -> `p2`, `P3` -> `p3`) and set `status: ready` since these findings have already been triaged by synthesis.
709
+ - In autofix mode, create durable todo files only for unresolved actionable findings whose final owner is `downstream-resolver`. Load the `todos` skill (Create section) for the canonical directory path, naming convention, YAML frontmatter structure, and template. Each todo should map the finding's severity to the todo priority (`P0`/`P1` -> `p1`, `P2` -> `p2`, `P3` -> `p3`) and set `status: ready` since these findings have already been triaged by synthesis.
719
710
  - Do not create todos for `advisory` findings, `owner: human`, `owner: release`, or protected-artifact cleanup suggestions.
720
711
  - If only advisory outputs remain, create no todos.
721
712
  - Interactive mode may offer to externalize residual actionable work after fixes, but it is not required to finish the review.
@@ -1,6 +1,6 @@
1
1
  # Persona Catalog
2
2
 
3
- 17 reviewer personas organized into always-on, cross-cutting conditional, and stack-specific conditional layers, plus CE-specific agents. The orchestrator uses this catalog to select which reviewers to spawn for each review.
3
+ 13 reviewer personas organized into always-on, cross-cutting conditional, and stack-specific conditional layers, plus CE-specific agents. The orchestrator uses this catalog to select which reviewers to spawn for each review.
4
4
 
5
5
  ## Always-on (4 personas + 2 CE agents)
6
6
 
@@ -37,17 +37,13 @@ Spawned when the orchestrator identifies relevant patterns in the diff. The orch
37
37
  | `cli-readiness` | `systematic:review:cli-readiness-reviewer` | CLI command definitions, argument parsing, CLI framework usage, command handler implementations |
38
38
  | `previous-comments` | `systematic:review:previous-comments-reviewer` | **PR-only.** Reviewing a PR that has existing review comments or review threads from prior review rounds. Skip entirely when no PR metadata was gathered in Stage 1. |
39
39
 
40
- ## Stack-Specific Conditional (5 personas)
40
+ ## Stack-Specific Conditional (1 persona)
41
41
 
42
42
  These reviewers keep their original opinionated lens. They are additive with the cross-cutting personas above, not replacements for them.
43
43
 
44
44
  | Persona | Agent | Select when diff touches... |
45
45
  |---------|-------|---------------------------|
46
- | `dhh-rails` | `systematic:review:dhh-rails-reviewer` | Rails architecture, service objects, authentication/session choices, Hotwire-vs-SPA boundaries, or abstractions that may fight Rails conventions |
47
- | `kieran-rails` | `systematic:review:kieran-rails-reviewer` | Rails controllers, models, views, jobs, components, routes, or other application-layer Ruby code where clarity and conventions matter |
48
- | `kieran-python` | `systematic:review:kieran-python-reviewer` | Python modules, endpoints, services, scripts, or typed domain code |
49
46
  | `kieran-typescript` | `systematic:review:kieran-typescript-reviewer` | TypeScript components, services, hooks, utilities, or shared types |
50
- | `julik-frontend-races` | `systematic:review:julik-frontend-races-reviewer` | Stimulus/Turbo controllers, DOM event wiring, timers, async UI flows, animations, or frontend state transitions with race potential |
51
47
 
52
48
  ## CE Conditional Agents (migration-specific)
53
49
 
@@ -55,7 +51,6 @@ These CE-native agents provide specialized analysis beyond what the persona agen
55
51
 
56
52
  | Agent | Focus |
57
53
  |-------|-------|
58
- | `systematic:review:schema-drift-detector` | Cross-references schema.rb changes against included migrations to catch unrelated drift |
59
54
  | `systematic:review:deployment-verification-agent` | Produces Go/No-Go deployment checklist with SQL verification queries and rollback procedures |
60
55
 
61
56
  ## Selection rules
@@ -135,7 +135,6 @@ This fails because: no pipe-delimited tables, no severity-grouped `###` headers,
135
135
  - **Filtered (not validated) section** -- findings where Stage 5b returned `validated: false`. Rendered as a pipe-delimited table with columns `#`, `File`, `Issue`, `Reviewer`, `Confidence`, `Validator reason`. These findings are surfaced for human review, not removed. Omit this section when Stage 5b produced no filtered findings.
136
136
  - **Learnings & Past Solutions section** -- results from learnings-researcher, with links to docs/solutions/ files
137
137
  - **Agent-Native Gaps section** -- results from agent-native-reviewer. Omit if no gaps found.
138
- - **Schema Drift Check section** -- results from schema-drift-detector. Omit if the agent did not run.
139
138
  - **Deployment Notes section** -- key checklist items from deployment-verification-agent. Omit if the agent did not run.
140
139
  - **Coverage section** -- suppressed count, residual risks, testing gaps, failed reviewers
141
140
  - **Summary uses blockquotes** for verdict, reasoning, and fix order
@@ -296,7 +296,7 @@ Determine how to proceed based on what was provided in `<input_document>`.
296
296
  For UI work with Figma designs:
297
297
 
298
298
  - Implement components following design specs
299
- - Use figma-design-sync agent iteratively to compare
299
+ - Use design-iterator agent iteratively to compare
300
300
  - Fix visual differences identified
301
301
  - Repeat until implementation matches design
302
302
 
@@ -234,17 +234,16 @@ Use fully-qualified agent names inside Task calls.
234
234
  **System-Wide Impact**
235
235
  - `systematic:review:architecture-strategist` for cross-boundary effects, interface surfaces, and architectural knock-on impact
236
236
  - Add the specific specialist that matches the risk:
237
- - `systematic:review:performance-oracle` for scalability, latency, throughput, and resource-risk analysis
238
- - `systematic:review:security-sentinel` for auth, validation, exploit surfaces, and security boundary review
239
- - `systematic:review:data-integrity-guardian` for migrations, persistent state safety, consistency, and data lifecycle risks
237
+ - `systematic:review:performance-reviewer` for scalability, latency, throughput, and resource-risk analysis
238
+ - `systematic:review:security-reviewer` for auth, validation, exploit surfaces, and security boundary review
239
+ - `systematic:review:data-migrations-reviewer` for migrations, persistent state safety, consistency, and data lifecycle risks
240
240
 
241
241
  **Risks & Dependencies / Operational Notes**
242
242
  - Use the specialist that matches the actual risk:
243
- - `systematic:review:security-sentinel` for security, auth, privacy, and exploit risk
244
- - `systematic:review:data-integrity-guardian` for persistent data safety, constraints, and transaction boundaries
245
- - `systematic:review:data-migration-expert` for migration realism, backfills, and production data transformation risk
243
+ - `systematic:review:security-reviewer` for security, auth, privacy, and exploit risk
244
+ - `systematic:review:data-migrations-reviewer` for persistent data safety, constraints, transaction boundaries, and migration realism
246
245
  - `systematic:review:deployment-verification-agent` for rollout checklists, rollback planning, and launch verification
247
- - `systematic:review:performance-oracle` for capacity, latency, and scaling concerns
246
+ - `systematic:review:performance-reviewer` for capacity, latency, and scaling concerns
248
247
 
249
248
  #### 3.2 Agent Prompt Shape
250
249
 
@@ -23,7 +23,7 @@ The caller receives findings with their original classifications intact and deci
23
23
 
24
24
  Callers invoke headless mode by including `mode:headless` in the skill arguments, e.g.:
25
25
  ```
26
- Skill("systematic:document-review", "mode:headless docs/plans/my-plan.md")
26
+ skill("systematic:document-review", "mode:headless docs/plans/my-plan.md")
27
27
  ```
28
28
 
29
29
 
@@ -35,7 +35,7 @@ If `mode:headless` is not present, the skill runs in its default interactive mod
35
35
 
36
36
  **If no document is specified (interactive mode):** Ask which document to review, or find the most recent in `docs/brainstorms/` or `docs/plans/` using a file-search/glob tool (e.g., Glob in OpenCode).
37
37
 
38
- **If no document is specified (headless mode):** Output "Review failed: headless mode requires a document path. Re-invoke with: Skill(\"systematic:document-review\", \"mode:headless <path>\")" without dispatching agents.
38
+ **If no document is specified (headless mode):** Output "Review failed: headless mode requires a document path. Re-invoke with: skill(\"systematic:document-review\", \"mode:headless <path>\")" without dispatching agents.
39
39
 
40
40
  ### Classify Document Type
41
41
 
@@ -80,7 +80,7 @@ EOF
80
80
 
81
81
  If the PR is not open or the commit range cannot be resolved, report the issue and stop.
82
82
 
83
- **Evidence decision:** Preserve any existing `## Demo` or `## Screenshots` block from the current body by default. If the user's focus asks to refresh or remove evidence, honor that intent. If no evidence block exists and one would benefit the reader, load the `feature-video` skill to capture evidence, then splice the result as a `## Demo` section into the body file.
83
+ **Evidence decision:** Preserve any existing `## Demo` or `## Screenshots` block from the current body by default. If the user's focus asks to refresh or remove evidence, honor that intent.
84
84
 
85
85
  **Compare and confirm** — briefly explain what the new description covers differently from the old one. This helps the user decide whether to apply; the description itself does not narrate these differences. Summarize from the body already in context (from the bash call that wrote `body_file`); do not `cat` the temp file, which would re-emit the body.
86
86
 
@@ -198,7 +198,6 @@ Use this branch diff (not the working-tree diff) for the evidence decision. If t
198
198
 
199
199
  **Evidence decision (before delegation).** If the branch diff changes observable behavior (UI, CLI output, API behavior with runnable code, generated artifacts, workflow output) and evidence is not otherwise blocked (unavailable credentials, paid services, deploy-only infrastructure, hardware), ask: "This PR has observable behavior. Capture evidence for the PR description?"
200
200
 
201
- - **Capture now** -- load the `feature-video` skill with a target description inferred from the branch diff. feature-video returns `Tier`, `Description`, and `URL`. Note the captured evidence so it can be spliced into the PR body as a `## Demo` section. If capture returns `Tier: skipped` or `URL: "none"`, proceed with no evidence.
202
201
  - **Use existing evidence** -- ask for the URL or markdown embed, then splice it into the PR body as a `## Demo` section before applying.
203
202
  - **Skip** -- proceed with no evidence section.
204
203
 
@@ -21,7 +21,7 @@ CRITICAL: You MUST execute every step below IN ORDER. Do NOT skip any required s
21
21
 
22
22
  Pass the plan file path from step 2 so ce:review can verify requirements completeness.
23
23
 
24
- 5. `/systematic:todo-resolve`
24
+ 5. `/systematic:todos` (resolve)
25
25
 
26
26
  6. `/systematic:test-browser`
27
27
 
@@ -389,19 +389,8 @@ After writing, inform the user that `ONBOARDING.md` has been generated. Offer ne
389
389
 
390
390
  Options:
391
391
  1. Open the file for review
392
- 2. Share to Proof
393
- 3. Done
392
+ 2. Done
394
393
 
395
394
  Based on selection:
396
395
  - **Open for review** -> Open `ONBOARDING.md` using the current platform's file-open or editor mechanism
397
- - **Share to Proof** -> Upload the document:
398
- ```bash
399
- CONTENT=$(cat ONBOARDING.md)
400
- TITLE="Onboarding: <project name from inventory>"
401
- RESPONSE=$(curl -s -X POST https://www.proofeditor.ai/share/markdown \
402
- -H "Content-Type: application/json" \
403
- -d "$(jq -n --arg title "$TITLE" --arg markdown "$CONTENT" --arg by "ai:compound" '{title: $title, markdown: $markdown, by: $by}')")
404
- PROOF_URL=$(echo "$RESPONSE" | jq -r '.tokenUrl')
405
- ```
406
- Display `View & collaborate in Proof: <PROOF_URL>` if successful, then return to the options
407
396
  - **Done** -> No further action
@@ -82,8 +82,8 @@ Dispatch multiple foreground subagents in the same turn. OpenCode runs them conc
82
82
 
83
83
  ```typescript
84
84
  // Dispatch independent review subagents together
85
- task({ subagent_type: "security-sentinel", description: "Security review", prompt: "..." })
86
- task({ subagent_type: "performance-oracle", description: "Performance review", prompt: "..." })
85
+ task({ subagent_type: "security-reviewer", description: "Security review", prompt: "..." })
86
+ task({ subagent_type: "performance-reviewer", description: "Performance review", prompt: "..." })
87
87
  task({ subagent_type: "correctness-reviewer", description: "Correctness review", prompt: "..." })
88
88
  // All three run; orchestrator synthesizes results after all complete
89
89
  ```