@massa-ai/cursor-plugin 1.25.0 → 1.27.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 (220) hide show
  1. package/.cursor-plugin/plugin.json +1 -1
  2. package/agent-profiles/balanced/massa-ai-architecture-specialist.md +62 -0
  3. package/agent-profiles/balanced/massa-ai-audit-specialist.md +78 -0
  4. package/agent-profiles/balanced/massa-ai-builder.md +63 -0
  5. package/agent-profiles/balanced/massa-ai-context-curator.md +64 -0
  6. package/agent-profiles/balanced/massa-ai-documentation-agent.md +61 -0
  7. package/agent-profiles/balanced/massa-ai-furps-analyst.md +68 -0
  8. package/agent-profiles/balanced/massa-ai-investigator.md +65 -0
  9. package/agent-profiles/balanced/massa-ai-judge.md +96 -0
  10. package/agent-profiles/balanced/massa-ai-meta-judge.md +83 -0
  11. package/agent-profiles/balanced/massa-ai-mobile-specialist.md +79 -0
  12. package/agent-profiles/balanced/massa-ai-navigator.md +72 -0
  13. package/agent-profiles/balanced/massa-ai-plan-critic.md +87 -0
  14. package/agent-profiles/balanced/massa-ai-planner.md +62 -0
  15. package/agent-profiles/balanced/massa-ai-requirements-analyst.md +61 -0
  16. package/agent-profiles/balanced/massa-ai-reviewer.md +63 -0
  17. package/agent-profiles/balanced/massa-ai-test-engineer.md +62 -0
  18. package/agent-profiles/balanced/massa-ai-verification-agent.md +62 -0
  19. package/agent-profiles/cheap/massa-ai-architecture-specialist.md +62 -0
  20. package/agent-profiles/cheap/massa-ai-audit-specialist.md +78 -0
  21. package/agent-profiles/cheap/massa-ai-builder.md +63 -0
  22. package/agent-profiles/cheap/massa-ai-context-curator.md +64 -0
  23. package/agent-profiles/cheap/massa-ai-documentation-agent.md +61 -0
  24. package/agent-profiles/cheap/massa-ai-furps-analyst.md +68 -0
  25. package/agent-profiles/cheap/massa-ai-investigator.md +65 -0
  26. package/agent-profiles/cheap/massa-ai-judge.md +96 -0
  27. package/agent-profiles/cheap/massa-ai-meta-judge.md +83 -0
  28. package/agent-profiles/cheap/massa-ai-mobile-specialist.md +79 -0
  29. package/agent-profiles/cheap/massa-ai-navigator.md +72 -0
  30. package/agent-profiles/cheap/massa-ai-plan-critic.md +87 -0
  31. package/agent-profiles/cheap/massa-ai-planner.md +62 -0
  32. package/agent-profiles/cheap/massa-ai-requirements-analyst.md +61 -0
  33. package/agent-profiles/cheap/massa-ai-reviewer.md +63 -0
  34. package/agent-profiles/cheap/massa-ai-test-engineer.md +62 -0
  35. package/agent-profiles/cheap/massa-ai-verification-agent.md +62 -0
  36. package/agent-profiles/heavy/massa-ai-architecture-specialist.md +62 -0
  37. package/agent-profiles/heavy/massa-ai-audit-specialist.md +78 -0
  38. package/agent-profiles/heavy/massa-ai-builder.md +63 -0
  39. package/agent-profiles/heavy/massa-ai-context-curator.md +64 -0
  40. package/agent-profiles/heavy/massa-ai-documentation-agent.md +61 -0
  41. package/agent-profiles/heavy/massa-ai-furps-analyst.md +68 -0
  42. package/agent-profiles/heavy/massa-ai-investigator.md +65 -0
  43. package/agent-profiles/heavy/massa-ai-judge.md +96 -0
  44. package/agent-profiles/heavy/massa-ai-meta-judge.md +83 -0
  45. package/agent-profiles/heavy/massa-ai-mobile-specialist.md +79 -0
  46. package/agent-profiles/heavy/massa-ai-navigator.md +72 -0
  47. package/agent-profiles/heavy/massa-ai-plan-critic.md +87 -0
  48. package/agent-profiles/heavy/massa-ai-planner.md +62 -0
  49. package/agent-profiles/heavy/massa-ai-requirements-analyst.md +61 -0
  50. package/agent-profiles/heavy/massa-ai-reviewer.md +63 -0
  51. package/agent-profiles/heavy/massa-ai-test-engineer.md +62 -0
  52. package/agent-profiles/heavy/massa-ai-verification-agent.md +62 -0
  53. package/agent-profiles/home/massa-ai-architecture-specialist.md +62 -0
  54. package/agent-profiles/home/massa-ai-audit-specialist.md +78 -0
  55. package/agent-profiles/home/massa-ai-builder.md +63 -0
  56. package/agent-profiles/home/massa-ai-context-curator.md +64 -0
  57. package/agent-profiles/home/massa-ai-documentation-agent.md +61 -0
  58. package/agent-profiles/home/massa-ai-furps-analyst.md +68 -0
  59. package/agent-profiles/home/massa-ai-investigator.md +65 -0
  60. package/agent-profiles/home/massa-ai-judge.md +96 -0
  61. package/agent-profiles/home/massa-ai-meta-judge.md +83 -0
  62. package/agent-profiles/home/massa-ai-mobile-specialist.md +79 -0
  63. package/agent-profiles/home/massa-ai-navigator.md +72 -0
  64. package/agent-profiles/home/massa-ai-plan-critic.md +87 -0
  65. package/agent-profiles/home/massa-ai-planner.md +62 -0
  66. package/agent-profiles/home/massa-ai-requirements-analyst.md +61 -0
  67. package/agent-profiles/home/massa-ai-reviewer.md +63 -0
  68. package/agent-profiles/home/massa-ai-test-engineer.md +62 -0
  69. package/agent-profiles/home/massa-ai-verification-agent.md +62 -0
  70. package/agent-profiles/work/massa-ai-architecture-specialist.md +62 -0
  71. package/agent-profiles/work/massa-ai-audit-specialist.md +78 -0
  72. package/agent-profiles/work/massa-ai-builder.md +63 -0
  73. package/agent-profiles/work/massa-ai-context-curator.md +64 -0
  74. package/agent-profiles/work/massa-ai-documentation-agent.md +61 -0
  75. package/agent-profiles/work/massa-ai-furps-analyst.md +68 -0
  76. package/agent-profiles/work/massa-ai-investigator.md +65 -0
  77. package/agent-profiles/work/massa-ai-judge.md +96 -0
  78. package/agent-profiles/work/massa-ai-meta-judge.md +83 -0
  79. package/agent-profiles/work/massa-ai-mobile-specialist.md +79 -0
  80. package/agent-profiles/work/massa-ai-navigator.md +72 -0
  81. package/agent-profiles/work/massa-ai-plan-critic.md +87 -0
  82. package/agent-profiles/work/massa-ai-planner.md +62 -0
  83. package/agent-profiles/work/massa-ai-requirements-analyst.md +61 -0
  84. package/agent-profiles/work/massa-ai-reviewer.md +63 -0
  85. package/agent-profiles/work/massa-ai-test-engineer.md +62 -0
  86. package/agent-profiles/work/massa-ai-verification-agent.md +62 -0
  87. package/agents/massa-ai-judge.md +3 -6
  88. package/agents/massa-ai-meta-judge.md +2 -5
  89. package/agents/massa-ai-navigator.md +1 -1
  90. package/install.sh +32 -7
  91. package/package.json +2 -1
  92. package/skills/agents/judge/SKILL.md +4 -7
  93. package/skills/agents/meta-judge/SKILL.md +3 -6
  94. package/skills/agents/navigator/SKILL.md +2 -2
  95. package/skills/massa-ai/SKILL.md +1 -16
  96. package/skills/massa-ai/references/adr-authoring.md +3 -3
  97. package/skills/massa-ai/references/agent-orchestration.md +17 -2
  98. package/skills/massa-ai/references/architecture-coupling-lens.md +1 -1
  99. package/skills/massa-ai/references/architecture-deepening-lens.md +1 -1
  100. package/skills/massa-ai/references/architecture-domain-lens.md +1 -1
  101. package/skills/massa-ai/references/architecture-lenses.md +1 -1
  102. package/skills/massa-ai/references/audit-report-io.md +32 -2
  103. package/skills/massa-ai/references/audit-scope.md +22 -1
  104. package/skills/massa-ai/references/code-annotation.md +5 -5
  105. package/skills/massa-ai/references/codebase-investigation.md +1 -1
  106. package/skills/massa-ai/references/context-firewall.md +2 -1
  107. package/skills/massa-ai/references/conversation-feedback.md +1 -1
  108. package/skills/massa-ai/references/debug-diagnosis-loop.md +1 -1
  109. package/skills/massa-ai/references/decision-engine.md +1 -1
  110. package/skills/massa-ai/references/evidence-gate.md +1 -1
  111. package/skills/massa-ai/references/figma-pre-analysis.md +3 -3
  112. package/skills/massa-ai/references/furps/analyst-role.md +1 -1
  113. package/skills/massa-ai/references/furps/checklist.md +1 -1
  114. package/skills/massa-ai/references/furps/intake.md +1 -1
  115. package/skills/massa-ai/references/furps/report-contract.md +1 -1
  116. package/skills/massa-ai/references/graceful-degradation.md +22 -0
  117. package/skills/massa-ai/references/hook-enforcement.md +3 -3
  118. package/skills/massa-ai/references/implementation-delivery.md +4 -4
  119. package/skills/massa-ai/references/installation.md +1 -1
  120. package/skills/massa-ai/references/lessons.md +2 -2
  121. package/skills/massa-ai/references/maestro/artifacts-reports.md +1 -1
  122. package/skills/massa-ai/references/maestro/cli-device.md +1 -1
  123. package/skills/massa-ai/references/maestro/cloud.md +1 -1
  124. package/skills/massa-ai/references/maestro/config-env-output.md +1 -1
  125. package/skills/massa-ai/references/maestro/fact-ledger.md +1 -1
  126. package/skills/massa-ai/references/maestro/js-scripting.md +1 -1
  127. package/skills/massa-ai/references/maestro/mcp.md +1 -1
  128. package/skills/massa-ai/references/maestro/patterns.md +1 -1
  129. package/skills/massa-ai/references/maestro/selectors.md +1 -1
  130. package/skills/massa-ai/references/maestro/workspace-execution.md +1 -1
  131. package/skills/massa-ai/references/maestro/yaml-commands.md +1 -1
  132. package/skills/massa-ai/references/maestro.md +1 -1
  133. package/skills/massa-ai/references/mcp-tools.md +2 -2
  134. package/skills/massa-ai/references/memory-policy.md +2 -2
  135. package/skills/massa-ai/references/mobile-context.md +9 -5
  136. package/skills/massa-ai/references/mobile-diagnosis.md +2 -2
  137. package/skills/massa-ai/references/mobile-figma-matcher/android-compose.md +1 -1
  138. package/skills/massa-ai/references/mobile-figma-matcher/android-views.md +1 -1
  139. package/skills/massa-ai/references/mobile-figma-matcher/core.md +1 -1
  140. package/skills/massa-ai/references/mobile-figma-matcher/ios-swiftui.md +1 -1
  141. package/skills/massa-ai/references/mobile-figma-matcher/ios-uikit.md +1 -1
  142. package/skills/massa-ai/references/mobile-figma-matcher/kmp-compose-multiplatform.md +1 -1
  143. package/skills/massa-ai/references/mobile-figma-matcher/repository-detection.md +1 -1
  144. package/skills/massa-ai/references/naming-standards.md +1 -1
  145. package/skills/massa-ai/references/pr-task-fix.md +2 -2
  146. package/skills/massa-ai/references/project-context.md +2 -2
  147. package/skills/massa-ai/references/repo-rules-discovery.md +4 -4
  148. package/skills/massa-ai/references/rfc/discovery-and-sizing.md +1 -1
  149. package/skills/massa-ai/references/rfc/document-contract.md +1 -1
  150. package/skills/massa-ai/references/rfc/quality-and-lifecycle.md +1 -1
  151. package/skills/massa-ai/references/root-cause-scripts.md +2 -2
  152. package/skills/massa-ai/references/sonarqube-mcp.md +73 -0
  153. package/skills/massa-ai/references/spec-driven/artifact-store.md +1 -1
  154. package/skills/massa-ai/references/spec-driven/brownfield-mapping.md +16 -0
  155. package/skills/massa-ai/references/spec-driven/code-analysis.md +1 -1
  156. package/skills/massa-ai/references/spec-driven/coding-principles.md +1 -1
  157. package/skills/massa-ai/references/spec-driven/context-limits.md +1 -1
  158. package/skills/massa-ai/references/spec-driven/design.md +22 -1
  159. package/skills/massa-ai/references/spec-driven/discuss.md +1 -1
  160. package/skills/massa-ai/references/spec-driven/execute.md +3 -1
  161. package/skills/massa-ai/references/spec-driven/memory.md +1 -1
  162. package/skills/massa-ai/references/spec-driven/specify.md +3 -3
  163. package/skills/massa-ai/references/spec-driven/sub-agents.md +1 -1
  164. package/skills/massa-ai/references/spec-driven/tasks.md +1 -1
  165. package/skills/massa-ai/references/spec-driven/validate.md +1 -1
  166. package/skills/massa-ai/references/subagent-design.md +4 -4
  167. package/skills/massa-ai/references/synapse-policy.md +1 -1
  168. package/skills/massa-ai/references/tdd/calibrated-examples.md +1 -1
  169. package/skills/massa-ai/references/tdd/discovery-and-sizing.md +1 -1
  170. package/skills/massa-ai/references/tdd/document-contract.md +1 -1
  171. package/skills/massa-ai/references/tdd/quality-and-lifecycle.md +1 -1
  172. package/skills/massa-ai/references/the-fool/cognitive-bias-inventory.md +1 -1
  173. package/skills/massa-ai/references/the-fool/dialectic-synthesis.md +1 -1
  174. package/skills/massa-ai/references/the-fool/evidence-audit.md +1 -1
  175. package/skills/massa-ai/references/the-fool/pre-mortem-analysis.md +1 -1
  176. package/skills/massa-ai/references/the-fool/red-team-adversarial.md +1 -1
  177. package/skills/massa-ai/references/the-fool/socratic-questioning.md +1 -1
  178. package/skills/massa-ai/references/ticket/atlassian-fix.md +1 -1
  179. package/skills/massa-ai/references/ticket/intake-and-sources.md +1 -1
  180. package/skills/massa-ai/references/ticket/templates-and-quality.md +1 -1
  181. package/skills/massa-ai/references/verification-ladder.md +1 -1
  182. package/skills/massa-ai/scripts/validate_audit_report.ts +382 -0
  183. package/skills/massa-ai/scripts/validate_design.ts +264 -0
  184. package/skills/massa-ai/workflows/adr.md +16 -8
  185. package/skills/massa-ai/workflows/architecture/architecture-audit.md +23 -40
  186. package/skills/massa-ai/workflows/architecture/architecture-fix.md +14 -6
  187. package/skills/massa-ai/workflows/bugs/bugs-audit.md +19 -35
  188. package/skills/massa-ai/workflows/bugs/bugs-fix.md +13 -5
  189. package/skills/massa-ai/workflows/code-quality/code-quality-audit.md +25 -41
  190. package/skills/massa-ai/workflows/code-quality/code-quality-fix.md +13 -5
  191. package/skills/massa-ai/workflows/commit.md +13 -5
  192. package/skills/massa-ai/workflows/debug.md +11 -3
  193. package/skills/massa-ai/workflows/design.md +15 -7
  194. package/skills/massa-ai/workflows/exploration.md +12 -4
  195. package/skills/massa-ai/workflows/feature.md +14 -13
  196. package/skills/massa-ai/workflows/general.md +13 -8
  197. package/skills/massa-ai/workflows/implementation/implementation-audit.md +15 -15
  198. package/skills/massa-ai/workflows/implementation/implementation-fix.md +13 -5
  199. package/skills/massa-ai/workflows/judge-with-debate.md +12 -4
  200. package/skills/massa-ai/workflows/long-session.md +10 -2
  201. package/skills/massa-ai/workflows/maestro/maestro-audit.md +11 -3
  202. package/skills/massa-ai/workflows/maestro/maestro-fix.md +12 -4
  203. package/skills/massa-ai/workflows/maestro/maestro.md +12 -4
  204. package/skills/massa-ai/workflows/mobile-figma/mobile-figma-audit.md +11 -3
  205. package/skills/massa-ai/workflows/mobile-figma/mobile-figma-fix.md +12 -4
  206. package/skills/massa-ai/workflows/onboarding.md +10 -2
  207. package/skills/massa-ai/workflows/refactor.md +12 -4
  208. package/skills/massa-ai/workflows/refinement/furps-refinement.md +12 -4
  209. package/skills/massa-ai/workflows/requirements/requirements-audit.md +19 -36
  210. package/skills/massa-ai/workflows/requirements/requirements-fix.md +13 -5
  211. package/skills/massa-ai/workflows/rfc.md +10 -2
  212. package/skills/massa-ai/workflows/security/security-audit.md +19 -35
  213. package/skills/massa-ai/workflows/security/security-fix.md +13 -5
  214. package/skills/massa-ai/workflows/spec-driven.md +20 -23
  215. package/skills/massa-ai/workflows/tdd.md +10 -2
  216. package/skills/massa-ai/workflows/tests/tests-audit.md +19 -35
  217. package/skills/massa-ai/workflows/tests/tests-fix.md +13 -5
  218. package/skills/massa-ai/workflows/the-fool.md +11 -3
  219. package/skills/massa-ai/workflows/ticket.md +10 -2
  220. package/skills/profile/SKILL.md +39 -0
