@massa-ai/claude-plugin 1.62.0 → 1.63.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/README.md +1 -1
  3. package/agent-profiles/balanced/code-explorer.md +11 -22
  4. package/agent-profiles/balanced/code-reviewer.md +21 -51
  5. package/agent-profiles/balanced/designer.md +22 -35
  6. package/agent-profiles/balanced/judge.md +21 -81
  7. package/agent-profiles/balanced/product-manager.md +11 -24
  8. package/agent-profiles/balanced/{builder.md → senior-engineer.md} +3 -3
  9. package/agent-profiles/balanced/test-engineer.md +11 -47
  10. package/agent-profiles/cheap/code-explorer.md +11 -22
  11. package/agent-profiles/cheap/code-reviewer.md +21 -51
  12. package/agent-profiles/cheap/designer.md +22 -35
  13. package/agent-profiles/cheap/judge.md +21 -81
  14. package/agent-profiles/cheap/product-manager.md +11 -24
  15. package/agent-profiles/cheap/{builder.md → senior-engineer.md} +3 -3
  16. package/agent-profiles/cheap/test-engineer.md +11 -47
  17. package/agent-profiles/heavy/code-explorer.md +11 -22
  18. package/agent-profiles/heavy/code-reviewer.md +21 -51
  19. package/agent-profiles/heavy/designer.md +22 -35
  20. package/agent-profiles/heavy/judge.md +21 -81
  21. package/agent-profiles/heavy/product-manager.md +11 -24
  22. package/agent-profiles/{work/builder.md → heavy/senior-engineer.md} +3 -3
  23. package/agent-profiles/heavy/test-engineer.md +11 -47
  24. package/agent-profiles/home/code-explorer.md +11 -22
  25. package/agent-profiles/home/code-reviewer.md +21 -51
  26. package/agent-profiles/home/designer.md +22 -35
  27. package/agent-profiles/home/judge.md +21 -81
  28. package/agent-profiles/home/product-manager.md +11 -24
  29. package/{agents/builder.md → agent-profiles/home/senior-engineer.md} +3 -3
  30. package/agent-profiles/home/test-engineer.md +11 -47
  31. package/agent-profiles/work/code-explorer.md +11 -22
  32. package/agent-profiles/work/code-reviewer.md +21 -51
  33. package/agent-profiles/work/designer.md +22 -35
  34. package/agent-profiles/work/judge.md +21 -81
  35. package/agent-profiles/work/product-manager.md +11 -24
  36. package/agent-profiles/{heavy/builder.md → work/senior-engineer.md} +3 -3
  37. package/agent-profiles/work/test-engineer.md +11 -47
  38. package/agents/code-explorer.md +11 -22
  39. package/agents/code-reviewer.md +21 -51
  40. package/agents/designer.md +22 -35
  41. package/agents/judge.md +21 -81
  42. package/agents/product-manager.md +11 -24
  43. package/{agent-profiles/home/builder.md → agents/senior-engineer.md} +3 -3
  44. package/agents/test-engineer.md +11 -47
  45. package/install.sh +6 -6
  46. package/package.json +1 -1
  47. package/skills/agents/code-explorer/SKILL.md +11 -22
  48. package/skills/agents/code-reviewer/SKILL.md +21 -51
  49. package/skills/agents/designer/SKILL.md +22 -35
  50. package/skills/agents/judge/SKILL.md +21 -81
  51. package/skills/agents/product-manager/SKILL.md +11 -24
  52. package/skills/agents/{builder → senior-engineer}/SKILL.md +3 -3
  53. package/skills/agents/test-engineer/SKILL.md +11 -47
  54. package/skills/massa-ai/SKILL.md +61 -204
  55. package/skills/massa-ai/references/agent-modes/designer/audit.md +22 -0
  56. package/skills/massa-ai/references/agent-modes/designer/implement.md +29 -0
  57. package/skills/massa-ai/references/agent-modes/designer/trace.md +41 -0
  58. package/skills/massa-ai/references/agent-modes/judge/plan-critique-full.md +13 -0
  59. package/skills/massa-ai/references/agent-modes/judge/plan-critique-lite.md +13 -0
  60. package/skills/massa-ai/references/agent-modes/judge/scorer.md +31 -0
  61. package/skills/massa-ai/references/agent-modes/judge/spec-author.md +28 -0
  62. package/skills/massa-ai/references/agent-modes/test-engineer/audit.md +17 -0
  63. package/skills/massa-ai/references/agent-modes/test-engineer/fix.md +14 -0
  64. package/skills/massa-ai/references/agent-orchestration.md +5 -4
  65. package/skills/massa-ai/references/figma-pre-analysis.md +1 -1
  66. package/skills/massa-ai/references/spec-driven/specify.md +1 -1
  67. package/skills/massa-ai/references/spec-driven/sub-agents.md +1 -0
  68. package/skills/massa-ai/references/subagent-design.md +1 -0
  69. package/skills/massa-ai/references/verification-ladder.md +1 -1
  70. package/skills/massa-ai/workflows/architecture/architecture-fix.md +3 -3
  71. package/skills/massa-ai/workflows/bugs/bugs-fix.md +3 -3
  72. package/skills/massa-ai/workflows/code-quality/code-quality-fix.md +3 -3
  73. package/skills/massa-ai/workflows/debug.md +2 -2
  74. package/skills/massa-ai/workflows/feature.md +3 -3
  75. package/skills/massa-ai/workflows/implementation/implementation-fix.md +3 -3
  76. package/skills/massa-ai/workflows/mobile-figma/mobile-figma-fix.md +5 -5
  77. package/skills/massa-ai/workflows/pr-review.md +3 -3
  78. package/skills/massa-ai/workflows/refactor.md +3 -3
  79. package/skills/massa-ai/workflows/requirements/requirements-fix.md +3 -3
  80. package/skills/massa-ai/workflows/security/security-fix.md +3 -3
  81. package/skills/massa-ai/workflows/spec-driven.md +13 -3
  82. package/skills/massa-ai/workflows/tests/tests-fix.md +3 -3
  83. package/skills/profile/SKILL.md +0 -39
