@polymorphism-tech/morph-spec 4.8.19 → 4.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CLAUDE.md +21 -0
- package/README.md +2 -2
- package/bin/morph-spec.js +44 -55
- package/bin/task-manager.js +133 -20
- package/bin/validate.js +67 -33
- package/claude-plugin.json +1 -1
- package/docs/CHEATSHEET.md +201 -203
- package/docs/QUICKSTART.md +2 -2
- package/framework/CLAUDE.md +99 -77
- package/framework/agents.json +734 -182
- package/framework/commands/commit.md +166 -0
- package/framework/commands/morph-apply.md +13 -2
- package/framework/commands/morph-archive.md +8 -2
- package/framework/commands/morph-infra.md +6 -0
- package/framework/commands/morph-preflight.md +6 -0
- package/framework/commands/morph-proposal.md +56 -7
- package/framework/commands/morph-status.md +6 -0
- package/framework/commands/morph-troubleshoot.md +6 -0
- package/framework/hooks/claude-code/notification/approval-reminder.js +3 -2
- package/framework/hooks/claude-code/post-tool-use/context-refresh.js +1 -1
- package/framework/hooks/claude-code/post-tool-use/dispatch.js +155 -32
- package/framework/hooks/claude-code/post-tool-use/skill-reminder.js +78 -0
- package/framework/hooks/claude-code/post-tool-use/validator-feedback.js +8 -17
- package/framework/hooks/claude-code/pre-compact/save-morph-context.js +16 -3
- package/framework/hooks/claude-code/pre-tool-use/enforce-phase-writes.js +4 -3
- package/framework/hooks/claude-code/pre-tool-use/protect-spec-files.js +4 -3
- package/framework/hooks/claude-code/pre-tool-use/task-tracking-guard.js +60 -0
- package/framework/hooks/claude-code/session-start/inject-morph-context.js +124 -2
- package/framework/hooks/claude-code/session-start/post-compact-restore.js +41 -0
- package/framework/hooks/claude-code/statusline.py +76 -30
- package/framework/hooks/claude-code/stop/validate-completion.js +2 -15
- package/framework/hooks/claude-code/user-prompt/enrich-prompt.js +23 -5
- package/framework/hooks/claude-code/user-prompt/set-terminal-title.js +14 -6
- package/framework/hooks/shared/activity-logger.js +0 -24
- package/framework/hooks/shared/compact-restore.js +100 -0
- package/framework/hooks/shared/dispatch-helpers.js +116 -0
- package/framework/hooks/shared/phase-utils.js +12 -5
- package/framework/hooks/shared/skill-reminder-helpers.js +79 -0
- package/framework/hooks/shared/stale-task-reset.js +57 -0
- package/framework/hooks/shared/state-reader.js +29 -5
- package/framework/hooks/shared/worktree-helpers.js +53 -0
- package/framework/phases.json +69 -14
- package/framework/rules/morph-workflow.md +88 -86
- package/framework/skills/level-0-meta/mcp-registry.json +86 -51
- package/framework/skills/level-0-meta/{brainstorming → morph-brainstorming}/SKILL.md +14 -17
- package/framework/skills/level-0-meta/morph-checklist/SKILL.md +2 -2
- package/framework/skills/level-0-meta/{code-review → morph-code-review}/SKILL.md +2 -2
- package/framework/skills/level-0-meta/{code-review-nextjs → morph-code-review-nextjs}/SKILL.md +163 -163
- package/framework/skills/level-0-meta/{frontend-review → morph-frontend-review}/SKILL.md +9 -9
- package/framework/skills/level-0-meta/morph-init/SKILL.md +77 -12
- package/framework/skills/level-0-meta/{post-implementation → morph-post-implementation}/SKILL.md +62 -15
- package/framework/skills/level-0-meta/morph-replicate/SKILL.md +5 -5
- package/framework/skills/level-0-meta/morph-replicate/references/blazor-html-mapping.md +1 -1
- package/framework/skills/level-0-meta/{simulation-checklist → morph-simulation-checklist}/SKILL.md +1 -1
- package/framework/skills/level-0-meta/{terminal-title → morph-terminal-title}/SKILL.md +2 -2
- package/framework/skills/level-0-meta/{tool-usage-guide → morph-tool-usage-guide}/SKILL.md +3 -4
- package/framework/skills/level-0-meta/{tool-usage-guide → morph-tool-usage-guide}/references/tools-per-phase.md +7 -7
- package/framework/skills/level-0-meta/{verification-before-completion → morph-verification-before-completion}/SKILL.md +2 -2
- package/framework/skills/level-0-meta/{verification-before-completion → morph-verification-before-completion}/scripts/check-phase-outputs.mjs +2 -2
- package/framework/skills/level-1-workflows/morph-phase-clarify/SKILL.md +238 -0
- package/framework/skills/level-1-workflows/{phase-codebase-analysis → morph-phase-codebase-analysis}/SKILL.md +3 -3
- package/framework/skills/level-1-workflows/morph-phase-design/SKILL.md +507 -0
- package/framework/skills/level-1-workflows/{phase-implement → morph-phase-implement}/SKILL.md +168 -27
- package/framework/skills/level-1-workflows/morph-phase-implement/prompts/code-quality-reviewer-prompt.md +50 -0
- package/framework/skills/level-1-workflows/morph-phase-implement/prompts/implementer-prompt.md +45 -0
- package/framework/skills/level-1-workflows/morph-phase-implement/prompts/spec-reviewer-prompt.md +47 -0
- package/framework/skills/level-1-workflows/morph-phase-plan/SKILL.md +254 -0
- package/framework/skills/level-1-workflows/{phase-setup → morph-phase-setup}/SKILL.md +50 -3
- package/framework/skills/level-1-workflows/{phase-tasks → morph-phase-tasks}/SKILL.md +48 -11
- package/framework/skills/level-1-workflows/{phase-tasks → morph-phase-tasks}/scripts/validate-tasks.mjs +3 -3
- package/framework/skills/level-1-workflows/{phase-uiux → morph-phase-uiux}/SKILL.md +46 -11
- package/framework/skills/level-1-workflows/morph-scope-escalation/SKILL.md +97 -0
- package/framework/standards/STANDARDS.json +640 -88
- package/framework/standards/infrastructure/vercel/vercel-database.md +106 -0
- package/framework/standards/integration/mcp/mcp-tools.md +25 -7
- package/framework/templates/REGISTRY.json +1825 -1909
- package/framework/templates/context/CONTEXT-FEATURE.md +276 -276
- package/framework/templates/docs/onboarding.md +3 -7
- package/package.json +2 -7
- package/src/commands/agents/dispatch-agents.js +104 -6
- package/src/commands/mcp/mcp-setup.js +39 -2
- package/src/commands/phase/phase-reset.js +74 -0
- package/src/commands/project/doctor.js +34 -51
- package/src/commands/project/init.js +1 -1
- package/src/commands/project/status.js +2 -2
- package/src/commands/project/update.js +381 -365
- package/src/commands/project/worktree.js +154 -0
- package/src/commands/scope/escalate.js +215 -0
- package/src/commands/state/advance-phase.js +132 -68
- package/src/commands/state/approve.js +2 -2
- package/src/commands/state/index.js +7 -8
- package/src/commands/state/phase-runner.js +1 -1
- package/src/commands/state/state.js +61 -6
- package/src/commands/task/expand.js +100 -0
- package/src/commands/tasks/task.js +78 -99
- package/src/commands/templates/template-render.js +93 -173
- package/src/commands/trust/trust.js +26 -21
- package/src/core/paths/output-schema.js +19 -3
- package/src/core/state/phase-state-machine.js +7 -4
- package/src/core/state/state-manager.js +32 -57
- package/src/core/workflows/workflow-detector.js +9 -87
- package/src/lib/detectors/claude-config-detector.js +93 -347
- package/src/lib/detectors/design-system-detector.js +189 -189
- package/src/lib/detectors/index.js +155 -57
- package/src/lib/generators/context-generator.js +2 -2
- package/src/lib/installers/mcp-installer.js +37 -5
- package/src/lib/phase-chain/phase-validator.js +336 -0
- package/src/lib/scope/impact-analyzer.js +106 -0
- package/src/lib/stack/stack-profile.js +88 -0
- package/src/lib/tasks/task-classifier.js +16 -0
- package/src/lib/tasks/task-parser.js +1 -1
- package/src/lib/tasks/test-runner.js +77 -0
- package/src/lib/trust/trust-manager.js +32 -144
- package/src/lib/validators/shared/emit-validator-dispatch.js +64 -0
- package/src/lib/validators/spec-validator.js +58 -4
- package/src/lib/validators/validation-runner.js +23 -11
- package/src/scripts/setup-infra.js +255 -224
- package/src/utils/agents-installer.js +34 -14
- package/src/utils/banner.js +1 -1
- package/src/utils/claude-settings-manager.js +1 -1
- package/src/utils/file-copier.js +1 -1
- package/src/utils/hooks-installer.js +272 -8
- package/framework/hooks/dev/check-sync-health.js +0 -117
- package/framework/hooks/dev/guard-version-numbers.js +0 -57
- package/framework/hooks/dev/sync-standards-registry.js +0 -60
- package/framework/hooks/dev/sync-template-registry.js +0 -60
- package/framework/hooks/dev/validate-skill-format.js +0 -70
- package/framework/hooks/dev/validate-standard-format.js +0 -73
- package/framework/skills/level-1-workflows/phase-clarify/SKILL.md +0 -190
- package/framework/skills/level-1-workflows/phase-design/SKILL.md +0 -366
- package/framework/templates/meta-prompts/hops/hop-retry.md +0 -78
- package/framework/templates/meta-prompts/hops/hop-validation.md +0 -97
- package/framework/templates/meta-prompts/hops/hop-wrapper.md +0 -36
- package/framework/workflows/configs/design-impl.json +0 -49
- package/framework/workflows/configs/express.json +0 -45
- package/framework/workflows/configs/fast-track.json +0 -42
- package/framework/workflows/configs/full-morph.json +0 -79
- package/framework/workflows/configs/fusion.json +0 -39
- package/framework/workflows/configs/long-running.json +0 -33
- package/framework/workflows/configs/spec-only.json +0 -43
- package/framework/workflows/configs/ui-refresh.json +0 -49
- package/framework/workflows/configs/zero-touch.json +0 -82
- package/src/commands/project/index.js +0 -8
- package/src/commands/project/monitor.js +0 -295
- package/src/commands/project/tutorial.js +0 -115
- package/src/commands/state/validate-phase.js +0 -238
- package/src/commands/templates/generate-contracts.js +0 -445
- package/src/core/index.js +0 -10
- package/src/core/orchestrator.js +0 -171
- package/src/core/registry/command-registry.js +0 -28
- package/src/core/registry/index.js +0 -8
- package/src/core/registry/validator-registry.js +0 -204
- package/src/core/state/index.js +0 -8
- package/src/core/templates/index.js +0 -9
- package/src/core/templates/template-data-sources.js +0 -325
- package/src/core/templates/template-validator.js +0 -296
- package/src/core/workflows/index.js +0 -7
- package/src/generator/config-generator.js +0 -206
- package/src/generator/templates/config.json.template +0 -40
- package/src/generator/templates/project.md.template +0 -67
- package/src/lib/agents/micro-agent-factory.js +0 -161
- package/src/lib/analysis/complexity-analyzer.js +0 -441
- package/src/lib/analysis/index.js +0 -7
- package/src/lib/analytics/analytics-engine.js +0 -345
- package/src/lib/checkpoints/checkpoint-hooks.js +0 -298
- package/src/lib/checkpoints/index.js +0 -7
- package/src/lib/context/context-bundler.js +0 -241
- package/src/lib/context/context-optimizer.js +0 -212
- package/src/lib/context/context-tracker.js +0 -273
- package/src/lib/context/core-four-tracker.js +0 -201
- package/src/lib/context/mcp-optimizer.js +0 -200
- package/src/lib/detectors/config-detector.js +0 -223
- package/src/lib/detectors/standards-generator.js +0 -335
- package/src/lib/detectors/structure-detector.js +0 -275
- package/src/lib/execution/fusion-executor.js +0 -304
- package/src/lib/execution/parallel-executor.js +0 -270
- package/src/lib/hooks/stop-hook-executor.js +0 -286
- package/src/lib/hops/hop-composer.js +0 -221
- package/src/lib/monitor/agent-resolver.js +0 -144
- package/src/lib/monitor/renderer.js +0 -230
- package/src/lib/orchestration/index.js +0 -7
- package/src/lib/orchestration/team-orchestrator.js +0 -404
- package/src/lib/phase-chain/eligibility-checker.js +0 -243
- package/src/lib/threads/thread-coordinator.js +0 -238
- package/src/lib/threads/thread-manager.js +0 -317
- package/src/lib/tracking/artifact-trail.js +0 -202
- package/src/sanitizer/context-sanitizer.js +0 -221
- package/src/sanitizer/patterns.js +0 -163
- package/src/scanner/project-scanner.js +0 -242
- package/src/ui/diff-display.js +0 -91
- package/src/ui/interactive-wizard.js +0 -96
- package/src/ui/user-review.js +0 -211
- package/src/ui/wizard-questions.js +0 -188
- package/src/utils/color-utils.js +0 -70
- package/src/utils/process-handler.js +0 -97
- package/src/writer/file-writer.js +0 -86
- /package/framework/skills/level-0-meta/{brainstorming → morph-brainstorming}/references/proposal-example.md +0 -0
- /package/framework/skills/level-0-meta/{code-review → morph-code-review}/references/review-example.md +0 -0
- /package/framework/skills/level-0-meta/{code-review → morph-code-review}/references/review-guidelines.md +0 -0
- /package/framework/skills/level-0-meta/{code-review → morph-code-review}/scripts/scan-csharp.mjs +0 -0
- /package/framework/skills/level-0-meta/{code-review-nextjs → morph-code-review-nextjs}/references/review-example-nextjs.md +0 -0
- /package/framework/skills/level-0-meta/{code-review-nextjs → morph-code-review-nextjs}/scripts/scan-nextjs.mjs +0 -0
- /package/framework/skills/level-0-meta/{frontend-review → morph-frontend-review}/scripts/scan-accessibility.mjs +0 -0
- /package/framework/skills/level-0-meta/{post-implementation → morph-post-implementation}/scripts/detect-dev-server.mjs +0 -0
- /package/framework/skills/level-0-meta/{post-implementation → morph-post-implementation}/scripts/detect-stack.mjs +0 -0
- /package/framework/skills/level-0-meta/{terminal-title → morph-terminal-title}/scripts/set_title.sh +0 -0
- /package/framework/skills/level-1-workflows/{phase-clarify → morph-phase-clarify}/references/clarifications-example.md +0 -0
- /package/framework/skills/level-1-workflows/{phase-design → morph-phase-design}/references/architecture-analysis-guide.md +0 -0
- /package/framework/skills/level-1-workflows/{phase-design → morph-phase-design}/references/spec-authoring-guide.md +0 -0
- /package/framework/skills/level-1-workflows/{phase-design → morph-phase-design}/references/spec-example.md +0 -0
- /package/framework/skills/level-1-workflows/{phase-implement → morph-phase-implement}/references/recap-example.md +0 -0
- /package/framework/skills/level-1-workflows/{phase-implement → morph-phase-implement}/references/vsa-implementation-guide.md +0 -0
- /package/framework/skills/level-1-workflows/{phase-tasks → morph-phase-tasks}/references/task-planning-patterns.md +0 -0
- /package/framework/skills/level-1-workflows/{phase-tasks → morph-phase-tasks}/references/tasks-example.md +0 -0
|
@@ -1,86 +1,88 @@
|
|
|
1
|
-
# MORPH-SPEC Workflow Rules
|
|
2
|
-
|
|
3
|
-
> Always-active rules for all MORPH-SPEC managed projects.
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## Spec-First Mandate
|
|
8
|
-
|
|
9
|
-
**NEVER skip to code without a specification.** Every feature must progress through phases:
|
|
10
|
-
|
|
11
|
-
1. **Proposal** — User story + acceptance criteria (`0-proposal/proposal.md`)
|
|
12
|
-
2. **Design** — Technical spec + C# contracts + decisions (`1-design/`)
|
|
13
|
-
3. **
|
|
14
|
-
4. **
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
| `/morph-
|
|
26
|
-
| `/morph-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
|
38
|
-
|
|
|
39
|
-
|
|
|
40
|
-
|
|
|
41
|
-
|
|
|
42
|
-
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
-
|
|
52
|
-
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
1
|
+
# MORPH-SPEC Workflow Rules
|
|
2
|
+
|
|
3
|
+
> Always-active rules for all MORPH-SPEC managed projects.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Spec-First Mandate
|
|
8
|
+
|
|
9
|
+
**NEVER skip to code without a specification.** Every feature must progress through phases:
|
|
10
|
+
|
|
11
|
+
1. **Proposal** — User story + acceptance criteria (`0-proposal/proposal.md`)
|
|
12
|
+
2. **Design** — Technical spec + C# contracts + decisions (`1-design/`)
|
|
13
|
+
3. **Plan** — Detailed implementation plan (`3-plan/plan.md`)
|
|
14
|
+
4. **Tasks** — Atomic task list (`4-tasks/tasks.md`)
|
|
15
|
+
5. **Implement** — Code + recap (`5-implement/recap.md`)
|
|
16
|
+
|
|
17
|
+
UI-heavy features also include **UI/UX** phase (`2-ui/`) between Design and Tasks.
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## Phase Commands
|
|
22
|
+
|
|
23
|
+
| Command | Purpose |
|
|
24
|
+
|---------|---------|
|
|
25
|
+
| `/morph-proposal {feature}` | Full spec pipeline (phases 1–4, pauses for approval) |
|
|
26
|
+
| `/morph-apply {feature}` | Implement feature (phase 5) |
|
|
27
|
+
| `/morph-status` | Feature dashboard |
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Output Paths
|
|
32
|
+
|
|
33
|
+
All outputs go in `.morph/features/{feature}/`:
|
|
34
|
+
|
|
35
|
+
| Phase | Path |
|
|
36
|
+
|-------|------|
|
|
37
|
+
| Proposal | `0-proposal/proposal.md` |
|
|
38
|
+
| Spec | `1-design/spec.md` |
|
|
39
|
+
| Contracts | `1-design/contracts.cs` |
|
|
40
|
+
| Decisions | `1-design/decisions.md` |
|
|
41
|
+
| UI Design | `2-ui/design-system.md`, `mockups.md`, `components.md`, `flows.md` |
|
|
42
|
+
| Plan | `3-plan/plan.md` |
|
|
43
|
+
| Tasks | `4-tasks/tasks.md` |
|
|
44
|
+
| Recap | `5-implement/recap.md` |
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## Checkpoints
|
|
49
|
+
|
|
50
|
+
Run a checkpoint every 3 completed tasks:
|
|
51
|
+
- Validate architecture compliance
|
|
52
|
+
- Check package versions
|
|
53
|
+
- Scan for security issues
|
|
54
|
+
- Verify design system adherence (UI features)
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## Approval Gates
|
|
59
|
+
|
|
60
|
+
**Design Gate:** Before moving from Design → Tasks, spec must be approved.
|
|
61
|
+
**Implementation Gate:** Before starting implementation, task list must be approved.
|
|
62
|
+
|
|
63
|
+
Check approval status: `morph-spec approval-status {feature}`
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## Protected Files
|
|
68
|
+
|
|
69
|
+
**NEVER directly edit:**
|
|
70
|
+
- `.morph/state.json` — Managed by CLI only
|
|
71
|
+
- `.morph/framework/**` — Read-only framework content
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## Test File Policy
|
|
76
|
+
|
|
77
|
+
When a test fails, always follow this order:
|
|
78
|
+
|
|
79
|
+
1. **Analyze first** — determine if the IMPLEMENTATION is wrong or the TEST SPEC is wrong
|
|
80
|
+
2. **Fix implementation first** — the test is the spec; trust it by default
|
|
81
|
+
3. **Only modify a test file if the test expectation itself is incorrect** — wrong expected value, wrong behavior modeled
|
|
82
|
+
4. **Before modifying any test file, explain WHY the test spec is wrong** — what the correct behavior is and why the test doesn't model it
|
|
83
|
+
|
|
84
|
+
Do not modify test files to make a failing test pass when the implementation is the actual problem.
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
*MORPH-SPEC by Polymorphism Tech*
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "
|
|
2
|
+
"version": "4.0.0",
|
|
3
3
|
"description": "Centralized MCP registry with phase relevance and install configuration for morph-spec workflows",
|
|
4
4
|
"mcps": {
|
|
5
5
|
"context7": {
|
|
@@ -8,8 +8,16 @@
|
|
|
8
8
|
"detection": "enabledPlugins includes context7 or mcpServers includes context7",
|
|
9
9
|
"fallback": "WebSearch + WebFetch for library documentation",
|
|
10
10
|
"usage": "Library documentation lookups, API reference, implementation patterns",
|
|
11
|
+
"healthCheck": {
|
|
12
|
+
"toolPattern": "context7",
|
|
13
|
+
"testCall": "Call resolve-library-id with libraryName 'react' and query 'react hooks'",
|
|
14
|
+
"testParams": { "libraryName": "react", "query": "react hooks" },
|
|
15
|
+
"successIndicator": "Returns a library ID (e.g., /facebook/react)",
|
|
16
|
+
"failureHint": "Context7 MCP not responding. Check that @upstash/context7-mcp is installed and the MCP server is running. Try restarting Claude Code."
|
|
17
|
+
},
|
|
11
18
|
"install": {
|
|
12
19
|
"autoInstall": true,
|
|
20
|
+
"transport": "stdio",
|
|
13
21
|
"config": {
|
|
14
22
|
"command": "cmd",
|
|
15
23
|
"args": ["/c", "npx", "-y", "@upstash/context7-mcp@latest"]
|
|
@@ -27,8 +35,16 @@
|
|
|
27
35
|
"detection": "mcpServers includes playwright",
|
|
28
36
|
"fallback": "WebFetch for read-only page content, manual testing",
|
|
29
37
|
"usage": "UI preview, smoke testing, page inspection, responsive testing, screenshot capture",
|
|
38
|
+
"healthCheck": {
|
|
39
|
+
"toolPattern": "playwright",
|
|
40
|
+
"testCall": "Call browser_navigate with url 'about:blank'",
|
|
41
|
+
"testParams": { "url": "about:blank" },
|
|
42
|
+
"successIndicator": "Page navigates successfully (no error thrown)",
|
|
43
|
+
"failureHint": "Playwright MCP not responding. Ensure @playwright/mcp is installed and browser binaries are available. Run 'npx playwright install' if needed."
|
|
44
|
+
},
|
|
30
45
|
"install": {
|
|
31
46
|
"autoInstall": true,
|
|
47
|
+
"transport": "stdio",
|
|
32
48
|
"config": {
|
|
33
49
|
"command": "cmd",
|
|
34
50
|
"args": ["/c", "npx", "-y", "@playwright/mcp@latest"]
|
|
@@ -46,34 +62,25 @@
|
|
|
46
62
|
"detection": "mcpServers includes supabase",
|
|
47
63
|
"fallback": "Grep query files + Read type definitions for schema inference",
|
|
48
64
|
"usage": "Schema analysis, migrations, RLS policies, data operations",
|
|
65
|
+
"healthCheck": {
|
|
66
|
+
"toolPattern": "supabase",
|
|
67
|
+
"testCall": "Call list_tables with no parameters",
|
|
68
|
+
"testParams": {},
|
|
69
|
+
"successIndicator": "Returns a list of tables (even if empty)",
|
|
70
|
+
"failureHint": "Supabase MCP not responding. If using remote mode, re-authenticate via /mcp in Claude Code. If using local mode, verify SUPABASE_URL and SUPABASE_SERVICE_ROLE_KEY in .claude/settings.local.json."
|
|
71
|
+
},
|
|
49
72
|
"install": {
|
|
50
73
|
"autoInstall": false,
|
|
74
|
+
"transport": "http",
|
|
51
75
|
"config": {
|
|
52
|
-
"
|
|
53
|
-
"
|
|
54
|
-
"env": {
|
|
55
|
-
"SUPABASE_URL": "",
|
|
56
|
-
"SUPABASE_SERVICE_ROLE_KEY": ""
|
|
57
|
-
}
|
|
76
|
+
"type": "http",
|
|
77
|
+
"url": "https://mcp.supabase.com/mcp"
|
|
58
78
|
},
|
|
59
|
-
"credentials": [
|
|
60
|
-
{
|
|
61
|
-
"name": "Supabase Project URL",
|
|
62
|
-
"envVar": "SUPABASE_URL",
|
|
63
|
-
"secret": false,
|
|
64
|
-
"helpUrl": "https://supabase.com/dashboard/project/_/settings/api"
|
|
65
|
-
},
|
|
66
|
-
{
|
|
67
|
-
"name": "Service Role Key",
|
|
68
|
-
"envVar": "SUPABASE_SERVICE_ROLE_KEY",
|
|
69
|
-
"secret": true,
|
|
70
|
-
"helpUrl": "https://supabase.com/dashboard/project/_/settings/api"
|
|
71
|
-
}
|
|
72
|
-
],
|
|
79
|
+
"credentials": [],
|
|
73
80
|
"prerequisites": [],
|
|
74
81
|
"stackRelevance": ["nextjs-supabase", "supabase", "nextjs"],
|
|
75
|
-
"warnings": ["NEVER connect to PRODUCTION databases. Use local/dev environment only."],
|
|
76
|
-
"setupGuide":
|
|
82
|
+
"warnings": ["Uses OAuth — you will be prompted to authenticate via browser when first connecting.", "NEVER connect to PRODUCTION databases. Use local/dev environment only."],
|
|
83
|
+
"setupGuide": "Run: claude mcp add --transport http supabase https://mcp.supabase.com/mcp"
|
|
77
84
|
}
|
|
78
85
|
},
|
|
79
86
|
"github": {
|
|
@@ -82,11 +89,19 @@
|
|
|
82
89
|
"detection": "mcpServers includes github",
|
|
83
90
|
"fallback": "Bash `gh` CLI commands",
|
|
84
91
|
"usage": "Repo metadata, code search, issue creation, PR management",
|
|
92
|
+
"healthCheck": {
|
|
93
|
+
"toolPattern": "github",
|
|
94
|
+
"testCall": "Call any read-only GitHub tool (e.g., search_repositories or get_repo) to verify connectivity",
|
|
95
|
+
"testParams": {},
|
|
96
|
+
"successIndicator": "Returns repository data or search results without auth errors",
|
|
97
|
+
"failureHint": "GitHub MCP not responding. If using Docker, ensure Docker Desktop is running. Verify GITHUB_PERSONAL_ACCESS_TOKEN env var is set. Ensure the token has not expired and has the required scopes (repo, read:org)."
|
|
98
|
+
},
|
|
85
99
|
"install": {
|
|
86
100
|
"autoInstall": false,
|
|
101
|
+
"transport": "stdio",
|
|
87
102
|
"config": {
|
|
88
|
-
"command": "
|
|
89
|
-
"args": ["
|
|
103
|
+
"command": "docker",
|
|
104
|
+
"args": ["run", "-i", "--rm", "-e", "GITHUB_PERSONAL_ACCESS_TOKEN", "ghcr.io/github/github-mcp-server"],
|
|
90
105
|
"env": {
|
|
91
106
|
"GITHUB_PERSONAL_ACCESS_TOKEN": ""
|
|
92
107
|
}
|
|
@@ -99,39 +114,43 @@
|
|
|
99
114
|
"helpUrl": "https://github.com/settings/tokens"
|
|
100
115
|
}
|
|
101
116
|
],
|
|
102
|
-
"prerequisites": [
|
|
117
|
+
"prerequisites": [
|
|
118
|
+
{
|
|
119
|
+
"name": "Docker",
|
|
120
|
+
"checkCommand": "docker --version",
|
|
121
|
+
"installUrl": "https://docs.docker.com/get-docker/"
|
|
122
|
+
}
|
|
123
|
+
],
|
|
103
124
|
"stackRelevance": ["*"],
|
|
104
125
|
"warnings": [],
|
|
105
|
-
"setupGuide":
|
|
126
|
+
"setupGuide": "Official GitHub MCP Server (github/github-mcp-server). Requires Docker."
|
|
106
127
|
}
|
|
107
128
|
},
|
|
108
|
-
"
|
|
109
|
-
"phases": ["
|
|
110
|
-
"tools": ["
|
|
111
|
-
"detection": "mcpServers includes
|
|
112
|
-
"fallback": "
|
|
113
|
-
"usage": "
|
|
129
|
+
"vercel": {
|
|
130
|
+
"phases": ["implement"],
|
|
131
|
+
"tools": ["search_docs", "list_projects", "get_deployments", "get_deployment_logs", "manage_env_vars"],
|
|
132
|
+
"detection": "mcpServers includes vercel",
|
|
133
|
+
"fallback": "Bash `vercel` CLI commands",
|
|
134
|
+
"usage": "Deployment monitoring, project management, environment variables, log analysis",
|
|
135
|
+
"healthCheck": {
|
|
136
|
+
"toolPattern": "vercel",
|
|
137
|
+
"testCall": "Call search_docs with a query to verify connectivity",
|
|
138
|
+
"testParams": { "query": "deployments" },
|
|
139
|
+
"successIndicator": "Returns documentation search results without auth errors",
|
|
140
|
+
"failureHint": "Vercel MCP not responding. Re-authenticate via /mcp in Claude Code. Ensure you have authorized the Vercel OAuth connection."
|
|
141
|
+
},
|
|
114
142
|
"install": {
|
|
115
143
|
"autoInstall": false,
|
|
144
|
+
"transport": "http",
|
|
116
145
|
"config": {
|
|
117
|
-
"
|
|
118
|
-
"
|
|
119
|
-
"env": {
|
|
120
|
-
"FIGMA_ACCESS_TOKEN": ""
|
|
121
|
-
}
|
|
146
|
+
"type": "http",
|
|
147
|
+
"url": "https://mcp.vercel.com"
|
|
122
148
|
},
|
|
123
|
-
"credentials": [
|
|
124
|
-
{
|
|
125
|
-
"name": "Figma Access Token",
|
|
126
|
-
"envVar": "FIGMA_ACCESS_TOKEN",
|
|
127
|
-
"secret": true,
|
|
128
|
-
"helpUrl": "https://www.figma.com/developers/api#access-tokens"
|
|
129
|
-
}
|
|
130
|
-
],
|
|
149
|
+
"credentials": [],
|
|
131
150
|
"prerequisites": [],
|
|
132
|
-
"stackRelevance": ["
|
|
133
|
-
"warnings": [],
|
|
134
|
-
"setupGuide":
|
|
151
|
+
"stackRelevance": ["nextjs", "nextjs-supabase", "vercel"],
|
|
152
|
+
"warnings": ["Uses OAuth — you will be prompted to authenticate via browser when first connecting."],
|
|
153
|
+
"setupGuide": "Run: claude mcp add --transport http vercel https://mcp.vercel.com"
|
|
135
154
|
}
|
|
136
155
|
},
|
|
137
156
|
"docker": {
|
|
@@ -140,8 +159,16 @@
|
|
|
140
159
|
"detection": "mcpServers includes docker",
|
|
141
160
|
"fallback": "Bash `docker` CLI commands",
|
|
142
161
|
"usage": "Container management, build and run containers",
|
|
162
|
+
"healthCheck": {
|
|
163
|
+
"toolPattern": "docker",
|
|
164
|
+
"testCall": "Call any read-only Docker tool to verify Docker daemon connectivity",
|
|
165
|
+
"testParams": {},
|
|
166
|
+
"successIndicator": "Tool responds without connection errors (Docker daemon is reachable)",
|
|
167
|
+
"failureHint": "Docker MCP not responding. Ensure Docker Desktop is running and the Docker daemon is accessible. Run 'docker info' to verify."
|
|
168
|
+
},
|
|
143
169
|
"install": {
|
|
144
170
|
"autoInstall": false,
|
|
171
|
+
"transport": "stdio",
|
|
145
172
|
"config": {
|
|
146
173
|
"command": "cmd",
|
|
147
174
|
"args": ["/c", "npx", "-y", "@modelcontextprotocol/server-docker"]
|
|
@@ -165,8 +192,16 @@
|
|
|
165
192
|
"detection": "mcpServers includes azure",
|
|
166
193
|
"fallback": "Bash `az` CLI commands",
|
|
167
194
|
"usage": "Cloud resource management, deployment",
|
|
195
|
+
"healthCheck": {
|
|
196
|
+
"toolPattern": "azure",
|
|
197
|
+
"testCall": "Call any read-only Azure tool to verify credentials and connectivity",
|
|
198
|
+
"testParams": {},
|
|
199
|
+
"successIndicator": "Tool responds without authentication or subscription errors",
|
|
200
|
+
"failureHint": "Azure MCP not responding. Verify AZURE_SUBSCRIPTION_ID in .claude/settings.local.json and ensure 'az login' has been run. Check that Azure CLI is installed with 'az --version'."
|
|
201
|
+
},
|
|
168
202
|
"install": {
|
|
169
203
|
"autoInstall": false,
|
|
204
|
+
"transport": "stdio",
|
|
170
205
|
"config": {
|
|
171
206
|
"command": "cmd",
|
|
172
207
|
"args": ["/c", "npx", "-y", "@azure/mcp-server"],
|
|
@@ -198,10 +233,10 @@
|
|
|
198
233
|
"phaseMatrix": {
|
|
199
234
|
"proposal": ["context7"],
|
|
200
235
|
"setup": ["github"],
|
|
201
|
-
"uiux": ["playwright", "
|
|
236
|
+
"uiux": ["playwright", "context7"],
|
|
202
237
|
"design": ["supabase", "context7", "github"],
|
|
203
238
|
"clarify": ["context7", "github"],
|
|
204
239
|
"tasks": ["context7", "github"],
|
|
205
|
-
"implement": ["supabase", "context7", "playwright", "github", "docker", "azure"]
|
|
240
|
+
"implement": ["supabase", "context7", "playwright", "github", "vercel", "docker", "azure"]
|
|
206
241
|
}
|
|
207
242
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: brainstorming
|
|
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]"
|
|
@@ -53,26 +53,23 @@ Read: .morph/features/{feature}/0-proposal/proposal.md
|
|
|
53
53
|
|
|
54
54
|
### Step 2: Ask Clarifying Questions
|
|
55
55
|
|
|
56
|
-
|
|
56
|
+
Use `AskUserQuestion` to collect responses — **NEVER list questions as plain text**.
|
|
57
57
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
### Q2: Constraints
|
|
63
|
-
Are there performance/budget/timeline constraints?
|
|
58
|
+
- Máximo 4 perguntas por chamada. Se precisar de 5, faça 2 chamadas sequenciais (Q1-Q4 → Q5).
|
|
59
|
+
- Para cada pergunta, defina 2-4 opções representativas (o usuário pode usar "Other" para resposta livre).
|
|
60
|
+
- **Aguarde o retorno do tool antes de prosseguir para o Step 3.**
|
|
64
61
|
|
|
65
|
-
|
|
66
|
-
Does this need to integrate with existing features?
|
|
62
|
+
Perguntas-padrão a adaptar para o contexto da feature:
|
|
67
63
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
64
|
+
| Header (≤12 chars) | Pergunta | Opções sugeridas |
|
|
65
|
+
|--------------------|----------|------------------|
|
|
66
|
+
| `Escopo` | Qual é a versão mínima viável desta feature? | MVP básico / Versão completa / Em aberto |
|
|
67
|
+
| `Constraints` | Há restrições de performance, budget ou prazo? | Sem restrições / Performance crítica / Budget limitado |
|
|
68
|
+
| `Integração` | Precisa integrar com features ou sistemas existentes? | Sim, integra com X / Feature isolada / A definir |
|
|
69
|
+
| `Usuários` | Quem são os usuários primários? | End-users / Admins / Sistema interno |
|
|
70
|
+
| `Sucesso` | Como saberemos que a feature funciona corretamente? | Métricas definidas / Testes de aceitação / Feedback do usuário |
|
|
74
71
|
|
|
75
|
-
|
|
72
|
+
> Adapte as opções ao contexto real da feature — as acima são ponto de partida, não template fixo.
|
|
76
73
|
|
|
77
74
|
### Step 3: Generate 2-3 Approaches
|
|
78
75
|
|
|
@@ -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` (ver skill: `simulation-checklist`)
|
|
10
|
+
Types: `deploy`, `security`, `seo`, `performance`, `accessibility`, `legal-brazil`, `simulation` (ver skill: `morph:simulation-checklist`)
|
|
11
11
|
|
|
12
12
|
---
|
|
13
13
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: code-review
|
|
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
|
|
@@ -26,7 +26,7 @@ git diff --name-only main...HEAD -- "*.cs" | wc -l
|
|
|
26
26
|
**Pular revisão se:**
|
|
27
27
|
- 0 arquivos `.cs` alterados → sem código backend para revisar
|
|
28
28
|
- Apenas mudanças em `*.json`, `*.csproj`, `*.md`, arquivos de migration → escopo de infra
|
|
29
|
-
- Já existe `.morph/features/$ARGUMENTS/
|
|
29
|
+
- Já existe `.morph/features/$ARGUMENTS/5-implement/code-review.md` criado hoje → já revisado
|
|
30
30
|
|
|
31
31
|
Se skip: output `"Skipping code-review: [motivo]"` e parar.
|
|
32
32
|
|