@fro.bot/systematic 2.0.2 → 2.0.3

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 (56) hide show
  1. package/agents/design/figma-design-sync.md +1 -1
  2. package/agents/document-review/coherence-reviewer.md +40 -0
  3. package/agents/document-review/design-lens-reviewer.md +46 -0
  4. package/agents/document-review/feasibility-reviewer.md +42 -0
  5. package/agents/document-review/product-lens-reviewer.md +50 -0
  6. package/agents/document-review/scope-guardian-reviewer.md +54 -0
  7. package/agents/document-review/security-lens-reviewer.md +38 -0
  8. package/agents/research/best-practices-researcher.md +2 -1
  9. package/agents/research/git-history-analyzer.md +1 -1
  10. package/agents/research/repo-research-analyst.md +164 -9
  11. package/agents/review/api-contract-reviewer.md +49 -0
  12. package/agents/review/correctness-reviewer.md +49 -0
  13. package/agents/review/data-migrations-reviewer.md +53 -0
  14. package/agents/review/maintainability-reviewer.md +49 -0
  15. package/agents/review/pattern-recognition-specialist.md +2 -1
  16. package/agents/review/performance-reviewer.md +51 -0
  17. package/agents/review/reliability-reviewer.md +49 -0
  18. package/agents/review/schema-drift-detector.md +12 -10
  19. package/agents/review/security-reviewer.md +51 -0
  20. package/agents/review/testing-reviewer.md +48 -0
  21. package/agents/workflow/pr-comment-resolver.md +1 -1
  22. package/agents/workflow/spec-flow-analyzer.md +60 -89
  23. package/package.json +1 -1
  24. package/skills/agent-browser/SKILL.md +69 -48
  25. package/skills/ce-brainstorm/SKILL.md +2 -1
  26. package/skills/ce-compound/SKILL.md +26 -1
  27. package/skills/ce-compound-refresh/SKILL.md +11 -1
  28. package/skills/ce-ideate/SKILL.md +2 -1
  29. package/skills/ce-plan/SKILL.md +424 -414
  30. package/skills/ce-review/SKILL.md +12 -13
  31. package/skills/ce-review-beta/SKILL.md +506 -0
  32. package/skills/ce-review-beta/references/diff-scope.md +31 -0
  33. package/skills/ce-review-beta/references/findings-schema.json +128 -0
  34. package/skills/ce-review-beta/references/persona-catalog.md +50 -0
  35. package/skills/ce-review-beta/references/review-output-template.md +115 -0
  36. package/skills/ce-review-beta/references/subagent-template.md +56 -0
  37. package/skills/ce-work/SKILL.md +14 -6
  38. package/skills/ce-work-beta/SKILL.md +14 -8
  39. package/skills/claude-permissions-optimizer/SKILL.md +15 -14
  40. package/skills/deepen-plan/SKILL.md +348 -483
  41. package/skills/document-review/SKILL.md +160 -52
  42. package/skills/feature-video/SKILL.md +209 -178
  43. package/skills/file-todos/SKILL.md +72 -94
  44. package/skills/frontend-design/SKILL.md +243 -27
  45. package/skills/git-worktree/SKILL.md +37 -28
  46. package/skills/lfg/SKILL.md +7 -7
  47. package/skills/reproduce-bug/SKILL.md +154 -60
  48. package/skills/resolve-pr-parallel/SKILL.md +19 -12
  49. package/skills/resolve-todo-parallel/SKILL.md +9 -6
  50. package/skills/setup/SKILL.md +33 -56
  51. package/skills/slfg/SKILL.md +5 -5
  52. package/skills/test-browser/SKILL.md +69 -145
  53. package/skills/test-xcode/SKILL.md +61 -183
  54. package/skills/triage/SKILL.md +10 -10
  55. package/skills/ce-plan-beta/SKILL.md +0 -571
  56. package/skills/deepen-plan-beta/SKILL.md +0 -323
