@polymorphism-tech/morph-spec 4.5.0 → 4.7.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/CLAUDE.md +77 -56
- package/README.md +394 -700
- package/docs/ARCHITECTURE.md +331 -0
- package/docs/CHEATSHEET.md +221 -0
- package/docs/COMMAND-FLOWS.md +368 -0
- package/docs/QUICKSTART.md +212 -0
- package/docs/examples/order-management/contracts.cs +84 -0
- package/docs/examples/order-management/proposal.md +24 -0
- package/docs/examples/order-management/spec.md +162 -0
- package/docs/plans/2026-02-23-ddd-architecture-refactor.md +1153 -0
- package/docs/plans/2026-02-23-ddd-nextsteps.md +682 -0
- package/docs/plans/2026-02-23-infra-architect-refactor.md +437 -0
- package/docs/plans/2026-02-23-nextjs-code-review-design.md +156 -0
- package/docs/plans/2026-02-23-nextjs-code-review-impl.md +1254 -0
- package/docs/plans/2026-02-23-nextjs-standards-design.md +149 -0
- package/docs/plans/2026-02-23-nextjs-standards-impl.md +1846 -0
- package/framework/{skills/level-2-domains → agents}/README.md +14 -14
- package/framework/{skills/level-2-domains → agents}/ai-agents/ai-system-architect.md +1 -4
- package/framework/{skills/level-2-domains → agents}/architecture/po-pm-advisor.md +1 -2
- package/framework/{skills/level-2-domains → agents}/architecture/prompt-engineer.md +1 -2
- package/framework/{skills/level-2-domains → agents}/architecture/seo-growth-hacker.md +1 -2
- package/framework/{skills/level-2-domains → agents}/architecture/standards-architect.md +159 -162
- package/framework/agents/backend/api-designer.md +103 -0
- package/framework/{skills/level-2-domains → agents}/backend/dotnet-senior.md +1 -2
- package/framework/agents/backend/ef-modeler.md +119 -0
- package/framework/{skills/level-2-domains → agents}/backend/hangfire-orchestrator.md +1 -4
- package/framework/{skills/level-2-domains → agents}/backend/ms-agent-expert.md +1 -4
- package/framework/{skills/level-2-domains → agents}/frontend/blazor-builder.md +1 -4
- package/framework/agents/frontend/nextjs-expert.md +118 -0
- package/framework/{skills/level-2-domains → agents}/frontend/ui-ux-designer.md +1 -2
- package/framework/{skills/level-2-domains → agents}/infrastructure/azure-architect.md +147 -148
- package/framework/{skills/level-2-domains → agents}/infrastructure/azure-deploy-specialist.md +1 -2
- package/framework/{skills/level-2-domains → agents}/infrastructure/bicep-architect.md +1 -4
- package/framework/{skills/level-2-domains → agents}/infrastructure/container-specialist.md +1 -4
- package/framework/{skills/level-2-domains → agents}/infrastructure/devops-engineer.md +1 -4
- package/framework/agents/infrastructure/infra-architect.md +45 -0
- package/framework/{skills/level-2-domains → agents}/integrations/asaas-financial.md +1 -4
- package/framework/{skills/level-2-domains → agents}/integrations/azure-identity.md +1 -4
- package/framework/{skills/level-2-domains → agents}/integrations/clerk-auth.md +1 -4
- package/framework/{skills/level-2-domains → agents}/integrations/hangfire-integration.md +1 -2
- package/framework/{skills/level-2-domains → agents}/integrations/resend-email.md +1 -4
- package/framework/{skills/level-2-domains → agents}/quality/code-analyzer.md +1 -4
- package/framework/{skills/level-2-domains → agents}/quality/testing-specialist.md +1 -4
- package/framework/agents.json +1145 -278
- package/framework/hooks/claude-code/statusline.py +384 -85
- package/framework/hooks/shared/phase-utils.js +129 -129
- package/framework/rules/frontend-standards.md +0 -3
- package/framework/rules/nextjs-standards.md +17 -0
- package/framework/skills/README.md +66 -0
- package/framework/skills/level-0-meta/{brainstorming.md → brainstorming/SKILL.md} +3 -1
- package/framework/skills/level-0-meta/brainstorming/references/proposal-example.md +138 -0
- package/framework/skills/level-0-meta/{code-review.md → code-review/SKILL.md} +3 -2
- package/framework/skills/level-0-meta/code-review/references/review-example.md +164 -0
- package/framework/skills/level-0-meta/code-review/scripts/scan-csharp.mjs +121 -0
- package/framework/skills/level-0-meta/code-review-nextjs/SKILL.md +147 -0
- package/framework/skills/level-0-meta/code-review-nextjs/references/review-example-nextjs.md +254 -0
- package/framework/skills/level-0-meta/{morph-checklist.md → morph-checklist/SKILL.md} +2 -5
- package/framework/skills/{level-1-workflows/morph-replicate.md → level-0-meta/morph-replicate/SKILL.md} +6 -7
- package/framework/skills/level-0-meta/{simulation-checklist.md → simulation-checklist/SKILL.md} +3 -6
- package/framework/skills/level-0-meta/{tool-usage-guide.md → tool-usage-guide/SKILL.md} +4 -5
- package/framework/skills/level-0-meta/{verification-before-completion.md → verification-before-completion/SKILL.md} +3 -1
- package/framework/skills/level-0-meta/verification-before-completion/scripts/check-phase-outputs.mjs +110 -0
- package/framework/skills/level-1-workflows/{phase-clarify.md → phase-clarify/SKILL.md} +3 -3
- package/framework/skills/level-1-workflows/phase-clarify/references/clarifications-example.md +117 -0
- package/framework/skills/level-1-workflows/{phase-codebase-analysis.md → phase-codebase-analysis/SKILL.md} +2 -3
- package/framework/skills/level-1-workflows/{phase-design.md → phase-design/SKILL.md} +46 -182
- package/framework/skills/level-1-workflows/phase-design/references/spec-example.md +253 -0
- package/framework/skills/level-1-workflows/{phase-implement.md → phase-implement/SKILL.md} +3 -3
- package/framework/skills/level-1-workflows/phase-implement/references/recap-example.md +132 -0
- package/framework/skills/level-1-workflows/{phase-setup.md → phase-setup/SKILL.md} +2 -3
- package/framework/skills/level-1-workflows/{phase-tasks.md → phase-tasks/SKILL.md} +42 -3
- package/framework/skills/level-1-workflows/phase-tasks/references/tasks-example.md +231 -0
- package/framework/skills/level-1-workflows/phase-tasks/scripts/validate-tasks.mjs +112 -0
- package/framework/skills/level-1-workflows/{phase-uiux.md → phase-uiux/SKILL.md} +2 -3
- package/framework/standards/STANDARDS.json +121 -0
- package/framework/standards/architecture/ddd/bounded-contexts.md +105 -0
- package/framework/standards/architecture/ddd/complexity-levels.md +108 -0
- package/framework/standards/architecture/ddd/ubiquitous-language.md +58 -0
- package/framework/standards/frontend/nextjs/app-router.md +123 -0
- package/framework/standards/frontend/nextjs/components.md +132 -0
- package/framework/standards/frontend/nextjs/data-fetching.md +126 -0
- package/framework/standards/frontend/nextjs/forms.md +128 -0
- package/framework/standards/frontend/nextjs/naming-conventions.md +67 -0
- package/framework/standards/frontend/nextjs/project-structure.md +102 -0
- package/framework/standards/frontend/nextjs/state-management.md +72 -0
- package/framework/standards/frontend/nextjs/testing.md +111 -0
- package/framework/templates/REGISTRY.json +538 -142
- package/framework/templates/code/dotnet/contracts/contracts-level1.cs +69 -0
- package/framework/templates/code/dotnet/contracts/contracts-level2.cs +86 -0
- package/framework/templates/code/dotnet/contracts/contracts-level3.cs +41 -0
- package/framework/templates/docs/spec.md +49 -0
- package/framework/templates/frontend/nextjs/Dockerfile.nextjs.hbs +43 -0
- package/framework/templates/frontend/nextjs/client-component.tsx.hbs +26 -0
- package/framework/templates/frontend/nextjs/env.mjs.hbs +32 -0
- package/framework/templates/frontend/nextjs/feature-form.tsx.hbs +56 -0
- package/framework/templates/frontend/nextjs/page.tsx.hbs +22 -0
- package/framework/templates/frontend/nextjs/tsconfig.json.hbs +26 -0
- package/framework/templates/frontend/nextjs/use-feature.ts.hbs +54 -0
- package/framework/templates/project-structure/dotnet-ddd.md +70 -0
- package/framework/workflows/docs/enforcement-pipeline.md +2 -1
- package/package.json +1 -1
- package/scripts/scan-nextjs.mjs +169 -0
- package/src/commands/project/doctor.js +52 -1
- package/src/commands/project/init.js +19 -65
- package/src/commands/project/update.js +7 -63
- package/src/lib/detectors/claude-config-detector.js +1 -3
- package/src/lib/standards/standards-context-injector.js +5 -0
- package/src/lib/validators/nextjs/index.js +6 -0
- package/src/lib/validators/nextjs/next-component-validator.js +181 -0
- package/src/lib/validators/validation-runner.js +5 -0
- package/src/utils/agents-installer.js +16 -4
- package/src/utils/skills-installer.js +59 -15
- package/.morph/.morphversion +0 -5
- package/.morph/analytics/threads-log.jsonl +0 -44
- package/.morph/config/config.json +0 -8
- package/.morph/context/README.md +0 -17
- package/.morph/framework/agents.json +0 -948
- package/.morph/framework/standards/STANDARDS.json +0 -812
- 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/entities.md +0 -99
- 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/nextjs-patterns.md +0 -198
- 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 -1492
- 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.cs +0 -217
- package/.morph/framework/templates/code/dotnet/contracts/contracts.cs.hbs +0 -172
- 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 -149
- 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/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/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/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 -51
- package/.morph/memory/pre-compact-2026-02-22T17-01-01-658Z.json +0 -16
- package/.morph/state.json +0 -48
- package/framework/skills/level-2-domains/backend/api-designer.md +0 -66
- package/framework/skills/level-2-domains/backend/ef-modeler.md +0 -65
- package/framework/skills/level-2-domains/frontend/nextjs-expert.md +0 -161
- package/framework/skills/level-3-technologies/README.md +0 -7
- package/framework/skills/level-4-patterns/README.md +0 -7
- package/framework/templates/code/dotnet/contracts/contracts.cs +0 -217
- package/framework/templates/code/dotnet/contracts/contracts.cs.hbs +0 -172
|
@@ -0,0 +1,331 @@
|
|
|
1
|
+
# morph-spec Architecture
|
|
2
|
+
|
|
3
|
+
> System design reference for morph-spec v4.6.0
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Overview
|
|
8
|
+
|
|
9
|
+
morph-spec is a CLI tool that scaffolds a spec-driven development workflow on top of Claude Code. It installs a structured set of files into `.morph/` and `.claude/`, then lets the AI orchestrate feature development through well-defined phases with approval gates.
|
|
10
|
+
|
|
11
|
+
The framework has three main concerns:
|
|
12
|
+
|
|
13
|
+
1. **State** — tracking features, phases, and outputs in `.morph/state.json`
|
|
14
|
+
2. **Agents** — 37 specialized agents organized in 4 tiers, installed as native Claude Code subagents
|
|
15
|
+
3. **Workflow** — 8 phases from proposal through implementation, enforced via hooks and guards
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Agent hierarchy
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
Tier 1 — Orchestrators (3)
|
|
23
|
+
standards-architect always active — Chief Architect, enforces standards
|
|
24
|
+
ai-system-architect on-demand — multi-agent / AI system design
|
|
25
|
+
po-pm-advisor on-demand — requirements, business value
|
|
26
|
+
|
|
27
|
+
Tier 2 — Domain Leaders (3)
|
|
28
|
+
dotnet-senior always active — Backend Squad lead
|
|
29
|
+
infra-architect always active — Infrastructure Squad Leader (cloud-agnostic)
|
|
30
|
+
ui-designer on-demand — UI/UX Squad lead
|
|
31
|
+
|
|
32
|
+
Tier 3 — Specialists (27)
|
|
33
|
+
Backend (10) ef-modeler, event-architect, api-designer, nosql-cache-expert,
|
|
34
|
+
ddd-expert, hangfire-orchestrator, ms-agent-expert,
|
|
35
|
+
asaas-financial, clerk-auth, resend-email
|
|
36
|
+
Frontend (3) blazor-builder, nextjs-expert, css-specialist
|
|
37
|
+
Infrastructure (6) azure-architect, bicep-architect, devops-engineer,
|
|
38
|
+
container-specialist, observability-expert, azure-identity
|
|
39
|
+
Quality/Cross (8) testing-specialist, code-analyzer, troubleshooting-expert,
|
|
40
|
+
load-testing-expert, documentation-specialist,
|
|
41
|
+
migration-specialist, integration-specialist, data-modeler
|
|
42
|
+
|
|
43
|
+
Tier 4 — Validators (5)
|
|
44
|
+
security-expert SQL injection, XSS, hardcoded secrets
|
|
45
|
+
architecture-expert DbContext, async/await, DI order
|
|
46
|
+
packages-validator NuGet conflicts, .NET 10 compatibility
|
|
47
|
+
design-system-validator CSS palette, spacing, typography
|
|
48
|
+
blazor-concurrency-validator DbContext lifecycle, async void, JSInterop
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### Agent installation
|
|
52
|
+
|
|
53
|
+
Tier 1–2 agents are installed to `.claude/agents/morph-{id}.md` with YAML frontmatter:
|
|
54
|
+
|
|
55
|
+
```yaml
|
|
56
|
+
---
|
|
57
|
+
name: morph-standards-architect
|
|
58
|
+
description: Chief Architect...
|
|
59
|
+
model: sonnet
|
|
60
|
+
---
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Tier 3 domain agents are installed to `.claude/agents/morph-domain-{name}.md` with:
|
|
64
|
+
|
|
65
|
+
```yaml
|
|
66
|
+
---
|
|
67
|
+
model: sonnet
|
|
68
|
+
memory: project
|
|
69
|
+
maxTurns: 20
|
|
70
|
+
---
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Both sets are updated by `morph-spec update` and `morph-spec update-agents`.
|
|
74
|
+
|
|
75
|
+
### Agent detection
|
|
76
|
+
|
|
77
|
+
When a feature is created, `detect-agents` matches keywords in the feature description against `agents.json` keyword lists. 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.
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## Phase pipeline
|
|
82
|
+
|
|
83
|
+
```
|
|
84
|
+
0-proposal → 1-setup → [1.5-uiux] → 2-design → 3-clarify → 4-tasks → 5-implement → [6-sync]
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
| Phase | ID | Optional | Approval gate | Output directory |
|
|
88
|
+
|-------|-----|----------|--------------|-----------------|
|
|
89
|
+
| Proposal | `proposal` | No | Yes | `0-proposal/` |
|
|
90
|
+
| Setup | `setup` | No | No | — |
|
|
91
|
+
| UI/UX | `uiux` | Yes | Yes | `2-ui/` |
|
|
92
|
+
| Design | `design` | No | Yes | `1-design/` |
|
|
93
|
+
| Clarify | `clarify` | No | No | `1-design/` (updates) |
|
|
94
|
+
| Tasks | `tasks` | No | Yes | `3-tasks/` |
|
|
95
|
+
| Implement | `implement` | No | No | `4-implement/` |
|
|
96
|
+
| Sync | `sync` | Yes | No | `.morph/context/` |
|
|
97
|
+
|
|
98
|
+
Phase transitions are controlled by the state machine in `src/lib/state/`. Advancing to a phase with an approval gate is blocked until the gate is explicitly passed. `protect-spec-files.js` (hook) guards spec/contracts from edits after the design gate is passed.
|
|
99
|
+
|
|
100
|
+
Canonical phase definitions live in `framework/phases.json`.
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
## File structure
|
|
105
|
+
|
|
106
|
+
### Framework source (this repo)
|
|
107
|
+
|
|
108
|
+
```
|
|
109
|
+
framework/
|
|
110
|
+
├── agents.json # 37 agents definition (v3.1.0)
|
|
111
|
+
├── phases.json # 8 phase definitions
|
|
112
|
+
├── CLAUDE_runtime.md # copied to .claude/CLAUDE.md on init
|
|
113
|
+
├── agents/ # tier 1-2 agent markdown files
|
|
114
|
+
├── hooks/
|
|
115
|
+
│ ├── claude-code/ # 11 Claude Code hook scripts
|
|
116
|
+
│ │ └── shared/ # state-reader, phase-utils, hook-response, stdin-reader
|
|
117
|
+
│ └── git/ # pre-commit, commit-msg, pre-push
|
|
118
|
+
├── rules/ # 5 rule files (copied to .claude/rules/)
|
|
119
|
+
├── skills/
|
|
120
|
+
│ ├── README.md
|
|
121
|
+
│ ├── level-0-meta/ # 7 meta skills (brainstorming, code-review, etc.)
|
|
122
|
+
│ │ └── {skill}/
|
|
123
|
+
│ │ ├── SKILL.md # skill content
|
|
124
|
+
│ │ ├── scripts/ # optional helper scripts
|
|
125
|
+
│ │ └── references/ # optional reference materials
|
|
126
|
+
│ └── level-1-workflows/ # 8 workflow skills (phase-proposal, phase-design, etc.)
|
|
127
|
+
│ └── {skill}/
|
|
128
|
+
│ └── SKILL.md
|
|
129
|
+
├── standards/ # 74 standards, 11 categories
|
|
130
|
+
│ ├── STANDARDS.json # registry (regenerate: node scripts/generate-standards-registry.js)
|
|
131
|
+
│ ├── core/
|
|
132
|
+
│ ├── backend/
|
|
133
|
+
│ ├── frontend/
|
|
134
|
+
│ ├── infrastructure/
|
|
135
|
+
│ └── integration/
|
|
136
|
+
├── templates/ # Handlebars v2.0 code and IaC templates
|
|
137
|
+
│ ├── infrastructure/ # Bicep, Docker, GitHub Actions
|
|
138
|
+
│ └── ...
|
|
139
|
+
└── workflows/
|
|
140
|
+
└── configs/ # 10 workflow configs (express, spec-only, zero-touch, fusion, ...)
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
### Installed into a project (after init)
|
|
144
|
+
|
|
145
|
+
```
|
|
146
|
+
.morph/
|
|
147
|
+
├── config/config.json # editable project config
|
|
148
|
+
├── framework/ # READ-ONLY copy from package
|
|
149
|
+
│ ├── agents.json
|
|
150
|
+
│ ├── standards/
|
|
151
|
+
│ └── templates/
|
|
152
|
+
├── context/ # editable project context
|
|
153
|
+
│ ├── README.md # loaded at every SessionStart
|
|
154
|
+
│ └── standards.md
|
|
155
|
+
├── features/{feature}/ # feature outputs
|
|
156
|
+
│ ├── 0-proposal/
|
|
157
|
+
│ ├── 1-design/
|
|
158
|
+
│ ├── 2-ui/
|
|
159
|
+
│ ├── 3-tasks/
|
|
160
|
+
│ └── 4-implement/
|
|
161
|
+
├── checkpoints/
|
|
162
|
+
├── logs/tool-failures.log
|
|
163
|
+
└── state.json # READ-ONLY
|
|
164
|
+
|
|
165
|
+
.claude/
|
|
166
|
+
├── CLAUDE.md # runtime instructions
|
|
167
|
+
├── commands/ # slash command .md files
|
|
168
|
+
├── skills/ # flat install of framework/skills/
|
|
169
|
+
│ └── {skill-name}/
|
|
170
|
+
│ └── SKILL.md
|
|
171
|
+
├── agents/ # native subagents
|
|
172
|
+
│ ├── morph-{id}.md # tier 1-2 (from framework/agents/)
|
|
173
|
+
│ └── morph-domain-{name}.md # tier 3 (from framework/skills/level-2-domains/)
|
|
174
|
+
├── rules/ # path-scoped rules (from framework/rules/)
|
|
175
|
+
│ ├── morph-workflow.md # always active
|
|
176
|
+
│ ├── csharp-standards.md
|
|
177
|
+
│ ├── frontend-standards.md
|
|
178
|
+
│ ├── testing-standards.md
|
|
179
|
+
│ └── infrastructure-standards.md
|
|
180
|
+
└── settings.local.json # hooks, permissions.deny, env vars
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
---
|
|
184
|
+
|
|
185
|
+
## Skills system
|
|
186
|
+
|
|
187
|
+
Skills are Markdown files that provide Claude Code with domain knowledge and procedures. They are invoked via the `Skill` tool inside Claude Code.
|
|
188
|
+
|
|
189
|
+
### Directory structure
|
|
190
|
+
|
|
191
|
+
Each skill lives in its own directory under `framework/skills/{level}/{skill-name}/`:
|
|
192
|
+
|
|
193
|
+
```
|
|
194
|
+
{skill-name}/
|
|
195
|
+
├── SKILL.md # required — main content
|
|
196
|
+
├── scripts/ # optional — helper scripts (.mjs)
|
|
197
|
+
└── references/ # optional — reference documents
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
### Levels
|
|
201
|
+
|
|
202
|
+
| Level | Directory | Count | Purpose |
|
|
203
|
+
|-------|-----------|-------|---------|
|
|
204
|
+
| 0 | `level-0-meta/` | 7 | Cross-cutting: brainstorming, code review, verification, tool usage |
|
|
205
|
+
| 1 | `level-1-workflows/` | 8 | Phase workflows: phase-proposal, phase-setup, phase-uiux, phase-design, phase-clarify, phase-tasks, phase-implement, phase-sync |
|
|
206
|
+
|
|
207
|
+
### Installation
|
|
208
|
+
|
|
209
|
+
`installSkills()` in `src/utils/skills-installer.js` flattens all skills to `.claude/skills/{name}/SKILL.md`. Skills become available as `/{name}` slash commands in Claude Code.
|
|
210
|
+
|
|
211
|
+
---
|
|
212
|
+
|
|
213
|
+
## Hooks system
|
|
214
|
+
|
|
215
|
+
11 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
|
+
|
|
217
|
+
| Event | Hook | Function |
|
|
218
|
+
|-------|------|----------|
|
|
219
|
+
| `SessionStart` | `inject-morph-context.js` | Injects active feature `1-design/spec.md` (3000 char max) into context |
|
|
220
|
+
| `UserPromptSubmit` | `protect-spec-files.js` | Guards spec files after design gate approval |
|
|
221
|
+
| `PreToolUse` (Bash) | Prompt-type inline guard | Detects destructive shell patterns in Claude's reasoning |
|
|
222
|
+
| `PreToolUse` (Write/Edit) | `validate-feature-phase.js` | Validates write targets against current phase |
|
|
223
|
+
| `PostToolUse` (Write) | `track-output-creation.js` | Detects when feature output files are created; updates state directly via JSON I/O (no subprocess) |
|
|
224
|
+
| `PostToolUse` (any) | `checkpoint-trigger.js` | Triggers auto-checkpoint every 3 completed tasks |
|
|
225
|
+
| `PostToolUseFailure` | `handle-tool-failure.js` | Appends failure details to `.morph/logs/tool-failures.log` |
|
|
226
|
+
| `Stop` | `session-summary.js` | Writes session summary |
|
|
227
|
+
| `PreCompact` | `compact-context.js` | Preserves critical state before context compaction |
|
|
228
|
+
| `Notification` | `morph-notify.js` | Routes approval gate notifications |
|
|
229
|
+
|
|
230
|
+
Shared utilities live in `framework/hooks/claude-code/shared/`:
|
|
231
|
+
- `state-reader.js` — reads `.morph/state.json` without subprocess
|
|
232
|
+
- `phase-utils.js` — phase validation helpers
|
|
233
|
+
- `hook-response.js` — standardized hook response formatting
|
|
234
|
+
- `stdin-reader.js` — reads hook event data from stdin
|
|
235
|
+
|
|
236
|
+
Git hooks (`framework/hooks/git/`): `pre-commit`, `commit-msg` (Conventional Commits), `pre-push` (runs tests).
|
|
237
|
+
|
|
238
|
+
### Protected files
|
|
239
|
+
|
|
240
|
+
`permissions.deny` in `settings.local.json` blocks direct edits:
|
|
241
|
+
|
|
242
|
+
```json
|
|
243
|
+
"permissions": {
|
|
244
|
+
"deny": [
|
|
245
|
+
"Write(.morph/state.json)",
|
|
246
|
+
"Edit(.morph/state.json)",
|
|
247
|
+
"Write(.morph/framework/**)",
|
|
248
|
+
"Edit(.morph/framework/**)"
|
|
249
|
+
]
|
|
250
|
+
}
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
---
|
|
254
|
+
|
|
255
|
+
## State machine
|
|
256
|
+
|
|
257
|
+
`.morph/state.json` tracks the state of all features. It is managed exclusively by the CLI — never edited directly.
|
|
258
|
+
|
|
259
|
+
```json
|
|
260
|
+
{
|
|
261
|
+
"version": "4.0.0",
|
|
262
|
+
"features": {
|
|
263
|
+
"my-feature": {
|
|
264
|
+
"phase": "design",
|
|
265
|
+
"status": "in_progress",
|
|
266
|
+
"activeAgents": ["dotnet-senior", "ef-modeler", "testing-specialist"],
|
|
267
|
+
"approvals": {
|
|
268
|
+
"proposal": true,
|
|
269
|
+
"design": false,
|
|
270
|
+
"tasks": false
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
State auto-migrates from v3.0.0 to v4.0.0 on first CLI access.
|
|
278
|
+
|
|
279
|
+
Feature outputs (spec.md, contracts.cs, tasks.md, etc.) are tracked by scanning the filesystem at runtime — not stored in state. This keeps state lean and avoids the circular tracking bug of earlier versions.
|
|
280
|
+
|
|
281
|
+
---
|
|
282
|
+
|
|
283
|
+
## Standards registry
|
|
284
|
+
|
|
285
|
+
74 standards across 11 categories are registered in `framework/standards/STANDARDS.json`. Each entry has an `id`, `name`, `path`, `scope`, `layer`, and `keywords`.
|
|
286
|
+
|
|
287
|
+
Regenerate the registry after adding standards:
|
|
288
|
+
|
|
289
|
+
```bash
|
|
290
|
+
node scripts/generate-standards-registry.js
|
|
291
|
+
```
|
|
292
|
+
|
|
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
|
+
---
|
|
303
|
+
|
|
304
|
+
## Workflow configs
|
|
305
|
+
|
|
306
|
+
`framework/workflows/configs/` contains 10 workflow configurations that customize how the phase pipeline runs:
|
|
307
|
+
|
|
308
|
+
| Config | Description |
|
|
309
|
+
|--------|-------------|
|
|
310
|
+
| `default` | Full pipeline with all phases |
|
|
311
|
+
| `express` | Condensed pipeline for small features |
|
|
312
|
+
| `spec-only` | Proposal through tasks, no implementation |
|
|
313
|
+
| `zero-touch` | Fully automated (maximum trust level) |
|
|
314
|
+
| `fusion` | Combines setup + design into single phase |
|
|
315
|
+
| ... | + 5 more |
|
|
316
|
+
|
|
317
|
+
Trust levels (`low`, `medium`, `high`, `maximum`) control how many approval gates are enforced automatically vs manually.
|
|
318
|
+
|
|
319
|
+
---
|
|
320
|
+
|
|
321
|
+
## CLI internals
|
|
322
|
+
|
|
323
|
+
- **Entry point:** `bin/morph-spec.js` — Commander.js, 110+ commands
|
|
324
|
+
- **Commands:** `src/commands/` — organized into subdirectories by domain
|
|
325
|
+
- **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, 625+ tests
|
|
328
|
+
|
|
329
|
+
---
|
|
330
|
+
|
|
331
|
+
*morph-spec v4.6.0 by Polymorphism Tech*
|
|
@@ -0,0 +1,221 @@
|
|
|
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 [--wizard] [--force] [--skip-detection] [--skip-mcp]
|
|
53
|
+
morph-spec update [--wizard] [--templates] [--standards]
|
|
54
|
+
morph-spec doctor
|
|
55
|
+
morph-spec detect [--verbose]
|
|
56
|
+
morph-spec update-agents # refresh .claude/agents/
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## CLI — feature workflow
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
morph-spec state list # all features
|
|
65
|
+
morph-spec state get {feature} [--json] # feature detail
|
|
66
|
+
morph-spec state show {feature} # phase + approval status
|
|
67
|
+
morph-spec state set {feature} {key} {value} # update property
|
|
68
|
+
morph-spec state checkpoint {feature} "note" # manual checkpoint
|
|
69
|
+
morph-spec phase advance {feature} # advance to next phase
|
|
70
|
+
morph-spec status {feature} [--json] [--verbose]
|
|
71
|
+
morph-spec diff {feature} # spec changes since snapshot
|
|
72
|
+
morph-spec diff-save {feature} # save snapshot
|
|
73
|
+
morph-spec rollback {feature} --to {phase} # revert to phase
|
|
74
|
+
morph-spec task done {feature} # mark task complete
|
|
75
|
+
morph-spec task start {feature} # start next task
|
|
76
|
+
morph-spec task next {feature} # preview next task
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## CLI — validation
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
morph-spec validate # all validators
|
|
85
|
+
morph-spec validate architecture
|
|
86
|
+
morph-spec validate packages
|
|
87
|
+
morph-spec validate contrast [--wcag-aaa]
|
|
88
|
+
morph-spec validate-blazor [path]
|
|
89
|
+
morph-spec validate-blazor-state [path]
|
|
90
|
+
morph-spec analyze-blazor-concurrency [path]
|
|
91
|
+
morph-spec validate-css [path]
|
|
92
|
+
morph-spec validate-feature {feature} [--phase {phase}] [--json]
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## CLI — standards
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
morph-spec standards --list
|
|
101
|
+
morph-spec standards --list --category {name} # categories: core, backend, frontend, infra, ...
|
|
102
|
+
morph-spec standards --search {query}
|
|
103
|
+
morph-spec standards --show {id}
|
|
104
|
+
morph-spec standards --json
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## CLI — utilities
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
morph-spec cost {bicep-file} # Azure cost estimate
|
|
113
|
+
morph-spec cost {bicep-file} --verbose
|
|
114
|
+
morph-spec cost {bicep-file} --strict # exit 1 if over limit
|
|
115
|
+
morph-spec troubleshoot {keywords}
|
|
116
|
+
morph-spec troubleshoot --category {name}
|
|
117
|
+
morph-spec session-summary {feature}
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
122
|
+
## State — mark-output
|
|
123
|
+
|
|
124
|
+
```bash
|
|
125
|
+
morph-spec state mark-output {feature} proposal
|
|
126
|
+
morph-spec state mark-output {feature} spec
|
|
127
|
+
morph-spec state mark-output {feature} contracts
|
|
128
|
+
morph-spec state mark-output {feature} decisions
|
|
129
|
+
morph-spec state mark-output {feature} tasks
|
|
130
|
+
morph-spec state mark-output {feature} recap
|
|
131
|
+
|
|
132
|
+
# UI outputs (camelCase or kebab-case both work)
|
|
133
|
+
morph-spec state mark-output {feature} uiDesignSystem
|
|
134
|
+
morph-spec state mark-output {feature} uiMockups
|
|
135
|
+
morph-spec state mark-output {feature} uiComponents
|
|
136
|
+
morph-spec state mark-output {feature} uiFlows
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
---
|
|
140
|
+
|
|
141
|
+
## State — agents
|
|
142
|
+
|
|
143
|
+
```bash
|
|
144
|
+
morph-spec state add-agent {feature} {agent-id}
|
|
145
|
+
morph-spec state remove-agent {feature} {agent-id}
|
|
146
|
+
morph-spec detect-agents "{description}" # detect agents for request
|
|
147
|
+
morph-spec detect-agents --json "{description}" # with standards
|
|
148
|
+
morph-spec detect-agents --ids-only "{description}"
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
---
|
|
152
|
+
|
|
153
|
+
## Checkpoints
|
|
154
|
+
|
|
155
|
+
```bash
|
|
156
|
+
morph-spec checkpoint-save {feature}
|
|
157
|
+
morph-spec checkpoint-restore {feature}
|
|
158
|
+
morph-spec checkpoint-list {feature}
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
## Directory structure
|
|
164
|
+
|
|
165
|
+
```
|
|
166
|
+
.morph/
|
|
167
|
+
├── config/
|
|
168
|
+
│ └── config.json # project config (editable)
|
|
169
|
+
├── framework/ # READ-ONLY
|
|
170
|
+
│ ├── agents.json # 37 agents, 4 tiers
|
|
171
|
+
│ ├── standards/ # 74 standards across 11 categories
|
|
172
|
+
│ └── templates/ # code and IaC templates
|
|
173
|
+
├── context/ # project context (editable)
|
|
174
|
+
│ ├── README.md
|
|
175
|
+
│ └── standards.md
|
|
176
|
+
├── features/
|
|
177
|
+
│ └── {feature}/
|
|
178
|
+
│ ├── 0-proposal/proposal.md
|
|
179
|
+
│ ├── 1-design/spec.md, contracts.cs, decisions.md
|
|
180
|
+
│ ├── 2-ui/design-system.md, mockups.md, components.md, flows.md
|
|
181
|
+
│ ├── 3-tasks/tasks.md
|
|
182
|
+
│ └── 4-implement/recap.md
|
|
183
|
+
├── checkpoints/
|
|
184
|
+
├── logs/
|
|
185
|
+
└── state.json # READ-ONLY — CLI managed
|
|
186
|
+
|
|
187
|
+
.claude/
|
|
188
|
+
├── commands/ # slash commands
|
|
189
|
+
├── skills/ # framework skills (SKILL.md per dir)
|
|
190
|
+
├── agents/ # native subagents (37)
|
|
191
|
+
│ ├── morph-{id}.md # tier 1-2 agents
|
|
192
|
+
│ └── morph-domain-{name}.md # tier 3 domain agents
|
|
193
|
+
├── rules/ # path-scoped rules (5 files)
|
|
194
|
+
└── settings.local.json # hooks (11)
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
---
|
|
198
|
+
|
|
199
|
+
## Protected files
|
|
200
|
+
|
|
201
|
+
These files are never edited directly. Use CLI commands or `morph-spec update` instead:
|
|
202
|
+
|
|
203
|
+
| Path | Protected by |
|
|
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*
|