@polymorphism-tech/morph-spec 4.10.8 → 4.10.10

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 (116) hide show
  1. package/CLAUDE.md +3 -3
  2. package/LICENSE +71 -71
  3. package/README.md +2 -2
  4. package/bin/morph-spec.js +22 -0
  5. package/claude-plugin.json +1 -1
  6. package/docs/CHEATSHEET.md +1 -1
  7. package/docs/QUICKSTART.md +1 -1
  8. package/framework/agents/README.md +14 -14
  9. package/framework/agents/architecture/standards-architect.md +159 -159
  10. package/framework/agents/infrastructure/azure-architect.md +149 -149
  11. package/framework/agents/infrastructure/infra-architect.md +48 -48
  12. package/framework/hooks/README.md +204 -204
  13. package/framework/hooks/shared/phase-utils.js +139 -139
  14. package/framework/rules/csharp-standards.md +13 -13
  15. package/framework/rules/frontend-standards.md +13 -13
  16. package/framework/rules/infrastructure-standards.md +16 -16
  17. package/framework/rules/testing-standards.md +14 -14
  18. package/framework/skills/level-0-meta/morph-code-review-nextjs/references/review-example-nextjs.md +254 -254
  19. package/framework/skills/level-0-meta/morph-init/SKILL.md +57 -9
  20. package/framework/skills/level-1-workflows/morph-phase-clarify/SKILL.md +1 -1
  21. package/framework/skills/level-1-workflows/morph-phase-codebase-analysis/SKILL.md +1 -1
  22. package/framework/skills/level-1-workflows/morph-phase-design/SKILL.md +1 -1
  23. package/framework/skills/level-1-workflows/morph-phase-implement/.morph/logs/activity.json +38 -0
  24. package/framework/skills/level-1-workflows/morph-phase-implement/SKILL.md +1 -1
  25. package/framework/skills/level-1-workflows/morph-phase-plan/SKILL.md +1 -1
  26. package/framework/skills/level-1-workflows/morph-phase-setup/SKILL.md +1 -1
  27. package/framework/skills/level-1-workflows/morph-phase-tasks/.morph/logs/activity.json +14 -0
  28. package/framework/skills/level-1-workflows/morph-phase-tasks/SKILL.md +1 -1
  29. package/framework/skills/level-1-workflows/morph-phase-uiux/SKILL.md +49 -16
  30. package/framework/skills/level-1-workflows/morph-scope-escalation/SKILL.md +1 -1
  31. package/framework/standards/STANDARDS.json +2338 -2041
  32. package/framework/standards/frontend/nextjs/nextjs-patterns.md +17 -17
  33. package/framework/standards/infrastructure/supabase/supabase-custom-jwt.md +206 -0
  34. package/framework/templates/.idea/morph-templates.xml +92 -0
  35. package/framework/templates/.vscode/morph-templates.code-snippets +186 -0
  36. package/framework/templates/README.md +814 -814
  37. package/framework/templates/code/dotnet/contracts/Commands.cs +74 -74
  38. package/framework/templates/code/dotnet/contracts/Entities.cs +25 -25
  39. package/framework/templates/code/dotnet/contracts/Queries.cs +74 -74
  40. package/framework/templates/code/dotnet/contracts/README.md +74 -74
  41. package/framework/templates/code/dotnet/contracts/api-contracts.cs +173 -173
  42. package/framework/templates/code/dotnet/frontend/component.razor +239 -239
  43. package/framework/templates/code/dotnet/jobs/agent.cs +163 -163
  44. package/framework/templates/code/dotnet/jobs/job.cs +171 -171
  45. package/framework/templates/code/dotnet/test.cs +239 -239
  46. package/framework/templates/code/sql/rls-policy.sql +57 -57
  47. package/framework/templates/code/sql/supabase-migration.sql +100 -100
  48. package/framework/templates/code/sql/supabase-migration.template.sql +113 -113
  49. package/framework/templates/code/typescript/contracts.ts +168 -168
  50. package/framework/templates/context/CONTEXT.md +181 -181
  51. package/framework/templates/docs/proposal.md +182 -182
  52. package/framework/templates/docs/user-stories.md +34 -34
  53. package/framework/templates/examples/design-system-examples.md +357 -357
  54. package/framework/templates/examples/spec-examples.md +90 -90
  55. package/framework/templates/feature/decisions.md +187 -187
  56. package/framework/templates/feature/recap.md +146 -146
  57. package/framework/templates/feature/tasks.md +199 -199
  58. package/framework/templates/infrastructure/azure/README.md +286 -286
  59. package/framework/templates/infrastructure/azure/deploy-checklist.md +426 -426
  60. package/framework/templates/infrastructure/azure/parameters.dev.json +29 -29
  61. package/framework/templates/infrastructure/azure/parameters.prod.json +29 -29
  62. package/framework/templates/infrastructure/azure/parameters.staging.json +29 -29
  63. package/framework/templates/infrastructure/docker/docker-compose.template.yml +67 -67
  64. package/framework/templates/infrastructure/docker/dockerfile-api.dockerfile +38 -38
  65. package/framework/templates/infrastructure/docker/dockerfile-web.dockerfile +48 -48
  66. package/framework/templates/infrastructure/docker/easypanel.template.json +54 -54
  67. package/package.json +1 -1
  68. package/src/commands/agents/dispatch-agents.js +17 -0
  69. package/src/commands/agents/index.js +13 -13
  70. package/src/commands/agents/project-metrics.js +74 -0
  71. package/src/commands/project/install-plugin-cmd.js +28 -28
  72. package/src/commands/project/setup-infra-cmd.js +12 -12
  73. package/src/commands/standards/context-budget.js +89 -0
  74. package/src/commands/tasks/index.js +4 -4
  75. package/src/commands/templates/index.js +5 -5
  76. package/src/commands/utils/index.js +3 -3
  77. package/src/commands/validation/index.js +4 -4
  78. package/src/core/state/phase-state-machine.js +217 -217
  79. package/src/lib/agents/metrics-aggregator.js +56 -0
  80. package/src/lib/detectors/design-system-detector.js +73 -31
  81. package/src/lib/generators/design-system-generator.js +298 -298
  82. package/src/lib/generators/index.js +10 -10
  83. package/src/lib/generators/metadata-extractor.js +387 -387
  84. package/src/lib/stack-filter.js +65 -65
  85. package/src/lib/standards/digest-builder.js +57 -3
  86. package/src/lib/standards/index.js +7 -7
  87. package/src/lib/standards/standards-context-injector.js +302 -302
  88. package/src/lib/validators/architecture/architecture-validator.js +387 -387
  89. package/src/lib/validators/architecture/index.js +7 -7
  90. package/src/lib/validators/blazor/blazor-concurrency-analyzer.js +316 -316
  91. package/src/lib/validators/blazor/blazor-state-validator.js +279 -279
  92. package/src/lib/validators/blazor/blazor-validator.js +369 -369
  93. package/src/lib/validators/blazor/index.js +9 -9
  94. package/src/lib/validators/content/content-validator.js +287 -287
  95. package/src/lib/validators/content/index.js +7 -7
  96. package/src/lib/validators/contracts/index.js +7 -7
  97. package/src/lib/validators/css/css-validator.js +352 -352
  98. package/src/lib/validators/css/index.js +7 -7
  99. package/src/lib/validators/design-system/design-system-validator.js +231 -231
  100. package/src/lib/validators/design-system/index.js +7 -7
  101. package/src/lib/validators/nextjs/index.js +6 -6
  102. package/src/lib/validators/nextjs/next-component-validator.js +183 -183
  103. package/src/lib/validators/packages/index.js +7 -7
  104. package/src/lib/validators/packages/package-validator.js +360 -360
  105. package/src/lib/validators/shared/index.js +12 -12
  106. package/src/lib/validators/shared/issue-counter.js +18 -18
  107. package/src/lib/validators/shared/result-formatter.js +124 -124
  108. package/src/lib/validators/ui/index.js +7 -7
  109. package/src/lib/validators/ui/ui-contrast-validator.js +422 -422
  110. package/src/scripts/global-install.js +58 -58
  111. package/src/scripts/install-plugin.js +126 -126
  112. package/src/utils/claude-md-injector.js +90 -90
  113. package/src/utils/file-copier.js +200 -200
  114. package/src/utils/logger.js +32 -32
  115. package/src/utils/skills-installer.js +178 -178
  116. package/src/utils/version-checker.js +175 -175