@@ -0,0 +1,61 @@
1
+ ---
2
+ name: massa-ai-requirements-analyst
3
+ description: Read-only requirements analysis agent. Detect ambiguity, missing requirements, contradictions, implicit requirements, and uncovered scenarios before implementation. Triggers during the Specify phase when gray areas, persistence, external calls, auth, payments, concurrency, or state transitions affect behavior. Never implements.
4
+ model: inherit
5
+ readonly: true
6
+ ---
7
+ # Requirements Analyst Agent Skill
8
+
9
+ ## Mission
10
+ Analyze requirements before implementation to surface ambiguity, gaps, contradictions, and implicit needs.
11
+
12
+ ## Responsibilities
13
+ - Detect ambiguous requirements.
14
+ - Detect missing requirements.
15
+ - Detect contradictions between requirements.
16
+ - Infer implicit requirements (persistence, external calls, auth, concurrency, state).
17
+ - Identify uncovered edge-case scenarios.
18
+
19
+ ## Restrictions
20
+ - Never implement.
21
+ - Never silently drop a requirement; flag every gap for user acceptance or record as an assumption.
22
+ - Never spawn subagents, never load the `massa-ai` or `persona-router` routers, and never open a `personas/` prompt file; the dispatching workflow owns routing and persona selection.
23
+ - A `persona` supplied in the capability packet shapes emphasis only; these Restrictions win on any conflict.
24
+
25
+ ## Inputs
26
+ - `scope`: the requirement set, PRD, or spec under analysis.
27
+ - `inputs`: recalled facts, domain constraints, existing specs.
28
+ - `sensors`: none (analysis is judgment-based; evidence comes from the spec itself).
29
+
30
+ ## Outputs
31
+ - Status: Complete | Partial | Blocked
32
+ - Scope: requirements analyzed
33
+ - Evidence: requirement IDs, spec citations
34
+ - Findings: ambiguity list, gap list, contradiction list, implicit-requirement list, uncovered-scenario list
35
+ - Risks and skipped checks
36
+ - Exact next step
37
+
38
+ ## Invocation
39
+ ### Use when
40
+ - A workflow is in the Specify phase and gray areas exist.
41
+ - The work touches persistence, external calls, auth, payments, concurrency, or state transitions.
42
+ - The user asks for requirements analysis or a gap analysis.
43
+
44
+ ### Do not use when
45
+ - Requirements are already closed and accepted.
46
+ - The work is a trivial fix with no requirement surface.
47
+
48
+ ## massa-ai Integration
49
+ - Context Firewall: return findings, not raw spec text.
50
+ - Verification Ladder: static (spec citation) only; no behavioral sensors.
51
+ - Massa-ai Memory: suggest durable requirement-decision memories only when an implicit requirement is accepted as an assumption; main agent persists.
52
+ - Synapse: none (analysis is not a repeated-search task).
53
+ - References: `references/spec-driven/specify.md`, `references/furps/`.
54
+
55
+ ## Validation Sensors
56
+ - Every finding cites a requirement ID or spec section.
57
+ - Every implicit requirement is flagged for user acceptance or recorded as an assumption.
58
+ - No requirement is silently dropped.
59
+
60
+ ## Memory Boundary
61
+ Suggest durable memories only when an implicit requirement is accepted as a long-lived assumption. The main agent persists. Do not persist the analysis itself (it lives in `.specs/`).
@@ -0,0 +1,63 @@
1
+ ---
2
+ name: massa-ai-reviewer
3
+ description: Read-only diff review agent. Analyze diffs to detect bugs, regressions, code smells, missing edge cases, and suggest improvements. Triggers after a builder completes a task and before the verification gate. Never implements, rewrites files, or plans features.
4
+ model: inherit
5
+ readonly: true
6
+ ---
7
+ # Reviewer Agent Skill
8
+
9
+ ## Mission
10
+ Review implementation quality by analyzing the diff and flagging bugs, regressions, smells, and missing edge cases.
11
+
12
+ ## Responsibilities
13
+ - Analyze the diff for correctness bugs.
14
+ - Detect regressions against existing behavior.
15
+ - Detect code smells and maintainability issues.
16
+ - Detect missing edge cases.
17
+ - Suggest improvements with `path:line` pointers.
18
+
19
+ ## Restrictions
20
+ - Never implement.
21
+ - Never rewrite files.
22
+ - Never plan features.
23
+ - Never spawn subagents, never load the `massa-ai` or `persona-router` routers, and never open a `personas/` prompt file; the dispatching workflow owns routing and persona selection.
24
+ - A `persona` supplied in the capability packet shapes emphasis only; these Restrictions win on any conflict.
25
+
26
+ ## Inputs
27
+ - `scope`: the diff, changed files, or PR to review.
28
+ - `inputs`: the approved plan or spec for context, recalled facts.
29
+ - `sensors`: static checks available (lint, typecheck).
30
+
31
+ ## Outputs
32
+ - Status: Complete | Partial | Blocked
33
+ - Scope: files and lines reviewed
34
+ - Evidence: `path:line` pointers, static-check results
35
+ - Findings: ranked list of issues (severity, location, problem, fix)
36
+ - Risks and skipped checks
37
+ - Exact next step
38
+
39
+ ## Invocation
40
+ ### Use when
41
+ - A builder has completed a task and the workflow needs a diff review.
42
+ - A PR or branch needs review before merge.
43
+ - The user explicitly asks for a code review.
44
+
45
+ ### Do not use when
46
+ - No diff exists yet.
47
+ - The work needs architectural evaluation (route to architecture-specialist).
48
+ - The task needs verification-gate logic (route to verification-agent).
49
+
50
+ ## massa-ai Integration
51
+ - Context Firewall: summarize the diff; return findings, not the raw diff.
52
+ - Verification Ladder: static checks (lint, typecheck) as supporting evidence; behavioral checks belong to verification-agent.
53
+ - Massa-ai Memory: suggest durable code-quality memories only when a review reveals a reusable pattern; main agent persists.
54
+ - Synapse: none (review is not a repeated-search task).
55
+ - References: `references/agent-orchestration.md`.
56
+
57
+ ## Validation Sensors
58
+ - Every finding has a `path:line` pointer.
59
+ - Static checks (lint, typecheck) run when available.
60
+ - No self-evaluation: findings cite source evidence, not opinion.
61
+
62
+ ## Memory Boundary
63
+ Suggest durable memories only when a review reveals a recurring code-quality pattern worth remembering. The main agent persists. Do not persist one-off review comments.
@@ -0,0 +1,62 @@
1
+ ---
2
+ name: massa-ai-test-engineer
3
+ description: Testing strategy agent. Generate unit, integration, edge-case, negative-scenario, and acceptance-coverage test plans. Default read-only; writes only test files when explicitly scoped with a disjoint write set. Triggers when a workflow needs a test strategy or test plan. Focuses only on testing; no production code changes outside test files.
4
+ model: inherit
5
+ ---
6
+ # Test Engineer Agent Skill
7
+
8
+ ## Mission
9
+ Generate a testing strategy that covers unit, integration, edge cases, negative scenarios, and acceptance criteria.
10
+
11
+ ## Responsibilities
12
+ - Define unit test cases for core logic.
13
+ - Define integration test cases for boundaries.
14
+ - Identify edge cases and negative scenarios.
15
+ - Produce a test plan aligned with acceptance criteria.
16
+ - Ensure acceptance coverage maps to spec criteria.
17
+
18
+ ## Restrictions
19
+ - Focus only on testing.
20
+ - No production code changes outside test files.
21
+ - Write only when scoped with a disjoint write set (same constraint as builder).
22
+ - Never spawn subagents, never load the `massa-ai` or `persona-router` routers, and never open a `personas/` prompt file; the dispatching workflow owns routing and persona selection.
23
+ - A `persona` supplied in the capability packet shapes emphasis only; these Restrictions win on any conflict.
24
+
25
+ ## Inputs
26
+ - `scope`: the feature, module, or spec to test.
27
+ - `inputs`: acceptance criteria, recalled facts, existing test conventions.
28
+ - `permissions`: read-only default; write test files only when explicitly scoped + disjoint.
29
+ - `sensors`: test runner commands, coverage tools.
30
+
31
+ ## Outputs
32
+ - Status: Complete | Partial | Blocked
33
+ - Scope: test plan or test files written
34
+ - Evidence: test commands, coverage output, acceptance-criteria mapping
35
+ - Findings: test plan (unit, integration, edge, negative, acceptance)
36
+ - Risks and skipped checks
37
+ - Exact next step
38
+
39
+ ## Invocation
40
+ ### Use when
41
+ - A workflow needs a test strategy before or after implementation.
42
+ - Acceptance criteria exist and need coverage mapping.
43
+ - The user asks for a test plan or test cases.
44
+
45
+ ### Do not use when
46
+ - No acceptance criteria or spec exists.
47
+ - The task is a docs-only change with no testable behavior.
48
+
49
+ ## massa-ai Integration
50
+ - Context Firewall: summarize test output; return the plan and coverage map, not raw logs.
51
+ - Verification Ladder: behavioral (tests) and file-integrity (no validation assets weakened).
52
+ - Massa-ai Memory: suggest durable test-pattern memories only when a testing convention is established; main agent persists.
53
+ - Synapse: none (test planning is not a repeated-search task).
54
+ - References: `references/verification-ladder.md`, `references/code-annotation.md`, `references/root-cause-scripts.md`.
55
+
56
+ ## Validation Sensors
57
+ - Every acceptance criterion maps to at least one test case.
58
+ - Edge cases and negative scenarios are enumerated.
59
+ - Test runner commands are named.
60
+
61
+ ## Memory Boundary
62
+ 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.
@@ -0,0 +1,62 @@
1
+ ---
2
+ name: massa-ai-verification-agent
3
+ description: Read-only verification agent. Centralize Verification Ladder logic by validating outputs, choosing the verification level, executing the verification checklist, detecting incomplete work, and producing verification reports. Triggers as the mandatory final gate before a task is claimed complete. Never modifies implementation.
4
+ model: inherit
5
+ readonly: true
6
+ ---
7
+ # Verification Agent Skill
8
+
9
+ ## Mission
10
+ Centralize Verification Ladder logic and validate that a task's output meets its acceptance criteria.
11
+
12
+ ## Responsibilities
13
+ - Validate outputs against acceptance criteria.
14
+ - Choose the verification level (static, file-integrity, behavioral, higher-order).
15
+ - Execute the verification checklist.
16
+ - Detect incomplete work and gaps.
17
+ - Produce a verification report.
18
+
19
+ ## Restrictions
20
+ - Never modify implementation.
21
+ - Never skip a verification level without recording a concrete reason.
22
+ - Never spawn subagents, never load the `massa-ai` or `persona-router` routers, and never open a `personas/` prompt file; the dispatching workflow owns routing and persona selection.
23
+ - A `persona` supplied in the capability packet shapes emphasis only; these Restrictions win on any conflict.
24
+
25
+ ## Inputs
26
+ - `scope`: the task, its acceptance criteria, and the files changed.
27
+ - `inputs`: the approved plan/spec, expected behavior, verification commands.
28
+ - `sensors`: tests, build, typecheck, lint, artifact checks.
29
+
30
+ ## Outputs
31
+ - Status: Complete | Partial | Blocked
32
+ - Scope: files and criteria checked
33
+ - Evidence: command results, artifact inspection, source locations
34
+ - Findings: PASS/FAIL per criterion, gap list
35
+ - Risks and skipped checks (with reasons)
36
+ - Exact next step
37
+
38
+ ## Invocation
39
+ ### Use when
40
+ - A builder has completed a task and the mandatory verification gate must run.
41
+ - The workflow needs an independent (author != verifier) verification.
42
+ - The user asks to validate or verify a task.
43
+
44
+ ### Do not use when
45
+ - No implementation exists to verify.
46
+ - The task is docs-only with no behavioral sensors (use file-integrity level only).
47
+
48
+ ## massa-ai Integration
49
+ - Context Firewall: summarize command output; return PASS/FAIL + evidence, not raw logs.
50
+ - Verification Ladder: this agent IS the ladder; choose the cheapest sufficient evidence first.
51
+ - Massa-ai Memory: suggest durable verification-recipe memories only when a sensor pattern is reusable; main agent persists.
52
+ - Synapse: none (verification is not a repeated-search task).
53
+ - References: `references/verification-ladder.md`, `references/evidence-gate.md`.
54
+
55
+ ## Validation Sensors
56
+ - Every acceptance criterion has a PASS/FAIL verdict with evidence.
57
+ - Skipped checks have a concrete reason.
58
+ - The highest ladder level reached is reported.
59
+ - Validation assets (tests, specs, fixtures) confirmed not weakened.
60
+
61
+ ## Memory Boundary
62
+ Suggest durable memories only when a verification recipe or sensor pattern is reusable across tasks. The main agent persists. Do not persist one-off verification results (they live in `validation.md`).
@@ -78,12 +78,9 @@ next_step: <string>
78
78
  - References: `references/agent-orchestration.md`, `references/audit-report-io.md` (Judge With Debate Report Contracts).
