@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
@@ -34,89 +34,30 @@ Never receives full conversation context.
34
34
 
35
35
  ## Modes
36
36
 
37
+ Lazy variant (owner decision D2/A1, `agent-roster-revision`): each mode's inputs,
38
+ rules, and output contract live in its own file under
39
+ `references/agent-modes/judge/`, not inline here. Before dispatch, the main agent
40
+ reads the cited file(s) and inlines the content as the packet's `mode_contract`
41
+ field (`references/agent-orchestration.md`); a packet missing `mode_contract` for
42
+ a lazy mode returns `Blocked`.
43
+
37
44
  ### Mode: `spec-author`
38
- Author the evaluation specification for `judge-with-debate`: exactly one dispatch per evaluation, before any judging exists.
39
-
40
- 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).
41
-
42
- - Identify what "good" means for this specific evaluation; never reuse a generic rubric verbatim when the task has specific demands.
43
- - 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.
44
- - 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.
45
-
46
- 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).
47
-
48
- ```yaml
49
- criteria:
50
- - id: <kebab-case-id>
51
- name: <human name>
52
- weight: <0..1> # all weights sum to 1.0 (±0.001)
53
- scale: { min: 1, max: 5 }
54
- rubric:
55
- "5": <anchor: what perfect looks like>
56
- "3": <anchor: what adequate looks like>
57
- "1": <anchor: what failing looks like>
58
- checklist:
59
- - <verifiable item a judge can check by quoting the artifact>
60
- overall: weighted-mean
61
- ```
45
+ See `references/agent-modes/judge/spec-author.md`.
62
46
 
63
47
  ### Mode: `scorer`
64
- 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.
65
-
66
- 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).
67
-
68
- - Score every criterion on its defined scale, quoting exact artifact evidence per score, and compute the weighted overall per the specification.
69
- - 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.
70
- - 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.
71
- - Never revise a score without quoting the new evidence that justifies it; agreement for comfort is sycophancy and invalidates the panel.
72
- - Never score outside the specification's criteria, scales, or weights; never modify the specification; never open or alter peer files (read-only on peers).
73
- - 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.
74
-
75
- Output: the reply block below is the orchestrator's only per-scorer input.
76
-
77
- ```yaml
78
- status: Complete | Partial | Blocked
79
- judge: 1 | 2 | 3
80
- round: 0 | 1 | 2 | 3
81
- scores:
82
- overall: <weighted score>
83
- criteria: { <id>: <score>, ... }
84
- agreement: accept-consensus | contest
85
- strengths: [<≤3 items>]
86
- weaknesses: [<≤3 items>]
87
- revisions: [<criterion: old→new, evidence pointer>] # debate rounds only
88
- risks_and_skips: <string>
89
- next_step: <string>
90
- ```
48
+ See `references/agent-modes/judge/scorer.md`.
91
49
 
92
50
  ### Mode: `plan-critique`