@@ -0,0 +1,38 @@
1
+ {
2
+ "sessionId": "",
3
+ "feature": "",
4
+ "phase": "",
5
+ "hooks": [
6
+ {
7
+ "name": "set-terminal-title",
8
+ "event": "UserPromptSubmit",
9
+ "result": "failed",
10
+ "ts": "16:06:20"
11
+ },
12
+ {
13
+ "name": "set-terminal-title",
14
+ "event": "UserPromptSubmit",
15
+ "result": "failed",
16
+ "ts": "16:12:07"
17
+ },
18
+ {
19
+ "name": "set-terminal-title",
20
+ "event": "UserPromptSubmit",
21
+ "result": "failed",
22
+ "ts": "16:12:15"
23
+ },
24
+ {
25
+ "name": "set-terminal-title",
26
+ "event": "UserPromptSubmit",
27
+ "result": "failed",
28
+ "ts": "16:12:15"
29
+ },
30
+ {
31
+ "name": "set-terminal-title",
32
+ "event": "UserPromptSubmit",
33
+ "result": "failed",
34
+ "ts": "16:12:40"
35
+ }
36
+ ],
37
+ "skills": []
38
+ }
@@ -5,7 +5,7 @@ argument-hint: "[feature-name]"
5
5
  context: fork
