@polymorphism-tech/morph-spec 4.7.2 → 4.8.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/.morph/analytics/threads-log.jsonl +54 -5
- package/.morph/state.json +152 -2
- package/LICENSE +1 -2
- package/README.md +379 -414
- package/bin/morph-spec.js +57 -394
- package/bin/validate.js +2 -26
- package/claude-plugin.json +2 -2
- package/docs/ARCHITECTURE.md +43 -46
- package/docs/CHEATSHEET.md +203 -221
- package/docs/COMMAND-FLOWS.md +319 -289
- package/docs/QUICKSTART.md +2 -8
- package/docs/plans/2026-02-22-claude-docs-morph-alignment-analysis.md +2 -0
- package/docs/plans/2026-02-22-claude-settings.md +2 -0
- package/docs/plans/2026-02-22-morph-cc-alignment-impl.md +2 -0
- package/docs/plans/2026-02-22-morph-spec-next.md +2 -0
- package/docs/plans/2026-02-22-native-alignment-design.md +2 -0
- package/docs/plans/2026-02-22-native-alignment-impl.md +2 -0
- package/docs/plans/2026-02-22-native-enrichment-design.md +2 -0
- package/docs/plans/2026-02-22-native-enrichment.md +2 -0
- package/docs/plans/2026-02-23-ddd-architecture-refactor.md +2 -0
- package/docs/plans/2026-02-23-ddd-nextsteps.md +2 -0
- package/docs/plans/2026-02-23-infra-architect-refactor.md +2 -0
- package/docs/plans/2026-02-23-nextjs-code-review-design.md +2 -1
- package/docs/plans/2026-02-23-nextjs-code-review-impl.md +2 -0
- package/docs/plans/2026-02-23-nextjs-standards-design.md +2 -1
- package/docs/plans/2026-02-23-nextjs-standards-impl.md +2 -0
- package/docs/plans/2026-02-24-cli-radical-simplification.md +592 -0
- package/docs/plans/2026-02-24-framework-failure-points.md +125 -0
- package/docs/plans/2026-02-24-morph-init-design.md +337 -0
- package/docs/plans/2026-02-24-morph-init-impl.md +1269 -0
- package/docs/plans/2026-02-24-tutorial-command-design.md +71 -0
- package/docs/plans/2026-02-24-tutorial-command.md +298 -0
- package/framework/CLAUDE.md +1 -1
- package/framework/commands/morph-proposal.md +3 -3
- package/framework/hooks/README.md +2 -5
- package/framework/hooks/claude-code/pre-tool-use/protect-readonly-files.js +4 -55
- package/framework/hooks/claude-code/session-start/inject-morph-context.js +20 -5
- package/framework/hooks/claude-code/statusline.py +6 -1
- package/framework/hooks/dev/check-sync-health.js +117 -0
- package/framework/hooks/dev/guard-version-numbers.js +57 -0
- package/framework/hooks/dev/sync-standards-registry.js +60 -0
- package/framework/hooks/dev/sync-template-registry.js +60 -0
- package/framework/hooks/dev/validate-skill-format.js +70 -0
- package/framework/hooks/dev/validate-standard-format.js +73 -0
- package/framework/hooks/shared/payload-utils.js +39 -0
- package/framework/hooks/shared/state-reader.js +25 -1
- package/framework/rules/morph-workflow.md +1 -1
- package/framework/skills/level-0-meta/morph-init/SKILL.md +216 -0
- package/framework/skills/level-0-meta/morph-replicate/SKILL.md +4 -4
- package/framework/skills/level-0-meta/tool-usage-guide/SKILL.md +4 -4
- package/framework/skills/level-0-meta/verification-before-completion/SKILL.md +1 -1
- package/framework/skills/level-1-workflows/phase-clarify/SKILL.md +192 -191
- package/framework/skills/level-1-workflows/phase-codebase-analysis/SKILL.md +181 -180
- package/framework/skills/level-1-workflows/phase-design/SKILL.md +339 -338
- package/framework/skills/level-1-workflows/phase-implement/SKILL.md +254 -253
- package/framework/skills/level-1-workflows/phase-setup/SKILL.md +168 -170
- package/framework/skills/level-1-workflows/phase-tasks/SKILL.md +284 -283
- package/framework/skills/level-1-workflows/phase-uiux/SKILL.md +246 -245
- package/framework/templates/examples/design-system-examples.md +1 -1
- package/framework/templates/ui/FluentDesignTheme.cs +1 -1
- package/framework/templates/ui/MudTheme.cs +1 -1
- package/framework/templates/ui/design-system.css +1 -1
- package/package.json +4 -2
- package/scripts/bump-version.js +248 -0
- package/scripts/install-dev-hooks.js +138 -0
- package/src/commands/agents/index.js +1 -2
- package/src/commands/index.js +13 -16
- package/src/commands/project/doctor.js +100 -14
- package/src/commands/project/index.js +7 -10
- package/src/commands/project/init.js +398 -528
- package/src/commands/project/install-plugin-cmd.js +28 -0
- package/src/commands/project/setup-infra-cmd.js +12 -0
- package/src/commands/project/tutorial.js +115 -0
- package/src/commands/state/approve.js +213 -221
- package/src/commands/state/index.js +0 -1
- package/src/commands/state/state.js +337 -365
- package/src/commands/templates/index.js +0 -4
- package/src/commands/trust/trust.js +1 -93
- package/src/commands/utils/index.js +1 -5
- package/src/commands/validation/index.js +1 -5
- package/src/core/registry/command-registry.js +11 -285
- package/src/core/state/state-manager.js +5 -2
- package/src/lib/detectors/index.js +81 -87
- package/src/lib/detectors/structure-detector.js +275 -273
- package/src/lib/generators/recap-generator.js +232 -225
- package/src/scripts/global-install.js +34 -0
- package/src/scripts/install-plugin.js +126 -0
- package/src/scripts/setup-infra.js +203 -0
- package/src/utils/agents-installer.js +10 -1
- package/src/utils/hooks-installer.js +66 -3
- package/.morph/.morphversion +0 -5
- package/.morph/config/config.json +0 -8
- package/.morph/framework/agents.json +0 -1815
- package/.morph/framework/hooks/README.md +0 -205
- package/.morph/framework/hooks/claude-code/notification/approval-reminder.js +0 -54
- package/.morph/framework/hooks/claude-code/post-tool-use/dispatch.js +0 -83
- package/.morph/framework/hooks/claude-code/post-tool-use/handle-tool-failure.js +0 -42
- package/.morph/framework/hooks/claude-code/pre-compact/save-morph-context.js +0 -61
- package/.morph/framework/hooks/claude-code/pre-tool-use/enforce-phase-writes.js +0 -71
- package/.morph/framework/hooks/claude-code/pre-tool-use/protect-readonly-files.js +0 -58
- package/.morph/framework/hooks/claude-code/pre-tool-use/protect-spec-files.js +0 -64
- package/.morph/framework/hooks/claude-code/session-start/inject-morph-context.js +0 -94
- package/.morph/framework/hooks/claude-code/statusline.py +0 -538
- package/.morph/framework/hooks/claude-code/statusline.sh +0 -7
- package/.morph/framework/hooks/claude-code/stop/validate-completion.js +0 -88
- package/.morph/framework/hooks/claude-code/user-prompt/enrich-prompt.js +0 -91
- package/.morph/framework/hooks/git/commit-msg/conventional-commits.sh +0 -33
- package/.morph/framework/hooks/git/pre-commit/agents.sh +0 -25
- package/.morph/framework/hooks/git/pre-commit/orchestrator.sh +0 -64
- package/.morph/framework/hooks/git/pre-commit/specs.sh +0 -50
- package/.morph/framework/hooks/git/pre-push/run-tests.sh +0 -44
- package/.morph/framework/hooks/shared/hook-response.js +0 -45
- package/.morph/framework/hooks/shared/phase-utils.js +0 -129
- package/.morph/framework/hooks/shared/state-reader.js +0 -138
- package/.morph/framework/hooks/shared/stdin-reader.js +0 -26
- package/.morph/framework/standards/STANDARDS.json +0 -933
- package/.morph/framework/standards/ai-agents/blazor-ui.md +0 -364
- package/.morph/framework/standards/ai-agents/production.md +0 -415
- package/.morph/framework/standards/ai-agents/setup.md +0 -418
- package/.morph/framework/standards/ai-agents/team-orchestration.md +0 -479
- package/.morph/framework/standards/ai-agents/workflows.md +0 -354
- package/.morph/framework/standards/architecture/ddd/aggregates.md +0 -120
- package/.morph/framework/standards/architecture/ddd/bounded-contexts.md +0 -105
- package/.morph/framework/standards/architecture/ddd/complexity-levels.md +0 -108
- package/.morph/framework/standards/architecture/ddd/entities.md +0 -99
- package/.morph/framework/standards/architecture/ddd/ubiquitous-language.md +0 -58
- package/.morph/framework/standards/architecture/ddd/value-objects.md +0 -124
- package/.morph/framework/standards/backend/api/minimal-api.md +0 -494
- package/.morph/framework/standards/backend/api/rest.md +0 -492
- package/.morph/framework/standards/backend/api/validation.md +0 -88
- package/.morph/framework/standards/backend/authentication/passkeys.md +0 -428
- package/.morph/framework/standards/backend/database/ef-core.md +0 -199
- package/.morph/framework/standards/backend/database/migrations.md +0 -393
- package/.morph/framework/standards/backend/database/postgresql/database.md +0 -352
- package/.morph/framework/standards/backend/database/repository-patterns.md +0 -528
- package/.morph/framework/standards/backend/database/vector-search-rag.md +0 -541
- package/.morph/framework/standards/backend/dotnet/async.md +0 -366
- package/.morph/framework/standards/backend/dotnet/core.md +0 -117
- package/.morph/framework/standards/backend/dotnet/di.md +0 -439
- package/.morph/framework/standards/backend/dotnet/program-cs-checklist.md +0 -92
- package/.morph/framework/standards/backend/integrations/asaas/asaas-api.md +0 -216
- package/.morph/framework/standards/backend/integrations/clerk/clerk-auth.md +0 -290
- package/.morph/framework/standards/backend/integrations/hangfire/hangfire-jobs.md +0 -350
- package/.morph/framework/standards/backend/integrations/resend/resend-email.md +0 -385
- package/.morph/framework/standards/context/analytics.md +0 -96
- package/.morph/framework/standards/context/bundles.md +0 -110
- package/.morph/framework/standards/context/priming.md +0 -78
- package/.morph/framework/standards/core/architecture.md +0 -185
- package/.morph/framework/standards/core/coding.md +0 -214
- package/.morph/framework/standards/core/git-branching-strategy.md +0 -403
- package/.morph/framework/standards/core/git.md +0 -185
- package/.morph/framework/standards/core/testing.md +0 -295
- package/.morph/framework/standards/data/nosql/blob-storage.md +0 -102
- package/.morph/framework/standards/data/nosql/cache/redis.md +0 -97
- package/.morph/framework/standards/data/nosql/cosmos-db.md +0 -118
- package/.morph/framework/standards/data/vector-search/azure-ai-search.md +0 -121
- package/.morph/framework/standards/data/vector-search/rag-chunking.md +0 -104
- package/.morph/framework/standards/frontend/blazor/design-checklist.md +0 -222
- package/.morph/framework/standards/frontend/blazor/fluent-ui-setup.md +0 -595
- package/.morph/framework/standards/frontend/blazor/fluent-ui.md +0 -137
- package/.morph/framework/standards/frontend/blazor/html-conversion.md +0 -184
- package/.morph/framework/standards/frontend/blazor/lifecycle.md +0 -195
- package/.morph/framework/standards/frontend/blazor/pitfalls.md +0 -198
- package/.morph/framework/standards/frontend/blazor/state.md +0 -191
- package/.morph/framework/standards/frontend/design-system/animations.md +0 -151
- package/.morph/framework/standards/frontend/design-system/naming.md +0 -64
- package/.morph/framework/standards/frontend/nextjs/app-router.md +0 -123
- package/.morph/framework/standards/frontend/nextjs/components.md +0 -132
- package/.morph/framework/standards/frontend/nextjs/data-fetching.md +0 -126
- package/.morph/framework/standards/frontend/nextjs/forms.md +0 -128
- package/.morph/framework/standards/frontend/nextjs/naming-conventions.md +0 -67
- package/.morph/framework/standards/frontend/nextjs/nextjs-patterns.md +0 -215
- package/.morph/framework/standards/frontend/nextjs/project-structure.md +0 -102
- package/.morph/framework/standards/frontend/nextjs/state-management.md +0 -72
- package/.morph/framework/standards/frontend/nextjs/testing.md +0 -111
- package/.morph/framework/standards/infrastructure/azure/azure.md +0 -624
- package/.morph/framework/standards/infrastructure/azure/bicep/bicep-patterns.md +0 -422
- package/.morph/framework/standards/infrastructure/azure/devops/azure-devops-setup.md +0 -516
- package/.morph/framework/standards/infrastructure/azure/devops/local-development.md +0 -520
- package/.morph/framework/standards/infrastructure/azure/services/functions.md +0 -486
- package/.morph/framework/standards/infrastructure/azure/services/service-bus.md +0 -459
- package/.morph/framework/standards/infrastructure/azure/services/storage.md +0 -407
- package/.morph/framework/standards/infrastructure/docker/easypanel-deploy.md +0 -196
- package/.morph/framework/standards/infrastructure/supabase/mcp-setup.md +0 -252
- package/.morph/framework/standards/infrastructure/supabase/supabase-auth.md +0 -176
- package/.morph/framework/standards/infrastructure/supabase/supabase-pgvector.md +0 -169
- package/.morph/framework/standards/infrastructure/supabase/supabase-rls.md +0 -184
- package/.morph/framework/standards/infrastructure/supabase/supabase-storage.md +0 -153
- package/.morph/framework/standards/integration/api/graphql.md +0 -91
- package/.morph/framework/standards/integration/api/grpc.md +0 -114
- package/.morph/framework/standards/integration/api/rest-design.md +0 -95
- package/.morph/framework/standards/integration/event-driven/cqrs.md +0 -101
- package/.morph/framework/standards/integration/event-driven/event-sourcing.md +0 -124
- package/.morph/framework/standards/integration/event-driven/service-bus.md +0 -95
- package/.morph/framework/standards/integration/mcp/mcp-tools.md +0 -384
- package/.morph/framework/standards/observability/logging.md +0 -131
- package/.morph/framework/standards/observability/metrics.md +0 -121
- package/.morph/framework/standards/observability/monitoring.md +0 -114
- package/.morph/framework/standards/observability/tracing.md +0 -132
- package/.morph/framework/standards/workflows/parallel-execution.md +0 -112
- package/.morph/framework/standards/workflows/thread-management.md +0 -113
- package/.morph/framework/templates/.idea/morph-templates.xml +0 -92
- package/.morph/framework/templates/.vscode/morph-templates.code-snippets +0 -186
- package/.morph/framework/templates/IDE-SNIPPETS.md +0 -266
- package/.morph/framework/templates/README.md +0 -814
- package/.morph/framework/templates/REGISTRY.json +0 -1888
- package/.morph/framework/templates/code/dotnet/backend/repository.cs +0 -141
- package/.morph/framework/templates/code/dotnet/backend/service.cs +0 -139
- package/.morph/framework/templates/code/dotnet/contracts/Commands.cs +0 -74
- package/.morph/framework/templates/code/dotnet/contracts/Entities.cs +0 -25
- package/.morph/framework/templates/code/dotnet/contracts/Queries.cs +0 -74
- package/.morph/framework/templates/code/dotnet/contracts/README.md +0 -74
- package/.morph/framework/templates/code/dotnet/contracts/api-contracts.cs +0 -173
- package/.morph/framework/templates/code/dotnet/contracts/contracts-level1.cs +0 -69
- package/.morph/framework/templates/code/dotnet/contracts/contracts-level2.cs +0 -86
- package/.morph/framework/templates/code/dotnet/contracts/contracts-level3.cs +0 -41
- package/.morph/framework/templates/code/dotnet/database/migration.cs +0 -83
- package/.morph/framework/templates/code/dotnet/frontend/component.razor +0 -239
- package/.morph/framework/templates/code/dotnet/jobs/agent.cs +0 -163
- package/.morph/framework/templates/code/dotnet/jobs/job.cs +0 -171
- package/.morph/framework/templates/code/dotnet/test.cs +0 -239
- package/.morph/framework/templates/code/sql/rls-policy.sql +0 -57
- package/.morph/framework/templates/code/sql/supabase-migration.sql +0 -100
- package/.morph/framework/templates/code/sql/supabase-migration.template.sql +0 -113
- package/.morph/framework/templates/code/typescript/contracts.ts +0 -168
- package/.morph/framework/templates/context/CONTEXT-FEATURE.md +0 -276
- package/.morph/framework/templates/context/CONTEXT.md +0 -181
- package/.morph/framework/templates/docs/clarifications.md +0 -253
- package/.morph/framework/templates/docs/onboarding.md +0 -123
- package/.morph/framework/templates/docs/proposal.md +0 -182
- package/.morph/framework/templates/docs/schema-analysis.md +0 -119
- package/.morph/framework/templates/docs/spec.md +0 -198
- package/.morph/framework/templates/docs/ui-components.md +0 -124
- package/.morph/framework/templates/docs/ui-design-system.md +0 -76
- package/.morph/framework/templates/docs/ui-flows.md +0 -167
- package/.morph/framework/templates/docs/ui-mockups.md +0 -98
- package/.morph/framework/templates/docs/user-stories.md +0 -34
- package/.morph/framework/templates/examples/design-system-examples.md +0 -357
- package/.morph/framework/templates/examples/spec-examples.md +0 -90
- package/.morph/framework/templates/feature/decisions.md +0 -187
- package/.morph/framework/templates/feature/recap.md +0 -146
- package/.morph/framework/templates/feature/tasks.md +0 -199
- package/.morph/framework/templates/frontend/nextjs/Dockerfile.nextjs.hbs +0 -43
- package/.morph/framework/templates/frontend/nextjs/client-component.tsx.hbs +0 -26
- package/.morph/framework/templates/frontend/nextjs/env.mjs.hbs +0 -32
- package/.morph/framework/templates/frontend/nextjs/feature-form.tsx.hbs +0 -56
- package/.morph/framework/templates/frontend/nextjs/page.tsx.hbs +0 -22
- package/.morph/framework/templates/frontend/nextjs/tsconfig.json.hbs +0 -26
- package/.morph/framework/templates/frontend/nextjs/use-feature.ts.hbs +0 -54
- package/.morph/framework/templates/infrastructure/azure/Dockerfile.example +0 -82
- package/.morph/framework/templates/infrastructure/azure/README.md +0 -286
- package/.morph/framework/templates/infrastructure/azure/app-insights.bicep +0 -63
- package/.morph/framework/templates/infrastructure/azure/app-service.bicep +0 -164
- package/.morph/framework/templates/infrastructure/azure/container-app-env.bicep +0 -49
- package/.morph/framework/templates/infrastructure/azure/container-app.bicep +0 -156
- package/.morph/framework/templates/infrastructure/azure/deploy-checklist.md +0 -426
- package/.morph/framework/templates/infrastructure/azure/deploy.ps1 +0 -229
- package/.morph/framework/templates/infrastructure/azure/deploy.sh +0 -208
- package/.morph/framework/templates/infrastructure/azure/key-vault.bicep +0 -91
- package/.morph/framework/templates/infrastructure/azure/main.bicep +0 -189
- package/.morph/framework/templates/infrastructure/azure/parameters.dev.json +0 -29
- package/.morph/framework/templates/infrastructure/azure/parameters.prod.json +0 -29
- package/.morph/framework/templates/infrastructure/azure/parameters.staging.json +0 -29
- package/.morph/framework/templates/infrastructure/azure/sql-database.bicep +0 -103
- package/.morph/framework/templates/infrastructure/azure/storage.bicep +0 -106
- package/.morph/framework/templates/infrastructure/docker/Dockerfile.template +0 -58
- package/.morph/framework/templates/infrastructure/docker/docker-compose.template.yml +0 -67
- package/.morph/framework/templates/infrastructure/docker/dockerfile-api.dockerfile +0 -38
- package/.morph/framework/templates/infrastructure/docker/dockerfile-web.dockerfile +0 -48
- package/.morph/framework/templates/infrastructure/docker/easypanel.template.json +0 -54
- package/.morph/framework/templates/infrastructure/github/README.md +0 -593
- package/.morph/framework/templates/infrastructure/github/actions/azure-auth/action.yml.hbs +0 -22
- package/.morph/framework/templates/infrastructure/github/actions/docker-build-push/action.yml.hbs +0 -45
- package/.morph/framework/templates/infrastructure/github/actions/health-check/action.yml.hbs +0 -27
- package/.morph/framework/templates/infrastructure/github/workflows/deploy-azure-app-service.yml.hbs +0 -61
- package/.morph/framework/templates/infrastructure/github/workflows/deploy-easypanel.yml.hbs +0 -31
- package/.morph/framework/templates/infrastructure/github/workflows/docker-build-push.yml.hbs +0 -59
- package/.morph/framework/templates/infrastructure/github/workflows/dotnet-build.yml.hbs +0 -39
- package/.morph/framework/templates/integrations/asaas-client.cs +0 -387
- package/.morph/framework/templates/integrations/asaas-webhook.cs +0 -351
- package/.morph/framework/templates/integrations/azure-identity-config.cs +0 -288
- package/.morph/framework/templates/integrations/clerk-config.cs +0 -258
- package/.morph/framework/templates/meta-prompts/fusion/fusion-agent.md +0 -76
- package/.morph/framework/templates/meta-prompts/fusion/fusion-aggregator.md +0 -100
- package/.morph/framework/templates/meta-prompts/hops/hop-retry.md +0 -78
- package/.morph/framework/templates/meta-prompts/hops/hop-validation.md +0 -97
- package/.morph/framework/templates/meta-prompts/hops/hop-wrapper.md +0 -36
- package/.morph/framework/templates/meta-prompts/parallel-workers/parallel-coordinator.md +0 -113
- package/.morph/framework/templates/meta-prompts/parallel-workers/parallel-worker.md +0 -80
- package/.morph/framework/templates/meta-prompts/squad-leaders/backend-squad.md +0 -90
- package/.morph/framework/templates/meta-prompts/squad-leaders/frontend-squad.md +0 -126
- package/.morph/framework/templates/meta-prompts/squad-leaders/squad-leader.md +0 -43
- package/.morph/framework/templates/meta-prompts/validators/checkpoint-validator.md +0 -107
- package/.morph/framework/templates/meta-prompts/validators/pre-commit-validator.md +0 -95
- package/.morph/framework/templates/project-structure/dotnet-ddd.md +0 -70
- package/.morph/framework/templates/saas/subscription.cs +0 -347
- package/.morph/framework/templates/saas/tenant.cs +0 -338
- package/.morph/framework/templates/state.template.json +0 -17
- package/.morph/framework/templates/ui/FluentDesignTheme.cs +0 -149
- package/.morph/framework/templates/ui/MudTheme.cs +0 -281
- package/.morph/framework/templates/ui/design-system.css +0 -226
- package/.morph/logs/tool-failures.log +0 -17
- package/.morph/memory/pre-compact-2026-02-24T17-43-30-049Z.json +0 -16
- package/.morph/plans/eager-watching-bunny.md +0 -105
- package/.morph/plans/temporal-seeking-nebula.md +0 -45
- package/CLAUDE.md +0 -77
- package/docs/claude-alignment-report.md +0 -137
- package/docs/examples/order-management/contracts.cs +0 -84
- package/docs/examples/order-management/proposal.md +0 -24
- package/docs/examples/order-management/spec.md +0 -162
- package/src/commands/feature/create-story.js +0 -362
- package/src/commands/feature/index.js +0 -6
- package/src/commands/feature/shard-spec.js +0 -225
- package/src/commands/feature/sprint-status.js +0 -250
- package/src/commands/generation/generate-onboarding.js +0 -169
- package/src/commands/generation/generate.js +0 -276
- package/src/commands/generation/index.js +0 -5
- package/src/commands/learning/capture-pattern.js +0 -121
- package/src/commands/learning/index.js +0 -5
- package/src/commands/learning/search-patterns.js +0 -126
- package/src/commands/mcp/mcp.js +0 -102
- package/src/commands/project/changes.js +0 -66
- package/src/commands/project/cost.js +0 -179
- package/src/commands/project/diff.js +0 -278
- package/src/commands/project/revert.js +0 -173
- package/src/commands/project/standards.js +0 -80
- package/src/commands/project/sync.js +0 -167
- package/src/commands/project/update-agents.js +0 -23
- package/src/commands/state/rollback-phase.js +0 -185
- package/src/commands/templates/template-customize.js +0 -87
- package/src/commands/templates/template-list.js +0 -114
- package/src/commands/templates/template-show.js +0 -129
- package/src/commands/templates/template-validate.js +0 -91
- package/src/commands/utils/troubleshoot.js +0 -222
- package/src/commands/validation/analyze-blazor-concurrency.js +0 -193
- package/src/commands/validation/lint-fluent.js +0 -352
- package/src/commands/validation/validate-blazor-state.js +0 -210
- package/src/commands/validation/validate-blazor.js +0 -156
- package/src/commands/validation/validate-css.js +0 -84
- package/src/lib/detectors/conversation-analyzer.js +0 -163
- package/src/lib/learning/index.js +0 -7
- package/src/lib/learning/learning-system.js +0 -520
- package/src/lib/troubleshooting/index.js +0 -8
- package/src/lib/troubleshooting/troubleshoot-grep.js +0 -198
- package/src/lib/troubleshooting/troubleshoot-index.js +0 -144
- package/src/llm/environment-detector.js +0 -43
package/docs/ARCHITECTURE.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# morph-spec Architecture
|
|
2
2
|
|
|
3
|
-
> System design reference for morph-spec v4.
|
|
3
|
+
> System design reference for morph-spec v4.8.1
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -11,7 +11,7 @@ morph-spec is a CLI tool that scaffolds a spec-driven development workflow on to
|
|
|
11
11
|
The framework has three main concerns:
|
|
12
12
|
|
|
13
13
|
1. **State** — tracking features, phases, and outputs in `.morph/state.json`
|
|
14
|
-
2. **Agents** —
|
|
14
|
+
2. **Agents** — 38 specialized agents organized in 4 tiers, installed as native Claude Code subagents
|
|
15
15
|
3. **Workflow** — 8 phases from proposal through implementation, enforced via hooks and guards
|
|
16
16
|
|
|
17
17
|
---
|
|
@@ -24,21 +24,22 @@ Tier 1 — Orchestrators (3)
|
|
|
24
24
|
ai-system-architect on-demand — multi-agent / AI system design
|
|
25
25
|
po-pm-advisor on-demand — requirements, business value
|
|
26
26
|
|
|
27
|
-
Tier 2 — Domain Leaders (
|
|
28
|
-
dotnet-senior always active — Backend Squad lead
|
|
27
|
+
Tier 2 — Domain Leaders (4)
|
|
28
|
+
dotnet-senior always active — Backend Squad lead (skipped for non-.NET)
|
|
29
29
|
infra-architect always active — Infrastructure Squad Leader (cloud-agnostic)
|
|
30
|
+
domain-architect on-demand — DDD analysis and bounded context design
|
|
30
31
|
ui-designer on-demand — UI/UX Squad lead
|
|
31
32
|
|
|
32
|
-
Tier 3 — Specialists (
|
|
33
|
+
Tier 3 — Specialists (26)
|
|
33
34
|
Backend (10) ef-modeler, event-architect, api-designer, nosql-cache-expert,
|
|
34
|
-
|
|
35
|
-
asaas-financial, clerk-auth, resend-email
|
|
35
|
+
hangfire-orchestrator, ms-agent-expert,
|
|
36
|
+
asaas-financial, clerk-auth, resend-email, ddd-expert
|
|
36
37
|
Frontend (3) blazor-builder, nextjs-expert, css-specialist
|
|
37
38
|
Infrastructure (6) azure-architect, bicep-architect, devops-engineer,
|
|
38
39
|
container-specialist, observability-expert, azure-identity
|
|
39
|
-
Quality/Cross (
|
|
40
|
+
Quality/Cross (7) testing-specialist, code-analyzer, troubleshooting-expert,
|
|
40
41
|
load-testing-expert, documentation-specialist,
|
|
41
|
-
migration-specialist, integration-specialist
|
|
42
|
+
migration-specialist, integration-specialist
|
|
42
43
|
|
|
43
44
|
Tier 4 — Validators (5)
|
|
44
45
|
security-expert SQL injection, XSS, hardcoded secrets
|
|
@@ -70,11 +71,13 @@ maxTurns: 20
|
|
|
70
71
|
---
|
|
71
72
|
```
|
|
72
73
|
|
|
73
|
-
Both sets are updated by `morph-spec update
|
|
74
|
+
Both sets are updated by `morph-spec update`.
|
|
74
75
|
|
|
75
76
|
### Agent detection
|
|
76
77
|
|
|
77
|
-
When a feature is created, `
|
|
78
|
+
When a feature is created, Claude reads `agents.json` directly and matches keywords in the feature description against each agent's keyword list. Matched agents are stored in `state.json` under the feature's `activeAgents` array. The active agent set determines which standards are loaded and which validators run.
|
|
79
|
+
|
|
80
|
+
> Note: Some skill files reference `npx morph-spec detect-agents --json` — this is not a real CLI command. Agent detection is performed by Claude reading `agents.json` inline, not by a subprocess.
|
|
78
81
|
|
|
79
82
|
---
|
|
80
83
|
|
|
@@ -107,15 +110,15 @@ Canonical phase definitions live in `framework/phases.json`.
|
|
|
107
110
|
|
|
108
111
|
```
|
|
109
112
|
framework/
|
|
110
|
-
├── agents.json #
|
|
113
|
+
├── agents.json # 38 agents definition (v3.2.0)
|
|
111
114
|
├── phases.json # 8 phase definitions
|
|
112
115
|
├── CLAUDE_runtime.md # copied to .claude/CLAUDE.md on init
|
|
113
116
|
├── agents/ # tier 1-2 agent markdown files
|
|
114
117
|
├── hooks/
|
|
115
|
-
│ ├── claude-code/ #
|
|
118
|
+
│ ├── claude-code/ # 10 Claude Code hook scripts
|
|
116
119
|
│ │ └── shared/ # state-reader, phase-utils, hook-response, stdin-reader
|
|
117
120
|
│ └── git/ # pre-commit, commit-msg, pre-push
|
|
118
|
-
├── rules/ #
|
|
121
|
+
├── rules/ # 6 rule files (copied to .claude/rules/)
|
|
119
122
|
├── skills/
|
|
120
123
|
│ ├── README.md
|
|
121
124
|
│ ├── level-0-meta/ # 7 meta skills (brainstorming, code-review, etc.)
|
|
@@ -126,7 +129,7 @@ framework/
|
|
|
126
129
|
│ └── level-1-workflows/ # 8 workflow skills (phase-proposal, phase-design, etc.)
|
|
127
130
|
│ └── {skill}/
|
|
128
131
|
│ └── SKILL.md
|
|
129
|
-
├── standards/ #
|
|
132
|
+
├── standards/ # 82 standards, 11 categories
|
|
130
133
|
│ ├── STANDARDS.json # registry (regenerate: node scripts/generate-standards-registry.js)
|
|
131
134
|
│ ├── core/
|
|
132
135
|
│ ├── backend/
|
|
@@ -160,7 +163,7 @@ framework/
|
|
|
160
163
|
│ └── 4-implement/
|
|
161
164
|
├── checkpoints/
|
|
162
165
|
├── logs/tool-failures.log
|
|
163
|
-
└── state.json # READ-ONLY
|
|
166
|
+
└── state.json # READ-ONLY — gitignored, managed by CLI only
|
|
164
167
|
|
|
165
168
|
.claude/
|
|
166
169
|
├── CLAUDE.md # runtime instructions
|
|
@@ -172,11 +175,12 @@ framework/
|
|
|
172
175
|
│ ├── morph-{id}.md # tier 1-2 (from framework/agents/)
|
|
173
176
|
│ └── morph-domain-{name}.md # tier 3 (from framework/skills/level-2-domains/)
|
|
174
177
|
├── rules/ # path-scoped rules (from framework/rules/)
|
|
175
|
-
│ ├── morph-workflow.md # always active
|
|
176
|
-
│ ├── csharp-standards.md
|
|
177
|
-
│ ├── frontend-standards.md
|
|
178
|
-
│ ├──
|
|
179
|
-
│
|
|
178
|
+
│ ├── morph-workflow.md # always active (no paths: filter)
|
|
179
|
+
│ ├── csharp-standards.md # paths: **/*.cs, **/*.csproj
|
|
180
|
+
│ ├── frontend-standards.md # paths: **/*.razor, **/*.css, **/*.scss
|
|
181
|
+
│ ├── nextjs-standards.md # paths: **/*.tsx, **/*.ts
|
|
182
|
+
│ ├── testing-standards.md # paths: tests/**, **/*.test.*, **/*Tests.cs
|
|
183
|
+
│ └── infrastructure-standards.md # paths: **/*.bicep, **/Dockerfile, ...
|
|
180
184
|
└── settings.local.json # hooks, permissions.deny, env vars
|
|
181
185
|
```
|
|
182
186
|
|
|
@@ -212,20 +216,22 @@ Each skill lives in its own directory under `framework/skills/{level}/{skill-nam
|
|
|
212
216
|
|
|
213
217
|
## Hooks system
|
|
214
218
|
|
|
215
|
-
|
|
219
|
+
10 Claude Code hooks are configured in `.claude/settings.local.json`. All hooks fail-open (catch + exit 0) to prevent blocking Claude Code on errors.
|
|
216
220
|
|
|
217
221
|
| Event | Hook | Function |
|
|
218
222
|
|-------|------|----------|
|
|
219
|
-
| `SessionStart` | `inject-morph-context.js` | Injects active feature `1-design/spec.md` (
|
|
220
|
-
| `UserPromptSubmit` | `
|
|
221
|
-
| `PreToolUse` (
|
|
222
|
-
| `PreToolUse` (Write
|
|
223
|
-
| `
|
|
224
|
-
| `PostToolUse` (
|
|
223
|
+
| `SessionStart` | `inject-morph-context.js` | Injects active feature `1-design/spec.md` (configurable char limit) into context |
|
|
224
|
+
| `UserPromptSubmit` | `enrich-prompt.js` | Scans prompt for feature names/intent; injects phase hints and approval syntax |
|
|
225
|
+
| `PreToolUse` (Write\|Edit) | `protect-spec-files.js` | Blocks edits to spec/contracts after design gate is approved |
|
|
226
|
+
| `PreToolUse` (Write\|Edit) | `enforce-phase-writes.js` | Validates write targets are in the correct phase subfolder |
|
|
227
|
+
| `PreToolUse` (Bash) | Prompt-type inline guard (`type: "prompt"`) | Detects destructive shell patterns; no subprocess |
|
|
228
|
+
| `PostToolUse` (Bash) | `dispatch.js` | Auto-checkpoint via `morph-spec checkpoint-save` every 3 completed tasks |
|
|
225
229
|
| `PostToolUseFailure` | `handle-tool-failure.js` | Appends failure details to `.morph/logs/tool-failures.log` |
|
|
226
|
-
| `Stop` | `
|
|
227
|
-
| `PreCompact` | `
|
|
228
|
-
| `Notification` | `
|
|
230
|
+
| `Stop` | `validate-completion.js` | Warns about incomplete tasks, missing outputs, or pending approval gates |
|
|
231
|
+
| `PreCompact` | `save-morph-context.js` | Snapshots state to `.morph/memory/pre-compact-{ts}.json` |
|
|
232
|
+
| `Notification` | `approval-reminder.js` | Reminds about pending approval gates when Claude is idle |
|
|
233
|
+
|
|
234
|
+
> Note: `.morph/state.json` and `.morph/framework/**` are protected via native `permissions.deny` in `settings.local.json` — not a hook.
|
|
229
235
|
|
|
230
236
|
Shared utilities live in `framework/hooks/claude-code/shared/`:
|
|
231
237
|
- `state-reader.js` — reads `.morph/state.json` without subprocess
|
|
@@ -282,7 +288,7 @@ Feature outputs (spec.md, contracts.cs, tasks.md, etc.) are tracked by scanning
|
|
|
282
288
|
|
|
283
289
|
## Standards registry
|
|
284
290
|
|
|
285
|
-
|
|
291
|
+
82 standards across 11 categories are registered in `framework/standards/STANDARDS.json`. Each entry has an `id`, `name`, `path`, `scope`, `layer`, and `keywords`.
|
|
286
292
|
|
|
287
293
|
Regenerate the registry after adding standards:
|
|
288
294
|
|
|
@@ -290,15 +296,6 @@ Regenerate the registry after adding standards:
|
|
|
290
296
|
node scripts/generate-standards-registry.js
|
|
291
297
|
```
|
|
292
298
|
|
|
293
|
-
Browse via CLI:
|
|
294
|
-
|
|
295
|
-
```bash
|
|
296
|
-
morph-spec standards --list
|
|
297
|
-
morph-spec standards --list --category backend
|
|
298
|
-
morph-spec standards --search "async"
|
|
299
|
-
morph-spec standards --show csharp-naming
|
|
300
|
-
```
|
|
301
|
-
|
|
302
299
|
---
|
|
303
300
|
|
|
304
301
|
## Workflow configs
|
|
@@ -320,12 +317,12 @@ Trust levels (`low`, `medium`, `high`, `maximum`) control how many approval gate
|
|
|
320
317
|
|
|
321
318
|
## CLI internals
|
|
322
319
|
|
|
323
|
-
- **Entry point:** `bin/morph-spec.js` — Commander.js,
|
|
324
|
-
- **Commands:** `src/commands/` — organized into subdirectories by domain
|
|
320
|
+
- **Entry point:** `bin/morph-spec.js` — Commander.js, ~20 framework-internal commands + 3 user commands (`init`, `update`, `doctor`)
|
|
321
|
+
- **Commands:** `src/commands/` — organized into subdirectories by domain (project, state, tasks, validation, templates, trust, mcp)
|
|
325
322
|
- **Libraries:** `src/lib/` — state, validators, templates, agents, detection
|
|
326
|
-
- **Templates engine:** Handlebars v2.0 with helpers (pascalCase, camelCase, snakeCase, pluralize)
|
|
327
|
-
- **Test suite:** `test/` — Node.js built-in test runner,
|
|
323
|
+
- **Templates engine:** Handlebars v2.0 with helpers (pascalCase, camelCase, snakeCase, kebabCase, pluralize)
|
|
324
|
+
- **Test suite:** `test/` — Node.js built-in test runner, 670+ tests
|
|
328
325
|
|
|
329
326
|
---
|
|
330
327
|
|
|
331
|
-
*morph-spec v4.
|
|
328
|
+
*morph-spec v4.8.1 by Polymorphism Tech*
|
package/docs/CHEATSHEET.md
CHANGED
|
@@ -1,221 +1,203 @@
|
|
|
1
|
-
# morph-spec Cheat Sheet
|
|
2
|
-
|
|
3
|
-
## Setup
|
|
4
|
-
|
|
5
|
-
```bash
|
|
6
|
-
npm install -g @polymorphism-tech/morph-spec # install globally
|
|
7
|
-
morph-spec init # initialize project
|
|
8
|
-
morph-spec init --wizard # interactive wizard
|
|
9
|
-
morph-spec init --force # overwrite existing
|
|
10
|
-
morph-spec update # sync framework files
|
|
11
|
-
morph-spec doctor # health check
|
|
12
|
-
morph-spec --version
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
---
|
|
16
|
-
|
|
17
|
-
## Phase workflow
|
|
18
|
-
|
|
19
|
-
```
|
|
20
|
-
proposal → setup → [uiux] → design → clarify → tasks → implement → [sync]
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
Phases in brackets are optional.
|
|
24
|
-
|
|
25
|
-
| Phase | Directory | Output files | Gate |
|
|
26
|
-
|-------|-----------|--------------|------|
|
|
27
|
-
| proposal | `0-proposal/` | `proposal.md` | ✅ Approval |
|
|
28
|
-
| setup | *(no output)* | context loaded | — |
|
|
29
|
-
| uiux *(optional)* | `2-ui/` | `design-system.md`, `mockups.md`, `components.md`, `flows.md` | ✅ Approval |
|
|
30
|
-
| design | `1-design/` | `spec.md`, `contracts.cs`, `decisions.md` | ✅ Approval |
|
|
31
|
-
| clarify | `1-design/` | spec updated | — |
|
|
32
|
-
| tasks | `3-tasks/` | `tasks.md` | ✅ Approval |
|
|
33
|
-
| implement | `4-implement/` | code + `recap.md` | — |
|
|
34
|
-
| sync *(optional)* | `.morph/context/` | standards updated | — |
|
|
35
|
-
|
|
36
|
-
---
|
|
37
|
-
|
|
38
|
-
## Slash commands (Claude Code)
|
|
39
|
-
|
|
40
|
-
| Command | Description |
|
|
41
|
-
|---------|-------------|
|
|
42
|
-
| `/morph-proposal {feature}` | Full spec pipeline — phases 0–4 with approval gates |
|
|
43
|
-
| `/morph-apply {feature}` | Implement approved feature — phase 5 |
|
|
44
|
-
| `/morph-status` | Project-wide feature status dashboard |
|
|
45
|
-
| `/morph-preflight` | Pre-implementation validation (7 checks) |
|
|
46
|
-
|
|
47
|
-
---
|
|
48
|
-
|
|
49
|
-
## CLI — project management
|
|
50
|
-
|
|
51
|
-
```bash
|
|
52
|
-
morph-spec init [--
|
|
53
|
-
morph-spec update [--
|
|
54
|
-
morph-spec doctor
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
morph-spec state
|
|
65
|
-
morph-spec
|
|
66
|
-
morph-spec
|
|
67
|
-
morph-spec
|
|
68
|
-
morph-spec
|
|
69
|
-
morph-spec
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
morph-spec
|
|
90
|
-
morph-spec
|
|
91
|
-
morph-spec
|
|
92
|
-
morph-spec
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
morph-spec
|
|
102
|
-
morph-spec
|
|
103
|
-
morph-spec
|
|
104
|
-
morph-spec
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
morph-spec
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
morph-spec
|
|
130
|
-
morph-spec
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
morph
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
├──
|
|
174
|
-
│
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
.
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|------|-------------|
|
|
205
|
-
| `.morph/state.json` | `permissions.deny` |
|
|
206
|
-
| `.morph/framework/**` | `permissions.deny` |
|
|
207
|
-
| Approved spec/contracts | `protect-spec-files.js` hook |
|
|
208
|
-
|
|
209
|
-
---
|
|
210
|
-
|
|
211
|
-
## Links
|
|
212
|
-
|
|
213
|
-
- [QUICKSTART.md](QUICKSTART.md) — step-by-step guide
|
|
214
|
-
- [ARCHITECTURE.md](ARCHITECTURE.md) — system design
|
|
215
|
-
- [CHANGELOG.md](../CHANGELOG.md) — release history
|
|
216
|
-
- [npm](https://www.npmjs.com/package/@polymorphism-tech/morph-spec)
|
|
217
|
-
- support@polymorphism.com.br
|
|
218
|
-
|
|
219
|
-
---
|
|
220
|
-
|
|
221
|
-
*morph-spec v4.6.0 by Polymorphism Tech*
|
|
1
|
+
# morph-spec Cheat Sheet
|
|
2
|
+
|
|
3
|
+
## Setup
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
npm install -g @polymorphism-tech/morph-spec # install globally
|
|
7
|
+
morph-spec init # initialize project
|
|
8
|
+
morph-spec init --wizard # interactive wizard
|
|
9
|
+
morph-spec init --force # overwrite existing
|
|
10
|
+
morph-spec update # sync framework files
|
|
11
|
+
morph-spec doctor # health check
|
|
12
|
+
morph-spec --version
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## Phase workflow
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
proposal → setup → [uiux] → design → clarify → tasks → implement → [sync]
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Phases in brackets are optional.
|
|
24
|
+
|
|
25
|
+
| Phase | Directory | Output files | Gate |
|
|
26
|
+
|-------|-----------|--------------|------|
|
|
27
|
+
| proposal | `0-proposal/` | `proposal.md` | ✅ Approval |
|
|
28
|
+
| setup | *(no output)* | context loaded | — |
|
|
29
|
+
| uiux *(optional)* | `2-ui/` | `design-system.md`, `mockups.md`, `components.md`, `flows.md` | ✅ Approval |
|
|
30
|
+
| design | `1-design/` | `spec.md`, `contracts.cs`, `decisions.md` | ✅ Approval |
|
|
31
|
+
| clarify | `1-design/` | spec updated | — |
|
|
32
|
+
| tasks | `3-tasks/` | `tasks.md` | ✅ Approval |
|
|
33
|
+
| implement | `4-implement/` | code + `recap.md` | — |
|
|
34
|
+
| sync *(optional)* | `.morph/context/` | standards updated | — |
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## Slash commands (Claude Code)
|
|
39
|
+
|
|
40
|
+
| Command | Description |
|
|
41
|
+
|---------|-------------|
|
|
42
|
+
| `/morph-proposal {feature}` | Full spec pipeline — phases 0–4 with approval gates |
|
|
43
|
+
| `/morph-apply {feature}` | Implement approved feature — phase 5 |
|
|
44
|
+
| `/morph-status` | Project-wide feature status dashboard |
|
|
45
|
+
| `/morph-preflight` | Pre-implementation validation (7 checks) |
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## CLI — project management
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
morph-spec init [--force] [--skip-mcp]
|
|
53
|
+
morph-spec update [--templates] [--standards]
|
|
54
|
+
morph-spec doctor
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## CLI — feature workflow
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
morph-spec state list # all features
|
|
63
|
+
morph-spec state get {feature} [--json] # feature detail
|
|
64
|
+
morph-spec state set {feature} {key} {value} # update property
|
|
65
|
+
morph-spec phase advance {feature} # advance to next phase
|
|
66
|
+
morph-spec status {feature} [--json] [--verbose]
|
|
67
|
+
morph-spec task done {feature} # mark task complete
|
|
68
|
+
morph-spec task start {feature} # start next task
|
|
69
|
+
morph-spec task next {feature} # preview next task
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## CLI — validation
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
morph-spec validate # all validators
|
|
78
|
+
morph-spec validate architecture
|
|
79
|
+
morph-spec validate packages
|
|
80
|
+
morph-spec validate contrast [--wcag-aaa]
|
|
81
|
+
morph-spec validate-feature {feature} [--phase {phase}] [--json]
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## CLI — utilities
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
morph-spec generate recap {feature} # auto-generate recap.md
|
|
90
|
+
morph-spec template render {id} {output} {vars-json}
|
|
91
|
+
morph-spec trust status [feature]
|
|
92
|
+
morph-spec trust set {feature} {level} [reason]
|
|
93
|
+
morph-spec mcp setup [name] [--list] [--auto]
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
## State — mark-output
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
morph-spec state mark-output {feature} proposal
|
|
102
|
+
morph-spec state mark-output {feature} spec
|
|
103
|
+
morph-spec state mark-output {feature} contracts
|
|
104
|
+
morph-spec state mark-output {feature} decisions
|
|
105
|
+
morph-spec state mark-output {feature} tasks
|
|
106
|
+
morph-spec state mark-output {feature} recap
|
|
107
|
+
|
|
108
|
+
# UI outputs (camelCase or kebab-case both work)
|
|
109
|
+
morph-spec state mark-output {feature} uiDesignSystem
|
|
110
|
+
morph-spec state mark-output {feature} uiMockups
|
|
111
|
+
morph-spec state mark-output {feature} uiComponents
|
|
112
|
+
morph-spec state mark-output {feature} uiFlows
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
## State — agents
|
|
118
|
+
|
|
119
|
+
```bash
|
|
120
|
+
morph-spec state add-agent {feature} {agent-id}
|
|
121
|
+
morph-spec state remove-agent {feature} {agent-id}
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
## Checkpoints
|
|
127
|
+
|
|
128
|
+
```bash
|
|
129
|
+
morph-spec checkpoint-save {feature}
|
|
130
|
+
morph-spec checkpoint-restore {feature}
|
|
131
|
+
morph-spec checkpoint-list {feature}
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
---
|
|
135
|
+
|
|
136
|
+
## Approvals
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
morph-spec approve {feature} {gate} # approve a gate
|
|
140
|
+
morph-spec approval-status {feature} # show gate status
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
## Directory structure
|
|
146
|
+
|
|
147
|
+
```
|
|
148
|
+
.morph/
|
|
149
|
+
├── config/
|
|
150
|
+
│ └── config.json # project config (editable)
|
|
151
|
+
├── framework/ # READ-ONLY
|
|
152
|
+
│ ├── agents.json # 38 agents, 4 tiers
|
|
153
|
+
│ ├── standards/ # 82 standards across 11 categories
|
|
154
|
+
│ └── templates/ # code and IaC templates
|
|
155
|
+
├── context/ # project context (editable)
|
|
156
|
+
│ ├── README.md
|
|
157
|
+
│ └── standards.md
|
|
158
|
+
├── features/
|
|
159
|
+
│ └── {feature}/
|
|
160
|
+
│ ├── 0-proposal/proposal.md
|
|
161
|
+
│ ├── 1-design/spec.md, contracts.cs, decisions.md
|
|
162
|
+
│ ├── 2-ui/design-system.md, mockups.md, components.md, flows.md
|
|
163
|
+
│ ├── 3-tasks/tasks.md
|
|
164
|
+
│ └── 4-implement/recap.md
|
|
165
|
+
├── checkpoints/
|
|
166
|
+
├── logs/
|
|
167
|
+
└── state.json # READ-ONLY — CLI managed
|
|
168
|
+
|
|
169
|
+
.claude/
|
|
170
|
+
├── commands/ # slash commands
|
|
171
|
+
├── skills/ # framework skills (SKILL.md per dir)
|
|
172
|
+
├── agents/ # native subagents (38)
|
|
173
|
+
│ ├── morph-{id}.md # tier 1-2 agents
|
|
174
|
+
│ └── morph-domain-{name}.md # tier 3 domain agents
|
|
175
|
+
├── rules/ # path-scoped rules (6 files)
|
|
176
|
+
└── settings.local.json # hooks (11)
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
## Protected files
|
|
182
|
+
|
|
183
|
+
These files are never edited directly. Use CLI commands or `morph-spec update` instead:
|
|
184
|
+
|
|
185
|
+
| Path | Protected by |
|
|
186
|
+
|------|-------------|
|
|
187
|
+
| `.morph/state.json` | `permissions.deny` |
|
|
188
|
+
| `.morph/framework/**` | `permissions.deny` |
|
|
189
|
+
| Approved spec/contracts | `protect-spec-files.js` hook |
|
|
190
|
+
|
|
191
|
+
---
|
|
192
|
+
|
|
193
|
+
## Links
|
|
194
|
+
|
|
195
|
+
- [QUICKSTART.md](QUICKSTART.md) — step-by-step guide
|
|
196
|
+
- [ARCHITECTURE.md](ARCHITECTURE.md) — system design
|
|
197
|
+
- [CHANGELOG.md](../CHANGELOG.md) — release history
|
|
198
|
+
- [npm](https://www.npmjs.com/package/@polymorphism-tech/morph-spec)
|
|
199
|
+
- support@polymorphism.com.br
|
|
200
|
+
|
|
201
|
+
---
|
|
202
|
+
|
|
203
|
+
*morph-spec v4.8.1 by Polymorphism Tech*
|