@fro.bot/systematic 2.33.3 → 3.0.1
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/ATTRIBUTIONS.md +1 -1
- package/agents/design/design-iterator.md +1 -0
- package/agents/research/best-practices-researcher.md +6 -8
- package/agents/review/pattern-recognition-specialist.md +1 -1
- package/agents/workflow/systematic-implementer.md +1 -0
- package/dist/cli.js +348 -53
- package/dist/{index-vyzhzvap.js → index-yskzf7vh.js} +587 -386
- package/dist/index.js +100 -155
- package/dist/lib/agent-overlays.d.ts +0 -1
- package/dist/lib/agent-resolver.d.ts +28 -0
- package/dist/lib/bootstrap.d.ts +8 -1
- package/dist/lib/bundled-names.d.ts +3 -3
- package/dist/lib/pi-delegate-session.d.ts +31 -0
- package/dist/lib/pi-delegate-tool.d.ts +42 -0
- package/dist/lib/removed-names.d.ts +3 -3
- package/dist/lib/setup.d.ts +36 -0
- package/dist/lib/skill-loader.d.ts +1 -2
- package/dist/lib/skill-resolver.d.ts +39 -0
- package/dist/lib/skill-tool.d.ts +2 -11
- package/dist/lib/skills.d.ts +1 -9
- package/dist/lib/source-model-defaults.d.ts +1 -1
- package/dist/pi.d.ts +7 -0
- package/dist/pi.js +3641 -0
- package/dist/schemas/systematic-config.schema.json +47 -242
- package/package.json +29 -6
- package/skills/ce-brainstorm/references/handoff.md +5 -26
- package/skills/ce-brainstorm/references/universal-brainstorming.md +0 -1
- package/skills/ce-compound/SKILL.md +8 -12
- package/skills/ce-ideate/references/post-ideation-workflow.md +21 -85
- package/skills/ce-plan/SKILL.md +6 -6
- package/skills/ce-plan/references/deepening-workflow.md +6 -7
- package/skills/ce-plan/references/plan-handoff.md +1 -17
- package/skills/ce-plan/references/universal-planning.md +0 -4
- package/skills/ce-review/SKILL.md +10 -19
- package/skills/ce-review/references/persona-catalog.md +2 -7
- package/skills/ce-review/references/review-output-template.md +0 -1
- package/skills/ce-work/SKILL.md +1 -1
- package/skills/deepen-plan/SKILL.md +6 -7
- package/skills/document-review/SKILL.md +2 -2
- package/skills/git-commit-push-pr/SKILL.md +1 -2
- package/skills/lfg/SKILL.md +1 -1
- package/skills/onboarding/SKILL.md +1 -12
- package/skills/orchestrating-subagents/SKILL.md +2 -2
- package/skills/slfg/SKILL.md +2 -3
- package/skills/test-browser/SKILL.md +2 -2
- package/skills/todos/SKILL.md +239 -0
- package/skills/writing-skills/SKILL.md +102 -1
- package/skills/{writing-systematic-skills → writing-skills}/references/foundation-conventions.md +5 -5
- package/agents/design/design-implementation-reviewer.md +0 -95
- package/agents/design/figma-design-sync.md +0 -173
- package/agents/docs/ankane-readme-writer.md +0 -51
- package/agents/review/cli-agent-readiness-reviewer.md +0 -418
- package/agents/review/data-integrity-guardian.md +0 -72
- package/agents/review/data-migration-expert.md +0 -99
- package/agents/review/dhh-rails-reviewer.md +0 -46
- package/agents/review/julik-frontend-races-reviewer.md +0 -49
- package/agents/review/kieran-python-reviewer.md +0 -47
- package/agents/review/kieran-rails-reviewer.md +0 -47
- package/agents/review/performance-oracle.md +0 -112
- package/agents/review/schema-drift-detector.md +0 -143
- package/agents/review/security-sentinel.md +0 -95
- package/agents/workflow/lint.md +0 -17
- package/dist/lib/converter.d.ts +0 -14
- package/skills/andrew-kane-gem-writer/SKILL.md +0 -184
- package/skills/andrew-kane-gem-writer/references/database-adapters.md +0 -231
- package/skills/andrew-kane-gem-writer/references/module-organization.md +0 -121
- package/skills/andrew-kane-gem-writer/references/rails-integration.md +0 -183
- package/skills/andrew-kane-gem-writer/references/resources.md +0 -119
- package/skills/andrew-kane-gem-writer/references/testing-patterns.md +0 -261
- package/skills/changelog/SKILL.md +0 -139
- package/skills/claude-permissions-optimizer/SKILL.md +0 -166
- package/skills/claude-permissions-optimizer/scripts/extract-commands.mjs +0 -655
- package/skills/claude-permissions-optimizer/scripts/normalize.mjs +0 -151
- package/skills/dhh-rails-style/SKILL.md +0 -186
- package/skills/dhh-rails-style/references/architecture.md +0 -653
- package/skills/dhh-rails-style/references/controllers.md +0 -303
- package/skills/dhh-rails-style/references/frontend.md +0 -510
- package/skills/dhh-rails-style/references/gems.md +0 -266
- package/skills/dhh-rails-style/references/models.md +0 -359
- package/skills/dhh-rails-style/references/testing.md +0 -338
- package/skills/dspy-ruby/SKILL.md +0 -737
- package/skills/dspy-ruby/assets/config-template.rb +0 -187
- package/skills/dspy-ruby/assets/module-template.rb +0 -300
- package/skills/dspy-ruby/assets/signature-template.rb +0 -221
- package/skills/dspy-ruby/references/core-concepts.md +0 -674
- package/skills/dspy-ruby/references/observability.md +0 -366
- package/skills/dspy-ruby/references/optimization.md +0 -603
- package/skills/dspy-ruby/references/providers.md +0 -418
- package/skills/dspy-ruby/references/toolsets.md +0 -502
- package/skills/every-style-editor/SKILL.md +0 -135
- package/skills/every-style-editor/references/EVERY_WRITE_STYLE.md +0 -529
- package/skills/feature-video/SKILL.md +0 -383
- package/skills/gemini-imagegen/SKILL.md +0 -237
- package/skills/gemini-imagegen/requirements.txt +0 -2
- package/skills/gemini-imagegen/scripts/compose_images.py +0 -157
- package/skills/gemini-imagegen/scripts/edit_image.py +0 -144
- package/skills/gemini-imagegen/scripts/gemini_images.py +0 -263
- package/skills/gemini-imagegen/scripts/generate_image.py +0 -133
- package/skills/gemini-imagegen/scripts/multi_turn_chat.py +0 -216
- package/skills/generate_command/SKILL.md +0 -164
- package/skills/orchestrating-swarms/SKILL.md +0 -1723
- package/skills/proof/SKILL.md +0 -291
- package/skills/proof/references/hitl-review.md +0 -368
- package/skills/rclone/SKILL.md +0 -150
- package/skills/rclone/scripts/check_setup.sh +0 -60
- package/skills/setup/SKILL.md +0 -22
- package/skills/test-xcode/SKILL.md +0 -214
- package/skills/todo-create/SKILL.md +0 -109
- package/skills/todo-resolve/SKILL.md +0 -68
- package/skills/todo-triage/SKILL.md +0 -70
- package/skills/writing-systematic-skills/SKILL.md +0 -119
- /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-
|
|
277
|
-
- **security_issue** → `systematic:review:security-
|
|
278
|
-
- **database_issue** → `systematic:review:data-
|
|
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-
|
|
401
|
-
✓ kieran-
|
|
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-
|
|
475
|
-
- **systematic:review:security-
|
|
476
|
-
- **systematic:review:data-
|
|
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
|
|
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 (
|
|
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` |
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
151
|
-
2. **
|
|
152
|
-
3. **
|
|
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
|
|
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
|
|
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 (
|
|
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
|
|
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.
|
|
150
|
+
### 6.3 Save and End
|
|
188
151
|
|
|
189
|
-
Persist via the mode default (5.1
|
|
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
|
-
|
|
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
|
|
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
|
package/skills/ce-plan/SKILL.md
CHANGED
|
@@ -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
|
-
-
|
|
228
|
-
-
|
|
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
|
-
-
|
|
297
|
-
-
|
|
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
|
-
-
|
|
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
|
|
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-
|
|
129
|
-
- `ce-security-
|
|
130
|
-
- `ce-data-
|
|
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-
|
|
135
|
-
- `ce-data-
|
|
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-
|
|
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. **
|
|
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 `
|
|
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
|
-
|
|
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.
|
|
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
|
|
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 (
|
|
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** (
|
|
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. **
|
|
516
|
-
11. **
|
|
517
|
-
12. **
|
|
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 `
|
|
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
|
-
|
|
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 (
|
|
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
|
package/skills/ce-work/SKILL.md
CHANGED
|
@@ -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
|
|
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-
|
|
238
|
-
- `systematic:review:security-
|
|
239
|
-
- `systematic:review:data-
|
|
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-
|
|
244
|
-
- `systematic:review:data-
|
|
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-
|
|
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
|
-
|
|
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:
|
|
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.
|
|
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
|
|
package/skills/lfg/SKILL.md
CHANGED
|
@@ -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:
|
|
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.
|
|
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-
|
|
86
|
-
task({ subagent_type: "performance-
|
|
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
|
```
|