@@ -0,0 +1,128 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "title": "Code Review Findings",
4
+ "description": "Structured output schema for code review sub-agents",
5
+ "type": "object",
6
+ "required": ["reviewer", "findings", "residual_risks", "testing_gaps"],
7
+ "properties": {
8
+ "reviewer": {
9
+ "type": "string",
10
+ "description": "Persona name that produced this output (e.g., 'correctness', 'security')"
11
+ },
12
+ "findings": {
13
+ "type": "array",
14
+ "description": "List of code review findings. Empty array if no issues found.",
15
+ "items": {
16
+ "type": "object",
17
+ "required": [
18
+ "title",
19
+ "severity",
20
+ "file",
21
+ "line",
22
+ "why_it_matters",
23
+ "autofix_class",
24
+ "owner",
25
+ "requires_verification",
26
+ "confidence",
27
+ "evidence",
28
+ "pre_existing"
29
+ ],
30
+ "properties": {
31
+ "title": {
32
+ "type": "string",
33
+ "description": "Short, specific issue title. 10 words or fewer.",
34
+ "maxLength": 100
35
+ },
36
+ "severity": {
37
+ "type": "string",
38
+ "enum": ["P0", "P1", "P2", "P3"],
39
+ "description": "Issue severity level"
40
+ },
41
+ "file": {
42
+ "type": "string",
43
+ "description": "Relative file path from repository root"
44
+ },
45
+ "line": {
46
+ "type": "integer",
47
+ "description": "Primary line number of the issue",
48
+ "minimum": 1
49
+ },
50
+ "why_it_matters": {
51
+ "type": "string",
52
+ "description": "Impact and failure mode -- not 'what is wrong' but 'what breaks'"
53
+ },
54
+ "autofix_class": {
55
+ "type": "string",
56
+ "enum": ["safe_auto", "gated_auto", "manual", "advisory"],
57
+ "description": "Reviewer's conservative recommendation for how this issue should be handled after synthesis"
58
+ },
59
+ "owner": {
60
+ "type": "string",
61
+ "enum": ["review-fixer", "downstream-resolver", "human", "release"],
62
+ "description": "Who should own the next action for this finding after synthesis"
63
+ },
64
+ "requires_verification": {
65
+ "type": "boolean",
66
+ "description": "Whether any fix for this finding must be re-verified with targeted tests or a follow-up review pass"
67
+ },
68
+ "suggested_fix": {
69
+ "type": ["string", "null"],
70
+ "description": "Concrete minimal fix. Omit or null if no good fix is obvious -- a bad suggestion is worse than none."
71
+ },
72
+ "confidence": {
73
+ "type": "number",
74
+ "description": "Reviewer confidence in this finding, calibrated per persona",
75
+ "minimum": 0.0,
76
+ "maximum": 1.0
77
+ },
78
+ "evidence": {
79
+ "type": "array",
80
+ "description": "Code-grounded evidence: snippets, line references, or pattern descriptions. At least 1 item.",
81
+ "items": { "type": "string" },
82
+ "minItems": 1
83
+ },
84
+ "pre_existing": {
85
+ "type": "boolean",
86
+ "description": "True if this issue exists in unchanged code unrelated to the current diff"
87
+ }
88
+ }
89
+ }
90
+ },
91
+ "residual_risks": {
92
+ "type": "array",
93
+ "description": "Risks the reviewer noticed but could not confirm as findings",
94
+ "items": { "type": "string" }
95
+ },
96
+ "testing_gaps": {
97
+ "type": "array",
98
+ "description": "Missing test coverage the reviewer identified",
99
+ "items": { "type": "string" }
100
+ }
101
+ },
102
+
103
+ "_meta": {
104
+ "confidence_thresholds": {
105
+ "suppress": "Below 0.60 -- do not report. Finding is speculative noise.",
106
+ "flag": "0.60-0.69 -- include only when the persona's calibration says the issue is actionable at that confidence.",
107
+ "report": "0.70+ -- report with full confidence."
108
+ },
109
+ "severity_definitions": {
110
+ "P0": "Critical breakage, exploitable vulnerability, data loss/corruption. Must fix before merge.",
111
+ "P1": "High-impact defect likely hit in normal usage, breaking contract. Should fix.",
112
+ "P2": "Moderate issue with meaningful downside (edge case, perf regression, maintainability trap). Fix if straightforward.",
113
+ "P3": "Low-impact, narrow scope, minor improvement. User's discretion."
114
+ },
115
+ "autofix_classes": {
116
+ "safe_auto": "Local, deterministic code or test fix suitable for the in-skill fixer in autonomous mode.",
117
+ "gated_auto": "Concrete fix exists, but it changes behavior, permissions, contracts, or other sensitive areas that deserve explicit approval.",
118
+ "manual": "Actionable issue that should become residual work rather than an in-skill autofix.",
119
+ "advisory": "Informational or operational item that should be surfaced in the report only."
120
+ },
121
+ "owners": {
122
+ "review-fixer": "The in-skill fixer can own this when policy allows.",
123
+ "downstream-resolver": "Turn this into residual work for later resolution.",
124
+ "human": "A person must make a judgment call before code changes should continue.",
125
+ "release": "Operational or rollout follow-up; do not convert into code-fix work automatically."
126
+ }
127
+ }
128
+ }
@@ -0,0 +1,50 @@
1
+ # Persona Catalog
2
+
3
+ 8 reviewer personas organized in two tiers, plus CE-specific agents. The orchestrator uses this catalog to select which reviewers to spawn for each review.
4
+
5
+ ## Always-on (3 personas + 2 CE agents)
6
+
7
+ Spawned on every review regardless of diff content.
8
+
9
+ **Persona agents (structured JSON output):**
10
+
11
+ | Persona | Agent | Focus |
12
+ |---------|-------|-------|
13
+ | `correctness` | `systematic:review:correctness-reviewer` | Logic errors, edge cases, state bugs, error propagation, intent compliance |
14
+ | `testing` | `systematic:review:testing-reviewer` | Coverage gaps, weak assertions, brittle tests, missing edge case tests |
15
+ | `maintainability` | `systematic:review:maintainability-reviewer` | Coupling, complexity, naming, dead code, premature abstraction |
16
+
17
+ **CE agents (unstructured output, synthesized separately):**
18
+
19
+ | Agent | Focus |
20
+ |-------|-------|
21
+ | `systematic:review:agent-native-reviewer` | Verify new features are agent-accessible |
22
+ | `systematic:research:learnings-researcher` | Search docs/solutions/ for past issues related to this PR's modules and patterns |
23
+
24
+ ## Conditional (5 personas)
25
+
26
+ Spawned when the orchestrator identifies relevant patterns in the diff. The orchestrator reads the full diff and reasons about selection -- this is agent judgment, not keyword matching.
27
+
28
+ | Persona | Agent | Select when diff touches... |
29
+ |---------|-------|---------------------------|
30
+ | `security` | `systematic:review:security-reviewer` | Auth middleware, public endpoints, user input handling, permission checks, secrets management |
31
+ | `performance` | `systematic:review:performance-reviewer` | Database queries, ORM calls, loop-heavy data transforms, caching layers, async/concurrent code |
32
+ | `api-contract` | `systematic:review:api-contract-reviewer` | Route definitions, serializer/interface changes, event schemas, exported type signatures, API versioning |
33
+ | `data-migrations` | `systematic:review:data-migrations-reviewer` | Migration files, schema changes, backfill scripts, data transformations |
34
+ | `reliability` | `systematic:review:reliability-reviewer` | Error handling, retry logic, circuit breakers, timeouts, background jobs, async handlers, health checks |
35
+
36
+ ## CE Conditional Agents (migration-specific)
37
+
38
+ These CE-native agents provide specialized analysis beyond what the persona agents cover. Spawn them when the diff includes database migrations, schema.rb, or data backfills.
39
+
40
+ | Agent | Focus |
41
+ |-------|-------|
42
+ | `systematic:review:schema-drift-detector` | Cross-references schema.rb changes against included migrations to catch unrelated drift |
43
+ | `systematic:review:deployment-verification-agent` | Produces Go/No-Go deployment checklist with SQL verification queries and rollback procedures |
44
+
45
+ ## Selection rules
46
+
47
+ 1. **Always spawn all 3 always-on personas** plus the 2 CE always-on agents.
48
+ 2. **For each conditional persona**, the orchestrator reads the diff and decides whether the persona's domain is relevant. This is a judgment call, not a keyword match.
49
+ 3. **For CE conditional agents**, spawn when the diff includes migration files (`db/migrate/*.rb`, `db/schema.rb`) or data backfill scripts.
50
+ 4. **Announce the team** before spawning with a one-line justification per conditional reviewer selected.
@@ -0,0 +1,115 @@
1
+ # Code Review Output Template
2
+
3
+ Use this **exact format** when presenting synthesized review findings. Findings are grouped by severity, not by reviewer.
4
+
5
+ **IMPORTANT:** Use pipe-delimited markdown tables (`| col | col |`). Do NOT use ASCII box-drawing characters.
6
+
7
+ ## Example
8
+
9
+ ```markdown
10
+ ## Code Review Results
11
+
12
+ **Scope:** merge-base with the review base branch -> working tree (14 files, 342 lines)
13
+ **Intent:** Add order export endpoint with CSV and JSON format support
14
+ **Mode:** autonomous
15
+
16
+ **Reviewers:** correctness, testing, maintainability, security, api-contract
17
+ - security -- new public endpoint accepts user-provided format parameter
18
+ - api-contract -- new /api/orders/export route with response schema
19
+
20
+ ### P0 -- Critical
21
+
22
+ | # | File | Issue | Reviewer | Confidence | Route |
23
+ |---|------|-------|----------|------------|-------|
24
+ | 1 | `orders_controller.rb:42` | User-supplied ID in account lookup without ownership check | security | 0.92 | `gated_auto -> downstream-resolver` |
25
+
26
+ ### P1 -- High
27
+
28
+ | # | File | Issue | Reviewer | Confidence | Route |
29
+ |---|------|-------|----------|------------|-------|
30
+ | 2 | `export_service.rb:87` | Loads all orders into memory -- unbounded for large accounts | performance | 0.85 | `safe_auto -> review-fixer` |
31
+ | 3 | `export_service.rb:91` | No pagination -- response size grows linearly with order count | api-contract, performance | 0.80 | `manual -> downstream-resolver` |
32
+
33
+ ### P2 -- Moderate
34
+
35
+ | # | File | Issue | Reviewer | Confidence | Route |
36
+ |---|------|-------|----------|------------|-------|
37
+ | 4 | `export_service.rb:45` | Missing error handling for CSV serialization failure | correctness | 0.75 | `safe_auto -> review-fixer` |
38
+
39
+ ### P3 -- Low
40
+
41
+ | # | File | Issue | Reviewer | Confidence | Route |
42
+ |---|------|-------|----------|------------|-------|
43
+ | 5 | `export_helper.rb:12` | Format detection could use early return instead of nested conditional | maintainability | 0.70 | `advisory -> human` |
44
+
45
+ ### Applied Fixes
46
+
47
+ - `safe_auto`: Added bounded export pagination guard and CSV serialization failure test coverage in this run
48
+
49
+ ### Residual Actionable Work
50
+
51
+ | # | File | Issue | Route | Next Step |
52
+ |---|------|-------|-------|-----------|
53
+ | 1 | `orders_controller.rb:42` | Ownership check missing on export lookup | `gated_auto -> downstream-resolver` | Create residual todo and require explicit approval before behavior change |
54
+ | 2 | `export_service.rb:91` | Pagination contract needs a broader API decision | `manual -> downstream-resolver` | Create residual todo with contract and client impact details |
55
+
56
+ ### Pre-existing Issues
57
+
58
+ | # | File | Issue | Reviewer |
59
+ |---|------|-------|----------|
60
+ | 1 | `orders_controller.rb:12` | Broad rescue masking failed permission check | correctness |
61
+
62
+ ### Learnings & Past Solutions
63
+
64
+ - [Known Pattern] `docs/solutions/export-pagination.md` -- previous export pagination fix applies to this endpoint
65
+
66
+ ### Agent-Native Gaps
67
+
68
+ - New export endpoint has no CLI/agent equivalent -- agent users cannot trigger exports
69
+
70
+ ### Schema Drift Check
71
+
72
+ - Clean: schema.rb changes match the migrations in scope
73
+
74
+ ### Deployment Notes
75
+
76
+ - Pre-deploy: capture baseline row counts before enabling the export backfill
77
+ - Verify: `SELECT COUNT(*) FROM exports WHERE status IS NULL;` should stay at `0`
78
+ - Rollback: keep the old export path available until the backfill has been validated
79
+
80
+ ### Coverage
81
+
82
+ - Suppressed: 2 findings below 0.60 confidence
83
+ - Residual risks: No rate limiting on export endpoint
84
+ - Testing gaps: No test for concurrent export requests
85
+
86
+ ---
87
+
88
+ > **Verdict:** Ready with fixes
89
+ >
90
+ > **Reasoning:** 1 critical auth bypass must be fixed. The memory/pagination issues (P1) should be addressed for production safety.
91
+ >
92
+ > **Fix order:** P0 auth bypass -> P1 memory/pagination -> P2 error handling if straightforward
93
+ ```
94
+
95
+ ## Formatting Rules
96
+
97
+ - **Pipe-delimited markdown tables** -- never ASCII box-drawing characters
98
+ - **Severity-grouped sections** -- `### P0 -- Critical`, `### P1 -- High`, `### P2 -- Moderate`, `### P3 -- Low`. Omit empty severity levels.
99
+ - **Always include file:line location** for code review issues
100
+ - **Reviewer column** shows which persona(s) flagged the issue. Multiple reviewers = cross-reviewer agreement.
101
+ - **Confidence column** shows the finding's confidence score
102
+ - **Route column** shows the synthesized handling decision as ``<autofix_class> -> <owner>``.
103
+ - **Header includes** scope, intent, and reviewer team with per-conditional justifications
104
+ - **Mode line** -- include `interactive`, `autonomous`, or `report-only`
105
+ - **Applied Fixes section** -- include only when a fix phase ran in this review invocation
106
+ - **Residual Actionable Work section** -- include only when unresolved actionable findings were handed off for later work
107
+ - **Pre-existing section** -- separate table, no confidence column (these are informational)
108
+ - **Learnings & Past Solutions section** -- results from learnings-researcher, with links to docs/solutions/ files
109
+ - **Agent-Native Gaps section** -- results from agent-native-reviewer. Omit if no gaps found.
110
+ - **Schema Drift Check section** -- results from schema-drift-detector. Omit if the agent did not run.
111
+ - **Deployment Notes section** -- key checklist items from deployment-verification-agent. Omit if the agent did not run.
112
+ - **Coverage section** -- suppressed count, residual risks, testing gaps, failed reviewers
113
+ - **Summary uses blockquotes** for verdict, reasoning, and fix order
114
+ - **Horizontal rule** (`---`) separates findings from verdict
115
+ - **`###` headers** for each section -- never plain text headers
@@ -0,0 +1,56 @@
1
+ # Sub-agent Prompt Template
2
+
3
+ This template is used by the orchestrator to spawn each reviewer sub-agent. Variable substitution slots are filled at spawn time.
4
+
5
+ ---
6
+
7
+ ## Template
8
+
9
+ ```
10
+ You are a specialist code reviewer.
11
+
12
+ <persona>
13
+ {persona_file}
14
+ </persona>
15
+
16
+ <scope-rules>
17
+ {diff_scope_rules}
18
+ </scope-rules>
19
+
20
+ <output-contract>
21
+ Return ONLY valid JSON matching the findings schema below. No prose, no markdown, no explanation outside the JSON object.
22
+
23
+ {schema}
24
+
25
+ Rules:
26
+ - Suppress any finding below your stated confidence floor (see your Confidence calibration section).
27
+ - Every finding MUST include at least one evidence item grounded in the actual code.
28
+ - Set pre_existing to true ONLY for issues in unchanged code that are unrelated to this diff. If the diff makes the issue newly relevant, it is NOT pre-existing.
29
+ - You are operationally read-only. You may use non-mutating inspection commands, including read-oriented `git` / `gh` commands, to gather evidence. Do not edit files, change branches, commit, push, create PRs, or otherwise mutate the checkout or repository state.
30
+ - Set `autofix_class` conservatively. Use `safe_auto` only when the fix is local, deterministic, and low-risk. Use `gated_auto` when a concrete fix exists but changes behavior/contracts/permissions. Use `manual` for actionable residual work. Use `advisory` for report-only items that should not become code-fix work.
31
+ - Set `owner` to the default next actor for this finding: `review-fixer`, `downstream-resolver`, `human`, or `release`.
32
+ - Set `requires_verification` to true whenever the likely fix needs targeted tests, a focused re-review, or operational validation before it should be trusted.
33
+ - suggested_fix is optional. Only include it when the fix is obvious and correct. A bad suggestion is worse than none.
34
+ - If you find no issues, return an empty findings array. Still populate residual_risks and testing_gaps if applicable.
35
+ </output-contract>
36
+
37
+ <review-context>
38
+ Intent: {intent_summary}
39
+
40
+ Changed files: {file_list}
41
+
42
+ Diff:
43
+ {diff}
44
+ </review-context>
45
+ ```
46
+
47
+ ## Variable Reference
48
+
49
+ | Variable | Source | Description |
50
+ |----------|--------|-------------|
51
+ | `{persona_file}` | Agent markdown file content | The full persona definition (identity, failure modes, calibration, suppress conditions) |
52
+ | `{diff_scope_rules}` | `references/diff-scope.md` content | Primary/secondary/pre-existing tier rules |
53
+ | `{schema}` | `references/findings-schema.json` content | The JSON schema reviewers must conform to |
54
+ | `{intent_summary}` | Stage 2 output | 2-3 line description of what the change is trying to accomplish |
55
+ | `{file_list}` | Stage 1 output | List of changed files from the scope step |
56
+ | `{diff}` | Stage 1 output | The actual diff content to review |
@@ -25,9 +25,11 @@ This command takes a work document (plan, specification, or todo file) and execu
25
25
  - Read the work document completely
