@polymorphism-tech/morph-spec 8.32.0 → 8.34.2

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 (176) hide show
  1. package/CLAUDE.md +4 -0
  2. package/README.md +2 -2
  3. package/bin/morph-spec.js +26 -2
  4. package/bin/validate.js +379 -379
  5. package/claude-plugin.json +1 -1
  6. package/docs/CHEATSHEET.md +1 -1
  7. package/docs/QUICKSTART.md +1 -1
  8. package/framework/CLAUDE.md +2 -2
  9. package/framework/MORPH.md +4 -5
  10. package/framework/agents.json +1 -0
  11. package/framework/docs/CLI.md +71 -68
  12. package/framework/hooks/README.md +11 -1
  13. package/framework/hooks/claude-code/core/block-destructive-worktree-removal.js +5 -8
  14. package/framework/hooks/claude-code/core/block-raw-worktree-add.js +79 -0
  15. package/framework/hooks/claude-code/core/chain.js +27 -7
  16. package/framework/hooks/claude-code/core/worktree-context.js +83 -14
  17. package/framework/hooks/claude-code/core/worktree-create.js +206 -0
  18. package/framework/hooks/claude-code/core/worktree-env-inject.js +87 -0
  19. package/framework/hooks/claude-code/core/worktree-remove.js +81 -0
  20. package/framework/hooks/claude-code/statusline.sh +11 -11
  21. package/framework/hooks/git/commit-msg/conventional-commits.sh +33 -33
  22. package/framework/hooks/git/pre-commit/agents.sh +25 -25
  23. package/framework/hooks/git/pre-commit/orchestrator.sh +64 -64
  24. package/framework/hooks/git/pre-commit/specs.sh +50 -50
  25. package/framework/hooks/git/pre-push/run-tests.sh +44 -44
  26. package/framework/hooks/shared/command-tokens.js +23 -0
  27. package/framework/hooks/shared/e2e-check.js +0 -0
  28. package/framework/hooks/shared/git-paths.js +25 -0
  29. package/framework/hooks/shared/hook-response.js +17 -0
  30. package/framework/hooks/shared/morph-cli.js +134 -0
  31. package/framework/hooks/shared/stdin-reader.js +26 -26
  32. package/framework/rules/infrastructure-standards.md +3 -1
  33. package/framework/skills/core/create-umbraco-lp/SKILL.md +1 -1
  34. package/framework/skills/core/migrate-lp-to-umbraco/SKILL.md +1 -1
  35. package/framework/skills/core/morph-apply/SKILL.md +3 -3
  36. package/framework/skills/core/morph-brainstorming/SKILL.md +1 -1
  37. package/framework/skills/core/morph-eval/SKILL.md +1 -1
  38. package/framework/skills/core/morph-hotfix/SKILL.md +1 -1
  39. package/framework/skills/core/morph-implement/SKILL.md +3 -1
  40. package/framework/skills/core/morph-plan/SKILL.md +6 -3
  41. package/framework/skills/core/morph-proposal/SKILL.md +1 -1
  42. package/framework/skills/core/morph-review/SKILL.md +1 -1
  43. package/framework/skills/core/morph-stack-scan/SKILL.md +1 -1
  44. package/framework/skills/core/morph-standards/SKILL.md +1 -1
  45. package/framework/skills/core/morph-uiux/SKILL.md +1 -1
  46. package/framework/standards/STANDARDS.json +30 -0
  47. package/framework/standards/ai-agents/agent-session.md +160 -160
  48. package/framework/standards/ai-agents/batching.md +193 -193
  49. package/framework/standards/ai-agents/context-providers.md +188 -188
  50. package/framework/standards/ai-agents/mcp-server.md +250 -250
  51. package/framework/standards/ai-agents/mcp-tools.md +197 -197
  52. package/framework/standards/ai-agents/middleware-patterns.md +207 -207
  53. package/framework/standards/ai-agents/modalities-image-gen.md +173 -173
  54. package/framework/standards/ai-agents/modalities-speech-to-text.md +171 -171
  55. package/framework/standards/ai-agents/modalities-text-to-speech.md +181 -181
  56. package/framework/standards/ai-agents/modalities-vision.md +201 -201
  57. package/framework/standards/ai-agents/multi-agent-patterns.md +155 -155
  58. package/framework/standards/ai-agents/production.md +231 -231
  59. package/framework/standards/ai-agents/prompts-in-db.md +214 -214
  60. package/framework/standards/ai-agents/providers/model-registry.md +158 -158
  61. package/framework/standards/ai-agents/service-tier-flex.md +135 -135
  62. package/framework/standards/ai-agents/structured-output.md +249 -249
  63. package/framework/standards/ai-agents/sweet-spot.md +109 -109
  64. package/framework/standards/infrastructure/docker/local-compose-isolation.md +88 -0
  65. package/framework/templates/IDE-SNIPPETS.md +262 -262
  66. package/framework/templates/REGISTRY.json +1 -1
  67. package/framework/templates/code/dotnet/abstractions/api-endpoint.cs +7 -7
  68. package/framework/templates/code/dotnet/ai-agents/AgentBootstrap.cs.template +39 -39
  69. package/framework/templates/code/dotnet/ai-agents/EmbeddingService.cs.template +68 -68
  70. package/framework/templates/code/dotnet/ai-agents/ModelRegistry.cs.template +117 -117
  71. package/framework/templates/code/dotnet/ai-agents/PromptRepository.cs.template +95 -95
  72. package/framework/templates/code/dotnet/ai-agents/ResilientToolMiddleware.cs.template +61 -61
  73. package/framework/templates/code/dotnet/ai-agents/VectorSearchTool.cs.template +107 -107
  74. package/framework/templates/code/dotnet/ai-agents/model-registry.json.template +58 -58
  75. package/framework/templates/code/dotnet/contracts/contracts-vsa.cs +281 -281
  76. package/framework/templates/code/dotnet/database/migration.cs +83 -83
  77. package/framework/templates/code/dotnet/feature/endpoint.cs.hbs +21 -21
  78. package/framework/templates/code/dotnet/feature/request.cs.hbs +4 -4
  79. package/framework/templates/code/dotnet/feature/response.cs.hbs +4 -4
  80. package/framework/templates/code/dotnet/feature/validator.cs.hbs +15 -15
  81. package/framework/templates/code/sql/ai-agents/agent-prompts-migration.sql.template +58 -58
  82. package/framework/templates/code/sql/ai-agents/pgvector-embeddings-migration.sql.template +91 -91
  83. package/framework/templates/code/typescript/contracts.ts +167 -167
  84. package/framework/templates/docs/clarifications.md +253 -253
  85. package/framework/templates/docs/schema-analysis.md +119 -119
  86. package/framework/templates/docs/ui-components.md +52 -52
  87. package/framework/templates/docs/ui-design-system.md +76 -76
  88. package/framework/templates/docs/ui-flows.md +167 -167
  89. package/framework/templates/docs/ui-mockups.md +98 -98
  90. package/framework/templates/feature/decisions.md +122 -122
  91. package/framework/templates/frontend/nextjs/Dockerfile.nextjs.hbs +43 -43
  92. package/framework/templates/frontend/nextjs/client-component.tsx.hbs +26 -26
  93. package/framework/templates/frontend/nextjs/env.mjs.hbs +32 -32
  94. package/framework/templates/frontend/nextjs/feature-form.tsx.hbs +56 -56
  95. package/framework/templates/frontend/nextjs/page.tsx.hbs +22 -22
  96. package/framework/templates/frontend/nextjs/tsconfig.json.hbs +26 -26
  97. package/framework/templates/frontend/nextjs/use-feature.ts.hbs +54 -54
  98. package/framework/templates/infrastructure/docker/Dockerfile.template +58 -58
  99. package/framework/templates/infrastructure/docker/docker-compose.template.yml +24 -14
  100. package/framework/templates/infrastructure/docker/dockerfile-api.dockerfile +38 -38
  101. package/framework/templates/infrastructure/docker/dockerfile-web.dockerfile +48 -48
  102. package/framework/templates/infrastructure/github/README.md +56 -56
  103. package/framework/templates/infrastructure/github/actions/docker-build-push/action.yml.hbs +45 -45
  104. package/framework/templates/infrastructure/github/actions/health-check/action.yml.hbs +27 -27
  105. package/framework/templates/infrastructure/github/workflows/docker-build-push.yml.hbs +59 -59
  106. package/framework/templates/infrastructure/github/workflows/dotnet-build.yml.hbs +39 -39
  107. package/framework/templates/integrations/asaas-client.cs +387 -387
  108. package/framework/templates/integrations/asaas-webhook.cs +351 -351
  109. package/framework/templates/meta-prompts/fusion/fusion-agent.md +76 -76
  110. package/framework/templates/meta-prompts/fusion/fusion-aggregator.md +100 -100
  111. package/framework/templates/meta-prompts/validators/pre-commit-validator.md +95 -95
  112. package/framework/templates/project/validate.js +120 -120
  113. package/framework/templates/state.template.json +17 -17
  114. package/framework/templates/ui/design-system.css +226 -226
  115. package/package.json +1 -1
  116. package/src/commands/dashboard/dashboard.js +53 -53
  117. package/src/commands/e2e/e2e.js +77 -39
  118. package/src/commands/index.js +13 -13
  119. package/src/commands/project/checkpoint.js +209 -209
  120. package/src/commands/project/doctor.js +8 -6
  121. package/src/commands/project/env.js +95 -0
  122. package/src/commands/project/worktree.js +266 -52
  123. package/src/commands/state/delete.js +8 -0
  124. package/src/commands/state/finish.js +29 -34
  125. package/src/core/state/phase-state-machine.js +197 -197
  126. package/src/core/templates/template-renderer.js +477 -477
  127. package/src/dashboard/app/components/DetailPanel.jsx +11 -11
  128. package/src/dashboard/app/components/FlowGraph.jsx +17 -17
  129. package/src/dashboard/app/components/SearchFilter.jsx +22 -22
  130. package/src/dashboard/app/hooks/useDetailPanel.js +15 -15
  131. package/src/dashboard/app/main.jsx +13 -13
  132. package/src/dashboard/app/pages/AgentMap.jsx +370 -370
  133. package/src/dashboard/app/pages/HookInspector.jsx +430 -418
  134. package/src/dashboard/app/pages/PhasePipeline.jsx +408 -408
  135. package/src/dashboard/app/pages/RulesMap.jsx +273 -273
  136. package/src/dashboard/app/pages/SkillsLibrary.jsx +366 -366
  137. package/src/dashboard/app/pages/Standards.jsx +332 -332
  138. package/src/dashboard/app/styles/index.css +47 -47
  139. package/src/dashboard/index.html +12 -12
  140. package/src/dashboard/package.json +24 -24
  141. package/src/dashboard/scanner/hooks-scanner.js +5 -1
  142. package/src/dashboard/scanner/phases-scanner.js +15 -15
  143. package/src/dashboard/scanner/rubrics-scanner.js +12 -12
  144. package/src/dashboard/scanner/rules-scanner.js +37 -37
  145. package/src/dashboard/scanner/skills-scanner.js +43 -43
  146. package/src/dashboard/scanner/squads-scanner.js +13 -13
  147. package/src/dashboard/vite-plugin-morph-data.js +17 -17
  148. package/src/dashboard/vite.config.js +24 -24
  149. package/src/lib/detectors/design-system-detector.js +188 -188
  150. package/src/lib/detectors/index.js +217 -217
  151. package/src/lib/e2e/compose-env.js +6 -11
  152. package/src/lib/e2e/stack-teardown.js +115 -0
  153. package/src/lib/generators/architecture-scanner.js +2 -1
  154. package/src/lib/generators/design-system-generator.js +508 -508
  155. package/src/lib/generators/settings-generator.js +209 -209
  156. package/src/lib/graph/graphifyignore.js +2 -1
  157. package/src/lib/hooks/hook-executor.js +167 -167
  158. package/src/lib/installers/mcp-installer.js +719 -719
  159. package/src/lib/tasks/task-classifier.js +30 -30
  160. package/src/lib/tasks/task-parser.js +209 -209
  161. package/src/lib/tasks/test-runner.js +218 -39
  162. package/src/lib/validators/checkpoint-persistence.js +39 -39
  163. package/src/lib/validators/css/css-validator.js +340 -340
  164. package/src/lib/validators/shared/emit-validator-dispatch.js +14 -14
  165. package/src/lib/validators/shared/issue-counter.js +14 -14
  166. package/src/lib/validators/verify-runner.js +37 -4
  167. package/src/lib/worktree/dirs.js +32 -0
  168. package/src/lib/worktree/env-allocator.js +45 -11
  169. package/src/lib/worktree/worktree-audit.js +40 -2
  170. package/src/utils/agent-id-mapper.js +11 -11
  171. package/src/utils/claude-settings-manager.js +300 -300
  172. package/src/utils/file-copier.js +18 -13
  173. package/src/utils/hooks-installer.js +46 -3
  174. package/src/utils/skills-installer.js +187 -187
  175. package/framework/templates/.idea/morph-templates.xml +0 -92
  176. package/framework/templates/.vscode/morph-templates.code-snippets +0 -186
@@ -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
+ ```