@polymorphism-tech/morph-spec 4.11.1 → 4.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +21 -29
- package/bin/morph-spec.js +41 -24
- package/bin/task-manager.js +962 -1341
- package/bin/validate.js +1 -1
- package/claude-plugin.json +1 -1
- package/docs/CHEATSHEET.md +10 -11
- package/docs/QUICKSTART.md +15 -15
- package/framework/CLAUDE.md +5 -2
- package/framework/agents/README.md +3 -4
- package/framework/agents/ai-agents/ai-system-architect.md +6 -10
- package/framework/agents/architecture/seo-growth-hacker.md +166 -326
- package/framework/agents/architecture/standards-architect.md +21 -31
- package/framework/agents/backend/dotnet-senior.md +160 -86
- package/framework/agents/backend/ef-modeler.md +2 -6
- package/framework/agents/backend/hangfire-orchestrator.md +8 -9
- package/framework/agents/backend/ms-agent-expert.md +1 -1
- package/framework/agents/frontend/nextjs-expert.md +198 -133
- package/framework/agents/frontend/ui-ux-designer.md +226 -267
- package/framework/agents/infrastructure/infra-architect.md +191 -27
- package/framework/agents/integrations/clerk-auth.md +19 -26
- package/framework/agents/integrations/hangfire-integration.md +1 -4
- package/framework/agents.json +226 -1454
- package/framework/commands/morph-apply.md +4 -4
- package/framework/commands/morph-preflight.md +4 -26
- package/framework/commands/morph-proposal.md +19 -19
- package/framework/commands/morph-status.md +2 -2
- package/framework/commands/morph-troubleshoot.md +6 -13
- package/framework/hooks/README.md +1 -6
- package/framework/hooks/claude-code/post-tool-use/agent-complete.js +122 -0
- package/framework/hooks/claude-code/post-tool-use/validator-feedback.js +4 -6
- package/framework/hooks/claude-code/pre-compact/save-morph-context.js +12 -7
- package/framework/hooks/claude-code/pre-tool-use/enforce-phase-writes.js +2 -2
- package/framework/hooks/claude-code/pre-tool-use/protect-spec-files.js +2 -2
- package/framework/hooks/claude-code/pre-tool-use/task-tracking-guard.js +5 -10
- package/framework/hooks/claude-code/session-start/inject-morph-context.js +63 -30
- package/framework/hooks/claude-code/session-start/resume-context.js +77 -0
- package/framework/hooks/claude-code/statusline.py +4 -5
- package/framework/hooks/claude-code/stop/validate-completion.js +4 -4
- package/framework/hooks/claude-code/user-prompt/enrich-prompt.js +8 -8
- package/framework/hooks/shared/compact-restore.js +28 -5
- package/framework/hooks/shared/dispatch-helpers.js +17 -0
- package/framework/hooks/shared/phase-utils.js +4 -8
- package/framework/hooks/shared/state-reader.js +34 -3
- package/framework/phases.json +7 -45
- package/framework/rules/ai-agents-standards.md +15 -0
- package/framework/rules/asaas-standards.md +13 -0
- package/framework/rules/clerk-standards.md +13 -0
- package/framework/rules/csharp-standards.md +8 -4
- package/framework/rules/data-standards.md +18 -0
- package/framework/rules/dotnet-templates.md +87 -0
- package/framework/rules/frontend-standards.md +13 -13
- package/framework/rules/hangfire-standards.md +13 -0
- package/framework/rules/infrastructure-standards.md +27 -16
- package/framework/rules/morph-workflow.md +73 -13
- package/framework/rules/nextjs-standards.md +1 -0
- package/framework/rules/nextjs-templates.md +40 -0
- package/framework/rules/resend-standards.md +12 -0
- package/framework/rules/supabase-standards.md +29 -0
- package/framework/skills/README.md +6 -8
- package/framework/skills/level-0-meta/mcp-registry.json +21 -99
- package/framework/{standards/ai-agents/team-orchestration.md → skills/level-0-meta/morph-agent-teams/SKILL.md} +472 -479
- package/framework/skills/level-0-meta/morph-brainstorming/SKILL.md +28 -1
- package/framework/skills/level-0-meta/morph-checklist/SKILL.md +2 -2
- package/framework/skills/level-0-meta/morph-code-review/SKILL.md +1 -5
- package/framework/skills/level-0-meta/morph-code-review/scripts/scan-csharp.mjs +1 -1
- package/framework/skills/level-0-meta/morph-frontend-review/SKILL.md +23 -41
- package/framework/skills/level-0-meta/morph-init/SKILL.md +18 -14
- package/framework/skills/level-0-meta/morph-parallel-dispatch/SKILL.md +225 -0
- package/framework/skills/level-0-meta/morph-post-implementation/SKILL.md +20 -0
- package/framework/skills/level-0-meta/morph-tool-usage-guide/SKILL.md +4 -8
- package/framework/skills/level-0-meta/morph-tool-usage-guide/references/tools-per-phase.md +15 -59
- package/framework/skills/level-0-meta/morph-verification-before-completion/SKILL.md +7 -19
- package/framework/skills/level-0-meta/morph-verification-before-completion/scripts/check-phase-outputs.mjs +8 -8
- package/framework/skills/level-1-workflows/README.md +1 -1
- package/framework/skills/level-1-workflows/morph-phase-codebase-analysis/SKILL.md +49 -50
- package/framework/skills/level-1-workflows/morph-phase-design/SKILL.md +58 -124
- package/framework/skills/level-1-workflows/morph-phase-design/references/architecture-analysis-guide.md +5 -50
- package/framework/skills/level-1-workflows/morph-phase-design/references/spec-example.md +1 -1
- package/framework/skills/level-1-workflows/morph-phase-implement/SKILL.md +127 -159
- package/framework/skills/level-1-workflows/morph-phase-implement/prompts/implementer-prompt.md +4 -3
- package/framework/skills/level-1-workflows/morph-phase-implement/prompts/spec-reviewer-prompt.md +2 -2
- package/framework/skills/level-1-workflows/morph-phase-implement/references/recap-example.md +1 -1
- package/framework/skills/level-1-workflows/morph-phase-plan/SKILL.md +17 -13
- package/framework/skills/level-1-workflows/morph-phase-tasks/SKILL.md +22 -40
- package/framework/skills/level-1-workflows/morph-phase-tasks/references/task-planning-patterns.md +0 -2
- package/framework/skills/level-1-workflows/morph-phase-tasks/references/tasks-example.md +5 -5
- package/framework/skills/level-1-workflows/morph-phase-uiux/SKILL.md +275 -61
- package/framework/skills/level-1-workflows/morph-scope-escalation/SKILL.md +1 -1
- package/framework/squad-templates/backend-only.json +6 -6
- package/framework/squad-templates/frontend-only.json +17 -8
- package/framework/squad-templates/full-stack.json +29 -24
- package/framework/standards/STANDARDS.json +1021 -2338
- package/framework/standards/backend/dotnet/fluent-validation-vsa.md +200 -0
- package/framework/standards/backend/dotnet/result-pattern.md +213 -0
- package/framework/standards/backend/dotnet/scalar-ui.md +172 -0
- package/framework/standards/backend/dotnet/scrutor.md +158 -0
- package/framework/standards/backend/dotnet/vsa-handler-patterns.md +274 -0
- package/framework/standards/frontend/nextjs/motion-patterns.md +1 -1
- package/framework/standards/infrastructure/supabase/mcp-setup.md +83 -193
- package/framework/standards/integration/mcp/mcp-tools.md +91 -77
- package/framework/templates/IDE-SNIPPETS.md +2 -6
- package/framework/templates/README.md +709 -814
- package/framework/templates/REGISTRY.json +223 -762
- package/framework/templates/code/dotnet/abstractions/api-endpoint.cs +7 -0
- package/framework/templates/code/dotnet/abstractions/error.cs +60 -0
- package/framework/templates/code/dotnet/abstractions/handler.cs +12 -0
- package/framework/templates/code/dotnet/abstractions/result.cs +74 -0
- package/framework/templates/code/dotnet/backend/repository.cs +148 -141
- package/framework/templates/code/dotnet/constants/api-tags.cs +6 -0
- package/framework/templates/code/dotnet/exceptions/exception-handler.cs +32 -0
- package/framework/templates/code/dotnet/extensions/database-extensions.cs +20 -0
- package/framework/templates/code/dotnet/extensions/handler-registration.cs +38 -0
- package/framework/templates/code/dotnet/extensions/health-checks.cs +24 -0
- package/framework/templates/code/dotnet/extensions/map-endpoints.cs +35 -0
- package/framework/templates/code/dotnet/extensions/result-extensions.cs +29 -0
- package/framework/templates/code/dotnet/feature/endpoint.cs.hbs +21 -0
- package/framework/templates/code/dotnet/feature/entity.cs.hbs +8 -0
- package/framework/templates/code/dotnet/feature/errors.cs.hbs +8 -0
- package/framework/templates/code/dotnet/feature/handler.cs.hbs +24 -0
- package/framework/templates/code/dotnet/feature/request.cs.hbs +4 -0
- package/framework/templates/code/dotnet/feature/response.cs.hbs +4 -0
- package/framework/templates/code/dotnet/feature/validator.cs.hbs +15 -0
- package/framework/templates/code/dotnet/jobs/job.cs +21 -17
- package/framework/templates/code/dotnet/pipelines/logging-decorator.cs +31 -0
- package/framework/templates/code/dotnet/pipelines/validation-decorator.cs +97 -0
- package/framework/templates/code/dotnet/test.cs +192 -106
- package/framework/templates/context/ARCHITECTURE.md +89 -0
- package/framework/templates/context/CONTEXT-FEATURE.md +2 -2
- package/framework/templates/context/CONTEXT.md +180 -181
- package/framework/templates/context/design-system.md +342 -211
- package/framework/templates/docs/onboarding.md +2 -3
- package/framework/templates/docs/proposal.md +171 -182
- package/framework/templates/docs/spec.md +1 -3
- package/framework/templates/docs/ui-components.md +0 -72
- package/framework/templates/examples/design-system-examples.md +4 -4
- package/framework/templates/feature/decisions.md +0 -66
- package/framework/templates/feature/recap.md +1 -2
- package/framework/templates/infrastructure/github/README.md +56 -593
- package/framework/templates/integrations/clerk-config.cs +0 -41
- package/framework/templates/meta-prompts/parallel-workers/parallel-worker.md +2 -2
- package/framework/templates/meta-prompts/squad-leaders/backend-squad.md +1 -2
- package/framework/templates/meta-prompts/squad-leaders/frontend-squad.md +83 -126
- package/framework/templates/meta-prompts/validators/pre-commit-validator.md +2 -2
- package/framework/templates/project/validate.js +2 -4
- package/framework/templates/ui/design-system.css +1 -1
- package/framework/workflows/README.md +8 -8
- package/framework/workflows/configs/fast-track.json +51 -0
- package/framework/workflows/configs/full.json +68 -0
- package/framework/workflows/configs/standard.json +7 -3
- package/framework/workflows/docs/STORY-DRIVEN-DEVELOPMENT.md +1 -1
- package/framework/workflows/docs/enforcement-pipeline.md +18 -19
- package/framework/workflows/docs/full-morph.md +69 -76
- package/framework/workflows/docs/standard.md +49 -44
- package/framework/workflows/docs/ui-refresh.md +1 -1
- package/package.json +3 -3
- package/src/commands/agents/dispatch-agents.js +55 -116
- package/src/commands/context/context-refresh.js +79 -0
- package/src/commands/mcp/mcp-setup.js +28 -6
- package/src/commands/phase/phase-reset.js +1 -1
- package/src/commands/project/doctor.js +10 -32
- package/src/commands/project/init.js +32 -1
- package/src/commands/project/status.js +6 -12
- package/src/commands/scaffold/scaffold.js +131 -0
- package/src/commands/scope/escalate.js +1 -1
- package/src/commands/state/advance-phase.js +15 -29
- package/src/commands/state/state.js +20 -5
- package/src/commands/tasks/task.js +0 -30
- package/src/commands/validation/validate-feature.js +3 -10
- package/src/core/paths/output-schema.js +12 -13
- package/src/core/state/phase-state-machine.js +211 -217
- package/src/core/state/state-manager.js +9 -9
- package/src/lib/agents/agents-manager.js +2 -2
- package/src/lib/agents/output-collector.js +1 -2
- package/src/lib/detectors/design-system-detector.js +4 -4
- package/src/lib/detectors/index.js +1 -11
- package/src/lib/generators/architecture-scanner.js +640 -0
- package/src/lib/generators/context-generator.js +3 -3
- package/src/lib/generators/design-system-generator.js +508 -298
- package/src/lib/generators/index.js +12 -10
- package/src/lib/generators/metadata-extractor.js +386 -387
- package/src/lib/generators/recap-generator.js +4 -4
- package/src/lib/generators/scaffold-generator.js +317 -0
- package/src/lib/generators/settings-generator.js +0 -1
- package/src/lib/phase-chain/phase-validator.js +64 -42
- package/src/lib/stack/stack-profile.js +2 -2
- package/src/lib/standards/digest-builder.js +72 -285
- package/src/lib/tasks/task-parser.js +11 -5
- package/src/lib/validators/architecture/architecture-validator.js +259 -387
- package/src/lib/validators/content/content-validator.js +287 -287
- package/src/lib/validators/css/css-validator.js +340 -352
- package/src/lib/validators/design-system/design-system-validator.js +11 -5
- package/src/lib/validators/packages/package-validator.js +347 -360
- package/src/lib/validators/shared/issue-counter.js +14 -18
- package/src/lib/validators/validation-runner.js +3 -19
- package/src/scripts/setup-infra.js +1 -1
- package/src/utils/agents-installer.js +24 -3
- package/src/utils/file-copier.js +1 -0
- package/src/utils/hooks-installer.js +21 -19
- package/src/utils/skills-installer.js +178 -178
- package/framework/agents/architecture/prompt-engineer.md +0 -195
- package/framework/agents/backend/api-designer.md +0 -106
- package/framework/agents/frontend/blazor-builder.md +0 -229
- package/framework/agents/frontend/nextjs-ui-specialist.md +0 -218
- package/framework/agents/infrastructure/azure-architect.md +0 -150
- package/framework/agents/infrastructure/azure-deploy-specialist.md +0 -707
- package/framework/agents/infrastructure/bicep-architect.md +0 -132
- package/framework/agents/infrastructure/container-specialist.md +0 -137
- package/framework/agents/infrastructure/devops-engineer.md +0 -126
- package/framework/agents/integrations/azure-identity.md +0 -148
- package/framework/agents/quality/code-analyzer.md +0 -239
- package/framework/agents/quality/testing-specialist.md +0 -130
- package/framework/hooks/claude-code/notification/approval-reminder.js +0 -57
- package/framework/hooks/claude-code/post-tool-use/context-refresh.js +0 -109
- package/framework/hooks/claude-code/post-tool-use/skill-reminder.js +0 -78
- package/framework/index/troubleshooting-index.json +0 -184
- package/framework/rules/testing-standards.md +0 -14
- package/framework/skills/level-0-meta/morph-replicate/SKILL.md +0 -230
- package/framework/skills/level-0-meta/morph-replicate/references/blazor-html-mapping.md +0 -70
- package/framework/skills/level-1-workflows/morph-phase-clarify/SKILL.md +0 -256
- package/framework/skills/level-1-workflows/morph-phase-clarify/references/clarifications-example.md +0 -117
- package/framework/skills/level-1-workflows/morph-phase-setup/SKILL.md +0 -269
- package/framework/standards/ai-agents/blazor-ui.md +0 -364
- package/framework/standards/architecture/ddd/aggregates.md +0 -120
- package/framework/standards/architecture/ddd/bounded-contexts.md +0 -105
- package/framework/standards/architecture/ddd/complexity-levels.md +0 -108
- package/framework/standards/architecture/ddd/entities.md +0 -99
- package/framework/standards/architecture/ddd/ubiquitous-language.md +0 -58
- package/framework/standards/architecture/ddd/value-objects.md +0 -124
- package/framework/standards/backend/api/minimal-api.md +0 -494
- package/framework/standards/backend/api/rest.md +0 -492
- package/framework/standards/backend/authentication/passkeys.md +0 -428
- package/framework/standards/backend/database/ef-core.md +0 -199
- package/framework/standards/backend/database/migrations.md +0 -393
- package/framework/standards/backend/database/repository-patterns.md +0 -528
- package/framework/standards/backend/dotnet/async.md +0 -366
- package/framework/standards/backend/dotnet/core.md +0 -117
- package/framework/standards/backend/dotnet/di.md +0 -439
- package/framework/standards/backend/dotnet/program-cs-checklist.md +0 -92
- package/framework/standards/context/analytics.md +0 -96
- package/framework/standards/context/bundles.md +0 -110
- package/framework/standards/context/priming.md +0 -78
- package/framework/standards/core/architecture.md +0 -185
- package/framework/standards/core/coding.md +0 -214
- package/framework/standards/core/git-branching-strategy.md +0 -403
- package/framework/standards/core/git.md +0 -185
- package/framework/standards/core/testing.md +0 -295
- package/framework/standards/data/nosql/blob-storage.md +0 -102
- package/framework/standards/data/vector-search/azure-ai-search.md +0 -121
- package/framework/standards/frontend/blazor/design-checklist.md +0 -222
- package/framework/standards/frontend/blazor/fluent-ui-setup.md +0 -595
- package/framework/standards/frontend/blazor/fluent-ui.md +0 -137
- package/framework/standards/frontend/blazor/html-conversion.md +0 -184
- package/framework/standards/frontend/blazor/lifecycle.md +0 -195
- package/framework/standards/frontend/blazor/pitfalls.md +0 -198
- package/framework/standards/frontend/blazor/state.md +0 -191
- package/framework/standards/frontend/design-system/aesthetic-direction.md +0 -213
- package/framework/standards/infrastructure/azure/azure.md +0 -624
- package/framework/standards/infrastructure/azure/bicep/bicep-patterns.md +0 -422
- package/framework/standards/infrastructure/azure/devops/azure-devops-setup.md +0 -516
- package/framework/standards/infrastructure/azure/devops/local-development.md +0 -520
- package/framework/standards/infrastructure/azure/services/functions.md +0 -486
- package/framework/standards/infrastructure/azure/services/service-bus.md +0 -459
- package/framework/standards/infrastructure/azure/services/storage.md +0 -407
- package/framework/standards/infrastructure/vercel/vercel-database.md +0 -106
- package/framework/standards/integration/api/graphql.md +0 -91
- package/framework/standards/integration/api/grpc.md +0 -114
- package/framework/standards/integration/api/rest-design.md +0 -95
- package/framework/standards/integration/event-driven/cqrs.md +0 -101
- package/framework/standards/integration/event-driven/event-sourcing.md +0 -124
- package/framework/standards/integration/event-driven/service-bus.md +0 -95
- package/framework/standards/observability/logging.md +0 -131
- package/framework/standards/observability/metrics.md +0 -121
- package/framework/standards/observability/monitoring.md +0 -114
- package/framework/standards/observability/tracing.md +0 -132
- package/framework/standards/workflows/parallel-execution.md +0 -112
- package/framework/standards/workflows/thread-management.md +0 -113
- package/framework/templates/code/dotnet/backend/service.cs +0 -139
- package/framework/templates/code/dotnet/contracts/Commands.cs +0 -74
- package/framework/templates/code/dotnet/contracts/Entities.cs +0 -25
- package/framework/templates/code/dotnet/contracts/Queries.cs +0 -74
- package/framework/templates/code/dotnet/contracts/api-contracts.cs +0 -173
- package/framework/templates/code/dotnet/contracts/contracts-level1.cs +0 -69
- package/framework/templates/code/dotnet/contracts/contracts-level2.cs +0 -86
- package/framework/templates/code/dotnet/contracts/contracts-level3.cs +0 -41
- package/framework/templates/code/dotnet/frontend/component.razor +0 -239
- package/framework/templates/infrastructure/azure/Dockerfile.example +0 -82
- package/framework/templates/infrastructure/azure/README.md +0 -286
- package/framework/templates/infrastructure/azure/app-insights.bicep +0 -63
- package/framework/templates/infrastructure/azure/app-service.bicep +0 -164
- package/framework/templates/infrastructure/azure/container-app-env.bicep +0 -49
- package/framework/templates/infrastructure/azure/container-app.bicep +0 -156
- package/framework/templates/infrastructure/azure/deploy-checklist.md +0 -426
- package/framework/templates/infrastructure/azure/deploy.ps1 +0 -229
- package/framework/templates/infrastructure/azure/deploy.sh +0 -208
- package/framework/templates/infrastructure/azure/key-vault.bicep +0 -91
- package/framework/templates/infrastructure/azure/main.bicep +0 -189
- package/framework/templates/infrastructure/azure/parameters.dev.json +0 -29
- package/framework/templates/infrastructure/azure/parameters.prod.json +0 -29
- package/framework/templates/infrastructure/azure/parameters.staging.json +0 -29
- package/framework/templates/infrastructure/azure/sql-database.bicep +0 -103
- package/framework/templates/infrastructure/azure/storage.bicep +0 -106
- package/framework/templates/infrastructure/github/actions/azure-auth/action.yml.hbs +0 -22
- package/framework/templates/infrastructure/github/workflows/deploy-azure-app-service.yml.hbs +0 -61
- package/framework/templates/integrations/azure-identity-config.cs +0 -288
- package/framework/templates/project-structure/dotnet-ddd.md +0 -70
- package/framework/templates/saas/subscription.cs +0 -347
- package/framework/templates/saas/tenant.cs +0 -338
- package/framework/templates/ui/FluentDesignTheme.cs +0 -149
- package/framework/templates/ui/MudTheme.cs +0 -281
- package/framework/workflows/configs/nodejs-cli.json +0 -40
- package/src/commands/standards/context-budget.js +0 -89
- package/src/lib/standards/index.js +0 -7
- package/src/lib/standards/standards-context-injector.js +0 -302
- package/src/lib/validators/blazor/blazor-concurrency-analyzer.js +0 -316
- package/src/lib/validators/blazor/blazor-state-validator.js +0 -279
- package/src/lib/validators/blazor/blazor-validator.js +0 -369
- package/src/lib/validators/blazor/index.js +0 -9
|
@@ -28,9 +28,9 @@ Files you OWN (safe to create/modify):
|
|
|
28
28
|
{{DELIVERABLES}}
|
|
29
29
|
|
|
30
30
|
Files you can READ (shared, do not modify):
|
|
31
|
-
- `.morph/features/{{FEATURE_NAME}}/
|
|
31
|
+
- `.morph/features/{{FEATURE_NAME}}/2-design/spec.md`
|
|
32
32
|
- `framework/standards/` (all)
|
|
33
|
-
- `.morph/features/{{FEATURE_NAME}}/
|
|
33
|
+
- `.morph/features/{{FEATURE_NAME}}/2-design/contracts.*`
|
|
34
34
|
|
|
35
35
|
## Spec Summary
|
|
36
36
|
{{SPEC_SUMMARY}}
|
|
@@ -14,8 +14,7 @@ You are the **Backend Squad Leader** (dotnet-senior) in the MORPH-SPEC agent hie
|
|
|
14
14
|
|
|
15
15
|
You coordinate the following backend specialists:
|
|
16
16
|
- **ef-modeler** — Entity Framework Core, database schema, migrations
|
|
17
|
-
- **
|
|
18
|
-
- **event-architect** — Domain events, background jobs (Hangfire), CQRS
|
|
17
|
+
- **hangfire-orchestrator** — Background jobs, scheduled tasks, async processing
|
|
19
18
|
|
|
20
19
|
{{#if ADDITIONAL_LEADERS}}
|
|
21
20
|
Additional domain leaders for this feature:
|
|
@@ -1,126 +1,83 @@
|
|
|
1
|
-
# Frontend Squad Leader — {{AGENT_ID}}
|
|
2
|
-
|
|
3
|
-
You are the **Frontend Squad Leader** in the MORPH-SPEC agent hierarchy.
|
|
4
|
-
|
|
5
|
-
## Your Identity
|
|
6
|
-
- Agent: {{AGENT_ID}}
|
|
7
|
-
- Role: Frontend Squad Leader (Tier 2)
|
|
8
|
-
- Domain: {{DOMAIN}} (UI / Components / UX)
|
|
9
|
-
|
|
10
|
-
## Your Mission
|
|
11
|
-
{{MISSION}}
|
|
12
|
-
|
|
13
|
-
## Your Domain Leaders
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
- **
|
|
18
|
-
- **
|
|
19
|
-
|
|
20
|
-
{{
|
|
21
|
-
|
|
22
|
-
{{
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
-
|
|
45
|
-
-
|
|
46
|
-
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
-
|
|
57
|
-
-
|
|
58
|
-
-
|
|
59
|
-
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
{{
|
|
63
|
-
|
|
64
|
-
-
|
|
65
|
-
-
|
|
66
|
-
-
|
|
67
|
-
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
-
|
|
79
|
-
-
|
|
80
|
-
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
{{TASKS}}
|
|
85
|
-
|
|
86
|
-
## Deliverables Expected
|
|
87
|
-
{{DELIVERABLES}}
|
|
88
|
-
|
|
89
|
-
Frontend deliverables typically include:
|
|
90
|
-
{{#if IS_BLAZOR}}
|
|
91
|
-
- `Pages/` — Blazor page components with `@page` routes
|
|
92
|
-
- `Components/{Feature}/` — Feature-specific components
|
|
93
|
-
- `Components/Shared/` — Reusable UI components
|
|
94
|
-
- CSS files (if custom styles needed)
|
|
95
|
-
{{/if}}
|
|
96
|
-
{{#if IS_NEXTJS}}
|
|
97
|
-
- `app/{routes}/` — Next.js page and layout files
|
|
98
|
-
- `components/{Feature}/` — Feature-specific components
|
|
99
|
-
- `components/ui/` — Base UI components (shadcn overrides)
|
|
100
|
-
- TypeScript type definitions
|
|
101
|
-
{{/if}}
|
|
102
|
-
|
|
103
|
-
## Constraints
|
|
104
|
-
{{CONSTRAINTS}}
|
|
105
|
-
|
|
106
|
-
- Follow design system strictly — no ad-hoc colors or spacing
|
|
107
|
-
- Components must be accessible (ARIA attributes where needed)
|
|
108
|
-
- Loading states required for all async operations
|
|
109
|
-
- Error states required for all data-fetching components
|
|
110
|
-
|
|
111
|
-
## How to Work
|
|
112
|
-
1. Start with page layout and routing structure
|
|
113
|
-
2. Build reusable sub-components before composing pages
|
|
114
|
-
3. Wire up API calls/services last (after UI is structured)
|
|
115
|
-
4. Test each component with loading + error + empty states
|
|
116
|
-
5. After every 3 tasks, run: `morph-spec task done {{FEATURE_NAME}} <task-id>`
|
|
117
|
-
6. If design system validator blocks you, check `framework/standards/css-design-system.md`
|
|
118
|
-
|
|
119
|
-
## Report Back When Done
|
|
120
|
-
Provide a summary of:
|
|
121
|
-
- Files created/modified (with paths)
|
|
122
|
-
- Pages/routes implemented
|
|
123
|
-
- Components created (with brief description)
|
|
124
|
-
- Design system compliance status
|
|
125
|
-
- Any accessibility concerns
|
|
126
|
-
- Checkpoint pass/fail status
|
|
1
|
+
# Frontend Squad Leader — {{AGENT_ID}}
|
|
2
|
+
|
|
3
|
+
You are the **Frontend Squad Leader** in the MORPH-SPEC agent hierarchy.
|
|
4
|
+
|
|
5
|
+
## Your Identity
|
|
6
|
+
- Agent: {{AGENT_ID}}
|
|
7
|
+
- Role: Frontend Squad Leader (Tier 2)
|
|
8
|
+
- Domain: {{DOMAIN}} (UI / Components / UX)
|
|
9
|
+
|
|
10
|
+
## Your Mission
|
|
11
|
+
{{MISSION}}
|
|
12
|
+
|
|
13
|
+
## Your Domain Leaders
|
|
14
|
+
|
|
15
|
+
You coordinate the following Next.js specialists:
|
|
16
|
+
- **react-architect** — Next.js 15 App Router, Server/Client components, RSC patterns
|
|
17
|
+
- **ui-styler** — Tailwind CSS, design tokens, shadcn/ui components
|
|
18
|
+
- **form-specialist** — React Hook Form, Zod validation, server actions
|
|
19
|
+
|
|
20
|
+
{{#if ADDITIONAL_LEADERS}}
|
|
21
|
+
Additional domain leaders for this feature:
|
|
22
|
+
{{ADDITIONAL_LEADERS}}
|
|
23
|
+
{{/if}}
|
|
24
|
+
|
|
25
|
+
## Spec Summary
|
|
26
|
+
{{SPEC_SUMMARY}}
|
|
27
|
+
|
|
28
|
+
## Frontend Standards to Follow
|
|
29
|
+
|
|
30
|
+
### Next.js 15 (App Router)
|
|
31
|
+
- Default to Server Components — use `'use client'` only when needed
|
|
32
|
+
- Server Actions for mutations (not separate API routes for simple CRUD)
|
|
33
|
+
- Data fetching in Server Components with `fetch()` or ORM calls
|
|
34
|
+
- `Suspense` boundaries for async data with `loading.tsx` fallbacks
|
|
35
|
+
- `error.tsx` for error boundaries per route segment
|
|
36
|
+
|
|
37
|
+
### Component Architecture (Next.js)
|
|
38
|
+
- Pages in `app/` directory (App Router)
|
|
39
|
+
- Shared components in `components/` (Server Components by default)
|
|
40
|
+
- Client-side interactive components in `components/client/`
|
|
41
|
+
- Types in `types/` or co-located with components
|
|
42
|
+
|
|
43
|
+
### Design System (Next.js)
|
|
44
|
+
- Tailwind CSS utility classes — prefer over custom CSS
|
|
45
|
+
- Design tokens in `tailwind.config.ts` (colors, spacing, typography)
|
|
46
|
+
- shadcn/ui components as base — customize via `components/ui/`
|
|
47
|
+
- Responsive: mobile-first with `sm:`, `md:`, `lg:` breakpoints
|
|
48
|
+
|
|
49
|
+
## Your Tasks
|
|
50
|
+
{{TASKS}}
|
|
51
|
+
|
|
52
|
+
## Deliverables Expected
|
|
53
|
+
{{DELIVERABLES}}
|
|
54
|
+
|
|
55
|
+
Frontend deliverables typically include:
|
|
56
|
+
- `app/{routes}/` — Next.js page and layout files
|
|
57
|
+
- `components/{Feature}/` — Feature-specific components
|
|
58
|
+
- `components/ui/` — Base UI components (shadcn overrides)
|
|
59
|
+
- TypeScript type definitions
|
|
60
|
+
|
|
61
|
+
## Constraints
|
|
62
|
+
{{CONSTRAINTS}}
|
|
63
|
+
|
|
64
|
+
- Follow design system strictly — no ad-hoc colors or spacing
|
|
65
|
+
- Components must be accessible (ARIA attributes where needed)
|
|
66
|
+
- Loading states required for all async operations
|
|
67
|
+
- Error states required for all data-fetching components
|
|
68
|
+
|
|
69
|
+
## How to Work
|
|
70
|
+
1. Start with page layout and routing structure
|
|
71
|
+
2. Build reusable sub-components before composing pages
|
|
72
|
+
3. Wire up API calls/services last (after UI is structured)
|
|
73
|
+
4. Test each component with loading + error + empty states
|
|
74
|
+
5. After every 3 tasks, run: `morph-spec task done {{FEATURE_NAME}} <task-id>`
|
|
75
|
+
|
|
76
|
+
## Report Back When Done
|
|
77
|
+
Provide a summary of:
|
|
78
|
+
- Files created/modified (with paths)
|
|
79
|
+
- Pages/routes implemented
|
|
80
|
+
- Components created (with brief description)
|
|
81
|
+
- Design system compliance status
|
|
82
|
+
- Any accessibility concerns
|
|
83
|
+
- Checkpoint pass/fail status
|
|
@@ -24,8 +24,8 @@ Types: feat, fix, docs, style, refactor, test, chore, perf, ci, build
|
|
|
24
24
|
|
|
25
25
|
Valid examples:
|
|
26
26
|
- `feat(auth): add JWT refresh token rotation`
|
|
27
|
-
- `fix(
|
|
28
|
-
- `chore(deps): update
|
|
27
|
+
- `fix(api): resolve handler lifecycle in reports endpoint`
|
|
28
|
+
- `chore(deps): update TanStack Query to 5.x`
|
|
29
29
|
|
|
30
30
|
### 2. Secret Scan
|
|
31
31
|
Check staged files for accidental secrets:
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Thin validator entry-point called by morph-spec validate-completion hook:
|
|
6
6
|
* node bin/validate.js <validator> [--json]
|
|
7
7
|
*
|
|
8
|
-
* Supported validators: architecture,
|
|
8
|
+
* Supported validators: architecture, nextjs-component,
|
|
9
9
|
* packages, design-system, ui-contrast, css
|
|
10
10
|
*
|
|
11
11
|
* Exits 0 on pass, 1 on validation errors.
|
|
@@ -64,9 +64,7 @@ const backendDir = existsSync(join(cwd, 'src/backend')) ? 'src/backend' : 'ba
|
|
|
64
64
|
// ── Validator dispatch ────────────────────────────────────────────────────────
|
|
65
65
|
|
|
66
66
|
switch (validator) {
|
|
67
|
-
case 'architecture':
|
|
68
|
-
case 'blazor':
|
|
69
|
-
case 'blazor-concurrency': {
|
|
67
|
+
case 'architecture': {
|
|
70
68
|
if (hasBackend && hasSln) {
|
|
71
69
|
const slnFile = hasSln ? (
|
|
72
70
|
existsSync(join(cwd, 'src/backend/backend.sln')) ? 'backend.sln' : 'Backend.sln'
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Design System - {Project Name}
|
|
3
3
|
*
|
|
4
|
-
* CSS Variables generated from
|
|
4
|
+
* CSS Variables generated from design-system.md
|
|
5
5
|
* Use estas variáveis em todo o projeto para manter consistência visual.
|
|
6
6
|
*
|
|
7
7
|
* Template MORPH-SPEC by Polymorphism Tech
|
|
@@ -169,10 +169,10 @@ Different types of changes require different levels of planning and documentatio
|
|
|
169
169
|
|
|
170
170
|
**Outputs:**
|
|
171
171
|
- proposal.md
|
|
172
|
-
-
|
|
173
|
-
-
|
|
174
|
-
-
|
|
175
|
-
-
|
|
172
|
+
- design-system.md
|
|
173
|
+
- mockups.md
|
|
174
|
+
- components.md
|
|
175
|
+
- flows.md
|
|
176
176
|
- spec.md
|
|
177
177
|
- contracts.cs
|
|
178
178
|
- tasks.json
|
|
@@ -575,7 +575,7 @@ Create `framework/workflows/configs/my-workflow.json`:
|
|
|
575
575
|
"keywords": ["custom-keyword", "my-use-case"],
|
|
576
576
|
"phases": {
|
|
577
577
|
"run": ["proposal", "design", "implement"],
|
|
578
|
-
"skip": ["
|
|
578
|
+
"skip": ["uiux", "plan", "tasks"]
|
|
579
579
|
},
|
|
580
580
|
"pausePoints": [
|
|
581
581
|
{ "phase": "design", "question": "Approve custom design?" }
|
|
@@ -686,7 +686,7 @@ morph-spec feature create login-typo --request "fix typo in login button"
|
|
|
686
686
|
morph-spec phase advance login-typo
|
|
687
687
|
|
|
688
688
|
# Output:
|
|
689
|
-
⏩ Skipping:
|
|
689
|
+
⏩ Skipping: uiux, design, plan, sync
|
|
690
690
|
➡️ Next phase: implement
|
|
691
691
|
```
|
|
692
692
|
|
|
@@ -878,7 +878,7 @@ Create `framework/workflows/configs/blazor-standard.json`:
|
|
|
878
878
|
"keywords": ["pagination", "filter"],
|
|
879
879
|
"phases": {
|
|
880
880
|
"run": ["proposal", "uiux", "design", "tasks", "implement"],
|
|
881
|
-
"skip": ["
|
|
881
|
+
"skip": ["sync"]
|
|
882
882
|
},
|
|
883
883
|
"priority": 2
|
|
884
884
|
}
|
|
@@ -993,7 +993,7 @@ projectPath?: string // Optional: Project path (default: '.')
|
|
|
993
993
|
import { getWorkflowConfig } from './src/lib/workflow-detector.js';
|
|
994
994
|
|
|
995
995
|
const config = getWorkflowConfig('standard');
|
|
996
|
-
console.log(config.phases.skip); // [
|
|
996
|
+
console.log(config.phases.skip); // []
|
|
997
997
|
```
|
|
998
998
|
|
|
999
999
|
### listWorkflows(projectPath?)
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "fast-track",
|
|
3
|
+
"name": "Fast-Track (Low Complexity)",
|
|
4
|
+
"description": "Simple features - CRUD, isolated endpoints, UI components, bug fixes",
|
|
5
|
+
"criteria": {
|
|
6
|
+
"maxFiles": 3,
|
|
7
|
+
"maxLines": 50,
|
|
8
|
+
"maxComponents": 1,
|
|
9
|
+
"noInfrastructure": true
|
|
10
|
+
},
|
|
11
|
+
"keywords": [
|
|
12
|
+
"crud",
|
|
13
|
+
"endpoint",
|
|
14
|
+
"button",
|
|
15
|
+
"fix",
|
|
16
|
+
"typo",
|
|
17
|
+
"add field",
|
|
18
|
+
"simple",
|
|
19
|
+
"component",
|
|
20
|
+
"quick",
|
|
21
|
+
"small",
|
|
22
|
+
"ajuste",
|
|
23
|
+
"correção",
|
|
24
|
+
"campo",
|
|
25
|
+
"rename",
|
|
26
|
+
"toggle",
|
|
27
|
+
"flag",
|
|
28
|
+
"label",
|
|
29
|
+
"icon",
|
|
30
|
+
"badge",
|
|
31
|
+
"tooltip"
|
|
32
|
+
],
|
|
33
|
+
"phases": {
|
|
34
|
+
"run": ["proposal", "tasks", "implement"],
|
|
35
|
+
"skip": ["uiux", "design", "plan", "sync"],
|
|
36
|
+
"skipIfCondition": {},
|
|
37
|
+
"combined": {}
|
|
38
|
+
},
|
|
39
|
+
"pausePoints": [
|
|
40
|
+
{
|
|
41
|
+
"phase": "tasks",
|
|
42
|
+
"question": "Approve task breakdown?"
|
|
43
|
+
}
|
|
44
|
+
],
|
|
45
|
+
"outputs": {
|
|
46
|
+
"required": ["proposal.md", "tasks.md"],
|
|
47
|
+
"optional": ["recap.md"],
|
|
48
|
+
"skip": ["spec.md", "contracts.cs", "contracts.ts", "plan.md", "design-system.md", "schema-analysis.md"]
|
|
49
|
+
},
|
|
50
|
+
"priority": 1
|
|
51
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "full",
|
|
3
|
+
"name": "Full (High Complexity)",
|
|
4
|
+
"description": "Complex features - multi-domain, new entities, integrations, infrastructure",
|
|
5
|
+
"criteria": {
|
|
6
|
+
"minFiles": 10,
|
|
7
|
+
"minLines": 500,
|
|
8
|
+
"minComponents": 2
|
|
9
|
+
},
|
|
10
|
+
"keywords": [
|
|
11
|
+
"system",
|
|
12
|
+
"integration",
|
|
13
|
+
"architecture",
|
|
14
|
+
"migrate",
|
|
15
|
+
"infrastructure",
|
|
16
|
+
"platform",
|
|
17
|
+
"multi",
|
|
18
|
+
"subsystem",
|
|
19
|
+
"security",
|
|
20
|
+
"auth",
|
|
21
|
+
"deploy",
|
|
22
|
+
"pipeline",
|
|
23
|
+
"redesign",
|
|
24
|
+
"rewrite",
|
|
25
|
+
"overhaul",
|
|
26
|
+
"migração",
|
|
27
|
+
"plataforma",
|
|
28
|
+
"arquitetura",
|
|
29
|
+
"integração"
|
|
30
|
+
],
|
|
31
|
+
"phases": {
|
|
32
|
+
"run": ["proposal", "uiux", "design", "plan", "tasks", "implement", "sync"],
|
|
33
|
+
"skip": [],
|
|
34
|
+
"skipIfCondition": {
|
|
35
|
+
"uiux": "!hasUIAgents"
|
|
36
|
+
},
|
|
37
|
+
"combined": {}
|
|
38
|
+
},
|
|
39
|
+
"pausePoints": [
|
|
40
|
+
{
|
|
41
|
+
"phase": "proposal",
|
|
42
|
+
"question": "Approve feature proposal?"
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"phase": "uiux",
|
|
46
|
+
"question": "Approve UI/UX designs?",
|
|
47
|
+
"condition": "hasUIAgents"
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"phase": "design",
|
|
51
|
+
"question": "Approve technical specification?"
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"phase": "plan",
|
|
55
|
+
"question": "Approve implementation plan?"
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"phase": "tasks",
|
|
59
|
+
"question": "Approve task breakdown?"
|
|
60
|
+
}
|
|
61
|
+
],
|
|
62
|
+
"outputs": {
|
|
63
|
+
"required": ["proposal.md", "spec.md", "plan.md", "tasks.md", "recap.md"],
|
|
64
|
+
"optional": ["contracts.cs", "contracts.ts", "schema-analysis.md", "decisions.md"],
|
|
65
|
+
"skip": []
|
|
66
|
+
},
|
|
67
|
+
"priority": 3
|
|
68
|
+
}
|
|
@@ -29,8 +29,8 @@
|
|
|
29
29
|
"busca"
|
|
30
30
|
],
|
|
31
31
|
"phases": {
|
|
32
|
-
"run": ["proposal", "design", "tasks", "implement"],
|
|
33
|
-
"skip": [
|
|
32
|
+
"run": ["proposal", "design", "plan", "tasks", "implement", "sync"],
|
|
33
|
+
"skip": [],
|
|
34
34
|
"skipIfCondition": {
|
|
35
35
|
"uiux": "!hasUIAgents"
|
|
36
36
|
},
|
|
@@ -45,6 +45,10 @@
|
|
|
45
45
|
"phase": "design",
|
|
46
46
|
"question": "Approve spec (concise, 1-2 pages)?"
|
|
47
47
|
},
|
|
48
|
+
{
|
|
49
|
+
"phase": "plan",
|
|
50
|
+
"question": "Approve implementation plan?"
|
|
51
|
+
},
|
|
48
52
|
{
|
|
49
53
|
"phase": "tasks",
|
|
50
54
|
"question": "Approve task breakdown?",
|
|
@@ -52,7 +56,7 @@
|
|
|
52
56
|
}
|
|
53
57
|
],
|
|
54
58
|
"outputs": {
|
|
55
|
-
"required": ["proposal.md", "spec.md", "recap.md"],
|
|
59
|
+
"required": ["proposal.md", "spec.md", "plan.md", "recap.md"],
|
|
56
60
|
"optional": ["decisions.md"],
|
|
57
61
|
"skip": ["contracts.cs"]
|
|
58
62
|
},
|
|
@@ -12,10 +12,10 @@ The enforcement pipeline consists of **6 integrated phases** that work together
|
|
|
12
12
|
|
|
13
13
|
| Phase | Component | When | What |
|
|
14
14
|
|-------|-----------|------|------|
|
|
15
|
-
| **1** | Data-Driven Validators | FASE
|
|
15
|
+
| **1** | Data-Driven Validators | FASE 7 (task done) | Maps agents → validators via agents.json |
|
|
16
16
|
| **2** | Standards Context Injector | Agent detection | Auto-loads 55k+ chars of standards per agent |
|
|
17
|
-
| **3** | Design System Enforcement | FASE
|
|
18
|
-
| **4** | Spec-Time Validation | FASE
|
|
17
|
+
| **3** | Design System Enforcement | FASE 7 gate | Blocks UI features without design system |
|
|
18
|
+
| **4** | Spec-Time Validation | FASE 3 gate | Validates contracts.cs before implementation |
|
|
19
19
|
| **5** | Standards Optimization | N/A | Optimized standards (23% token reduction) |
|
|
20
20
|
| **6** | Comprehensive Testing | All phases | 242 tests, 100% pass rate |
|
|
21
21
|
|
|
@@ -37,8 +37,8 @@ Before: Hardcoded AGENT_VALIDATOR_MAP in validation-runner.js made it impossible
|
|
|
37
37
|
```json
|
|
38
38
|
{
|
|
39
39
|
"agents": {
|
|
40
|
-
"
|
|
41
|
-
"validators": ["architecture", "
|
|
40
|
+
"nextjs-expert": {
|
|
41
|
+
"validators": ["architecture", "nextjs", "css", "design-system"]
|
|
42
42
|
},
|
|
43
43
|
"standards-architect": {
|
|
44
44
|
"validators": ["architecture", "packages"]
|
|
@@ -80,7 +80,7 @@ morph-spec task done my-feature T001
|
|
|
80
80
|
|
|
81
81
|
Before: Specialists had to manually read standards files, often missing relevant patterns.
|
|
82
82
|
|
|
83
|
-
**After:** All relevant standards automatically loaded into agent context (55k+ chars for
|
|
83
|
+
**After:** All relevant standards automatically loaded into agent context (55k+ chars for nextjs-expert).
|
|
84
84
|
|
|
85
85
|
### Implementation
|
|
86
86
|
|
|
@@ -103,22 +103,21 @@ export function loadStandardsForAgent(agentId, projectPath) {
|
|
|
103
103
|
**Agent → Standards Mapping:**
|
|
104
104
|
| Agent | Standards Loaded |
|
|
105
105
|
|-------|------------------|
|
|
106
|
-
| `
|
|
106
|
+
| `nextjs-expert` | nextjs-*, css-*, coding, architecture |
|
|
107
107
|
| `ai-system-architect` | agent-framework-*, architecture, coding |
|
|
108
108
|
| `infra-architect` | azure, architecture, dotnet10-compatibility, infrastructure (tier-2 Infrastructure Squad Leader) |
|
|
109
|
-
| `azure-architect` | azure, architecture, dotnet10-compatibility (tier-3 specialist) |
|
|
110
109
|
| `ms-agent-expert` | agent-framework-*, coding, architecture |
|
|
111
110
|
|
|
112
111
|
### Usage
|
|
113
112
|
|
|
114
113
|
```bash
|
|
115
114
|
# Standards auto-injected when running detect-agents with --json
|
|
116
|
-
morph-spec detect-agents --json "create
|
|
115
|
+
morph-spec detect-agents --json "create user dashboard"
|
|
117
116
|
|
|
118
117
|
# Output includes standardsSummary for each agent:
|
|
119
118
|
{
|
|
120
119
|
"standardsSummary": {
|
|
121
|
-
"
|
|
120
|
+
"nextjs-expert": {
|
|
122
121
|
"fullContent": "... 55304 characters ...",
|
|
123
122
|
"sections": [...]
|
|
124
123
|
}
|
|
@@ -146,7 +145,7 @@ Before: UI features implemented with hardcoded colors, inconsistent styling, no
|
|
|
146
145
|
|
|
147
146
|
**1. design-system-detector.js**
|
|
148
147
|
- Checks 4 levels (priority order):
|
|
149
|
-
1. Feature-level: `.morph/features/{feature}/
|
|
148
|
+
1. Feature-level: `.morph/features/{feature}/design-system.md`
|
|
150
149
|
2. Project-level: `.morph/context/design-system.md`
|
|
151
150
|
3. Generated CSS: `wwwroot/css/design-system.css`
|
|
152
151
|
4. Existing CSS variables: scans `.css` files for `--app-*` tokens
|
|
@@ -184,7 +183,7 @@ morph-spec phase advance my-ui-feature
|
|
|
184
183
|
#
|
|
185
184
|
# Create a design system with one of these options:
|
|
186
185
|
# 1. Project-level: .morph/context/design-system.md
|
|
187
|
-
# 2. Feature-level: .morph/features/my-ui-feature/
|
|
186
|
+
# 2. Feature-level: .morph/features/my-ui-feature/design-system.md
|
|
188
187
|
# 3. Auto-generate: morph-spec generate design-system
|
|
189
188
|
|
|
190
189
|
# Auto-scaffold design system
|
|
@@ -206,7 +205,7 @@ morph-spec generate design-system my-ui-feature # Feature-level
|
|
|
206
205
|
|
|
207
206
|
Before: C# coding violations only discovered during code review or runtime.
|
|
208
207
|
|
|
209
|
-
**After:** contracts.cs validated at FASE
|
|
208
|
+
**After:** contracts.cs validated at FASE 3 (design phase) before any implementation.
|
|
210
209
|
|
|
211
210
|
### Validation Rules
|
|
212
211
|
|
|
@@ -277,7 +276,7 @@ Before: C# coding violations only discovered during code review or runtime.
|
|
|
277
276
|
|
|
278
277
|
```javascript
|
|
279
278
|
// advance-phase.js
|
|
280
|
-
if (currentPhase === 'design' &&
|
|
279
|
+
if (currentPhase === 'design' && nextPhase === 'plan') {
|
|
281
280
|
const specValidation = await validateSpec('.', feature);
|
|
282
281
|
if (specValidation.errors > 0) {
|
|
283
282
|
// Block advancement + show violations
|
|
@@ -419,7 +418,7 @@ Before: Standards files verbose (1761 lines total), wasting tokens on redundant
|
|
|
419
418
|
3. ✅ Decision Wiring (decisions.md → constraints → validators)
|
|
420
419
|
4. ✅ Design System Gate (blocks UI features without design system)
|
|
421
420
|
5. ✅ Spec Validator (detects 9 C# violations in test)
|
|
422
|
-
6. ✅ Standards Injector (55k+ chars loaded for
|
|
421
|
+
6. ✅ Standards Injector (55k+ chars loaded for nextjs-expert)
|
|
423
422
|
|
|
424
423
|
---
|
|
425
424
|
|
|
@@ -433,14 +432,14 @@ Before: Standards files verbose (1761 lines total), wasting tokens on redundant
|
|
|
433
432
|
2. detect-agents --json → agents registered in state.json
|
|
434
433
|
↓ (standards-context-injector loads 55k+ chars per agent)
|
|
435
434
|
↓
|
|
436
|
-
3. FASE
|
|
435
|
+
3. FASE 3: Design → spec.md + contracts.cs created
|
|
437
436
|
↓
|
|
438
437
|
4. Spec validator runs → blocks if C# violations found
|
|
439
438
|
↓ (decisions.md ADRs parsed → constraints extracted)
|
|
440
439
|
↓
|
|
441
|
-
5. FASE
|
|
440
|
+
5. FASE 6: Tasks → advance-phase checks prerequisites
|
|
442
441
|
↓
|
|
443
|
-
6. FASE
|
|
442
|
+
6. FASE 7: Implement → design system gate blocks if UI agents + no design system
|
|
444
443
|
↓
|
|
445
444
|
7. Each `task done` → validation-runner orchestrates validators
|
|
446
445
|
↓ (validators use: agents.json mapping + decision constraints + standards content)
|
|
@@ -535,7 +534,7 @@ morph-spec state add-agent {feature} {agent-id}
|
|
|
535
534
|
|
|
536
535
|
**Check:**
|
|
537
536
|
1. Detection order: feature > project > generated > existing CSS
|
|
538
|
-
2. File location: `.morph/context/design-system.md` or `.morph/features/{feature}/
|
|
537
|
+
2. File location: `.morph/context/design-system.md` or `.morph/features/{feature}/design-system.md`
|
|
539
538
|
3. Format: Must have `# Design System` or `## Colors` sections
|
|
540
539
|
|
|
541
540
|
**Fix:**
|