26
26
  - Treat the plan as a decision artifact, not an execution script
27
27
  - If the plan includes sections such as `Implementation Units`, `Work Breakdown`, `Requirements Trace`, `Files`, `Test Scenarios`, or `Verification`, use those as the primary source material for execution
28
+ - Check for `Execution note` on each implementation unit — these carry the plan's execution posture signal for that unit (for example, test-first or characterization-first). Note them when creating tasks.
28
29
  - Check for a `Deferred to Implementation` or `Implementation-Time Unknowns` section — these are questions the planner intentionally left for you to resolve during execution. Note them before starting so they inform your approach rather than surprising you mid-task
29
30
  - Check for a `Scope Boundaries` section — these are explicit non-goals. Refer back to them if implementation starts pulling you toward adjacent work
30
31
  - Review any references or links provided in the plan
32
+ - If the user explicitly asks for TDD, test-first, or characterization-first execution in this session, honor that request even if the plan has no `Execution note`
31
33
  - If anything is unclear or ambiguous, ask clarifying questions now
32
34
  - Get user approval to proceed
33
35
  - **Do not skip this** - better to ask questions now than build the wrong thing
@@ -79,6 +81,7 @@ This command takes a work document (plan, specification, or todo file) and execu
79
81
  3. **Create Todo List**
