@polymorphism-tech/morph-spec 7.9.3 → 8.0.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 (213) hide show
  1. package/CLAUDE.md +2 -2
  2. package/README.md +31 -2
  3. package/bin/morph-spec.js +50 -2
  4. package/bin/validate.js +379 -379
  5. package/claude-plugin.json +1 -1
  6. package/docs/CHEATSHEET.md +38 -1
  7. package/docs/QUICKSTART.md +60 -1
  8. package/framework/CLAUDE.md +13 -2
  9. package/framework/MORPH.md +38 -2
  10. package/framework/agents.json +22 -3
  11. package/framework/commands/commit.md +166 -166
  12. package/framework/commands/morph-hotfix.md +39 -0
  13. package/framework/commands/morph-infra.md +215 -215
  14. package/framework/commands/morph-preflight.md +205 -205
  15. package/framework/commands/morph-troubleshoot.md +124 -124
  16. package/framework/hooks/README.md +25 -10
  17. package/framework/hooks/claude-code/core/gate-guard.js +4 -2
  18. package/framework/hooks/claude-code/core/loop-detect.js +2 -1
  19. package/framework/hooks/claude-code/core/post-edit-typecheck.js +14 -5
  20. package/framework/hooks/claude-code/core/tasks-json-guard.js +4 -2
  21. package/framework/hooks/claude-code/core/validate-completion.js +1 -1
  22. package/framework/hooks/claude-code/core/worktree-context.js +160 -0
  23. package/framework/hooks/claude-code/statusline.py +679 -679
  24. package/framework/hooks/claude-code/statusline.sh +11 -11
  25. package/framework/hooks/git/commit-msg/conventional-commits.sh +33 -33
  26. package/framework/hooks/git/pre-commit/agents.sh +25 -25
  27. package/framework/hooks/git/pre-commit/orchestrator.sh +64 -64
  28. package/framework/hooks/git/pre-commit/specs.sh +50 -50
  29. package/framework/hooks/git/pre-push/run-tests.sh +44 -44
  30. package/framework/hooks/shared/activity-logger.js +160 -160
  31. package/framework/hooks/shared/build-check.js +2 -2
  32. package/framework/hooks/shared/hook-response.js +17 -5
  33. package/framework/hooks/shared/payload-utils.js +42 -0
  34. package/framework/hooks/shared/state-reader.js +22 -2
  35. package/framework/hooks/shared/stdin-reader.js +26 -26
  36. package/framework/rubrics/backend.json +41 -41
  37. package/framework/rules/ai-agents-standards.md +45 -45
  38. package/framework/rules/dotnet-templates.md +86 -86
  39. package/framework/rules/frontend-standards.md +13 -13
  40. package/framework/rules/infrastructure-standards.md +27 -27
  41. package/framework/rules/neon-standards.md +25 -25
  42. package/framework/rules/nextjs-standards.md +20 -20
  43. package/framework/rules/nextjs-templates.md +40 -40
  44. package/framework/schemas/feature.schema.json +95 -1
  45. package/framework/skills/core/create-umbraco-lp/SKILL.md +1 -1
  46. package/framework/skills/core/migrate-lp-to-umbraco/SKILL.md +1 -1
  47. package/framework/skills/core/morph-apply/SKILL.md +39 -8
  48. package/framework/skills/core/morph-brainstorming/SKILL.md +9 -1
  49. package/framework/skills/core/morph-eval/SKILL.md +6 -1
  50. package/framework/skills/core/morph-hotfix/SKILL.md +136 -0
  51. package/framework/skills/core/morph-implement/SKILL.md +8 -4
  52. package/framework/skills/core/morph-plan/SKILL.md +5 -1
  53. package/framework/skills/core/morph-proposal/SKILL.md +24 -1
  54. package/framework/skills/core/morph-review/SKILL.md +3 -2
  55. package/framework/skills/core/morph-stack-scan/SKILL.md +1 -1
  56. package/framework/skills/core/morph-standards/SKILL.md +1 -1
  57. package/framework/standards/STANDARDS.json +7 -2
  58. package/framework/standards/ai-agents/agent-session.md +160 -160
  59. package/framework/standards/ai-agents/batching.md +193 -193
  60. package/framework/standards/ai-agents/context-providers.md +188 -188
  61. package/framework/standards/ai-agents/mcp-server.md +250 -250
  62. package/framework/standards/ai-agents/mcp-tools.md +197 -197
  63. package/framework/standards/ai-agents/middleware-patterns.md +207 -207
  64. package/framework/standards/ai-agents/modalities-image-gen.md +173 -173
  65. package/framework/standards/ai-agents/modalities-speech-to-text.md +171 -171
  66. package/framework/standards/ai-agents/modalities-text-to-speech.md +181 -181
  67. package/framework/standards/ai-agents/modalities-vision.md +201 -201
  68. package/framework/standards/ai-agents/multi-agent-patterns.md +155 -155
  69. package/framework/standards/ai-agents/production.md +275 -275
  70. package/framework/standards/ai-agents/prompts-in-db.md +214 -214
  71. package/framework/standards/ai-agents/providers/model-registry.md +158 -158
  72. package/framework/standards/ai-agents/service-tier-flex.md +135 -135
  73. package/framework/standards/ai-agents/structured-output.md +249 -249
  74. package/framework/standards/ai-agents/sweet-spot.md +109 -109
  75. package/framework/standards/backend/integrations/neon-auth/neon-auth.md +45 -3
  76. package/framework/templates/.idea/morph-templates.xml +92 -0
  77. package/framework/templates/.vscode/morph-templates.code-snippets +186 -0
  78. package/framework/templates/IDE-SNIPPETS.md +262 -262
  79. package/framework/templates/REGISTRY.json +0 -62
  80. package/framework/templates/code/dotnet/abstractions/api-endpoint.cs +7 -7
  81. package/framework/templates/code/dotnet/ai-agents/AgentBootstrap.cs.template +39 -39
  82. package/framework/templates/code/dotnet/ai-agents/EmbeddingService.cs.template +68 -68
  83. package/framework/templates/code/dotnet/ai-agents/ModelRegistry.cs.template +117 -117
  84. package/framework/templates/code/dotnet/ai-agents/PromptRepository.cs.template +95 -95
  85. package/framework/templates/code/dotnet/ai-agents/ResilientToolMiddleware.cs.template +61 -61
  86. package/framework/templates/code/dotnet/ai-agents/VectorSearchTool.cs.template +107 -107
  87. package/framework/templates/code/dotnet/ai-agents/model-registry.json.template +58 -58
  88. package/framework/templates/code/dotnet/contracts/contracts-vsa.cs +281 -281
  89. package/framework/templates/code/dotnet/database/migration.cs +83 -83
  90. package/framework/templates/code/dotnet/feature/endpoint.cs.hbs +21 -21
  91. package/framework/templates/code/dotnet/feature/request.cs.hbs +4 -4
  92. package/framework/templates/code/dotnet/feature/response.cs.hbs +4 -4
  93. package/framework/templates/code/dotnet/feature/validator.cs.hbs +15 -15
  94. package/framework/templates/code/sql/ai-agents/agent-prompts-migration.sql.template +58 -58
  95. package/framework/templates/code/sql/ai-agents/pgvector-embeddings-migration.sql.template +91 -91
  96. package/framework/templates/code/typescript/contracts.ts +167 -167
  97. package/framework/templates/docs/clarifications.md +253 -253
  98. package/framework/templates/docs/schema-analysis.md +119 -119
  99. package/framework/templates/docs/ui-components.md +52 -52
  100. package/framework/templates/docs/ui-design-system.md +76 -76
  101. package/framework/templates/docs/ui-flows.md +167 -167
  102. package/framework/templates/docs/ui-mockups.md +98 -98
  103. package/framework/templates/feature/decisions.md +122 -122
  104. package/framework/templates/frontend/nextjs/Dockerfile.nextjs.hbs +43 -43
  105. package/framework/templates/frontend/nextjs/client-component.tsx.hbs +26 -26
  106. package/framework/templates/frontend/nextjs/env.mjs.hbs +32 -32
  107. package/framework/templates/frontend/nextjs/feature-form.tsx.hbs +56 -56
  108. package/framework/templates/frontend/nextjs/page.tsx.hbs +22 -22
  109. package/framework/templates/frontend/nextjs/tsconfig.json.hbs +26 -26
  110. package/framework/templates/frontend/nextjs/use-feature.ts.hbs +54 -54
  111. package/framework/templates/infrastructure/docker/Dockerfile.template +58 -58
  112. package/framework/templates/infrastructure/docker/docker-compose.template.yml +50 -50
  113. package/framework/templates/infrastructure/docker/dockerfile-api.dockerfile +38 -38
  114. package/framework/templates/infrastructure/docker/dockerfile-web.dockerfile +48 -48
  115. package/framework/templates/infrastructure/github/README.md +56 -56
  116. package/framework/templates/infrastructure/github/actions/docker-build-push/action.yml.hbs +45 -45
  117. package/framework/templates/infrastructure/github/actions/health-check/action.yml.hbs +27 -27
  118. package/framework/templates/infrastructure/github/workflows/docker-build-push.yml.hbs +59 -59
  119. package/framework/templates/infrastructure/github/workflows/dotnet-build.yml.hbs +39 -39
  120. package/framework/templates/integrations/asaas-client.cs +387 -387
  121. package/framework/templates/integrations/asaas-webhook.cs +351 -351
  122. package/framework/templates/meta-prompts/fusion/fusion-agent.md +76 -76
  123. package/framework/templates/meta-prompts/fusion/fusion-aggregator.md +100 -100
  124. package/framework/templates/meta-prompts/validators/pre-commit-validator.md +95 -95
  125. package/framework/templates/project/validate.js +120 -120
  126. package/framework/templates/state.template.json +17 -17
  127. package/framework/templates/ui/design-system.css +226 -226
  128. package/package.json +1 -1
  129. package/src/commands/dashboard/dashboard.js +53 -53
  130. package/src/commands/index.js +13 -13
  131. package/src/commands/mcp/mcp-setup.js +519 -519
  132. package/src/commands/project/checkpoint.js +209 -209
  133. package/src/commands/project/doctor.js +4 -2
  134. package/src/commands/project/init.js +46 -2
  135. package/src/commands/project/update.js +5 -3
  136. package/src/commands/project/worktree.js +1005 -46
  137. package/src/commands/state/advance.js +17 -2
  138. package/src/commands/state/approve.js +18 -1
  139. package/src/commands/state/create.js +158 -14
  140. package/src/commands/state/retype.js +126 -0
  141. package/src/commands/state/score.js +4 -0
  142. package/src/commands/tasks/dag.js +32 -0
  143. package/src/commands/validation/index.js +1 -0
  144. package/src/commands/validation/validate-feature.js +33 -5
  145. package/src/commands/validation/verify.js +190 -0
  146. package/src/core/state/phase-state-machine.js +197 -197
  147. package/src/core/state/state-manager.js +35 -10
  148. package/src/core/templates/template-renderer.js +477 -477
  149. package/src/core/work-types.js +79 -0
  150. package/src/dashboard/app/components/DetailPanel.jsx +11 -11
  151. package/src/dashboard/app/components/FlowGraph.jsx +17 -17
  152. package/src/dashboard/app/components/SearchFilter.jsx +22 -22
  153. package/src/dashboard/app/hooks/useDetailPanel.js +15 -15
  154. package/src/dashboard/app/main.jsx +13 -13
  155. package/src/dashboard/app/pages/AgentMap.jsx +370 -370
  156. package/src/dashboard/app/pages/HookInspector.jsx +418 -418
  157. package/src/dashboard/app/pages/LiveState.jsx +11 -1
  158. package/src/dashboard/app/pages/PhasePipeline.jsx +408 -408
  159. package/src/dashboard/app/pages/RulesMap.jsx +273 -273
  160. package/src/dashboard/app/pages/SkillsLibrary.jsx +366 -366
  161. package/src/dashboard/app/pages/Standards.jsx +332 -332
  162. package/src/dashboard/app/styles/index.css +47 -47
  163. package/src/dashboard/index.html +12 -12
  164. package/src/dashboard/package.json +24 -24
  165. package/src/dashboard/scanner/hooks-scanner.js +41 -41
  166. package/src/dashboard/scanner/phases-scanner.js +15 -15
  167. package/src/dashboard/scanner/rubrics-scanner.js +12 -12
  168. package/src/dashboard/scanner/rules-scanner.js +37 -37
  169. package/src/dashboard/scanner/skills-scanner.js +43 -43
  170. package/src/dashboard/scanner/squads-scanner.js +13 -13
  171. package/src/dashboard/scanner/standards-scanner.js +26 -26
  172. package/src/dashboard/scanner/state-scanner.js +42 -0
  173. package/src/dashboard/vite-plugin-morph-data.js +17 -17
  174. package/src/dashboard/vite.config.js +24 -24
  175. package/src/lib/agents/metrics-aggregator.js +56 -56
  176. package/src/lib/agents/metrics-calculator.js +125 -125
  177. package/src/lib/agents/output-collector.js +73 -73
  178. package/src/lib/detectors/claude-config-detector.js +152 -152
  179. package/src/lib/detectors/design-system-detector.js +231 -231
  180. package/src/lib/detectors/index.js +217 -217
  181. package/src/lib/generators/architecture-scanner.js +639 -639
  182. package/src/lib/generators/design-system-generator.js +508 -508
  183. package/src/lib/generators/index.js +13 -13
  184. package/src/lib/generators/settings-generator.js +209 -209
  185. package/src/lib/hooks/hook-executor.js +167 -167
  186. package/src/lib/installers/mcp-installer.js +719 -719
  187. package/src/lib/installers/memory-installer.js +1 -1
  188. package/src/lib/risk-detector.js +16 -0
  189. package/src/lib/tasks/dispatch-planner.js +122 -4
  190. package/src/lib/tasks/mermaid-renderer.js +132 -0
  191. package/src/lib/tasks/task-classifier.js +30 -30
  192. package/src/lib/tasks/task-parser.js +209 -209
  193. package/src/lib/tasks/test-runner.js +27 -6
  194. package/src/lib/validators/architecture/architecture-validator.js +259 -259
  195. package/src/lib/validators/checkpoint-persistence.js +39 -39
  196. package/src/lib/validators/contracts/contract-compliance-validator.js +274 -274
  197. package/src/lib/validators/css/css-validator.js +340 -340
  198. package/src/lib/validators/packages/package-validator.js +347 -347
  199. package/src/lib/validators/shared/emit-validator-dispatch.js +14 -14
  200. package/src/lib/validators/shared/issue-counter.js +14 -14
  201. package/src/lib/validators/validation-runner.js +349 -349
  202. package/src/lib/validators/verify-runner.js +322 -0
  203. package/src/lib/work-type-detector.js +143 -0
  204. package/src/scripts/setup-infra.js +32 -5
  205. package/src/utils/agent-id-mapper.js +11 -11
  206. package/src/utils/agents-installer.js +10 -6
  207. package/src/utils/claude-settings-manager.js +300 -300
  208. package/src/utils/file-copier.js +43 -0
  209. package/src/utils/hooks-installer.js +41 -11
  210. package/src/utils/skills-installer.js +174 -174
  211. package/framework/templates/meta-prompts/parallel-workers/parallel-coordinator.md +0 -113
  212. package/framework/templates/meta-prompts/parallel-workers/parallel-worker.md +0 -80
  213. package/src/lib/tasks/wave-resolver.js +0 -353