@@ -20,109 +20,61 @@ section of `<host>/AGENTS.md`, for example `~/.claude/AGENTS.md`). Its single
20
20
  source is `skills/AGENTS.md` in the product repo; `scripts/install-skills.sh`
21
21
  copies that block out. Edit the policies there, never in a host copy.
22
22
 
23
- ## Dedupe Guard
24
-
25
- Before reading any massa-ai file:
26
-
27
- - In a new coding conversation, load this router once before using dedupe.
28
- - After that initial load, reuse already-loaded `massa-ai`, workflow,
29
- reference, or The Fool context.
30
- - Do not re-read a file only because another instruction names it.
31
- - Load only the missing minimum context needed to act.
32
- - Never load all workflows or references "just in case."
33
-
34
23
  ## Core Contract
35
24
 
36
25
  - Every coding/planning task uses one stable `projectId` and
37
26
  `workflowSessionId`.
38
- - Sub-agents are dispatched by bare charter name (`builder`, `code-reviewer`, ...).
39
- On the Claude plugin route, dispatch the plugin-namespaced `massa-ai:<name>`
40
- so a same-named user or project agent cannot intercept the dispatch.
41
- - Start with `recall` for relevant prior decisions/patterns.
42
- - Default startup/context recall is budgeted: use `limit <= 3`,
43
- `minImportance >= 0.7`, and `types=["critical","decision","pattern"]`
44
- unless the selected workflow explicitly needs a broader memory query.
45
- - Never use `recall` as an artifact loader. Exact project, handoff,
46
- feature, and validation state must come from .specs/ files.
47
- - For multi-search tasks, use a separate ephemeral `synapseSessionId` according
48
- to `references/synapse-policy.md`; pass it only to `search.sessionId`.
49
- Never pass `workflowSessionId` in that field. Use `synapse_task_begin`/`synapse_task_end`
50
- for task envelopes and `synapse_prefetch` to warm the buffer on file open.
51
- - Prefer the shared v2 retrieval order; fall back gracefully if the massa-ai
52
- server or Synapse is unavailable. The full tool surface includes 59 tools
53
- (see `references/mcp-tools.md`): indexing, search, symbol graph
54
- (`trace_path`, `impact_analysis`, `get_architecture`), memory CRUD
55
- (`remember`, `recall`, `memory_update`, `memory_delete`), checkpoints
56
- (`create_checkpoint`/`list_checkpoints`/`restore_checkpoint`), handoffs
57
- (`handoff_begin`/`accept`/`cancel`/`list_pending`), `bootstrap`,
58
- `compact_snapshot`, code execution (`execute`/`execute_file`/`batch_execute`),
59
- `fetch_and_index`, full Synapse lifecycle, `read_file`, `symbol_snippet`,
60
- and `analytics`. Graph tools (`trace_path`, `impact_analysis`,
61
- `get_architecture`) only count as evidence when the index is fresh for the
62
- current repository path and commit/worktree state.
63
- - Persist only durable, useful knowledge. Do not fabricate memories to satisfy
64
- process. Use `memory_update` to correct stale memories and `memory_delete`
65
- to remove obsolete ones.
66
- - Expand every word abbreviation on first use in user-facing output — e.g.
67
- "PR (Pull Request)", "AC (Acceptance Criteria)", "KMP (Kotlin Multiplatform)"
68
- — including workflow-specific shorthands and finding-ID families.
69
- - Use one uniform vocabulary for separating batches of work in every workflow:
70
- a **Task** is the atomic unit; a **Phase** is an ordered group of Tasks.
71
- Report a phase's size as `1 Phase = X Tasks` and a plan's total as
72
- `Y Phases = Z Tasks`. Do not substitute synonyms such as batch, wave, stage,
73
- or chunk for these units in agent prose.
74
- - Emit concise user-facing status updates at meaningful workflow boundaries
75
- when the Conversation Feedback Policy is active.
76
- - Verify, don't assume: every factual claim that drives a decision is
77
- verified against current codebase/command evidence or confirmed with the
78
- user. Documentation of any kind — README, docs/, inline comments, external
79
- summaries, even `.specs/` prose — is a lead to verify against current
80
- source, never a trustable source of truth by itself. Unverifiable claims
81
- become explicit assumptions the user confirms or accepts.
82
- - Ask when in doubt: when genuine doubt remains after looking it up —
83
- requirement meaning, scope boundaries, destructive/irreversible choices,
84
- contradictory evidence — ask the user rather than choose silently. Facts
85
- are looked up; decisions are asked.
86
- - Before writing or changing implementation code, load
87
- `references/coding-guidelines.md` if not already loaded.
88
- - Complete Evidence Gate before claiming done.
27
+ - Sub-agents are dispatched by bare charter name (`senior-engineer`,
28
+ `code-reviewer`, ...). On the Claude plugin route, dispatch the
29
+ plugin-namespaced `massa-ai:<name>` so a same-named agent cannot
30
+ intercept the dispatch.
31
+ - Lazy charters (`designer`, `judge`, `test-engineer`) read
32
+ `references/agent-modes/<agent>/<mode>.md` before dispatch and inline it as
33
+ `mode_contract` (`judge` `plan-critique`: lite/full by `depth`); missing it
34
+ on a lazy mode returns `Blocked`.
35
+ - Start with `recall` (prior decisions/patterns), budgeted: `limit <= 3`,
36
+ `minImportance >= 0.7`, `types=["critical","decision","pattern"]`, unless
37
+ the workflow needs a broader query. Never use it as an artifact loader --
38
+ exact project/handoff/feature/validation state comes from `.specs/` files.
39
+ - Multi-search tasks use an ephemeral `synapseSessionId` per
40
+ `references/synapse-policy.md` (only `search.sessionId`, never
41
+ `workflowSessionId`) per `synapse_task_begin`/`synapse_task_end`.
42
+ - The full 59-tool surface is contracted in `references/mcp-tools.md`. Graph tools (`trace_path`, `impact_analysis`, `get_architecture`) count as evidence only when fresh for the current repository path and commit/worktree state.
43
+ - Persist only durable, useful knowledge; do not fabricate memories. Use
44
+ `memory_update`/`memory_delete` to correct/remove.
45
+ - Expand abbreviations on first use; one vocabulary for batches: **Task**,
46
+ **Phase** (`1 Phase = X Tasks`, never batch/wave/stage/chunk). Emit concise
47
+ status updates at workflow boundaries when Conversation Feedback is active.
48
+ - Verify, don't assume: claims driving a decision are verified against
49
+ current codebase/command evidence or the user; docs are leads, not truth.
50
+ Genuine doubt goes to the user, not a silent choice.
51
+ - Before implementation edits, load `references/coding-guidelines.md` if
52
+ not already loaded. Complete Evidence Gate before claiming done.
89
53
 