80
82
  - Use your available task tracking tool (e.g., todowrite, task lists) to break the plan into actionable tasks
81
83
  - Derive tasks from the plan's implementation units, dependencies, files, test targets, and verification criteria
84
+ - Carry each unit's `Execution note` into the task when present
82
85
  - For each unit, read the `Patterns to follow` field before implementing — these point to specific files or conventions to mirror
83
86
  - Use each unit's `Verification` field as the primary "done" signal for that task
84
87
  - Do not expect the plan to contain implementation code, micro-step TDD instructions, or exact shell commands
@@ -99,7 +102,7 @@ This command takes a work document (plan, specification, or todo file) and execu
99
102
 
100
103
  **Subagent dispatch** uses your available subagent or task spawning mechanism. For each unit, give the subagent:
101
104
  - The full plan file path (for overall context)
102
- - The specific unit's Goal, Files, Approach, Patterns, Test scenarios, and Verification
105
+ - The specific unit's Goal, Files, Approach, Execution note, Patterns, Test scenarios, and Verification
103
106
  - Any resolved deferred questions relevant to that unit
104
107
 
105
108
  After each subagent completes, update the plan checkboxes and task list before dispatching the next dependent unit.
@@ -125,6 +128,14 @@ This command takes a work document (plan, specification, or todo file) and execu
125
128
  - Evaluate for incremental commit (see below)