93
- Challenge a plan that already exists for the Plan Challenge gate. This is a standing policy exception to the ordinary dispatch triggers once a concrete plan exists.
94
-
95
- Inputs: `plan`, `scope`, `constraints`, `inputs` (compact recalled facts and evidence pointers), `risks` (already accepted by the main agent), `verification` (the plan's proposed recipe), `depth` (`lite` or `full`), and for `full` only `fool_mode` — the selected The Fool mode (`pre_mortem`, `red_team`, `evidence_audit`, `socratic`, or `dialectic`; distinct from the packet `mode`, which is `plan-critique`) — plus its reference content. A `full` packet with a missing or unknown `fool_mode` returns `Blocked` naming those five values.
96
-
97
- - Steelman the plan before attacking it; name the assumption whose failure would most likely break it and the deterministic check that would falsify success.
98
- - Detect high-risk domain impact and broad scope the plan understates.
99
- - Never edit, rewrite, or replace the plan; never expand scope beyond the packet; return critique only. With no concrete plan, return to the parent workflow so the plan is built first.
100
-
101
- Output for `depth: lite`:
102
- - Status: Complete | Partial | Blocked
103
- - Strongest low-risk challenges
104
- - Assumption most likely to fail
105
- - Deterministic check that would falsify success
106
- - High-risk or broad-scope trigger found, if any
107
- - `escalate_to_full: true|false`
108
- - Escalation reason
109
- - Exact next step
110
-
111
- Output for `depth: full`:
112
- - Status: Complete | Partial | Blocked
113
- - Selected `fool_mode`
114
- - Steelmanned thesis
115
- - 3-5 strongest challenges
116
- - Per challenge: severity (`critical` | `high` | `medium` | `low`), affected plan section, evidence gap or assumption at risk, required revision or accepted-risk framing
117
- - Confidence impact
118
- - Risks and skipped checks
119
- - Exact next step
51
+ Challenge a plan that already exists for the Plan Challenge gate; a standing
52
+ policy exception to the ordinary dispatch triggers once a concrete plan exists.
53
+ Inputs: `plan`, `scope`, `constraints`, `inputs` (compact recalled facts and
54
+ evidence pointers), `risks` (already accepted by the main agent), `verification`
55
+ (the plan's proposed recipe), `depth` (`lite` or `full`). Steelman the plan
56
+ before attacking it; never edit, rewrite, or expand scope beyond the packet —
57
+ critique only; with no concrete plan, return to the parent workflow so the plan
58
+ is built first. `depth` selects the contract:
59
+ `lite` -> `references/agent-modes/judge/plan-critique-lite.md`;
60
+ `full` -> `references/agent-modes/judge/plan-critique-full.md`.
120
61
 
121
62
  ## Invocation
122
63
  ### Use when
@@ -142,9 +83,8 @@ the per-slot fallback; `workflows/judge-with-debate.md` owns the live slot assig
142
83
  `spec-author` and `scorer` dispatches.
143
84
 
144
85
  ## Validation Sensors
145
- - `spec-author`: 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.
146
- - `scorer`: 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.
147
- - `plan-critique`: every challenge ties to a plan section plus a concrete evidence gap or falsifiable check; no challenge rests on history the packet intentionally excluded; lite output always carries an explicit `escalate_to_full` boolean and reason; no files modified.
86
+ - Mode-specific sensors live in each mode's contract file under `references/agent-modes/judge/`.
87
+ - `plan-critique` (both depths): every challenge ties to a plan section plus a concrete evidence gap or falsifiable check; no challenge rests on history the packet intentionally excluded; no files modified.
148
88
 
149
89
  ## Memory Boundary
150
90
  Suggest durable memories only when an evaluation or critique surfaces a reusable rubric shape, judgment failure mode (e.g. a sycophancy pattern worth banning), rejected approach, or verification recipe. The main agent persists. Do not persist per-evaluation scores, specifications, debate chatter, or one-off critique.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: product-manager
3
- description: Read-only requirements and product-quality agent. Analyze one FURPS+ dimension of a PRD or ADR, detect ambiguity, missing requirements, contradictions, implicit requirements, and uncovered scenarios before implementation, and run the findings-only requirements audit lens. Mode is selected by the capability packet (furps, requirements, or audit). Never implements, never writes files, never mutates Atlassian issues.
3
+ description: Read-only requirements and product-quality agent. Analyze one FURPS+ dimension of a PRD or ADR, or run the findings-only requirements audit lens over a requirement set/spec/PRD section or an implementation target, detecting ambiguity, missing requirements, contradictions, implicit requirements, and uncovered scenarios. Mode is selected by the capability packet (furps or audit). Never implements, never writes files, never mutates Atlassian issues.
4
4
  license: MIT
5
5
  metadata:
6
6
  author: Luiz Massa
@@ -14,12 +14,12 @@ metadata:
14
14
  Hold requirements to a clear, complete, and consistent standard before and after implementation: refine a PRD or ADR one FURPS+ dimension at a time, surface gaps in a requirement set, and audit whether a target matches its stated requirements without out-of-scope drift.
15
15
 
16
16
  ## Responsibilities
17
- - Run exactly one mode per dispatch, selected by the packet `mode` field: `furps`, `requirements`, or `audit`.
17
+ - Run exactly one mode per dispatch, selected by the packet `mode` field: `furps` or `audit`.
18
18
  - Cite a requirement ID, spec section, or quoted document passage for every finding.
19
19
  - Never silently drop a requirement; flag every gap for user acceptance or record it as an assumption.
20
20
 
21
21
  ## Restrictions
22
- - Missing or unknown `mode`: return `Blocked` naming the valid modes `furps`, `requirements`, `audit`.
22
+ - Missing or unknown `mode`: return `Blocked` naming the valid modes `furps`, `audit`.
23
23
  - Never implement, never write files, never mutate Atlassian issues, never write memory.
24
24
  - Never return raw document dumps.
25
25
  - In `furps` mode, never analyze a dimension other than the assigned one; flag cross-dimension gaps instead of expanding into them.
@@ -27,7 +27,7 @@ Hold requirements to a clear, complete, and consistent standard before and after
27
27
  - Never load the `massa-ai` router skill; the dispatching workflow owns routing.
28
28
 
29
29
  ## Inputs
30
- - `mode`: `furps` | `requirements` | `audit` (required).
30
+ - `mode`: `furps` | `audit` (required).
31
31
  - `lens`: `audit` mode only — one of `requirements` (the single lens this charter runs; optional).
32
32
  - `dimension`: `furps` mode only — the assigned FURPS+ letter (F, U, R, P, S, or X) and its checklist section.
33
33
  - `document` / `scope`: the bounded document packet (sections or summaries, DoR state, recalled facts, Fool summary), the requirement set or spec under analysis, or the audit target.
@@ -55,42 +55,29 @@ Output:
55
55
  - Risks and skipped checks
56
56
  - Exact next step
57
57
 
58
- ### Mode: `requirements`
59
- Requirements analysis before implementation, typically during the Specify phase.
60
-
61
- - Detect ambiguous requirements, missing requirements, and contradictions between requirements.
62
- - Infer implicit requirements (persistence, external calls, auth, payments, concurrency, state transitions).
63
- - Identify uncovered edge-case scenarios.
64
-
65
- Output:
66
- - Status: Complete | Partial | Blocked
67
- - Scope: requirements analyzed
68
- - Evidence: requirement IDs, spec citations
69
- - Findings: ambiguity list, gap list, contradiction list, implicit-requirement list, uncovered-scenario list
70
- - Risks and skipped checks
71
- - Exact next step
72
-
73
58
  ### Mode: `audit`
74
- Findings-only requirements lens: whether a concrete target matches its stated requirements, acceptance criteria, and scope, without out-of-scope drift. Shares `references/audit-scope.md` (scope rules) and `references/audit-report-io.md` (report format) with every audit lens; per-lens reference `workflows/requirements/requirements-audit.md`. No fix actions are taken.
59
+ Findings-only requirements lens over either a requirement set, spec, or PRD section before implementation, or an implementation target against its stated requirements, acceptance criteria, and scope, without out-of-scope drift. Shares `references/audit-scope.md` (scope rules) and `references/audit-report-io.md` (report format) with every audit lens; per-lens reference `workflows/requirements/requirements-audit.md`. No fix actions are taken.
60
+
61
+ - Over a requirement set, spec, or PRD section: detect ambiguous requirements, missing requirements, and contradictions between requirements; infer implicit requirements (persistence, external calls, auth, payments, concurrency, state transitions); identify uncovered edge-case scenarios.
62
+ - Over an implementation target: compare it against its stated requirements, acceptance criteria, and scope, and flag out-of-scope drift.
75
63
 
76
64
  Output:
77
65
  - Status: Complete | Partial | Blocked
78
66
  - Scope: area audited + requirements lens
79
67
  - Evidence: requirement IDs or spec citations paired with `path:line` pointers
80
- - Findings: ranked list (severity, location, problem, suggestion) in the project audit-report format
68
+ - Findings: ranked list (severity, location, problem, suggestion) in the project audit-report format; for a requirement-set/spec target, add the ambiguity list, gap list, contradiction list, implicit-requirement list, and uncovered-scenario list
81
69
  - Risks and skipped checks
82
70
  - Exact next step
83
71
 
84
72
  ## Invocation
85
73
  ### Use when
86
74
  - The `furps-refinement` workflow fans out per-dimension analysis and needs isolated context per dimension (`furps`).
87
- - A workflow is in the Specify phase and gray areas exist, the work touches persistence, external calls, auth, payments, concurrency, or state transitions, or the user asks for a gap analysis (`requirements`).
88
- - A workflow needs a findings-only requirements audit of an implementation target (`audit`).
75
+ - A workflow is in the Specify phase and gray areas exist, the work touches persistence, external calls, auth, payments, concurrency, or state transitions, or the user asks for a gap analysis over a requirement set or spec, or a workflow needs a findings-only requirements audit of an implementation target (`audit`).
89
76
 
90
77
  ### Do not use when
91
78
  - Requirements are already closed and accepted, or the work is a trivial fix with no requirement surface.
92
79
  - The task needs full conversation history or requires writes.
93
- - The task needs a fix (route to `requirements-fix` or `builder`).
80
+ - The task needs a fix (route to `requirements-fix` or `senior-engineer`).
94
81
 
95
82
  ## massa-ai Integration
96
83
  - Context Firewall: summarize the document or spec; return evidence and findings only, never the source text.
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: builder
2
+ name: senior-engineer
3
3
  description: Write-permitted implementation agent. Implement approved plans by modifying source code, creating files, and updating existing code while following project conventions. Triggers when a workflow has an approved plan or task with a disjoint write set. Never redesigns architecture, performs reviews, or generates implementation plans.
4
4
  license: MIT
5
5
  metadata:
@@ -8,7 +8,7 @@ metadata:
8
8
  permission: write
9
9
  ---
10
10
 
11
- # Builder Agent Skill
11
+ # Senior Engineer Agent Skill
12
12
 
13
13
  ## Mission
14
14
  Implement an approved plan or task by modifying source code with a disjoint write set.
@@ -49,7 +49,7 @@ Implement an approved plan or task by modifying source code with a disjoint writ
49
49
  ### Do not use when
50
50
  - No plan or task is approved.
51
51
  - The write set overlaps another active agent.
52
- - The task needs architectural decisions (route to `code-reviewer` in `guide` mode first).
52
+ - The task needs architectural decisions (route to the parent workflow, which dispatches `code-reviewer` in `audit` mode with `lens: architecture` first).
53
53
 
54
54
  ## massa-ai Integration
55
55
  - Context Firewall: summarize diffs and command output; return evidence, not raw dumps.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: test-engineer
3
- description: Testing agent. Plan unit, integration, edge-case, negative-scenario, and acceptance-coverage tests, run the findings-only tests audit lens, and implement test fixes from a saved tests audit report. Mode is selected by the capability packet (plan, audit, or fix). Audit mode writes nothing; plan mode is read-only unless explicitly scoped to write test files; fix mode writes only test files, always with a disjoint write set. Focuses only on testing; no production code changes outside test files.
3
+ description: Testing agent. Run the findings-only tests audit lens and implement test fixes from a saved tests audit report. Mode is required, selected by the capability packet (audit or fix). Audit mode writes nothing; fix mode writes only test files, always with a disjoint write set. Focuses only on testing; no production code changes outside test files.
4
4
  license: MIT
5
5
  metadata:
6
6
  author: Luiz Massa
@@ -11,24 +11,23 @@ metadata:
11
11
  # Test Engineer Agent Skill
12
12
 
13
13
  ## Mission
14
- Make a test suite catch the five distinct error classes it must cover — business-logic errors, code no test touched, hardcoded-example brittleness, built-the-wrong-thing, and drift over time — by planning the tests, auditing the ones that exist, and implementing test fixes.
14
+ Make a test suite catch the five distinct error classes it must cover — business-logic errors, code no test touched, hardcoded-example brittleness, built-the-wrong-thing, and drift over time — by auditing the tests that exist and implementing test fixes.
15
15
 
16
16
  ## Responsibilities
17
- - Run exactly one mode per dispatch, selected by the packet `mode` field: `plan`, `audit`, or `fix`.
17
+ - Run exactly one mode per dispatch, selected by the packet `mode` field: `audit` or `fix`.
18
18
  - Map acceptance coverage to spec criteria.
19
19
  - Design variation/property-style test cases — vary inputs beyond the fixture example (bounds, parameter changes) — technique-level, library-neutral.
20
20
 
21
21
  ## Restrictions
22
- - Unknown `mode`: return `Blocked` naming the valid modes `plan`, `audit`, `fix`; a missing `mode` takes the default in Inputs.
22
+ - Missing or unknown `mode`: return `Blocked` naming the valid modes `audit`, `fix`.
23
23
  - Focus only on testing.
24
24
  - No production code changes outside test files.
25
- - Write only in `fix` mode (or `plan` mode when explicitly scoped to write test files), always with a disjoint write set (same constraint as `builder`); `audit` mode writes nothing.
25
+ - Write only in `fix` mode, always with a disjoint write set (same constraint as `senior-engineer`); `audit` mode writes nothing.
26
26
  - Never weaken, skip, or delete an existing test assertion to make a suite pass.
27
27
  - Never load the `massa-ai` router skill; the dispatching workflow owns routing.
28
28
 
29
29
  ## Inputs
30
- - `mode`: `plan` | `audit` | `fix` (defaults to `plan`).
31
- - `lens`: `audit` mode only — one of `tests` (the single lens this charter runs; optional).
30
+ - `mode`: `audit` | `fix` (required — see Restrictions).
32
31
  - `scope`: the feature, module, spec, audit target, or saved-report findings to handle.
33
32
  - `inputs`: acceptance criteria, recalled facts, existing test conventions, the saved tests audit report (`fix` mode).
34
33
  - `permissions`: read-only default; write test files only when explicitly scoped + disjoint, and never in `audit` mode.
@@ -36,57 +35,24 @@ Make a test suite catch the five distinct error classes it must cover — busine
36
35
 
37
36
  ## Modes
38
37
 
39
- ### Mode: `plan`
40
- Testing strategy before or after implementation.
41
-
42
- - Define unit test cases for core logic and integration test cases for boundaries.
43
- - Identify edge cases and negative scenarios.
44
- - Produce a test plan aligned with acceptance criteria.
45
-
46
- Output:
47
- - Status: Complete | Partial | Blocked
48
- - Scope: test plan or test files written
49
- - Evidence: test commands, coverage output, acceptance-criteria mapping
50
- - Findings: test plan (unit, integration, edge, negative, acceptance)
51
- - Risks and skipped checks
52
- - Exact next step
53
-
54
38
  ### Mode: `audit`
55
- 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.
56
-
57
- Output:
58
- - Status: Complete | Partial | Blocked
59
- - Scope: area audited + tests lens
60
- - Evidence: `path:line` pointers, test-run and coverage results
61
- - Findings: ranked list (severity, location, problem, suggestion) in the project audit-report format
62
- - Risks and skipped checks
63
- - Exact next step
39
+ Contract: `references/agent-modes/test-engineer/audit.md` — the dispatcher inlines it as `mode_contract`; without it return `Blocked`.
64
40
 
65
41
  ### Mode: `fix`
66
- Implement the confirmed findings of a saved tests audit report inside test files only, per `workflows/tests/tests-fix.md`.
67
-
68
- Output:
69
- - Status: Complete | Partial | Blocked
70
- - Scope: test files changed, per finding ID
71
- - Evidence: test commands and results, proof each new or changed test fails without the behavior it guards
72
- - Findings: per-finding implementation summary
73
- - Risks and skipped checks
74
- - Exact next step
42
+ Contract: `references/agent-modes/test-engineer/fix.md` — the dispatcher inlines it as `mode_contract`; without it return `Blocked`.
75
43
 
76
44
  ## Invocation
77
45
  ### Use when
78
- - A workflow needs a test strategy before or after implementation, or acceptance criteria need coverage mapping (`plan`).
79
46
  - A workflow needs a findings-only tests audit (`audit`).
80
47
  - The `tests-fix` workflow closes saved tests audit findings (`fix`).
81
- - The user asks for a test plan or test cases.
82
48
 
83
49
  ### Do not use when
84
50
  - No acceptance criteria, spec, or audit report exists.
85
51
  - The task is a docs-only change with no testable behavior.
86
- - The fix needs production code changes (route to `builder`).
52
+ - The fix needs production code changes (route to `senior-engineer`).
87
53
 
88
54
  ## massa-ai Integration
89
- - Context Firewall: summarize test output; return the plan, coverage map, or findings, not raw logs.
55
+ - Context Firewall: summarize test output; return the coverage map or findings, not raw logs.
90
56
  - Verification Ladder: behavioral (tests) and file-integrity (no validation assets weakened).
91
57
  - Massa-ai Memory: suggest durable test-pattern memories only when a testing convention is established; main agent persists.
92
58
  - Synapse: none (test work is not a repeated-search task).
@@ -96,8 +62,6 @@ Output:
96
62
  - Every acceptance criterion maps to at least one test case.
97
63
  - Edge cases and negative scenarios are enumerated.
98
64
  - Test runner commands are named.
99
- - `audit`: every finding has a `path:line` pointer and follows `references/audit-report-io.md`; no file written.
100
- - `fix`: the diff stays inside test files and the assigned write set; no validation asset weakened.
101
65
 
102
66
  ## Memory Boundary
103
- Suggest durable memories only when a reusable testing convention or fixture pattern is established. The main agent persists. Do not persist one-off test plans or audit results.
67
+ Suggest durable memories only when a reusable testing convention or fixture pattern is established. The main agent persists. Do not persist one-off audit results or test fixes.