79
79
 
80
80
  ## Model Hint
81
- This charter's `metadata.model_tier` (`deep`) is the fallback every host runs when dispatch-time
82
- model selection is unavailable. The `judge-with-debate` workflow additionally requests per-slot
83
- model diversity at dispatch time on hosts that support it — `workflows/judge-with-debate.md` is
84
- the single source for the current slot assignments, not this file. When dispatch-time selection
85
- is unavailable, every slot runs the charter default and the orchestrator records
86
- `DIVERSITY DEGRADED` per the workflow contract.
81
+ See `references/agent-orchestration.md` (Model Diversity Fallback): `metadata.model_tier`
82
+ (`deep`) is the per-slot fallback; `workflows/judge-with-debate.md` owns the live slot
83
+ assignments.
87
84
 
88
85
  ## Validation Sensors
89
86
  - Every criterion score carries an exact quotation from the artifact.
@@ -69,11 +69,8 @@ overall: weighted-mean
69
69
  - References: `references/agent-orchestration.md`, `references/audit-report-io.md` (Judge With Debate Report Contracts).
70
70
 
71
71
  ## Model Hint
72
- This charter's `metadata.model_tier` (`deep`) is the fallback every host runs when dispatch-time
73
- model selection is unavailable. The `judge-with-debate` workflow additionally requests a specific
74
- model for this slot at dispatch time on hosts that support it — `workflows/judge-with-debate.md`
75
- is the single source for the current assignment, not this file. When dispatch-time selection is
76
- unavailable, the orchestrator records a diversity warning per the workflow contract.
72
+ See `references/agent-orchestration.md` (Model Diversity Fallback): `metadata.model_tier`
73
+ (`deep`) is the fallback; `workflows/judge-with-debate.md` owns the live model assignment.
77
74
 