90
54
  Use internal references only when needed:
91
55
 
92
56
  | Need | Reference |
93
57
  |---|---|
94
- | MCP/REST schemas, response modes, polling | `references/mcp-tools.md` |
95
- | Multi-search Synapse lifecycle and fallback | `references/synapse-policy.md` |
58
+ | MCP/REST schemas, polling | `references/mcp-tools.md` |
59
+ | Synapse lifecycle/fallback | `references/synapse-policy.md` |
96
60
  | Install/config/deployment | `references/installation.md` |
97
- | Importance scoring, tradeoffs, debugging | `references/decision-engine.md` |
98
- | Memory tiers/conflict handling | `references/memory-policy.md` |
99
- | Shared lesson loading/capture lifecycle | `references/lessons.md` |
100
- | Meaningful code and contract identifier names | `references/naming-standards.md` |
101
- | Chat-visible workflow status updates | `references/conversation-feedback.md` |
61
+ | Importance scoring | `references/decision-engine.md` |
62
+ | Memory tiers/conflicts | `references/memory-policy.md` |
63
+ | Lesson loading/capture | `references/lessons.md` |
64
+ | Naming standards | `references/naming-standards.md` |
65
+ | Status updates | `references/conversation-feedback.md` |
102
66
  | Completion evidence | `references/evidence-gate.md` |
103
67
 
104
68
  ## Session And Project
105
69
 
106
- If no `workflowSessionId` is explicit:
107
-
108
- 1. Classify the workflow.
109
- 2. Infer the main entity.
110
- 3. Generate a stable id: `<workflow>-<entity>`.
111
- 4. Reuse it for the whole conversation.
112
-
113
- Examples:
114
-
115
- - `debug-login-crash`
116
- - `feature-user-onboarding`
117
- - `refactor-auth-module`
118
- - `spec-billing-workflow`
119
- - `create-adr-postgres-migration`
70
+ If no `workflowSessionId` is explicit: classify the workflow, infer the main
71
+ entity, generate a stable id `<workflow>-<entity>` (e.g.
72
+ `debug-login-crash`), and reuse it for the whole conversation.
120
73
 
121
74
  Resolve `projectId`:
122
75
 
123
- 1. Call `recall` with query `"projectId for this workspace"`,
124
- `limit <= 3`, `minImportance >= 0.7`, and
125
- `types=["critical","decision","pattern"]`.
76
+ 1. Call `recall` with query `"projectId for this workspace"` (default budget
77
+ above).
126
78
  2. If found, reuse exactly.
127
79
  3. If absent, derive from workspace root.
128
80
  4. If ambiguous, ask the user.
@@ -194,135 +146,40 @@ selected workflow asks for it.
194
146
 
195
147
  ## Plan Challenge Gate
196
148
 
197
- Read and apply the canonical Plan Challenge Policy from the installed
198
- `AGENTS.md` bootstrap block (single source: `skills/AGENTS.md`). Prompt-level
199
- user instructions override that policy for the current turn.
200
-
201
- For a low-risk plan that receives the lite gate, attempt a
202
- `judge` subagent in `plan-critique` mode (it writes nothing in that mode) with a bounded checklist packet instead of
203
- running the checklist in the main agent. The packet includes the proposed plan, scope,
204
- constraints, compact recalled facts/evidence, known risks, verification recipe,
205
- parent identifiers, and this output requirement:
206
-
207
- - What assumption would most likely make this fail?
208
- - What deterministic check would falsify success?
209
- - Does it touch a high-risk domain or more than 5 files/classes/modules?
210
- - `escalate_to_full: true|false` plus reason.
211
-
212
- Lite preserves progressive disclosure: do not load The Fool mode references
213
- unless the lite critique escalates to full.
149
+ Apply the installed Plan Challenge Policy from `skills/AGENTS.md` (canonical
150
+ source); prompt-level instructions override it for the current turn.
214
151
 
