@polymorphism-tech/morph-spec 4.10.4 → 4.10.6
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 +7 -7
- package/bin/morph-spec.js +4 -2
- package/bin/task-manager.js +21 -5
- package/claude-plugin.json +1 -1
- package/docs/CHEATSHEET.md +5 -5
- package/docs/QUICKSTART.md +5 -5
- package/framework/CLAUDE.md +4 -4
- package/framework/agents/backend/hangfire-orchestrator.md +1 -1
- package/framework/agents/backend/ms-agent-expert.md +2 -1
- package/framework/agents/infrastructure/azure-deploy-specialist.md +1 -1
- package/framework/agents/integrations/asaas-financial.md +1 -1
- package/framework/agents/integrations/clerk-auth.md +1 -2
- package/framework/agents/integrations/hangfire-integration.md +1 -1
- package/framework/agents/integrations/resend-email.md +1 -1
- package/framework/agents/quality/code-analyzer.md +1 -1
- package/framework/commands/morph-apply.md +4 -4
- package/framework/commands/morph-infra.md +10 -10
- package/framework/commands/morph-preflight.md +3 -3
- package/framework/commands/morph-proposal.md +2 -2
- package/framework/commands/morph-status.md +3 -3
- package/framework/hooks/claude-code/post-tool-use/context-refresh.js +1 -1
- package/framework/hooks/claude-code/pre-compact/save-morph-context.js +1 -1
- package/framework/phases.json +17 -17
- package/framework/rules/morph-workflow.md +3 -3
- package/framework/skills/README.md +1 -1
- package/framework/skills/level-0-meta/morph-brainstorming/SKILL.md +1 -1
- package/framework/skills/level-0-meta/morph-checklist/SKILL.md +2 -2
- package/framework/skills/level-0-meta/morph-code-review/SKILL.md +1 -1
- package/framework/skills/level-0-meta/morph-code-review-nextjs/SKILL.md +1 -1
- package/framework/skills/level-0-meta/morph-frontend-review/SKILL.md +3 -3
- package/framework/skills/level-0-meta/morph-init/SKILL.md +8 -8
- package/framework/skills/level-0-meta/morph-post-implementation/SKILL.md +7 -7
- package/framework/skills/level-0-meta/morph-replicate/SKILL.md +4 -4
- package/framework/skills/level-0-meta/morph-replicate/references/blazor-html-mapping.md +1 -1
- package/framework/skills/level-0-meta/morph-simulation-checklist/SKILL.md +1 -1
- package/framework/skills/level-0-meta/morph-tool-usage-guide/SKILL.md +1 -1
- package/framework/skills/level-0-meta/morph-verification-before-completion/SKILL.md +1 -1
- package/framework/skills/level-1-workflows/morph-phase-clarify/SKILL.md +5 -5
- package/framework/skills/level-1-workflows/morph-phase-codebase-analysis/SKILL.md +2 -2
- package/framework/skills/level-1-workflows/morph-phase-design/SKILL.md +5 -5
- package/framework/skills/level-1-workflows/morph-phase-implement/SKILL.md +6 -7
- package/framework/skills/level-1-workflows/morph-phase-plan/SKILL.md +6 -7
- package/framework/skills/level-1-workflows/morph-phase-setup/SKILL.md +6 -6
- package/framework/skills/level-1-workflows/morph-phase-tasks/SKILL.md +6 -7
- package/framework/skills/level-1-workflows/morph-phase-uiux/SKILL.md +5 -5
- package/framework/skills/level-1-workflows/morph-scope-escalation/SKILL.md +3 -3
- package/framework/standards/ai-agents/team-orchestration.md +1 -1
- package/framework/workflows/docs/STORY-DRIVEN-DEVELOPMENT.md +1 -1
- package/package.json +1 -1
- package/src/commands/project/doctor.js +3 -3
- package/src/commands/project/init.js +11 -3
- package/src/commands/project/update.js +11 -8
- package/src/commands/state/advance-phase.js +24 -11
- package/src/commands/state/approve.js +1 -1
- package/src/commands/state/state.js +26 -5
- package/src/lib/phase-chain/phase-validator.js +6 -1
- package/src/lib/tasks/task-parser.js +4 -0
- package/src/scripts/setup-infra.js +2 -2
- package/src/utils/agents-installer.js +20 -11
- package/src/utils/banner.js +1 -1
- package/src/utils/hooks-installer.js +739 -739
package/README.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
> Spec-driven development framework for multi-stack projects. Turns feature requests into implementation-ready code through structured, AI-orchestrated phases.
|
|
4
4
|
|
|
5
5
|
**Package:** `@polymorphism-tech/morph-spec`
|
|
6
|
-
**Version:** 4.10.
|
|
6
|
+
**Version:** 4.10.6
|
|
7
7
|
**Requires:** Node.js 18+, Claude Code
|
|
8
8
|
|
|
9
9
|
---
|
|
@@ -125,10 +125,10 @@ These commands are available inside Claude Code after init.
|
|
|
125
125
|
|
|
126
126
|
| Command | Description |
|
|
127
127
|
| --------------------------- | --------------------------------------------------------- |
|
|
128
|
-
| `/morph
|
|
129
|
-
| `/morph
|
|
130
|
-
| `/morph
|
|
131
|
-
| `/morph
|
|
128
|
+
| `/morph-proposal {feature}` | Full spec pipeline (phases 0-4, pauses at approval gates) |
|
|
129
|
+
| `/morph-apply {feature}` | Implement approved feature (phase 5) |
|
|
130
|
+
| `/morph-status` | Feature status dashboard |
|
|
131
|
+
| `/morph-preflight` | Pre-implementation validation |
|
|
132
132
|
|
|
133
133
|
|
|
134
134
|
---
|
|
@@ -358,7 +358,7 @@ npm install -g @polymorphism-tech/morph-spec
|
|
|
358
358
|
|
|
359
359
|
### Hook not triggering on SessionStart
|
|
360
360
|
|
|
361
|
-
Ensure `.claude/settings.local.json` is not gitignored in your project. The file must be present for Claude Code to load hooks. If it is missing, re-run `morph-spec init --force`.
|
|
361
|
+
Ensure `.claude/settings.local.json` is not gitignored in your project. The file must be present for Claude Code to load hooks. If it is missing, re-run `morph-spec setup-infra` or `morph-spec init --force`.
|
|
362
362
|
|
|
363
363
|
---
|
|
364
364
|
|
|
@@ -376,4 +376,4 @@ Code generated by morph-spec (contracts, templates, implementation output) belon
|
|
|
376
376
|
|
|
377
377
|
---
|
|
378
378
|
|
|
379
|
-
*morph-spec v4.10.
|
|
379
|
+
*morph-spec v4.10.6 by [Polymorphism Tech](https://polymorphism.tech)*
|
package/bin/morph-spec.js
CHANGED
|
@@ -77,13 +77,13 @@ program
|
|
|
77
77
|
|
|
78
78
|
program
|
|
79
79
|
.command('setup-infra')
|
|
80
|
-
.description('Install MORPH-SPEC infrastructure (headless, no prompts). Called by /morph
|
|
80
|
+
.description('Install MORPH-SPEC infrastructure (headless, no prompts). Called by /morph-init skill.')
|
|
81
81
|
.option('-p, --path <path>', 'Target path (default: current directory)')
|
|
82
82
|
.action(setupInfraCommand);
|
|
83
83
|
|
|
84
84
|
program
|
|
85
85
|
.command('install-plugin <name>')
|
|
86
|
-
.description('Install a Claude Code plugin (superpowers, context7). Called by /morph
|
|
86
|
+
.description('Install a Claude Code plugin (superpowers, context7). Called by /morph-init skill.')
|
|
87
87
|
.action(installPluginCommand);
|
|
88
88
|
|
|
89
89
|
program
|
|
@@ -197,6 +197,8 @@ phaseCommand
|
|
|
197
197
|
.command('advance <feature>')
|
|
198
198
|
.description('Validate current phase and advance to next')
|
|
199
199
|
.option('--skip-optional', 'Skip optional phases (uiux, sync)')
|
|
200
|
+
.option('--skip-approval', 'Skip approval gate checks')
|
|
201
|
+
.option('--force', 'Force phase transition even if state machine rejects it')
|
|
200
202
|
.action((feature, options) => advancePhaseCommand(feature, options));
|
|
201
203
|
|
|
202
204
|
phaseCommand
|
package/bin/task-manager.js
CHANGED
|
@@ -121,6 +121,11 @@ class TaskManager {
|
|
|
121
121
|
throw new Error(`tasks.md found but no tasks could be parsed for '${featureName}'.\n Ensure tasks use the format: ### T001 — Title or ### T001: Title`);
|
|
122
122
|
}
|
|
123
123
|
|
|
124
|
+
// Persist initial taskList so counters are visible in `state get` even if
|
|
125
|
+
// validation fails later and the completion save never runs.
|
|
126
|
+
syncCounters(feature);
|
|
127
|
+
saveState(state);
|
|
128
|
+
|
|
124
129
|
const results = [];
|
|
125
130
|
const tasksToComplete = [];
|
|
126
131
|
|
|
@@ -304,14 +309,20 @@ class TaskManager {
|
|
|
304
309
|
}
|
|
305
310
|
|
|
306
311
|
// Suggest next task
|
|
312
|
+
const activeTasks = taskList.filter(t => t.status !== 'expanded');
|
|
313
|
+
const allCompleted = activeTasks.length > 0 && activeTasks.every(t => t.status === 'completed');
|
|
307
314
|
const nextTask = this.getNextTask(taskList);
|
|
308
|
-
|
|
315
|
+
|
|
316
|
+
if (allCompleted) {
|
|
317
|
+
console.log(chalk.green('\n🎉 All tasks completed!'));
|
|
318
|
+
} else if (nextTask) {
|
|
309
319
|
console.log(chalk.cyan(`\n⏭️ Next: ${nextTask.id} - ${nextTask.title}`));
|
|
310
320
|
if (nextTask.dependencies && nextTask.dependencies.length > 0) {
|
|
311
321
|
console.log(chalk.gray(` Dependencies: ${nextTask.dependencies.join(', ')}`));
|
|
312
322
|
}
|
|
313
323
|
} else {
|
|
314
|
-
|
|
324
|
+
const remaining = activeTasks.filter(t => t.status !== 'completed');
|
|
325
|
+
console.log(chalk.yellow(`\n⏸️ No tasks available — ${remaining.length} task(s) have unmet dependencies`));
|
|
315
326
|
}
|
|
316
327
|
|
|
317
328
|
return results;
|
|
@@ -490,7 +501,7 @@ class TaskManager {
|
|
|
490
501
|
const result = await runValidation('.', featureName, { verbose: false });
|
|
491
502
|
validationNote = result.passed
|
|
492
503
|
? ' | Validation: PASSED'
|
|
493
|
-
: ` | Validation: ${result.errors
|
|
504
|
+
: ` | Validation: ${result.errors} errors, ${result.warnings} warnings`;
|
|
494
505
|
} catch {
|
|
495
506
|
// No validation available
|
|
496
507
|
}
|
|
@@ -743,9 +754,13 @@ class TaskManager {
|
|
|
743
754
|
}
|
|
744
755
|
|
|
745
756
|
const taskList = await ensureTaskList(feature, featureName);
|
|
757
|
+
const activeTasks = taskList.filter(t => t.status !== 'expanded');
|
|
758
|
+
const allCompleted = activeTasks.length > 0 && activeTasks.every(t => t.status === 'completed');
|
|
746
759
|
const nextTask = this.getNextTask(taskList);
|
|
747
760
|
|
|
748
|
-
if (
|
|
761
|
+
if (allCompleted) {
|
|
762
|
+
console.log(chalk.green('🎉 All tasks completed!'));
|
|
763
|
+
} else if (nextTask) {
|
|
749
764
|
console.log(chalk.cyan(`\n⏭️ Next task: ${nextTask.id} - ${nextTask.title}`));
|
|
750
765
|
if (nextTask.dependencies && nextTask.dependencies.length > 0) {
|
|
751
766
|
console.log(chalk.gray(` Dependencies: ${nextTask.dependencies.join(', ')}`));
|
|
@@ -755,7 +770,8 @@ class TaskManager {
|
|
|
755
770
|
nextTask.files.forEach(f => console.log(chalk.gray(` - ${f}`)));
|
|
756
771
|
}
|
|
757
772
|
} else {
|
|
758
|
-
|
|
773
|
+
const remaining = activeTasks.filter(t => t.status !== 'completed');
|
|
774
|
+
console.log(chalk.yellow(`\n⏸️ No tasks available — ${remaining.length} task(s) have unmet dependencies`));
|
|
759
775
|
}
|
|
760
776
|
}
|
|
761
777
|
}
|
package/claude-plugin.json
CHANGED
package/docs/CHEATSHEET.md
CHANGED
|
@@ -39,10 +39,10 @@ Phases in brackets are optional.
|
|
|
39
39
|
|
|
40
40
|
| Command | Description |
|
|
41
41
|
|---------|-------------|
|
|
42
|
-
| `/morph
|
|
43
|
-
| `/morph
|
|
44
|
-
| `/morph
|
|
45
|
-
| `/morph
|
|
42
|
+
| `/morph-proposal {feature}` | Full spec pipeline — phases 0–4 with approval gates |
|
|
43
|
+
| `/morph-apply {feature}` | Implement approved feature — phase 5 |
|
|
44
|
+
| `/morph-status` | Project-wide feature status dashboard |
|
|
45
|
+
| `/morph-preflight` | Pre-implementation validation (7 checks) |
|
|
46
46
|
|
|
47
47
|
---
|
|
48
48
|
|
|
@@ -198,4 +198,4 @@ These files are never edited directly. Use CLI commands or `morph-spec update` i
|
|
|
198
198
|
|
|
199
199
|
---
|
|
200
200
|
|
|
201
|
-
*morph-spec v4.10.
|
|
201
|
+
*morph-spec v4.10.6 by Polymorphism Tech*
|
package/docs/QUICKSTART.md
CHANGED
|
@@ -45,7 +45,7 @@ morph-spec doctor
|
|
|
45
45
|
Open your project in Claude Code and run:
|
|
46
46
|
|
|
47
47
|
```
|
|
48
|
-
/morph
|
|
48
|
+
/morph-proposal my-feature
|
|
49
49
|
```
|
|
50
50
|
|
|
51
51
|
Replace `my-feature` with a short kebab-case name for your feature (e.g., `user-notifications`, `payment-flow`).
|
|
@@ -90,7 +90,7 @@ Claude breaks the spec into atomic tasks (`T001`, `T002`, …) saved to `3-tasks
|
|
|
90
90
|
At this point, planning is complete:
|
|
91
91
|
|
|
92
92
|
```
|
|
93
|
-
✅ Planning complete — run /morph
|
|
93
|
+
✅ Planning complete — run /morph-apply my-feature to implement
|
|
94
94
|
```
|
|
95
95
|
|
|
96
96
|
---
|
|
@@ -98,7 +98,7 @@ At this point, planning is complete:
|
|
|
98
98
|
## Implement
|
|
99
99
|
|
|
100
100
|
```
|
|
101
|
-
/morph
|
|
101
|
+
/morph-apply my-feature
|
|
102
102
|
```
|
|
103
103
|
|
|
104
104
|
Claude reads `spec.md`, `contracts.cs`, and `tasks.md`, then implements task by task:
|
|
@@ -184,7 +184,7 @@ morph-spec doctor
|
|
|
184
184
|
|
|
185
185
|
## Tips
|
|
186
186
|
|
|
187
|
-
**Use `/morph
|
|
187
|
+
**Use `/morph-proposal` even for small features.** The proposal phase catches scope creep, identifies the right agents, and generates contracts early — before implementation makes it expensive to change direction.
|
|
188
188
|
|
|
189
189
|
**Approve explicitly at each gate.** The design gate exists to prevent implementing the wrong thing. If something in `spec.md` or `contracts.cs` looks off, say so before approving.
|
|
190
190
|
|
|
@@ -203,4 +203,4 @@ morph-spec doctor
|
|
|
203
203
|
|
|
204
204
|
---
|
|
205
205
|
|
|
206
|
-
*morph-spec v4.10.
|
|
206
|
+
*morph-spec v4.10.6 by Polymorphism Tech*
|
package/framework/CLAUDE.md
CHANGED
|
@@ -23,10 +23,10 @@
|
|
|
23
23
|
|
|
24
24
|
| Command | Purpose |
|
|
25
25
|
|---------|---------|
|
|
26
|
-
| `/morph
|
|
27
|
-
| `/morph
|
|
28
|
-
| `/morph
|
|
29
|
-
| `/morph
|
|
26
|
+
| `/morph-proposal {feature}` | Full spec pipeline (pauses for approval) |
|
|
27
|
+
| `/morph-apply {feature}` | Implement feature |
|
|
28
|
+
| `/morph-status` | Status dashboard |
|
|
29
|
+
| `/morph-preflight` | Pre-deploy validation |
|
|
30
30
|
|
|
31
31
|
## Agents
|
|
32
32
|
|
|
@@ -3,7 +3,7 @@ name: hangfire-orchestrator
|
|
|
3
3
|
description: Hangfire Orchestrator specialist for background job design, recurring task scheduling, queue management, and idempotent job patterns in .NET. Use when implementing background jobs, scheduling recurring tasks, managing job queues, or integrating Hangfire with .NET services.
|
|
4
4
|
allowed-tools: Read, Write, Edit, Bash, Glob, Grep
|
|
5
5
|
stacks:
|
|
6
|
-
-
|
|
6
|
+
- hangfire
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# Hangfire Orchestrator
|
|
@@ -3,7 +3,8 @@ name: ms-agent-expert
|
|
|
3
3
|
description: Microsoft Agent Framework Expert for Semantic Kernel, AI extensions, function calling, MCP/A2A protocols, and agentic pipeline implementation. Use when building AI agents with Semantic Kernel, implementing tool/plugin calling, designing multi-agent workflows, or integrating LLMs with .NET services.
|
|
4
4
|
allowed-tools: Read, Write, Edit, Bash, Glob, Grep
|
|
5
5
|
stacks:
|
|
6
|
-
-
|
|
6
|
+
- semantic-kernel
|
|
7
|
+
- ms-agents
|
|
7
8
|
---
|
|
8
9
|
|
|
9
10
|
# Agent Framework Expert
|
|
@@ -256,7 +256,7 @@ O projeto nao possui arquivos de infraestrutura em `infra/`.
|
|
|
256
256
|
|
|
257
257
|
Opcoes:
|
|
258
258
|
1. **Criar agora** - Gerar templates baseado no projeto detectado
|
|
259
|
-
2. **Usar /morph
|
|
259
|
+
2. **Usar /morph-infra** - Rodar comando de setup de infra primeiro
|
|
260
260
|
3. **Cancelar** - Abortar deploy
|
|
261
261
|
|
|
262
262
|
Qual opcao voce prefere?
|
|
@@ -3,7 +3,7 @@ name: asaas-financial
|
|
|
3
3
|
description: Asaas Financial specialist for Asaas API integration, payment processing, Pix/boleto billing, and subscription management in Brazilian projects. Use when integrating Asaas payments, implementing billing flows, handling payment webhooks, or building subscription management features.
|
|
4
4
|
allowed-tools: Read, Write, Edit, Bash, Glob, Grep
|
|
5
5
|
stacks:
|
|
6
|
-
-
|
|
6
|
+
- asaas
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# Asaas Financial
|
|
@@ -3,8 +3,7 @@ name: clerk-auth
|
|
|
3
3
|
description: Clerk Auth specialist for Clerk SDK integration, social login, JWT session management, and user management in Next.js and .NET projects. Use when integrating Clerk authentication, implementing social login flows, managing user sessions with Clerk JWT, or protecting routes with Clerk middleware.
|
|
4
4
|
allowed-tools: Read, Write, Edit, Bash, Glob, Grep
|
|
5
5
|
stacks:
|
|
6
|
-
-
|
|
7
|
-
- nextjs
|
|
6
|
+
- clerk
|
|
8
7
|
---
|
|
9
8
|
|
|
10
9
|
# Clerk Auth
|
|
@@ -3,7 +3,7 @@ name: hangfire-orchestrator-integration
|
|
|
3
3
|
description: Hangfire integration specialist for connecting background jobs with external services, implementing webhook handlers, and building event-driven workflows in .NET. Use when integrating Hangfire with third-party APIs, processing webhooks asynchronously, or designing event-driven job pipelines.
|
|
4
4
|
allowed-tools: Read, Write, Edit, Bash, Glob, Grep
|
|
5
5
|
stacks:
|
|
6
|
-
-
|
|
6
|
+
- hangfire
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# Hangfire Orchestrator
|
|
@@ -3,7 +3,7 @@ name: resend-email
|
|
|
3
3
|
description: Resend Email specialist for transactional email, HTML/React email templates, Resend API integration, and notification systems in .NET and Next.js. Use when implementing email notifications, integrating Resend API, creating transactional email templates, or configuring email delivery in MORPH-SPEC projects.
|
|
4
4
|
allowed-tools: Read, Write, Edit, Bash, Glob, Grep
|
|
5
5
|
stacks:
|
|
6
|
-
-
|
|
6
|
+
- resend
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# Resend Email
|
|
@@ -18,7 +18,7 @@ Deep code analysis specialist. Automates architecture review, clean code checks,
|
|
|
18
18
|
|
|
19
19
|
| Trigger | Automatic? | Scope |
|
|
20
20
|
|---------|-----------|-------|
|
|
21
|
-
| FASE 5 completion (`/morph
|
|
21
|
+
| FASE 5 completion (`/morph-apply` done) | Yes | Full feature code |
|
|
22
22
|
| Checkpoint (every 3 tasks) | Yes | Code since last checkpoint |
|
|
23
23
|
| Manual: `analyze`, `review code`, `code quality` | No | Specified scope |
|
|
24
24
|
| Pre-merge review | Recommended | All changed files |
|
|
@@ -4,14 +4,14 @@ argument-hint: <feature-name>
|
|
|
4
4
|
allowed-tools: Read, Write, Edit, Bash, Glob, Grep, Agent, AskUserQuestion
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
# /morph
|
|
7
|
+
# /morph-apply — Feature Implementation
|
|
8
8
|
|
|
9
9
|
Implement the feature by executing its task breakdown, tracking progress through the morph-spec state machine, and producing a recap at the end.
|
|
10
10
|
|
|
11
11
|
## Usage
|
|
12
12
|
|
|
13
13
|
```
|
|
14
|
-
/morph
|
|
14
|
+
/morph-apply {feature-name}
|
|
15
15
|
```
|
|
16
16
|
|
|
17
17
|
## Recommended Tools
|
|
@@ -46,7 +46,7 @@ npx morph-spec validate-feature $ARGUMENTS
|
|
|
46
46
|
|
|
47
47
|
```
|
|
48
48
|
Feature is not ready for implementation.
|
|
49
|
-
Run /morph
|
|
49
|
+
Run /morph-proposal $ARGUMENTS to complete planning phases.
|
|
50
50
|
(Resumes automatically from the current phase.)
|
|
51
51
|
```
|
|
52
52
|
|
|
@@ -192,7 +192,7 @@ After implementation, present a summary to the user:
|
|
|
192
192
|
3. Validation results
|
|
193
193
|
4. Any deviations from spec
|
|
194
194
|
|
|
195
|
-
For Azure projects, remind the user: "Run `/morph
|
|
195
|
+
For Azure projects, remind the user: "Run `/morph-preflight` before deploying to validate packages, migrations, Docker, and secrets."
|
|
196
196
|
|
|
197
197
|
---
|
|
198
198
|
|
|
@@ -4,14 +4,14 @@ argument-hint: [up|down|plan|status]
|
|
|
4
4
|
allowed-tools: Read, Write, Edit, Bash, Glob, AskUserQuestion
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
# /morph
|
|
7
|
+
# /morph-infra - Infrastructure Management
|
|
8
8
|
|
|
9
9
|
Manage Azure infrastructure using Bicep templates.
|
|
10
10
|
|
|
11
11
|
## Usage
|
|
12
12
|
|
|
13
13
|
```
|
|
14
|
-
/morph
|
|
14
|
+
/morph-infra [action] [options]
|
|
15
15
|
```
|
|
16
16
|
|
|
17
17
|
### Actions
|
|
@@ -30,7 +30,7 @@ Manage Azure infrastructure using Bicep templates.
|
|
|
30
30
|
|
|
31
31
|
### 1. INIT - Initialize IaC
|
|
32
32
|
|
|
33
|
-
When the user requests `/morph
|
|
33
|
+
When the user requests `/morph-infra init`:
|
|
34
34
|
|
|
35
35
|
1. Create the `infra/` structure in the project:
|
|
36
36
|
```
|
|
@@ -60,7 +60,7 @@ When the user requests `/morph:infra init`:
|
|
|
60
60
|
|
|
61
61
|
### 2. VALIDATE - Validate Templates
|
|
62
62
|
|
|
63
|
-
When the user requests `/morph
|
|
63
|
+
When the user requests `/morph-infra validate`:
|
|
64
64
|
|
|
65
65
|
1. Run Bicep validation:
|
|
66
66
|
```bash
|
|
@@ -75,7 +75,7 @@ When the user requests `/morph:infra validate`:
|
|
|
75
75
|
|
|
76
76
|
### 3. PLAN - Preview Changes
|
|
77
77
|
|
|
78
|
-
When the user requests `/morph
|
|
78
|
+
When the user requests `/morph-infra plan [env]`:
|
|
79
79
|
|
|
80
80
|
1. Check if Azure CLI is authenticated:
|
|
81
81
|
```bash
|
|
@@ -102,7 +102,7 @@ When the user requests `/morph:infra plan [env]`:
|
|
|
102
102
|
|
|
103
103
|
### 4. DEPLOY - Execute Deploy
|
|
104
104
|
|
|
105
|
-
When the user requests `/morph
|
|
105
|
+
When the user requests `/morph-infra deploy [env]`:
|
|
106
106
|
|
|
107
107
|
1. Verify plan was approved
|
|
108
108
|
|
|
@@ -130,7 +130,7 @@ When the user requests `/morph:infra deploy [env]`:
|
|
|
130
130
|
|
|
131
131
|
### 5. DESTROY - Remove Resources
|
|
132
132
|
|
|
133
|
-
When the user requests `/morph
|
|
133
|
+
When the user requests `/morph-infra destroy [env]`:
|
|
134
134
|
|
|
135
135
|
1. **WARN** that this action is irreversible
|
|
136
136
|
|
|
@@ -177,14 +177,14 @@ Before any deploy, check with Cost Guardian:
|
|
|
177
177
|
## Usage Example
|
|
178
178
|
|
|
179
179
|
```
|
|
180
|
-
User: /morph
|
|
180
|
+
User: /morph-infra init
|
|
181
181
|
Claude: Creating IaC structure...
|
|
182
182
|
- infra/main.bicep
|
|
183
183
|
- infra/parameters.dev.json
|
|
184
184
|
- infra/modules/*.bicep
|
|
185
|
-
Done! Run /morph
|
|
185
|
+
Done! Run /morph-infra validate to verify.
|
|
186
186
|
|
|
187
|
-
User: /morph
|
|
187
|
+
User: /morph-infra plan dev
|
|
188
188
|
Claude: Analyzing changes for dev environment...
|
|
189
189
|
|
|
190
190
|
CREATE:
|
|
@@ -11,7 +11,7 @@ Validates project readiness before deploying to Azure.
|
|
|
11
11
|
## Usage
|
|
12
12
|
|
|
13
13
|
```
|
|
14
|
-
/morph
|
|
14
|
+
/morph-preflight azure
|
|
15
15
|
```
|
|
16
16
|
|
|
17
17
|
## Purpose
|
|
@@ -39,7 +39,7 @@ npx morph-spec validate-feature {feature}
|
|
|
39
39
|
| All tasks complete | `state get` → tasks array | 0 tasks in `pending` or `in_progress` |
|
|
40
40
|
| Recap generated | Read `5-implement/recap.md` | File exists and is non-empty |
|
|
41
41
|
|
|
42
|
-
**If any MORPH check fails:** Show which check failed and recommend: `Run /morph
|
|
42
|
+
**If any MORPH check fails:** Show which check failed and recommend: `Run /morph-apply {feature} to complete implementation before deploying.`
|
|
43
43
|
|
|
44
44
|
---
|
|
45
45
|
|
|
@@ -222,7 +222,7 @@ Recommended fixes:
|
|
|
222
222
|
### Before creating PR for production
|
|
223
223
|
|
|
224
224
|
```bash
|
|
225
|
-
/morph
|
|
225
|
+
/morph-preflight azure
|
|
226
226
|
```
|
|
227
227
|
|
|
228
228
|
### In CI/CD pipeline
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: MORPH Spec Pipeline — creates or resumes feature planning through phases 0-6 with mandatory approval pauses. Use whenever the user wants to plan, spec, or design a new feature, or when they say /morph
|
|
2
|
+
description: MORPH Spec Pipeline — creates or resumes feature planning through phases 0-6 with mandatory approval pauses. Use whenever the user wants to plan, spec, or design a new feature, or when they say /morph-proposal. This is the primary entry point for all MORPH-SPEC feature work.
|
|
3
3
|
argument-hint: <feature-name>
|
|
4
4
|
allowed-tools: Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion
|
|
5
5
|
---
|
|
@@ -187,7 +187,7 @@ npx morph-spec phase advance {feature-name}
|
|
|
187
187
|
After task approval:
|
|
188
188
|
|
|
189
189
|
```
|
|
190
|
-
Planning complete! Run /morph
|
|
190
|
+
Planning complete! Run /morph-apply {feature-name} to start implementation.
|
|
191
191
|
```
|
|
192
192
|
|
|
193
193
|
---
|
|
@@ -83,9 +83,9 @@ The `npx morph-spec state list` command automatically generates a formatted dash
|
|
|
83
83
|
## Available Actions
|
|
84
84
|
|
|
85
85
|
Suggest next actions:
|
|
86
|
-
- `/morph
|
|
87
|
-
- `/morph
|
|
88
|
-
- `/morph
|
|
86
|
+
- `/morph-proposal {feature}` - Create a new feature
|
|
87
|
+
- `/morph-apply {feature}` - Implement a feature
|
|
88
|
+
- `/morph-archive {feature}` - Archive a completed feature
|
|
89
89
|
|
|
90
90
|
---
|
|
91
91
|
|
|
@@ -102,7 +102,7 @@ function isContextInitialized() {
|
|
|
102
102
|
const contextPath = join(process.cwd(), '.morph/context/README.md');
|
|
103
103
|
if (!existsSync(contextPath)) return false;
|
|
104
104
|
const content = readFileSync(contextPath, 'utf-8');
|
|
105
|
-
return !content.includes('Run /morph
|
|
105
|
+
return !content.includes('Run /morph-init to generate');
|
|
106
106
|
} catch {
|
|
107
107
|
return false;
|
|
108
108
|
}
|
|
@@ -35,7 +35,7 @@ const PHASE_POSITIONS = {
|
|
|
35
35
|
const PIPELINE_TOTAL = 5;
|
|
36
36
|
|
|
37
37
|
const NEXT_STEP_HINT = {
|
|
38
|
-
proposal: (n) => `Continue spec pipeline: /morph
|
|
38
|
+
proposal: (n) => `Continue spec pipeline: /morph-proposal ${n}`,
|
|
39
39
|
design: (n) => `Approve design gate: morph-spec approve ${n} design`,
|
|
40
40
|
uiux: (n) => `Approve UI gate: morph-spec approve ${n} uiux`,
|
|
41
41
|
tasks: (n) => `Approve tasks gate: morph-spec approve ${n} tasks`,
|
package/framework/phases.json
CHANGED
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
],
|
|
20
20
|
"agentTiers": [1],
|
|
21
21
|
"requiredSkills": [
|
|
22
|
-
{ "trigger": "beforePhaseStart", "skill": "morph
|
|
22
|
+
{ "trigger": "beforePhaseStart", "skill": "morph-brainstorming" }
|
|
23
23
|
]
|
|
24
24
|
},
|
|
25
25
|
"setup": {
|
|
@@ -58,9 +58,9 @@
|
|
|
58
58
|
],
|
|
59
59
|
"agentTiers": [1, 2, 3],
|
|
60
60
|
"requiredSkills": [
|
|
61
|
-
{ "trigger": "beforeArchitecturalDecision", "skill": "morph
|
|
62
|
-
{ "trigger": "onHTMLPrototypeAvailable", "skill": "morph
|
|
63
|
-
{ "trigger": "beforePhaseComplete", "skill": "morph
|
|
61
|
+
{ "trigger": "beforeArchitecturalDecision", "skill": "morph-brainstorming" },
|
|
62
|
+
{ "trigger": "onHTMLPrototypeAvailable", "skill": "morph-replicate" },
|
|
63
|
+
{ "trigger": "beforePhaseComplete", "skill": "morph-frontend-review" }
|
|
64
64
|
]
|
|
65
65
|
},
|
|
66
66
|
"design": {
|
|
@@ -82,11 +82,11 @@
|
|
|
82
82
|
],
|
|
83
83
|
"agentTiers": [1, 2, 3, 4],
|
|
84
84
|
"requiredSkills": [
|
|
85
|
-
{ "trigger": "beforePhaseStart", "skill": "morph
|
|
86
|
-
{ "trigger": "beforePhaseStart", "skill": "morph
|
|
87
|
-
{ "trigger": "beforeArchitecturalDecision", "skill": "morph
|
|
88
|
-
{ "trigger": "onExternalServiceIntegration", "skill": "morph
|
|
89
|
-
{ "trigger": "beforePhaseComplete", "skill": "morph
|
|
85
|
+
{ "trigger": "beforePhaseStart", "skill": "morph-phase-design" },
|
|
86
|
+
{ "trigger": "beforePhaseStart", "skill": "morph-phase-codebase-analysis" },
|
|
87
|
+
{ "trigger": "beforeArchitecturalDecision", "skill": "morph-brainstorming" },
|
|
88
|
+
{ "trigger": "onExternalServiceIntegration", "skill": "morph-simulation-checklist" },
|
|
89
|
+
{ "trigger": "beforePhaseComplete", "skill": "morph-verification-before-completion" }
|
|
90
90
|
]
|
|
91
91
|
},
|
|
92
92
|
"clarify": {
|
|
@@ -105,8 +105,8 @@
|
|
|
105
105
|
"pausePoints": [],
|
|
106
106
|
"agentTiers": [1, 2],
|
|
107
107
|
"requiredSkills": [
|
|
108
|
-
{ "trigger": "beforePhaseStart", "skill": "morph
|
|
109
|
-
{ "trigger": "beforePhaseComplete", "skill": "morph
|
|
108
|
+
{ "trigger": "beforePhaseStart", "skill": "morph-phase-clarify" },
|
|
109
|
+
{ "trigger": "beforePhaseComplete", "skill": "morph-verification-before-completion" }
|
|
110
110
|
]
|
|
111
111
|
},
|
|
112
112
|
"plan": {
|
|
@@ -127,8 +127,8 @@
|
|
|
127
127
|
],
|
|
128
128
|
"agentTiers": [1, 2],
|
|
129
129
|
"requiredSkills": [
|
|
130
|
-
{ "trigger": "beforePhaseStart", "skill": "morph
|
|
131
|
-
{ "trigger": "beforePhaseComplete", "skill": "morph
|
|
130
|
+
{ "trigger": "beforePhaseStart", "skill": "morph-phase-plan" },
|
|
131
|
+
{ "trigger": "beforePhaseComplete", "skill": "morph-verification-before-completion" }
|
|
132
132
|
]
|
|
133
133
|
},
|
|
134
134
|
"tasks": {
|
|
@@ -150,7 +150,7 @@
|
|
|
150
150
|
"agentTiers": [1, 2, 3],
|
|
151
151
|
"requiredSkills": [
|
|
152
152
|
{ "trigger": "onParallelTasksIdentified", "skill": "superpowers:dispatching-parallel-agents" },
|
|
153
|
-
{ "trigger": "beforePhaseComplete", "skill": "morph
|
|
153
|
+
{ "trigger": "beforePhaseComplete", "skill": "morph-verification-before-completion" }
|
|
154
154
|
]
|
|
155
155
|
},
|
|
156
156
|
"implement": {
|
|
@@ -171,11 +171,11 @@
|
|
|
171
171
|
"agentTiers": [1, 2, 3, 4],
|
|
172
172
|
"requiredSkills": [
|
|
173
173
|
{ "trigger": "beforeEachTask", "skill": "superpowers:test-driven-development" },
|
|
174
|
-
{ "trigger": "beforeTaskDone", "skill": "morph
|
|
174
|
+
{ "trigger": "beforeTaskDone", "skill": "morph-verification-before-completion" },
|
|
175
175
|
{ "trigger": "onBugOrUnexpected", "skill": "superpowers:systematic-debugging" },
|
|
176
|
-
{ "trigger": "afterAllTasks", "skill": "morph
|
|
176
|
+
{ "trigger": "afterAllTasks", "skill": "morph-post-implementation" },
|
|
177
177
|
{ "trigger": "afterAllTasks", "skill": "superpowers:requesting-code-review" },
|
|
178
|
-
{ "trigger": "beforePR", "skill": "morph
|
|
178
|
+
{ "trigger": "beforePR", "skill": "morph-checklist" }
|
|
179
179
|
]
|
|
180
180
|
},
|
|
181
181
|
"sync": {
|
|
@@ -37,9 +37,9 @@ Use `morph-spec status {feature}` to see current phase and pending approval gate
|
|
|
37
37
|
|
|
38
38
|
| Command | Purpose |
|
|
39
39
|
|---------|---------|
|
|
40
|
-
| `/morph
|
|
41
|
-
| `/morph
|
|
42
|
-
| `/morph
|
|
40
|
+
| `/morph-proposal {feature}` | Full spec pipeline (phases 1-4, pauses for approval) |
|
|
41
|
+
| `/morph-apply {feature}` | Implement feature (phase 5) |
|
|
42
|
+
| `/morph-status` | Feature dashboard |
|
|
43
43
|
|
|
44
44
|
---
|
|
45
45
|
|
|
@@ -32,7 +32,7 @@ Each skill is a directory: `{name}/SKILL.md` + optional `scripts/`, `references/
|
|
|
32
32
|
|
|
33
33
|
## level-1-workflows — Phase Workflow Skills
|
|
34
34
|
|
|
35
|
-
Invoked internally by `/morph
|
|
35
|
+
Invoked internally by `/morph-proposal` and `/morph-apply`. Not user-invocable.
|
|
36
36
|
|
|
37
37
|
| Skill | Phase | Description |
|
|
38
38
|
|-------|-------|-------------|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: morph
|
|
2
|
+
name: morph-brainstorming
|
|
3
3
|
description: Morph-spec-aware brainstorming that loads project context, explores multiple design approaches, asks clarifying questions, and produces proposal.md or decisions.md. Use before designing a feature, when facing architectural decisions with multiple valid approaches, or when a feature needs requirements exploration before committing to a direction.
|
|
4
4
|
user-invocable: true
|
|
5
5
|
argument-hint: "[feature-name or topic]"
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: morph
|
|
2
|
+
name: morph-checklist
|
|
3
3
|
description: Pre-deploy, security, SEO, performance, accessibility, and LGPD compliance checklists for MORPH-SPEC projects. Use before deploying to production, during security audits, when optimizing for SEO or performance, or when validating Brazilian LGPD data protection compliance.
|
|
4
4
|
user-invocable: true
|
|
5
5
|
allowed-tools: Read, Write, Edit, Bash, Glob, Grep
|
|
@@ -7,7 +7,7 @@ allowed-tools: Read, Write, Edit, Bash, Glob, Grep
|
|
|
7
7
|
|
|
8
8
|
# MORPH Checklists
|
|
9
9
|
|
|
10
|
-
Types: `deploy`, `security`, `seo`, `performance`, `accessibility`, `legal-brazil`, `simulation` (see skill: `morph
|
|
10
|
+
Types: `deploy`, `security`, `seo`, `performance`, `accessibility`, `legal-brazil`, `simulation` (see skill: `morph-simulation-checklist`)
|
|
11
11
|
|
|
12
12
|
---
|
|
13
13
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: morph
|
|
2
|
+
name: morph-code-review
|
|
3
3
|
description: .NET/C# code review checklist covering naming conventions, architecture layer integrity, async patterns, logging, error handling, DI lifetimes, and DTO contracts. Use after implementing .NET code, before creating PRs, or when reviewing C# code for compliance with MORPH-SPEC standards.
|
|
4
4
|
user-invocable: true
|
|
5
5
|
allowed-tools: Read, Write, Edit, Bash, Glob, Grep
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: morph
|
|
2
|
+
name: morph-code-review-nextjs
|
|
3
3
|
description: Next.js code review checklist covering naming conventions, component architecture (Server vs Client), data fetching patterns, form implementation, state management, TypeScript/Zod discipline, feature boundaries, and testing. Use after implementing Next.js code, before creating PRs, or when reviewing TSX/TS code for compliance with MORPH-SPEC Next.js standards.
|
|
4
4
|
user-invocable: true
|
|
5
5
|
allowed-tools: Read, Write, Edit, Bash, Glob, Grep
|