@polymorphism-tech/morph-spec 2.4.0 → 3.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 (218) hide show
  1. package/CLAUDE.md +158 -26
  2. package/LICENSE +72 -72
  3. package/bin/detect-agents.js +225 -225
  4. package/bin/morph-spec.js +8 -0
  5. package/bin/render-template.js +302 -302
  6. package/bin/semantic-detect-agents.js +246 -246
  7. package/bin/validate-agents-skills.js +251 -251
  8. package/bin/validate-agents.js +69 -69
  9. package/bin/validate-phase.js +263 -263
  10. package/content/.azure/README.md +293 -293
  11. package/content/.azure/docs/azure-devops-setup.md +454 -454
  12. package/content/.azure/docs/branch-strategy.md +398 -398
  13. package/content/.azure/docs/local-development.md +515 -515
  14. package/content/.azure/pipelines/pipeline-variables.yml +34 -34
  15. package/content/.azure/pipelines/prod-pipeline.yml +319 -319
  16. package/content/.azure/pipelines/staging-pipeline.yml +234 -234
  17. package/content/.azure/pipelines/templates/build-dotnet.yml +75 -75
  18. package/content/.azure/pipelines/templates/deploy-app-service.yml +94 -94
  19. package/content/.azure/pipelines/templates/deploy-container-app.yml +120 -120
  20. package/content/.azure/pipelines/templates/infra-deploy.yml +90 -90
  21. package/content/.claude/commands/morph-archive.md +79 -79
  22. package/content/.claude/commands/morph-deploy.md +529 -0
  23. package/content/.claude/commands/morph-infra.md +209 -209
  24. package/content/.claude/commands/morph-preflight.md +227 -227
  25. package/content/.claude/commands/morph-troubleshoot.md +122 -122
  26. package/content/.claude/settings.local.json +15 -15
  27. package/content/.claude/skills/infra/azure-deploy-specialist.md +699 -0
  28. package/content/.claude/skills/level-0-meta/README.md +7 -0
  29. package/content/.claude/skills/{checklists → level-0-meta}/morph-checklist.md +117 -117
  30. package/content/.claude/skills/level-1-workflows/README.md +7 -0
  31. package/content/.claude/skills/{workflows → level-1-workflows}/morph-replicate.md +213 -213
  32. package/content/.claude/skills/{workflows → level-1-workflows}/phase-clarify.md +131 -131
  33. package/content/.claude/skills/{workflows → level-1-workflows}/phase-design.md +213 -205
  34. package/content/.claude/skills/{workflows → level-1-workflows}/phase-setup.md +106 -92
  35. package/content/.claude/skills/{workflows → level-1-workflows}/phase-tasks.md +164 -164
  36. package/content/.claude/skills/{workflows → level-1-workflows}/phase-uiux.md +169 -138
  37. package/content/.claude/skills/level-2-domains/README.md +14 -0
  38. package/content/.claude/skills/{specialists → level-2-domains/quality}/testing-specialist.md +126 -126
  39. package/content/.claude/skills/level-3-technologies/README.md +7 -0
  40. package/content/.claude/skills/level-4-patterns/README.md +7 -0
  41. package/content/.claude/skills/specialists/prompt-engineer.md +189 -0
  42. package/content/.claude/skills/specialists/seo-growth-hacker.md +320 -0
  43. package/content/.morph/.morphversion +5 -5
  44. package/content/.morph/archive/.gitkeep +25 -25
  45. package/content/.morph/config/agents.json +742 -358
  46. package/content/.morph/config/config.template.json +33 -0
  47. package/content/.morph/docs/STORY-DRIVEN-DEVELOPMENT.md +392 -392
  48. package/content/.morph/docs/workflows/enforcement-pipeline.md +668 -0
  49. package/content/.morph/examples/api-nextjs/README.md +241 -241
  50. package/content/.morph/examples/api-nextjs/contracts.ts +307 -307
  51. package/content/.morph/examples/api-nextjs/spec.md +399 -399
  52. package/content/.morph/examples/api-nextjs/tasks.md +168 -168
  53. package/content/.morph/examples/micro-saas/README.md +125 -125
  54. package/content/.morph/examples/micro-saas/contracts.cs +358 -358
  55. package/content/.morph/examples/micro-saas/decisions.md +246 -246
  56. package/content/.morph/examples/micro-saas/spec.md +236 -236
  57. package/content/.morph/examples/micro-saas/tasks.md +150 -150
  58. package/content/.morph/examples/multi-agent/README.md +309 -309
  59. package/content/.morph/examples/multi-agent/contracts.cs +433 -433
  60. package/content/.morph/examples/multi-agent/spec.md +479 -479
  61. package/content/.morph/examples/multi-agent/tasks.md +185 -185
  62. package/content/.morph/examples/scheduled-reports/decisions.md +158 -158
  63. package/content/.morph/examples/scheduled-reports/proposal.md +95 -95
  64. package/content/.morph/examples/scheduled-reports/spec.md +267 -267
  65. package/content/.morph/examples/state-v3.json +188 -188
  66. package/content/.morph/features/.gitkeep +25 -25
  67. package/content/.morph/hooks/README.md +158 -0
  68. package/content/.morph/hooks/pre-commit-all.sh +48 -48
  69. package/content/.morph/hooks/pre-commit-specs.sh +49 -49
  70. package/content/.morph/hooks/pre-commit-tests.sh +60 -60
  71. package/content/.morph/hooks/task-completed.js +73 -0
  72. package/content/.morph/hooks/teammate-idle.js +68 -0
  73. package/content/.morph/project.md +160 -160
  74. package/content/.morph/schemas/agent.schema.json +296 -296
  75. package/content/.morph/schemas/tasks.schema.json +220 -220
  76. package/content/.morph/specs/.gitkeep +20 -20
  77. package/content/.morph/standards/agent-teams-workflow.md +474 -0
  78. package/content/.morph/standards/coding.md +377 -377
  79. package/content/.morph/standards/fluent-ui-setup.md +590 -590
  80. package/content/.morph/standards/migration-guide.md +514 -514
  81. package/content/.morph/standards/passkeys-auth.md +423 -423
  82. package/content/.morph/standards/vector-search-rag.md +536 -536
  83. package/content/.morph/state.json +17 -17
  84. package/content/.morph/templates/CONTEXT-FEATURE.md +276 -0
  85. package/content/.morph/templates/CONTEXT.md +170 -0
  86. package/content/.morph/templates/FluentDesignTheme.cs +149 -149
  87. package/content/.morph/templates/MudTheme.cs +281 -281
  88. package/content/.morph/templates/clarify-questions.md +159 -159
  89. package/content/.morph/templates/component.razor +239 -239
  90. package/content/.morph/templates/contracts/Commands.cs +74 -74
  91. package/content/.morph/templates/contracts/Entities.cs +25 -25
  92. package/content/.morph/templates/contracts/Queries.cs +74 -74
  93. package/content/.morph/templates/contracts/README.md +74 -74
  94. package/content/.morph/templates/contracts.cs +217 -217
  95. package/content/.morph/templates/design-system.css +226 -226
  96. package/content/.morph/templates/infra/.dockerignore.example +89 -89
  97. package/content/.morph/templates/infra/Dockerfile.example +82 -82
  98. package/content/.morph/templates/infra/README.md +286 -286
  99. package/content/.morph/templates/infra/app-insights.bicep +63 -63
  100. package/content/.morph/templates/infra/app-service.bicep +164 -164
  101. package/content/.morph/templates/infra/azure-pipelines-deploy.yml +480 -0
  102. package/content/.morph/templates/infra/container-app-env.bicep +49 -49
  103. package/content/.morph/templates/infra/container-app.bicep +156 -156
  104. package/content/.morph/templates/infra/deploy-checklist.md +426 -426
  105. package/content/.morph/templates/infra/deploy.ps1 +229 -229
  106. package/content/.morph/templates/infra/deploy.sh +208 -208
  107. package/content/.morph/templates/infra/key-vault.bicep +91 -91
  108. package/content/.morph/templates/infra/main.bicep +189 -189
  109. package/content/.morph/templates/infra/parameters.dev.json +29 -29
  110. package/content/.morph/templates/infra/parameters.prod.json +29 -29
  111. package/content/.morph/templates/infra/parameters.staging.json +29 -29
  112. package/content/.morph/templates/infra/sql-database.bicep +103 -103
  113. package/content/.morph/templates/infra/storage.bicep +106 -106
  114. package/content/.morph/templates/integrations/asaas-client.cs +387 -387
  115. package/content/.morph/templates/integrations/asaas-webhook.cs +351 -351
  116. package/content/.morph/templates/integrations/azure-identity-config.cs +288 -288
  117. package/content/.morph/templates/integrations/clerk-config.cs +258 -258
  118. package/content/.morph/templates/job.cs +171 -171
  119. package/content/.morph/templates/migration.cs +83 -83
  120. package/content/.morph/templates/repository.cs +141 -141
  121. package/content/.morph/templates/saas/subscription.cs +347 -347
  122. package/content/.morph/templates/saas/tenant.cs +338 -338
  123. package/content/.morph/templates/service.cs +139 -139
  124. package/content/.morph/templates/sprint-status.yaml +68 -68
  125. package/content/.morph/templates/story.md +143 -143
  126. package/content/.morph/templates/test.cs +239 -239
  127. package/content/.morph/templates/ui-design-system.md +286 -286
  128. package/content/.morph/templates/ui-flows.md +336 -336
  129. package/content/.morph/templates/ui-mockups.md +133 -133
  130. package/content/.morph/test-infra/example.bicep +59 -59
  131. package/content/README.md +79 -79
  132. package/detectors/config-detector.js +223 -223
  133. package/detectors/conversation-analyzer.js +163 -163
  134. package/detectors/index.js +84 -84
  135. package/detectors/standards-generator.js +275 -275
  136. package/docs/api/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.svg +977 -977
  137. package/docs/api/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.svg +1048 -1048
  138. package/docs/api/scripts/collapse.js +38 -38
  139. package/docs/api/scripts/commonNav.js +28 -28
  140. package/docs/api/scripts/linenumber.js +25 -25
  141. package/docs/api/scripts/nav.js +12 -12
  142. package/docs/api/scripts/polyfill.js +3 -3
  143. package/docs/api/scripts/prettify/Apache-License-2.0.txt +202 -202
  144. package/docs/api/scripts/prettify/lang-css.js +2 -2
  145. package/docs/api/scripts/prettify/prettify.js +28 -28
  146. package/docs/api/scripts/search.js +98 -98
  147. package/docs/api/styles/jsdoc.css +776 -776
  148. package/docs/api/styles/prettify.css +80 -80
  149. package/docs/examples.md +328 -328
  150. package/docs/templates.md +418 -418
  151. package/package.json +1 -1
  152. package/scripts/postinstall.js +132 -132
  153. package/src/commands/advance-phase.js +83 -0
  154. package/src/commands/analyze-blazor-concurrency.js +193 -193
  155. package/src/commands/create-story.js +351 -351
  156. package/src/commands/deploy.js +780 -0
  157. package/src/commands/detect-agents.js +34 -6
  158. package/src/commands/detect.js +104 -104
  159. package/src/commands/generate-context.js +40 -0
  160. package/src/commands/generate.js +149 -149
  161. package/src/commands/lint-fluent.js +352 -352
  162. package/src/commands/rollback-phase.js +185 -185
  163. package/src/commands/session-summary.js +291 -291
  164. package/src/commands/shard-spec.js +224 -224
  165. package/src/commands/sprint-status.js +250 -250
  166. package/src/commands/state.js +333 -333
  167. package/src/commands/sync.js +167 -167
  168. package/src/commands/troubleshoot.js +222 -222
  169. package/src/commands/validate-blazor-state.js +210 -210
  170. package/src/commands/validate-blazor.js +156 -156
  171. package/src/commands/validate-css.js +84 -84
  172. package/src/commands/validate-phase.js +221 -221
  173. package/src/lib/blazor-concurrency-analyzer.js +288 -288
  174. package/src/lib/blazor-state-validator.js +291 -291
  175. package/src/lib/blazor-validator.js +374 -374
  176. package/src/lib/context-generator.js +513 -0
  177. package/src/lib/css-validator.js +352 -352
  178. package/src/lib/design-system-detector.js +187 -0
  179. package/src/lib/design-system-generator.js +298 -298
  180. package/src/lib/design-system-scaffolder.js +299 -0
  181. package/src/lib/hook-executor.js +256 -0
  182. package/src/lib/learning-system.js +520 -520
  183. package/src/lib/mockup-generator.js +366 -366
  184. package/src/lib/spec-validator.js +258 -0
  185. package/src/lib/standards-context-injector.js +287 -0
  186. package/src/lib/team-orchestrator.js +322 -0
  187. package/src/lib/troubleshoot-grep.js +194 -194
  188. package/src/lib/troubleshoot-index.js +144 -144
  189. package/src/lib/ui-detector.js +350 -350
  190. package/src/lib/validation-runner.js +65 -13
  191. package/src/lib/validators/architecture-validator.js +387 -387
  192. package/src/lib/validators/design-system-validator.js +231 -0
  193. package/src/lib/validators/package-validator.js +360 -360
  194. package/src/lib/validators/ui-contrast-validator.js +422 -422
  195. package/src/utils/file-copier.js +9 -1
  196. package/src/utils/logger.js +32 -32
  197. package/src/utils/version-checker.js +175 -175
  198. /package/content/.claude/skills/{checklists → level-0-meta}/code-review.md +0 -0
  199. /package/content/.claude/skills/{checklists → level-0-meta}/simulation-checklist.md +0 -0
  200. /package/content/.claude/skills/{specialists → level-2-domains/ai-agents}/ai-system-architect.md +0 -0
  201. /package/content/.claude/skills/{specialists → level-2-domains/architecture}/po-pm-advisor.md +0 -0
  202. /package/content/.claude/skills/{specialists → level-2-domains/architecture}/standards-architect.md +0 -0
  203. /package/content/.claude/skills/{specialists → level-2-domains/backend}/dotnet-senior.md +0 -0
  204. /package/content/.claude/skills/{specialists → level-2-domains/backend}/ef-modeler.md +0 -0
  205. /package/content/.claude/skills/{specialists → level-2-domains/backend}/hangfire-orchestrator.md +0 -0
  206. /package/content/.claude/skills/{specialists → level-2-domains/backend}/ms-agent-expert.md +0 -0
  207. /package/content/.claude/skills/{stacks/dotnet-blazor.md → level-2-domains/frontend/blazor-builder.md} +0 -0
  208. /package/content/.claude/skills/{stacks/dotnet-nextjs.md → level-2-domains/frontend/nextjs-expert.md} +0 -0
  209. /package/content/.claude/skills/{specialists → level-2-domains/frontend}/ui-ux-designer.md +0 -0
  210. /package/content/.claude/skills/{specialists → level-2-domains/infrastructure}/azure-architect.md +0 -0
  211. /package/content/.claude/skills/{infra → level-2-domains/infrastructure}/bicep-architect.md +0 -0
  212. /package/content/.claude/skills/{infra → level-2-domains/infrastructure}/container-specialist.md +0 -0
  213. /package/content/.claude/skills/{infra → level-2-domains/infrastructure}/devops-engineer.md +0 -0
  214. /package/content/.claude/skills/{integrations → level-2-domains/integrations}/asaas-financial.md +0 -0
  215. /package/content/.claude/skills/{integrations → level-2-domains/integrations}/azure-identity.md +0 -0
  216. /package/content/.claude/skills/{integrations → level-2-domains/integrations}/clerk-auth.md +0 -0
  217. /package/content/.claude/skills/{integrations → level-2-domains/integrations}/resend-email.md +0 -0
  218. /package/content/.claude/skills/{specialists → level-2-domains/quality}/code-analyzer.md +0 -0