215
- Low-risk `feature` and `refactor` plans receive the lite gate first. Full The
216
- Fool stays for `spec-driven`, `design`, `create-adr`, `create-rfc`, `create-tdd`, explicit challenge
217
- requests, high-risk domains, or plans touching more than 5 files/classes/modules.
218
- When the policy selects the full gate, or lite escalates, load
219
- `workflows/the-fool.md`, select the mode in the main agent, load only the
220
- selected The Fool references, and attempt a `judge` subagent in `plan-critique` mode with the selected mode passed as `fool_mode`
221
- and a bounded critique packet. Subagents inherit
222
- `projectId`, parent `workflowSessionId`, workflow name, entity, and compact
223
- evidence; they do not receive full conversation context.
224
-
225
- If the policy file is unavailable, use the conservative fallback: run the full
226
- gate for high-risk domains, broad multi-module plans, explicit challenge
227
- requests, and planning workflows that commit to a feature, refactor, ADR, RFC,
228
- or TDD. If the `judge` agent is unavailable for any reason —
229
- spawning forbidden, plugin not installed, unknown `subagent_type` — run a strict
230
- standalone fresh-eyes local critique against the same output contract and report
231
- the skipped delegation reason. Do not retry under a different agent name. Reuse
232
- The Fool context when it is already loaded.
152
+ - **Lite** (default, low-risk `feature`/`refactor`): dispatch `judge` in `plan-critique` mode
153
+ (`references/agent-modes/judge/plan-critique-lite.md`) with a bounded checklist packet (failing
154
+ assumption, falsifying check, risk/size check, `escalate_to_full:
155
+ true|false` + reason); skip The Fool references unless it escalates.
156
+ - **Full** (`spec-driven`, `design`, `create-adr`/`rfc`/`tdd`, explicit
157
+ challenge, high-risk domain, >5 files/modules, or lite escalation): load
158
+ `workflows/the-fool.md`, select the mode, dispatch `judge` in `plan-critique`
159
+ mode (`references/agent-modes/judge/plan-critique-full.md`) with `fool_mode` in the packet.
160
+ - If `judge` is unavailable, run a local fresh-eyes critique and report the
161
+ skipped reason; never retry under a different agent name.
233
162
 
234
163
  ## Retrieval And Synapse
235
164
 
236
- Use this default retrieval sequence when it matches the task:
237
-
238
- 1. `list_projects` or equivalent freshness evidence before relying on indexed project state.
239
- 2. `project_map` for general architecture orientation (PageRank backbone, symbol counts) when the index is fresh for the current repository path and worktree state.
240
- 3. `get_architecture` for architecture-specific deep maps (packages, routes, hotspots, communities, cycles) when the index is fresh.
241
- 4. `search(responseMode="summary", maxResults=10)` for broad discovery.
242
- 5. `search(responseMode="enriched", maxResults=3)` for targeted deep reads; use `maxResults=5` only when the user named 4-5 concrete files, symbols, or findings.
243
- 6. Symbol navigation (`search_definitions`, `get_references`, `go_to_definition`) and `read_file` for exact definitions, usages, and line ranges.
244
- 7. `symbol_snippet` for raw code snippets by file + line range.
245
- 8. `trace_path` for typed-edge BFS call/data-flow path tracing (fresh index only).
246
- 9. `impact_analysis` for git-diff centrality-ranked impact (fresh index only).
247
- 10. `optimized_context` for compact synthesized context when available.
248
- 11. Focused shell/file fallback when the massa-ai server is unavailable, stale, incomplete, or misses obvious local truth.
249
-
250
- `project_map`, `get_architecture`, `search`, and `optimized_context` are leads
251
- until their results are confirmed against current source files read in this session or returned with current freshness evidence. Current repository source
252
- and approved `.specs/` artifacts remain authoritative. Graph tools (`trace_path`,
253
- `impact_analysis`, `get_architecture`) only count as evidence when the index is
254
- fresh for the current repository path and commit/worktree state; fall back to
255
- `search`/`get_references` and record reduced retrieval confidence when stale.
256
-
257
- Load `references/synapse-policy.md` when the planned investigation includes
258
- two or more related `search` calls. MCP is primary; authenticated REST may
259
- fill missing or broken Synapse lifecycle operations once after a documented MCP
260
- schema or adapter failure. Keep REST-only fields out of MCP calls.
165
+ Follow the shared order in `references/codebase-investigation.md` (schemas in
166
+ `references/mcp-tools.md`). Index output is a lead until confirmed against
167
+ current source; source and approved `.specs/` artifacts stay authoritative.
168
+ Load `references/synapse-policy.md` before 2+ related `search` calls.
261
169
 
262
170
  ## Persistence
263
171
 
264
- Before writing memory, load `references/decision-engine.md` if scoring details
265
- are not already in context. Use supported massa-ai types only: `critical`,
266
- `conversation`, `code`, `decision`, `pattern`.
267
-
268
- Required memory tags:
269
-
270
- - `project:<projectId>`
271
- - `session:<workflowSessionId>`
272
- - `workflow:<type>`
273
- - `entity:<name>`
274
- - one of `memory:working`, `memory:episodic`, `memory:semantic`,
275
- `memory:procedural`
276
-
277
- ## Shared References
278
-
279
- Load only when a selected workflow asks for them:
280
-
281
- - `references/agent-orchestration.md`
282
- - `references/subagent-design.md`
283
- - `references/code-reuse-scan.md`
284
- - `references/create-adr.md`
285
- - `references/audit-scope.md`
286
- - `references/audit-report-io.md`
287
- - `references/hook-enforcement.md`
288
- - `references/codebase-investigation.md`
289
- - `references/debug-diagnosis-loop.md`
290
- - `references/mobile-context.md`
291
- - `references/mobile-diagnosis.md`
292
- - `references/figma-pre-analysis.md`
293
- - `references/figma-wiring.md`
294
- - `references/design-implementation.md`
295
- - `references/mobile-figma-matcher/`
296
- - `references/lessons.md`
297
- - `references/naming-standards.md`
298
- - `references/pr-task-fix.md`
299
- - `references/code-quality-lens.md`
300
- - `references/architecture-lenses.md`
301
- - `references/architecture-domain-lens.md`
302
- - `references/architecture-coupling-lens.md`
303
- - `references/architecture-deepening-lens.md`
304
- - `references/the-fool/`
305
- - `references/verification-ladder.md`
306
- - `references/context-firewall.md`
307
- - `references/project-context.md`
308
- - `references/implementation-delivery.md`
309
- - `references/code-annotation.md`
310
- - `references/repo-rules-discovery.md`
311
- - `references/root-cause-scripts.md`
312
- - `references/conversation-feedback.md`
313
- - `references/synapse-policy.md`
314
- - `references/create-tdd/`
315
- - `references/create-rfc/`
316
- - `references/create-ticket/`
317
- - `references/spec-driven/`
318
- - `references/furps/`
172
+ Required tags and memory types are in `references/memory-policy.md`; load it
173
+ before writing memory.
319
174
 
