@polymorphism-tech/morph-spec 7.9.3 → 8.0.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.
Files changed (213) hide show
  1. package/CLAUDE.md +2 -2
  2. package/README.md +31 -2
  3. package/bin/morph-spec.js +50 -2
  4. package/bin/validate.js +379 -379
  5. package/claude-plugin.json +1 -1
  6. package/docs/CHEATSHEET.md +38 -1
  7. package/docs/QUICKSTART.md +60 -1
  8. package/framework/CLAUDE.md +13 -2
  9. package/framework/MORPH.md +38 -2
  10. package/framework/agents.json +22 -3
  11. package/framework/commands/commit.md +166 -166
  12. package/framework/commands/morph-hotfix.md +39 -0
  13. package/framework/commands/morph-infra.md +215 -215
  14. package/framework/commands/morph-preflight.md +205 -205
  15. package/framework/commands/morph-troubleshoot.md +124 -124
  16. package/framework/hooks/README.md +25 -10
  17. package/framework/hooks/claude-code/core/gate-guard.js +4 -2
  18. package/framework/hooks/claude-code/core/loop-detect.js +2 -1
  19. package/framework/hooks/claude-code/core/post-edit-typecheck.js +14 -5
  20. package/framework/hooks/claude-code/core/tasks-json-guard.js +4 -2
  21. package/framework/hooks/claude-code/core/validate-completion.js +1 -1
  22. package/framework/hooks/claude-code/core/worktree-context.js +160 -0
  23. package/framework/hooks/claude-code/statusline.py +679 -679
  24. package/framework/hooks/claude-code/statusline.sh +11 -11
  25. package/framework/hooks/git/commit-msg/conventional-commits.sh +33 -33
  26. package/framework/hooks/git/pre-commit/agents.sh +25 -25
  27. package/framework/hooks/git/pre-commit/orchestrator.sh +64 -64
  28. package/framework/hooks/git/pre-commit/specs.sh +50 -50
  29. package/framework/hooks/git/pre-push/run-tests.sh +44 -44
  30. package/framework/hooks/shared/activity-logger.js +160 -160
  31. package/framework/hooks/shared/build-check.js +2 -2
  32. package/framework/hooks/shared/hook-response.js +17 -5
  33. package/framework/hooks/shared/payload-utils.js +42 -0
  34. package/framework/hooks/shared/state-reader.js +22 -2
  35. package/framework/hooks/shared/stdin-reader.js +26 -26
  36. package/framework/rubrics/backend.json +41 -41
  37. package/framework/rules/ai-agents-standards.md +45 -45
  38. package/framework/rules/dotnet-templates.md +86 -86
  39. package/framework/rules/frontend-standards.md +13 -13
  40. package/framework/rules/infrastructure-standards.md +27 -27
  41. package/framework/rules/neon-standards.md +25 -25
  42. package/framework/rules/nextjs-standards.md +20 -20
  43. package/framework/rules/nextjs-templates.md +40 -40
  44. package/framework/schemas/feature.schema.json +95 -1
  45. package/framework/skills/core/create-umbraco-lp/SKILL.md +1 -1
  46. package/framework/skills/core/migrate-lp-to-umbraco/SKILL.md +1 -1
  47. package/framework/skills/core/morph-apply/SKILL.md +39 -8
  48. package/framework/skills/core/morph-brainstorming/SKILL.md +9 -1
  49. package/framework/skills/core/morph-eval/SKILL.md +6 -1
  50. package/framework/skills/core/morph-hotfix/SKILL.md +136 -0
  51. package/framework/skills/core/morph-implement/SKILL.md +8 -4
  52. package/framework/skills/core/morph-plan/SKILL.md +5 -1
  53. package/framework/skills/core/morph-proposal/SKILL.md +24 -1
  54. package/framework/skills/core/morph-review/SKILL.md +3 -2
  55. package/framework/skills/core/morph-stack-scan/SKILL.md +1 -1
  56. package/framework/skills/core/morph-standards/SKILL.md +1 -1
  57. package/framework/standards/STANDARDS.json +7 -2
  58. package/framework/standards/ai-agents/agent-session.md +160 -160
  59. package/framework/standards/ai-agents/batching.md +193 -193
  60. package/framework/standards/ai-agents/context-providers.md +188 -188
  61. package/framework/standards/ai-agents/mcp-server.md +250 -250
  62. package/framework/standards/ai-agents/mcp-tools.md +197 -197
  63. package/framework/standards/ai-agents/middleware-patterns.md +207 -207
  64. package/framework/standards/ai-agents/modalities-image-gen.md +173 -173
  65. package/framework/standards/ai-agents/modalities-speech-to-text.md +171 -171
  66. package/framework/standards/ai-agents/modalities-text-to-speech.md +181 -181
  67. package/framework/standards/ai-agents/modalities-vision.md +201 -201
  68. package/framework/standards/ai-agents/multi-agent-patterns.md +155 -155
  69. package/framework/standards/ai-agents/production.md +275 -275
  70. package/framework/standards/ai-agents/prompts-in-db.md +214 -214
  71. package/framework/standards/ai-agents/providers/model-registry.md +158 -158
  72. package/framework/standards/ai-agents/service-tier-flex.md +135 -135
  73. package/framework/standards/ai-agents/structured-output.md +249 -249
  74. package/framework/standards/ai-agents/sweet-spot.md +109 -109
  75. package/framework/standards/backend/integrations/neon-auth/neon-auth.md +45 -3
  76. package/framework/templates/.idea/morph-templates.xml +92 -0
  77. package/framework/templates/.vscode/morph-templates.code-snippets +186 -0
  78. package/framework/templates/IDE-SNIPPETS.md +262 -262
  79. package/framework/templates/REGISTRY.json +0 -62
  80. package/framework/templates/code/dotnet/abstractions/api-endpoint.cs +7 -7
  81. package/framework/templates/code/dotnet/ai-agents/AgentBootstrap.cs.template +39 -39
  82. package/framework/templates/code/dotnet/ai-agents/EmbeddingService.cs.template +68 -68
  83. package/framework/templates/code/dotnet/ai-agents/ModelRegistry.cs.template +117 -117
  84. package/framework/templates/code/dotnet/ai-agents/PromptRepository.cs.template +95 -95
  85. package/framework/templates/code/dotnet/ai-agents/ResilientToolMiddleware.cs.template +61 -61
  86. package/framework/templates/code/dotnet/ai-agents/VectorSearchTool.cs.template +107 -107
  87. package/framework/templates/code/dotnet/ai-agents/model-registry.json.template +58 -58
  88. package/framework/templates/code/dotnet/contracts/contracts-vsa.cs +281 -281
  89. package/framework/templates/code/dotnet/database/migration.cs +83 -83
  90. package/framework/templates/code/dotnet/feature/endpoint.cs.hbs +21 -21
  91. package/framework/templates/code/dotnet/feature/request.cs.hbs +4 -4
  92. package/framework/templates/code/dotnet/feature/response.cs.hbs +4 -4
  93. package/framework/templates/code/dotnet/feature/validator.cs.hbs +15 -15
  94. package/framework/templates/code/sql/ai-agents/agent-prompts-migration.sql.template +58 -58
  95. package/framework/templates/code/sql/ai-agents/pgvector-embeddings-migration.sql.template +91 -91
  96. package/framework/templates/code/typescript/contracts.ts +167 -167
  97. package/framework/templates/docs/clarifications.md +253 -253
  98. package/framework/templates/docs/schema-analysis.md +119 -119
  99. package/framework/templates/docs/ui-components.md +52 -52
  100. package/framework/templates/docs/ui-design-system.md +76 -76
  101. package/framework/templates/docs/ui-flows.md +167 -167
  102. package/framework/templates/docs/ui-mockups.md +98 -98
  103. package/framework/templates/feature/decisions.md +122 -122
  104. package/framework/templates/frontend/nextjs/Dockerfile.nextjs.hbs +43 -43
  105. package/framework/templates/frontend/nextjs/client-component.tsx.hbs +26 -26
  106. package/framework/templates/frontend/nextjs/env.mjs.hbs +32 -32
  107. package/framework/templates/frontend/nextjs/feature-form.tsx.hbs +56 -56
  108. package/framework/templates/frontend/nextjs/page.tsx.hbs +22 -22
  109. package/framework/templates/frontend/nextjs/tsconfig.json.hbs +26 -26
  110. package/framework/templates/frontend/nextjs/use-feature.ts.hbs +54 -54
  111. package/framework/templates/infrastructure/docker/Dockerfile.template +58 -58
  112. package/framework/templates/infrastructure/docker/docker-compose.template.yml +50 -50
  113. package/framework/templates/infrastructure/docker/dockerfile-api.dockerfile +38 -38
  114. package/framework/templates/infrastructure/docker/dockerfile-web.dockerfile +48 -48
  115. package/framework/templates/infrastructure/github/README.md +56 -56
  116. package/framework/templates/infrastructure/github/actions/docker-build-push/action.yml.hbs +45 -45
  117. package/framework/templates/infrastructure/github/actions/health-check/action.yml.hbs +27 -27
  118. package/framework/templates/infrastructure/github/workflows/docker-build-push.yml.hbs +59 -59
  119. package/framework/templates/infrastructure/github/workflows/dotnet-build.yml.hbs +39 -39
  120. package/framework/templates/integrations/asaas-client.cs +387 -387
  121. package/framework/templates/integrations/asaas-webhook.cs +351 -351
  122. package/framework/templates/meta-prompts/fusion/fusion-agent.md +76 -76
  123. package/framework/templates/meta-prompts/fusion/fusion-aggregator.md +100 -100
  124. package/framework/templates/meta-prompts/validators/pre-commit-validator.md +95 -95
  125. package/framework/templates/project/validate.js +120 -120
  126. package/framework/templates/state.template.json +17 -17
  127. package/framework/templates/ui/design-system.css +226 -226
  128. package/package.json +1 -1
  129. package/src/commands/dashboard/dashboard.js +53 -53
  130. package/src/commands/index.js +13 -13
  131. package/src/commands/mcp/mcp-setup.js +519 -519
  132. package/src/commands/project/checkpoint.js +209 -209
  133. package/src/commands/project/doctor.js +4 -2
  134. package/src/commands/project/init.js +46 -2
  135. package/src/commands/project/update.js +5 -3
  136. package/src/commands/project/worktree.js +1005 -46
  137. package/src/commands/state/advance.js +17 -2
  138. package/src/commands/state/approve.js +18 -1
  139. package/src/commands/state/create.js +158 -14
  140. package/src/commands/state/retype.js +126 -0
  141. package/src/commands/state/score.js +4 -0
  142. package/src/commands/tasks/dag.js +32 -0
  143. package/src/commands/validation/index.js +1 -0
  144. package/src/commands/validation/validate-feature.js +33 -5
  145. package/src/commands/validation/verify.js +190 -0
  146. package/src/core/state/phase-state-machine.js +197 -197
  147. package/src/core/state/state-manager.js +35 -10
  148. package/src/core/templates/template-renderer.js +477 -477
  149. package/src/core/work-types.js +79 -0
  150. package/src/dashboard/app/components/DetailPanel.jsx +11 -11
  151. package/src/dashboard/app/components/FlowGraph.jsx +17 -17
  152. package/src/dashboard/app/components/SearchFilter.jsx +22 -22
  153. package/src/dashboard/app/hooks/useDetailPanel.js +15 -15
  154. package/src/dashboard/app/main.jsx +13 -13
  155. package/src/dashboard/app/pages/AgentMap.jsx +370 -370
  156. package/src/dashboard/app/pages/HookInspector.jsx +418 -418
  157. package/src/dashboard/app/pages/LiveState.jsx +11 -1
  158. package/src/dashboard/app/pages/PhasePipeline.jsx +408 -408
  159. package/src/dashboard/app/pages/RulesMap.jsx +273 -273
  160. package/src/dashboard/app/pages/SkillsLibrary.jsx +366 -366
  161. package/src/dashboard/app/pages/Standards.jsx +332 -332
  162. package/src/dashboard/app/styles/index.css +47 -47
  163. package/src/dashboard/index.html +12 -12
  164. package/src/dashboard/package.json +24 -24
  165. package/src/dashboard/scanner/hooks-scanner.js +41 -41
  166. package/src/dashboard/scanner/phases-scanner.js +15 -15
  167. package/src/dashboard/scanner/rubrics-scanner.js +12 -12
  168. package/src/dashboard/scanner/rules-scanner.js +37 -37
  169. package/src/dashboard/scanner/skills-scanner.js +43 -43
  170. package/src/dashboard/scanner/squads-scanner.js +13 -13
  171. package/src/dashboard/scanner/standards-scanner.js +26 -26
  172. package/src/dashboard/scanner/state-scanner.js +42 -0
  173. package/src/dashboard/vite-plugin-morph-data.js +17 -17
  174. package/src/dashboard/vite.config.js +24 -24
  175. package/src/lib/agents/metrics-aggregator.js +56 -56
  176. package/src/lib/agents/metrics-calculator.js +125 -125
  177. package/src/lib/agents/output-collector.js +73 -73
  178. package/src/lib/detectors/claude-config-detector.js +152 -152
  179. package/src/lib/detectors/design-system-detector.js +231 -231
  180. package/src/lib/detectors/index.js +217 -217
  181. package/src/lib/generators/architecture-scanner.js +639 -639
  182. package/src/lib/generators/design-system-generator.js +508 -508
  183. package/src/lib/generators/index.js +13 -13
  184. package/src/lib/generators/settings-generator.js +209 -209
  185. package/src/lib/hooks/hook-executor.js +167 -167
  186. package/src/lib/installers/mcp-installer.js +719 -719
  187. package/src/lib/installers/memory-installer.js +1 -1
  188. package/src/lib/risk-detector.js +16 -0
  189. package/src/lib/tasks/dispatch-planner.js +122 -4
  190. package/src/lib/tasks/mermaid-renderer.js +132 -0
  191. package/src/lib/tasks/task-classifier.js +30 -30
  192. package/src/lib/tasks/task-parser.js +209 -209
  193. package/src/lib/tasks/test-runner.js +27 -6
  194. package/src/lib/validators/architecture/architecture-validator.js +259 -259
  195. package/src/lib/validators/checkpoint-persistence.js +39 -39
  196. package/src/lib/validators/contracts/contract-compliance-validator.js +274 -274
  197. package/src/lib/validators/css/css-validator.js +340 -340
  198. package/src/lib/validators/packages/package-validator.js +347 -347
  199. package/src/lib/validators/shared/emit-validator-dispatch.js +14 -14
  200. package/src/lib/validators/shared/issue-counter.js +14 -14
  201. package/src/lib/validators/validation-runner.js +349 -349
  202. package/src/lib/validators/verify-runner.js +322 -0
  203. package/src/lib/work-type-detector.js +143 -0
  204. package/src/scripts/setup-infra.js +32 -5
  205. package/src/utils/agent-id-mapper.js +11 -11
  206. package/src/utils/agents-installer.js +10 -6
  207. package/src/utils/claude-settings-manager.js +300 -300
  208. package/src/utils/file-copier.js +43 -0
  209. package/src/utils/hooks-installer.js +41 -11
  210. package/src/utils/skills-installer.js +174 -174
  211. package/framework/templates/meta-prompts/parallel-workers/parallel-coordinator.md +0 -113
  212. package/framework/templates/meta-prompts/parallel-workers/parallel-worker.md +0 -80
  213. package/src/lib/tasks/wave-resolver.js +0 -353