126
129
  ```
127
130
 
131
+ When a unit carries an `Execution note`, honor it. For test-first units, write the failing test before implementation for that unit. For characterization-first units, capture existing behavior before changing it. For units without an `Execution note`, proceed pragmatically.
132
+
133
+ Guardrails for execution posture:
134
+ - Do not write the test and implementation in the same step when working test-first
135
+ - Do not skip verifying that a new test fails before implementing the fix or feature
136
+ - Do not over-implement beyond the current behavior slice when working test-first
137
+ - Skip test-first discipline for trivial renames, pure configuration, and pure styling work
138
+
128
139
  **System-Wide Test Check** — Before marking a task done, pause and ask:
129
140
 
130
141
  | Question | What to do |
@@ -139,7 +150,6 @@ This command takes a work document (plan, specification, or todo file) and execu
139
150
 
140
151
  **When this matters most:** Any change that touches models with callbacks, error handling with fallback/retry, or functionality exposed through multiple interfaces.
141
152
 
142
-
143
153
  2. **Incremental Commits**
144
154
 
145
155
  After completing each task, evaluate whether to create an incremental commit:
@@ -176,7 +186,7 @@ This command takes a work document (plan, specification, or todo file) and execu
176
186
  - The plan should reference similar code - read those files first
177
187
  - Match naming conventions exactly
178
188
  - Reuse existing components where possible
179
- - Follow project coding standards (see AGENTS.md)
189
+ - Follow project coding standards (see AGENTS.md; use AGENTS.md only if the repo still keeps a compatibility shim)
180
190
  - When in doubt, grep for similar implementations
181
191
 
182
192
  4. **Test Continuously**
@@ -282,7 +292,7 @@ This command takes a work document (plan, specification, or todo file) and execu
282
292
  | `[CONTEXT]` | Context window (if known) | 200K, 1M |
283
293
  | `[THINKING]` | Thinking level (if known) | extended thinking |
284
294
  | `[HARNESS]` | Tool running you | OpenCode, Codex, Gemini CLI |
285
- | `[HARNESS_URL]` | Link to that tool | `https://claude.com/claude-code` |
295
+ | `[HARNESS_URL]` | Link to that tool | `https://opencode.ai` |
286
296
  | `[VERSION]` | `plugin.json` → `version` | 2.40.0 |