320
175
  ## Graceful Degradation
321
176
 
322
- On any tool/index/MCP failure (server unavailable, index incomplete, Synapse unavailable, `create_checkpoint`/`handoff_begin`/`bootstrap`/`compact_snapshot`/`execute`/`fetch_and_index` unavailable), load and follow `references/graceful-degradation.md` instead of blocking.
177
+ On any tool/index/MCP failure (server unavailable, index incomplete, Synapse
178
+ unavailable), load and follow `references/graceful-degradation.md` instead
179
+ of blocking.
323
180
 
324
181
  ## Completion
325
182
 
326
- Before claiming done, load `references/evidence-gate.md` if not already loaded
327
- and report deterministic evidence, changed artifacts, memory outcome, and
183
+ Before claiming done, load `references/evidence-gate.md` if not already
184
+ loaded; report deterministic evidence, changed artifacts, memory outcome,
328
185
  residual risk.
@@ -0,0 +1,22 @@
1
+ # Designer — Mode: `audit`
2
+
3
+ Read the design source and the existing screen; compare element by element; write nothing.
4
+
5
+ Map each design element to a concrete implementation target — component, layout, spacing,
6
+ typography, color/design token, state, and empty/error/loading variants. Report conformance
7
+ per element with evidence: matched, deviated (with the measured difference), or not
8
+ represented in the design. Cover the states a design usually under-specifies: empty,
9
+ loading, error, long text, small and large screen sizes, and the platform's accessibility
10
+ defaults.
11
+
12
+ Output:
13
+ - Status: Complete | Partial | Blocked
14
+ - Scope: screens verified
15
+ - Evidence: design-source pointers (node id, frame name, link) paired with implementation pointers (`path:line`)
16
+ - Findings: per-element conformance table — element, expected, actual, verdict, severity
17
+ - Risks and skipped checks (a missing design source is always listed here)
18
+ - Exact next step
19
+
20
+ Validation sensors: every design element in scope appears in the conformance table with a
21
+ verdict, or the table states why the design source did not cover it; empty, loading, and
22
+ error states are each either implemented or explicitly recorded as not in scope.
@@ -0,0 +1,29 @@
1
+ # Designer — Mode: `implement`
2
+
3
+ Read the design source, then implement or correct the screen inside the UI layer, following
4
+ the repository's existing component and styling conventions rather than introducing a
5
+ parallel one.
6
+
7
+ Write only in this mode, only when scoped with a disjoint write set (same constraint as
8
+ `senior-engineer`), and only inside the UI layer: screen, view, component, layout, style,
9
+ theme, and design-token files. A production-logic change needed to make a screen correct is
10
+ reported as a finding for `senior-engineer`, not made here.
11
+
12
+ Map each design element to a concrete implementation target — component, layout, spacing,
13
+ typography, color/design token, state, and empty/error/loading variants — and implement or
14
+ correct it to match. Cover the states a design usually under-specifies: empty, loading,
15
+ error, long text, small and large screen sizes, and the platform's accessibility defaults.
16
+
17
+ Output:
18
+ - Status: Complete | Partial | Blocked
19
+ - Scope: UI files written
20
+ - Evidence: design-source pointers paired with implementation pointers (`path:line`), UI-module build/lint results
21
+ - Findings: per-element conformance table for the implemented screen — element, expected, actual, verdict, severity
22
+ - Risks and skipped checks (a missing design source is always listed here)
23
+ - Exact next step
24
+
25
+ Validation sensors: every design element in scope is implemented and appears in the
26
+ conformance table with a verdict, or the table states why the design source did not cover
27
+ it; empty, loading, and error states are each either implemented or explicitly recorded as
28
+ not in scope; the written file set is inside the UI layer and disjoint from any concurrently
29
+ dispatched agent's write set.
@@ -0,0 +1,41 @@
1
+ # Designer — Mode: `trace`
2
+
3
+ Design-source investigation: the design analogue of `code-explorer` `trace`, and the
4
+ dispatch target of `references/figma-pre-analysis.md` Stage 1. Read-only. Map composition
5
+ and product context and propose a retrieval partition. Never build a Figma Evidence Packet
6
+ field, never resolve exact geometry or variable values, never compare against
7
+ implementation source, never write a file.
8
+
9
+ Read the design source in this order:
10
+ - Figma MCP first when a link, node id, or desktop selection is supplied. Use `get_metadata`
11
+ for the composition outline (pages, frames, component sets) and `get_screenshot` for
12
+ product-context skimming. Do not call `get_design_context` or `get_variable_defs` — exact
13
+ geometry, variable resolution, and Code Connect mapping belong to Stage 2 sequential
14
+ retrieval (`references/figma-pre-analysis.md`) or to `audit`/`implement` extraction, not
15
+ this mode.
16
+ - Otherwise, supplied screenshots, other written design direction, or the repository's
17
+ existing screens.
18
+
19
+ Map:
20
+ - **Composition** — pages, screens, frames, component sets, and shared tokens/variables by
21
+ name only, not their resolved values.
22
+ - **Product context** — what the screens are for, the features they serve, and the user
23
+ flows connecting them.
24
+ - **Partition proposal** — how many retrieval subagents should read which
25
+ links/nodes/screen groups, partitioned by size (each slice must fit one subagent's context
26
+ comfortably), coupling (screens sharing tokens, components, or a design-system section
27
+ stay in one slice), and feature flow (one user flow per slice when possible, so evidence
28
+ stays attributable to a feature). A single small screen legitimately yields a one-slice
29
+ proposal.
30
+
31
+ Output:
32
+ - Status: Complete | Partial | Blocked
33
+ - Scope: links, node ids, screenshots, or screens investigated
34
+ - Evidence: node ids, frame names, and links for every composition claim
35
+ - Findings: context summary (screens/features/flows in prose) plus the partition proposal
36
+ - Risks and skipped checks (Figma MCP unavailable, a node that could not be read)
37
+ - Exact next step
38
+
39
+ Validation sensors: every composition claim (page, screen, frame, component set, token)
40
+ carries a node id, frame name, or link; the partition proposal states its size, coupling,
41
+ and feature-flow basis.
@@ -0,0 +1,13 @@
1
+ # Judge — Mode: `plan-critique` (depth: `full`)
2
+
3
+ Inputs (full only, in addition to the shared plan-critique inputs): `fool_mode` — the selected The Fool mode (`pre_mortem`, `red_team`, `evidence_audit`, `socratic`, or `dialectic`; distinct from the packet `mode`, which stays `plan-critique`) — plus its reference content. A `full` packet with a missing or unknown `fool_mode` returns `Blocked` naming those five values.
4
+
5
+ Output for `depth: full`:
6
+ - Status: Complete | Partial | Blocked
7
+ - Selected `fool_mode`
8
+ - Steelmanned thesis
9
+ - 3-5 strongest challenges
10
+ - Per challenge: severity (`critical` | `high` | `medium` | `low`), affected plan section, evidence gap or assumption at risk, required revision or accepted-risk framing
11
+ - Confidence impact
12
+ - Risks and skipped checks
13
+ - Exact next step
@@ -0,0 +1,13 @@
1
+ # Judge — Mode: `plan-critique` (depth: `lite`)
2
+
3
+ Output for `depth: lite`:
4
+ - Status: Complete | Partial | Blocked
5
+ - Strongest low-risk challenges
6
+ - Assumption most likely to fail
7
+ - Deterministic check that would falsify success
8
+ - High-risk or broad-scope trigger found, if any
9
+ - `escalate_to_full: true|false`
10
+ - Escalation reason
11
+ - Exact next step
12
+
13
+ Validation sensors: lite output always carries an explicit `escalate_to_full` boolean and reason.
@@ -0,0 +1,31 @@
1
+ # Judge — Mode: `scorer`
2
+
3
+ One slot of the `judge-with-debate` panel: 3 parallel scorers for independent analysis (round 0), then 3 parallel scorers per debate round (rounds 1..3) until consensus or round exhaustion.
4
+
5
+ Inputs: `evaluation_specification` (the spec-author YAML, verbatim and identical across scorers and rounds), `task_description`, `artifact_paths` (never pre-loaded content), `judge_number` (1 | 2 | 3), `round` (0..3), `own_report_path`, `peer_report_paths` (debate rounds only; own included for re-reading).
6
+
7
+ - Score every criterion on its defined scale, quoting exact artifact evidence per score, and compute the weighted overall per the specification.
8
+ - Write and own exactly one report file: `audits/judge/<YYYY-MM-DD judge-with-debate judge-N.md>` (path supplied per dispatch), per the Judge With Debate Report Contracts in `references/audit-report-io.md`: freshness header, judge/model line, embedded specification, per-criterion scores with quoted evidence, weighted overall, strengths/weaknesses, Verification/Test Fidelity Checklist.
9
+ - In debate rounds: read peer reports from the filesystem directly, identify >1.0-point criterion disagreements, defend with quoted evidence, challenge with quoted counter-evidence, and revise only when peer evidence is compelling. Append one `## Debate Round {R}` section per round to the existing file; never create a new file during debate rounds.
10
+ - Never revise a score without quoting the new evidence that justifies it; agreement for comfort is sycophancy and invalidates the panel.
11
+ - Never score outside the specification's criteria, scales, or weights; never modify the specification; never open or alter peer files (read-only on peers).
12
+ - Return `Blocked` when the evaluation specification is absent or malformed; refuse a fourth scorer or a fourth round — the protocol is fixed at 3 and 3.
13
+
14
+ Output: the reply block below is the orchestrator's only per-scorer input.
15
+
16
+ ```yaml
17
+ status: Complete | Partial | Blocked
18
+ judge: 1 | 2 | 3
19
+ round: 0 | 1 | 2 | 3
20
+ scores:
21
+ overall: <weighted score>
22
+ criteria: { <id>: <score>, ... }
23
+ agreement: accept-consensus | contest
24
+ strengths: [<≤3 items>]
25
+ weaknesses: [<≤3 items>]
26
+ revisions: [<criterion: old→new, evidence pointer>] # debate rounds only
27
+ risks_and_skips: <string>
28
+ next_step: <string>
29
+ ```
30
+
31
+ Validation sensors: every criterion score carries an exact quotation from the artifact; the weighted overall equals the specification's weighted mean; debate-round updates are appended sections with no rewrite; the reply block carries `scores.overall`, per-criterion scores, and an explicit `agreement` value; only the assigned judge-N file is written.
@@ -0,0 +1,28 @@
1
+ # Judge — Mode: `spec-author`
2
+
3
+ Author the evaluation specification for `judge-with-debate`: exactly one dispatch per evaluation, before any judging exists.
4
+
5
+ Inputs: `task_description`, `artifact_type` (code | documentation | configuration | spec | plan | other), `context` (may be empty), `artifact_paths` (paths the scorers will read; read them only to tailor criteria).
6
+
7
+ - Identify what "good" means for this specific evaluation; never reuse a generic rubric verbatim when the task has specific demands.
8
+ - Define criteria with weights summing to 1.0, a 1-5 scale, rubric anchors for scores 1, 3, and 5, and a verifiable checklist per criterion.
9
+ - Never score, rate, or pass judgment on the artifact; never read judge reports or debate content; never modify the specification after emission — every scorer across every round uses it verbatim.
10
+
11
+ Output: the evaluation specification YAML, and nothing else, inside the standard wrapper (Status / Scope / Evidence / Findings: the YAML / Risks and skipped checks / Exact next step).
12
+
13
+ ```yaml
14
+ criteria:
15
+ - id: <kebab-case-id>
16
+ name: <human name>
17
+ weight: <0..1> # all weights sum to 1.0 (±0.001)
18
+ scale: { min: 1, max: 5 }
19
+ rubric:
20
+ "5": <anchor: what perfect looks like>
21
+ "3": <anchor: what adequate looks like>
22
+ "1": <anchor: what failing looks like>
23
+ checklist:
24
+ - <verifiable item a judge can check by quoting the artifact>
25
+ overall: weighted-mean
26
+ ```
27
+
28
+ Validation sensors: output parses as YAML; weights sum to 1.0 (±0.001); every criterion carries id, name, weight, scale (min 1, max 5), rubric anchors for 1/3/5, and a non-empty checklist; exactly one specification emitted, with no scoring content.
@@ -0,0 +1,17 @@
1
+ # `test-engineer` — Mode: `audit`
2
+
3
+ Findings-only tests lens: coverage, regression protection, assertion quality, fixture reliability, variation, and missing deterministic sensors in a concrete target. Shares `references/audit-scope.md` (scope rules) and `references/audit-report-io.md` (report format) with every audit lens; per-lens reference `workflows/tests/tests-audit.md`. Read-only; no fix actions are taken.
4
+
5
+ ## Inputs
6
+ - `lens`: one of `tests` (the single lens this charter runs; optional).
7
+
8
+ ## Output
9
+ - Status: Complete | Partial | Blocked
10
+ - Scope: area audited + tests lens
11
+ - Evidence: `path:line` pointers, test-run and coverage results
12
+ - Findings: ranked list (severity, location, problem, suggestion) in the project audit-report format
13
+ - Risks and skipped checks
14
+ - Exact next step
15
+
16
+ ## Validation Sensors
17
+ - Every finding has a `path:line` pointer and follows `references/audit-report-io.md`; no file written.
@@ -0,0 +1,14 @@
1
+ # `test-engineer` — Mode: `fix`
2
+
3
+ Implement the confirmed findings of a saved tests audit report inside test files only, per `workflows/tests/tests-fix.md`.
4
+
5
+ ## Output
6
+ - Status: Complete | Partial | Blocked
7
+ - Scope: test files changed, per finding ID
8
+ - Evidence: test commands and results, proof each new or changed test fails without the behavior it guards
9
+ - Findings: per-finding implementation summary
10
+ - Risks and skipped checks
11
+ - Exact next step
12
+
13
+ ## Validation Sensors
14
+ - The diff stays inside test files and the assigned write set; no validation asset weakened.
@@ -158,7 +158,7 @@ resolves to a current agent.
158
158
 