@@ -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
@@ -0,0 +1,39 @@
1
+ ---
2
+ description: ADW cirúrgico de hotfix. Roda scout (root cause + blast radius) → hotfix brief → fix cirúrgico → test loop focado → Gate 3 sempre humano → ship.
3
+ argument-hint: <feature-name>
4
+ allowed-tools: Read, Write, Edit, Bash, Glob, Grep, Agent, AskUserQuestion, Skill
5
+ ---
6
+
7
+ # /morph-hotfix — ADW Cirúrgico
8
+
9
+ Resolve uma queda ou bug crítico de produção com prioridade máxima em velocidade, sem abrir mão da aprovação humana antes do ship.
10
+
11
+ **Implementação:** este slash command é um atalho. O agente deve invocar `Skill(morph-hotfix)` com o nome da feature como argumento. A skill encadeia `morph-spec create --type hotfix` → scout → hotfix brief → plano mínimo → fix cirúrgico → test loop no blast radius → Gate 3 (sempre humano, nunca `--mode auto`) → pós-gate.
12
+
13
+ ## Argumentos
14
+
15
+ `{feature-name}` — nome em kebab-case da feature.
16
+
17
+ ## Fluxo
18
+
19
+ 1. **Nascimento:** `morph-spec create {feature-name} --type hotfix` — carimba os gates `proposal`/`plan` por política e cria `0-proposal/`, `2-plan/`, `3-implement/` num passo só.
20
+ 2. **Scout obrigatório:** despacha `subagent_type: "morph-scout"` (fallback `general-purpose` + persona colada) para localizar root cause e blast radius antes de qualquer fix.
21
+ 3. **Hotfix brief:** escreve `0-proposal/proposal.md` curto (sintoma/root cause/blast radius/plano do fix) e `2-plan/tasks.json` mínimo (T1 fix, T2 verify/regressão).
22
+ 4. **Fix cirúrgico:** implementa a mudança mínima que resolve o sintoma — sem refatoração, sem hardening fora de escopo.
23
+ 5. **Test loop:** `morph-spec verify {feature-name} {task} --json` focado no blast radius até verde; evidência real capturada no `recap.md`.
24
+ 6. **Gate 3 sempre humano:** `morph-spec gate-decision {feature-name} review --pause true ...` → `4-review/review-report.md` → `AskUserQuestion` sempre. **Nunca** `morph-spec approve {feature-name} review --mode auto` — o CLI recusa essa combinação num hotfix.
25
+ 7. **Pós-gate:** `morph-spec verify {feature-name}` (suíte completa da feature) e sinaliza commit/archive — não arquiva automaticamente.
26
+
27
+ ## Anti-padrões
28
+
29
+ - Não pular o scout mesmo sob pressão de tempo.
30
+ - Não auto-aprovar o Gate 3 — é sempre humano num hotfix.
31
+ - Não "fazer do jeito certo" às custas da velocidade — melhorias de forma vão para o roadmap-fora-hotfix.
32
+
33
+ ## Referências
34
+
35
+ - `framework/skills/core/morph-hotfix/SKILL.md` — fluxo completo passo a passo
36
+ - `framework/MORPH.md` §2.1 — roteamento por tipo de trabalho
37
+ - `framework/MORPH.md` §5 — Gates de aprovação, gate humano forçado no hotfix
38
+
39
+ **Feature:** $ARGUMENTS