@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
package/README.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
> Spec-driven development framework for multi-stack projects. Turns feature requests into implementation-ready code through structured, AI-orchestrated phases.
|
|
4
4
|
|
|
5
5
|
**Package:** `@polymorphism-tech/morph-spec`
|
|
6
|
-
**Version:** 4.
|
|
6
|
+
**Version:** 4.13.0
|
|
7
7
|
**Requires:** Node.js 18+, Claude Code
|
|
8
8
|
|
|
9
9
|
---
|
|
@@ -61,22 +61,22 @@ your-project/
|
|
|
61
61
|
│ ├── config/
|
|
62
62
|
│ │ └── config.json # Project configuration
|
|
63
63
|
│ ├── framework/
|
|
64
|
-
│ │ ├── agents.json #
|
|
64
|
+
│ │ ├── agents.json # 22 agents in 4 tiers (READ-ONLY)
|
|
65
65
|
│ │ ├── standards/ # Coding and architecture standards (READ-ONLY)
|
|
66
66
|
│ │ └── templates/ # Code and IaC templates (READ-ONLY)
|
|
67
67
|
│ ├── context/ # Project context (README.md, standards.md)
|
|
68
68
|
│ ├── features/ # Active features
|
|
69
69
|
│ │ └── {feature}/
|
|
70
70
|
│ │ ├── 0-proposal/ # User story + acceptance criteria
|
|
71
|
-
│ │ ├── 1-
|
|
72
|
-
│ │ ├── 2-
|
|
71
|
+
│ │ ├── 1-ui/ # UI/UX design (optional, UI-heavy features)
|
|
72
|
+
│ │ ├── 2-design/ # Technical spec, contracts, decisions
|
|
73
73
|
│ │ ├── 3-tasks/ # Atomic task list
|
|
74
74
|
│ │ └── 4-implement/ # Recap and implementation notes
|
|
75
75
|
│ └── state.json # READ-ONLY — managed by CLI only
|
|
76
76
|
└── .claude/
|
|
77
77
|
├── commands/ # Slash commands
|
|
78
78
|
├── skills/ # Framework skills (flat .md files)
|
|
79
|
-
├── agents/ # Native subagents (
|
|
79
|
+
├── agents/ # Native subagents (22 agents)
|
|
80
80
|
├── rules/ # Path-scoped standards rules
|
|
81
81
|
└── settings.local.json # Hooks configuration (10 hooks)
|
|
82
82
|
```
|
|
@@ -99,8 +99,8 @@ Phases in brackets are optional. `uiux` applies to UI-heavy features. `sync` is
|
|
|
99
99
|
| Phase | Directory | Key files |
|
|
100
100
|
| --------- | -------------- | ------------------------------------------------------------- |
|
|
101
101
|
| Proposal | `0-proposal/` | `proposal.md` |
|
|
102
|
-
|
|
|
103
|
-
|
|
|
102
|
+
| UI/UX | `1-ui/` | `design-system.md`, `mockups.md`, `components.md`, `flows.md` |
|
|
103
|
+
| Design | `2-design/` | `spec.md`, `contracts.cs`, `decisions.md` |
|
|
104
104
|
| Tasks | `3-tasks/` | `tasks.md` |
|
|
105
105
|
| Implement | `4-implement/` | `recap.md` |
|
|
106
106
|
|
|
@@ -154,7 +154,6 @@ morph-spec state set {feature} {key} {value}
|
|
|
154
154
|
morph-spec phase advance {feature} # Advance to next phase
|
|
155
155
|
morph-spec task done {feature} # Mark current task complete
|
|
156
156
|
morph-spec task start {feature} # Start next task
|
|
157
|
-
morph-spec task next {feature} # Preview next task
|
|
158
157
|
morph-spec status {feature} # Feature status dashboard
|
|
159
158
|
```
|
|
160
159
|
|
|
@@ -170,51 +169,48 @@ morph-spec validate-feature {feature} # Content-aware feature validation
|
|
|
170
169
|
|
|
171
170
|
## Agent hierarchy
|
|
172
171
|
|
|
173
|
-
morph-spec includes
|
|
172
|
+
morph-spec includes 22 agents organized in 4 tiers (2+3+13+4). Tier 1-2 agents are installed as native Claude Code subagents in `.claude/agents/`. Tier 3 domain agents are installed as `.claude/agents/morph-domain-{name}.md`.
|
|
174
173
|
|
|
175
|
-
### Tier 1 — Orchestrators (
|
|
174
|
+
### Tier 1 — Orchestrators (2)
|
|
176
175
|
|
|
177
176
|
|
|
178
177
|
| Agent | Role | Active |
|
|
179
178
|
| --------------------- | ------------------------------------------------------ | --------- |
|
|
180
179
|
| `standards-architect` | Chief Architect — enforces standards across all phases | Always |
|
|
181
180
|
| `ai-system-architect` | AI/Agent system design and orchestration | On-demand |
|
|
182
|
-
| `po-pm-advisor` | Product and project advisory | On-demand |
|
|
183
181
|
|
|
184
182
|
|
|
185
|
-
### Tier 2 — Domain Leaders (
|
|
183
|
+
### Tier 2 — Domain Leaders (3)
|
|
186
184
|
|
|
187
185
|
|
|
188
186
|
| Agent | Squad | Active |
|
|
189
187
|
| ------------------ | ------------------------- | --------- |
|
|
190
188
|
| `dotnet-senior` | Backend squad lead | Always |
|
|
189
|
+
| `nextjs-expert` | Frontend squad lead | Always |
|
|
191
190
|
| `infra-architect` | Infrastructure squad lead | Always |
|
|
192
|
-
| `domain-architect` | DDD & domain modeling | On-demand |
|
|
193
|
-
| `ui-designer` | UI/UX squad lead | On-demand |
|
|
194
191
|
|
|
195
192
|
|
|
196
|
-
### Tier 3 — Specialists (
|
|
193
|
+
### Tier 3 — Specialists (13)
|
|
197
194
|
|
|
198
195
|
Organized into squads:
|
|
199
196
|
|
|
200
|
-
**Backend (
|
|
197
|
+
**Backend (6):** ef-modeler, hangfire-orchestrator, ms-agent-expert, supabase-expert, vector-search-expert, morph-spec-architect
|
|
201
198
|
|
|
202
|
-
**Frontend (3):**
|
|
199
|
+
**Frontend (3):** css-specialist, ui-designer, seo-growth-hacker
|
|
203
200
|
|
|
204
|
-
**
|
|
201
|
+
**Integrations (3):** asaas-financial, clerk-auth, resend-email
|
|
205
202
|
|
|
206
|
-
**
|
|
203
|
+
**Security (1):** security-expert
|
|
207
204
|
|
|
208
|
-
### Tier 4 — Validators (
|
|
205
|
+
### Tier 4 — Validators (4)
|
|
209
206
|
|
|
210
207
|
|
|
211
208
|
| Agent | Validates |
|
|
212
209
|
| ------------------------------ | --------------------------------------- |
|
|
213
|
-
| `security-expert` | Security vulnerabilities and compliance |
|
|
214
210
|
| `architecture-expert` | Architectural decisions and constraints |
|
|
215
211
|
| `packages-validator` | Package versions and compatibility |
|
|
216
212
|
| `design-system-validator` | Design system adherence |
|
|
217
|
-
| `
|
|
213
|
+
| `nextjs-component-validator` | Next.js component structure and naming |
|
|
218
214
|
|
|
219
215
|
|
|
220
216
|
---
|
|
@@ -235,7 +231,6 @@ Organized into squads:
|
|
|
235
231
|
| `PostToolUseFailure` | `handle-tool-failure.js` | Logs failures to `.morph/logs/tool-failures.log` |
|
|
236
232
|
| `Stop` | `validate-completion.js` | Warns about incomplete tasks/missing outputs/pending gates |
|
|
237
233
|
| `PreCompact` | `save-morph-context.js` | Snapshots state to `.morph/memory/` before compaction |
|
|
238
|
-
| `Notification` | `approval-reminder.js` | Reminds about pending approval gates |
|
|
239
234
|
|
|
240
235
|
|
|
241
236
|
Protected files (via `permissions.deny`):
|
|
@@ -268,11 +263,8 @@ Path-scoped rules are installed to `.claude/rules/` and activate automatically b
|
|
|
268
263
|
| Technology | Support |
|
|
269
264
|
| ------------------------------------------- | ------------------------------------------------ |
|
|
270
265
|
| .NET 10 / ASP.NET Core | Full — C# contracts, EF Core, CQRS, Minimal API |
|
|
271
|
-
| Blazor (WebAssembly / Server / MAUI Hybrid) | Full — components, concurrency, design system |
|
|
272
266
|
| Next.js / React / TypeScript | Full — components, routing, state management |
|
|
273
|
-
|
|
|
274
|
-
| GitHub Actions | Full — CI/CD workflow templates |
|
|
275
|
-
| Supabase | Supported via MCP integration |
|
|
267
|
+
| Supabase | Supported via CLI (local Docker) |
|
|
276
268
|
|
|
277
269
|
|
|
278
270
|
TypeScript strict mode is enforced by default. See `.morph/framework/standards/` for all coding standards.
|
|
@@ -302,7 +294,7 @@ After updating, run `morph-spec doctor` to confirm the installation is healthy.
|
|
|
302
294
|
- `.morph/state.json` — use `morph-spec state set`
|
|
303
295
|
- `.morph/framework/`** — read-only, updated by `morph-spec update`
|
|
304
296
|
|
|
305
|
-
**Always document decisions.** Each feature has a `
|
|
297
|
+
**Always document decisions.** Each feature has a `2-design/decisions.md`. Architectural choices go there, not in commit messages.
|
|
306
298
|
|
|
307
299
|
**Checkpoints every 3 tasks.** The framework auto-validates architecture compliance, package versions, and security after every third completed task.
|
|
308
300
|
|
|
@@ -370,4 +362,4 @@ Code generated by morph-spec (contracts, templates, implementation output) belon
|
|
|
370
362
|
|
|
371
363
|
---
|
|
372
364
|
|
|
373
|
-
*morph-spec v4.
|
|
365
|
+
*morph-spec v4.13.0 by [Polymorphism Tech](https://polymorphism.tech)*
|
package/bin/morph-spec.js
CHANGED
|
@@ -38,7 +38,7 @@ import {
|
|
|
38
38
|
} from '../src/commands/agents/manage-agents.js';
|
|
39
39
|
|
|
40
40
|
// Task commands
|
|
41
|
-
import { taskDoneCommand, taskStartCommand,
|
|
41
|
+
import { taskDoneCommand, taskStartCommand, taskBulkDoneCommand, taskAnnotateCommand } from '../src/commands/tasks/task.js';
|
|
42
42
|
|
|
43
43
|
// Scope escalation commands
|
|
44
44
|
import { scopeEscalateCommand } from '../src/commands/scope/escalate.js';
|
|
@@ -50,6 +50,9 @@ import { validateFeatureCommand } from '../src/commands/validation/validate-feat
|
|
|
50
50
|
|
|
51
51
|
// Template commands
|
|
52
52
|
import { templateRenderCommand } from '../src/commands/templates/template-render.js';
|
|
53
|
+
|
|
54
|
+
// Scaffold commands
|
|
55
|
+
import { scaffoldDotnetCommand, scaffoldNextjsCommand } from '../src/commands/scaffold/scaffold.js';
|
|
53
56
|
// MCP commands
|
|
54
57
|
import { mcpSetupCommand } from '../src/commands/mcp/mcp-setup.js';
|
|
55
58
|
|
|
@@ -59,8 +62,8 @@ import { trustStatusCommand, trustSetCommand } from '../src/commands/trust/trust
|
|
|
59
62
|
// Project metrics
|
|
60
63
|
import { projectMetricsCommand } from '../src/commands/agents/project-metrics.js';
|
|
61
64
|
|
|
62
|
-
//
|
|
63
|
-
import {
|
|
65
|
+
// Context commands
|
|
66
|
+
import { contextRefreshCommand } from '../src/commands/context/context-refresh.js';
|
|
64
67
|
|
|
65
68
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
66
69
|
const pkg = JSON.parse(readFileSync(join(__dirname, '..', 'package.json'), 'utf8'));
|
|
@@ -148,7 +151,7 @@ program
|
|
|
148
151
|
// Task management commands (MORPH-SPEC 3.0)
|
|
149
152
|
const taskCommand = program
|
|
150
153
|
.command('task')
|
|
151
|
-
.description('Manage feature tasks (done | start |
|
|
154
|
+
.description('Manage feature tasks (done | start | expand | annotate)');
|
|
152
155
|
|
|
153
156
|
taskCommand
|
|
154
157
|
.command('done <feature> <task-ids...>')
|
|
@@ -164,25 +167,12 @@ taskCommand
|
|
|
164
167
|
.description('Start a task (mark as in_progress)')
|
|
165
168
|
.action((feature, taskId, options) => taskStartCommand(feature, taskId, options));
|
|
166
169
|
|
|
167
|
-
taskCommand
|
|
168
|
-
.command('next <feature>')
|
|
169
|
-
.description('Show next suggested task')
|
|
170
|
-
.action((feature, options) => taskNextCommand(feature, options));
|
|
171
|
-
|
|
172
170
|
taskCommand
|
|
173
171
|
.command('expand <feature> <task-id>')
|
|
174
172
|
.description('Expand a task into sub-tasks (low-impact scope escalation)')
|
|
175
173
|
.option('--into <subtasks...>', 'Sub-task definitions ("T017a: Title")')
|
|
176
174
|
.action((feature, taskId, options) => taskExpandCommand(feature, taskId, options));
|
|
177
175
|
|
|
178
|
-
taskCommand
|
|
179
|
-
.command('bulk-start <feature> [range]')
|
|
180
|
-
.description('Start multiple tasks at once (mark as in_progress)')
|
|
181
|
-
.option('--all', 'Start all pending tasks with met dependencies')
|
|
182
|
-
.option('--from <id>', 'Start of task range (e.g. T007)')
|
|
183
|
-
.option('--to <id>', 'End of task range (e.g. T014)')
|
|
184
|
-
.action((feature, range, options) => taskBulkStartCommand(feature, range, options));
|
|
185
|
-
|
|
186
176
|
taskCommand
|
|
187
177
|
.command('bulk-done <feature> [range]')
|
|
188
178
|
.description('Complete multiple tasks with a single validation pass')
|
|
@@ -309,6 +299,28 @@ templateCommand
|
|
|
309
299
|
.option('-v, --verbose', 'Show detailed output')
|
|
310
300
|
.action(templateRenderCommand);
|
|
311
301
|
|
|
302
|
+
// Scaffold commands (code generation from templates)
|
|
303
|
+
const scaffoldCmd = program
|
|
304
|
+
.command('scaffold')
|
|
305
|
+
.description('Generate feature files from templates');
|
|
306
|
+
|
|
307
|
+
scaffoldCmd
|
|
308
|
+
.command('dotnet <feature> <slice-name>')
|
|
309
|
+
.description('Generate VSA feature slice (.NET)')
|
|
310
|
+
.option('--dry-run', 'Preview files without writing')
|
|
311
|
+
.option('--namespace <ns>', 'Root namespace (auto-detected from .csproj)')
|
|
312
|
+
.option('--output-dir <path>', 'Output directory (default: cwd)')
|
|
313
|
+
.option('-v, --verbose', 'Show detailed output')
|
|
314
|
+
.action(scaffoldDotnetCommand);
|
|
315
|
+
|
|
316
|
+
scaffoldCmd
|
|
317
|
+
.command('nextjs <feature>')
|
|
318
|
+
.description('Generate feature page + components (Next.js)')
|
|
319
|
+
.option('--dry-run', 'Preview files without writing')
|
|
320
|
+
.option('--output-dir <path>', 'Output directory (default: cwd)')
|
|
321
|
+
.option('-v, --verbose', 'Show detailed output')
|
|
322
|
+
.action(scaffoldNextjsCommand);
|
|
323
|
+
|
|
312
324
|
// Trust commands
|
|
313
325
|
const trustCommand = program
|
|
314
326
|
.command('trust')
|
|
@@ -448,12 +460,17 @@ program
|
|
|
448
460
|
.option('--save', 'Save metrics to .morph/metrics.json')
|
|
449
461
|
.action((options) => projectMetricsCommand(options));
|
|
450
462
|
|
|
451
|
-
//
|
|
452
|
-
program
|
|
453
|
-
.command('context
|
|
454
|
-
.description('
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
.
|
|
463
|
+
// Context management commands
|
|
464
|
+
const contextCommand = program
|
|
465
|
+
.command('context')
|
|
466
|
+
.description('Project context management (refresh)');
|
|
467
|
+
|
|
468
|
+
contextCommand
|
|
469
|
+
.command('refresh')
|
|
470
|
+
.description('Scan project architecture and generate .morph/context/README.md')
|
|
471
|
+
.option('-p, --path <path>', 'Target path (default: current directory)')
|
|
472
|
+
.option('-v, --verbose', 'Show detailed scan output')
|
|
473
|
+
.option('--json', 'Output scan result as JSON')
|
|
474
|
+
.action((options) => contextRefreshCommand(options));
|
|
458
475
|
|
|
459
476
|
program.parse();
|