@polymorphism-tech/morph-spec 4.7.2 → 4.8.4
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/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/CHEATSHEET.md +203 -221
- package/docs/QUICKSTART.md +2 -8
- 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 +7 -5
- 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/analytics/threads-log.jsonl +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/.morph/state.json +0 -48
- package/CLAUDE.md +0 -77
- package/docs/ARCHITECTURE.md +0 -331
- package/docs/COMMAND-FLOWS.md +0 -368
- 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/docs/plans/2026-02-22-claude-docs-morph-alignment-analysis.md +0 -512
- package/docs/plans/2026-02-22-claude-settings.md +0 -515
- package/docs/plans/2026-02-22-morph-cc-alignment-impl.md +0 -728
- package/docs/plans/2026-02-22-morph-spec-next.md +0 -478
- package/docs/plans/2026-02-22-native-alignment-design.md +0 -199
- package/docs/plans/2026-02-22-native-alignment-impl.md +0 -925
- package/docs/plans/2026-02-22-native-enrichment-design.md +0 -244
- package/docs/plans/2026-02-22-native-enrichment.md +0 -735
- package/docs/plans/2026-02-23-ddd-architecture-refactor.md +0 -1153
- package/docs/plans/2026-02-23-ddd-nextsteps.md +0 -682
- package/docs/plans/2026-02-23-infra-architect-refactor.md +0 -437
- package/docs/plans/2026-02-23-nextjs-code-review-design.md +0 -156
- package/docs/plans/2026-02-23-nextjs-code-review-impl.md +0 -1254
- package/docs/plans/2026-02-23-nextjs-standards-design.md +0 -149
- package/docs/plans/2026-02-23-nextjs-standards-impl.md +0 -1846
- package/scripts/generate-refs.js +0 -336
- package/scripts/generate-standards-registry.js +0 -44
- package/scripts/scan-nextjs.mjs +0 -169
- package/scripts/validate-real.mjs +0 -255
- 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
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: morph-init
|
|
3
|
+
description: >
|
|
4
|
+
LLM-powered project initialization. Installs morph-spec infrastructure if
|
|
5
|
+
needed, auto-installs required plugins (superpowers, context7), analyzes any
|
|
6
|
+
project structure intelligently, generates rich context/README.md and
|
|
7
|
+
config.json, and configures MCPs. Use once per project after installing
|
|
8
|
+
@polymorphism-tech/morph-spec. Re-run with /morph-init refresh to update
|
|
9
|
+
context as the project evolves.
|
|
10
|
+
argument-hint: "[refresh]"
|
|
11
|
+
user-invocable: true
|
|
12
|
+
allowed-tools: Read, Write, Edit, Bash, Glob, Grep
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# morph-init — LLM-Powered Project Initialization
|
|
16
|
+
|
|
17
|
+
> Run once after `npm install -g @polymorphism-tech/morph-spec`.
|
|
18
|
+
> Re-run as `/morph-init refresh` when your project evolves.
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Step 0 — Required Plugins
|
|
23
|
+
|
|
24
|
+
Check for required Claude Code plugins: **superpowers** and **context7**.
|
|
25
|
+
|
|
26
|
+
Read `~/.claude/plugins/installed_plugins.json` and check for:
|
|
27
|
+
- `superpowers@claude-plugins-official`
|
|
28
|
+
- `context7@claude-plugins-official`
|
|
29
|
+
|
|
30
|
+
For each missing plugin, run:
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
morph-spec install-plugin superpowers
|
|
34
|
+
morph-spec install-plugin context7
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
**If the command succeeds:** `✓ {plugin} installed. Restart Claude Code after /morph-init completes.`
|
|
38
|
+
|
|
39
|
+
**If the command fails:** Show this and **STOP** — do not continue:
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
43
|
+
│ Plugin {plugin} requires manual installation: │
|
|
44
|
+
│ │
|
|
45
|
+
│ 1. Claude Code → Settings (Cmd/Ctrl+,) → Extensions │
|
|
46
|
+
│ 2. Browse → search "{plugin}" → Install │
|
|
47
|
+
│ 3. Restart Claude Code │
|
|
48
|
+
│ 4. Re-run /morph-init │
|
|
49
|
+
└─────────────────────────────────────────────────────────────┘
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Both `superpowers` and `context7` are required. Do not continue if either is missing.
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## Step 1 — Infrastructure
|
|
57
|
+
|
|
58
|
+
Check if `.morph/` exists in the current directory.
|
|
59
|
+
|
|
60
|
+
**If MISSING:**
|
|
61
|
+
```bash
|
|
62
|
+
morph-spec setup-infra
|
|
63
|
+
```
|
|
64
|
+
Output confirms: `✓ MORPH-SPEC infrastructure installed.`
|
|
65
|
+
|
|
66
|
+
**If EXISTS and argument is `refresh`:** Continue — will overwrite context and config.
|
|
67
|
+
|
|
68
|
+
**If EXISTS and no argument:**
|
|
69
|
+
Ask: *"MORPH already initialized. Refresh context and config? (y/n)"*
|
|
70
|
+
If `n` → STOP.
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## Step 2 — Analyze Project
|
|
75
|
+
|
|
76
|
+
Gather evidence to build a stack map. Run these in parallel:
|
|
77
|
+
|
|
78
|
+
| Tool | Pattern | Signal |
|
|
79
|
+
|------|---------|--------|
|
|
80
|
+
| `Glob` | `**/package.json` | Detect next, supabase, clerk, stripe in deps |
|
|
81
|
+
| `Glob` | `**/*.csproj` | .NET projects at any depth |
|
|
82
|
+
| `Glob` | `**/next.config.{js,ts,mjs}` | Next.js in any subdirectory |
|
|
83
|
+
| `Glob` | `**/components.json` | shadcn/ui |
|
|
84
|
+
| `Glob` | `**/docker-compose*.yml` | Container services |
|
|
85
|
+
| `Glob` | `database/migrations/**` | Supabase local dev |
|
|
86
|
+
| `Glob` | `supabase/**` | Supabase project config |
|
|
87
|
+
| `Glob` | `**/*.razor` | Blazor |
|
|
88
|
+
| `Read` | `.env.example` | Env vars reveal integrations |
|
|
89
|
+
| `Read` | `README.md` | Existing project description |
|
|
90
|
+
| `Grep` | `@supabase/supabase-js` | Supabase dep in any package.json |
|
|
91
|
+
| `Grep` | `clerk\|auth0\|nextauth` | Auth provider |
|
|
92
|
+
| `Grep` | `stripe\|asaas` | Payment provider |
|
|
93
|
+
|
|
94
|
+
Read each found `package.json` for dependency names. Build an **evidence map**:
|
|
95
|
+
|
|
96
|
+
```
|
|
97
|
+
stack: [nextjs, dotnet, ...]
|
|
98
|
+
integrations: [supabase, docker, clerk, ...]
|
|
99
|
+
uiLibrary: shadcn | fluent-ui | mudblazor | null
|
|
100
|
+
monorepo: true | false
|
|
101
|
+
frontendPath: src/frontend (if monorepo)
|
|
102
|
+
backendPath: src/backend (if monorepo)
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## Step 3 — Ask Targeted Questions
|
|
108
|
+
|
|
109
|
+
**Rule: only ask what cannot be inferred with ≥90% confidence from files.**
|
|
110
|
+
|
|
111
|
+
Ask at most 3 questions, only those that apply:
|
|
112
|
+
|
|
113
|
+
| # | Question | Condition | Purpose |
|
|
114
|
+
|---|----------|-----------|---------|
|
|
115
|
+
| 1 | *"Em uma frase: qual é o objetivo principal do **[ProjectName]**?"* | Always | README.md Overview |
|
|
116
|
+
| 2 | *"Confirmo: frontend em `{frontendPath}`, backend em `{backendPath}`. Correto?"* | Monorepo detected | Validate paths before persisting |
|
|
117
|
+
| 3 | *"Supabase Cloud (managed) ou self-hosted?"* | Supabase detected | MCP URL configuration |
|
|
118
|
+
|
|
119
|
+
Do **not** ask about technology already confirmed by file evidence.
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
## Step 4 — Generate `context/README.md`
|
|
124
|
+
|
|
125
|
+
Write `.morph/context/README.md`:
|
|
126
|
+
|
|
127
|
+
```markdown
|
|
128
|
+
# [ProjectName] — Project Context
|
|
129
|
+
|
|
130
|
+
## Overview
|
|
131
|
+
[Answer from question 1]
|
|
132
|
+
|
|
133
|
+
## Tech Stack
|
|
134
|
+
| Layer | Technology | Location |
|
|
135
|
+
|------------|-----------|----------|
|
|
136
|
+
[One row per detected layer — frontend, backend, database, UI library, auth, payments]
|
|
137
|
+
|
|
138
|
+
## Architecture
|
|
139
|
+
[monorepo / single-stack / etc — describe layers and responsibilities]
|
|
140
|
+
|
|
141
|
+
## Key Integrations
|
|
142
|
+
[Per integration: service → purpose → detected via: evidence file/dep]
|
|
143
|
+
|
|
144
|
+
## Agent Notes
|
|
145
|
+
[Patterns from eslint/tsconfig/.editorconfig, important paths,
|
|
146
|
+
project-specific conventions for MORPH agents]
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
---
|
|
150
|
+
|
|
151
|
+
## Step 5 — Update `config.json`
|
|
152
|
+
|
|
153
|
+
Read `.morph/config/config.json` and merge into `project`:
|
|
154
|
+
|
|
155
|
+
```json
|
|
156
|
+
{
|
|
157
|
+
"framework": "global",
|
|
158
|
+
"frameworkVersion": "[current version]",
|
|
159
|
+
"project": {
|
|
160
|
+
"name": "[ProjectName]",
|
|
161
|
+
"description": "[answer from question 1]",
|
|
162
|
+
"stack": "[stacks joined with +, e.g. nextjs+dotnet]",
|
|
163
|
+
"architecture": "[monorepo | single-stack | detected pattern]",
|
|
164
|
+
"uiLibrary": "[detected or null]",
|
|
165
|
+
"integrations": ["supabase", "docker", "clerk"],
|
|
166
|
+
"frontendPath": "[path if monorepo, else omit]",
|
|
167
|
+
"backendPath": "[path if monorepo, else omit]"
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
---
|
|
173
|
+
|
|
174
|
+
## Step 6 — Configure MCPs
|
|
175
|
+
|
|
176
|
+
For each detected integration with an available MCP:
|
|
177
|
+
|
|
178
|
+
**Supabase detected:**
|
|
179
|
+
> *"Configure Supabase MCP now? I'll need `SUPABASE_URL` and `SERVICE_ROLE_KEY`."*
|
|
180
|
+
- YES → collect credentials → add to `.claude/settings.local.json` under `mcpServers`
|
|
181
|
+
- NO → show snippet + `morph-spec mcp setup supabase`
|
|
182
|
+
|
|
183
|
+
**GitHub:**
|
|
184
|
+
> *"Configure GitHub MCP? I'll need a `GITHUB_PERSONAL_ACCESS_TOKEN`."*
|
|
185
|
+
- YES/NO → same pattern
|
|
186
|
+
|
|
187
|
+
Only offer Figma, Docker, Azure if explicitly detected in `.env.example`.
|
|
188
|
+
|
|
189
|
+
---
|
|
190
|
+
|
|
191
|
+
## Step 7 — Final Output
|
|
192
|
+
|
|
193
|
+
Before printing the summary, check `~/.claude/settings.local.json` for `env.CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS`. If set to `"1"`, mark Agent Teams as enabled; otherwise show the warning.
|
|
194
|
+
|
|
195
|
+
```
|
|
196
|
+
✓ Plugins: superpowers ✓ context7 ✓
|
|
197
|
+
✓ Infrastructure: .morph/ structure, hooks, agents, rules, skills
|
|
198
|
+
✓ Agents: [N] total ([T1] orchestrators, [T2] domain leaders, [S] specialists)
|
|
199
|
+
✓ context/README.md generated
|
|
200
|
+
✓ config.json updated
|
|
201
|
+
Stack: [stack] | Architecture: [architecture]
|
|
202
|
+
Integrations: [list]
|
|
203
|
+
✓ MCPs: [configured list]
|
|
204
|
+
|
|
205
|
+
[If CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS = "1":]
|
|
206
|
+
✓ Agent Teams: enabled
|
|
207
|
+
|
|
208
|
+
[If CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS is NOT set:]
|
|
209
|
+
⚠ Agent Teams not enabled. Multi-agent workflows require:
|
|
210
|
+
~/.claude/settings.local.json → {"env": {"CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1"}}
|
|
211
|
+
|
|
212
|
+
[If any plugin was newly installed:]
|
|
213
|
+
○ Restart Claude Code to activate newly installed plugins.
|
|
214
|
+
|
|
215
|
+
Next: /morph-proposal [feature-name]
|
|
216
|
+
```
|
|
@@ -77,7 +77,7 @@ Gerar lista de telas para implementar na ordem correta:
|
|
|
77
77
|
### T001: Setup Design System
|
|
78
78
|
- Criar/atualizar wwwroot/css/design-system.css
|
|
79
79
|
- Adicionar todas as classes CSS listadas
|
|
80
|
-
- Validar com `morph-spec validate
|
|
80
|
+
- Validar com `morph-spec validate`
|
|
81
81
|
|
|
82
82
|
### T002: {Nome da Tela 1}
|
|
83
83
|
- Ler: {prototype-path}/{tela1}.html
|
|
@@ -92,7 +92,7 @@ Gerar lista de telas para implementar na ordem correta:
|
|
|
92
92
|
|
|
93
93
|
### TXXX: Validacao Final
|
|
94
94
|
- Build completo
|
|
95
|
-
- `morph-spec validate
|
|
95
|
+
- `morph-spec validate`
|
|
96
96
|
- Testar responsividade
|
|
97
97
|
```
|
|
98
98
|
|
|
@@ -130,7 +130,7 @@ Para cada tela, seguir este fluxo:
|
|
|
130
130
|
|
|
131
131
|
6. **Validar CSS**
|
|
132
132
|
```bash
|
|
133
|
-
morph-spec validate
|
|
133
|
+
morph-spec validate src/MyApp.Web
|
|
134
134
|
```
|
|
135
135
|
|
|
136
136
|
---
|
|
@@ -217,4 +217,4 @@ Mapeamento HTML → Blazor:
|
|
|
217
217
|
|
|
218
218
|
---
|
|
219
219
|
|
|
220
|
-
*MORPH-SPEC
|
|
220
|
+
*MORPH-SPEC by Polymorphism Tech*
|
|
@@ -59,7 +59,7 @@ allowed-tools: Read, Write, Edit, Bash, Glob, Grep
|
|
|
59
59
|
| Read project context | **Read** `.morph/context/README.md` | Single known file |
|
|
60
60
|
| Read config | **Read** `.morph/config.json` | Single known file |
|
|
61
61
|
| Find existing features | **Glob** `.morph/features/*/0-proposal/proposal.md` | Pattern search |
|
|
62
|
-
| Detect project stack | **Bash** `npx morph-spec
|
|
62
|
+
| Detect project stack | **Read** `.morph/framework/agents.json` → match keywords → **Bash** `npx morph-spec state add-agent` | agents.json is the source of truth |
|
|
63
63
|
| Research external requirement | **WebSearch** | Current information needed |
|
|
64
64
|
| Render proposal template | **Bash** `npx morph-spec template render docs/proposal ...` | CLI command |
|
|
65
65
|
| Update state | **Bash** `npx morph-spec state mark-output ...` | CLI command |
|
|
@@ -80,7 +80,7 @@ allowed-tools: Read, Write, Edit, Bash, Glob, Grep
|
|
|
80
80
|
| Action | Tool | Why |
|
|
81
81
|
|--------|------|-----|
|
|
82
82
|
| Verify feature state | **Bash** `npx morph-spec state get {feature}` | CLI command |
|
|
83
|
-
| Detect agents + standards | **Bash** `npx morph-spec
|
|
83
|
+
| Detect agents + standards | **Read** `.morph/framework/agents.json` → match keywords → **Bash** `npx morph-spec state add-agent {f} {id}` per match | No CLI command — read agents.json directly |
|
|
84
84
|
| Read project context | **Read** `.morph/context/README.md` | Single file |
|
|
85
85
|
| Read config | **Read** `.morph/config.json` | Single file |
|
|
86
86
|
| Scan project structure | **Glob** `src/**/*.{ts,tsx,cs}` | Understand codebase layout |
|
|
@@ -90,9 +90,9 @@ allowed-tools: Read, Write, Edit, Bash, Glob, Grep
|
|
|
90
90
|
**MCPs used:** GitHub (optional — for repo metadata).
|
|
91
91
|
|
|
92
92
|
**Anti-patterns:**
|
|
93
|
-
- ❌
|
|
93
|
+
- ❌ Calling `detect-agents` CLI (it doesn't exist — read `.morph/framework/agents.json` directly)
|
|
94
|
+
- ❌ Task agent to detect project stack (read agents.json and match keywords inline)
|
|
94
95
|
- ❌ WebSearch for project info (it's local, use Read/Glob)
|
|
95
|
-
- ❌ Manual parsing of agents.json (detect-agents handles it)
|
|
96
96
|
|
|
97
97
|
---
|
|
98
98
|
|
|
@@ -7,7 +7,7 @@ description: Phase-specific verification checklists and morph-spec validation co
|
|
|
7
7
|
|
|
8
8
|
> Never claim work is complete without running verification. Evidence before assertions.
|
|
9
9
|
>
|
|
10
|
-
> **Script:** Run `node scripts/check-phase-outputs.mjs <feature> [phase]` to check required output files exist.
|
|
10
|
+
> **Script:** Run `node .claude/skills/verification-before-completion/scripts/check-phase-outputs.mjs <feature> [phase]` to check required output files exist.
|
|
11
11
|
|
|
12
12
|
## When to Use
|
|
13
13
|
|