@polymorphism-tech/morph-spec 8.0.0 → 8.1.1

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 (168) hide show
  1. package/README.md +2 -2
  2. package/bin/validate.js +379 -379
  3. package/claude-plugin.json +1 -1
  4. package/docs/CHEATSHEET.md +1 -1
  5. package/docs/QUICKSTART.md +1 -1
  6. package/framework/CLAUDE.md +1 -1
  7. package/framework/MORPH.md +5 -5
  8. package/framework/agents.json +1 -1
  9. package/framework/commands/commit.md +166 -166
  10. package/framework/commands/morph-infra.md +215 -215
  11. package/framework/commands/morph-preflight.md +205 -205
  12. package/framework/commands/morph-troubleshoot.md +124 -124
  13. package/framework/hooks/README.md +0 -1
  14. package/framework/hooks/claude-code/statusline.py +679 -679
  15. package/framework/hooks/claude-code/statusline.sh +11 -11
  16. package/framework/hooks/git/commit-msg/conventional-commits.sh +33 -33
  17. package/framework/hooks/git/pre-commit/agents.sh +25 -25
  18. package/framework/hooks/git/pre-commit/orchestrator.sh +64 -64
  19. package/framework/hooks/git/pre-commit/specs.sh +50 -50
  20. package/framework/hooks/git/pre-push/run-tests.sh +44 -44
  21. package/framework/hooks/shared/activity-logger.js +160 -160
  22. package/framework/hooks/shared/stdin-reader.js +26 -26
  23. package/framework/rubrics/backend.json +41 -41
  24. package/framework/rules/ai-agents-standards.md +45 -45
  25. package/framework/rules/dotnet-templates.md +86 -86
  26. package/framework/rules/frontend-standards.md +13 -13
  27. package/framework/rules/infrastructure-standards.md +27 -27
  28. package/framework/rules/neon-standards.md +25 -25
  29. package/framework/rules/nextjs-standards.md +20 -20
  30. package/framework/rules/nextjs-templates.md +40 -40
  31. package/framework/skills/core/create-umbraco-lp/SKILL.md +1 -1
  32. package/framework/skills/core/migrate-lp-to-umbraco/SKILL.md +1 -1
  33. package/framework/skills/core/morph-apply/SKILL.md +12 -21
  34. package/framework/skills/core/morph-brainstorming/SKILL.md +1 -1
  35. package/framework/skills/core/morph-eval/SKILL.md +1 -1
  36. package/framework/skills/core/morph-hotfix/SKILL.md +2 -4
  37. package/framework/skills/core/morph-implement/SKILL.md +10 -19
  38. package/framework/skills/core/morph-plan/SKILL.md +1 -1
  39. package/framework/skills/core/morph-proposal/SKILL.md +1 -1
  40. package/framework/skills/core/morph-review/SKILL.md +11 -15
  41. package/framework/skills/core/morph-stack-scan/SKILL.md +1 -1
  42. package/framework/skills/core/morph-standards/SKILL.md +1 -1
  43. package/framework/standards/ai-agents/agent-session.md +160 -160
  44. package/framework/standards/ai-agents/batching.md +193 -193
  45. package/framework/standards/ai-agents/context-providers.md +188 -188
  46. package/framework/standards/ai-agents/mcp-server.md +250 -250
  47. package/framework/standards/ai-agents/mcp-tools.md +197 -197
  48. package/framework/standards/ai-agents/middleware-patterns.md +207 -207
  49. package/framework/standards/ai-agents/modalities-image-gen.md +173 -173
  50. package/framework/standards/ai-agents/modalities-speech-to-text.md +171 -171
  51. package/framework/standards/ai-agents/modalities-text-to-speech.md +181 -181
  52. package/framework/standards/ai-agents/modalities-vision.md +201 -201
  53. package/framework/standards/ai-agents/multi-agent-patterns.md +155 -155
  54. package/framework/standards/ai-agents/production.md +275 -275
  55. package/framework/standards/ai-agents/prompts-in-db.md +214 -214
  56. package/framework/standards/ai-agents/providers/model-registry.md +158 -158
  57. package/framework/standards/ai-agents/service-tier-flex.md +135 -135
  58. package/framework/standards/ai-agents/structured-output.md +249 -249
  59. package/framework/standards/ai-agents/sweet-spot.md +109 -109
  60. package/framework/templates/IDE-SNIPPETS.md +262 -262
  61. package/framework/templates/code/dotnet/abstractions/api-endpoint.cs +7 -7
  62. package/framework/templates/code/dotnet/ai-agents/AgentBootstrap.cs.template +39 -39
  63. package/framework/templates/code/dotnet/ai-agents/EmbeddingService.cs.template +68 -68
  64. package/framework/templates/code/dotnet/ai-agents/ModelRegistry.cs.template +117 -117
  65. package/framework/templates/code/dotnet/ai-agents/PromptRepository.cs.template +95 -95
  66. package/framework/templates/code/dotnet/ai-agents/ResilientToolMiddleware.cs.template +61 -61
  67. package/framework/templates/code/dotnet/ai-agents/VectorSearchTool.cs.template +107 -107
  68. package/framework/templates/code/dotnet/ai-agents/model-registry.json.template +58 -58
  69. package/framework/templates/code/dotnet/contracts/contracts-vsa.cs +281 -281
  70. package/framework/templates/code/dotnet/database/migration.cs +83 -83
  71. package/framework/templates/code/dotnet/feature/endpoint.cs.hbs +21 -21
  72. package/framework/templates/code/dotnet/feature/request.cs.hbs +4 -4
  73. package/framework/templates/code/dotnet/feature/response.cs.hbs +4 -4
  74. package/framework/templates/code/dotnet/feature/validator.cs.hbs +15 -15
  75. package/framework/templates/code/sql/ai-agents/agent-prompts-migration.sql.template +58 -58
  76. package/framework/templates/code/sql/ai-agents/pgvector-embeddings-migration.sql.template +91 -91
  77. package/framework/templates/code/typescript/contracts.ts +167 -167
  78. package/framework/templates/docs/clarifications.md +253 -253
  79. package/framework/templates/docs/schema-analysis.md +119 -119
  80. package/framework/templates/docs/ui-components.md +52 -52
  81. package/framework/templates/docs/ui-design-system.md +76 -76
  82. package/framework/templates/docs/ui-flows.md +167 -167
  83. package/framework/templates/docs/ui-mockups.md +98 -98
  84. package/framework/templates/feature/decisions.md +122 -122
  85. package/framework/templates/frontend/nextjs/Dockerfile.nextjs.hbs +43 -43
  86. package/framework/templates/frontend/nextjs/client-component.tsx.hbs +26 -26
  87. package/framework/templates/frontend/nextjs/env.mjs.hbs +32 -32
  88. package/framework/templates/frontend/nextjs/feature-form.tsx.hbs +56 -56
  89. package/framework/templates/frontend/nextjs/page.tsx.hbs +22 -22
  90. package/framework/templates/frontend/nextjs/tsconfig.json.hbs +26 -26
  91. package/framework/templates/frontend/nextjs/use-feature.ts.hbs +54 -54
  92. package/framework/templates/infrastructure/docker/Dockerfile.template +58 -58
  93. package/framework/templates/infrastructure/docker/docker-compose.template.yml +50 -50
  94. package/framework/templates/infrastructure/docker/dockerfile-api.dockerfile +38 -38
  95. package/framework/templates/infrastructure/docker/dockerfile-web.dockerfile +48 -48
  96. package/framework/templates/infrastructure/github/README.md +56 -56
  97. package/framework/templates/infrastructure/github/actions/docker-build-push/action.yml.hbs +45 -45
  98. package/framework/templates/infrastructure/github/actions/health-check/action.yml.hbs +27 -27
  99. package/framework/templates/infrastructure/github/workflows/docker-build-push.yml.hbs +59 -59
  100. package/framework/templates/infrastructure/github/workflows/dotnet-build.yml.hbs +39 -39
  101. package/framework/templates/integrations/asaas-client.cs +387 -387
  102. package/framework/templates/integrations/asaas-webhook.cs +351 -351
  103. package/framework/templates/meta-prompts/fusion/fusion-agent.md +76 -76
  104. package/framework/templates/meta-prompts/fusion/fusion-aggregator.md +100 -100
  105. package/framework/templates/meta-prompts/validators/pre-commit-validator.md +95 -95
  106. package/framework/templates/project/validate.js +120 -120
  107. package/framework/templates/state.template.json +17 -17
  108. package/framework/templates/ui/design-system.css +226 -226
  109. package/package.json +1 -1
  110. package/src/commands/dashboard/dashboard.js +53 -53
  111. package/src/commands/index.js +13 -13
  112. package/src/commands/mcp/mcp-setup.js +519 -519
  113. package/src/commands/project/checkpoint.js +209 -209
  114. package/src/commands/project/worktree.js +83 -1
  115. package/src/core/state/phase-state-machine.js +197 -197
  116. package/src/core/templates/template-renderer.js +477 -477
  117. package/src/dashboard/app/components/DetailPanel.jsx +11 -11
  118. package/src/dashboard/app/components/FlowGraph.jsx +17 -17
  119. package/src/dashboard/app/components/SearchFilter.jsx +22 -22
  120. package/src/dashboard/app/hooks/useDetailPanel.js +15 -15
  121. package/src/dashboard/app/main.jsx +13 -13
  122. package/src/dashboard/app/pages/AgentMap.jsx +370 -370
  123. package/src/dashboard/app/pages/HookInspector.jsx +418 -418
  124. package/src/dashboard/app/pages/PhasePipeline.jsx +408 -408
  125. package/src/dashboard/app/pages/RulesMap.jsx +273 -273
  126. package/src/dashboard/app/pages/SkillsLibrary.jsx +366 -366
  127. package/src/dashboard/app/pages/Standards.jsx +332 -332
  128. package/src/dashboard/app/styles/index.css +47 -47
  129. package/src/dashboard/index.html +12 -12
  130. package/src/dashboard/package.json +24 -24
  131. package/src/dashboard/scanner/hooks-scanner.js +41 -41
  132. package/src/dashboard/scanner/phases-scanner.js +15 -15
  133. package/src/dashboard/scanner/rubrics-scanner.js +12 -12
  134. package/src/dashboard/scanner/rules-scanner.js +37 -37
  135. package/src/dashboard/scanner/skills-scanner.js +43 -43
  136. package/src/dashboard/scanner/squads-scanner.js +13 -13
  137. package/src/dashboard/scanner/standards-scanner.js +26 -26
  138. package/src/dashboard/vite-plugin-morph-data.js +17 -17
  139. package/src/dashboard/vite.config.js +24 -24
  140. package/src/lib/agents/metrics-aggregator.js +56 -56
  141. package/src/lib/agents/metrics-calculator.js +125 -125
  142. package/src/lib/agents/output-collector.js +73 -73
  143. package/src/lib/detectors/claude-config-detector.js +152 -152
  144. package/src/lib/detectors/design-system-detector.js +231 -231
  145. package/src/lib/detectors/index.js +217 -217
  146. package/src/lib/generators/architecture-scanner.js +639 -639
  147. package/src/lib/generators/design-system-generator.js +508 -508
  148. package/src/lib/generators/index.js +13 -13
  149. package/src/lib/generators/settings-generator.js +209 -209
  150. package/src/lib/hooks/hook-executor.js +167 -167
  151. package/src/lib/installers/mcp-installer.js +719 -719
  152. package/src/lib/tasks/task-classifier.js +30 -30
  153. package/src/lib/tasks/task-parser.js +209 -209
  154. package/src/lib/validators/architecture/architecture-validator.js +259 -259
  155. package/src/lib/validators/checkpoint-persistence.js +39 -39
  156. package/src/lib/validators/contracts/contract-compliance-validator.js +274 -274
  157. package/src/lib/validators/css/css-validator.js +340 -340
  158. package/src/lib/validators/packages/package-validator.js +347 -347
  159. package/src/lib/validators/shared/emit-validator-dispatch.js +14 -14
  160. package/src/lib/validators/shared/issue-counter.js +14 -14
  161. package/src/lib/validators/validation-runner.js +349 -349
  162. package/src/utils/agent-id-mapper.js +11 -11
  163. package/src/utils/claude-settings-manager.js +300 -300
  164. package/src/utils/hooks-installer.js +3 -24
  165. package/src/utils/skills-installer.js +174 -174
  166. package/framework/hooks/claude-code/core/subagent-report-guard.js +0 -95
  167. package/framework/templates/.idea/morph-templates.xml +0 -92
  168. package/framework/templates/.vscode/morph-templates.code-snippets +0 -186