159
159
  | Legacy role | Current agent | Note |
160
160
  |---|---|---|
161
- | `implementer` | `builder` | renamed |
161
+ | `implementer` | `senior-engineer` | renamed |
162
162
  | `verifier` | `code-reviewer` | folded in; `mode: verify`, which centralizes the Verification Ladder |
163
163
  | `domain-mapper` | `code-reviewer` | folded in; `mode: audit`, `lens: architecture`, `sub-mode: domain` (packet field defined in the `code-reviewer` charter Inputs) |
164
164
  | `coupling-auditor` | `code-reviewer` | folded in; `mode: audit`, `lens: architecture`, `sub-mode: coupling` |
@@ -188,8 +188,9 @@ When dispatching a subagent, send a compact capability packet rather than a loos
188
188
  - `firewall`: raw logs, diffs, snapshots, reports, or research that must be summarized
189
189
  - `memory`: whether the subagent may suggest memories and who persists them
190
190
  - `next_use`: what the main agent will do with the result
191
- - `mode`: conditional — for a charter that declares modes (`code-explorer`, `code-reviewer`, `designer`, `judge`, `product-manager`, `test-engineer`), the `Mode:` section of the charter this dispatch runs.
192
- - `lens`: conditional — `code-reviewer` `audit` dispatches only. One of `bugs | architecture | security | code-quality | performance`; the requirements lens is `product-manager` `audit` mode and the tests lens is `test-engineer` `audit` mode.
191
+ - `mode`: conditional — for a charter that declares modes (`code-explorer`, `code-reviewer`, `designer`, `judge`, `product-manager`, `test-engineer`), the `Mode:` section of the charter this dispatch runs; a lazy charter's `### Mode:` stub heading satisfies this field exactly as a full inline section does.
192
+ - `mode_contract`: conditional — for a **lazy charter** (`designer`, `judge`, `test-engineer`) only. The dispatched mode's `Mode:` section in the charter is a stub naming exactly its contract file(s) under `references/agent-modes/<agent>/<mode>.md` (`judge` `plan-critique` splits by `depth` into `plan-critique-lite.md`/`plan-critique-full.md`). Before dispatch, the **main agent** reads that file and inlines its verbatim content here; the subagent reads only this field, never the reference path itself. A lazy-mode packet without `mode_contract` returns `Blocked`.
193
+ - `lens`: conditional — `code-reviewer` `audit` dispatches only. One of `bugs | architecture | security | code-quality | performance | diff`; the requirements lens is `product-manager` `audit` mode and the tests lens is `test-engineer` `audit` mode.
193
194
 
