@polymorphism-tech/morph-spec 8.0.0 โ 8.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/bin/validate.js +379 -379
- package/claude-plugin.json +1 -1
- package/docs/CHEATSHEET.md +1 -1
- package/docs/QUICKSTART.md +1 -1
- package/framework/CLAUDE.md +1 -1
- package/framework/MORPH.md +5 -5
- package/framework/agents.json +1 -1
- package/framework/commands/commit.md +166 -166
- package/framework/commands/morph-infra.md +215 -215
- package/framework/commands/morph-preflight.md +205 -205
- package/framework/commands/morph-troubleshoot.md +124 -124
- package/framework/hooks/README.md +0 -1
- package/framework/hooks/claude-code/statusline.py +679 -679
- package/framework/hooks/claude-code/statusline.sh +11 -11
- package/framework/hooks/git/commit-msg/conventional-commits.sh +33 -33
- package/framework/hooks/git/pre-commit/agents.sh +25 -25
- package/framework/hooks/git/pre-commit/orchestrator.sh +64 -64
- package/framework/hooks/git/pre-commit/specs.sh +50 -50
- package/framework/hooks/git/pre-push/run-tests.sh +44 -44
- package/framework/hooks/shared/activity-logger.js +160 -160
- package/framework/hooks/shared/stdin-reader.js +26 -26
- package/framework/rubrics/backend.json +41 -41
- package/framework/rules/ai-agents-standards.md +45 -45
- package/framework/rules/dotnet-templates.md +86 -86
- package/framework/rules/frontend-standards.md +13 -13
- package/framework/rules/infrastructure-standards.md +27 -27
- package/framework/rules/neon-standards.md +25 -25
- package/framework/rules/nextjs-standards.md +20 -20
- package/framework/rules/nextjs-templates.md +40 -40
- package/framework/skills/core/create-umbraco-lp/SKILL.md +1 -1
- package/framework/skills/core/migrate-lp-to-umbraco/SKILL.md +1 -1
- package/framework/skills/core/morph-apply/SKILL.md +12 -21
- package/framework/skills/core/morph-brainstorming/SKILL.md +1 -1
- package/framework/skills/core/morph-eval/SKILL.md +1 -1
- package/framework/skills/core/morph-hotfix/SKILL.md +2 -4
- package/framework/skills/core/morph-implement/SKILL.md +10 -19
- package/framework/skills/core/morph-plan/SKILL.md +1 -1
- package/framework/skills/core/morph-proposal/SKILL.md +1 -1
- package/framework/skills/core/morph-review/SKILL.md +11 -15
- package/framework/skills/core/morph-stack-scan/SKILL.md +1 -1
- package/framework/skills/core/morph-standards/SKILL.md +1 -1
- package/framework/standards/ai-agents/agent-session.md +160 -160
- package/framework/standards/ai-agents/batching.md +193 -193
- package/framework/standards/ai-agents/context-providers.md +188 -188
- package/framework/standards/ai-agents/mcp-server.md +250 -250
- package/framework/standards/ai-agents/mcp-tools.md +197 -197
- package/framework/standards/ai-agents/middleware-patterns.md +207 -207
- package/framework/standards/ai-agents/modalities-image-gen.md +173 -173
- package/framework/standards/ai-agents/modalities-speech-to-text.md +171 -171
- package/framework/standards/ai-agents/modalities-text-to-speech.md +181 -181
- package/framework/standards/ai-agents/modalities-vision.md +201 -201
- package/framework/standards/ai-agents/multi-agent-patterns.md +155 -155
- package/framework/standards/ai-agents/production.md +275 -275
- package/framework/standards/ai-agents/prompts-in-db.md +214 -214
- package/framework/standards/ai-agents/providers/model-registry.md +158 -158
- package/framework/standards/ai-agents/service-tier-flex.md +135 -135
- package/framework/standards/ai-agents/structured-output.md +249 -249
- package/framework/standards/ai-agents/sweet-spot.md +109 -109
- package/framework/templates/IDE-SNIPPETS.md +262 -262
- package/framework/templates/code/dotnet/abstractions/api-endpoint.cs +7 -7
- package/framework/templates/code/dotnet/ai-agents/AgentBootstrap.cs.template +39 -39
- package/framework/templates/code/dotnet/ai-agents/EmbeddingService.cs.template +68 -68
- package/framework/templates/code/dotnet/ai-agents/ModelRegistry.cs.template +117 -117
- package/framework/templates/code/dotnet/ai-agents/PromptRepository.cs.template +95 -95
- package/framework/templates/code/dotnet/ai-agents/ResilientToolMiddleware.cs.template +61 -61
- package/framework/templates/code/dotnet/ai-agents/VectorSearchTool.cs.template +107 -107
- package/framework/templates/code/dotnet/ai-agents/model-registry.json.template +58 -58
- package/framework/templates/code/dotnet/contracts/contracts-vsa.cs +281 -281
- package/framework/templates/code/dotnet/database/migration.cs +83 -83
- package/framework/templates/code/dotnet/feature/endpoint.cs.hbs +21 -21
- package/framework/templates/code/dotnet/feature/request.cs.hbs +4 -4
- package/framework/templates/code/dotnet/feature/response.cs.hbs +4 -4
- package/framework/templates/code/dotnet/feature/validator.cs.hbs +15 -15
- package/framework/templates/code/sql/ai-agents/agent-prompts-migration.sql.template +58 -58
- package/framework/templates/code/sql/ai-agents/pgvector-embeddings-migration.sql.template +91 -91
- package/framework/templates/code/typescript/contracts.ts +167 -167
- package/framework/templates/docs/clarifications.md +253 -253
- package/framework/templates/docs/schema-analysis.md +119 -119
- package/framework/templates/docs/ui-components.md +52 -52
- package/framework/templates/docs/ui-design-system.md +76 -76
- package/framework/templates/docs/ui-flows.md +167 -167
- package/framework/templates/docs/ui-mockups.md +98 -98
- package/framework/templates/feature/decisions.md +122 -122
- package/framework/templates/frontend/nextjs/Dockerfile.nextjs.hbs +43 -43
- package/framework/templates/frontend/nextjs/client-component.tsx.hbs +26 -26
- package/framework/templates/frontend/nextjs/env.mjs.hbs +32 -32
- package/framework/templates/frontend/nextjs/feature-form.tsx.hbs +56 -56
- package/framework/templates/frontend/nextjs/page.tsx.hbs +22 -22
- package/framework/templates/frontend/nextjs/tsconfig.json.hbs +26 -26
- package/framework/templates/frontend/nextjs/use-feature.ts.hbs +54 -54
- package/framework/templates/infrastructure/docker/Dockerfile.template +58 -58
- package/framework/templates/infrastructure/docker/docker-compose.template.yml +50 -50
- package/framework/templates/infrastructure/docker/dockerfile-api.dockerfile +38 -38
- package/framework/templates/infrastructure/docker/dockerfile-web.dockerfile +48 -48
- package/framework/templates/infrastructure/github/README.md +56 -56
- package/framework/templates/infrastructure/github/actions/docker-build-push/action.yml.hbs +45 -45
- package/framework/templates/infrastructure/github/actions/health-check/action.yml.hbs +27 -27
- package/framework/templates/infrastructure/github/workflows/docker-build-push.yml.hbs +59 -59
- package/framework/templates/infrastructure/github/workflows/dotnet-build.yml.hbs +39 -39
- package/framework/templates/integrations/asaas-client.cs +387 -387
- package/framework/templates/integrations/asaas-webhook.cs +351 -351
- package/framework/templates/meta-prompts/fusion/fusion-agent.md +76 -76
- package/framework/templates/meta-prompts/fusion/fusion-aggregator.md +100 -100
- package/framework/templates/meta-prompts/validators/pre-commit-validator.md +95 -95
- package/framework/templates/project/validate.js +120 -120
- package/framework/templates/state.template.json +17 -17
- package/framework/templates/ui/design-system.css +226 -226
- package/package.json +1 -1
- package/src/commands/dashboard/dashboard.js +53 -53
- package/src/commands/index.js +13 -13
- package/src/commands/mcp/mcp-setup.js +519 -519
- package/src/commands/project/checkpoint.js +209 -209
- package/src/commands/project/worktree.js +83 -1
- package/src/core/state/phase-state-machine.js +197 -197
- package/src/core/templates/template-renderer.js +477 -477
- package/src/dashboard/app/components/DetailPanel.jsx +11 -11
- package/src/dashboard/app/components/FlowGraph.jsx +17 -17
- package/src/dashboard/app/components/SearchFilter.jsx +22 -22
- package/src/dashboard/app/hooks/useDetailPanel.js +15 -15
- package/src/dashboard/app/main.jsx +13 -13
- package/src/dashboard/app/pages/AgentMap.jsx +370 -370
- package/src/dashboard/app/pages/HookInspector.jsx +418 -418
- package/src/dashboard/app/pages/PhasePipeline.jsx +408 -408
- package/src/dashboard/app/pages/RulesMap.jsx +273 -273
- package/src/dashboard/app/pages/SkillsLibrary.jsx +366 -366
- package/src/dashboard/app/pages/Standards.jsx +332 -332
- package/src/dashboard/app/styles/index.css +47 -47
- package/src/dashboard/index.html +12 -12
- package/src/dashboard/package.json +24 -24
- package/src/dashboard/scanner/hooks-scanner.js +41 -41
- package/src/dashboard/scanner/phases-scanner.js +15 -15
- package/src/dashboard/scanner/rubrics-scanner.js +12 -12
- package/src/dashboard/scanner/rules-scanner.js +37 -37
- package/src/dashboard/scanner/skills-scanner.js +43 -43
- package/src/dashboard/scanner/squads-scanner.js +13 -13
- package/src/dashboard/scanner/standards-scanner.js +26 -26
- package/src/dashboard/vite-plugin-morph-data.js +17 -17
- package/src/dashboard/vite.config.js +24 -24
- package/src/lib/agents/metrics-aggregator.js +56 -56
- package/src/lib/agents/metrics-calculator.js +125 -125
- package/src/lib/agents/output-collector.js +73 -73
- package/src/lib/detectors/claude-config-detector.js +152 -152
- package/src/lib/detectors/design-system-detector.js +231 -231
- package/src/lib/detectors/index.js +217 -217
- package/src/lib/generators/architecture-scanner.js +639 -639
- package/src/lib/generators/design-system-generator.js +508 -508
- package/src/lib/generators/index.js +13 -13
- package/src/lib/generators/settings-generator.js +209 -209
- package/src/lib/hooks/hook-executor.js +167 -167
- package/src/lib/installers/mcp-installer.js +719 -719
- package/src/lib/tasks/task-classifier.js +30 -30
- package/src/lib/tasks/task-parser.js +209 -209
- package/src/lib/validators/architecture/architecture-validator.js +259 -259
- package/src/lib/validators/checkpoint-persistence.js +39 -39
- package/src/lib/validators/contracts/contract-compliance-validator.js +274 -274
- package/src/lib/validators/css/css-validator.js +340 -340
- package/src/lib/validators/packages/package-validator.js +347 -347
- package/src/lib/validators/shared/emit-validator-dispatch.js +14 -14
- package/src/lib/validators/shared/issue-counter.js +14 -14
- package/src/lib/validators/validation-runner.js +349 -349
- package/src/utils/agent-id-mapper.js +11 -11
- package/src/utils/claude-settings-manager.js +300 -300
- package/src/utils/hooks-installer.js +3 -24
- package/src/utils/skills-installer.js +174 -174
- package/framework/hooks/claude-code/core/subagent-report-guard.js +0 -95
- package/framework/templates/.idea/morph-templates.xml +0 -92
- package/framework/templates/.vscode/morph-templates.code-snippets +0 -186
package/claude-plugin.json
CHANGED
package/docs/CHEATSHEET.md
CHANGED
package/docs/QUICKSTART.md
CHANGED
package/framework/CLAUDE.md
CHANGED
|
@@ -25,7 +25,7 @@ Se nรฃo houver feature ativa, pergunte ao usuรกrio qual feature trabalhar.
|
|
|
25
25
|
- Apresentar gates com o template fixo definido em MORPH.md / morph-plan.
|
|
26
26
|
- Registrar decisรตes nรฃo triviais em `decisions.md`.
|
|
27
27
|
- Aplicar `morph-eval` apรณs cada tarefa; silรชncio em score โฅ 9 รฉ o sinal correto. Score < 9 dispara o loop de correรงรฃo autรดnomo (re-implementa, sem pausa), nรฃo escala ao humano entre tarefas. No Gate 3, o score composto da feature vem do **avaliador independente** despachado pela `morph-review` (persona `evaluator`, contexto fresco) โ nunca de auto-avaliaรงรฃo de quem implementou.
|
|
28
|
-
- Incluir as 3 clรกusulas
|
|
28
|
+
- Incluir as 3 clรกusulas do contrato do relatรณrio final em todo dispatch de sub-agent (**ato final = o relatรณrio รฉ a รLTIMA MENSAGEM DE TEXTO do sub-agent, com os 4 itens obrigatรณrios (o quรช / arquivos / problemas / auto-score 0-10) โ ela รฉ o valor de retorno e chega inteira ao orquestrador; nรฃo chamar `SendMessage`, que gera um evento a mais e custa um turno inรบtil**; nรฃo tocar tasks.json/feature.json/board; sem build/test da suรญte compartilhada em batch paralelo) โ templates em `morph-implement` ยง4 e `morph-apply` ยง3b.
|
|
29
29
|
|
|
30
30
|
## Slash commands
|
|
31
31
|
|
package/framework/MORPH.md
CHANGED
|
@@ -250,7 +250,7 @@ Inline (sem dispatch) รฉ aceitรกvel para tasks curtas (effort S/M) **dentro do d
|
|
|
250
250
|
|
|
251
251
|
**Mecanismo de dispatch:** os agents de domรญnio sรฃo subagents **registrados** (`.claude/agents/morph-{id}.md`, gerados de `agents.json` โ a fonte รบnica โ na instalaรงรฃo). Despache com `subagent_type: "morph-{id}"` (ex.: `morph-dotnet-senior`): a persona รฉ o **system prompt** do subagent, com tools, model e MCPs definidos por domรญnio no prรณprio `agents.json` (ex.: `context7` para docs vivas nos implementadores; Stitch/Gemini/Playwright no `morph-ui-designer`; o `morph-evaluator` รฉ read-only). **Fallback** quando o tipo nรฃo estรก registrado (stack nรฃo instalado neste projeto): `general-purpose` com o campo `persona` de `agents.json` colado no prompt, **registrado nas `notes` da task**. O `**Persona:**` do recap registra sempre o mecanismo real usado โ nunca uma auto-declaraรงรฃo.
|
|
252
252
|
|
|
253
|
-
**Persona de estรกgio โ scout:** alรฉm das personas de domรญnio, existe o `morph-scout` (read-only: Read/Glob/Grep/Bash somente-leitura). Despache-o quando precisar de um mapa do territรณrio sem contaminar a thread principal โ obrigatoriamente no inรญcio de um hotfix (localizar root cause + blast radius) e opcionalmente antes do plan de uma feature grande (buscar cรณdigo, docs e specs anteriores relevantes). Ele devolve um mapa curto
|
|
253
|
+
**Persona de estรกgio โ scout:** alรฉm das personas de domรญnio, existe o `morph-scout` (read-only: Read/Glob/Grep/Bash somente-leitura). Despache-o quando precisar de um mapa do territรณrio sem contaminar a thread principal โ obrigatoriamente no inรญcio de um hotfix (localizar root cause + blast radius) e opcionalmente antes do plan de uma feature grande (buscar cรณdigo, docs e specs anteriores relevantes). Ele devolve um mapa curto como relatรณrio final e encerra; nรฃo escreve cรณdigo.
|
|
254
254
|
|
|
255
255
|
**O que passar ao sub-agent:**
|
|
256
256
|
- Especificaรงรฃo da tarefa (do tasks.json)
|
|
@@ -269,10 +269,10 @@ Inline (sem dispatch) รฉ aceitรกvel para tasks curtas (effort S/M) **dentro do d
|
|
|
269
269
|
- Problemas encontrados e como foram resolvidos
|
|
270
270
|
- Auto-score 0-10 com justificativa em uma linha
|
|
271
271
|
|
|
272
|
-
**
|
|
273
|
-
1. **ATO FINAL:
|
|
272
|
+
**Contrato do relatรณrio final** (clรกusulas que todo prompt de dispatch inclui โ ver templates em `morph-implement` ยง4 e `morph-apply` ยง3b):
|
|
273
|
+
1. **ATO FINAL: o seu relatรณrio รฉ a sua รLTIMA MENSAGEM DE TEXTO** โ ela รฉ o valor de retorno do sub-agent e chega inteira ao orquestrador. **Nรฃo chame `SendMessage`**: ele gera um evento a mais (o teammate-message) alรฉm da notificaรงรฃo de tรฉrmino, custando um turno inรบtil ao orquestrador. Conteรบdo obrigatรณrio: (1) o que foi feito em 2-3 frases, (2) arquivos modificados, (3) problemas encontrados e como foram resolvidos, (4) auto-score 0-10 com justificativa em uma linha. Relatรณrio oco ou sem os 4 itens รฉ **falha de protocolo** โ registrada no recap.
|
|
274
274
|
2. Nรฃo tocar em `tasks.json`, `feature.json`, `state.json` nem no board de sessรฃo (TaskCreate/TaskUpdate) โ todo estado รฉ gravado exclusivamente pelo orquestrador.
|
|
275
|
-
3. **Verificaรงรฃo em batch paralelo โ condicional ao isolamento:** em batch **sem isolamento** (agentes na mesma working tree), nรฃo rode build/test da suรญte compartilhada โ a verificaรงรฃo (`morph-spec verify`) รฉ do orquestrador, uma vez, pรณs-batch. Em batch **com `isolation: "worktree"`** (quando o `morph-spec dag` recomenda, por colisรฃo de `outputs` entre fluxos), a regra se inverte: rode build/test **dentro do seu worktree**, commite o trabalho na branch do worktree como
|
|
275
|
+
3. **Verificaรงรฃo em batch paralelo โ condicional ao isolamento:** em batch **sem isolamento** (agentes na mesma working tree), nรฃo rode build/test da suรญte compartilhada โ a verificaรงรฃo (`morph-spec verify`) รฉ do orquestrador, uma vez, pรณs-batch. Em batch **com `isolation: "worktree"`** (quando o `morph-spec dag` recomenda, por colisรฃo de `outputs` entre fluxos), a regra se inverte: rode build/test **dentro do seu worktree**, commite o trabalho na branch do worktree como รบltimo ato antes do relatรณrio, reporte a branch + status de build, e **nunca** faรงa merge nem toque na รกrvore principal โ a integraรงรฃo รฉ do orquestrador.
|
|
276
276
|
|
|
277
277
|
O sub-agent deve ser autossuficiente com o que vocรช passou. Se precisar de mais contexto para comeรงar, a tarefa nรฃo estava bem especificada โ refine antes de despachar.
|
|
278
278
|
|
|
@@ -281,7 +281,7 @@ O sub-agent deve ser autossuficiente com o que vocรช passou. Se precisar de mais
|
|
|
281
281
|
- Quando o feedback do sub-agent precisaria ser discutido em tempo real โ dispatch รฉ assรญncrono.
|
|
282
282
|
- Quando a tarefa envolve mudanรงas de arquitetura que o Orchestrator precisa validar antes de executar.
|
|
283
283
|
|
|
284
|
-
**Apรณs receber o retorno do sub-agent:** leia o auto-score โ ele รฉ **triagem, nรฃo aprovaรงรฃo**. Se for < 7, re-despache com o feedback especรญfico (ou corrija inline) antes de avaliar. Em qualquer caso, a task sรณ avanรงa quando `morph-eval` der score โฅ 9 (a barra รบnica do ยง0); integre o resultado ao recap.md e siga para a prรณxima tarefa.
|
|
284
|
+
**Apรณs receber o retorno do sub-agent:** leia o auto-score โ ele รฉ **triagem, nรฃo aprovaรงรฃo**. Se for < 7, re-despache com o feedback especรญfico (ou corrija inline) antes de avaliar. Em qualquer caso, a task sรณ avanรงa quando `morph-eval` der score โฅ 9 (a barra รบnica do ยง0); integre o resultado ao recap.md e siga para a prรณxima tarefa.
|
|
285
285
|
|
|
286
286
|
> **Anti-padrรฃo a evitar:** implementar mรบltiplas tasks de domรญnios diferentes inline, em sequรชncia, na thread principal โ "eu jรก sei o padrรฃo de cada uma". Isso รฉ exatamente o sinal de que o sistema de delegaรงรฃo foi ignorado. Quando uma feature cruza โฅ2 domรญnios, o caminho default รฉ o Orchestrator despachando especialistas, nรฃo o Orchestrator virando faz-tudo.
|
|
287
287
|
|
package/framework/agents.json
CHANGED
|
@@ -155,7 +155,7 @@
|
|
|
155
155
|
"standards": [],
|
|
156
156
|
"tools": "Read, Glob, Grep, Bash",
|
|
157
157
|
"model": "haiku",
|
|
158
|
-
"persona": "Vocรช รฉ um scout read-only: mapeia o territรณrio sem escrever cรณdigo. Dado um sintoma ou uma feature, localiza os arquivos relevantes, o root cause provรกvel e o blast radius (o que mais รฉ afetado). Usa Read/Glob/Grep e Bash SOMENTE-LEITURA (git log/diff/show, ls, cat) โ nunca Write/Edit, nunca comandos que mudam estado. Devolve um mapa curto e acionรกvel (arquivos com paths, hipรณtese de causa, รกreas de impacto)
|
|
158
|
+
"persona": "Vocรช รฉ um scout read-only: mapeia o territรณrio sem escrever cรณdigo. Dado um sintoma ou uma feature, localiza os arquivos relevantes, o root cause provรกvel e o blast radius (o que mais รฉ afetado). Usa Read/Glob/Grep e Bash SOMENTE-LEITURA (git log/diff/show, ls, cat) โ nunca Write/Edit, nunca comandos que mudam estado. Devolve um mapa curto e acionรกvel (arquivos com paths, hipรณtese de causa, รกreas de impacto) como relatรณrio final e encerra. Nรฃo implementa, nรฃo corrige โ ilumina o caminho para quem vai."
|
|
159
159
|
}
|
|
160
160
|
}
|
|
161
161
|
}
|
|
@@ -1,166 +1,166 @@
|
|
|
1
|
-
---
|
|
2
|
-
allowed-tools: Bash(git add:*), Bash(git status:*), Bash(git commit:*), Bash(git diff:*), Bash(git log:*)
|
|
3
|
-
argument-hint: [message] | --no-verify | --amend
|
|
4
|
-
description: Create well-formatted commits with conventional commit format and emoji
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# Smart Git Commit
|
|
8
|
-
|
|
9
|
-
Create well-formatted commit: $ARGUMENTS
|
|
10
|
-
|
|
11
|
-
## Current Repository State
|
|
12
|
-
|
|
13
|
-
- Git status: !git status --porcelain
|
|
14
|
-
- Current branch: !git branch --show-current
|
|
15
|
-
- Staged changes: !git diff --cached --stat
|
|
16
|
-
- Unstaged changes: !git diff --stat
|
|
17
|
-
- Recent commits: !git log --oneline -5
|
|
18
|
-
|
|
19
|
-
## What This Command Does
|
|
20
|
-
|
|
21
|
-
1. Unless specified with --no-verify, automatically runs pre-commit checks:
|
|
22
|
-
- pnpm lint to ensure code quality
|
|
23
|
-
- pnpm build to verify the build succeeds
|
|
24
|
-
- pnpm generate:docs to update documentation
|
|
25
|
-
2. Checks which files are staged with git status
|
|
26
|
-
3. If 0 files are staged, automatically adds all modified and new files with git add
|
|
27
|
-
4. Performs a git diff to understand what changes are being committed
|
|
28
|
-
5. Analyzes the diff to determine if multiple distinct logical changes are present
|
|
29
|
-
6. If multiple distinct changes are detected, suggests breaking the commit into multiple smaller commits
|
|
30
|
-
7. For each commit (or the single commit if not split), creates a commit message using emoji conventional commit format
|
|
31
|
-
|
|
32
|
-
## Best Practices for Commits
|
|
33
|
-
|
|
34
|
-
- **Verify before committing**: Ensure code is linted, builds correctly, and documentation is updated
|
|
35
|
-
- **Atomic commits**: Each commit should contain related changes that serve a single purpose
|
|
36
|
-
- **Split large changes**: If changes touch multiple concerns, split them into separate commits
|
|
37
|
-
- **Conventional commit format**: Use the format <type>: <description> where type is one of:
|
|
38
|
-
- feat: A new feature
|
|
39
|
-
- fix: A bug fix
|
|
40
|
-
- docs: Documentation changes
|
|
41
|
-
- style: Code style changes (formatting, etc)
|
|
42
|
-
- refactor: Code changes that neither fix bugs nor add features
|
|
43
|
-
- perf: Performance improvements
|
|
44
|
-
- test: Adding or fixing tests
|
|
45
|
-
- chore: Changes to the build process, tools, etc.
|
|
46
|
-
- **Present tense, imperative mood**: Write commit messages as commands (e.g., "add feature" not "added feature")
|
|
47
|
-
- **Concise first line**: Keep the first line under 72 characters
|
|
48
|
-
- **Emoji**: Each commit type is paired with an appropriate emoji:
|
|
49
|
-
- โจ feat: New feature
|
|
50
|
-
- ๐ fix: Bug fix
|
|
51
|
-
- ๐ docs: Documentation
|
|
52
|
-
- ๐ style: Formatting/style
|
|
53
|
-
- โป๏ธ refactor: Code refactoring
|
|
54
|
-
- โก๏ธ perf: Performance improvements
|
|
55
|
-
- โ
test: Tests
|
|
56
|
-
- ๐ง chore: Tooling, configuration
|
|
57
|
-
- ๐ ci: CI/CD improvements
|
|
58
|
-
- ๐๏ธ revert: Reverting changes
|
|
59
|
-
- ๐งช test: Add a failing test
|
|
60
|
-
- ๐จ fix: Fix compiler/linter warnings
|
|
61
|
-
- ๐๏ธ fix: Fix security issues
|
|
62
|
-
- ๐ฅ chore: Add or update contributors
|
|
63
|
-
- ๐ refactor: Move or rename resources
|
|
64
|
-
- ๐๏ธ refactor: Make architectural changes
|
|
65
|
-
- ๐ chore: Merge branches
|
|
66
|
-
- ๐ฆ๏ธ chore: Add or update compiled files or packages
|
|
67
|
-
- โ chore: Add a dependency
|
|
68
|
-
- โ chore: Remove a dependency
|
|
69
|
-
- ๐ฑ chore: Add or update seed files
|
|
70
|
-
- ๐งโ๐ป chore: Improve developer experience
|
|
71
|
-
- ๐งต feat: Add or update code related to multithreading or concurrency
|
|
72
|
-
- ๐๏ธ feat: Improve SEO
|
|
73
|
-
- ๐ท๏ธ feat: Add or update types
|
|
74
|
-
- ๐ฌ feat: Add or update text and literals
|
|
75
|
-
- ๐ feat: Internationalization and localization
|
|
76
|
-
- ๐ feat: Add or update business logic
|
|
77
|
-
- ๐ฑ feat: Work on responsive design
|
|
78
|
-
- ๐ธ feat: Improve user experience / usability
|
|
79
|
-
- ๐ฉน fix: Simple fix for a non-critical issue
|
|
80
|
-
- ๐ฅ
fix: Catch errors
|
|
81
|
-
- ๐ฝ๏ธ fix: Update code due to external API changes
|
|
82
|
-
- ๐ฅ fix: Remove code or files
|
|
83
|
-
- ๐จ style: Improve structure/format of the code
|
|
84
|
-
- ๐๏ธ fix: Critical hotfix
|
|
85
|
-
- ๐ chore: Begin a project
|
|
86
|
-
- ๐ chore: Release/Version tags
|
|
87
|
-
- ๐ง wip: Work in progress
|
|
88
|
-
- ๐ fix: Fix CI build
|
|
89
|
-
- ๐ chore: Pin dependencies to specific versions
|
|
90
|
-
- ๐ท ci: Add or update CI build system
|
|
91
|
-
- ๐ feat: Add or update analytics or tracking code
|
|
92
|
-
- โ๏ธ fix: Fix typos
|
|
93
|
-
- โช๏ธ revert: Revert changes
|
|
94
|
-
- ๐ chore: Add or update license
|
|
95
|
-
- ๐ฅ feat: Introduce breaking changes
|
|
96
|
-
- ๐ฑ assets: Add or update assets
|
|
97
|
-
- โฟ๏ธ feat: Improve accessibility
|
|
98
|
-
- ๐ก docs: Add or update comments in source code
|
|
99
|
-
- ๐๏ธ db: Perform database related changes
|
|
100
|
-
- ๐ feat: Add or update logs
|
|
101
|
-
- ๐ fix: Remove logs
|
|
102
|
-
- ๐คก test: Mock things
|
|
103
|
-
- ๐ฅ feat: Add or update an easter egg
|
|
104
|
-
- ๐ chore: Add or update .gitignore file
|
|
105
|
-
- ๐ธ test: Add or update snapshots
|
|
106
|
-
- โ๏ธ experiment: Perform experiments
|
|
107
|
-
- ๐ฉ feat: Add, update, or remove feature flags
|
|
108
|
-
- ๐ซ ui: Add or update animations and transitions
|
|
109
|
-
- โฐ๏ธ refactor: Remove dead code
|
|
110
|
-
- ๐ฆบ feat: Add or update code related to validation
|
|
111
|
-
- โ๏ธ feat: Improve offline support
|
|
112
|
-
|
|
113
|
-
## Guidelines for Splitting Commits
|
|
114
|
-
|
|
115
|
-
When analyzing the diff, consider splitting commits based on these criteria:
|
|
116
|
-
|
|
117
|
-
1. **Different concerns**: Changes to unrelated parts of the codebase
|
|
118
|
-
2. **Different types of changes**: Mixing features, fixes, refactoring, etc.
|
|
119
|
-
3. **File patterns**: Changes to different types of files (e.g., source code vs documentation)
|
|
120
|
-
4. **Logical grouping**: Changes that would be easier to understand or review separately
|
|
121
|
-
5. **Size**: Very large changes that would be clearer if broken down
|
|
122
|
-
|
|
123
|
-
## Examples
|
|
124
|
-
|
|
125
|
-
Good commit messages:
|
|
126
|
-
- โจ feat: add user authentication system
|
|
127
|
-
- ๐ fix: resolve memory leak in rendering process
|
|
128
|
-
- ๐ docs: update API documentation with new endpoints
|
|
129
|
-
- โป๏ธ refactor: simplify error handling logic in parser
|
|
130
|
-
- ๐จ fix: resolve linter warnings in component files
|
|
131
|
-
- ๐งโ๐ป chore: improve developer tooling setup process
|
|
132
|
-
- ๐ feat: implement business logic for transaction validation
|
|
133
|
-
- ๐ฉน fix: address minor styling inconsistency in header
|
|
134
|
-
- ๐๏ธ fix: patch critical security vulnerability in auth flow
|
|
135
|
-
- ๐จ style: reorganize component structure for better readability
|
|
136
|
-
- ๐ฅ fix: remove deprecated legacy code
|
|
137
|
-
- ๐ฆบ feat: add input validation for user registration form
|
|
138
|
-
- ๐ fix: resolve failing CI pipeline tests
|
|
139
|
-
- ๐ feat: implement analytics tracking for user engagement
|
|
140
|
-
- ๐๏ธ fix: strengthen authentication password requirements
|
|
141
|
-
- โฟ๏ธ feat: improve form accessibility for screen readers
|
|
142
|
-
|
|
143
|
-
Example of splitting commits:
|
|
144
|
-
- First commit: โจ feat: add new solc version type definitions
|
|
145
|
-
- Second commit: ๐ docs: update documentation for new solc versions
|
|
146
|
-
- Third commit: ๐ง chore: update package.json dependencies
|
|
147
|
-
- Fourth commit: ๐ท๏ธ feat: add type definitions for new API endpoints
|
|
148
|
-
- Fifth commit: ๐งต feat: improve concurrency handling in worker threads
|
|
149
|
-
- Sixth commit: ๐จ fix: resolve linting issues in new code
|
|
150
|
-
- Seventh commit: โ
test: add unit tests for new solc version features
|
|
151
|
-
- Eighth commit: ๐๏ธ fix: update dependencies with security vulnerabilities
|
|
152
|
-
|
|
153
|
-
## Command Options
|
|
154
|
-
|
|
155
|
-
- --no-verify: Skip running the pre-commit checks (lint, build, generate:docs)
|
|
156
|
-
|
|
157
|
-
## Important Notes
|
|
158
|
-
|
|
159
|
-
- By default, pre-commit checks (pnpm lint, pnpm build, pnpm generate:docs) will run to ensure code quality
|
|
160
|
-
- If these checks fail, you'll be asked if you want to proceed with the commit anyway or fix the issues first
|
|
161
|
-
- If specific files are already staged, the command will only commit those files
|
|
162
|
-
- If no files are staged, it will automatically stage all modified and new files
|
|
163
|
-
- The commit message will be constructed based on the changes detected
|
|
164
|
-
- Before committing, the command will review the diff to identify if multiple commits would be more appropriate
|
|
165
|
-
- If suggesting multiple commits, it will help you stage and commit the changes separately
|
|
166
|
-
- Always reviews the commit diff to ensure the message matches the changes
|
|
1
|
+
---
|
|
2
|
+
allowed-tools: Bash(git add:*), Bash(git status:*), Bash(git commit:*), Bash(git diff:*), Bash(git log:*)
|
|
3
|
+
argument-hint: [message] | --no-verify | --amend
|
|
4
|
+
description: Create well-formatted commits with conventional commit format and emoji
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Smart Git Commit
|
|
8
|
+
|
|
9
|
+
Create well-formatted commit: $ARGUMENTS
|
|
10
|
+
|
|
11
|
+
## Current Repository State
|
|
12
|
+
|
|
13
|
+
- Git status: !git status --porcelain
|
|
14
|
+
- Current branch: !git branch --show-current
|
|
15
|
+
- Staged changes: !git diff --cached --stat
|
|
16
|
+
- Unstaged changes: !git diff --stat
|
|
17
|
+
- Recent commits: !git log --oneline -5
|
|
18
|
+
|
|
19
|
+
## What This Command Does
|
|
20
|
+
|
|
21
|
+
1. Unless specified with --no-verify, automatically runs pre-commit checks:
|
|
22
|
+
- pnpm lint to ensure code quality
|
|
23
|
+
- pnpm build to verify the build succeeds
|
|
24
|
+
- pnpm generate:docs to update documentation
|
|
25
|
+
2. Checks which files are staged with git status
|
|
26
|
+
3. If 0 files are staged, automatically adds all modified and new files with git add
|
|
27
|
+
4. Performs a git diff to understand what changes are being committed
|
|
28
|
+
5. Analyzes the diff to determine if multiple distinct logical changes are present
|
|
29
|
+
6. If multiple distinct changes are detected, suggests breaking the commit into multiple smaller commits
|
|
30
|
+
7. For each commit (or the single commit if not split), creates a commit message using emoji conventional commit format
|
|
31
|
+
|
|
32
|
+
## Best Practices for Commits
|
|
33
|
+
|
|
34
|
+
- **Verify before committing**: Ensure code is linted, builds correctly, and documentation is updated
|
|
35
|
+
- **Atomic commits**: Each commit should contain related changes that serve a single purpose
|
|
36
|
+
- **Split large changes**: If changes touch multiple concerns, split them into separate commits
|
|
37
|
+
- **Conventional commit format**: Use the format <type>: <description> where type is one of:
|
|
38
|
+
- feat: A new feature
|
|
39
|
+
- fix: A bug fix
|
|
40
|
+
- docs: Documentation changes
|
|
41
|
+
- style: Code style changes (formatting, etc)
|
|
42
|
+
- refactor: Code changes that neither fix bugs nor add features
|
|
43
|
+
- perf: Performance improvements
|
|
44
|
+
- test: Adding or fixing tests
|
|
45
|
+
- chore: Changes to the build process, tools, etc.
|
|
46
|
+
- **Present tense, imperative mood**: Write commit messages as commands (e.g., "add feature" not "added feature")
|
|
47
|
+
- **Concise first line**: Keep the first line under 72 characters
|
|
48
|
+
- **Emoji**: Each commit type is paired with an appropriate emoji:
|
|
49
|
+
- โจ feat: New feature
|
|
50
|
+
- ๐ fix: Bug fix
|
|
51
|
+
- ๐ docs: Documentation
|
|
52
|
+
- ๐ style: Formatting/style
|
|
53
|
+
- โป๏ธ refactor: Code refactoring
|
|
54
|
+
- โก๏ธ perf: Performance improvements
|
|
55
|
+
- โ
test: Tests
|
|
56
|
+
- ๐ง chore: Tooling, configuration
|
|
57
|
+
- ๐ ci: CI/CD improvements
|
|
58
|
+
- ๐๏ธ revert: Reverting changes
|
|
59
|
+
- ๐งช test: Add a failing test
|
|
60
|
+
- ๐จ fix: Fix compiler/linter warnings
|
|
61
|
+
- ๐๏ธ fix: Fix security issues
|
|
62
|
+
- ๐ฅ chore: Add or update contributors
|
|
63
|
+
- ๐ refactor: Move or rename resources
|
|
64
|
+
- ๐๏ธ refactor: Make architectural changes
|
|
65
|
+
- ๐ chore: Merge branches
|
|
66
|
+
- ๐ฆ๏ธ chore: Add or update compiled files or packages
|
|
67
|
+
- โ chore: Add a dependency
|
|
68
|
+
- โ chore: Remove a dependency
|
|
69
|
+
- ๐ฑ chore: Add or update seed files
|
|
70
|
+
- ๐งโ๐ป chore: Improve developer experience
|
|
71
|
+
- ๐งต feat: Add or update code related to multithreading or concurrency
|
|
72
|
+
- ๐๏ธ feat: Improve SEO
|
|
73
|
+
- ๐ท๏ธ feat: Add or update types
|
|
74
|
+
- ๐ฌ feat: Add or update text and literals
|
|
75
|
+
- ๐ feat: Internationalization and localization
|
|
76
|
+
- ๐ feat: Add or update business logic
|
|
77
|
+
- ๐ฑ feat: Work on responsive design
|
|
78
|
+
- ๐ธ feat: Improve user experience / usability
|
|
79
|
+
- ๐ฉน fix: Simple fix for a non-critical issue
|
|
80
|
+
- ๐ฅ
fix: Catch errors
|
|
81
|
+
- ๐ฝ๏ธ fix: Update code due to external API changes
|
|
82
|
+
- ๐ฅ fix: Remove code or files
|
|
83
|
+
- ๐จ style: Improve structure/format of the code
|
|
84
|
+
- ๐๏ธ fix: Critical hotfix
|
|
85
|
+
- ๐ chore: Begin a project
|
|
86
|
+
- ๐ chore: Release/Version tags
|
|
87
|
+
- ๐ง wip: Work in progress
|
|
88
|
+
- ๐ fix: Fix CI build
|
|
89
|
+
- ๐ chore: Pin dependencies to specific versions
|
|
90
|
+
- ๐ท ci: Add or update CI build system
|
|
91
|
+
- ๐ feat: Add or update analytics or tracking code
|
|
92
|
+
- โ๏ธ fix: Fix typos
|
|
93
|
+
- โช๏ธ revert: Revert changes
|
|
94
|
+
- ๐ chore: Add or update license
|
|
95
|
+
- ๐ฅ feat: Introduce breaking changes
|
|
96
|
+
- ๐ฑ assets: Add or update assets
|
|
97
|
+
- โฟ๏ธ feat: Improve accessibility
|
|
98
|
+
- ๐ก docs: Add or update comments in source code
|
|
99
|
+
- ๐๏ธ db: Perform database related changes
|
|
100
|
+
- ๐ feat: Add or update logs
|
|
101
|
+
- ๐ fix: Remove logs
|
|
102
|
+
- ๐คก test: Mock things
|
|
103
|
+
- ๐ฅ feat: Add or update an easter egg
|
|
104
|
+
- ๐ chore: Add or update .gitignore file
|
|
105
|
+
- ๐ธ test: Add or update snapshots
|
|
106
|
+
- โ๏ธ experiment: Perform experiments
|
|
107
|
+
- ๐ฉ feat: Add, update, or remove feature flags
|
|
108
|
+
- ๐ซ ui: Add or update animations and transitions
|
|
109
|
+
- โฐ๏ธ refactor: Remove dead code
|
|
110
|
+
- ๐ฆบ feat: Add or update code related to validation
|
|
111
|
+
- โ๏ธ feat: Improve offline support
|
|
112
|
+
|
|
113
|
+
## Guidelines for Splitting Commits
|
|
114
|
+
|
|
115
|
+
When analyzing the diff, consider splitting commits based on these criteria:
|
|
116
|
+
|
|
117
|
+
1. **Different concerns**: Changes to unrelated parts of the codebase
|
|
118
|
+
2. **Different types of changes**: Mixing features, fixes, refactoring, etc.
|
|
119
|
+
3. **File patterns**: Changes to different types of files (e.g., source code vs documentation)
|
|
120
|
+
4. **Logical grouping**: Changes that would be easier to understand or review separately
|
|
121
|
+
5. **Size**: Very large changes that would be clearer if broken down
|
|
122
|
+
|
|
123
|
+
## Examples
|
|
124
|
+
|
|
125
|
+
Good commit messages:
|
|
126
|
+
- โจ feat: add user authentication system
|
|
127
|
+
- ๐ fix: resolve memory leak in rendering process
|
|
128
|
+
- ๐ docs: update API documentation with new endpoints
|
|
129
|
+
- โป๏ธ refactor: simplify error handling logic in parser
|
|
130
|
+
- ๐จ fix: resolve linter warnings in component files
|
|
131
|
+
- ๐งโ๐ป chore: improve developer tooling setup process
|
|
132
|
+
- ๐ feat: implement business logic for transaction validation
|
|
133
|
+
- ๐ฉน fix: address minor styling inconsistency in header
|
|
134
|
+
- ๐๏ธ fix: patch critical security vulnerability in auth flow
|
|
135
|
+
- ๐จ style: reorganize component structure for better readability
|
|
136
|
+
- ๐ฅ fix: remove deprecated legacy code
|
|
137
|
+
- ๐ฆบ feat: add input validation for user registration form
|
|
138
|
+
- ๐ fix: resolve failing CI pipeline tests
|
|
139
|
+
- ๐ feat: implement analytics tracking for user engagement
|
|
140
|
+
- ๐๏ธ fix: strengthen authentication password requirements
|
|
141
|
+
- โฟ๏ธ feat: improve form accessibility for screen readers
|
|
142
|
+
|
|
143
|
+
Example of splitting commits:
|
|
144
|
+
- First commit: โจ feat: add new solc version type definitions
|
|
145
|
+
- Second commit: ๐ docs: update documentation for new solc versions
|
|
146
|
+
- Third commit: ๐ง chore: update package.json dependencies
|
|
147
|
+
- Fourth commit: ๐ท๏ธ feat: add type definitions for new API endpoints
|
|
148
|
+
- Fifth commit: ๐งต feat: improve concurrency handling in worker threads
|
|
149
|
+
- Sixth commit: ๐จ fix: resolve linting issues in new code
|
|
150
|
+
- Seventh commit: โ
test: add unit tests for new solc version features
|
|
151
|
+
- Eighth commit: ๐๏ธ fix: update dependencies with security vulnerabilities
|
|
152
|
+
|
|
153
|
+
## Command Options
|
|
154
|
+
|
|
155
|
+
- --no-verify: Skip running the pre-commit checks (lint, build, generate:docs)
|
|
156
|
+
|
|
157
|
+
## Important Notes
|
|
158
|
+
|
|
159
|
+
- By default, pre-commit checks (pnpm lint, pnpm build, pnpm generate:docs) will run to ensure code quality
|
|
160
|
+
- If these checks fail, you'll be asked if you want to proceed with the commit anyway or fix the issues first
|
|
161
|
+
- If specific files are already staged, the command will only commit those files
|
|
162
|
+
- If no files are staged, it will automatically stage all modified and new files
|
|
163
|
+
- The commit message will be constructed based on the changes detected
|
|
164
|
+
- Before committing, the command will review the diff to identify if multiple commits would be more appropriate
|
|
165
|
+
- If suggesting multiple commits, it will help you stage and commit the changes separately
|
|
166
|
+
- Always reviews the commit diff to ensure the message matches the changes
|