@polymorphism-tech/morph-spec 8.46.0 → 8.47.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 +5 -5
- package/README.md +2 -2
- package/bin/morph-spec.js +1 -4
- package/bin/validate.js +4 -25
- package/claude-plugin.json +1 -1
- package/docs/CHEATSHEET.md +2 -2
- package/docs/QUICKSTART.md +1 -1
- package/framework/CLAUDE.md +1 -1
- package/framework/MORPH.md +8 -8
- package/framework/commands/create-umbraco-lp.md +2 -0
- package/framework/commands/migrate-lp-to-umbraco.md +2 -0
- package/framework/commands/morph-archive.md +1 -1
- package/framework/commands/morph-hotfix.md +1 -1
- package/framework/commands/morph-infra.md +17 -203
- package/framework/commands/morph-media.md +3 -0
- package/framework/commands/morph-preflight.md +5 -28
- package/framework/commands/morph-proposal.md +2 -2
- package/framework/commands/morph-troubleshoot.md +2 -14
- package/framework/docs/CLI.md +3 -3
- package/framework/hooks/claude-code/core/state-sync.js +13 -1
- package/framework/hooks/shared/e2e-check.js +3 -4
- package/framework/hooks/shared/state-writer.js +1 -0
- package/framework/rules/ai-agents-standards.md +18 -16
- package/framework/rules/asaas-standards.md +3 -1
- package/framework/rules/csharp-standards.md +10 -8
- package/framework/rules/data-standards.md +5 -5
- package/framework/rules/dotnet-templates.md +1 -1
- package/framework/rules/frontend-standards.md +4 -2
- package/framework/rules/gsap-standards.md +10 -5
- package/framework/rules/hangfire-standards.md +3 -1
- package/framework/rules/infrastructure-standards.md +4 -2
- package/framework/rules/morph-workflow.md +2 -2
- package/framework/rules/neon-auth-standards.md +3 -1
- package/framework/rules/neon-standards.md +6 -4
- package/framework/rules/nextjs-standards.md +13 -11
- package/framework/rules/nextjs-templates.md +1 -1
- package/framework/rules/resend-standards.md +3 -1
- package/framework/schemas/feature.schema.json +1 -3
- package/framework/skills/README.md +1 -1
- package/framework/skills/core/create-umbraco-lp/SKILL.md +3 -3
- package/framework/skills/core/migrate-lp-to-umbraco/SKILL.md +3 -3
- package/framework/skills/core/morph-apply/SKILL.md +3 -3
- package/framework/skills/core/morph-brainstorming/SKILL.md +3 -3
- package/framework/skills/core/morph-hotfix/SKILL.md +4 -4
- package/framework/skills/core/morph-implement/SKILL.md +3 -3
- package/framework/skills/core/morph-machine/SKILL.md +3 -3
- package/framework/skills/core/morph-media/SKILL.md +3 -3
- package/framework/skills/core/morph-plan/SKILL.md +3 -3
- package/framework/skills/core/morph-proposal/SKILL.md +3 -3
- package/framework/skills/core/morph-review/SKILL.md +3 -3
- package/framework/skills/core/morph-stack-scan/SKILL.md +3 -3
- package/framework/skills/core/morph-standards/SKILL.md +6 -6
- package/framework/skills/core/morph-uiux/SKILL.md +3 -3
- package/framework/standards/STANDARDS.json +59 -56
- package/framework/standards/ai-agents/evals-with-cache.md +1 -1
- package/framework/standards/ai-agents/llm-runtime-defaults.md +1 -1
- package/framework/standards/ai-agents/modalities-speech-to-text.md +36 -26
- package/framework/standards/ai-agents/prompt-sources.md +6 -4
- package/framework/standards/ai-agents/providers/model-registry.md +1 -1
- package/framework/standards/ai-agents/rag-custom-pgvector.md +67 -39
- package/framework/standards/ai-agents/setup.md +1 -1
- package/framework/standards/ai-agents/structured-output.md +1 -1
- package/framework/standards/ai-agents/sweet-spot.md +1 -1
- package/framework/standards/architecture/code-comments.md +2 -2
- package/framework/standards/architecture/vertical-slice/vertical-slice.md +18 -9
- package/framework/standards/backend/api/validation.md +135 -47
- package/framework/standards/backend/database/postgresql/database.md +11 -7
- package/framework/standards/backend/database/vector-search-rag.md +207 -324
- package/framework/standards/backend/dotnet/fluent-validation-vsa.md +14 -8
- package/framework/standards/backend/dotnet/result-pattern.md +40 -6
- package/framework/standards/backend/dotnet/scalar-ui.md +13 -7
- package/framework/standards/backend/dotnet/scrutor.md +1 -1
- package/framework/standards/backend/dotnet/testing.md +1 -1
- package/framework/standards/backend/dotnet/vsa-handler-patterns.md +7 -7
- package/framework/standards/backend/integrations/asaas/asaas-api.md +309 -165
- package/framework/standards/backend/integrations/hangfire/hangfire-jobs.md +134 -154
- package/framework/standards/data/nosql/cache/redis.md +120 -44
- package/framework/standards/data/nosql/cosmos-db.md +114 -71
- package/framework/standards/frontend/design-system/animations.md +1 -1
- package/framework/standards/frontend/design-system/naming.md +1 -1
- package/framework/standards/frontend/nextjs/motion-patterns.md +45 -29
- package/framework/standards/frontend/nextjs/naming-conventions.md +1 -1
- package/framework/standards/infrastructure/docker/coolify-deploy.md +8 -6
- package/framework/standards/infrastructure/neon/neon-pgvector.md +120 -75
- package/framework/standards/infrastructure/neon/neon-setup.md +53 -31
- package/framework/templates/code/dotnet/contracts/contracts-vsa.cs +2 -2
- package/framework/templates/code/dotnet/extensions/database-extensions.cs +1 -1
- package/framework/templates/code/dotnet/extensions/result-extensions.cs +27 -0
- package/framework/templates/code/dotnet/feature/endpoint.cs.hbs +2 -2
- package/framework/templates/dotnet/ai-kit/tests/Morph.AiKit.Tests/MediaDisclosureTests.cs +1 -1
- package/framework/templates/infrastructure/docker/coolify.template.json +3 -3
- package/framework/templates/infrastructure/github/README.md +2 -1
- package/framework/templates/infrastructure/github/workflows/deploy-coolify.yml.hbs +2 -1
- package/package.json +1 -1
- package/src/commands/observability/telemetry.js +3 -5
- package/src/commands/project/init.js +2 -1
- package/src/commands/project/update.js +16 -18
- package/src/commands/state/approve.js +17 -0
- package/src/commands/state/gate-check.js +4 -14
- package/src/commands/validation/verify.js +3 -12
- package/src/core/paths/output-schema.js +1 -1
- package/src/dashboard/app/App.jsx +0 -2
- package/src/dashboard/app/components/CommandPalette.jsx +2 -3
- package/src/dashboard/app/components/EntityLink.jsx +0 -1
- package/src/dashboard/app/components/Markdown.jsx +1 -1
- package/src/dashboard/app/components/Sidebar.jsx +1 -2
- package/src/dashboard/app/pages/RulesMap.jsx +3 -3
- package/src/dashboard/app/pages/SkillsLibrary.jsx +3 -3
- package/src/dashboard/scanner/activity-scanner.js +1 -1
- package/src/dashboard/scanner/docs-scanner.js +5 -23
- package/src/dashboard/scanner/features-scanner.js +1 -1
- package/src/dashboard/scanner/index.js +0 -2
- package/src/dashboard/scanner/rules-scanner.js +15 -10
- package/src/dashboard/scanner/skills-scanner.js +2 -3
- package/src/lib/evaluator-report.js +13 -0
- package/src/lib/risk-detector.js +8 -0
- package/src/lib/stack/stack-profile.js +1 -1
- package/src/lib/validators/reuse/reuse-validator.js +2 -3
- package/src/lib/validators/reuse/symbol-scanner.js +2 -4
- package/src/lib/validators/validation-runner.js +8 -88
- package/src/lib/validators/verify-runner.js +22 -72
- package/src/scripts/setup-infra.js +33 -22
- package/src/utils/agents-installer.js +20 -8
- package/src/utils/file-copier.js +7 -5
- package/framework/commands/commit.md +0 -166
- package/framework/rubrics/backend.json +0 -41
- package/framework/rubrics/default.json +0 -36
- package/framework/rubrics/frontend.json +0 -36
- package/framework/templates/project/validate.js +0 -97
- package/src/dashboard/app/pages/Rubrics.jsx +0 -97
- package/src/dashboard/scanner/rubrics-scanner.js +0 -12
- package/src/lib/validators/architecture/architecture-validator.js +0 -270
- package/src/lib/validators/architecture/index.js +0 -7
- package/src/lib/validators/css/css-validator.js +0 -340
- package/src/lib/validators/css/index.js +0 -7
- package/src/lib/validators/design-system/design-system-validator.js +0 -237
- package/src/lib/validators/design-system/index.js +0 -7
- package/src/lib/validators/score-aggregator.js +0 -244
- package/src/lib/validators/ui/index.js +0 -7
- package/src/lib/validators/ui/ui-contrast-validator.js +0 -422
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
name: create-umbraco-lp
|
|
3
3
|
description: Guia a criação de uma landing page nova ponta-a-ponta a partir do template MORPH_Umbraco_LP_Template (Umbraco 17 + Next.js): coleta decisões, scaffolda, sobe e valida, customiza branding e módulos, e entrega checklist final.
|
|
4
4
|
version: core
|
|
5
|
-
|
|
6
|
-
user-
|
|
7
|
-
cliVersion: "8.
|
|
5
|
+
when_to_use: Use quando for iniciar um novo projeto de LP com o template Umbraco genérico
|
|
6
|
+
user-invocable: true
|
|
7
|
+
cliVersion: "8.47.0"
|
|
8
8
|
stacks:
|
|
9
9
|
- umbraco
|
|
10
10
|
---
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
name: migrate-lp-to-umbraco
|
|
3
3
|
description: Migra uma landing page existente (React/Vite, Next.js estático ou HTML) para o template Umbraco-headless MORPH_Umbraco_LP_Template entregando a LP EXATAMENTE igual à origem (mesmo CSS, imagens, fontes e comportamento) + Umbraco por cima — obtenção automática do template, inventário de seções, lift-and-rewire verbatim de cada seção para módulo editável, conexão do formulário ao backend de leads e gate de paridade determinístico. Repo-agnóstica: roda em qualquer lugar, sem template nem origem pré-baixados.
|
|
4
4
|
version: core
|
|
5
|
-
|
|
6
|
-
user-
|
|
7
|
-
cliVersion: "8.
|
|
5
|
+
when_to_use: Use quando o usuário pedir "use /migrate-lp-to-umbraco {projeto}" ou descrever a necessidade de migrar uma LP para Umbraco
|
|
6
|
+
user-invocable: true
|
|
7
|
+
cliVersion: "8.47.0"
|
|
8
8
|
stacks:
|
|
9
9
|
- umbraco
|
|
10
10
|
---
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
name: morph-apply
|
|
3
3
|
description: Orquestra a execução autônoma de tasks de uma feature morph-spec. Analisa DAG de dependências em tasks.json e decide adaptativamente entre execução sequencial (auto-advance) ou paralela (Agent dispatch). Termina com morph-review e Gate 3.
|
|
4
4
|
version: core
|
|
5
|
-
|
|
6
|
-
user-
|
|
7
|
-
cliVersion: "8.
|
|
5
|
+
when_to_use: Use quando chegar a instrução "use /morph-apply" ou "implementar feature" com o Gate 2 aprovado
|
|
6
|
+
user-invocable: true
|
|
7
|
+
cliVersion: "8.47.0"
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
# morph-apply
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
name: morph-brainstorming
|
|
3
3
|
description: Entende o negócio, os usuários e a arquitetura antes de qualquer planejamento técnico. Varre o ambiente primeiro, monta a árvore de decisões abertas e abre com a escolha de modo de descoberta (entrevista uma-pergunta-por-vez ou automático). Para projetos existentes, detecta desvios de stack e propõe plano de compliance.
|
|
4
4
|
version: core
|
|
5
|
-
|
|
6
|
-
user-
|
|
7
|
-
cliVersion: "8.
|
|
5
|
+
when_to_use: Use quando chegar um novo request de feature, antes de morph-plan
|
|
6
|
+
user-invocable: true
|
|
7
|
+
cliVersion: "8.47.0"
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
# morph-brainstorming
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
name: morph-hotfix
|
|
3
3
|
description: ADW cirúrgico de hotfix — resolve uma queda/bug crítico de produção com prioridade máxima em velocidade, com aprovação humana obrigatória antes do ship.
|
|
4
4
|
version: core
|
|
5
|
-
|
|
6
|
-
user-
|
|
7
|
-
cliVersion: "8.
|
|
5
|
+
when_to_use: Use quando chegar "/morph-hotfix {feature}", quando a morph-proposal classificar o pedido como workType hotfix (Passo 0), ou quando o usuário disser "produção caiu / hotfix / urgente" a respeito de um incidente
|
|
6
|
+
user-invocable: true
|
|
7
|
+
cliVersion: "8.47.0"
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
# morph-hotfix
|
|
@@ -43,7 +43,7 @@ subagent_type: "morph-scout"
|
|
|
43
43
|
|
|
44
44
|
**Fallback** (se `morph-scout` não estiver registrado nos subagent types deste projeto): `general-purpose` com o campo `persona` do agente `scout` colado no prompt, **registrando o fallback nas notes da task**.
|
|
45
45
|
|
|
46
|
-
Peça ao scout: localizar o root cause provável, os arquivos afetados e o blast radius (o que mais pode quebrar). Ele é read-only (Read/Glob/Grep/Bash somente-leitura)
|
|
46
|
+
Peça ao scout: localizar o root cause provável, os arquivos afetados e o blast radius (o que mais pode quebrar). Ele é read-only (Read/Glob/Grep/Bash somente-leitura): não cole as 8 cláusulas do contrato de implementador (`morph-implement` §4 / `morph-apply` §3b) — commit `wip`, orçamento de teste e limite de tasks não se aplicam a quem não escreve. O prompt dele diz só: não escreve nem reverte nada, e o mapa é a mensagem final (Observado/Inferido, no contrato de citação que a persona já carrega). Você grava o mapa.
|
|
47
47
|
|
|
48
48
|
**Audite o mapa antes do brief.** Grave a resposta do scout em `.morph/features/{feature}/2-plan/scout-map.md` e rode `morph-spec scout-check .morph/features/{feature}/2-plan/scout-map.md --json`. Exit ≠ 0 → descarte o mapa e re-despache o scout **uma** vez com as `failures` no prompt (o mapa novo abre com o motivo); na segunda reprovação, faça você o grep do root cause e siga. Root cause e blast radius que entram no brief se conferem com grep próprio mesmo com o mapa aprovado: sob pressão de hotfix, citação inventada vira um segundo incidente.
|
|
49
49
|
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
name: morph-implement
|
|
3
3
|
description: Guia a execução de cada tarefa de implementação com standard e persona adequados
|
|
4
4
|
version: core
|
|
5
|
-
|
|
6
|
-
user-
|
|
7
|
-
cliVersion: "8.
|
|
5
|
+
when_to_use: Use quando for iniciar cada task de implementação listada em tasks.json
|
|
6
|
+
user-invocable: false
|
|
7
|
+
cliVersion: "8.47.0"
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
# morph-implement
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
name: morph-machine
|
|
3
3
|
description: Cuida da RAM e da CPU da máquina enquanto o morph-spec trabalha — fila de builds e testes pesados (heavy), processos órfãos, worktrees de sub-agent que sobram. Invoque quando a máquina ou o editor estiver lento ou sem RAM, quando um comando voltar "⏳ não rodou" ou sair com exit 3 (fila cheia), quando sobrar agent-* em worktrees/, ou antes de despachar vários sub-agents que compilam ou testam em paralelo.
|
|
4
4
|
version: core
|
|
5
|
-
|
|
6
|
-
user-
|
|
7
|
-
cliVersion: "8.
|
|
5
|
+
when_to_use: Use quando a máquina estiver lenta ou sem RAM, um comando pesado esperou ou foi recusado pela fila, sobrou worktree de sub-agent, ou vários sub-agents pesados vão rodar em paralelo
|
|
6
|
+
user-invocable: false
|
|
7
|
+
cliVersion: "8.47.0"
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
# morph-machine
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
name: morph-media
|
|
3
3
|
description: Conduz a AUTORIA de mídia gerada por IA — escolher o modelo pelo trabalho, montar o prompt como spec versionada, encadear derivadas a partir de um herói aprovado, subir a escada de custo e conduzir o gate humano de escolha entre N candidatas. É o lado processo; o conhecimento de API, custo e conformidade vive nos standards de mídia.
|
|
4
4
|
version: core
|
|
5
|
-
|
|
6
|
-
user-
|
|
7
|
-
cliVersion: "8.
|
|
5
|
+
when_to_use: Use quando a tarefa for PRODUZIR imagem ou vídeo por IA (catálogo, marketing, asset de LP) e alguém precisar decidir modelo, prompt e aprovação
|
|
6
|
+
user-invocable: true
|
|
7
|
+
cliVersion: "8.47.0"
|
|
8
8
|
stacks:
|
|
9
9
|
- dotnet
|
|
10
10
|
- nextjs
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
name: morph-plan
|
|
3
3
|
description: Guia a produção dos artefatos de planejamento de uma feature (use cases, spec.md, tasks.json) e apresenta o Gate 2 trust-aware.
|
|
4
4
|
version: core
|
|
5
|
-
|
|
6
|
-
user-
|
|
7
|
-
cliVersion: "8.
|
|
5
|
+
when_to_use: Use quando a fase plan de uma feature começar, após o Gate 1 (proposal aprovado)
|
|
6
|
+
user-invocable: true
|
|
7
|
+
cliVersion: "8.47.0"
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
# morph-plan
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
name: morph-proposal
|
|
3
3
|
description: Orquestra a fase de proposta+plano de uma feature morph-spec. Encadeia morph-brainstorming (Gate 1) e morph-plan (Gate 2). Em trust:auto pula gates sem sinais de risco.
|
|
4
4
|
version: core
|
|
5
|
-
|
|
6
|
-
user-
|
|
7
|
-
cliVersion: "8.
|
|
5
|
+
when_to_use: Use quando o usuário pedir "use /morph-proposal" ou ao iniciar uma nova feature
|
|
6
|
+
user-invocable: true
|
|
7
|
+
cliVersion: "8.47.0"
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
# morph-proposal
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
name: morph-review
|
|
3
3
|
description: Conduz a fase de revisão e produz o review-report.md para o Gate 3
|
|
4
4
|
version: core
|
|
5
|
-
|
|
6
|
-
user-
|
|
7
|
-
cliVersion: "8.
|
|
5
|
+
when_to_use: Use quando a fase review começar, depois que todas as tasks de tasks.json estiverem com status `done`
|
|
6
|
+
user-invocable: true
|
|
7
|
+
cliVersion: "8.47.0"
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
# morph-review
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
name: morph-stack-scan
|
|
3
3
|
description: Varre o codebase existente, detecta stack atual, compara com o stack padrão e registra desvios em stack-scan.md
|
|
4
4
|
version: core
|
|
5
|
-
|
|
6
|
-
user-
|
|
7
|
-
cliVersion: "8.
|
|
5
|
+
when_to_use: Use quando uma feature começar em projeto brownfield (codebase já existente)
|
|
6
|
+
user-invocable: true
|
|
7
|
+
cliVersion: "8.47.0"
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
# morph-stack-scan
|
|
@@ -2,16 +2,16 @@
|
|
|
2
2
|
name: morph-standards
|
|
3
3
|
description: Localiza um standard específico via busca server-side (morph-spec standards --find) e carrega só o necessário
|
|
4
4
|
version: core
|
|
5
|
-
|
|
6
|
-
user-
|
|
7
|
-
cliVersion: "8.
|
|
5
|
+
when_to_use: Use quando precisar consultar um standard específico durante a implementação
|
|
6
|
+
user-invocable: true
|
|
7
|
+
cliVersion: "8.47.0"
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
# morph-standards
|
|
11
11
|
|
|
12
12
|
## Objetivo
|
|
13
13
|
Encontrar o standard certo para a situação atual e carregar apenas o necessário no contexto.
|
|
14
|
-
Nunca abra o `STANDARDS.json` inteiro (
|
|
14
|
+
Nunca abra o `STANDARDS.json` inteiro (mais de 150 KB) — a busca server-side já devolve o suficiente
|
|
15
15
|
para aplicar o standard na maioria dos casos.
|
|
16
16
|
|
|
17
17
|
## Quando invocar
|
|
@@ -24,8 +24,8 @@ ou de teste — e o `spec.md` e os standards da task não bastarem para resolver
|
|
|
24
24
|
```
|
|
25
25
|
morph-spec standards --find "<domínio/tecnologia da task>" [--category <cat>] [--tags <a,b>] [--json]
|
|
26
26
|
```
|
|
27
|
-
Devolve o **top 3** como `id · path · digest` — o `digest` é
|
|
28
|
-
na maioria dos casos ele já basta para aplicar o padrão, sem abrir o `.md`.
|
|
27
|
+
Devolve o **top 3** como `id · path · digest` — o `digest` é um resumo do standard (~700 chars),
|
|
28
|
+
não o texto completo; na maioria dos casos ele já basta para aplicar o padrão, sem abrir o `.md`.
|
|
29
29
|
|
|
30
30
|
2. Se dois resultados parecerem relevantes e houver conflito, adote o mais específico ao stack
|
|
31
31
|
do projeto. Registre o conflito no `decisions.md` da feature.
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
name: morph-uiux
|
|
3
3
|
description: Conduz a fase opcional de UI/UX — design system, mockups, componentes e fluxos — entre o Gate 1 e o plan, despachando a persona ui-designer para o trabalho visual.
|
|
4
4
|
version: core
|
|
5
|
-
|
|
6
|
-
user-
|
|
7
|
-
cliVersion: "8.
|
|
5
|
+
when_to_use: Use quando o ramo uiux for tomado (morph-spec advance --design), depois do Gate 1 e antes do morph-plan
|
|
6
|
+
user-invocable: true
|
|
7
|
+
cliVersion: "8.47.0"
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
# morph-uiux
|