@@ -1,86 +1,86 @@
1
- ---
2
- paths:
3
- - "**/*.cs"
4
- - "**/*.csproj"
5
- stacks:
6
- - dotnet
7
- ---
8
-
9
- # .NET Code Templates
10
-
11
- When implementing .NET features, use these templates as reference patterns.
12
- Read the template file to see the exact pattern, then generate code following it.
13
-
14
- ## Scaffold (preferred for new slices)
15
-
16
- **Always use scaffold for new VSA slices — never create feature files manually.**
17
-
18
- ```bash
19
- morph-spec scaffold dotnet <feature> <slice-name> [--namespace <ns>] [--dry-run]
20
- ```
21
-
22
- Examples:
23
- ```bash
24
- morph-spec scaffold dotnet book create-book
25
- morph-spec scaffold dotnet book get-book-by-id
26
- morph-spec scaffold dotnet book update-book
27
- morph-spec scaffold dotnet book delete-book
28
- morph-spec scaffold dotnet book get-all-books
29
- ```
30
-
31
- Generates 7 files: endpoint, handler, request, response, validator + entity, errors (shared at feature level). Entity/errors auto-skipped if they already exist.
32
-
33
- **Only use `template render` for individual files when adding to an existing slice.**
34
-
35
- ## VSA Feature Templates (Vertical Slice Architecture)
36
-
37
- For each new feature slice, follow the patterns in these templates:
38
-
39
- | Template | Path | Purpose |
40
- |----------|------|---------|
41
- | Endpoint | `.morph/framework/templates/code/dotnet/feature/endpoint.cs.hbs` | IApiEndpoint with MapEndpoint() |
42
- | Handler | `.morph/framework/templates/code/dotnet/feature/handler.cs.hbs` | IHandler<TRequest, TResponse> |
43
- | Request | `.morph/framework/templates/code/dotnet/feature/request.cs.hbs` | Sealed record DTO |
44
- | Response | `.morph/framework/templates/code/dotnet/feature/response.cs.hbs` | Sealed record DTO |
45
- | Validator | `.morph/framework/templates/code/dotnet/feature/validator.cs.hbs` | FluentValidation AbstractValidator |
46
- | Entity | `.morph/framework/templates/code/dotnet/feature/entity.cs.hbs` | Domain entity |
47
- | Errors | `.morph/framework/templates/code/dotnet/feature/errors.cs.hbs` | Error factory |
48
-
49
- ## Base Abstractions (read once per project setup)
50
-
51
- | Template | Path | Purpose |
52
- |----------|------|---------|
53
- | IHandler | `.morph/framework/templates/code/dotnet/abstractions/handler.cs` | Handler interface |
54
- | Result<T> | `.morph/framework/templates/code/dotnet/abstractions/result.cs` | Railway-oriented result |
55
- | Error | `.morph/framework/templates/code/dotnet/abstractions/error.cs` | Error types |
56
- | IApiEndpoint | `.morph/framework/templates/code/dotnet/abstractions/api-endpoint.cs` | Endpoint interface |
57
-
58
- ## Extensions & Pipeline (read once per project setup)
59
-
60
- | Template | Path | Purpose |
61
- |----------|------|---------|
62
- | Handler Registration | `.morph/framework/templates/code/dotnet/extensions/handler-registration.cs` | Scrutor auto-discovery |
63
- | Map Endpoints | `.morph/framework/templates/code/dotnet/extensions/map-endpoints.cs` | IApiEndpoint discovery |
64
- | Result Extensions | `.morph/framework/templates/code/dotnet/extensions/result-extensions.cs` | Match() pattern |
65
- | Database Config | `.morph/framework/templates/code/dotnet/extensions/database-extensions.cs` | EF Core + Npgsql |
66
- | Health Checks | `.morph/framework/templates/code/dotnet/extensions/health-checks.cs` | Health endpoints |
67
- | Validation Decorator | `.morph/framework/templates/code/dotnet/pipelines/validation-decorator.cs` | FluentValidation pipeline |
68
- | Logging Decorator | `.morph/framework/templates/code/dotnet/pipelines/logging-decorator.cs` | Duration tracking |
69
- | Exception Handler | `.morph/framework/templates/code/dotnet/exceptions/exception-handler.cs` | ProblemDetails |
70
- | API Tags | `.morph/framework/templates/code/dotnet/constants/api-tags.cs` | Scalar/Swagger groups |
71
-
72
- ## Specialized Templates
73
-
74
- | Template | Path | Purpose |
75
- |----------|------|---------|
76
- | Migration | `.morph/framework/templates/code/dotnet/database/migration.cs` | EF Core migration |
77
- | Hangfire Job | `.morph/framework/templates/code/dotnet/jobs/job.cs` | Background job |
78
- | MAF Agent | `.morph/framework/templates/code/dotnet/jobs/agent.cs` | MS Agent Framework |
79
- | Unit Test | `.morph/framework/templates/code/dotnet/test.cs` | xUnit AAA test |
80
- | Contracts VSA | `.morph/framework/templates/code/dotnet/contracts/contracts-vsa.cs` | Full slice contracts |
81
-
82
- ## Usage
83
-
84
- 1. **Read the template** to see the exact pattern
85
- 2. **Generate code following the same structure** (naming, namespaces, imports)
86
- 3. Or render via CLI: `morph-spec template render <id> <output> '<variables>'`
1
+ ---
2
+ paths:
3
+ - "**/*.cs"
4
+ - "**/*.csproj"
5
+ stacks:
6
+ - dotnet
7
+ ---
8
+
9
+ # .NET Code Templates
10
+
11
+ When implementing .NET features, use these templates as reference patterns.
12
+ Read the template file to see the exact pattern, then generate code following it.
13
+
14
+ ## Scaffold (preferred for new slices)
15
+
16
+ **Always use scaffold for new VSA slices — never create feature files manually.**
17
+
18
+ ```bash
19
+ morph-spec scaffold dotnet <feature> <slice-name> [--namespace <ns>] [--dry-run]
20
+ ```
21
+
22
+ Examples:
23
+ ```bash
24
+ morph-spec scaffold dotnet book create-book
25
+ morph-spec scaffold dotnet book get-book-by-id
26
+ morph-spec scaffold dotnet book update-book
27
+ morph-spec scaffold dotnet book delete-book
28
+ morph-spec scaffold dotnet book get-all-books
29
+ ```
30
+
31
+ Generates 7 files: endpoint, handler, request, response, validator + entity, errors (shared at feature level). Entity/errors auto-skipped if they already exist.
32
+
33
+ **Only use `template render` for individual files when adding to an existing slice.**
34
+
35
+ ## VSA Feature Templates (Vertical Slice Architecture)
36
+
37
+ For each new feature slice, follow the patterns in these templates:
38
+
39
+ | Template | Path | Purpose |
40
+ |----------|------|---------|
41
+ | Endpoint | `.morph/framework/templates/code/dotnet/feature/endpoint.cs.hbs` | IApiEndpoint with MapEndpoint() |
42
+ | Handler | `.morph/framework/templates/code/dotnet/feature/handler.cs.hbs` | IHandler<TRequest, TResponse> |
43
+ | Request | `.morph/framework/templates/code/dotnet/feature/request.cs.hbs` | Sealed record DTO |
44
+ | Response | `.morph/framework/templates/code/dotnet/feature/response.cs.hbs` | Sealed record DTO |
45
+ | Validator | `.morph/framework/templates/code/dotnet/feature/validator.cs.hbs` | FluentValidation AbstractValidator |
46
+ | Entity | `.morph/framework/templates/code/dotnet/feature/entity.cs.hbs` | Domain entity |
47
+ | Errors | `.morph/framework/templates/code/dotnet/feature/errors.cs.hbs` | Error factory |
48
+
49
+ ## Base Abstractions (read once per project setup)
50
+
51
+ | Template | Path | Purpose |
52
+ |----------|------|---------|
53
+ | IHandler | `.morph/framework/templates/code/dotnet/abstractions/handler.cs` | Handler interface |
54
+ | Result<T> | `.morph/framework/templates/code/dotnet/abstractions/result.cs` | Railway-oriented result |
55
+ | Error | `.morph/framework/templates/code/dotnet/abstractions/error.cs` | Error types |
56
+ | IApiEndpoint | `.morph/framework/templates/code/dotnet/abstractions/api-endpoint.cs` | Endpoint interface |
57
+
58
+ ## Extensions & Pipeline (read once per project setup)
59
+
60
+ | Template | Path | Purpose |
61
+ |----------|------|---------|
62
+ | Handler Registration | `.morph/framework/templates/code/dotnet/extensions/handler-registration.cs` | Scrutor auto-discovery |
63
+ | Map Endpoints | `.morph/framework/templates/code/dotnet/extensions/map-endpoints.cs` | IApiEndpoint discovery |
64
+ | Result Extensions | `.morph/framework/templates/code/dotnet/extensions/result-extensions.cs` | Match() pattern |
65
+ | Database Config | `.morph/framework/templates/code/dotnet/extensions/database-extensions.cs` | EF Core + Npgsql |
66
+ | Health Checks | `.morph/framework/templates/code/dotnet/extensions/health-checks.cs` | Health endpoints |
67
+ | Validation Decorator | `.morph/framework/templates/code/dotnet/pipelines/validation-decorator.cs` | FluentValidation pipeline |
68
+ | Logging Decorator | `.morph/framework/templates/code/dotnet/pipelines/logging-decorator.cs` | Duration tracking |
69
+ | Exception Handler | `.morph/framework/templates/code/dotnet/exceptions/exception-handler.cs` | ProblemDetails |
70
+ | API Tags | `.morph/framework/templates/code/dotnet/constants/api-tags.cs` | Scalar/Swagger groups |
71
+
72
+ ## Specialized Templates
73
+
74
+ | Template | Path | Purpose |
75
+ |----------|------|---------|
76
+ | Migration | `.morph/framework/templates/code/dotnet/database/migration.cs` | EF Core migration |
77
+ | Hangfire Job | `.morph/framework/templates/code/dotnet/jobs/job.cs` | Background job |
78
+ | MAF Agent | `.morph/framework/templates/code/dotnet/jobs/agent.cs` | MS Agent Framework |
79
+ | Unit Test | `.morph/framework/templates/code/dotnet/test.cs` | xUnit AAA test |
80
+ | Contracts VSA | `.morph/framework/templates/code/dotnet/contracts/contracts-vsa.cs` | Full slice contracts |
81
+
82
+ ## Usage
83
+
84
+ 1. **Read the template** to see the exact pattern
85
+ 2. **Generate code following the same structure** (naming, namespaces, imports)
86
+ 3. Or render via CLI: `morph-spec template render <id> <output> '<variables>'`
@@ -1,13 +1,13 @@
1
- ---
2
- paths:
3
- - "**/*.tsx"
4
- - "**/*.css"
5
- - "**/*.scss"
6
- stacks:
7
- - nextjs
8
- ---
9
-
10
- # Frontend Standards
11
-
12
- @.morph/framework/standards/frontend/design-system/naming.md
13
- @.morph/framework/standards/frontend/design-system/animations.md
1
+ ---
2
+ paths:
3
+ - "**/*.tsx"
4
+ - "**/*.css"
5
+ - "**/*.scss"
6
+ stacks:
7
+ - nextjs
8
+ ---
9
+
10
+ # Frontend Standards
11
+
12
+ @.morph/framework/standards/frontend/design-system/naming.md
13
+ @.morph/framework/standards/frontend/design-system/animations.md
@@ -1,27 +1,27 @@
1
- ---
2
- paths:
3
- - "**/Dockerfile*"
4
- - "**/docker-compose*"
5
- - "**/.github/**"
6
- - "**/coolify*"
7
- stacks:
8
- - docker
9
- ---
10
-
11
- # Infrastructure Standards
12
-
13
- @.morph/framework/standards/infrastructure/docker/coolify-deploy.md
14
-
15
- ## Infrastructure Templates
16
-
17
- | Template | Path | Purpose |
18
- |----------|------|---------|
19
- | .NET API Dockerfile | `.morph/framework/templates/infrastructure/docker/dockerfile-api.dockerfile` | Multi-stage .NET |
20
- | Next.js Dockerfile | `.morph/framework/templates/infrastructure/docker/dockerfile-web.dockerfile` | Multi-stage Next.js |
21
- | Docker Compose | `.morph/framework/templates/infrastructure/docker/docker-compose.template.yml` | Local dev env |
22
- | Coolify Config | `.morph/framework/templates/infrastructure/docker/coolify.template.json` | Deployment config |
23
- | .NET Build CI | `.morph/framework/templates/infrastructure/github/workflows/dotnet-build.yml.hbs` | CI workflow |
24
- | Docker Push CI | `.morph/framework/templates/infrastructure/github/workflows/docker-build-push.yml.hbs` | Build & push |
25
- | Deploy Coolify | `.morph/framework/templates/infrastructure/github/workflows/deploy-coolify.yml.hbs` | CD via SSH |
26
-
27
- Read the template and adapt to your project structure.
1
+ ---
2
+ paths:
3
+ - "**/Dockerfile*"
4
+ - "**/docker-compose*"
5
+ - "**/.github/**"
6
+ - "**/coolify*"
7
+ stacks:
8
+ - docker
9
+ ---
10
+
11
+ # Infrastructure Standards
12
+
13
+ @.morph/framework/standards/infrastructure/docker/coolify-deploy.md
14
+
15
+ ## Infrastructure Templates
16
+
17
+ | Template | Path | Purpose |
18
+ |----------|------|---------|
19
+ | .NET API Dockerfile | `.morph/framework/templates/infrastructure/docker/dockerfile-api.dockerfile` | Multi-stage .NET |
20
+ | Next.js Dockerfile | `.morph/framework/templates/infrastructure/docker/dockerfile-web.dockerfile` | Multi-stage Next.js |
21
+ | Docker Compose | `.morph/framework/templates/infrastructure/docker/docker-compose.template.yml` | Local dev env |
22
+ | Coolify Config | `.morph/framework/templates/infrastructure/docker/coolify.template.json` | Deployment config |
23
+ | .NET Build CI | `.morph/framework/templates/infrastructure/github/workflows/dotnet-build.yml.hbs` | CI workflow |
24
+ | Docker Push CI | `.morph/framework/templates/infrastructure/github/workflows/docker-build-push.yml.hbs` | Build & push |
25
+ | Deploy Coolify | `.morph/framework/templates/infrastructure/github/workflows/deploy-coolify.yml.hbs` | CD via SSH |
26
+
27
+ Read the template and adapt to your project structure.
@@ -1,25 +1,25 @@
1
- ---
2
- paths:
3
- - "**/neon/**"
4
- - "**/database/**"
5
- - "**/*Migration*.sql"
6
- - "**/*migration*.sql"
7
- stacks:
8
- - neon
9
- ---
10
-
11
- # Neon PostgreSQL Standards
12
-
13
- @.morph/framework/standards/infrastructure/neon/neon-setup.md
14
- @.morph/framework/standards/infrastructure/neon/neon-pgvector.md
15
- @.morph/framework/standards/infrastructure/neon/neon-pgrag.md
16
- @.morph/framework/standards/backend/integrations/neon-auth/neon-auth.md
17
-
18
- ## SQL Templates
19
-
20
- | Template | Path | Purpose |
21
- |----------|------|---------|
22
- | PostgreSQL Migration | `.morph/framework/templates/code/sql/postgresql-migration.sql` | Database migration |
23
- | PostgreSQL RLS Policy | `.morph/framework/templates/code/sql/postgresql-rls-policy.sql` | Row-level security |
24
-
25
- Read the template and adapt to your project structure.
1
+ ---
2
+ paths:
3
+ - "**/neon/**"
4
+ - "**/database/**"
5
+ - "**/*Migration*.sql"
6
+ - "**/*migration*.sql"
7
+ stacks:
8
+ - neon
9
+ ---
10
+
11
+ # Neon PostgreSQL Standards
12
+
13
+ @.morph/framework/standards/infrastructure/neon/neon-setup.md
14
+ @.morph/framework/standards/infrastructure/neon/neon-pgvector.md
15
+ @.morph/framework/standards/infrastructure/neon/neon-pgrag.md
16
+ @.morph/framework/standards/backend/integrations/neon-auth/neon-auth.md
17
+
18
+ ## SQL Templates
19
+
20
+ | Template | Path | Purpose |
21
+ |----------|------|---------|
22
+ | PostgreSQL Migration | `.morph/framework/templates/code/sql/postgresql-migration.sql` | Database migration |
23
+ | PostgreSQL RLS Policy | `.morph/framework/templates/code/sql/postgresql-rls-policy.sql` | Row-level security |
24
+
25
+ Read the template and adapt to your project structure.
@@ -1,20 +1,20 @@
1
- ---
2
- paths:
3
- - "**/*.tsx"
4
- - "**/*.ts"
5
- stacks:
6
- - nextjs
7
- ---
8
-
9
- # Next.js Standards
10
-
11
- @.morph/framework/standards/frontend/nextjs/naming-conventions.md
12
- @.morph/framework/standards/frontend/nextjs/project-structure.md
13
- @.morph/framework/standards/frontend/nextjs/app-router.md
14
- @.morph/framework/standards/frontend/nextjs/components.md
15
- @.morph/framework/standards/frontend/nextjs/data-fetching.md
16
- @.morph/framework/standards/frontend/nextjs/forms.md
17
- @.morph/framework/standards/frontend/nextjs/state-management.md
18
- @.morph/framework/standards/frontend/nextjs/testing.md
19
- @.morph/framework/standards/frontend/nextjs/nextjs-patterns.md
20
- @.morph/framework/standards/frontend/nextjs/motion-patterns.md
1
+ ---
2
+ paths:
3
+ - "**/*.tsx"
4
+ - "**/*.ts"
5
+ stacks:
6
+ - nextjs
7
+ ---
8
+
9
+ # Next.js Standards
10
+
11
+ @.morph/framework/standards/frontend/nextjs/naming-conventions.md
12
+ @.morph/framework/standards/frontend/nextjs/project-structure.md
13
+ @.morph/framework/standards/frontend/nextjs/app-router.md
14
+ @.morph/framework/standards/frontend/nextjs/components.md
15
+ @.morph/framework/standards/frontend/nextjs/data-fetching.md
16
+ @.morph/framework/standards/frontend/nextjs/forms.md
17
+ @.morph/framework/standards/frontend/nextjs/state-management.md
18
+ @.morph/framework/standards/frontend/nextjs/testing.md
19
+ @.morph/framework/standards/frontend/nextjs/nextjs-patterns.md
20
+ @.morph/framework/standards/frontend/nextjs/motion-patterns.md
@@ -1,40 +1,40 @@
1
- ---
2
- paths:
3
- - "**/*.tsx"
4
- - "**/*.ts"
5
- stacks:
6
- - nextjs
7
- ---
8
-
9
- # Next.js Code Templates
10
-
11
- When implementing Next.js features, use these templates as reference patterns.
12
- Read the template file to see the exact pattern, then generate code following it.
13
-
14
- ## Scaffold (preferred for new features)
15
-
16
- **Always use scaffold for new feature pages — never create feature files manually.**
17
-
18
- ```bash
19
- morph-spec scaffold nextjs <feature> [--dry-run]
20
- ```
21
-
22
- Examples:
23
- ```bash
24
- morph-spec scaffold nextjs book
25
- morph-spec scaffold nextjs user-profile
26
- ```
27
-
28
- Generates 4 files: page (Server Component), list component, form component, TanStack Query hook.
29
-
30
- **Only use `template render` for individual files when modifying an existing feature.**
31
-
32
- | Template | Path | Purpose |
33
- |----------|------|---------|
34
- | Server Page | `.morph/framework/templates/frontend/nextjs/page.tsx.hbs` | App Router server component |
35
- | Client Component | `.morph/framework/templates/frontend/nextjs/client-component.tsx.hbs` | `'use client'` component |
36
- | Feature Form | `.morph/framework/templates/frontend/nextjs/feature-form.tsx.hbs` | react-hook-form + Zod + shadcn |
37
- | Custom Hook | `.morph/framework/templates/frontend/nextjs/use-feature.ts.hbs` | TanStack Query hook |
38
- | Env Config | `.morph/framework/templates/frontend/nextjs/env.mjs.hbs` | T3 Env validation |
39
- | TypeScript Config | `.morph/framework/templates/frontend/nextjs/tsconfig.json.hbs` | Path aliases |
40
- | Dockerfile | `.morph/framework/templates/frontend/nextjs/Dockerfile.nextjs.hbs` | Multi-stage build |
1
+ ---
2
+ paths:
3
+ - "**/*.tsx"
4
+ - "**/*.ts"
5
+ stacks:
6
+ - nextjs
7
+ ---
8
+
9
+ # Next.js Code Templates
10
+
11
+ When implementing Next.js features, use these templates as reference patterns.
12
+ Read the template file to see the exact pattern, then generate code following it.
13
+
14
+ ## Scaffold (preferred for new features)
15
+
16
+ **Always use scaffold for new feature pages — never create feature files manually.**
17
+
18
+ ```bash
19
+ morph-spec scaffold nextjs <feature> [--dry-run]
20
+ ```
21
+
22
+ Examples:
23
+ ```bash
24
+ morph-spec scaffold nextjs book
25
+ morph-spec scaffold nextjs user-profile
26
+ ```
27
+
28
+ Generates 4 files: page (Server Component), list component, form component, TanStack Query hook.
29
+
30
+ **Only use `template render` for individual files when modifying an existing feature.**
31
+
32
+ | Template | Path | Purpose |
33
+ |----------|------|---------|
34
+ | Server Page | `.morph/framework/templates/frontend/nextjs/page.tsx.hbs` | App Router server component |
35
+ | Client Component | `.morph/framework/templates/frontend/nextjs/client-component.tsx.hbs` | `'use client'` component |
36
+ | Feature Form | `.morph/framework/templates/frontend/nextjs/feature-form.tsx.hbs` | react-hook-form + Zod + shadcn |
37
+ | Custom Hook | `.morph/framework/templates/frontend/nextjs/use-feature.ts.hbs` | TanStack Query hook |
38
+ | Env Config | `.morph/framework/templates/frontend/nextjs/env.mjs.hbs` | T3 Env validation |
39
+ | TypeScript Config | `.morph/framework/templates/frontend/nextjs/tsconfig.json.hbs` | Path aliases |
40
+ | Dockerfile | `.morph/framework/templates/frontend/nextjs/Dockerfile.nextjs.hbs` | Multi-stage build |
@@ -4,7 +4,7 @@ description: Guia a criação de uma landing page nova ponta-a-ponta a partir do
4
4
  version: core
