@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.
- package/.claude-plugin/plugin.json +1 -1
- package/README.md +1 -1
- package/agent-profiles/balanced/code-explorer.md +11 -22
- package/agent-profiles/balanced/code-reviewer.md +21 -51
- package/agent-profiles/balanced/designer.md +22 -35
- package/agent-profiles/balanced/judge.md +21 -81
- package/agent-profiles/balanced/product-manager.md +11 -24
- package/agent-profiles/balanced/{builder.md → senior-engineer.md} +3 -3
- package/agent-profiles/balanced/test-engineer.md +11 -47
- package/agent-profiles/cheap/code-explorer.md +11 -22
- package/agent-profiles/cheap/code-reviewer.md +21 -51
- package/agent-profiles/cheap/designer.md +22 -35
- package/agent-profiles/cheap/judge.md +21 -81
- package/agent-profiles/cheap/product-manager.md +11 -24
- package/agent-profiles/cheap/{builder.md → senior-engineer.md} +3 -3
- package/agent-profiles/cheap/test-engineer.md +11 -47
- package/agent-profiles/heavy/code-explorer.md +11 -22
- package/agent-profiles/heavy/code-reviewer.md +21 -51
- package/agent-profiles/heavy/designer.md +22 -35
- package/agent-profiles/heavy/judge.md +21 -81
- package/agent-profiles/heavy/product-manager.md +11 -24
- package/agent-profiles/{work/builder.md → heavy/senior-engineer.md} +3 -3
- package/agent-profiles/heavy/test-engineer.md +11 -47
- package/agent-profiles/home/code-explorer.md +11 -22
- package/agent-profiles/home/code-reviewer.md +21 -51
- package/agent-profiles/home/designer.md +22 -35
- package/agent-profiles/home/judge.md +21 -81
- package/agent-profiles/home/product-manager.md +11 -24
- package/{agents/builder.md → agent-profiles/home/senior-engineer.md} +3 -3
- package/agent-profiles/home/test-engineer.md +11 -47
- package/agent-profiles/work/code-explorer.md +11 -22
- package/agent-profiles/work/code-reviewer.md +21 -51
- package/agent-profiles/work/designer.md +22 -35
- package/agent-profiles/work/judge.md +21 -81
- package/agent-profiles/work/product-manager.md +11 -24
- package/agent-profiles/{heavy/builder.md → work/senior-engineer.md} +3 -3
- package/agent-profiles/work/test-engineer.md +11 -47
- package/agents/code-explorer.md +11 -22
- package/agents/code-reviewer.md +21 -51
- package/agents/designer.md +22 -35
- package/agents/judge.md +21 -81
- package/agents/product-manager.md +11 -24
- package/{agent-profiles/home/builder.md → agents/senior-engineer.md} +3 -3
- package/agents/test-engineer.md +11 -47
- package/install.sh +6 -6
- package/package.json +1 -1
- package/skills/agents/code-explorer/SKILL.md +11 -22
- package/skills/agents/code-reviewer/SKILL.md +21 -51
- package/skills/agents/designer/SKILL.md +22 -35
- package/skills/agents/judge/SKILL.md +21 -81
- package/skills/agents/product-manager/SKILL.md +11 -24
- package/skills/agents/{builder → senior-engineer}/SKILL.md +3 -3
- package/skills/agents/test-engineer/SKILL.md +11 -47
- package/skills/massa-ai/SKILL.md +61 -204
- package/skills/massa-ai/references/agent-modes/designer/audit.md +22 -0
- package/skills/massa-ai/references/agent-modes/designer/implement.md +29 -0
- package/skills/massa-ai/references/agent-modes/designer/trace.md +41 -0
- package/skills/massa-ai/references/agent-modes/judge/plan-critique-full.md +13 -0
- package/skills/massa-ai/references/agent-modes/judge/plan-critique-lite.md +13 -0
- package/skills/massa-ai/references/agent-modes/judge/scorer.md +31 -0
- package/skills/massa-ai/references/agent-modes/judge/spec-author.md +28 -0
- package/skills/massa-ai/references/agent-modes/test-engineer/audit.md +17 -0
- package/skills/massa-ai/references/agent-modes/test-engineer/fix.md +14 -0
- package/skills/massa-ai/references/agent-orchestration.md +5 -4
- package/skills/massa-ai/references/figma-pre-analysis.md +1 -1
- package/skills/massa-ai/references/spec-driven/specify.md +1 -1
- package/skills/massa-ai/references/spec-driven/sub-agents.md +1 -0
- package/skills/massa-ai/references/subagent-design.md +1 -0
- package/skills/massa-ai/references/verification-ladder.md +1 -1
- package/skills/massa-ai/workflows/architecture/architecture-fix.md +3 -3
- package/skills/massa-ai/workflows/bugs/bugs-fix.md +3 -3
- package/skills/massa-ai/workflows/code-quality/code-quality-fix.md +3 -3
- package/skills/massa-ai/workflows/debug.md +2 -2
- package/skills/massa-ai/workflows/feature.md +3 -3
- package/skills/massa-ai/workflows/implementation/implementation-fix.md +3 -3
- package/skills/massa-ai/workflows/mobile-figma/mobile-figma-fix.md +5 -5
- package/skills/massa-ai/workflows/pr-review.md +3 -3
- package/skills/massa-ai/workflows/refactor.md +3 -3
- package/skills/massa-ai/workflows/requirements/requirements-fix.md +3 -3
- package/skills/massa-ai/workflows/security/security-fix.md +3 -3
- package/skills/massa-ai/workflows/spec-driven.md +13 -3
- package/skills/massa-ai/workflows/tests/tests-fix.md +3 -3
- package/skills/profile/SKILL.md +0 -39
package/skills/massa-ai/SKILL.md
CHANGED
|
@@ -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 (`
|
|
39
|
-
On the Claude plugin route, dispatch the
|
|
40
|
-
so a same-named
|
|
41
|
-
|
|
42
|
-
-
|
|
43
|
-
`
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
(`
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
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,
|
|
95
|
-
|
|
|
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
|
|
98
|
-
| Memory tiers/
|
|
99
|
-
|
|
|
100
|
-
|
|
|
101
|
-
|
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
198
|
-
|
|
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
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
`
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
`
|
|
223
|
-
|
|
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
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
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
|
-
|
|
265
|
-
|
|
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
|
|
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
|
|
327
|
-
|
|
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` | `
|
|
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
|
-
- `
|
|
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:
|
|
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 (`
|
|
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 `
|
|
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
|
|