287
297
 
288
298
  Subagents creating commits/PRs are equally responsible for accurate attribution.
@@ -360,7 +370,6 @@ This command takes a work document (plan, specification, or todo file) and execu
360
370
 
361
371
  ---
362
372
 
363
- [![Systematic v[VERSION]](https://img.shields.io/badge/Systematic-v[VERSION]-6366f1)](https://github.com/EveryInc/systematic)
364
373
  🤖 Generated with [MODEL] ([CONTEXT] context, [THINKING]) via [HARNESS](HARNESS_URL)
365
374
  EOF
366
375
  )"
@@ -478,4 +487,3 @@ For most features: tests + linting + following patterns is sufficient.
478
487
  - **Forgetting to track progress** - Update task status as you go or lose track of what's done
479
488
  - **80% done syndrome** - Finish the feature, don't move on early
480
489
  - **Over-reviewing simple changes** - Save reviewer agents for complex work
481
-
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: ce:work-beta
3
- description: 'Use this skill when executing a plan with the ce:work workflow but you also want optional external delegate execution for implementation-heavy tasks. Ideal for large tasks where token conservation matters and acceptance criteria are already clear.'
3
+ description: '[BETA] Execute work plans with external delegate support. Same as ce:work but includes experimental Codex delegation mode for token-conserving code implementation.'
4
4
  argument-hint: '[plan file, specification, or todo file path]'
5
5
  disable-model-invocation: true
6
6
  ---
@@ -151,7 +151,6 @@ This command takes a work document (plan, specification, or todo file) and execu
151
151
 
152
152
  **When this matters most:** Any change that touches models with callbacks, error handling with fallback/retry, or functionality exposed through multiple interfaces.
153
153
 
154
-
155
154
  2. **Incremental Commits**
156
155
 
157
156
  After completing each task, evaluate whether to create an incremental commit:
@@ -216,7 +215,15 @@ This command takes a work document (plan, specification, or todo file) and execu
216
215
  - Fix visual differences identified
217
216
  - Repeat until implementation matches design
218
217
 
219
- 6. **Track Progress**
218
+ 7. **Frontend Design Guidance** (if applicable)
219
+
220
+ For UI tasks without a Figma design -- where the implementation touches view, template, component, layout, or page files, creates user-visible routes, or the plan contains explicit UI/frontend/design language:
221
+
222
+ - Load the `frontend-design` skill before implementing
223
+ - Follow its detection, guidance, and verification flow
224
+ - If the skill produced a verification screenshot, it satisfies Phase 4's screenshot requirement -- no need to capture separately. If the skill fell back to mental review (no browser access), Phase 4's screenshot capture still applies
225
+
226
+ 8. **Track Progress**
220
227
  - Keep the task list updated as you complete tasks
221
228
  - Note any blockers or unexpected discoveries
222
229
  - Create new tasks if scope expands
@@ -238,7 +245,7 @@ This command takes a work document (plan, specification, or todo file) and execu
238
245
 
239
246
  2. **Consider Reviewer Agents** (Optional)
240
247
 
241
- Use for complex, risky, or large changes. Read agents from your local workflow settings frontmatter (`review_agents`). If no settings file exists, invoke the `setup` skill to create one.
248
+ Use for complex, risky, or large changes. Read agents from `systematic.local.md` frontmatter (`review_agents`). If no settings file, invoke the `setup` skill to create one.
242
249
 
243
250
  Run configured agents in parallel with task tool. Present findings and address critical issues.
244
251
 
@@ -294,7 +301,7 @@ This command takes a work document (plan, specification, or todo file) and execu
294
301
  | `[CONTEXT]` | Context window (if known) | 200K, 1M |
295
302
  | `[THINKING]` | Thinking level (if known) | extended thinking |
296
303
  | `[HARNESS]` | Tool running you | OpenCode, Codex, Gemini CLI |
297
- | `[HARNESS_URL]` | Link to that tool | `https://claude.com/claude-code` |
304
+ | `[HARNESS_URL]` | Link to that tool | `https://opencode.ai` |
298
305
  | `[VERSION]` | `plugin.json` → `version` | 2.40.0 |
299
306
 
300
307
  Subagents creating commits/PRs are equally responsible for accurate attribution.
@@ -372,7 +379,6 @@ This command takes a work document (plan, specification, or todo file) and execu
372
379
 
373
380
  ---
374
381
 
375
- [![Systematic v[VERSION]](https://img.shields.io/badge/Systematic-v[VERSION]-6366f1)](https://github.com/marcusrbrown/systematic)
376
382
  🤖 Generated with [MODEL] ([CONTEXT] context, [THINKING]) via [HARNESS](HARNESS_URL)
377
383
  EOF
378
384
  )"
@@ -439,7 +445,7 @@ This mode integrates with the existing Phase 1 Step 4 strategy selection as a **
439
445
 
440
446
  External delegation activates when any of these conditions are met:
441
447
  - The user says "use codex for this work", "delegate to codex", or "delegate mode"
442
- - A plan implementation unit contains `Execution target: external-delegate` in its Execution note (set by ce:plan-beta or ce:plan)
448
+ - A plan implementation unit contains `Execution target: external-delegate` in its Execution note (set by ce:plan)
443
449
 
444
450
  The specific delegate tool is resolved at execution time. Currently the only supported delegate is Codex CLI. Future delegates can be added without changing plan files.
445
451
 
@@ -462,7 +468,7 @@ When external delegation is active, follow this workflow for each tagged task. D
462
468
 
463
469
  Verify the delegate CLI is installed. If not found, print "Delegate CLI not installed - continuing with standard mode." and proceed normally.
464
470
 
465
- 2. **Build prompt** — For each task, assemble a prompt from the plan's implementation unit (Goal, Files, Approach, and project conventions). Include rules: no git commits, no PRs, run `git status` and `git diff --stat` when done. Never embed credentials or tokens in the prompt - pass auth through environment variables.
471
+ 2. **Build prompt** — For each task, assemble a prompt from the plan's implementation unit (Goal, Files, Approach, Conventions from `systematic.local.md`). Include rules: no git commits, no PRs, run `git status` and `git diff --stat` when done. Never embed credentials or tokens in the prompt - pass auth through environment variables.
466
472
 
467
473
  3. **Write prompt to file** — Save the assembled prompt to a unique temporary file to avoid shell quoting issues and cross-task races. Use a unique filename per task.
468
474
 
@@ -1,11 +1,11 @@
1
1
  ---
2
2
  name: claude-permissions-optimizer
3
3
  context: fork
4
- description: Use this skill when you want to reduce OpenCode permission prompts by safely allowlisting frequently used Bash commands based on real session history. Best for permission fatigue and repetitive approvals without broadly weakening safety.
4
+ description: Optimize Claude Code permissions by finding safe Bash commands from session history and auto-applying them to settings.json. Can run from any coding agent but targets Claude Code specifically. Use when experiencing permission fatigue, too many permission prompts, wanting to optimize permissions, or needing to set up allowlists. Triggers on "optimize permissions", "reduce permission prompts", "allowlist commands", "too many permission prompts", "permission fatigue", "permission setup", or complaints about clicking approve too often.
5
5
  subtask: true
6
6
  ---
7
7
 
8
- # OpenCode Permissions Optimizer
8
+ # Claude Permissions Optimizer
9
9
 
10
10
  Find safe Bash commands that are causing unnecessary permission prompts and auto-allow them in `settings.json` -- evidence-based, not prescriptive.
11
11
 
@@ -13,19 +13,19 @@ This skill identifies commands safe to auto-allow based on actual session histor
13
13
 
14
14
  ## Pre-check: Confirm environment
15
15
 
16
- Determine whether you are currently running inside OpenCode or a different coding agent (Codex, Gemini CLI, Cursor, etc.).
16
+ Determine whether you are currently running inside Claude Code or a different coding agent (Codex, Gemini CLI, Cursor, etc.).
17
17
 
18
- **If running inside OpenCode:** Proceed directly to Step 1.
18
+ **If running inside Claude Code:** Proceed directly to Step 1.
19
19
 
20
20
  **If running in a different agent:** Inform the user before proceeding:
21
21
 
22
- > "This skill analyzes OpenCode session history and writes to OpenCode settings.json. You're currently in [agent name], but I can still optimize your OpenCode permissions from here -- the results will apply next time you use OpenCode."
22
+ > "This skill analyzes Claude Code session history and writes to Claude Code's settings.json. You're currently in [agent name], but I can still optimize your Claude Code permissions from here -- the results will apply next time you use Claude Code."
23
23
 
24
- Then proceed to Step 1 normally. The skill works from any environment as long as `~/.config/opencode/` (or `$OPENCODE_CONFIG_DIR`) exists on the machine.
24
+ Then proceed to Step 1 normally. The skill works from any environment as long as `~/.claude/` (or `$CLAUDE_CONFIG_DIR`) exists on the machine.
25
25
 
26
26
  ## Step 1: Choose Analysis Scope
27
27
 
28
- Ask the user how broadly to analyze using the platform's blocking question tool (`question` in OpenCode, `request_user_input` in Codex, `ask_user` in Gemini). If no question tool is available, present the numbered options and wait for the user's reply.
28
+ Ask the user how broadly to analyze using the platform's blocking question tool (`question` in Claude Code, `request_user_input` in Codex, `ask_user` in Gemini). If no question tool is available, present the numbered options and wait for the user's reply.
29
29
 
30
30
  1. **All projects** (Recommended) -- sessions across every project
31
31
  2. **This project only** -- sessions for the current working directory
@@ -123,8 +123,8 @@ Use `greenRawCount` (the number of unique raw commands the green patterns cover)
123
123
 
124
124
  The recommendations table is already displayed. Use the platform's blocking question tool to ask for the decision:
125
125
 
126
- 1. **Apply all to user settings** (`~/.config/opencode/settings.json`)
127
- 2. **Apply all to project settings** (`.opencode/settings.json`)
126
+ 1. **Apply all to user settings** (`~/.claude/settings.json`)
127
+ 2. **Apply all to project settings** (`.claude/settings.json`)
128
128
  3. **Skip**
129
129
 
130
130
  If the user wants to exclude specific items, they can reply in free text (e.g., "all except 3 and 7 to user settings"). The numbered table is already visible for reference -- no need to re-list items in the question tool.
@@ -146,16 +146,17 @@ For each target settings file:
146
146
  After successful verification:
147
147
 
148
148
  ```
149
- Applied N rules to ~/.config/opencode/settings.json
150
- Applied M rules to .opencode/settings.json
149
+ Applied N rules to ~/.claude/settings.json
150
+ Applied M rules to .claude/settings.json
151
151
 
152
152
  These commands will no longer trigger permission prompts.
153
153
  ```
154
154
 
155
- If `.opencode/settings.json` was modified and is tracked by git, mention that committing it would benefit teammates.
155
+ If `.claude/settings.json` was modified and is tracked by git, mention that committing it would benefit teammates.
156
156
 
157
157
  ## Edge Cases
158
158
 
159
159
  - **No project context** (running outside a project): Only offer user-level settings as write target.
160
- - **Settings file doesn't exist**: Create it with `{ "permissions": { "allow": [] } }`. For `.opencode/settings.json`, also create the `.opencode/` directory if needed.
161
- - **Deny rules**: If a deny rule already blocks a command, warn rather than adding an allow rule (deny takes precedence in OpenCode).
160
+ - **Settings file doesn't exist**: Create it with `{ "permissions": { "allow": [] } }`. For `.claude/settings.json`, also create the `.claude/` directory if needed.
161
+ - **Deny rules**: If a deny rule already blocks a command, warn rather than adding an allow rule (deny takes precedence in Claude Code).
162
+