5
5
  when-to-invoke: ao iniciar um novo projeto de LP com o template Umbraco genérico
6
6
  user-invokable: true
7
- cliVersion: "8.0.0"
7
+ cliVersion: "8.1.1"
8
8
  ---
9
9
 
10
10
  # create-umbraco-lp
@@ -4,7 +4,7 @@ description: Migra uma landing page existente (React/Vite, Next.js estático ou
4
4
  version: core
5
5
  when-to-invoke: ao receber instrução "use /migrate-lp-to-umbraco {projeto}" do usuário, ou quando o usuário descrever necessidade de migrar uma LP para Umbraco
6
6
  user-invokable: true
7
- cliVersion: "8.0.0"
7
+ cliVersion: "8.1.1"
8
8
  ---
9
9
 
10
10
  # migrate-lp-to-umbraco
@@ -4,7 +4,7 @@ description: Orquestra a execução autônoma de tasks de uma feature morph-spec
4
4
  version: core
5
5
  when-to-invoke: após Gate 2 aprovado, ao receber instrução "use /morph-apply" ou "implementar feature"
6
6
  user-invokable: true
7
- cliVersion: "8.0.0"
7
+ cliVersion: "8.1.1"
8
8
  ---
9
9
 
10
10
  # morph-apply
@@ -134,21 +134,12 @@ dispatch Agent (subagent_type: "morph-{id}") with prompt:
134
134
  Implemente esta task (ou cadeia de tasks do fluxo) isoladamente.
135
135
  Não modifique spec.md, mandate.md.
136
136
 
137
- Protocolo obrigatório:
138
- 1. ATO FINAL OBRIGATÓRIO — relatório via SendMessage: chame a tool
139
- SendMessage com to:"main" e o relatório completo no content como a
140
- ÚLTIMA tool call do seu turno. Sua última mensagem em texto NÃO chega
141
- ao orquestrador — só SendMessage chega. Encerre IMEDIATAMENTE depois
142
- da chamada: zero texto adicional, zero nova tool call, zero "aguardando
143
- confirmação" — o SendMessage É o encerramento, não um passo
144
- intermediário.
145
- Exemplo literal (última chamada de tool da sua sessão, sem nada depois):
146
- SendMessage({ to: "main", content: "Fluxo backend concluído (T2→T7).
147
- Sumário: ... Arquivos: src/... Standards: vsa-handler-patterns.
148
- Auto-score: 9/10" })
149
- Terminar idle sem SendMessage, ou continuar agindo depois dele, é
150
- falha de protocolo — cada segundo entre o SendMessage e o fim real do
151
- turno é cauda que o orquestrador espera sem necessidade.
137
+ Contrato do relatório final:
138
+ 1. ATO FINAL — o seu relatório é a sua ÚLTIMA MENSAGEM DE TEXTO: ela é o
139
+ valor de retorno desta sessão e chega inteira ao orquestrador. NÃO chame
140
+ SendMessage: ele gera um evento a mais além da notificação de término,
141
+ custando um turno inútil ao orquestrador. Escreva o relatório e encerre.
142
+ Relatório oco, ou sem os itens abaixo, é falha de protocolo.
152
143
  2. NÃO toque em tasks.json, feature.json, state.json nem no board de sessão
153
144
  (TaskCreate/TaskUpdate) — todo estado (status de task, scores, gates) é
154
145
  gravado exclusivamente pelo orquestrador.
@@ -158,21 +149,21 @@ dispatch Agent (subagent_type: "morph-{id}") with prompt:
158
149
  a verificação é do orquestrador, uma vez, pós-batch (`morph-spec verify`).
159
150
  - Batch COM isolamento (você recebeu `isolation: "worktree"`): rode build/test
160
151
  DENTRO do seu worktree; commite seu trabalho na branch do worktree como
161
- penúltimo ato (antes do SendMessage); reporte a branch + status de build no
152
+ último ato antes do relatório; reporte a branch + status de build no
162
153
  relatório; NUNCA faça merge nem toque na árvore principal.
163
154
 
164
- Retorne no content do SendMessage:
155
+ Seu relatório final deve conter:
165
156
  - sumário das mudanças
166
157
  - arquivos modificados (paths)
167
158
  - standard(s) consultado(s)
168
159
  - auto-score 0-10 (rubric: completeness, correctness, mandate compliance)
169
160
  ```
170
161
 
171
- > Este template é deliberadamente paritário com o template sequencial em `morph-implement` §4: ambos despacham o **subagent registrado do domínio (`morph-{id}`)** com standard escopado e as mesmas cláusulas de protocolo. A única diferença é que aqui múltiplos agentes rodam ao mesmo tempo, um por fluxo independente.
162
+ > Este template é deliberadamente paritário com o template sequencial em `morph-implement` §4: ambos despacham o **subagent registrado do domínio (`morph-{id}`)** com standard escopado e as mesmas cláusulas do contrato do relatório final. A única diferença é que aqui múltiplos agentes rodam ao mesmo tempo, um por fluxo independente.
172
163
 
173
164
  > **Alternativa quando os fluxos tocam os mesmos projetos/arquivos** (ex.: o mesmo csproj de testes compartilhado): siga a §3b-w abaixo em vez desta seção — despache com `isolation: "worktree"`, cada agente trabalha numa working tree própria e o orquestrador integra ao final.
174
165
 
175
- Aguardar todos os agentes terminarem. O hook `subagent-report-guard` (Stop/SubagentStop) bloqueia uma vez o encerramento de um subagent despachado que não chamou SendMessage, com a instrução da cláusula 1 — o ciclo cobrar-esperar deixa de ser o caminho normal. **Fallback: se mesmo assim um agente ficar idle sem entregar o relatório, cobre-o via SendMessage e registre a falha de protocolo no recap.** Assim que o relatório de um agente chegar (SendMessage como teammate-message), **libere a sessão imediatamente** — chame `TaskStop(task_id: <id/nome do agente retornado pelo dispatch>)` antes de seguir para o próximo agente. Não espere o idle-detector do harness: sem esse `TaskStop`, a sessão fica pendurada minutos até o harness marcá-la idle sozinho e injetar um `idle_notification` vazio de volta nesta sessão. Trate falha do TaskStop (agente já finalizado sozinho) como não-fatal. Depois, sequencialmente:
166
+ Aguardar todos os agentes terminarem — o relatório de cada um chega como o resultado do seu dispatch. Se um relatório vier oco ou sem os itens da cláusula 1, registre a falha de protocolo no recap. Depois, sequencialmente:
176
167
  - **Rodar `morph-spec verify {feature} --json` uma única vez, pós-batch** (escopo feature) — os agentes não a rodaram (cláusula 3). Vermelho: use `verify.feedback` para corrigir/redespachar ANTES de qualquer morph-eval. (Com isolamento por worktree, cada agente já rodou o verify dentro do seu worktree; o orquestrador roda o verify compartilhado UMA vez após o merge — ver §3b-w.)
177
168
  - Para cada relatório retornado:
178
169
  - Aplicar `Skill(morph-eval)`.
@@ -187,7 +178,7 @@ Depois do batch paralelo, executar o restante em modo sequencial (passo 3a).
187
178
  Quando o `morph-spec dag {feature}` reporta `isolation.recommended: "worktree"` (dois fluxos paralelos planejam escrever no mesmo path — colisão de `outputs`), despache cada fluxo com o parâmetro `isolation: "worktree"` do tool Agent. Cada agente trabalha numa working tree própria; build/test rodam lá dentro sem colidir.
188
179
 
189
180
  1. **Dispatch:** mesmo `subagent_type: "morph-{id}"` e standards de §3b, mais `isolation: "worktree"`. Se a stack for Node e faltar `node_modules` no worktree, o agente roda `morph-spec worktree link` (fail-open) antes de testar; se ainda impossível, reporta "verificação: não executada" (o verify pós-merge cobre). O agente commita na branch do worktree e reporta a branch.
190
- 2. **Integração (orquestrador, após todos os relatórios + `TaskStop`):** faça o merge de cada branch reportada, uma por vez, na ordem de chegada — `git merge --no-ff <branch>`. Conflito → `git merge --abort`, marque a task de volta a `pending` com nota "merge conflict — reexecutar sequencial", siga para a próxima branch. Os paths em conflito são exatamente os de `isolation.collisions` do dag.
181
+ 2. **Integração (orquestrador, após todos os relatórios):** faça o merge de cada branch reportada, uma por vez, na ordem de chegada — `git merge --no-ff <branch>`. Conflito → `git merge --abort`, marque a task de volta a `pending` com nota "merge conflict — reexecutar sequencial", siga para a próxima branch. Os paths em conflito são exatamente os de `isolation.collisions` do dag.
191
182
  3. **Pós-merge:** rode `morph-spec verify {feature} --json` UMA vez (o merge é o novo ponto de integração — verificação compartilhada obrigatória), depois `morph-eval` + `morph-spec score` por relatório, como em §3b.
192
183
  4. **Cleanup:** `git worktree remove` + `git branch -d` das branches integradas + `git worktree prune` (fail-open). Branches não integradas ficam e são registradas no recap com o motivo.
193
184
  5. **Agente morto no meio:** se commitou, a branch sobrevive (retomável); senão, a task volta a `pending` na lane sequencial. Registre a falha de protocolo no recap.
@@ -4,7 +4,7 @@ description: Entende o negócio, os usuários e a arquitetura antes de qualquer
4
4
  version: core
5
5
  when-to-invoke: ao receber um novo request de feature, antes de morph-plan
6
6
  user-invokable: true
7
- cliVersion: "8.0.0"
7
+ cliVersion: "8.1.1"
8
8
  ---
9
9
 
10
10
  # morph-brainstorming
@@ -4,7 +4,7 @@ description: Avalia a qualidade de uma tarefa ou fase com rubricas graduadas 0-1
4
4
  version: core
5
5
  when-to-invoke: ao completar uma tarefa ou ao finalizar uma fase de implementação
6
6
  user-invokable: false
7
- cliVersion: "8.0.0"
7
+ cliVersion: "8.1.1"
8
8
  ---
9
9
 
10
10
  # morph-eval
@@ -4,7 +4,7 @@ description: ADW cirúrgico de hotfix — resolve uma queda/bug crítico de prod
4
4
  version: core
5
5
  when-to-invoke: ao receber "/morph-hotfix {feature}", quando a morph-proposal classifica o pedido como workType hotfix (Passo 0), ou o usuário diz "produção caiu / hotfix / urgente"
6
6
  user-invokable: true
7
- cliVersion: "8.0.0"
7
+ cliVersion: "8.1.1"
8
8
  ---
9
9
 
10
10
  # morph-hotfix
@@ -43,9 +43,7 @@ subagent_type: "morph-scout"
43
43
 
44
44
  **Fallback** (se `morph-scout` não estiver registrado nos subagent types deste projeto): `general-purpose` com o campo `persona` do agente `scout` colado no prompt, **registrando o fallback nas notes da task**.
45
45
 
46
- Peça ao scout: localizar o root cause provável, os arquivos afetados e o blast radius (o que mais pode quebrar). Ele é read-only (Read/Glob/Grep/Bash somente-leitura) — não escreve código. Inclua as 3 cláusulas de protocolo obrigatório no prompt (template literal em `morph-implement` §4 / `morph-apply` §3b): ato final = relatório via `SendMessage` para `main` como a ÚLTIMA tool call do turno, sem texto ou tool call depois; não tocar `tasks.json`/`feature.json`/`state.json` nem o board de sessão; sem build/test da suíte compartilhada em batch paralelo.
47
-
48
- Ao receber o mapa via `SendMessage`, **libere a sessão imediatamente**: `TaskStop(task_id: <id/nome retornado pelo dispatch>)` (trate falha como não-fatal).
46
+ Peça ao scout: localizar o root cause provável, os arquivos afetados e o blast radius (o que mais pode quebrar). Ele é read-only (Read/Glob/Grep/Bash somente-leitura) — não escreve código. Inclua as 3 cláusulas do contrato do relatório final no prompt (template literal em `morph-implement` §4 / `morph-apply` §3b): ato final = o relatório é a última mensagem de texto, sem `SendMessage`; não tocar `tasks.json`/`feature.json`/`state.json` nem o board de sessão; sem build/test da suíte compartilhada em batch paralelo.
49
47
 
50
48
  ### 3. Hotfix brief (`0-proposal/proposal.md`)
51
49
 
@@ -4,7 +4,7 @@ description: Guia a execução de cada tarefa de implementação com standard e
4
4
  version: core
5
5
  when-to-invoke: ao iniciar cada task de implementação listada em tasks.json
6
6
  user-invokable: false
7
- cliVersion: "8.0.0"
7
+ cliVersion: "8.1.1"
8
8
  ---
9
9
 
10
10
  # morph-implement
@@ -58,21 +58,12 @@ Ao iniciar cada task de `tasks.json` — antes de escrever qualquer código. Nor
58
58
  Arquivos relevantes: [lista de paths]
59
59
  Done quando: [doneCriteria do tasks.json]
60
60
 
61
- Protocolo obrigatório:
62
- 1. ATO FINAL OBRIGATÓRIO — relatório via SendMessage: chame a tool
63
- SendMessage com to:"main" e o relatório completo no content como a
64
- ÚLTIMA tool call do seu turno. Sua última mensagem em texto NÃO chega
65
- ao orquestrador — só SendMessage chega. Encerre IMEDIATAMENTE depois
66
- da chamada: zero texto adicional, zero nova tool call, zero "aguardando
67
- confirmação" — o SendMessage É o encerramento, não um passo
68
- intermediário antes de um encerramento "de verdade".
69
- Exemplo literal (última chamada de tool da sua sessão, sem nada depois):
70
- SendMessage({ to: "main", content: "T{N} concluída. (1) O que foi feito:
71
- handler + validator do slice X. (2) Arquivos: src/Features/X/Handler.cs,
72
- tests/X/HandlerTests.cs. (3) Problemas: nenhum. (4) Auto-score: 9/10" })
73
- Terminar idle sem SendMessage, ou continuar agindo depois dele, é
74
- falha de protocolo — cada segundo entre o SendMessage e o fim real do
75
- turno é cauda que o orquestrador espera sem necessidade.
61
+ Contrato do relatório final:
62
+ 1. ATO FINAL — o seu relatório é a sua ÚLTIMA MENSAGEM DE TEXTO: ela é o
63
+ valor de retorno desta sessão e chega inteira ao orquestrador. NÃO chame
64
+ SendMessage: ele gera um evento a mais além da notificação de término,
65
+ custando um turno inútil ao orquestrador. Escreva o relatório e encerre.
66
+ Relatório oco, ou sem os 4 itens abaixo, é falha de protocolo.
76
67
  2. NÃO toque em tasks.json, feature.json, state.json nem no board de sessão
77
68
  (TaskCreate/TaskUpdate) — todo estado é gravado exclusivamente pelo
78
69
  orquestrador.
@@ -80,14 +71,14 @@ Ao iniciar cada task de `tasks.json` — antes de escrever qualquer código. Nor
80
71
  NÃO rode build/test da suíte compartilhada — a verificação
81
72
  (`morph-spec verify`) é do orquestrador, uma vez, pós-batch. Em batch
82
73
  COM `isolation: "worktree"`, rode build/test dentro do seu worktree,
83
- commite na branch do worktree como penúltimo ato (antes do SendMessage)
74
+ commite na branch do worktree como último ato antes do relatório
84
75
  e reporte a branch — nunca faça merge.
85
76
 
86
- Retorne no content do SendMessage APENAS: (1) o que foi feito em 2-3 frases,
77
+ Seu relatório final deve conter APENAS: (1) o que foi feito em 2-3 frases,
87
78
  (2) arquivos modificados, (3) problemas encontrados e como foram resolvidos,
88
79
  (4) auto-score 0-10.
89
80
  ```
90
- Após receber o retorno: o auto-score é **triagem, não aprovação** — se < 7, re-despache com o feedback específico (ou corrija inline) antes de prosseguir. Em qualquer caso, a task só avança quando `morph-eval` der score ≥ 9 (barra única do MORPH.md §0). **Libere a sessão do sub-agent imediatamente após consumir o relatório** — chame `TaskStop(task_id: <id/nome retornado pelo dispatch>)`. Isso evita que o idle-detector do harness dispare minutos depois e injete um `idle_notification` como teammate-message vazio na sua sessão; trate falha do TaskStop (agente já finalizado sozinho) como não-fatal. Integre o relatório ao recap.md e vá para o passo 7.
81
+ Após receber o retorno: o auto-score é **triagem, não aprovação** — se < 7, re-despache com o feedback específico (ou corrija inline) antes de prosseguir. Em qualquer caso, a task só avança quando `morph-eval` der score ≥ 9 (barra única do MORPH.md §0). Integre o relatório ao recap.md e vá para o passo 7.
91
82
 
92
83
  **Se não — siga para o passo 5.**
93
84