@@ -0,0 +1,474 @@
1
+ # Agent Teams Workflow - Claude Code Integration
2
+
3
+ **Status:** EXPERIMENTAL - Enable via `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1`
4
+
5
+ > Orchestrate multiple Claude Code instances as a coordinated team for parallel development workflows
6
+
7
+ ---
8
+
9
+ ## Overview
10
+
11
+ **Agent Teams** are a Claude Code feature that coordinates multiple independent Claude instances working together on complex tasks. Unlike subagents (which run within a single context and only report back), Agent Teams members can communicate directly with each other, share findings, challenge each other's approaches, and coordinate through a shared task list.
12
+
13
+ ### Core Architecture
14
+
15
+ | Component | Role |
16
+ |-----------|------|
17
+ | **Team Lead** | Main Claude session that creates the team, spawns teammates, coordinates work |
18
+ | **Teammates** | Independent Claude Code instances, each with own context window |
19
+ | **Shared Task List** | Coordinated work items with dependencies and state (pending/in-progress/completed) |
20
+ | **Mailbox** | Direct messaging system between agents |
21
+
22
+ **Storage:**
23
+ - Team config: `~/.claude/teams/{team-name}/config.json`
24
+ - Task list: `~/.claude/tasks/{team-name}/`
25
+
26
+ ---
27
+
28
+ ## Agent Teams vs Subagents
29
+
30
+ | Aspect | Subagents | Agent Teams |
31
+ |--------|-----------|-------------|
32
+ | **Context** | Own context, results return to caller | Fully independent contexts |
33
+ | **Communication** | Report back to main agent only | Direct inter-teammate messaging + broadcast |
34
+ | **Coordination** | Main agent manages all work | Shared task list with self-claiming |
35
+ | **Best for** | Focused research, verification, isolated tasks | Complex work requiring discussion & collaboration |
36
+ | **Token cost** | Lower (results summarized) | Higher (each teammate = separate Claude instance) |
37
+ | **Use in MORPH** | Quick analysis, validation, isolated research | Parallel feature implementation, multi-module refactoring |
38
+
39
+ ---
40
+
41
+ ## When to Use Agent Teams in MORPH-SPEC
42
+
43
+ ### ✅ **Strong Use Cases**
44
+
45
+ 1. **Parallel Feature Implementation (FASE 5)**
46
+ - Multiple independent features in the same release
47
+ - Each teammate owns 1-2 modules (e.g., Auth, Payments, Reporting)
48
+ - No file conflicts (each module has distinct files)
49
+
50
+ 2. **Architecture Review & Debugging**
51
+ - Multiple teammates investigate competing hypotheses
52
+ - Each applies different lens (security, performance, maintainability)
53
+ - Teams debate and converge on best solution
54
+
55
+ 3. **Cross-Stack Coordination**
56
+ - Frontend teammate (Blazor/Next.js)
57
+ - Backend teammate (API + EF Core)
58
+ - Infrastructure teammate (Bicep + Azure)
59
+ - Testing teammate (unit + integration)
60
+
61
+ 4. **Research & Standards Validation (FASE 0-2)**
62
+ - Investigate multiple integration options (Clerk vs Azure AD vs custom)
63
+ - Compare UI libraries (Fluent UI vs MudBlazor vs Radzen)
64
+ - Validate architecture patterns (CQRS vs simple Repository)
65
+
66
+ ### ❌ **Not Recommended**
67
+
68
+ - Single-file edits or small bug fixes
69
+ - Sequential tasks with many dependencies
70
+ - Same-file modifications by multiple teammates (causes conflicts)
71
+ - Routine tasks where coordination overhead > benefit
72
+
73
+ ---
74
+
75
+ ## Setup & Configuration
76
+
77
+ ### 1. Enable Agent Teams
78
+
79
+ Add to `content/.claude/settings.local.json` (or env variable):
80
+
81
+ ```json
82
+ {
83
+ "env": {
84
+ "CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1"
85
+ },
86
+ "teammateMode": "auto" // or "in-process" / "tmux"
87
+ }
88
+ ```
89
+
90
+ **Display Modes:**
91
+ - `"auto"`: Split panes if in tmux, otherwise in-process
92
+ - `"in-process"`: All teammates in main terminal (Shift+Up/Down to switch)
93
+ - `"tmux"`: Each teammate in separate pane (requires tmux or iTerm2)
94
+
95
+ ### 2. Start a Team
96
+
97
+ **Natural Language Request:**
98
+ ```
99
+ Create an agent team to implement the scheduled-reports feature.
100
+ Spawn 3 teammates:
101
+ - Backend engineer: EF Core models + Hangfire jobs (uses ef-modeler, hangfire-orchestrator skills)
102
+ - Frontend engineer: Blazor dashboard + report viewer (uses blazor-builder, ui-ux-designer skills)
103
+ - Testing specialist: Unit + integration tests (uses testing-specialist skill)
104
+
105
+ Require plan approval for each teammate before implementation.
106
+ ```
107
+
108
+ **What Claude Does:**
109
+ 1. Creates team config in `~/.claude/teams/scheduled-reports/`
110
+ 2. Spawns 3 independent Claude instances
111
+ 3. Each teammate loads project context (CLAUDE.md, MCP servers, skills)
112
+ 4. Lead assigns initial tasks from shared task list
113
+ 5. Teammates work in plan mode until lead approves
114
+ 6. After approval, teammates implement independently
115
+
116
+ ### 3. Control the Team
117
+
118
+ **Delegate Mode** (Lead focuses on coordination only):
119
+ ```
120
+ Press Shift+Tab to cycle into delegate mode
121
+ ```
122
+ - Lead can't use code tools (Edit/Write/Bash)
123
+ - Only coordination tools: spawn, message, task management
124
+
125
+ **Direct Teammate Communication:**
126
+ - In-process mode: Shift+Up/Down to select, type to message
127
+ - Split-pane mode: Click teammate pane to interact directly
128
+
129
+ **Task Management:**
130
+ ```
131
+ # Lead assigns task
132
+ Assign task T003 (implement report scheduler) to the backend engineer
133
+
134
+ # Teammate self-claims next available task
135
+ After completing T001, backend engineer claims T004 (add report repository)
136
+ ```
137
+
138
+ **Shutdown:**
139
+ ```
140
+ Ask the backend teammate to shut down gracefully
141
+ ```
142
+
143
+ ---
144
+
145
+ ## MORPH-SPEC Integration Patterns
146
+
147
+ ### Pattern 1: Parallel Feature Implementation (FASE 5)
148
+
149
+ **Scenario:** Multi-module feature with independent components
150
+
151
+ ```bash
152
+ # 1. Complete FASES 0-4 normally (proposal → design → tasks)
153
+ morph-spec state set scheduled-reports phase implement
154
+
155
+ # 2. Claude creates agent team based on tasks.json structure
156
+ # Example tasks.json with module grouping:
157
+ {
158
+ "tasks": [
159
+ { "id": "T001", "module": "backend", "title": "Create ReportDefinition entity" },
160
+ { "id": "T002", "module": "backend", "title": "Implement Hangfire scheduler" },
161
+ { "id": "T003", "module": "frontend", "title": "Create report dashboard UI" },
162
+ { "id": "T004", "module": "frontend", "title": "Add report preview component" },
163
+ { "id": "T005", "module": "infra", "title": "Provision Blob Storage for reports" },
164
+ { "id": "T006", "module": "tests", "title": "Unit tests for scheduler", "dependsOn": ["T002"] }
165
+ ]
166
+ }
167
+ ```
168
+
169
+ **Team Structure:**
170
+ - **Lead:** Standards Architect (coordinates, validates contracts, syncs decisions.md)
171
+ - **Backend Teammate:** .NET Senior + Hangfire Orchestrator + EF Modeler
172
+ - **Frontend Teammate:** Blazor Builder + UI/UX Designer
173
+ - **Infra Teammate:** Azure Architect + Bicep Architect
174
+ - **Testing Teammate:** Testing Specialist
175
+
176
+ **Workflow:**
177
+ 1. Lead assigns tasks by module
178
+ 2. Each teammate implements their tasks independently
179
+ 3. Teammates run `morph-spec task done {feature} {task-id}` after each task
180
+ 4. Validation pipeline runs automatically (contract compliance, decisions constraints)
181
+ 5. Lead synthesizes recap.md after all tasks complete
182
+
183
+ ### Pattern 2: Architecture Decision Debate (FASE 2)
184
+
185
+ **Scenario:** Multiple valid approaches for complex problem
186
+
187
+ ```
188
+ Create an agent team to decide on the authentication architecture.
189
+ Spawn 3 debate teammates:
190
+ - Pro-Clerk: Argue for Clerk.com (ease of use, modern UI, MFA built-in)
191
+ - Pro-Azure AD: Argue for Azure AD B2C (enterprise compliance, existing infra)
192
+ - Pro-Custom: Argue for custom JWT + Passkeys (full control, no vendor lock-in)
193
+
194
+ Have them debate, challenge each other's assumptions, and document pros/cons.
195
+ Update decisions.md with consensus.
196
+ ```
197
+
198
+ **Output:** Structured ADR in `decisions.md` with all perspectives considered
199
+
200
+ ### Pattern 3: Code Review by Concern (Post-FASE 5)
201
+
202
+ **Scenario:** Thorough review before production deployment
203
+
204
+ ```
205
+ Create an agent team to review the scheduled-reports implementation.
206
+ Spawn 4 reviewers:
207
+ - Security reviewer: Auth, SQL injection, XSS, secrets management
208
+ - Performance reviewer: Query efficiency, caching, background job overhead
209
+ - Standards reviewer: Blazor patterns, EF Core best practices, contract compliance
210
+ - UX reviewer: Accessibility, responsive design, error handling
211
+
212
+ Each reviewer reports findings to the lead, then synthesize into review.md
213
+ ```
214
+
215
+ ---
216
+
217
+ ## Best Practices for MORPH-SPEC
218
+
219
+ ### 1. Size Tasks Appropriately
220
+
221
+ **Good task granularity (5-6 tasks per teammate):**
222
+ ```json
223
+ {
224
+ "id": "T003",
225
+ "title": "Implement report scheduling service",
226
+ "module": "backend",
227
+ "files": ["Services/ReportScheduler.cs", "Jobs/GenerateReportJob.cs"],
228
+ "estimatedHours": 2
229
+ }
230
+ ```
231
+
232
+ **Too small (coordination overhead > benefit):**
233
+ ```json
234
+ { "id": "T001", "title": "Add using statement" }
235
+ ```
236
+
237
+ **Too large (teammate works too long without check-ins):**
238
+ ```json
239
+ { "id": "T099", "title": "Implement entire authentication system" }
240
+ ```
241
+
242
+ ### 2. Prevent File Conflicts
243
+
244
+ **Design task ownership to avoid overlapping edits:**
245
+
246
+ ❌ **Bad (conflict risk):**
247
+ - Backend teammate modifies `Program.cs` for DI
248
+ - Frontend teammate modifies `Program.cs` for middleware
249
+
250
+ ✅ **Good (isolated ownership):**
251
+ - Backend teammate: `Services/`, `Data/`, `Jobs/`
252
+ - Frontend teammate: `Pages/`, `Components/`, `wwwroot/`
253
+ - Lead handles shared files (`Program.cs`, `appsettings.json`) after review
254
+
255
+ ### 3. Leverage Shared Context
256
+
257
+ **All teammates automatically load:**
258
+ - `CLAUDE.md` (MORPH-SPEC instructions)
259
+ - `.claude/skills/` (all available skills)
260
+ - `.morph/config.json` (project configuration)
261
+ - `framework/standards/` + `content/.morph/standards/`
262
+
263
+ **Pass task-specific context in spawn prompt:**
264
+ ```
265
+ Spawn backend teammate with prompt: "Implement scheduled reports feature.
266
+ Active agents: ef-modeler, hangfire-orchestrator, dotnet-senior.
267
+ Read .morph/project/outputs/scheduled-reports/spec.md and contracts.cs.
268
+ Follow Blazor concurrency patterns from framework/standards/blazor-state.md.
269
+ All background jobs MUST use IDbContextFactory (scoped repository pattern)."
270
+ ```
271
+
272
+ ### 4. Use Hooks for Quality Gates
273
+
274
+ **Enforce validation before task completion:**
275
+
276
+ ```json
277
+ // .claude/hooks.json
278
+ {
279
+ "TaskCompleted": {
280
+ "command": "morph-spec validate-task ${MORPH_FEATURE} ${TASK_ID}",
281
+ "exitCode2Feedback": "Task validation failed. Fix violations before marking complete."
282
+ },
283
+ "TeammateIdle": {
284
+ "command": "morph-spec check-teammate-progress ${TEAMMATE_ID}",
285
+ "exitCode2Feedback": "Teammate has incomplete work. Continue implementation."
286
+ }
287
+ }
288
+ ```
289
+
290
+ ### 5. Monitor Token Usage
291
+
292
+ **Agent Teams = High Token Cost:**
293
+ - Each teammate = separate Claude instance with full context
294
+ - 4 teammates on a 2-hour task ≈ 4x token usage vs single session
295
+
296
+ **When worth it:**
297
+ - Parallel implementation of 3+ independent modules
298
+ - Complex architecture decisions requiring debate
299
+ - Time-sensitive features where parallel work reduces calendar time
300
+
301
+ **When NOT worth it:**
302
+ - Single-module features
303
+ - Sequential refactoring
304
+ - Simple bug fixes
305
+
306
+ ---
307
+
308
+ ## Troubleshooting
309
+
310
+ ### Issue: Lead Implements Instead of Delegating
311
+
312
+ **Symptom:** Lead starts coding tasks instead of waiting for teammates
313
+
314
+ **Solution:**
315
+ ```
316
+ Wait for your teammates to complete their tasks before proceeding.
317
+ Use delegate mode to restrict yourself to coordination only.
318
+ ```
319
+ Then press `Shift+Tab` to cycle into delegate mode.
320
+
321
+ ### Issue: Task Not Marked Complete
322
+
323
+ **Symptom:** Teammate finished work but task still shows "in_progress"
324
+
325
+ **Solution:**
326
+ ```
327
+ # Check if validation passed
328
+ morph-spec state get {feature}
329
+
330
+ # If validation failed, teammate must fix violations
331
+ Tell the frontend teammate to check validation output and fix contract violations
332
+
333
+ # If validation passed but task stuck, manually mark complete
334
+ morph-spec task done {feature} {task-id}
335
+ ```
336
+
337
+ ### Issue: Orphaned tmux Sessions
338
+
339
+ **Symptom:** `tmux ls` shows team sessions after cleanup
340
+
341
+ **Solution:**
342
+ ```bash
343
+ tmux kill-session -t scheduled-reports-team
344
+ rm -rf ~/.claude/teams/scheduled-reports
345
+ ```
346
+
347
+ ### Issue: Permission Prompts Spam
348
+
349
+ **Symptom:** Too many permission requests for teammates
350
+
351
+ **Solution:** Pre-approve common operations in `settings.local.json`:
352
+ ```json
353
+ {
354
+ "dangerouslySkipPermissions": {
355
+ "allowedPaths": [".morph/project/outputs/**"],
356
+ "allowedCommands": ["morph-spec task done", "morph-spec validate-*"]
357
+ }
358
+ }
359
+ ```
360
+
361
+ ---
362
+
363
+ ## Integration with MORPH Workflows
364
+
365
+ ### Full MORPH (9 phases) + Agent Teams
366
+
367
+ | Phase | Team Usage |
368
+ |-------|------------|
369
+ | **0 PROPOSAL** | Single session (detect-agents) |
370
+ | **1 SETUP** | Single session |
371
+ | **1.5 UI/UX** | Optional: Spawn UI/UX designer teammate for mockup generation |
372
+ | **2 DESIGN** | Optional: Spawn debate team for DECISION POINTS |
373
+ | **3 CLARIFY** | Single session |
374
+ | **4 TASKS** | Single session (generate tasks.json) |
375
+ | **5 IMPLEMENT** | **Primary use case:** Spawn implementation team by module |
376
+ | **6 SYNC** | Single session (lead synthesizes decisions.md → standards/) |
377
+
378
+ ### Fast Track + Agent Teams
379
+
380
+ **Not recommended:** Coordination overhead defeats purpose of fast workflow.
381
+
382
+ **Exception:** If fast-track task expands during implementation:
383
+ ```
384
+ morph-spec state set {feature} workflow full-morph
385
+ # Then create agent team for expanded scope
386
+ ```
387
+
388
+ ---
389
+
390
+ ## Limitations (as of 2026-02-12)
391
+
392
+ - **No session resumption:** `/resume` doesn't restore in-process teammates
393
+ - **Task status can lag:** Manual nudge may be needed
394
+ - **One team per session:** Clean up before starting new team
395
+ - **No nested teams:** Teammates can't spawn their own teams
396
+ - **Split panes require tmux/iTerm2:** Not available in VS Code terminal, Windows Terminal, Ghostty
397
+
398
+ ---
399
+
400
+ ## Example: Full MORPH Workflow with Agent Team
401
+
402
+ ```bash
403
+ # FASES 0-4: Single Claude session
404
+ /morph-proposal scheduled-reports
405
+ # ... proposal approved, design approved, tasks generated ...
406
+
407
+ # FASE 5: Create agent team
408
+ morph-spec state set scheduled-reports phase implement
409
+ ```
410
+
411
+ ```
412
+ Create an agent team to implement scheduled-reports.
413
+
414
+ Team structure based on tasks.json modules:
415
+ - Backend teammate (T001-T005): EF models, Hangfire jobs, repositories
416
+ - Frontend teammate (T006-T010): Blazor pages, components, CSS
417
+ - Infra teammate (T011-T012): Bicep modules for Blob Storage + Service Bus
418
+
419
+ Require plan approval for each teammate.
420
+ Use delegate mode so I only coordinate.
421
+ ```
422
+
423
+ **Claude creates team, spawns 3 teammates, each works independently:**
424
+
425
+ ```bash
426
+ # Backend teammate
427
+ morph-spec task start scheduled-reports T001
428
+ # ... implements ReportDefinition.cs ...
429
+ morph-spec task done scheduled-reports T001
430
+ # Validation runs: contract-compliance, blazor-concurrency (IDbContextFactory check)
431
+ # ✅ Task T001 completed
432
+
433
+ # Frontend teammate (parallel)
434
+ morph-spec task start scheduled-reports T006
435
+ # ... implements ReportDashboard.razor ...
436
+ morph-spec task done scheduled-reports T006
437
+ # Validation runs: blazor-validator, css-validator, contrast-checker
438
+ # ✅ Task T006 completed
439
+ ```
440
+
441
+ **After all tasks complete, lead synthesizes:**
442
+ ```bash
443
+ morph-spec generate recap scheduled-reports
444
+ # Pulls data from state.json, validation results, contracts.cs
445
+ # Generates comprehensive recap.md
446
+
447
+ morph-spec phase advance scheduled-reports
448
+ # Validates FASE 5 → advances to FASE 6 → shows next steps
449
+ ```
450
+
451
+ ---
452
+
453
+ ## Summary
454
+
455
+ **Agent Teams enable MORPH-SPEC to:**
456
+ - Implement multi-module features in parallel (reduces calendar time)
457
+ - Debate architecture decisions with multiple perspectives
458
+ - Conduct thorough reviews across security/performance/standards
459
+
460
+ **Use when:**
461
+ - 3+ independent modules/components
462
+ - Complex architecture decisions
463
+ - Cross-stack coordination (backend + frontend + infra)
464
+
465
+ **Avoid when:**
466
+ - Single-module features
467
+ - Sequential workflows
468
+ - Same-file modifications needed
469
+
470
+ **Key insight:** Agent Teams amplify MORPH-SPEC's strengths (structured workflows, spec-driven development, validation pipeline) by parallelizing implementation while maintaining quality gates and coordination.
471
+
472
+ ---
473
+
474
+ *MORPH-SPEC by Polymorphism Tech - Integrated with Claude Code Agent Teams*