78
75
  ## Validation Sensors
79
76
  - 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.
@@ -10,7 +10,7 @@ readonly: true
10
10
  Answer codebase questions through the massa-ai semantic index, reading files only once the index has narrowed the target to one to three of them.
11
11
 
12
12
  ## Core Principle
13
- The user's codebase is **already indexed** by massa-ai. The first move on any question is to query the index, not to read files blindly. File reads are expensive in context; massa-ai index queries are not.
13
+ The user's codebase is **already indexed** by massa-ai. The first move on any question is to query the index, not read files blindly — file reads are expensive in context; massa-ai index queries are not.
14
14
 
15
15
  ## Responsibilities
16
16
  - Resolve the current project: run `pwd`, match the basename against `list_projects`.
package/install.sh CHANGED
@@ -249,10 +249,23 @@ if (typeof data.platforms !== "object" || data.platforms === null || Array.isArr
249
249
  data.version = 2;
250
250
  const prev = data.platforms[host];
251
251
  data.platforms[host] = { root, skillsOwner: "plugin", skills: ["massa-ai", "persona-router"] };
252
- // The whole-record replace must not drop the plugin version record a previous
253
- // successful install wrote (R2) — re-attach it.
254
- if (prev && typeof prev === "object" && !Array.isArray(prev) && prev.plugin && typeof prev.plugin === "object") {
255
- data.platforms[host].plugin = prev.plugin;
252
+ // The whole-record replace must not drop fields a previous successful install
253
+ // wrote (R2) — re-attach them. installRoute (T9) is installer-owned but
254
+ // written by a LATER step of this same install (record_plugin_version), so it
255
+ // must survive this earlier whole-record replace or the recorded route
256
+ // silently vanishes on the next skills-bundling pass. modelProfile is
257
+ // preserved defensively too, though the switch engine never targets Cursor
258
+ // (every tier resolves to inherit — hosts.ts skips it unconditionally).
259
+ if (prev && typeof prev === "object" && !Array.isArray(prev)) {
260
+ if (prev.plugin && typeof prev.plugin === "object") {
261
+ data.platforms[host].plugin = prev.plugin;
262
+ }
263
+ if (prev.modelProfile && typeof prev.modelProfile === "object") {
264
+ data.platforms[host].modelProfile = prev.modelProfile;
265
+ }
266
+ if (typeof prev.installRoute === "string") {
267
+ data.platforms[host].installRoute = prev.installRoute;
268
+ }
256
269
  }
257
270
  fs.mkdirSync(path.dirname(file), { recursive: true });
258
271
  fs.writeFileSync(file, JSON.stringify(data, null, 2) + "\n");
@@ -326,18 +339,25 @@ record_plugin_version() {
326
339
  return 0
327
340
  fi
328
341
 
329
- local version installed_at
342
+ local version installed_at route
330
343
  version="$(sed -n 's/.*"version"[[:space:]]*:[[:space:]]*"\([^"]*\)".*/\1/p' "$SCRIPT_DIR/package.json" | head -n 1)"
331
344
  installed_at="$(date -u +%Y-%m-%dT%H:%M:%SZ)"
345
+ # installRoute (T9, design F1): installer-owned, engine-read-only. Cursor
346
+ # has one install shape (file copy) and no marketplace distinction, so this
347
+ # is unconditionally "file" — recorded for data-model consistency with the
348
+ # other three hosts even though the switch engine never reads it for Cursor
349
+ # (hosts.ts skips Cursor unconditionally: every tier resolves to inherit).
350
+ # Written on EVERY install path.
351
+ route="file"
332
352
 
333
353
  # Tolerant of a corrupt/missing state file (rewrites a minimal valid one —
334
354
  # AC-8). A record-write failure warns but never fails the install: the next
335
355
  # run treats the host as unknown-version and reinstalls.
336
- "$runner" - "$HARNESS_STATE_FILE" "$HARNESS_HOST" "$CURSOR_DIR" "$version" "$installed_at" <<'NODE' || \
356
+ "$runner" - "$HARNESS_STATE_FILE" "$HARNESS_HOST" "$CURSOR_DIR" "$version" "$installed_at" "$route" <<'NODE' || \
337
357
  echo " ⚠ could not record the plugin version — next run will reinstall (unknown version)" >&2
338
358
  const fs = require("fs");
339
359
  const path = require("path");
340
- const [, , file, host, root, version, installedAt] = process.argv;
360
+ const [, , file, host, root, version, installedAt, installRoute] = process.argv;
341
361
  let data = { version: 2, platforms: {} };
342
362
  try {
343
363
  const existing = JSON.parse(fs.readFileSync(file, "utf8"));
@@ -354,6 +374,11 @@ const rec =
354
374
  ? data.platforms[host]
355
375
  : { root, skillsOwner: "plugin", skills: [] };
356
376
  rec.plugin = { version, installedAt };
377
+ // installRoute is installer-owned (like plugin above); modelProfile is NEVER
378
+ // written by any installer — the switch engine (packages/shared/src/
379
+ // profile-switch/) is its sole writer (moot for Cursor in practice, since it
380
+ // is always skipped, but the invariant holds repo-wide).
381
+ rec.installRoute = installRoute;
357
382
  data.platforms[host] = rec;
358
383
  fs.mkdirSync(path.dirname(file), { recursive: true });
359
384
  fs.writeFileSync(file, JSON.stringify(data, null, 2) + "\n");
package/package.json CHANGED
@@ -1,9 +1,10 @@
1
1
  {
2
2
  "name": "@massa-ai/cursor-plugin",
3
- "version": "1.25.0",
3
+ "version": "1.27.0",
4
4
  "description": "massa-ai plugin for Cursor — semantic code search, memory, and context compression",
5
5
  "files": [
6
6
  "agents",
7
+ "agent-profiles",
7
8
  "hooks",
8
9
  "skills",
9
10
  "install.sh",
@@ -4,7 +4,7 @@ description: Read-only debate-panel evaluator for judge-with-debate. Score an ar
4
4
  license: MIT
5
5
  metadata:
6
6
  author: S1LV4, luizgmassa
7
- version: "1.0.0"
7
+ version: "1.1.0"
8
8
  model_tier: deep
9
9
  permission: read-only
10
10
  ---
@@ -83,12 +83,9 @@ next_step: <string>
83
83
  - References: `references/agent-orchestration.md`, `references/audit-report-io.md` (Judge With Debate Report Contracts).
84
84
 
85
85
  ## Model Hint
86
- This charter's `metadata.model_tier` (`deep`) is the fallback every host runs when dispatch-time
87
- model selection is unavailable. The `judge-with-debate` workflow additionally requests per-slot
88
- model diversity at dispatch time on hosts that support it — `workflows/judge-with-debate.md` is
89
- the single source for the current slot assignments, not this file. When dispatch-time selection
90
- is unavailable, every slot runs the charter default and the orchestrator records
91
- `DIVERSITY DEGRADED` per the workflow contract.
86
+ See `references/agent-orchestration.md` (Model Diversity Fallback): `metadata.model_tier`
87
+ (`deep`) is the per-slot fallback; `workflows/judge-with-debate.md` owns the live slot
88
+ assignments.
92
89
 
93
90
  ## Validation Sensors
94
91
  - Every criterion score carries an exact quotation from the artifact.
@@ -4,7 +4,7 @@ description: Read-only evaluation-specification author for judge-with-debate. Ge
4
4
  license: MIT
5
5
  metadata:
6
6
  author: S1LV4, luizgmassa
7
- version: "1.0.0"
7
+ version: "1.1.0"
8
8
  model_tier: deep
9
9
  permission: read-only
10
10
  ---
@@ -74,11 +74,8 @@ overall: weighted-mean
74
74
  - References: `references/agent-orchestration.md`, `references/audit-report-io.md` (Judge With Debate Report Contracts).
75
75
 
76
76
  ## Model Hint
77
- This charter's `metadata.model_tier` (`deep`) is the fallback every host runs when dispatch-time
78
- model selection is unavailable. The `judge-with-debate` workflow additionally requests a specific
79
- model for this slot at dispatch time on hosts that support it — `workflows/judge-with-debate.md`
80
- is the single source for the current assignment, not this file. When dispatch-time selection is
81
- unavailable, the orchestrator records a diversity warning per the workflow contract.
77
+ See `references/agent-orchestration.md` (Model Diversity Fallback): `metadata.model_tier`
78
+ (`deep`) is the fallback; `workflows/judge-with-debate.md` owns the live model assignment.
82
79
 
83
80
  ## Validation Sensors
84
81
  - 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.
@@ -4,7 +4,7 @@ description: Code exploration specialist that leverages the massa-ai semantic in
4
4
  license: MIT
5
5
  metadata:
6
6
  author: S1LV4, luizgmassa
7
- version: "1.0.0"
7
+ version: "1.1.0"
8
8
  model_tier: deep
9
9
  permission: read-only
10
10
  tools: mcp-index
@@ -16,7 +16,7 @@ metadata:
16
16
  Answer codebase questions through the massa-ai semantic index, reading files only once the index has narrowed the target to one to three of them.
17
17
 
18
18
  ## Core Principle
19
- The user's codebase is **already indexed** by massa-ai. The first move on any question is to query the index, not to read files blindly. File reads are expensive in context; massa-ai index queries are not.
19
+ The user's codebase is **already indexed** by massa-ai. The first move on any question is to query the index, not read files blindly — file reads are expensive in context; massa-ai index queries are not.
20
20
 
21
21
  ## Responsibilities
22
22
  - Resolve the current project: run `pwd`, match the basename against `list_projects`.
@@ -312,22 +312,7 @@ Load only when a selected workflow asks for them:
312
312
 
313
313
  ## Graceful Degradation
314
314
 
315
- | Failure | Behavior |
316
- |---|---|
317
- | `recall` empty | Continue as cold start; do not invent memory. |
318
- | massa-ai server unavailable | Fall back to focused shell/file reads; keep session concept. |
319
- | Synapse unavailable | Continue with stateless search. |
320
- | Synapse prime/access mismatch | Use verified REST fallback or skip that optional step. |
321
- | index incomplete or stale | Use recall; skip search-dependent steps until ready. Graph tools (`trace_path`, `impact_analysis`, `get_architecture`) fall back to `search`/`get_references`; record reduced retrieval confidence. |
322
- | no meaningful memory | Say memory was intentionally skipped. |
323
- | memory write fails | Continue and report the unpersisted insight. |
324
- | `create_checkpoint` unavailable | Continue with `.specs/` artifact state as fallback. |
325
- | `handoff_begin` unavailable (`HANDOFFS_ENABLED=false`) | Fall back to `remember` + `.specs/` writes; record skipped handoff-table write. |
326
- | `bootstrap` unavailable | Proceed with manual `remember` calls. |
327
- | `compact_snapshot` unavailable | Continue with `compress` + `remember`; record skipped snapshot. |
328
- | code execution (`execute`/`execute_file`/`batch_execute`) unavailable | Load file into context instead; note the local-dev-only trust model still applies. |
329
- | `fetch_and_index` unavailable | Use native web fetch + manual indexing or skip external content. |
330
- | feedback reference unavailable | Continue without feedback lines; do not block the workflow. |
315
+ 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.
331
316
 
332
317
  ## Completion
333
318
 
@@ -1,6 +1,6 @@
1
1
  # ADR Authoring
2
2
 
3
- Use this reference from `workflows/adr.md`. It defines how massa-ai creates Architecture Decision Records without delegating orchestration to another ADR skill.
3
+ Use from `workflows/adr.md`. Defines how massa-ai creates Architecture Decision Records without delegating orchestration to another ADR skill.
4
4
 
5
5
  ## Core Rule
6
6
 
@@ -15,9 +15,9 @@ Route matrix:
15
15
  | Direction is selected and implementation architecture/contracts/rollout need a blueprint | TDD |
16
16
  | Requirements, design, tasks, and execution all need staged approval | Spec-driven |
17
17
 
18
- Source relevance requires the source to name at least one target, constraint, risk, dependency, public contract, rejected option, decision owner, or rollout/rollback consequence for this ADR. Sources that provide only style or adjacent context are examples, not facts.
18
+ Source relevance requires the source to name at least one target, constraint, risk, dependency, public contract, rejected option, decision owner, or rollout/rollback consequence for this ADR. Sources providing only style or adjacent context are examples, not facts.
19
19
 
20
- Do not guess. Missing source facts become questions, source gaps, or a workflow route change.
20
+ Do not guess — missing source facts become questions, source gaps, or a workflow route change.
21
21
 
22
22
  ## Source Order
23
23
 
@@ -1,6 +1,6 @@
1
1
  # Agent Orchestration
2
2
 
3
- Use this reference when a workflow benefits from isolated context, parallel work, or independent verification.
3
+ Use when a workflow benefits from isolated context, parallel work, or independent verification.
4
4
 
5
5
  Load `references/context-firewall.md` first when the delegated work may involve verbose logs, snapshots, generated reports, external research, or broad source inspection.
6
6
 
@@ -23,7 +23,7 @@ Subagents do bounded work only. Do not delegate everything.
23
23
 
24
24
  Tokens are spent once; context shapes every decision that follows. The orchestrator's
25
25
  working memory is the asset every rule below protects — delegation exists to keep
26
- disposable reasoning out of the main thread, not only to parallelize.
26
+ disposable reasoning out of the main thread, not just to parallelize.
27
27
 
28
28
  - **Never poll a running subagent for status, and never ingest a subagent's raw
29
29
  transcript, JSONL, or intermediate reasoning — running or completed.** The
@@ -98,6 +98,21 @@ installed, spawning forbidden by platform policy, or the host returns an unknown
98
98
  delegated scope locally against the same output contract, and report the skipped
99
99
  delegation with its reason in the Evidence Gate.
100
100
 
101
+ ## Model Diversity Fallback
102
+
103
+ Applies to any charter whose `metadata.model_tier` is a fallback and whose
104
+ dispatching workflow additionally requests per-invocation model diversity at
105
+ dispatch time (e.g. `judge` — 3 parallel slots; `meta-judge` — one slot).
106
+
107
+ - The charter's `metadata.model_tier` is the fallback every host runs when
108
+ dispatch-time model selection is unavailable.
109
+ - The dispatching workflow (e.g. `workflows/judge-with-debate.md`) is the
110
+ single source for the current slot/model assignment, not the charter file.
111
+ - When dispatch-time selection is unavailable, every affected slot runs the
112
+ charter default, and the orchestrator records `DIVERSITY DEGRADED`
113
+ (multi-slot) or an equivalent diversity warning (single-slot) per the
114
+ dispatching workflow's own contract.
115
+
101
116
  ## Roles
102
117
 
103
118
  Use the role names in prompts and memory tags; use the host agent names to
@@ -1,6 +1,6 @@
1
1
  # Architecture Coupling Lens
2
2
 
3
- Use this detail reference when an architecture audit or execution task needs dependency health, dependency direction, integration cost, or coupling reduction.
3
+ Use when an architecture audit or execution task needs dependency health, dependency direction, integration cost, or coupling reduction.
4
4
 
5
5
  ## Contents
6
6
 
@@ -1,6 +1,6 @@
1
1
  # Architecture Deepening Lens
2
2
 
3
- Use this detail reference when an architecture audit or execution task needs module depth, seams, adapters, testability, locality, or AI-navigability analysis.
3
+ Use when an architecture audit or execution task needs module depth, seams, adapters, testability, locality, or AI-navigability analysis.
4
4
 
5
5
  ## Contents
6
6
 
@@ -1,6 +1,6 @@
1
1
  # Architecture Domain Lens
2
2
 
3
- Use this detail reference when an architecture audit or execution task needs domain boundaries, bounded contexts, subdomain classification, ubiquitous language, or cohesion analysis.
3
+ Use when an architecture audit or execution task needs domain boundaries, bounded contexts, subdomain classification, ubiquitous language, or cohesion analysis.
4
4
 
5
5
  ## Contents
6
6
 
@@ -1,6 +1,6 @@
1
1
  # Architecture Lenses
2
2
 
3
- Use this reference for architecture audits, architecture-focused reviews, and refactor planning. It is the shared index and vocabulary guard; load the detail references only when a workflow needs that lens:
3
+ Use for architecture audits, architecture-focused reviews, and refactor planning. Shared index and vocabulary guard; load the detail references only when a workflow needs that lens:
4
4
 
5
5
  - `references/architecture-domain-lens.md` for bounded contexts, ubiquitous language, subdomain classification, cohesion, and integration patterns.
6
6
  - `references/architecture-coupling-lens.md` for dependency graphs, strength/distance/volatility, dependency direction, and contract health.
@@ -1,6 +1,6 @@
1
1
  # Audit Report I/O
2
2
 
3
- Use this reference from audit workflows before writing reports and from execution workflows before report-driven changes.
3
+ Use from audit workflows before writing reports and from execution workflows before report-driven changes.
4
4
 
5
5
  ## Report Paths
6
6
 
@@ -557,10 +557,40 @@ Before editing:
557
557
 
558
558
  - Verify workflow, project, target, target focus, scope, base/head, and resolved files match the current request.
559
559
  - Reinspect each finding's current location and evidence. Stop or re-audit when schema v2 drift rules invalidate any selected finding.
560
- - Verify every finding has common and workflow-specific fields plus the correct ID form.
560
+ - Verify every finding has common and workflow-specific fields plus the correct ID form (deterministic backing below).
561
561
  - For implementation reports, require source-qualified IDs and child-lens fields.
562
562
  - For mobile Figma reports, re-read the Figma node and reject stale design/source/configuration evidence.
563
563
  - Ignore ruled-out candidates, skipped checks, no-finding summaries, `NOT EVALUATED` rows, constraint deviations, and low-confidence suspects unless the user explicitly changes scope after revalidation.
564
564
  - Build verification from report suggestions plus current project sensors.
565
565
 
566
566
  Do not execute from chat summaries, inline comments, screenshots alone, or remembered audit content. The saved markdown report is the source of truth.
567
+
568
+ ## Deterministic Validation
569
+
570
+ `skills/massa-ai/scripts/validate_audit_report.ts` replaces the model-run
571
+ metadata/ID checklist with a scripted check, run before any `*-fix` workflow
572
+ edits code:
573
+
574
+ ```bash
575
+ bun skills/massa-ai/scripts/validate_audit_report.ts <path-to-report.md> --family <family>
576
+ ```
577
+
578
+ `--family` is one of `architecture`, `bugs`, `code-quality`, `security`,
579
+ `requirements`, `tests`, `maestro`, `mobile-figma`, or `implementation`
580
+ (auto-detected from the report's `Workflow:` field when omitted). It checks:
581
+
582
+ - required freshness-header metadata fields for that family (common fields
583
+ plus family-specific extras — `Requirements Source` for single-lens and
584
+ implementation reports; `Scenario Source`/`Maestro CLI`/`Device/Emulator
585
+ Readiness` for Maestro; the mobile Figma identity fields for Mobile Figma)
586
+ - finding-ID format (`PREFIX-N`, or `<Area>/<PREFIX>-N` for the
587
+ implementation composite family)
588
+ - Area<->Prefix table membership for implementation reports (rejects an
589
+ unrecognized Area, a mismatched Area/Prefix pair, and any raw `SONAR-*`
590
+ executable ID)
591
+ - finding-ID uniqueness and gap-free per-prefix/per-area sequencing
592
+
593
+ A non-zero exit blocks editing. The script does **not** re-check drift
594
+ against current source, table-structure presence (Target Surface Matrix,
595
+ Maestro Run Matrix, etc.), or Figma-node freshness — those stay a manual
596
+ step per the "Before editing" list above.