6
6
  agent: general-purpose
7
7
  user-invocable: false
8
- cliVersion: "4.10.8"
8
+ cliVersion: "4.10.10"
9
9
  allowed-tools: Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion, Agent
10
10
  ---
11
11
 
@@ -4,7 +4,7 @@ description: MORPH-SPEC Phase 4 (Plan). Generates a detailed implementation plan
4
4
  argument-hint: "[feature-name]"
5
5
  user-invocable: false
6
6
  allowed-tools: Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion
7
- cliVersion: "4.10.8"
7
+ cliVersion: "4.10.10"
8
8
  ---
9
9
 
10
10
  # MORPH Plan — Phase 4
@@ -4,7 +4,7 @@ description: MORPH-SPEC Phase 1 (Setup). Reads project context, detects tech sta
4
4
  argument-hint: "[feature-name]"
5
5
  user-invocable: false
6
6
  allowed-tools: Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion
7
- cliVersion: "4.10.8"
7
+ cliVersion: "4.10.10"
8
8
  ---
9
9
 
10
10
  # MORPH Setup — Phase 1
@@ -0,0 +1,14 @@
1
+ {
2
+ "sessionId": "",
3
+ "feature": "",
4
+ "phase": "",
5
+ "hooks": [
6
+ {
7
+ "name": "set-terminal-title",
8
+ "event": "UserPromptSubmit",
9
+ "result": "failed",
10
+ "ts": "16:38:44"
11
+ }
12
+ ],
13
+ "skills": []
14
+ }
@@ -4,7 +4,7 @@ description: MORPH-SPEC Phase 4 (Tasks). Breaks approved spec into bottom-up ord
4
4
  argument-hint: "[feature-name]"
5
5
  user-invocable: false
6
6
  allowed-tools: Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion
7
- cliVersion: "4.10.8"
7
+ cliVersion: "4.10.10"
8
8
  ---
9
9
 
10
10
  # MORPH Tasks — Phase 4
@@ -4,7 +4,7 @@ description: MORPH-SPEC Phase 1.5 (UI/UX). Creates design-system.md, mockups.md,
4
4
  argument-hint: "[feature-name]"
5
5
  user-invocable: false
6
6
  allowed-tools: Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion
7
- cliVersion: "4.10.8"
7
+ cliVersion: "4.10.10"
8
8
  ---
9
9
 
10
10
  # MORPH UI/UX Design - Phase 1.5
@@ -70,31 +70,64 @@ Check the `"phase"` field in the output:
70
70
 
71
71
  ---
72
72
 
73
- ### Step 0.5: Check Design System Exists
73
+ ### Step 0.5: Check Design System
74
74
 
