@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.
- package/README.md +2 -2
- package/bin/validate.js +379 -379
- package/claude-plugin.json +1 -1
- package/docs/CHEATSHEET.md +1 -1
- package/docs/QUICKSTART.md +1 -1
- package/framework/CLAUDE.md +1 -1
- package/framework/MORPH.md +5 -5
- package/framework/agents.json +1 -1
- package/framework/commands/commit.md +166 -166
- package/framework/commands/morph-infra.md +215 -215
- package/framework/commands/morph-preflight.md +205 -205
- package/framework/commands/morph-troubleshoot.md +124 -124
- package/framework/hooks/README.md +0 -1
- package/framework/hooks/claude-code/statusline.py +679 -679
- package/framework/hooks/claude-code/statusline.sh +11 -11
- package/framework/hooks/git/commit-msg/conventional-commits.sh +33 -33
- package/framework/hooks/git/pre-commit/agents.sh +25 -25
- package/framework/hooks/git/pre-commit/orchestrator.sh +64 -64
- package/framework/hooks/git/pre-commit/specs.sh +50 -50
- package/framework/hooks/git/pre-push/run-tests.sh +44 -44
- package/framework/hooks/shared/activity-logger.js +160 -160
- package/framework/hooks/shared/stdin-reader.js +26 -26
- package/framework/rubrics/backend.json +41 -41
- package/framework/rules/ai-agents-standards.md +45 -45
- package/framework/rules/dotnet-templates.md +86 -86
- package/framework/rules/frontend-standards.md +13 -13
- package/framework/rules/infrastructure-standards.md +27 -27
- package/framework/rules/neon-standards.md +25 -25
- package/framework/rules/nextjs-standards.md +20 -20
- package/framework/rules/nextjs-templates.md +40 -40
- package/framework/skills/core/create-umbraco-lp/SKILL.md +1 -1
- package/framework/skills/core/migrate-lp-to-umbraco/SKILL.md +1 -1
- package/framework/skills/core/morph-apply/SKILL.md +12 -21
- package/framework/skills/core/morph-brainstorming/SKILL.md +1 -1
- package/framework/skills/core/morph-eval/SKILL.md +1 -1
- package/framework/skills/core/morph-hotfix/SKILL.md +2 -4
- package/framework/skills/core/morph-implement/SKILL.md +10 -19
- package/framework/skills/core/morph-plan/SKILL.md +1 -1
- package/framework/skills/core/morph-proposal/SKILL.md +1 -1
- package/framework/skills/core/morph-review/SKILL.md +11 -15
- package/framework/skills/core/morph-stack-scan/SKILL.md +1 -1
- package/framework/skills/core/morph-standards/SKILL.md +1 -1
- package/framework/standards/ai-agents/agent-session.md +160 -160
- package/framework/standards/ai-agents/batching.md +193 -193
- package/framework/standards/ai-agents/context-providers.md +188 -188
- package/framework/standards/ai-agents/mcp-server.md +250 -250
- package/framework/standards/ai-agents/mcp-tools.md +197 -197
- package/framework/standards/ai-agents/middleware-patterns.md +207 -207
- package/framework/standards/ai-agents/modalities-image-gen.md +173 -173
- package/framework/standards/ai-agents/modalities-speech-to-text.md +171 -171
- package/framework/standards/ai-agents/modalities-text-to-speech.md +181 -181
- package/framework/standards/ai-agents/modalities-vision.md +201 -201
- package/framework/standards/ai-agents/multi-agent-patterns.md +155 -155
- package/framework/standards/ai-agents/production.md +275 -275
- package/framework/standards/ai-agents/prompts-in-db.md +214 -214
- package/framework/standards/ai-agents/providers/model-registry.md +158 -158
- package/framework/standards/ai-agents/service-tier-flex.md +135 -135
- package/framework/standards/ai-agents/structured-output.md +249 -249
- package/framework/standards/ai-agents/sweet-spot.md +109 -109
- package/framework/templates/IDE-SNIPPETS.md +262 -262
- package/framework/templates/code/dotnet/abstractions/api-endpoint.cs +7 -7
- package/framework/templates/code/dotnet/ai-agents/AgentBootstrap.cs.template +39 -39
- package/framework/templates/code/dotnet/ai-agents/EmbeddingService.cs.template +68 -68
- package/framework/templates/code/dotnet/ai-agents/ModelRegistry.cs.template +117 -117
- package/framework/templates/code/dotnet/ai-agents/PromptRepository.cs.template +95 -95
- package/framework/templates/code/dotnet/ai-agents/ResilientToolMiddleware.cs.template +61 -61
- package/framework/templates/code/dotnet/ai-agents/VectorSearchTool.cs.template +107 -107
- package/framework/templates/code/dotnet/ai-agents/model-registry.json.template +58 -58
- package/framework/templates/code/dotnet/contracts/contracts-vsa.cs +281 -281
- package/framework/templates/code/dotnet/database/migration.cs +83 -83
- package/framework/templates/code/dotnet/feature/endpoint.cs.hbs +21 -21
- package/framework/templates/code/dotnet/feature/request.cs.hbs +4 -4
- package/framework/templates/code/dotnet/feature/response.cs.hbs +4 -4
- package/framework/templates/code/dotnet/feature/validator.cs.hbs +15 -15
- package/framework/templates/code/sql/ai-agents/agent-prompts-migration.sql.template +58 -58
- package/framework/templates/code/sql/ai-agents/pgvector-embeddings-migration.sql.template +91 -91
- package/framework/templates/code/typescript/contracts.ts +167 -167
- package/framework/templates/docs/clarifications.md +253 -253
- package/framework/templates/docs/schema-analysis.md +119 -119
- package/framework/templates/docs/ui-components.md +52 -52
- package/framework/templates/docs/ui-design-system.md +76 -76
- package/framework/templates/docs/ui-flows.md +167 -167
- package/framework/templates/docs/ui-mockups.md +98 -98
- package/framework/templates/feature/decisions.md +122 -122
- package/framework/templates/frontend/nextjs/Dockerfile.nextjs.hbs +43 -43
- package/framework/templates/frontend/nextjs/client-component.tsx.hbs +26 -26
- package/framework/templates/frontend/nextjs/env.mjs.hbs +32 -32
- package/framework/templates/frontend/nextjs/feature-form.tsx.hbs +56 -56
- package/framework/templates/frontend/nextjs/page.tsx.hbs +22 -22
- package/framework/templates/frontend/nextjs/tsconfig.json.hbs +26 -26
- package/framework/templates/frontend/nextjs/use-feature.ts.hbs +54 -54
- package/framework/templates/infrastructure/docker/Dockerfile.template +58 -58
- package/framework/templates/infrastructure/docker/docker-compose.template.yml +50 -50
- package/framework/templates/infrastructure/docker/dockerfile-api.dockerfile +38 -38
- package/framework/templates/infrastructure/docker/dockerfile-web.dockerfile +48 -48
- package/framework/templates/infrastructure/github/README.md +56 -56
- package/framework/templates/infrastructure/github/actions/docker-build-push/action.yml.hbs +45 -45
- package/framework/templates/infrastructure/github/actions/health-check/action.yml.hbs +27 -27
- package/framework/templates/infrastructure/github/workflows/docker-build-push.yml.hbs +59 -59
- package/framework/templates/infrastructure/github/workflows/dotnet-build.yml.hbs +39 -39
- package/framework/templates/integrations/asaas-client.cs +387 -387
- package/framework/templates/integrations/asaas-webhook.cs +351 -351
- package/framework/templates/meta-prompts/fusion/fusion-agent.md +76 -76
- package/framework/templates/meta-prompts/fusion/fusion-aggregator.md +100 -100
- package/framework/templates/meta-prompts/validators/pre-commit-validator.md +95 -95
- package/framework/templates/project/validate.js +120 -120
- package/framework/templates/state.template.json +17 -17
- package/framework/templates/ui/design-system.css +226 -226
- package/package.json +1 -1
- package/src/commands/dashboard/dashboard.js +53 -53
- package/src/commands/index.js +13 -13
- package/src/commands/mcp/mcp-setup.js +519 -519
- package/src/commands/project/checkpoint.js +209 -209
- package/src/commands/project/worktree.js +83 -1
- package/src/core/state/phase-state-machine.js +197 -197
- package/src/core/templates/template-renderer.js +477 -477
- package/src/dashboard/app/components/DetailPanel.jsx +11 -11
- package/src/dashboard/app/components/FlowGraph.jsx +17 -17
- package/src/dashboard/app/components/SearchFilter.jsx +22 -22
- package/src/dashboard/app/hooks/useDetailPanel.js +15 -15
- package/src/dashboard/app/main.jsx +13 -13
- package/src/dashboard/app/pages/AgentMap.jsx +370 -370
- package/src/dashboard/app/pages/HookInspector.jsx +418 -418
- package/src/dashboard/app/pages/PhasePipeline.jsx +408 -408
- package/src/dashboard/app/pages/RulesMap.jsx +273 -273
- package/src/dashboard/app/pages/SkillsLibrary.jsx +366 -366
- package/src/dashboard/app/pages/Standards.jsx +332 -332
- package/src/dashboard/app/styles/index.css +47 -47
- package/src/dashboard/index.html +12 -12
- package/src/dashboard/package.json +24 -24
- package/src/dashboard/scanner/hooks-scanner.js +41 -41
- package/src/dashboard/scanner/phases-scanner.js +15 -15
- package/src/dashboard/scanner/rubrics-scanner.js +12 -12
- package/src/dashboard/scanner/rules-scanner.js +37 -37
- package/src/dashboard/scanner/skills-scanner.js +43 -43
- package/src/dashboard/scanner/squads-scanner.js +13 -13
- package/src/dashboard/scanner/standards-scanner.js +26 -26
- package/src/dashboard/vite-plugin-morph-data.js +17 -17
- package/src/dashboard/vite.config.js +24 -24
- package/src/lib/agents/metrics-aggregator.js +56 -56
- package/src/lib/agents/metrics-calculator.js +125 -125
- package/src/lib/agents/output-collector.js +73 -73
- package/src/lib/detectors/claude-config-detector.js +152 -152
- package/src/lib/detectors/design-system-detector.js +231 -231
- package/src/lib/detectors/index.js +217 -217
- package/src/lib/generators/architecture-scanner.js +639 -639
- package/src/lib/generators/design-system-generator.js +508 -508
- package/src/lib/generators/index.js +13 -13
- package/src/lib/generators/settings-generator.js +209 -209
- package/src/lib/hooks/hook-executor.js +167 -167
- package/src/lib/installers/mcp-installer.js +719 -719
- package/src/lib/tasks/task-classifier.js +30 -30
- package/src/lib/tasks/task-parser.js +209 -209
- package/src/lib/validators/architecture/architecture-validator.js +259 -259
- package/src/lib/validators/checkpoint-persistence.js +39 -39
- package/src/lib/validators/contracts/contract-compliance-validator.js +274 -274
- package/src/lib/validators/css/css-validator.js +340 -340
- package/src/lib/validators/packages/package-validator.js +347 -347
- package/src/lib/validators/shared/emit-validator-dispatch.js +14 -14
- package/src/lib/validators/shared/issue-counter.js +14 -14
- package/src/lib/validators/validation-runner.js +349 -349
- package/src/utils/agent-id-mapper.js +11 -11
- package/src/utils/claude-settings-manager.js +300 -300
- package/src/utils/hooks-installer.js +3 -24
- package/src/utils/skills-installer.js +174 -174
- package/framework/hooks/claude-code/core/subagent-report-guard.js +0 -95
- package/framework/templates/.idea/morph-templates.xml +0 -92
- 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.
|
|
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.
|
|
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.
|
|
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
|
-
|
|
138
|
-
1. ATO FINAL
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
|
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.
|
|
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
|
-
|
|
62
|
-
1. ATO FINAL
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
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
|
|
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
|
-
|
|
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).
|
|
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
|
|