@polymorphism-tech/morph-spec 3.0.1 → 3.2.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 +561 -63
- package/LICENSE +72 -72
- package/README.md +275 -79
- package/bin/detect-agents.js +3 -1
- package/bin/morph-spec.js +60 -1
- package/bin/render-template.js +61 -14
- package/bin/semantic-detect-agents.js +2 -1
- package/bin/{task-manager.js → task-manager.cjs} +113 -8
- package/bin/validate-agents-skills.js +10 -4
- package/bin/validate-agents.js +4 -3
- package/docs/api/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.svg +977 -977
- package/docs/api/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.svg +1048 -1048
- package/docs/api/scripts/collapse.js +38 -38
- package/docs/api/scripts/commonNav.js +28 -28
- package/docs/api/scripts/linenumber.js +25 -25
- package/docs/api/scripts/nav.js +12 -12
- package/docs/api/scripts/polyfill.js +3 -3
- package/docs/api/scripts/prettify/Apache-License-2.0.txt +202 -202
- package/docs/api/scripts/prettify/lang-css.js +2 -2
- package/docs/api/scripts/prettify/prettify.js +28 -28
- package/docs/api/scripts/search.js +98 -98
- package/docs/api/styles/jsdoc.css +776 -776
- package/docs/api/styles/prettify.css +80 -80
- package/docs/cli-auto-detection.md +219 -0
- package/docs/examples.md +328 -328
- package/docs/getting-started.md +3 -3
- package/docs/llm-interaction-config.md +735 -0
- package/docs/templates.md +418 -418
- package/docs/troubleshooting.md +269 -0
- package/package.json +7 -3
- package/scripts/postinstall.js +132 -132
- package/scripts/reorganize-skills.cjs +1 -1
- package/scripts/validate-agents-structure.cjs +1 -1
- package/scripts/validate-skills.cjs +2 -2
- package/src/commands/advance-phase.js +93 -2
- package/src/commands/analyze-blazor-concurrency.js +193 -193
- package/src/commands/approve.js +221 -0
- package/src/commands/capture-pattern.js +121 -0
- package/src/commands/create-story.js +5 -2
- package/src/commands/deploy.js +780 -780
- package/src/commands/detect-agents.js +4 -2
- package/src/commands/generate.js +276 -149
- package/src/commands/init.js +37 -0
- package/src/commands/lint-fluent.js +352 -352
- package/src/commands/migrate-state.js +158 -0
- package/src/commands/rollback-phase.js +185 -185
- package/src/commands/search-patterns.js +126 -0
- package/src/commands/session-summary.js +291 -291
- package/src/commands/shard-spec.js +224 -224
- package/src/commands/spawn-team.js +172 -0
- package/src/commands/sprint-status.js +250 -250
- package/src/commands/task.js +3 -3
- package/src/commands/troubleshoot.js +222 -222
- package/src/commands/update.js +36 -0
- package/src/commands/upgrade.js +346 -0
- package/src/commands/validate-blazor-state.js +210 -210
- package/src/commands/validate-blazor.js +156 -156
- package/src/commands/validate-css.js +84 -84
- package/src/commands/validate-phase.js +221 -221
- package/src/generator/.gitkeep +0 -0
- package/src/generator/config-generator.js +206 -0
- package/src/generator/templates/config.json.template +40 -0
- package/src/generator/templates/project.md.template +67 -0
- package/src/lib/blazor-concurrency-analyzer.js +288 -288
- package/src/lib/blazor-state-validator.js +291 -291
- package/src/lib/blazor-validator.js +374 -374
- package/src/lib/checkpoint-hooks.js +258 -0
- package/src/lib/context-generator.js +7 -4
- package/src/lib/css-validator.js +352 -352
- package/src/lib/design-system-generator.js +298 -298
- package/src/lib/hook-executor.js +2 -1
- package/src/lib/learning-system.js +520 -520
- package/src/lib/metadata-extractor.js +380 -0
- package/src/lib/mockup-generator.js +366 -366
- package/src/lib/phase-state-machine.js +214 -0
- package/src/lib/stack-resolver.js +148 -0
- package/src/lib/standards-context-injector.js +4 -3
- package/src/lib/state-manager.js +120 -0
- package/src/lib/team-orchestrator.js +2 -1
- package/src/lib/template-data-sources.js +325 -0
- package/src/lib/troubleshoot-grep.js +204 -194
- package/src/lib/troubleshoot-index.js +144 -144
- package/src/lib/ui-detector.js +350 -350
- package/src/lib/validation-runner.js +2 -1
- package/src/lib/validators/architecture-validator.js +387 -387
- package/src/lib/validators/content-validator.js +351 -0
- package/src/lib/validators/package-validator.js +360 -360
- package/src/lib/validators/ui-contrast-validator.js +422 -422
- package/src/llm/.gitkeep +0 -0
- package/src/llm/analyzer.js +215 -0
- package/src/llm/environment-detector.js +43 -0
- package/src/llm/few-shot-examples.js +216 -0
- package/src/llm/project-config-schema.json +188 -0
- package/src/llm/prompt-builder.js +96 -0
- package/src/llm/schema-validator.js +121 -0
- package/src/orchestrator.js +206 -0
- package/src/sanitizer/.gitkeep +0 -0
- package/src/sanitizer/context-sanitizer.js +221 -0
- package/src/sanitizer/patterns.js +163 -0
- package/src/scanner/.gitkeep +0 -0
- package/src/scanner/project-scanner.js +242 -0
- package/src/types/index.js +477 -0
- package/src/ui/.gitkeep +0 -0
- package/src/ui/diff-display.js +91 -0
- package/src/ui/interactive-wizard.js +96 -0
- package/src/ui/user-review.js +211 -0
- package/src/ui/wizard-questions.js +190 -0
- package/src/utils/file-copier.js +3 -1
- package/src/utils/logger.js +32 -32
- package/src/utils/version-checker.js +175 -175
- package/src/writer/.gitkeep +0 -0
- package/src/writer/file-writer.js +86 -0
- package/{content → stacks/blazor-azure}/.azure/README.md +2 -2
- package/{content → stacks/blazor-azure}/.azure/pipelines/pipeline-variables.yml +1 -1
- package/{content → stacks/blazor-azure}/.azure/pipelines/prod-pipeline.yml +1 -1
- package/{content → stacks/blazor-azure}/.azure/pipelines/staging-pipeline.yml +1 -1
- package/{content → stacks/blazor-azure}/.claude/commands/morph-preflight.md +227 -227
- package/{content → stacks/blazor-azure}/.claude/commands/morph-troubleshoot.md +122 -122
- package/{content → stacks/blazor-azure}/.claude/skills/level-1-workflows/phase-setup.md +1 -1
- package/{content → stacks/blazor-azure}/.morph/docs/workflows/enforcement-pipeline.md +3 -3
- package/{content → stacks/blazor-azure}/.morph/hooks/README.md +12 -12
- package/{content → stacks/blazor-azure}/.morph/standards/agent-teams-workflow.md +2 -2
- package/{content → stacks/blazor-azure}/.morph/standards/migration-guide.md +2 -2
- package/{content → stacks/blazor-azure}/.morph/templates/infra/deploy-checklist.md +426 -426
- package/stacks/nextjs-supabase/.claude/skills/level-2-domains/backend/dotnet-supabase.md +244 -0
- package/stacks/nextjs-supabase/.claude/skills/level-2-domains/frontend/nextjs-supabase.md +335 -0
- package/stacks/nextjs-supabase/.claude/skills/level-2-domains/infrastructure/easypanel-deployer.md +189 -0
- package/stacks/nextjs-supabase/.claude/skills/level-2-domains/integrations/supabase-expert.md +170 -0
- package/stacks/nextjs-supabase/.morph/config/agents.json +345 -0
- package/stacks/nextjs-supabase/.morph/config/config.template.json +92 -0
- package/stacks/nextjs-supabase/.morph/docs/easypanel-setup.md +169 -0
- package/stacks/nextjs-supabase/.morph/docs/supabase-mcp-setup.md +247 -0
- package/stacks/nextjs-supabase/.morph/examples/crud-nextjs-supabase/README.md +697 -0
- package/stacks/nextjs-supabase/.morph/examples/crud-nextjs-supabase/spec.md +85 -0
- package/stacks/nextjs-supabase/.morph/examples/crud-nextjs-supabase/tasks.md +86 -0
- package/stacks/nextjs-supabase/.morph/examples/saas-nextjs-supabase/README.md +498 -0
- package/stacks/nextjs-supabase/.morph/examples/saas-nextjs-supabase/decisions.md +121 -0
- package/stacks/nextjs-supabase/.morph/examples/saas-nextjs-supabase/spec.md +138 -0
- package/stacks/nextjs-supabase/.morph/examples/saas-nextjs-supabase/tasks.md +162 -0
- package/stacks/nextjs-supabase/.morph/project.md +168 -0
- package/stacks/nextjs-supabase/.morph/standards/easypanel-deploy.md +191 -0
- package/stacks/nextjs-supabase/.morph/standards/nextjs-patterns.md +193 -0
- package/stacks/nextjs-supabase/.morph/standards/supabase-auth.md +171 -0
- package/stacks/nextjs-supabase/.morph/standards/supabase-pgvector.md +164 -0
- package/stacks/nextjs-supabase/.morph/standards/supabase-rls.md +179 -0
- package/stacks/nextjs-supabase/.morph/standards/supabase-storage.md +148 -0
- package/stacks/nextjs-supabase/.morph/templates/contracts.cs +173 -0
- package/stacks/nextjs-supabase/.morph/templates/contracts.ts +168 -0
- package/stacks/nextjs-supabase/.morph/templates/decisions.md +115 -0
- package/stacks/nextjs-supabase/.morph/templates/dockerfile-api.dockerfile +38 -0
- package/stacks/nextjs-supabase/.morph/templates/dockerfile-web.dockerfile +48 -0
- package/stacks/nextjs-supabase/.morph/templates/proposal.md +145 -0
- package/stacks/nextjs-supabase/.morph/templates/recap.md +134 -0
- package/stacks/nextjs-supabase/.morph/templates/rls-policy.sql +57 -0
- package/stacks/nextjs-supabase/.morph/templates/spec.md +231 -0
- package/stacks/nextjs-supabase/.morph/templates/supabase-migration.sql +100 -0
- package/stacks/nextjs-supabase/.morph/templates/tasks.md +257 -0
- package/stacks/nextjs-supabase/CLAUDE.md +149 -0
- package/stacks/nextjs-supabase/README.md +112 -0
- /package/{content → stacks/blazor-azure}/.azure/docs/azure-devops-setup.md +0 -0
- /package/{content → stacks/blazor-azure}/.azure/docs/branch-strategy.md +0 -0
- /package/{content → stacks/blazor-azure}/.azure/docs/local-development.md +0 -0
- /package/{content → stacks/blazor-azure}/.azure/pipelines/templates/build-dotnet.yml +0 -0
- /package/{content → stacks/blazor-azure}/.azure/pipelines/templates/deploy-app-service.yml +0 -0
- /package/{content → stacks/blazor-azure}/.azure/pipelines/templates/deploy-container-app.yml +0 -0
- /package/{content → stacks/blazor-azure}/.azure/pipelines/templates/infra-deploy.yml +0 -0
- /package/{content → stacks/blazor-azure}/.claude/commands/morph-apply.md +0 -0
- /package/{content → stacks/blazor-azure}/.claude/commands/morph-archive.md +0 -0
- /package/{content → stacks/blazor-azure}/.claude/commands/morph-deploy.md +0 -0
- /package/{content → stacks/blazor-azure}/.claude/commands/morph-infra.md +0 -0
- /package/{content → stacks/blazor-azure}/.claude/commands/morph-proposal.md +0 -0
- /package/{content → stacks/blazor-azure}/.claude/commands/morph-status.md +0 -0
- /package/{content → stacks/blazor-azure}/.claude/settings.local.json +0 -0
- /package/{content → stacks/blazor-azure}/.claude/skills/level-0-meta/README.md +0 -0
- /package/{content → stacks/blazor-azure}/.claude/skills/level-0-meta/code-review.md +0 -0
- /package/{content → stacks/blazor-azure}/.claude/skills/level-0-meta/morph-checklist.md +0 -0
- /package/{content → stacks/blazor-azure}/.claude/skills/level-0-meta/simulation-checklist.md +0 -0
- /package/{content → stacks/blazor-azure}/.claude/skills/level-1-workflows/README.md +0 -0
- /package/{content → stacks/blazor-azure}/.claude/skills/level-1-workflows/morph-replicate.md +0 -0
- /package/{content → stacks/blazor-azure}/.claude/skills/level-1-workflows/phase-clarify.md +0 -0
- /package/{content → stacks/blazor-azure}/.claude/skills/level-1-workflows/phase-design.md +0 -0
- /package/{content → stacks/blazor-azure}/.claude/skills/level-1-workflows/phase-tasks.md +0 -0
- /package/{content → stacks/blazor-azure}/.claude/skills/level-1-workflows/phase-uiux.md +0 -0
- /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/README.md +0 -0
- /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/ai-agents/ai-system-architect.md +0 -0
- /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/architecture/po-pm-advisor.md +0 -0
- /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/architecture/prompt-engineer.md +0 -0
- /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/architecture/seo-growth-hacker.md +0 -0
- /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/architecture/standards-architect.md +0 -0
- /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/backend/dotnet-senior.md +0 -0
- /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/backend/ef-modeler.md +0 -0
- /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/backend/hangfire-orchestrator.md +0 -0
- /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/backend/ms-agent-expert.md +0 -0
- /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/frontend/blazor-builder.md +0 -0
- /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/frontend/nextjs-expert.md +0 -0
- /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/frontend/ui-ux-designer.md +0 -0
- /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/infrastructure/azure-architect.md +0 -0
- /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/infrastructure/azure-deploy-specialist.md +0 -0
- /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/infrastructure/bicep-architect.md +0 -0
- /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/infrastructure/container-specialist.md +0 -0
- /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/infrastructure/devops-engineer.md +0 -0
- /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/integrations/asaas-financial.md +0 -0
- /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/integrations/azure-identity.md +0 -0
- /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/integrations/clerk-auth.md +0 -0
- /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/integrations/resend-email.md +0 -0
- /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/quality/code-analyzer.md +0 -0
- /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/quality/testing-specialist.md +0 -0
- /package/{content → stacks/blazor-azure}/.claude/skills/level-3-technologies/README.md +0 -0
- /package/{content → stacks/blazor-azure}/.claude/skills/level-4-patterns/README.md +0 -0
- /package/{content → stacks/blazor-azure}/.morph/.morphversion +0 -0
- /package/{content → stacks/blazor-azure}/.morph/archive/.gitkeep +0 -0
- /package/{content → stacks/blazor-azure}/.morph/config/agents.json +0 -0
- /package/{content → stacks/blazor-azure}/.morph/config/config.template.json +0 -0
- /package/{content → stacks/blazor-azure}/.morph/docs/STORY-DRIVEN-DEVELOPMENT.md +0 -0
- /package/{content → stacks/blazor-azure}/.morph/docs/workflows/design-impl.md +0 -0
- /package/{content → stacks/blazor-azure}/.morph/docs/workflows/fast-track.md +0 -0
- /package/{content → stacks/blazor-azure}/.morph/docs/workflows/full-morph.md +0 -0
- /package/{content → stacks/blazor-azure}/.morph/docs/workflows/standard.md +0 -0
- /package/{content → stacks/blazor-azure}/.morph/docs/workflows/ui-refresh.md +0 -0
- /package/{content → stacks/blazor-azure}/.morph/examples/api-nextjs/README.md +0 -0
- /package/{content → stacks/blazor-azure}/.morph/examples/api-nextjs/contracts.ts +0 -0
- /package/{content → stacks/blazor-azure}/.morph/examples/api-nextjs/spec.md +0 -0
- /package/{content → stacks/blazor-azure}/.morph/examples/api-nextjs/tasks.md +0 -0
- /package/{content → stacks/blazor-azure}/.morph/examples/micro-saas/README.md +0 -0
- /package/{content → stacks/blazor-azure}/.morph/examples/micro-saas/contracts.cs +0 -0
- /package/{content → stacks/blazor-azure}/.morph/examples/micro-saas/decisions.md +0 -0
- /package/{content → stacks/blazor-azure}/.morph/examples/micro-saas/spec.md +0 -0
- /package/{content → stacks/blazor-azure}/.morph/examples/micro-saas/tasks.md +0 -0
- /package/{content → stacks/blazor-azure}/.morph/examples/multi-agent/README.md +0 -0
- /package/{content → stacks/blazor-azure}/.morph/examples/multi-agent/contracts.cs +0 -0
- /package/{content → stacks/blazor-azure}/.morph/examples/multi-agent/spec.md +0 -0
- /package/{content → stacks/blazor-azure}/.morph/examples/multi-agent/tasks.md +0 -0
- /package/{content → stacks/blazor-azure}/.morph/examples/scheduled-reports/decisions.md +0 -0
- /package/{content → stacks/blazor-azure}/.morph/examples/scheduled-reports/proposal.md +0 -0
- /package/{content → stacks/blazor-azure}/.morph/examples/scheduled-reports/spec.md +0 -0
- /package/{content → stacks/blazor-azure}/.morph/examples/state-v3.json +0 -0
- /package/{content → stacks/blazor-azure}/.morph/features/.gitkeep +0 -0
- /package/{content → stacks/blazor-azure}/.morph/hooks/pre-commit-agents.sh +0 -0
- /package/{content → stacks/blazor-azure}/.morph/hooks/pre-commit-all.sh +0 -0
- /package/{content → stacks/blazor-azure}/.morph/hooks/pre-commit-specs.sh +0 -0
- /package/{content → stacks/blazor-azure}/.morph/hooks/pre-commit-tests.sh +0 -0
- /package/{content → stacks/blazor-azure}/.morph/hooks/task-completed.js +0 -0
- /package/{content → stacks/blazor-azure}/.morph/hooks/teammate-idle.js +0 -0
- /package/{content → stacks/blazor-azure}/.morph/project.md +0 -0
- /package/{content → stacks/blazor-azure}/.morph/schemas/agent.schema.json +0 -0
- /package/{content → stacks/blazor-azure}/.morph/schemas/tasks.schema.json +0 -0
- /package/{content → stacks/blazor-azure}/.morph/specs/.gitkeep +0 -0
- /package/{content → stacks/blazor-azure}/.morph/standards/agent-framework-blazor-ui.md +0 -0
- /package/{content → stacks/blazor-azure}/.morph/standards/agent-framework-production.md +0 -0
- /package/{content → stacks/blazor-azure}/.morph/standards/agent-framework-setup.md +0 -0
- /package/{content → stacks/blazor-azure}/.morph/standards/agent-framework-workflows.md +0 -0
- /package/{content → stacks/blazor-azure}/.morph/standards/architecture.md +0 -0
- /package/{content → stacks/blazor-azure}/.morph/standards/azure.md +0 -0
- /package/{content → stacks/blazor-azure}/.morph/standards/coding.md +0 -0
- /package/{content → stacks/blazor-azure}/.morph/standards/dotnet10-migration.md +0 -0
- /package/{content → stacks/blazor-azure}/.morph/standards/fluent-ui-setup.md +0 -0
- /package/{content → stacks/blazor-azure}/.morph/standards/passkeys-auth.md +0 -0
- /package/{content → stacks/blazor-azure}/.morph/standards/vector-search-rag.md +0 -0
- /package/{content → stacks/blazor-azure}/.morph/state.json +0 -0
- /package/{content → stacks/blazor-azure}/.morph/templates/CONTEXT-FEATURE.md +0 -0
- /package/{content → stacks/blazor-azure}/.morph/templates/CONTEXT.md +0 -0
- /package/{content → stacks/blazor-azure}/.morph/templates/FluentDesignTheme.cs +0 -0
- /package/{content → stacks/blazor-azure}/.morph/templates/MudTheme.cs +0 -0
- /package/{content → stacks/blazor-azure}/.morph/templates/agent.cs +0 -0
- /package/{content → stacks/blazor-azure}/.morph/templates/clarify-questions.md +0 -0
- /package/{content → stacks/blazor-azure}/.morph/templates/component.razor +0 -0
- /package/{content → stacks/blazor-azure}/.morph/templates/contracts/Commands.cs +0 -0
- /package/{content → stacks/blazor-azure}/.morph/templates/contracts/Entities.cs +0 -0
- /package/{content → stacks/blazor-azure}/.morph/templates/contracts/Queries.cs +0 -0
- /package/{content → stacks/blazor-azure}/.morph/templates/contracts/README.md +0 -0
- /package/{content → stacks/blazor-azure}/.morph/templates/contracts.cs +0 -0
- /package/{content → stacks/blazor-azure}/.morph/templates/decisions.md +0 -0
- /package/{content → stacks/blazor-azure}/.morph/templates/design-system.css +0 -0
- /package/{content → stacks/blazor-azure}/.morph/templates/infra/.dockerignore.example +0 -0
- /package/{content → stacks/blazor-azure}/.morph/templates/infra/Dockerfile.example +0 -0
- /package/{content → stacks/blazor-azure}/.morph/templates/infra/README.md +0 -0
- /package/{content → stacks/blazor-azure}/.morph/templates/infra/app-insights.bicep +0 -0
- /package/{content → stacks/blazor-azure}/.morph/templates/infra/app-service.bicep +0 -0
- /package/{content → stacks/blazor-azure}/.morph/templates/infra/azure-pipelines-deploy.yml +0 -0
- /package/{content → stacks/blazor-azure}/.morph/templates/infra/container-app-env.bicep +0 -0
- /package/{content → stacks/blazor-azure}/.morph/templates/infra/container-app.bicep +0 -0
- /package/{content → stacks/blazor-azure}/.morph/templates/infra/deploy.ps1 +0 -0
- /package/{content → stacks/blazor-azure}/.morph/templates/infra/deploy.sh +0 -0
- /package/{content → stacks/blazor-azure}/.morph/templates/infra/key-vault.bicep +0 -0
- /package/{content → stacks/blazor-azure}/.morph/templates/infra/main.bicep +0 -0
- /package/{content → stacks/blazor-azure}/.morph/templates/infra/parameters.dev.json +0 -0
- /package/{content → stacks/blazor-azure}/.morph/templates/infra/parameters.prod.json +0 -0
- /package/{content → stacks/blazor-azure}/.morph/templates/infra/parameters.staging.json +0 -0
- /package/{content → stacks/blazor-azure}/.morph/templates/infra/sql-database.bicep +0 -0
- /package/{content → stacks/blazor-azure}/.morph/templates/infra/storage.bicep +0 -0
- /package/{content → stacks/blazor-azure}/.morph/templates/integrations/asaas-client.cs +0 -0
- /package/{content → stacks/blazor-azure}/.morph/templates/integrations/asaas-webhook.cs +0 -0
- /package/{content → stacks/blazor-azure}/.morph/templates/integrations/azure-identity-config.cs +0 -0
- /package/{content → stacks/blazor-azure}/.morph/templates/integrations/clerk-config.cs +0 -0
- /package/{content → stacks/blazor-azure}/.morph/templates/job.cs +0 -0
- /package/{content → stacks/blazor-azure}/.morph/templates/migration.cs +0 -0
- /package/{content → stacks/blazor-azure}/.morph/templates/proposal.md +0 -0
- /package/{content → stacks/blazor-azure}/.morph/templates/recap.md +0 -0
- /package/{content → stacks/blazor-azure}/.morph/templates/repository.cs +0 -0
- /package/{content → stacks/blazor-azure}/.morph/templates/saas/subscription.cs +0 -0
- /package/{content → stacks/blazor-azure}/.morph/templates/saas/tenant.cs +0 -0
- /package/{content → stacks/blazor-azure}/.morph/templates/service.cs +0 -0
- /package/{content → stacks/blazor-azure}/.morph/templates/simulation.md +0 -0
- /package/{content → stacks/blazor-azure}/.morph/templates/spec.md +0 -0
- /package/{content → stacks/blazor-azure}/.morph/templates/sprint-status.yaml +0 -0
- /package/{content → stacks/blazor-azure}/.morph/templates/state.template.json +0 -0
- /package/{content → stacks/blazor-azure}/.morph/templates/story.md +0 -0
- /package/{content → stacks/blazor-azure}/.morph/templates/tasks.md +0 -0
- /package/{content → stacks/blazor-azure}/.morph/templates/test.cs +0 -0
- /package/{content → stacks/blazor-azure}/.morph/templates/ui-components.md +0 -0
- /package/{content → stacks/blazor-azure}/.morph/templates/ui-design-system.md +0 -0
- /package/{content → stacks/blazor-azure}/.morph/templates/ui-flows.md +0 -0
- /package/{content → stacks/blazor-azure}/.morph/templates/ui-mockups.md +0 -0
- /package/{content → stacks/blazor-azure}/.morph/test-infra/example.bicep +0 -0
- /package/{content → stacks/blazor-azure}/CLAUDE.md +0 -0
- /package/{content → stacks/blazor-azure}/README.md +0 -0
|
@@ -1,122 +1,122 @@
|
|
|
1
|
-
# Troubleshoot - Buscar Soluções para Erros
|
|
2
|
-
|
|
3
|
-
Busca soluções para erros e problemas comuns no desenvolvimento .NET/Blazor/Azure.
|
|
4
|
-
|
|
5
|
-
## Uso
|
|
6
|
-
|
|
7
|
-
```
|
|
8
|
-
/morph-troubleshoot <descrição do erro ou keywords>
|
|
9
|
-
```
|
|
10
|
-
|
|
11
|
-
## Exemplos
|
|
12
|
-
|
|
13
|
-
```bash
|
|
14
|
-
/morph-troubleshoot blazor.web.js 404
|
|
15
|
-
/morph-troubleshoot DbContext second operation
|
|
16
|
-
/morph-troubleshoot Azure.Identity NU1605
|
|
17
|
-
/morph-troubleshoot Include retorna vazio
|
|
18
|
-
/morph-troubleshoot PendingModelChanges
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
## Workflow de 3 Níveis
|
|
22
|
-
|
|
23
|
-
### Nível 1: Índice JSON (Primário)
|
|
24
|
-
|
|
25
|
-
Primeiro, execute o comando CLI para buscar no índice de problemas conhecidos:
|
|
26
|
-
|
|
27
|
-
```bash
|
|
28
|
-
npx morph-spec troubleshoot {keywords}
|
|
29
|
-
|
|
30
|
-
# Opções
|
|
31
|
-
--category <cat> # Filtrar por categoria (blazor, efcore, azure)
|
|
32
|
-
--verbose # Mostrar conteúdo completo da solução
|
|
33
|
-
--list-categories # Listar categorias disponíveis
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
### Nível 2: Grep nos Standards (Automático)
|
|
37
|
-
|
|
38
|
-
Se o índice retornar poucos resultados, o CLI automaticamente busca nos arquivos:
|
|
39
|
-
- `framework/standards/*.md`
|
|
40
|
-
-
|
|
41
|
-
|
|
42
|
-
### Nível 3: Web Search (Se necessário)
|
|
43
|
-
|
|
44
|
-
**IMPORTANTE:** Se os níveis 1 e 2 não encontrarem solução, use o tool **WebSearch** nativo do Claude Code para buscar nas seguintes fontes:
|
|
45
|
-
|
|
46
|
-
**Queries recomendadas:**
|
|
47
|
-
|
|
48
|
-
```
|
|
49
|
-
# GitHub Issues (.NET)
|
|
50
|
-
site:github.com/dotnet/aspnetcore {erro}
|
|
51
|
-
site:github.com/dotnet/efcore {erro}
|
|
52
|
-
|
|
53
|
-
# Stack Overflow
|
|
54
|
-
site:stackoverflow.com [blazor] {erro}
|
|
55
|
-
site:stackoverflow.com [entity-framework-core] {erro}
|
|
56
|
-
site:stackoverflow.com [azure] {erro}
|
|
57
|
-
|
|
58
|
-
# Documentação Microsoft
|
|
59
|
-
site:learn.microsoft.com {erro}
|
|
60
|
-
site:learn.microsoft.com/azure {erro}
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
**Exemplo de uso do WebSearch:**
|
|
64
|
-
|
|
65
|
-
Se o usuário perguntar sobre um erro de SignalR:
|
|
66
|
-
1. Primeiro: `npx morph-spec troubleshoot SignalR connection`
|
|
67
|
-
2. Se não encontrar: WebSearch com `site:github.com/dotnet/aspnetcore SignalR connection closed`
|
|
68
|
-
3. Retornar links relevantes formatados
|
|
69
|
-
|
|
70
|
-
## Categorias Disponíveis
|
|
71
|
-
|
|
72
|
-
| Categoria | Descrição |
|
|
73
|
-
|-----------|-----------|
|
|
74
|
-
| `blazor` | Blazor Server/WASM, componentes, lifecycle, renderização |
|
|
75
|
-
| `efcore` | Entity Framework Core, DbContext, migrations, queries |
|
|
76
|
-
| `azure` | Azure services, deploy, identity, Key Vault |
|
|
77
|
-
| `auth` | Authentication, authorization, tokens, claims |
|
|
78
|
-
| `deploy` | Deployment, CI/CD, pipelines, containers |
|
|
79
|
-
|
|
80
|
-
## Formato de Output
|
|
81
|
-
|
|
82
|
-
Ao encontrar uma solução, apresente no seguinte formato:
|
|
83
|
-
|
|
84
|
-
```
|
|
85
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
86
|
-
|
|
87
|
-
🔴 CRITICAL: {título do problema}
|
|
88
|
-
|
|
89
|
-
📁 Arquivo: {caminho do arquivo com solução}
|
|
90
|
-
📂 Seção: {seção específica}
|
|
91
|
-
|
|
92
|
-
❌ Erro:
|
|
93
|
-
{padrão de erro que identifica o problema}
|
|
94
|
-
|
|
95
|
-
💡 Causa:
|
|
96
|
-
{explicação da causa raiz}
|
|
97
|
-
|
|
98
|
-
✅ Solução:
|
|
99
|
-
{código ou passos para resolver}
|
|
100
|
-
|
|
101
|
-
📚 Ver completo: morph-spec read {arquivo}
|
|
102
|
-
|
|
103
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
## Troubleshooting Rápido
|
|
107
|
-
|
|
108
|
-
### Problemas Mais Comuns
|
|
109
|
-
|
|
110
|
-
| Erro | Solução Rápida |
|
|
111
|
-
|------|----------------|
|
|
112
|
-
| `blazor.web.js 404` | `<RequiresAspNetWebAssets>true</RequiresAspNetWebAssets>` |
|
|
113
|
-
| `PendingModelChangesWarning` | `dotnet ef migrations add <Name>` antes de update |
|
|
114
|
-
| `DbContext second operation` | Usar `IDbContextFactory` para background tasks |
|
|
115
|
-
| `Include() vazio` | Usar `HasMany(x => x.Nav)` em vez de `HasMany<T>()` |
|
|
116
|
-
| `Azure.Identity NU1605` | Especificar versão explícita no .csproj |
|
|
117
|
-
| `Key Vault não carrega` | Não condicionar ao ambiente (IsDevelopment) |
|
|
118
|
-
| `DefaultAzureCredential lento` | Desabilitar credenciais não usadas |
|
|
119
|
-
|
|
120
|
-
---
|
|
121
|
-
|
|
122
|
-
**Input:** $ARGUMENTS
|
|
1
|
+
# Troubleshoot - Buscar Soluções para Erros
|
|
2
|
+
|
|
3
|
+
Busca soluções para erros e problemas comuns no desenvolvimento .NET/Blazor/Azure.
|
|
4
|
+
|
|
5
|
+
## Uso
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
/morph-troubleshoot <descrição do erro ou keywords>
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Exemplos
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
/morph-troubleshoot blazor.web.js 404
|
|
15
|
+
/morph-troubleshoot DbContext second operation
|
|
16
|
+
/morph-troubleshoot Azure.Identity NU1605
|
|
17
|
+
/morph-troubleshoot Include retorna vazio
|
|
18
|
+
/morph-troubleshoot PendingModelChanges
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Workflow de 3 Níveis
|
|
22
|
+
|
|
23
|
+
### Nível 1: Índice JSON (Primário)
|
|
24
|
+
|
|
25
|
+
Primeiro, execute o comando CLI para buscar no índice de problemas conhecidos:
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
npx morph-spec troubleshoot {keywords}
|
|
29
|
+
|
|
30
|
+
# Opções
|
|
31
|
+
--category <cat> # Filtrar por categoria (blazor, efcore, azure)
|
|
32
|
+
--verbose # Mostrar conteúdo completo da solução
|
|
33
|
+
--list-categories # Listar categorias disponíveis
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
### Nível 2: Grep nos Standards (Automático)
|
|
37
|
+
|
|
38
|
+
Se o índice retornar poucos resultados, o CLI automaticamente busca nos arquivos:
|
|
39
|
+
- `framework/standards/*.md`
|
|
40
|
+
- `.morph/standards/*.md`
|
|
41
|
+
|
|
42
|
+
### Nível 3: Web Search (Se necessário)
|
|
43
|
+
|
|
44
|
+
**IMPORTANTE:** Se os níveis 1 e 2 não encontrarem solução, use o tool **WebSearch** nativo do Claude Code para buscar nas seguintes fontes:
|
|
45
|
+
|
|
46
|
+
**Queries recomendadas:**
|
|
47
|
+
|
|
48
|
+
```
|
|
49
|
+
# GitHub Issues (.NET)
|
|
50
|
+
site:github.com/dotnet/aspnetcore {erro}
|
|
51
|
+
site:github.com/dotnet/efcore {erro}
|
|
52
|
+
|
|
53
|
+
# Stack Overflow
|
|
54
|
+
site:stackoverflow.com [blazor] {erro}
|
|
55
|
+
site:stackoverflow.com [entity-framework-core] {erro}
|
|
56
|
+
site:stackoverflow.com [azure] {erro}
|
|
57
|
+
|
|
58
|
+
# Documentação Microsoft
|
|
59
|
+
site:learn.microsoft.com {erro}
|
|
60
|
+
site:learn.microsoft.com/azure {erro}
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
**Exemplo de uso do WebSearch:**
|
|
64
|
+
|
|
65
|
+
Se o usuário perguntar sobre um erro de SignalR:
|
|
66
|
+
1. Primeiro: `npx morph-spec troubleshoot SignalR connection`
|
|
67
|
+
2. Se não encontrar: WebSearch com `site:github.com/dotnet/aspnetcore SignalR connection closed`
|
|
68
|
+
3. Retornar links relevantes formatados
|
|
69
|
+
|
|
70
|
+
## Categorias Disponíveis
|
|
71
|
+
|
|
72
|
+
| Categoria | Descrição |
|
|
73
|
+
|-----------|-----------|
|
|
74
|
+
| `blazor` | Blazor Server/WASM, componentes, lifecycle, renderização |
|
|
75
|
+
| `efcore` | Entity Framework Core, DbContext, migrations, queries |
|
|
76
|
+
| `azure` | Azure services, deploy, identity, Key Vault |
|
|
77
|
+
| `auth` | Authentication, authorization, tokens, claims |
|
|
78
|
+
| `deploy` | Deployment, CI/CD, pipelines, containers |
|
|
79
|
+
|
|
80
|
+
## Formato de Output
|
|
81
|
+
|
|
82
|
+
Ao encontrar uma solução, apresente no seguinte formato:
|
|
83
|
+
|
|
84
|
+
```
|
|
85
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
86
|
+
|
|
87
|
+
🔴 CRITICAL: {título do problema}
|
|
88
|
+
|
|
89
|
+
📁 Arquivo: {caminho do arquivo com solução}
|
|
90
|
+
📂 Seção: {seção específica}
|
|
91
|
+
|
|
92
|
+
❌ Erro:
|
|
93
|
+
{padrão de erro que identifica o problema}
|
|
94
|
+
|
|
95
|
+
💡 Causa:
|
|
96
|
+
{explicação da causa raiz}
|
|
97
|
+
|
|
98
|
+
✅ Solução:
|
|
99
|
+
{código ou passos para resolver}
|
|
100
|
+
|
|
101
|
+
📚 Ver completo: morph-spec read {arquivo}
|
|
102
|
+
|
|
103
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
## Troubleshooting Rápido
|
|
107
|
+
|
|
108
|
+
### Problemas Mais Comuns
|
|
109
|
+
|
|
110
|
+
| Erro | Solução Rápida |
|
|
111
|
+
|------|----------------|
|
|
112
|
+
| `blazor.web.js 404` | `<RequiresAspNetWebAssets>true</RequiresAspNetWebAssets>` |
|
|
113
|
+
| `PendingModelChangesWarning` | `dotnet ef migrations add <Name>` antes de update |
|
|
114
|
+
| `DbContext second operation` | Usar `IDbContextFactory` para background tasks |
|
|
115
|
+
| `Include() vazio` | Usar `HasMany(x => x.Nav)` em vez de `HasMany<T>()` |
|
|
116
|
+
| `Azure.Identity NU1605` | Especificar versão explícita no .csproj |
|
|
117
|
+
| `Key Vault não carrega` | Não condicionar ao ambiente (IsDevelopment) |
|
|
118
|
+
| `DefaultAzureCredential lento` | Desabilitar credenciais não usadas |
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
122
|
+
**Input:** $ARGUMENTS
|
|
@@ -46,7 +46,7 @@ O output JSON contém `standardsSummary` com todos os standards relevantes para
|
|
|
46
46
|
|
|
47
47
|
**Standards resolution order** (automático):
|
|
48
48
|
1. `.morph/project/standards/*.md` (project overrides - highest priority)
|
|
49
|
-
2.
|
|
49
|
+
2. `.morph/standards/*.md` (AI Agent Framework, Azure)
|
|
50
50
|
3. `framework/standards/*.md` (Blazor, CSS, .NET)
|
|
51
51
|
4. `.morph/project/standards/inferred.md` (always loaded if exists)
|
|
52
52
|
|
|
@@ -59,7 +59,7 @@ Before: Hardcoded AGENT_VALIDATOR_MAP in validation-runner.js made it impossible
|
|
|
59
59
|
# Validators run automatically on task completion
|
|
60
60
|
morph-spec task done my-feature T001
|
|
61
61
|
|
|
62
|
-
# To customize: edit
|
|
62
|
+
# To customize: edit .morph/config/agents.json
|
|
63
63
|
{
|
|
64
64
|
"my-custom-agent": {
|
|
65
65
|
"validators": ["architecture", "custom-validator"]
|
|
@@ -89,7 +89,7 @@ Before: Specialists had to manually read standards files, often missing relevant
|
|
|
89
89
|
export function loadStandardsForAgent(agentId, projectPath) {
|
|
90
90
|
// Resolution order:
|
|
91
91
|
// 1. .morph/project/standards/{file}.md (project overrides)
|
|
92
|
-
// 2.
|
|
92
|
+
// 2. .morph/standards/{file}.md (content standards)
|
|
93
93
|
// 3. framework/standards/{file}.md (framework standards)
|
|
94
94
|
|
|
95
95
|
return {
|
|
@@ -512,7 +512,7 @@ morph-spec phase advance {feature} --skip-warnings
|
|
|
512
512
|
|
|
513
513
|
**Check:**
|
|
514
514
|
1. Is agent active? `morph-spec state get {feature}` → check activeAgents
|
|
515
|
-
2. Is validator mapped? Check
|
|
515
|
+
2. Is validator mapped? Check `.morph/config/agents.json` → agent's `validators` array
|
|
516
516
|
3. Is agents.json readable? Run `morph-spec validate-agents-skills`
|
|
517
517
|
|
|
518
518
|
**Fix:**
|
|
@@ -17,14 +17,14 @@ Pre-commit hooks for automatic validation before committing.
|
|
|
17
17
|
|
|
18
18
|
```bash
|
|
19
19
|
# Symlink all hooks at once
|
|
20
|
-
ln -s
|
|
20
|
+
ln -s ../../.morph/hooks/pre-commit-all.sh .git/hooks/pre-commit
|
|
21
21
|
```
|
|
22
22
|
|
|
23
23
|
### Option 2: Copy Hooks
|
|
24
24
|
|
|
25
25
|
```bash
|
|
26
26
|
# Copy master hook
|
|
27
|
-
cp
|
|
27
|
+
cp .morph/hooks/pre-commit-all.sh .git/hooks/pre-commit
|
|
28
28
|
chmod +x .git/hooks/pre-commit
|
|
29
29
|
```
|
|
30
30
|
|
|
@@ -34,7 +34,7 @@ If you already have `.git/hooks/pre-commit`, add this to the end:
|
|
|
34
34
|
|
|
35
35
|
```bash
|
|
36
36
|
# Run MORPH-SPEC validations
|
|
37
|
-
bash
|
|
37
|
+
bash .morph/hooks/pre-commit-all.sh || exit 1
|
|
38
38
|
```
|
|
39
39
|
|
|
40
40
|
## What Each Hook Does
|
|
@@ -172,10 +172,10 @@ bash .git/hooks/pre-commit
|
|
|
172
172
|
|
|
173
173
|
```bash
|
|
174
174
|
# Run individual hook for debugging
|
|
175
|
-
bash
|
|
175
|
+
bash .morph/hooks/pre-commit-costs.sh
|
|
176
176
|
|
|
177
177
|
# Check hook output
|
|
178
|
-
bash -x
|
|
178
|
+
bash -x .morph/hooks/pre-commit-costs.sh
|
|
179
179
|
```
|
|
180
180
|
|
|
181
181
|
## Benefits
|
|
@@ -206,12 +206,12 @@ bash -x content/.morph/hooks/pre-commit-costs.sh
|
|
|
206
206
|
|
|
207
207
|
**Usage:**
|
|
208
208
|
```bash
|
|
209
|
-
node
|
|
209
|
+
node .morph/hooks/teammate-idle.js <feature-name> [--dry-run] [--verbose]
|
|
210
210
|
```
|
|
211
211
|
|
|
212
212
|
**Example:**
|
|
213
213
|
```bash
|
|
214
|
-
node
|
|
214
|
+
node .morph/hooks/teammate-idle.js user-authentication --verbose
|
|
215
215
|
```
|
|
216
216
|
|
|
217
217
|
**Output:**
|
|
@@ -262,12 +262,12 @@ Validators are configured in `agents.json` for Tier 4 agents:
|
|
|
262
262
|
|
|
263
263
|
**Usage:**
|
|
264
264
|
```bash
|
|
265
|
-
node
|
|
265
|
+
node .morph/hooks/task-completed.js <feature-name> <task-id> [--dry-run] [--verbose]
|
|
266
266
|
```
|
|
267
267
|
|
|
268
268
|
**Example:**
|
|
269
269
|
```bash
|
|
270
|
-
node
|
|
270
|
+
node .morph/hooks/task-completed.js user-authentication T003 --verbose
|
|
271
271
|
```
|
|
272
272
|
|
|
273
273
|
**Output:**
|
|
@@ -305,8 +305,8 @@ When Agent Teams is enabled (`CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1`), these ho
|
|
|
305
305
|
```json
|
|
306
306
|
{
|
|
307
307
|
"hooks": {
|
|
308
|
-
"TeammateIdle": "node
|
|
309
|
-
"TaskCompleted": "node
|
|
308
|
+
"TeammateIdle": "node .morph/hooks/teammate-idle.js {feature}",
|
|
309
|
+
"TaskCompleted": "node .morph/hooks/task-completed.js {feature} {taskId}"
|
|
310
310
|
}
|
|
311
311
|
}
|
|
312
312
|
```
|
|
@@ -317,7 +317,7 @@ Test hooks without blocking:
|
|
|
317
317
|
|
|
318
318
|
```bash
|
|
319
319
|
# See what would run without executing
|
|
320
|
-
node
|
|
320
|
+
node .morph/hooks/teammate-idle.js my-feature --dry-run
|
|
321
321
|
|
|
322
322
|
# Output:
|
|
323
323
|
# 🔍 DRY RUN - Would execute:
|
|
@@ -76,7 +76,7 @@
|
|
|
76
76
|
|
|
77
77
|
### 1. Enable Agent Teams
|
|
78
78
|
|
|
79
|
-
Add to
|
|
79
|
+
Add to `.claude/settings.local.json` (or env variable):
|
|
80
80
|
|
|
81
81
|
```json
|
|
82
82
|
{
|
|
@@ -258,7 +258,7 @@ Each reviewer reports findings to the lead, then synthesize into review.md
|
|
|
258
258
|
- `CLAUDE.md` (MORPH-SPEC instructions)
|
|
259
259
|
- `.claude/skills/` (all available skills)
|
|
260
260
|
- `.morph/config.json` (project configuration)
|
|
261
|
-
- `framework/standards/` +
|
|
261
|
+
- `framework/standards/` + `.morph/standards/`
|
|
262
262
|
|
|
263
263
|
**Pass task-specific context in spawn prompt:**
|
|
264
264
|
```
|
|
@@ -210,8 +210,8 @@ az acr build \
|
|
|
210
210
|
parameters:
|
|
211
211
|
azureSubscription: 'Azure-Staging-Connection'
|
|
212
212
|
resourceGroupName: 'rg-myapp-staging'
|
|
213
|
-
bicepTemplateFile: '
|
|
214
|
-
parametersFile: '
|
|
213
|
+
bicepTemplateFile: '.morph/templates/infra/main.bicep'
|
|
214
|
+
parametersFile: '.morph/templates/infra/parameters.staging.json'
|
|
215
215
|
```
|
|
216
216
|
|
|
217
217
|
**Via Azure CLI (local):**
|