75
- **CRITICAL:** Before starting UI/UX phase, check if a design system exists:
75
+ **This step is MANDATORY and must always run before Step 1.**
76
+
77
+ #### Step 0.5.1 — Scan frontend for CSS tokens (ALWAYS)
78
+
79
+ Search for existing CSS custom properties in the project's frontend directories.
80
+
81
+ Glob these patterns (exclude `node_modules/`, `.next/`, `dist/`, `build/`):
82
+ ```
83
+ wwwroot/**/*.css
84
+ wwwroot/**/*.scss
85
+ styles/**/*.css
86
+ src/styles/**/*.css
87
+ src/**/*.css
88
+ src/**/*.scss
89
+ src/**/*.module.css
90
+ public/**/*.css
91
+ ```
92
+
93
+ For each CSS/SCSS file found, Grep for `:root {` blocks containing `--` custom properties.
94
+
95
+ Classify found tokens:
96
+ - **Colors**: lines with `--color-*`, or any `--*` containing `#hex` / `rgb(...)`
97
+ - **Fonts**: `--font-*` or `font-family:` declarations
98
+ - **Spacing**: `--space-*`, `--gap-*`, `--size-*` with rem/px values
99
+
100
+ Track: `cssTokensFound` (bool), token counts by category, source file list.
101
+
102
+ #### Step 0.5.2 — Check if design-system.md exists
76
103
 
77
104
  ```
78
105
  Read: .morph/context/design-system.md
79
106
  ```
80
107
 
81
- If the file doesn't exist (design system not found):
108
+ Track: `dsExists` (bool).
109
+
110
+ #### Step 0.5.3 — Decision tree (4 cases)
111
+
112
+ | Case | Condition | Action |
113
+ |------|-----------|--------|
114
+ | **A** | `dsExists` AND `cssTokensFound` | Cross-check DS vs scanned tokens. If >2 colors diverge, flag misalignment and ask user if they want to update DS with `AskUserQuestion`. Proceed to Step 1. |
115
+ | **B** | `dsExists` AND NOT `cssTokensFound` | Print: `✓ Design system found (no CSS tokens to cross-check)`. Proceed to Step 1. |
116
+ | **C** | NOT `dsExists` AND `cssTokensFound` | Auto-generate `.morph/context/design-system.md` from scanned tokens (see Case C detail below). Proceed to Step 1. |
117
+ | **D** | NOT `dsExists` AND NOT `cssTokensFound` | Greenfield project. Ask user for aesthetic direction + brand color using `AskUserQuestion` (same options as morph-init). Scaffold from template. Proceed to Step 1. |
82
118
 
83
- 1. **Option A - Automatic scaffold:**
84
- - The system will automatically create a design system when advancing to implementation
85
- - You can generate manually now: `npx morph-spec generate design-system`
119
+ **Case C — auto-generate from scanned tokens:**
86
120
 
87
- 2. **Option B - Create manually:**
88
- - Create `.morph/context/design-system.md` (project-level, shared)
89
- - Or `.morph/features/$ARGUMENTS/2-ui/design-system.md` (feature-specific)
121
+ Create `.morph/context/design-system.md` with these sections populated from scan results:
122
+ - `## Color Tokens` → `:root { }` block with all found color variables (preserve exact variable names)
123
+ - `## Typography` → found font-family values (map by variable name heuristic: `--font-display` vs `--font-body`)
124
+ - `## Spacing Tokens` → found spacing variables
125
+ - `## Aesthetic Direction` → `#TODO` (requires user judgment, fill in manually)
126
+ - `## Changelog` → `- [today's date] [morph-phase-uiux] Auto-generated from CSS scan ([N] tokens from [files])`
90
127
 
91
- 3. **Option C - Scan existing CSS:**
92
- - If the project already has CSS with variables: `npx morph-spec generate design-system --scan`
128
+ Print: `✓ Design system generated from [N] tokens — .morph/context/design-system.md`
93
129
 
94
- **IMPORTANT:**
95
- - Design system is **mandatory** for UI features
96
- - Automatic gate will block implementation (Phase 5) if design system doesn't exist
97
- - Better to create now to ensure visual consistency
130
+ > **Design system is mandatory** for UI features. The implementation gate (Phase 5) will block if no design system exists.
98
131
 
99
132
  ### Step 1: Detect If Phase Is Needed
100
133
 
@@ -4,7 +4,7 @@ description: Guided workflow for mid-implementation scope escalation — analyze
4
4
  user-invocable: true
5
5
  argument-hint: "[feature-name]"
6
6
  allowed-tools: Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion
7
- cliVersion: "4.10.8"
7
+ cliVersion: "4.10.10"
8
8
  ---
9
9
 
10
10
  # Scope Escalation Workflow