@polymorphism-tech/morph-spec 7.7.3 → 7.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (187) hide show
  1. package/README.md +2 -2
  2. package/bin/validate.js +379 -379
  3. package/claude-plugin.json +1 -1
  4. package/docs/CHEATSHEET.md +1 -1
  5. package/docs/QUICKSTART.md +1 -1
  6. package/framework/CLAUDE.md +1 -1
  7. package/framework/MORPH.md +3 -2
  8. package/framework/agents.json +1 -1
  9. package/framework/commands/commit.md +166 -166
  10. package/framework/commands/morph-infra.md +215 -215
  11. package/framework/commands/morph-preflight.md +205 -205
  12. package/framework/commands/morph-troubleshoot.md +124 -124
  13. package/framework/evals/scenarios/dotnet-crud.yaml +1 -1
  14. package/framework/hooks/claude-code/statusline.py +679 -679
  15. package/framework/hooks/claude-code/statusline.sh +11 -11
  16. package/framework/hooks/git/commit-msg/conventional-commits.sh +33 -33
  17. package/framework/hooks/git/pre-commit/agents.sh +25 -25
  18. package/framework/hooks/git/pre-commit/orchestrator.sh +64 -64
  19. package/framework/hooks/git/pre-commit/specs.sh +50 -50
  20. package/framework/hooks/git/pre-push/run-tests.sh +44 -44
  21. package/framework/hooks/shared/activity-logger.js +160 -160
  22. package/framework/hooks/shared/hook-response.js +45 -45
  23. package/framework/hooks/shared/payload-utils.js +78 -78
  24. package/framework/hooks/shared/stdin-reader.js +26 -26
  25. package/framework/rubrics/backend.json +41 -41
  26. package/framework/rules/ai-agents-standards.md +45 -45
  27. package/framework/rules/dotnet-templates.md +86 -87
  28. package/framework/rules/frontend-standards.md +13 -13
  29. package/framework/rules/infrastructure-standards.md +27 -27
  30. package/framework/rules/neon-standards.md +25 -25
  31. package/framework/rules/nextjs-standards.md +20 -20
  32. package/framework/rules/nextjs-templates.md +40 -40
  33. package/framework/skills/core/create-umbraco-lp/SKILL.md +1 -1
  34. package/framework/skills/core/migrate-lp-to-umbraco/SKILL.md +1 -1
  35. package/framework/skills/core/morph-apply/SKILL.md +1 -1
  36. package/framework/skills/core/morph-brainstorming/SKILL.md +9 -5
  37. package/framework/skills/core/morph-eval/SKILL.md +1 -1
  38. package/framework/skills/core/morph-implement/SKILL.md +1 -1
  39. package/framework/skills/core/morph-plan/SKILL.md +11 -6
  40. package/framework/skills/core/morph-proposal/SKILL.md +1 -1
  41. package/framework/skills/core/morph-review/SKILL.md +13 -7
  42. package/framework/skills/core/morph-stack-scan/SKILL.md +5 -5
  43. package/framework/skills/core/morph-standards/SKILL.md +1 -1
  44. package/framework/standards/STANDARDS.json +1 -1
  45. package/framework/standards/ai-agents/agent-session.md +160 -160
  46. package/framework/standards/ai-agents/batching.md +193 -193
  47. package/framework/standards/ai-agents/context-providers.md +188 -188
  48. package/framework/standards/ai-agents/mcp-server.md +250 -250
  49. package/framework/standards/ai-agents/mcp-tools.md +197 -197
  50. package/framework/standards/ai-agents/middleware-patterns.md +207 -207
  51. package/framework/standards/ai-agents/modalities-image-gen.md +173 -173
  52. package/framework/standards/ai-agents/modalities-speech-to-text.md +171 -171
  53. package/framework/standards/ai-agents/modalities-text-to-speech.md +181 -181
  54. package/framework/standards/ai-agents/modalities-vision.md +201 -201
  55. package/framework/standards/ai-agents/multi-agent-patterns.md +155 -155
  56. package/framework/standards/ai-agents/production.md +275 -275
  57. package/framework/standards/ai-agents/prompts-in-db.md +214 -214
  58. package/framework/standards/ai-agents/providers/model-registry.md +158 -158
  59. package/framework/standards/ai-agents/service-tier-flex.md +135 -135
  60. package/framework/standards/ai-agents/structured-output.md +249 -249
  61. package/framework/standards/ai-agents/sweet-spot.md +109 -109
  62. package/framework/standards/architecture/vertical-slice/vertical-slice.md +34 -35
  63. package/framework/standards/backend/api/validation.md +2 -2
  64. package/framework/standards/backend/dotnet/scrutor.md +1 -3
  65. package/framework/standards/backend/dotnet/vsa-handler-patterns.md +42 -37
  66. package/framework/standards/data/nosql/cache/redis.md +2 -2
  67. package/framework/templates/CLAUDE.md.core.template +1 -1
  68. package/framework/templates/IDE-SNIPPETS.md +262 -262
  69. package/framework/templates/README.md +0 -1
  70. package/framework/templates/REGISTRY.json +0 -21
  71. package/framework/templates/code/dotnet/abstractions/api-endpoint.cs +7 -7
  72. package/framework/templates/code/dotnet/abstractions/handler.cs +0 -3
  73. package/framework/templates/code/dotnet/ai-agents/AgentBootstrap.cs.template +39 -39
  74. package/framework/templates/code/dotnet/ai-agents/EmbeddingService.cs.template +68 -68
  75. package/framework/templates/code/dotnet/ai-agents/ModelRegistry.cs.template +117 -117
  76. package/framework/templates/code/dotnet/ai-agents/PromptRepository.cs.template +95 -95
  77. package/framework/templates/code/dotnet/ai-agents/ResilientToolMiddleware.cs.template +61 -61
  78. package/framework/templates/code/dotnet/ai-agents/VectorSearchTool.cs.template +107 -107
  79. package/framework/templates/code/dotnet/ai-agents/model-registry.json.template +58 -58
  80. package/framework/templates/code/dotnet/constants/api-tags.cs +1 -1
  81. package/framework/templates/code/dotnet/contracts/contracts-vsa.cs +281 -282
  82. package/framework/templates/code/dotnet/database/migration.cs +83 -83
  83. package/framework/templates/code/dotnet/feature/endpoint.cs.hbs +21 -21
  84. package/framework/templates/code/dotnet/feature/handler.cs.hbs +23 -24
  85. package/framework/templates/code/dotnet/feature/request.cs.hbs +4 -4
  86. package/framework/templates/code/dotnet/feature/response.cs.hbs +4 -4
  87. package/framework/templates/code/dotnet/feature/validator.cs.hbs +15 -15
  88. package/framework/templates/code/dotnet/jobs/job.cs +15 -15
  89. package/framework/templates/code/dotnet/test.cs +72 -101
  90. package/framework/templates/code/sql/ai-agents/agent-prompts-migration.sql.template +58 -58
  91. package/framework/templates/code/sql/ai-agents/pgvector-embeddings-migration.sql.template +91 -91
  92. package/framework/templates/code/typescript/contracts.ts +167 -167
  93. package/framework/templates/docs/clarifications.md +253 -253
  94. package/framework/templates/docs/schema-analysis.md +119 -119
  95. package/framework/templates/docs/ui-components.md +52 -52
  96. package/framework/templates/docs/ui-design-system.md +76 -76
  97. package/framework/templates/docs/ui-flows.md +167 -167
  98. package/framework/templates/docs/ui-mockups.md +98 -98
  99. package/framework/templates/feature/decisions.md +122 -122
  100. package/framework/templates/frontend/nextjs/Dockerfile.nextjs.hbs +43 -43
  101. package/framework/templates/frontend/nextjs/client-component.tsx.hbs +26 -26
  102. package/framework/templates/frontend/nextjs/env.mjs.hbs +32 -32
  103. package/framework/templates/frontend/nextjs/feature-form.tsx.hbs +56 -56
  104. package/framework/templates/frontend/nextjs/page.tsx.hbs +22 -22
  105. package/framework/templates/frontend/nextjs/tsconfig.json.hbs +26 -26
  106. package/framework/templates/frontend/nextjs/use-feature.ts.hbs +54 -54
  107. package/framework/templates/infrastructure/docker/Dockerfile.template +58 -58
  108. package/framework/templates/infrastructure/docker/docker-compose.template.yml +50 -50
  109. package/framework/templates/infrastructure/docker/dockerfile-api.dockerfile +38 -38
  110. package/framework/templates/infrastructure/docker/dockerfile-web.dockerfile +48 -48
  111. package/framework/templates/infrastructure/github/README.md +56 -56
  112. package/framework/templates/infrastructure/github/actions/docker-build-push/action.yml.hbs +45 -45
  113. package/framework/templates/infrastructure/github/actions/health-check/action.yml.hbs +27 -27
  114. package/framework/templates/infrastructure/github/workflows/docker-build-push.yml.hbs +59 -59
  115. package/framework/templates/infrastructure/github/workflows/dotnet-build.yml.hbs +39 -39
  116. package/framework/templates/integrations/asaas-client.cs +387 -387
  117. package/framework/templates/integrations/asaas-webhook.cs +351 -351
  118. package/framework/templates/meta-prompts/fusion/fusion-agent.md +76 -76
  119. package/framework/templates/meta-prompts/fusion/fusion-aggregator.md +100 -100
  120. package/framework/templates/meta-prompts/parallel-workers/parallel-coordinator.md +113 -113
  121. package/framework/templates/meta-prompts/validators/pre-commit-validator.md +95 -95
  122. package/framework/templates/project/validate.js +120 -120
  123. package/framework/templates/state.template.json +17 -17
  124. package/framework/templates/ui/design-system.css +226 -226
  125. package/package.json +1 -1
  126. package/src/commands/dashboard/dashboard.js +53 -53
  127. package/src/commands/index.js +13 -13
  128. package/src/commands/mcp/mcp-setup.js +519 -519
  129. package/src/commands/project/checkpoint.js +209 -209
  130. package/src/commands/project/update.js +7 -4
  131. package/src/core/state/phase-state-machine.js +197 -197
  132. package/src/core/templates/template-renderer.js +477 -477
  133. package/src/dashboard/app/components/DetailPanel.jsx +11 -11
  134. package/src/dashboard/app/components/FlowGraph.jsx +17 -17
  135. package/src/dashboard/app/components/SearchFilter.jsx +22 -22
  136. package/src/dashboard/app/hooks/useDetailPanel.js +15 -15
  137. package/src/dashboard/app/main.jsx +13 -13
  138. package/src/dashboard/app/pages/AgentMap.jsx +370 -370
  139. package/src/dashboard/app/pages/HookInspector.jsx +418 -418
  140. package/src/dashboard/app/pages/LiveState.jsx +239 -239
  141. package/src/dashboard/app/pages/PhasePipeline.jsx +408 -408
  142. package/src/dashboard/app/pages/RulesMap.jsx +273 -273
  143. package/src/dashboard/app/pages/SkillsLibrary.jsx +366 -366
  144. package/src/dashboard/app/pages/Standards.jsx +332 -332
  145. package/src/dashboard/app/styles/index.css +47 -47
  146. package/src/dashboard/index.html +12 -12
  147. package/src/dashboard/package.json +24 -24
  148. package/src/dashboard/scanner/hooks-scanner.js +41 -41
  149. package/src/dashboard/scanner/phases-scanner.js +15 -15
  150. package/src/dashboard/scanner/rubrics-scanner.js +12 -12
  151. package/src/dashboard/scanner/rules-scanner.js +37 -37
  152. package/src/dashboard/scanner/skills-scanner.js +43 -43
  153. package/src/dashboard/scanner/squads-scanner.js +13 -13
  154. package/src/dashboard/scanner/standards-scanner.js +26 -26
  155. package/src/dashboard/vite-plugin-morph-data.js +17 -17
  156. package/src/dashboard/vite.config.js +24 -24
  157. package/src/lib/agents/metrics-aggregator.js +56 -56
  158. package/src/lib/agents/metrics-calculator.js +125 -125
  159. package/src/lib/agents/output-collector.js +73 -73
  160. package/src/lib/detectors/claude-config-detector.js +152 -152
  161. package/src/lib/detectors/design-system-detector.js +231 -231
  162. package/src/lib/detectors/index.js +217 -217
  163. package/src/lib/generators/architecture-scanner.js +639 -639
  164. package/src/lib/generators/design-system-generator.js +508 -508
  165. package/src/lib/generators/index.js +13 -13
  166. package/src/lib/generators/settings-generator.js +209 -209
  167. package/src/lib/hooks/hook-executor.js +167 -167
  168. package/src/lib/installers/mcp-installer.js +719 -719
  169. package/src/lib/tasks/task-classifier.js +30 -30
  170. package/src/lib/tasks/task-parser.js +209 -209
  171. package/src/lib/tasks/test-runner.js +81 -81
  172. package/src/lib/validators/architecture/architecture-validator.js +259 -259
  173. package/src/lib/validators/checkpoint-persistence.js +39 -39
  174. package/src/lib/validators/contracts/contract-compliance-validator.js +274 -274
  175. package/src/lib/validators/css/css-validator.js +340 -340
  176. package/src/lib/validators/packages/package-validator.js +347 -347
  177. package/src/lib/validators/shared/emit-validator-dispatch.js +14 -14
  178. package/src/lib/validators/shared/issue-counter.js +14 -14
  179. package/src/lib/validators/validation-runner.js +349 -349
  180. package/src/scripts/setup-infra.js +383 -383
  181. package/src/utils/agent-id-mapper.js +11 -11
  182. package/src/utils/banner.js +52 -43
  183. package/src/utils/claude-settings-manager.js +300 -300
  184. package/src/utils/skills-installer.js +172 -172
  185. package/framework/templates/.idea/morph-templates.xml +0 -92
  186. package/framework/templates/.vscode/morph-templates.code-snippets +0 -186
  187. package/framework/templates/code/dotnet/backend/repository.cs +0 -141