194
195
  The named dispatch block that workflows embed (the quoted block whose header carries the agent name, role, and mode) is the block projection of this packet: `role`, `mode`, and `purpose` live in the block's header line, and `next_use` defaults to "the main agent synthesizes and continues the workflow" when absent. The remaining eight fields — `trigger, scope, permissions, inputs, sensors, output, firewall, memory` — appear as the block's body lines, except where Role Defaults below already fix a field's value.
195
196
 
@@ -209,7 +210,7 @@ having exactly one place a shared value can be wrong.
209
210
 
210
211
  - `permissions`: read-only
211
212
 
212
- **`code-reviewer`, `mode: review`**
213
+ **`code-reviewer`, `mode: audit`, `lens: diff`**
213
214
 
214
215
  - `fallback`: if the subagent is unavailable, run a standalone fresh-eyes review against this output contract and record the skipped-delegation reason
215
216
 
@@ -19,7 +19,7 @@ pass reads one coherent slice.
19
19
 
20
20
  ## Stage 1 — Pre-Analysis (always first, exactly one subagent)
21
21
 
22
- Dispatch one read-only subagent (`code-explorer`, `trace` mode; Figma MCP — Model Context
22
+ Dispatch one read-only subagent (`designer`, `trace` mode; Figma MCP — Model Context
23
23
  Protocol — access, no repository mutation) over the user-provided Figma links.
24
24
  Its job: understanding, **not** extraction:
25
25
 
@@ -121,7 +121,7 @@ Write every acceptance criterion in **EARS** (Easy Approach to Requirements Synt
121
121
 
122
122
  ### 4. Requirement Closure Gate (before confirm)
123
123
 
124
- Before Design, Tasks, or Execute — and before presenting the spec for confirmation — run the checks below. The spec is not presentable for confirmation until every item is resolved or assumption-logged. This is the guarantee that no requirement leaves the spec silently unclear.
124
+ Before Design, Tasks, or Execute — and before presenting the spec for confirmation — run the checks below. The spec is not presentable for confirmation until every item is resolved or assumption-logged. This is the guarantee that no requirement leaves the spec silently unclear. The `product-manager` `audit` dispatch in `spec-driven.md`'s Specify step (mandatory every run, over the drafted `spec.md`) feeds this gate: its ambiguity, gap, contradiction, implicit-requirement, and uncovered-scenario findings are resolved with the user or recorded as accepted assumptions alongside the rest of this checklist.
125
125
 
126
126
  **Scope-tiered:** Large/Complex = full gate; Medium = resolve obvious ambiguities, log the rest as assumptions; Small = skip entirely (consistent with skipping the sweep).
127
127
 
@@ -101,6 +101,7 @@ The batching trigger above governs **when** batch workers are offered. This tabl
101
101
  | Research / codebase investigation | Yes | Read-only gatherer; returns compact findings, never decisions |
102
102
  | Implementation of an approved task | Yes (batch worker) | Task + gate already defined in `tasks.md`; worker executes the defined cycle |
103
103
  | Planning (Specify / Design / Tasks authoring) | **Do not delegate** | Planning owns the contract; delegation fragments accountability |
104
+ | Requirements audit of the drafted spec (`product-manager` `audit`) | Yes (carve-out) | Read-only; produces findings only, the main agent keeps authorship and resolves or accepts them in the Requirement Closure Gate |
104
105
  | Task creation / task-list authoring | **Do not delegate** | The orchestrator owns `tasks.md` integrity and ordering |
105
106
  | Validation (Verifier role) | **Do not delegate to a batch worker** | Use the dedicated Verifier sub-agent; author ≠ verifier is the gate's trust basis |
106
107
 
@@ -83,6 +83,7 @@ Output contract:
83
83
 
84
84
  Modes (only when the role owns more than one output contract):
85
85
  - One `### Mode: <name>` section per contract (the name in backticks), holding that mode's own output; the packet `mode` field selects it.
86
+ - Lazy variant (owner decision D2, `agent-roster-revision`): instead of an inline output contract, the `### Mode: <name>` section is a stub naming exactly the contract file(s) it owns under `references/agent-modes/<agent>/<mode>.md` (a mode split by depth or similar cites `<mode>-lite.md`/`<mode>-full.md` instead of one file). The dispatching main agent reads the cited file and inlines it into the packet as `mode_contract` per `references/agent-orchestration.md`'s Capability Packet; the charter itself carries no other trace of the contract's content.
86
87
 
87
88
  Validation sensors:
88
89
  - [tests, build, typecheck, lint, static search, artifact inspection, or source-location proof]
@@ -53,7 +53,7 @@ Every `*-fix` workflow must execute this gate for each selected finding or coher
53
53
  - At **Standard+ or Spec-driven size, or for any high/critical-severity finding**, dispatching `code-reviewer` in `verify` mode is **mandatory** before closure — the author must not be the sole verifier of their own work. At Quick size, the subagent hop may be skipped, but the check itself is never skipped: run a standalone fresh-eyes re-check (re-read the finding/ACs, changed files, tests, and diff from scratch) against the same output contract.
54
54
  - **Exception — `security-fix` dispatches the verifier unconditionally** for every finding closed `fixed`, at every tier.
55
55
  - Fallback discipline: when the subagent is unavailable (not registered, spawning forbidden), run the standalone fresh-eyes re-check from scratch and record the skipped-delegation reason in closure evidence.
56
- - `code-reviewer` in `review` and in `verify` mode both dispatching at Standard+ is intentional cost, mirroring spec-driven's always-on pair — not accidental duplication.
56
+ - `code-reviewer` in `audit` mode (`lens: diff`) and in `verify` mode both dispatching at Standard+ is intentional cost, mirroring spec-driven's always-on pair — not accidental duplication.
57
57
 
58
58
  ### Discrimination Sensor
59
59