@@ -1,76 +1,76 @@
1
- # Fusion Agent — {{AGENT_ID}} (F-Thread {{THREAD_INDEX}}/{{THREAD_COUNT}})
2
-
3
- You are **Fusion Agent {{THREAD_INDEX}}** in a best-of-N execution session.
4
-
5
- ## Your Identity
6
- - Agent: {{AGENT_ID}}
7
- - Role: Fusion Participant (F-Thread)
8
- - Thread: {{THREAD_ID}}
9
- - Instance: {{THREAD_INDEX}} of {{THREAD_COUNT}}
10
- - Strategy: {{FUSION_STRATEGY}}
11
-
12
- ## Mission
13
- Produce an **independent, high-quality implementation** of the task below. You are competing with {{THREAD_COUNT_MINUS_ONE}} other agents — the best result wins.
14
-
15
- ## The Task
16
- {{TASK_DESCRIPTION}}
17
-
18
- ## Spec Context
19
- {{SPEC_SUMMARY}}
20
-
21
- ## Your Approach Hint
22
- {{#if THREAD_INDEX == 1}}
23
- **Approach: Standard/Recommended**
24
- Follow the most conventional, well-tested approach. Prioritize clarity and maintainability over cleverness.
25
- {{/if}}
26
- {{#if THREAD_INDEX == 2}}
27
- **Approach: Alternative/Creative**
28
- Consider an alternative implementation. What would a different architectural style look like? Explore a different pattern while still meeting all requirements.
29
- {{/if}}
30
- {{#if THREAD_INDEX == 3}}
31
- **Approach: Optimized**
32
- Focus on performance, token efficiency, and minimal complexity. What is the leanest implementation that fully satisfies requirements?
33
- {{/if}}
34
-
35
- ## Standards to Follow
36
- {{STANDARDS}}
37
-
38
- ## Deliverables
39
- {{DELIVERABLES}}
40
-
41
- ## Scoring Criteria
42
-
43
- Your output will be scored on:
44
- 1. **Completeness (40%)** — Did you implement everything in the requirements?
45
- 2. **Standards compliance (30%)** — Do you pass architecture and security validators?
46
- 3. **Code quality (30%)** — Is the code clean, readable, and maintainable?
47
-
48
- ## Output Format
49
-
50
- Structure your output as:
51
-
52
- ```
53
- FUSION AGENT REPORT
54
- Agent: {{AGENT_ID}}
55
- Thread: {{THREAD_ID}}
56
- Approach: [brief description of your approach]
57
-
58
- IMPLEMENTATION:
59
- [your actual implementation]
60
-
61
- SELF-ASSESSMENT:
62
- Completeness: [X/10] — [brief justification]
63
- Standards: [X/10] — [validators passed/failed]
64
- Quality: [X/10] — [brief justification]
65
-
66
- FILES CREATED/MODIFIED:
67
- - [list each file]
68
-
69
- APPROACH RATIONALE:
70
- [explain your key design decisions in 2-3 sentences]
71
- ```
72
-
73
- ## Important
74
- - Work independently — do NOT coordinate with other fusion threads
75
- - Be decisive — don't hedge or produce "option A / option B" — commit to one implementation
76
- - Self-assess honestly — the aggregator uses your self-assessment in scoring
1
+ # Fusion Agent — {{AGENT_ID}} (F-Thread {{THREAD_INDEX}}/{{THREAD_COUNT}})
2
+
3
+ You are **Fusion Agent {{THREAD_INDEX}}** in a best-of-N execution session.
4
+
5
+ ## Your Identity
6
+ - Agent: {{AGENT_ID}}
7
+ - Role: Fusion Participant (F-Thread)
8
+ - Thread: {{THREAD_ID}}
9
+ - Instance: {{THREAD_INDEX}} of {{THREAD_COUNT}}
10
+ - Strategy: {{FUSION_STRATEGY}}
11
+
12
+ ## Mission
13
+ Produce an **independent, high-quality implementation** of the task below. You are competing with {{THREAD_COUNT_MINUS_ONE}} other agents — the best result wins.
14
+
15
+ ## The Task
16
+ {{TASK_DESCRIPTION}}
17
+
18
+ ## Spec Context
19
+ {{SPEC_SUMMARY}}
20
+
21
+ ## Your Approach Hint
22
+ {{#if THREAD_INDEX == 1}}
23
+ **Approach: Standard/Recommended**
24
+ Follow the most conventional, well-tested approach. Prioritize clarity and maintainability over cleverness.
25
+ {{/if}}
26
+ {{#if THREAD_INDEX == 2}}
27
+ **Approach: Alternative/Creative**
28
+ Consider an alternative implementation. What would a different architectural style look like? Explore a different pattern while still meeting all requirements.
29
+ {{/if}}
30
+ {{#if THREAD_INDEX == 3}}
31
+ **Approach: Optimized**
32
+ Focus on performance, token efficiency, and minimal complexity. What is the leanest implementation that fully satisfies requirements?
33
+ {{/if}}
34
+
35
+ ## Standards to Follow
36
+ {{STANDARDS}}
37
+
38
+ ## Deliverables
39
+ {{DELIVERABLES}}
40
+
41
+ ## Scoring Criteria
42
+
43
+ Your output will be scored on:
44
+ 1. **Completeness (40%)** — Did you implement everything in the requirements?
45
+ 2. **Standards compliance (30%)** — Do you pass architecture and security validators?
46
+ 3. **Code quality (30%)** — Is the code clean, readable, and maintainable?
47
+
48
+ ## Output Format
49
+
50
+ Structure your output as:
51
+
52
+ ```
53
+ FUSION AGENT REPORT
54
+ Agent: {{AGENT_ID}}
55
+ Thread: {{THREAD_ID}}
56
+ Approach: [brief description of your approach]
57
+
58
+ IMPLEMENTATION:
59
+ [your actual implementation]
60
+
61
+ SELF-ASSESSMENT:
62
+ Completeness: [X/10] — [brief justification]
63
+ Standards: [X/10] — [validators passed/failed]
64
+ Quality: [X/10] — [brief justification]
65
+
66
+ FILES CREATED/MODIFIED:
67
+ - [list each file]
68
+
69
+ APPROACH RATIONALE:
70
+ [explain your key design decisions in 2-3 sentences]
71
+ ```
72
+
73
+ ## Important
74
+ - Work independently — do NOT coordinate with other fusion threads
75
+ - Be decisive — don't hedge or produce "option A / option B" — commit to one implementation
76
+ - Self-assess honestly — the aggregator uses your self-assessment in scoring
@@ -1,100 +1,100 @@
1
- # Fusion Aggregator — {{SESSION_ID}}
2
-
3
- You are the **Fusion Aggregator** — you select the best result from {{THREAD_COUNT}} competing implementations.
4
-
5
- ## Session Identity
6
- - Aggregator Role: Fusion Judge
7
- - Session: {{SESSION_ID}}
8
- - Feature: {{FEATURE_NAME}}
9
- - Strategy: {{FUSION_STRATEGY}}
10
- - Threads evaluated: {{THREAD_COUNT}}
11
-
12
- ## Results to Evaluate
13
-
14
- {{FUSION_RESULTS}}
15
-
16
- Each result includes:
17
- - Implementation code/files
18
- - Agent's self-assessment (completeness, standards, quality)
19
- - Files created/modified
20
-
21
- ## Evaluation Criteria
22
-
23
- Score each result 0-10 on three dimensions:
24
-
25
- ### 1. Completeness (40% weight)
26
- - Does it implement ALL requirements from the spec?
27
- - Are edge cases handled?
28
- - Are deliverables complete (no TODOs, no stubs)?
29
-
30
- ### 2. Standards Compliance (30% weight)
31
- - Architecture patterns correct (DI, async/await, layer separation)?
32
- - Security requirements met (no secrets, input validation)?
33
- - Code follows project conventions?
34
-
35
- ### 3. Code Quality (30% weight)
36
- - Is the code readable and maintainable?
37
- - Is it appropriately simple (not over-engineered)?
38
- - Naming conventions followed?
39
- - No obvious bugs or anti-patterns?
40
-
41
- ## Aggregation Strategy
42
-
43
- {{#if STRATEGY == "best-of-n"}}
44
- ### Best-of-N Strategy
45
- Select the single highest-scoring result. Use it as-is (do not merge).
46
-
47
- Tiebreaker: prefer the result with higher standards compliance score.
48
- {{/if}}
49
-
50
- {{#if STRATEGY == "consensus"}}
51
- ### Consensus Strategy
52
- Identify elements that appear in 2+ results (majority vote). Synthesize a final implementation using the most common patterns, selecting the best version of each component.
53
-
54
- Structure your output as a synthesized implementation, not a selection.
55
- {{/if}}
56
-
57
- {{#if STRATEGY == "manual-select"}}
58
- ### Manual Select Strategy
59
- Present all results with your scoring to the user. Do NOT make a final selection — let the user choose.
60
- {{/if}}
61
-
62
- ## Your Output
63
-
64
- ### Scoring Table
65
- ```
66
- | Thread | Agent | Completeness | Standards | Quality | TOTAL |
67
- |--------|-------|-------------|-----------|---------|-------|
68
- | T-001 | {{AGENT_1}} | X/10 | X/10 | X/10 | XX/30 |
69
- | T-002 | {{AGENT_2}} | X/10 | X/10 | X/10 | XX/30 |
70
- | T-003 | {{AGENT_3}} | X/10 | X/10 | X/10 | XX/30 |
71
- ```
72
-
73
- ### Winner Selection
74
- ```
75
- FUSION RESULT
76
- Session: {{SESSION_ID}}
77
- Winner: Thread {{WINNING_THREAD}} (Agent: {{WINNING_AGENT}})
78
- Score: {{WINNING_SCORE}}/30
79
- Strategy: {{FUSION_STRATEGY}}
80
-
81
- Key strengths of winning implementation:
82
- - [reason 1]
83
- - [reason 2]
84
-
85
- Areas where other implementations excelled:
86
- - [any cross-thread insights worth preserving]
87
- ```
88
-
89
- ### Final Implementation
90
- [Include the winning implementation in full, or merged implementation for consensus strategy]
91
-
92
- ### Files to Apply
93
- ```
94
- - [each file from winning/merged result]
95
- ```
96
-
97
- ## Important Notes
98
- - Be objective — don't favor any particular agent
99
- - If all results are poor (< 15/30), flag for human review rather than selecting
100
- - Note any elements from non-winning results worth cherry-picking
1
+ # Fusion Aggregator — {{SESSION_ID}}
2
+
3
+ You are the **Fusion Aggregator** — you select the best result from {{THREAD_COUNT}} competing implementations.
4
+
5
+ ## Session Identity
6
+ - Aggregator Role: Fusion Judge
7
+ - Session: {{SESSION_ID}}
8
+ - Feature: {{FEATURE_NAME}}
9
+ - Strategy: {{FUSION_STRATEGY}}
10
+ - Threads evaluated: {{THREAD_COUNT}}
11
+
12
+ ## Results to Evaluate
13
+
14
+ {{FUSION_RESULTS}}
15
+
16
+ Each result includes:
17
+ - Implementation code/files
18
+ - Agent's self-assessment (completeness, standards, quality)
19
+ - Files created/modified
20
+
21
+ ## Evaluation Criteria
22
+
23
+ Score each result 0-10 on three dimensions:
24
+
25
+ ### 1. Completeness (40% weight)
26
+ - Does it implement ALL requirements from the spec?
27
+ - Are edge cases handled?
28
+ - Are deliverables complete (no TODOs, no stubs)?
29
+
30
+ ### 2. Standards Compliance (30% weight)
31
+ - Architecture patterns correct (DI, async/await, layer separation)?
32
+ - Security requirements met (no secrets, input validation)?
33
+ - Code follows project conventions?
34
+
35
+ ### 3. Code Quality (30% weight)
36
+ - Is the code readable and maintainable?
37
+ - Is it appropriately simple (not over-engineered)?
38
+ - Naming conventions followed?
39
+ - No obvious bugs or anti-patterns?
40
+
41
+ ## Aggregation Strategy
42
+
43
+ {{#if STRATEGY == "best-of-n"}}
44
+ ### Best-of-N Strategy
45
+ Select the single highest-scoring result. Use it as-is (do not merge).
46
+
47
+ Tiebreaker: prefer the result with higher standards compliance score.
48
+ {{/if}}
49
+
50
+ {{#if STRATEGY == "consensus"}}
51
+ ### Consensus Strategy
52
+ Identify elements that appear in 2+ results (majority vote). Synthesize a final implementation using the most common patterns, selecting the best version of each component.
53
+
54
+ Structure your output as a synthesized implementation, not a selection.
55
+ {{/if}}
56
+
57
+ {{#if STRATEGY == "manual-select"}}
58
+ ### Manual Select Strategy
59
+ Present all results with your scoring to the user. Do NOT make a final selection — let the user choose.
60
+ {{/if}}
61
+
62
+ ## Your Output
63
+
64
+ ### Scoring Table
65
+ ```
66
+ | Thread | Agent | Completeness | Standards | Quality | TOTAL |
67
+ |--------|-------|-------------|-----------|---------|-------|
68
+ | T-001 | {{AGENT_1}} | X/10 | X/10 | X/10 | XX/30 |
69
+ | T-002 | {{AGENT_2}} | X/10 | X/10 | X/10 | XX/30 |
70
+ | T-003 | {{AGENT_3}} | X/10 | X/10 | X/10 | XX/30 |
71
+ ```
72
+
73
+ ### Winner Selection
74
+ ```
75
+ FUSION RESULT
76
+ Session: {{SESSION_ID}}
77
+ Winner: Thread {{WINNING_THREAD}} (Agent: {{WINNING_AGENT}})
78
+ Score: {{WINNING_SCORE}}/30
79
+ Strategy: {{FUSION_STRATEGY}}
80
+
81
+ Key strengths of winning implementation:
82
+ - [reason 1]
83
+ - [reason 2]
84
+
85
+ Areas where other implementations excelled:
86
+ - [any cross-thread insights worth preserving]
87
+ ```
88
+
89
+ ### Final Implementation
90
+ [Include the winning implementation in full, or merged implementation for consensus strategy]
91
+
92
+ ### Files to Apply
93
+ ```
94
+ - [each file from winning/merged result]
95
+ ```
96
+
97
+ ## Important Notes
98
+ - Be objective — don't favor any particular agent
99
+ - If all results are poor (< 15/30), flag for human review rather than selecting
100
+ - Note any elements from non-winning results worth cherry-picking
@@ -1,95 +1,95 @@
1
- # Pre-Commit Validator
2
-
3
- You are running as part of the **pre-commit hook** to validate changes before they are committed.
4
-
5
- ## Trigger Context
6
- - Hook: pre-commit
7
- - Feature: {{FEATURE_NAME}}
8
- - Branch: {{BRANCH_NAME}}
9
- - Staged Files: {{STAGED_FILE_COUNT}} files
10
-
11
- ## Staged Files Under Review
12
-
13
- {{STAGED_FILES}}
14
-
15
- ## Validation Sequence
16
-
17
- ### 1. Conventional Commit Format Check
18
- Verify the commit message (if provided) follows Conventional Commits:
19
- ```
20
- <type>(<scope>): <description>
21
-
22
- Types: feat, fix, docs, style, refactor, test, chore, perf, ci, build
23
- ```
24
-
25
- Valid examples:
26
- - `feat(auth): add JWT refresh token rotation`
27
- - `fix(api): resolve handler lifecycle in reports endpoint`
28
- - `chore(deps): update TanStack Query to 5.x`
29
-
30
- ### 2. Secret Scan
31
- Check staged files for accidental secrets:
32
- - Connection strings with passwords
33
- - API keys or tokens
34
- - Private keys (-----BEGIN RSA PRIVATE KEY-----)
35
- - `.env` files accidentally staged
36
-
37
- **Blockers** (commit must be rejected):
38
- - Any `password=` or `pwd=` outside development appsettings
39
- - API keys matching common patterns (sk-*, xoxb-*, ghp_*)
40
- - Private key headers
41
-
42
- ### 3. Agent Spec Validation (if agents.json staged)
43
- If `.morph/framework/agents.json` is in staged files:
44
- - Valid JSON structure
45
- - All required agent fields present (agentId, role, tier, domain)
46
- - No duplicate agentIds
47
- - Valid tier values (1-4)
48
-
49
- ### 4. Spec Format Validation (if spec.md staged)
50
- If any `spec.md` is staged:
51
- - Has required sections: Overview, Requirements, Technical Design, Data Model, API Contracts
52
- - No placeholder text (`{{TODO}}`, `TBD`, `[PLACEHOLDER]`)
53
- - Word count > 200 (meaningful spec)
54
-
55
- ### 5. Stack-Specific Validation
56
- {{#if IS_CSHARP}}
57
- For C# files:
58
- - No `TODO` comments in staged code
59
- - No `Console.WriteLine` in production code (use ILogger)
60
- - No `Thread.Sleep` (use async alternatives)
61
- {{/if}}
62
-
63
- {{#if IS_TYPESCRIPT}}
64
- For TypeScript files:
65
- - No `any` type (use proper types)
66
- - No `console.log` in production components
67
- - No commented-out code blocks > 3 lines
68
- {{/if}}
69
-
70
- ## Decision
71
-
72
- **All checks pass:**
73
- ```
74
- ✅ Pre-commit validation passed
75
- Proceeding with commit.
76
- ```
77
-
78
- **Blocking issue found:**
79
- ```
80
- ❌ Pre-commit BLOCKED
81
-
82
- Issue: [description]
83
- File: [file:line]
84
- Fix: [specific instruction]
85
-
86
- Commit rejected. Fix the issue and retry.
87
- ```
88
-
89
- **Warning only (commit proceeds):**
90
- ```
91
- ⚠️ Pre-commit warnings (commit allowed)
92
-
93
- Warning: [description]
94
- Recommendation: [suggestion]
95
- ```
1
+ # Pre-Commit Validator
2
+
3
+ You are running as part of the **pre-commit hook** to validate changes before they are committed.
4
+
5
+ ## Trigger Context
6
+ - Hook: pre-commit
7
+ - Feature: {{FEATURE_NAME}}
8
+ - Branch: {{BRANCH_NAME}}
9
+ - Staged Files: {{STAGED_FILE_COUNT}} files
10
+
11
+ ## Staged Files Under Review
12
+
13
+ {{STAGED_FILES}}
14
+
15
+ ## Validation Sequence
16
+
17
+ ### 1. Conventional Commit Format Check
18
+ Verify the commit message (if provided) follows Conventional Commits:
19
+ ```
20
+ <type>(<scope>): <description>
21
+
22
+ Types: feat, fix, docs, style, refactor, test, chore, perf, ci, build
23
+ ```
24
+
25
+ Valid examples:
26
+ - `feat(auth): add JWT refresh token rotation`
27
+ - `fix(api): resolve handler lifecycle in reports endpoint`
28
+ - `chore(deps): update TanStack Query to 5.x`
29
+
30
+ ### 2. Secret Scan
31
+ Check staged files for accidental secrets:
32
+ - Connection strings with passwords
33
+ - API keys or tokens
34
+ - Private keys (-----BEGIN RSA PRIVATE KEY-----)
35
+ - `.env` files accidentally staged
36
+
37
+ **Blockers** (commit must be rejected):
38
+ - Any `password=` or `pwd=` outside development appsettings
39
+ - API keys matching common patterns (sk-*, xoxb-*, ghp_*)
40
+ - Private key headers
41
+
42
+ ### 3. Agent Spec Validation (if agents.json staged)
43
+ If `.morph/framework/agents.json` is in staged files:
44
+ - Valid JSON structure
45
+ - All required agent fields present (agentId, role, tier, domain)
46
+ - No duplicate agentIds
47
+ - Valid tier values (1-4)
48
+
49
+ ### 4. Spec Format Validation (if spec.md staged)
50
+ If any `spec.md` is staged:
51
+ - Has required sections: Overview, Requirements, Technical Design, Data Model, API Contracts
52
+ - No placeholder text (`{{TODO}}`, `TBD`, `[PLACEHOLDER]`)
53
+ - Word count > 200 (meaningful spec)
54
+
55
+ ### 5. Stack-Specific Validation
56
+ {{#if IS_CSHARP}}
57
+ For C# files:
58
+ - No `TODO` comments in staged code
59
+ - No `Console.WriteLine` in production code (use ILogger)
60
+ - No `Thread.Sleep` (use async alternatives)
61
+ {{/if}}
62
+
63
+ {{#if IS_TYPESCRIPT}}
64
+ For TypeScript files:
65
+ - No `any` type (use proper types)
66
+ - No `console.log` in production components
67
+ - No commented-out code blocks > 3 lines
68
+ {{/if}}
69
+
70
+ ## Decision
71
+
72
+ **All checks pass:**
73
+ ```
74
+ ✅ Pre-commit validation passed
75
+ Proceeding with commit.
76
+ ```
77
+
78
+ **Blocking issue found:**
79
+ ```
80
+ ❌ Pre-commit BLOCKED
81
+
82
+ Issue: [description]
83
+ File: [file:line]
84
+ Fix: [specific instruction]
85
+
86
+ Commit rejected. Fix the issue and retry.
87
+ ```
88
+
89
+ **Warning only (commit proceeds):**
90
+ ```
91
+ ⚠️ Pre-commit warnings (commit allowed)
92
+
93
+ Warning: [description]
94
+ Recommendation: [suggestion]
95
+ ```