@@ -1,167 +1,167 @@
1
- // ============================================================
2
- // CONTRACTS: {{titleCase FEATURE_NAME}}
3
- // Stack: Next.js + Neon
4
- // Generated by MORPH Framework
5
- // Date: {{DATE}}
6
- // ============================================================
7
-
8
- // ----- Neon Config -----
9
-
10
- export interface NeonConfig {
11
- connectionString: string;
12
- }
13
-
14
- // ----- API Client Types -----
15
-
16
- export interface ApiClientConfig {
17
- baseUrl: string;
18
- getAccessToken: () => Promise<string | null>;
19
- }
20
-
21
- export interface ApiError {
22
- message: string;
23
- code: string;
24
- statusCode: number;
25
- details?: Record<string, string[]>;
26
- }
27
-
28
- export type ApiResult<T> =
29
- | { success: true; data: T }
30
- | { success: false; error: ApiError };
31
-
32
- // ----- Pagination -----
33
-
34
- export interface PaginationQuery {
35
- page?: number;
36
- pageSize?: number;
37
- }
38
-
39
- export interface PagedResult<T> {
40
- items: T[];
41
- totalCount: number;
42
- page: number;
43
- pageSize: number;
44
- totalPages: number;
45
- hasNext: boolean;
46
- hasPrevious: boolean;
47
- }
48
-
49
- // ----- Database Client Type Aliases -----
50
- // Generated by your ORM (Drizzle or Prisma) from your Neon PostgreSQL schema
51
-
52
- export type Tables<T extends keyof Database["public"]["Tables"]> =
53
- Database["public"]["Tables"][T]["Row"];
54
-
55
- export type Insertable<T extends keyof Database["public"]["Tables"]> =
56
- Database["public"]["Tables"][T]["Insert"];
57
-
58
- export type Updatable<T extends keyof Database["public"]["Tables"]> =
59
- Database["public"]["Tables"][T]["Update"];
60
-
61
- // ----- Database Schema (placeholder - replace with generated types) -----
62
-
63
- export interface Database {
64
- public: {
65
- Tables: {
66
- {{FEATURE_NAME}}: {
67
- Row: {
68
- id: string;
69
- name: string;
70
- user_id: string;
71
- status: {{pascalCase FEATURE_NAME}}Status;
72
- created_at: string;
73
- updated_at: string | null;
74
- };
75
- Insert: {
76
- id?: string;
77
- name: string;
78
- user_id?: string;
79
- status?: {{pascalCase FEATURE_NAME}}Status;
80
- created_at?: string;
81
- updated_at?: string | null;
82
- };
83
- Update: {
84
- id?: string;
85
- name?: string;
86
- user_id?: string;
87
- status?: {{pascalCase FEATURE_NAME}}Status;
88
- created_at?: string;
89
- updated_at?: string | null;
90
- };
91
- };
92
- };
93
- Views: Record<string, never>;
94
- Functions: Record<string, never>;
95
- Enums: {
96
- {{FEATURE_NAME}}_status: {{pascalCase FEATURE_NAME}}Status;
97
- };
98
- };
99
- }
100
-
101
- // ----- Feature Types -----
102
-
103
- export type {{pascalCase FEATURE_NAME}}Status =
104
- | "draft"
105
- | "active"
106
- | "completed"
107
- | "archived"
108
- | "failed"
109
- | "cancelled";
110
-
111
- export interface {{pascalCase FEATURE_NAME}} {
112
- id: string;
113
- name: string;
114
- userId: string;
115
- status: {{pascalCase FEATURE_NAME}}Status;
116
- createdAt: string;
117
- updatedAt: string | null;
118
- }
119
-
120
- export interface Create{{pascalCase FEATURE_NAME}}Input {
121
- name: string;
122
- // Add other required fields
123
- }
124
-
125
- export interface Update{{pascalCase FEATURE_NAME}}Input {
126
- name?: string;
127
- // Add other updatable fields
128
- }
129
-
130
- // ----- Storage Types -----
131
-
132
- export interface StorageUpload {
133
- bucket: string;
134
- path: string;
135
- file: File;
136
- contentType?: string;
137
- }
138
-
139
- export interface StorageFile {
140
- id: string;
141
- name: string;
142
- bucket: string;
143
- path: string;
144
- publicUrl: string;
145
- size: number;
146
- contentType: string;
147
- createdAt: string;
148
- }
149
-
150
- // ----- Auth Types -----
151
-
152
- export interface AuthUser {
153
- id: string;
154
- email: string;
155
- displayName: string | null;
156
- avatarUrl: string | null;
157
- }
158
-
159
- export interface AuthSession {
160
- user: AuthUser;
161
- accessToken: string;
162
- expiresAt: number;
163
- }
164
-
165
- // ----- Form Schemas (use with zod) -----
166
- // Define zod schemas in component files, not here.
167
- // This file is for type definitions only.
1
+ // ============================================================
2
+ // CONTRACTS: {{titleCase FEATURE_NAME}}
3
+ // Stack: Next.js + Neon
4
+ // Generated by MORPH Framework
5
+ // Date: {{DATE}}
6
+ // ============================================================
7
+
8
+ // ----- Neon Config -----
9
+
10
+ export interface NeonConfig {
11
+ connectionString: string;
12
+ }
13
+
14
+ // ----- API Client Types -----
15
+
16
+ export interface ApiClientConfig {
17
+ baseUrl: string;
18
+ getAccessToken: () => Promise<string | null>;
19
+ }
20
+
21
+ export interface ApiError {
22
+ message: string;
23
+ code: string;
24
+ statusCode: number;
25
+ details?: Record<string, string[]>;
26
+ }
27
+
28
+ export type ApiResult<T> =
29
+ | { success: true; data: T }
30
+ | { success: false; error: ApiError };
31
+
32
+ // ----- Pagination -----
33
+
34
+ export interface PaginationQuery {
35
+ page?: number;
36
+ pageSize?: number;
37
+ }
38
+
39
+ export interface PagedResult<T> {
40
+ items: T[];
41
+ totalCount: number;
42
+ page: number;
43
+ pageSize: number;
44
+ totalPages: number;
45
+ hasNext: boolean;
46
+ hasPrevious: boolean;
47
+ }
48
+
49
+ // ----- Database Client Type Aliases -----
50
+ // Generated by your ORM (Drizzle or Prisma) from your Neon PostgreSQL schema
51
+
52
+ export type Tables<T extends keyof Database["public"]["Tables"]> =
53
+ Database["public"]["Tables"][T]["Row"];
54
+
55
+ export type Insertable<T extends keyof Database["public"]["Tables"]> =
56
+ Database["public"]["Tables"][T]["Insert"];
57
+
58
+ export type Updatable<T extends keyof Database["public"]["Tables"]> =
59
+ Database["public"]["Tables"][T]["Update"];
60
+
61
+ // ----- Database Schema (placeholder - replace with generated types) -----
62
+
63
+ export interface Database {
64
+ public: {
65
+ Tables: {
66
+ {{FEATURE_NAME}}: {
67
+ Row: {
68
+ id: string;
69
+ name: string;
70
+ user_id: string;
71
+ status: {{pascalCase FEATURE_NAME}}Status;
72
+ created_at: string;
73
+ updated_at: string | null;
74
+ };
75
+ Insert: {
76
+ id?: string;
77
+ name: string;
78
+ user_id?: string;
79
+ status?: {{pascalCase FEATURE_NAME}}Status;
80
+ created_at?: string;
81
+ updated_at?: string | null;
82
+ };
83
+ Update: {
84
+ id?: string;
85
+ name?: string;
86
+ user_id?: string;
87
+ status?: {{pascalCase FEATURE_NAME}}Status;
88
+ created_at?: string;
89
+ updated_at?: string | null;
90
+ };
91
+ };
92
+ };
93
+ Views: Record<string, never>;
94
+ Functions: Record<string, never>;
95
+ Enums: {
96
+ {{FEATURE_NAME}}_status: {{pascalCase FEATURE_NAME}}Status;
97
+ };
98
+ };
99
+ }
100
+
101
+ // ----- Feature Types -----
102
+
103
+ export type {{pascalCase FEATURE_NAME}}Status =
104
+ | "draft"
105
+ | "active"
106
+ | "completed"
107
+ | "archived"
108
+ | "failed"
109
+ | "cancelled";
110
+
111
+ export interface {{pascalCase FEATURE_NAME}} {
112
+ id: string;
113
+ name: string;
114
+ userId: string;
115
+ status: {{pascalCase FEATURE_NAME}}Status;
116
+ createdAt: string;
117
+ updatedAt: string | null;
118
+ }
119
+
120
+ export interface Create{{pascalCase FEATURE_NAME}}Input {
121
+ name: string;
122
+ // Add other required fields
123
+ }
124
+
125
+ export interface Update{{pascalCase FEATURE_NAME}}Input {
126
+ name?: string;
127
+ // Add other updatable fields
128
+ }
129
+
130
+ // ----- Storage Types -----
131
+
132
+ export interface StorageUpload {
133
+ bucket: string;
134
+ path: string;
135
+ file: File;
136
+ contentType?: string;
137
+ }
138
+
139
+ export interface StorageFile {
140
+ id: string;
141
+ name: string;
142
+ bucket: string;
143
+ path: string;
144
+ publicUrl: string;
145
+ size: number;
146
+ contentType: string;
147
+ createdAt: string;
148
+ }
149
+
150
+ // ----- Auth Types -----
151
+
152
+ export interface AuthUser {
153
+ id: string;
154
+ email: string;
155
+ displayName: string | null;
156
+ avatarUrl: string | null;
157
+ }
158
+
159
+ export interface AuthSession {
160
+ user: AuthUser;
161
+ accessToken: string;
162
+ expiresAt: number;
163
+ }
164
+
165
+ // ----- Form Schemas (use with zod) -----
166
+ // Define zod schemas in component files, not here.
167
+ // This file is for type definitions only.