@polymorphism-tech/morph-spec 2.4.0 → 3.0.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 (87) hide show
  1. package/CLAUDE.md +75 -239
  2. package/bin/morph-spec.js +8 -0
  3. package/content/.claude/commands/morph-deploy.md +529 -0
  4. package/content/.claude/skills/level-0-meta/README.md +7 -0
  5. package/content/.claude/skills/{checklists → level-0-meta}/morph-checklist.md +117 -117
  6. package/content/.claude/skills/level-1-workflows/README.md +7 -0
  7. package/content/.claude/skills/{workflows → level-1-workflows}/morph-replicate.md +213 -213
  8. package/content/.claude/skills/{workflows → level-1-workflows}/phase-clarify.md +131 -131
  9. package/content/.claude/skills/{workflows → level-1-workflows}/phase-design.md +213 -205
  10. package/content/.claude/skills/{workflows → level-1-workflows}/phase-setup.md +106 -92
  11. package/content/.claude/skills/{workflows → level-1-workflows}/phase-tasks.md +164 -164
  12. package/content/.claude/skills/{workflows → level-1-workflows}/phase-uiux.md +169 -138
  13. package/content/.claude/skills/level-2-domains/README.md +14 -0
  14. package/content/.claude/skills/level-2-domains/architecture/prompt-engineer.md +189 -0
  15. package/content/.claude/skills/level-2-domains/architecture/seo-growth-hacker.md +320 -0
  16. package/content/.claude/skills/level-2-domains/infrastructure/azure-deploy-specialist.md +699 -0
  17. package/content/.claude/skills/{specialists → level-2-domains/quality}/testing-specialist.md +126 -126
  18. package/content/.claude/skills/level-3-technologies/README.md +7 -0
  19. package/content/.claude/skills/level-4-patterns/README.md +7 -0
  20. package/content/.morph/config/agents.json +744 -358
  21. package/content/.morph/config/config.template.json +33 -0
  22. package/content/.morph/docs/workflows/enforcement-pipeline.md +668 -0
  23. package/content/.morph/examples/scheduled-reports/decisions.md +158 -158
  24. package/content/.morph/examples/scheduled-reports/proposal.md +95 -95
  25. package/content/.morph/examples/scheduled-reports/spec.md +267 -267
  26. package/content/.morph/hooks/README.md +158 -0
  27. package/content/.morph/hooks/task-completed.js +73 -0
  28. package/content/.morph/hooks/teammate-idle.js +68 -0
  29. package/content/.morph/schemas/tasks.schema.json +220 -220
  30. package/content/.morph/standards/agent-teams-workflow.md +474 -0
  31. package/content/.morph/templates/CONTEXT-FEATURE.md +276 -0
  32. package/content/.morph/templates/CONTEXT.md +170 -0
  33. package/content/.morph/templates/clarify-questions.md +159 -159
  34. package/content/.morph/templates/contracts/Commands.cs +74 -74
  35. package/content/.morph/templates/contracts/Entities.cs +25 -25
  36. package/content/.morph/templates/contracts/Queries.cs +74 -74
  37. package/content/.morph/templates/contracts/README.md +74 -74
  38. package/content/.morph/templates/infra/azure-pipelines-deploy.yml +480 -0
  39. package/package.json +1 -2
  40. package/scripts/reorganize-skills.cjs +175 -0
  41. package/scripts/validate-agents-structure.cjs +52 -0
  42. package/scripts/validate-skills.cjs +180 -0
  43. package/src/commands/advance-phase.js +83 -0
  44. package/src/commands/deploy.js +780 -0
  45. package/src/commands/detect-agents.js +43 -6
  46. package/src/commands/detect.js +1 -1
  47. package/src/commands/generate-context.js +40 -0
  48. package/src/commands/state.js +2 -1
  49. package/src/commands/sync.js +1 -1
  50. package/src/commands/update.js +13 -1
  51. package/src/lib/context-generator.js +513 -0
  52. package/src/lib/design-system-detector.js +187 -0
  53. package/src/lib/design-system-scaffolder.js +299 -0
  54. package/src/lib/hook-executor.js +256 -0
  55. package/src/lib/spec-validator.js +258 -0
  56. package/src/lib/standards-context-injector.js +287 -0
  57. package/src/lib/state-manager.js +21 -4
  58. package/src/lib/team-orchestrator.js +322 -0
  59. package/src/lib/validation-runner.js +65 -13
  60. package/src/lib/validators/design-system-validator.js +231 -0
  61. package/src/utils/file-copier.js +9 -1
  62. /package/content/.claude/skills/{checklists → level-0-meta}/code-review.md +0 -0
  63. /package/content/.claude/skills/{checklists → level-0-meta}/simulation-checklist.md +0 -0
  64. /package/content/.claude/skills/{specialists → level-2-domains/ai-agents}/ai-system-architect.md +0 -0
  65. /package/content/.claude/skills/{specialists → level-2-domains/architecture}/po-pm-advisor.md +0 -0
  66. /package/content/.claude/skills/{specialists → level-2-domains/architecture}/standards-architect.md +0 -0
  67. /package/content/.claude/skills/{specialists → level-2-domains/backend}/dotnet-senior.md +0 -0
  68. /package/content/.claude/skills/{specialists → level-2-domains/backend}/ef-modeler.md +0 -0
  69. /package/content/.claude/skills/{specialists → level-2-domains/backend}/hangfire-orchestrator.md +0 -0
  70. /package/content/.claude/skills/{specialists → level-2-domains/backend}/ms-agent-expert.md +0 -0
  71. /package/content/.claude/skills/{stacks/dotnet-blazor.md → level-2-domains/frontend/blazor-builder.md} +0 -0
  72. /package/content/.claude/skills/{stacks/dotnet-nextjs.md → level-2-domains/frontend/nextjs-expert.md} +0 -0
  73. /package/content/.claude/skills/{specialists → level-2-domains/frontend}/ui-ux-designer.md +0 -0
  74. /package/content/.claude/skills/{specialists → level-2-domains/infrastructure}/azure-architect.md +0 -0
  75. /package/content/.claude/skills/{infra → level-2-domains/infrastructure}/bicep-architect.md +0 -0
  76. /package/content/.claude/skills/{infra → level-2-domains/infrastructure}/container-specialist.md +0 -0
  77. /package/content/.claude/skills/{infra → level-2-domains/infrastructure}/devops-engineer.md +0 -0
  78. /package/content/.claude/skills/{integrations → level-2-domains/integrations}/asaas-financial.md +0 -0
  79. /package/content/.claude/skills/{integrations → level-2-domains/integrations}/azure-identity.md +0 -0
  80. /package/content/.claude/skills/{integrations → level-2-domains/integrations}/clerk-auth.md +0 -0
  81. /package/content/.claude/skills/{integrations → level-2-domains/integrations}/resend-email.md +0 -0
  82. /package/content/.claude/skills/{specialists → level-2-domains/quality}/code-analyzer.md +0 -0
  83. /package/{detectors → src/lib/detectors}/config-detector.js +0 -0
  84. /package/{detectors → src/lib/detectors}/conversation-analyzer.js +0 -0
  85. /package/{detectors → src/lib/detectors}/index.js +0 -0
  86. /package/{detectors → src/lib/detectors}/standards-generator.js +0 -0
  87. /package/{detectors → src/lib/detectors}/structure-detector.js +0 -0
@@ -1,220 +1,220 @@
1
- {
2
- "$schema": "http://json-schema.org/draft-07/schema#",
3
- "$id": "https://morph-spec.dev/schemas/tasks.schema.json",
4
- "title": "MORPH-SPEC Tasks Schema",
5
- "description": "Schema for tasks.json files in MORPH-SPEC features",
6
- "type": "object",
7
- "required": ["version", "feature", "tasks"],
8
- "properties": {
9
- "version": {
10
- "type": "string",
11
- "description": "Schema version",
12
- "pattern": "^\\d+\\.\\d+\\.\\d+$",
13
- "examples": ["3.0.0"]
14
- },
15
- "feature": {
16
- "type": "string",
17
- "description": "Feature name (kebab-case)",
18
- "pattern": "^[a-z0-9]+(-[a-z0-9]+)*$",
19
- "examples": ["scheduled-reports", "user-auth"]
20
- },
21
- "createdAt": {
22
- "type": "string",
23
- "format": "date-time",
24
- "description": "Creation timestamp"
25
- },
26
- "updatedAt": {
27
- "type": "string",
28
- "format": "date-time",
29
- "description": "Last update timestamp"
30
- },
31
- "summary": {
32
- "type": "object",
33
- "description": "Task summary statistics",
34
- "properties": {
35
- "total": { "type": "integer", "minimum": 0 },
36
- "completed": { "type": "integer", "minimum": 0 },
37
- "inProgress": { "type": "integer", "minimum": 0 },
38
- "pending": { "type": "integer", "minimum": 0 },
39
- "blocked": { "type": "integer", "minimum": 0 }
40
- }
41
- },
42
- "tasks": {
43
- "type": "array",
44
- "description": "List of tasks",
45
- "items": {
46
- "$ref": "#/definitions/task"
47
- }
48
- },
49
- "checkpoints": {
50
- "type": "array",
51
- "description": "Checkpoint definitions",
52
- "items": {
53
- "$ref": "#/definitions/checkpoint"
54
- }
55
- }
56
- },
57
- "definitions": {
58
- "task": {
59
- "type": "object",
60
- "required": ["id", "title", "status"],
61
- "properties": {
62
- "id": {
63
- "type": "string",
64
- "description": "Task ID (format: T001, T002, etc.)",
65
- "pattern": "^T\\d{3}$",
66
- "examples": ["T001", "T002", "T010"]
67
- },
68
- "title": {
69
- "type": "string",
70
- "description": "Task title (short description)",
71
- "maxLength": 100,
72
- "examples": ["Create ScheduledReport entity"]
73
- },
74
- "description": {
75
- "type": "string",
76
- "description": "Detailed task description"
77
- },
78
- "status": {
79
- "type": "string",
80
- "enum": ["pending", "in_progress", "completed", "blocked", "skipped"],
81
- "description": "Current task status"
82
- },
83
- "type": {
84
- "type": "string",
85
- "enum": ["entity", "command", "query", "handler", "service", "component", "page", "test", "migration", "config", "infra", "docs"],
86
- "description": "Type of task"
87
- },
88
- "priority": {
89
- "type": "string",
90
- "enum": ["low", "medium", "high", "critical"],
91
- "description": "Task priority"
92
- },
93
- "dependencies": {
94
- "type": "array",
95
- "description": "IDs of tasks that must be completed first",
96
- "items": {
97
- "type": "string",
98
- "pattern": "^T\\d{3}$"
99
- },
100
- "examples": [["T001", "T002"]]
101
- },
102
- "files": {
103
- "type": "array",
104
- "description": "Files to be created or modified",
105
- "items": {
106
- "type": "string"
107
- },
108
- "examples": [["Domain/Entities/ScheduledReport.cs", "Infrastructure/Persistence/Config/ScheduledReportConfig.cs"]]
109
- },
110
- "checkpoint": {
111
- "type": "string",
112
- "description": "Checkpoint ID this task belongs to",
113
- "pattern": "^CP\\d{3}$"
114
- },
115
- "estimatedLines": {
116
- "type": "integer",
117
- "description": "Estimated lines of code",
118
- "minimum": 0
119
- },
120
- "actualLines": {
121
- "type": "integer",
122
- "description": "Actual lines of code (after completion)",
123
- "minimum": 0
124
- },
125
- "completedAt": {
126
- "type": "string",
127
- "format": "date-time",
128
- "description": "Completion timestamp"
129
- },
130
- "notes": {
131
- "type": "string",
132
- "description": "Additional notes or comments"
133
- },
134
- "blockedReason": {
135
- "type": "string",
136
- "description": "Reason for blocked status"
137
- }
138
- }
139
- },
140
- "checkpoint": {
141
- "type": "object",
142
- "required": ["id", "name"],
143
- "properties": {
144
- "id": {
145
- "type": "string",
146
- "description": "Checkpoint ID",
147
- "pattern": "^CP\\d{3}$",
148
- "examples": ["CP001", "CP002"]
149
- },
150
- "name": {
151
- "type": "string",
152
- "description": "Checkpoint name",
153
- "examples": ["Entity Layer Complete", "Backend Complete"]
154
- },
155
- "afterTasks": {
156
- "type": "array",
157
- "description": "Task IDs after which this checkpoint triggers",
158
- "items": {
159
- "type": "string",
160
- "pattern": "^T\\d{3}$"
161
- }
162
- },
163
- "validation": {
164
- "type": "array",
165
- "description": "Validation steps for this checkpoint",
166
- "items": {
167
- "type": "string"
168
- },
169
- "examples": [["Run tests", "Build project", "Review code"]]
170
- }
171
- }
172
- }
173
- },
174
- "examples": [
175
- {
176
- "version": "3.0.0",
177
- "feature": "scheduled-reports",
178
- "createdAt": "2024-01-15T10:00:00Z",
179
- "summary": {
180
- "total": 9,
181
- "completed": 0,
182
- "inProgress": 0,
183
- "pending": 9,
184
- "blocked": 0
185
- },
186
- "tasks": [
187
- {
188
- "id": "T001",
189
- "title": "Create ScheduledReport entity",
190
- "status": "pending",
191
- "type": "entity",
192
- "priority": "high",
193
- "files": [
194
- "Domain/Entities/ScheduledReport.cs",
195
- "Infrastructure/Persistence/Config/ScheduledReportConfig.cs"
196
- ],
197
- "estimatedLines": 100
198
- },
199
- {
200
- "id": "T002",
201
- "title": "Create CreateReportCommand + Handler",
202
- "status": "pending",
203
- "type": "command",
204
- "dependencies": ["T001"],
205
- "files": [
206
- "Application/Features/Reports/Commands/CreateReportCommand.cs"
207
- ]
208
- }
209
- ],
210
- "checkpoints": [
211
- {
212
- "id": "CP001",
213
- "name": "Entity Layer Complete",
214
- "afterTasks": ["T001", "T002", "T003"],
215
- "validation": ["Build project", "Run unit tests"]
216
- }
217
- ]
218
- }
219
- ]
220
- }
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "https://morph-spec.dev/schemas/tasks.schema.json",
4
+ "title": "MORPH-SPEC Tasks Schema",
5
+ "description": "Schema for tasks.json files in MORPH-SPEC features",
6
+ "type": "object",
7
+ "required": ["version", "feature", "tasks"],
8
+ "properties": {
9
+ "version": {
10
+ "type": "string",
11
+ "description": "Schema version",
12
+ "pattern": "^\\d+\\.\\d+\\.\\d+$",
13
+ "examples": ["3.0.0"]
14
+ },
15
+ "feature": {
16
+ "type": "string",
17
+ "description": "Feature name (kebab-case)",
18
+ "pattern": "^[a-z0-9]+(-[a-z0-9]+)*$",
19
+ "examples": ["scheduled-reports", "user-auth"]
20
+ },
21
+ "createdAt": {
22
+ "type": "string",
23
+ "format": "date-time",
24
+ "description": "Creation timestamp"
25
+ },
26
+ "updatedAt": {
27
+ "type": "string",
28
+ "format": "date-time",
29
+ "description": "Last update timestamp"
30
+ },
31
+ "summary": {
32
+ "type": "object",
33
+ "description": "Task summary statistics",
34
+ "properties": {
35
+ "total": { "type": "integer", "minimum": 0 },
36
+ "completed": { "type": "integer", "minimum": 0 },
37
+ "inProgress": { "type": "integer", "minimum": 0 },
38
+ "pending": { "type": "integer", "minimum": 0 },
39
+ "blocked": { "type": "integer", "minimum": 0 }
40
+ }
41
+ },
42
+ "tasks": {
43
+ "type": "array",
44
+ "description": "List of tasks",
45
+ "items": {
46
+ "$ref": "#/definitions/task"
47
+ }
48
+ },
49
+ "checkpoints": {
50
+ "type": "array",
51
+ "description": "Checkpoint definitions",
52
+ "items": {
53
+ "$ref": "#/definitions/checkpoint"
54
+ }
55
+ }
56
+ },
57
+ "definitions": {
58
+ "task": {
59
+ "type": "object",
60
+ "required": ["id", "title", "status"],
61
+ "properties": {
62
+ "id": {
63
+ "type": "string",
64
+ "description": "Task ID (format: T001, T002, etc.)",
65
+ "pattern": "^T\\d{3}$",
66
+ "examples": ["T001", "T002", "T010"]
67
+ },
68
+ "title": {
69
+ "type": "string",
70
+ "description": "Task title (short description)",
71
+ "maxLength": 100,
72
+ "examples": ["Create ScheduledReport entity"]
73
+ },
74
+ "description": {
75
+ "type": "string",
76
+ "description": "Detailed task description"
77
+ },
78
+ "status": {
79
+ "type": "string",
80
+ "enum": ["pending", "in_progress", "completed", "blocked", "skipped"],
81
+ "description": "Current task status"
82
+ },
83
+ "type": {
84
+ "type": "string",
85
+ "enum": ["entity", "command", "query", "handler", "service", "component", "page", "test", "migration", "config", "infra", "docs"],
86
+ "description": "Type of task"
87
+ },
88
+ "priority": {
89
+ "type": "string",
90
+ "enum": ["low", "medium", "high", "critical"],
91
+ "description": "Task priority"
92
+ },
93
+ "dependencies": {
94
+ "type": "array",
95
+ "description": "IDs of tasks that must be completed first",
96
+ "items": {
97
+ "type": "string",
98
+ "pattern": "^T\\d{3}$"
99
+ },
100
+ "examples": [["T001", "T002"]]
101
+ },
102
+ "files": {
103
+ "type": "array",
104
+ "description": "Files to be created or modified",
105
+ "items": {
106
+ "type": "string"
107
+ },
108
+ "examples": [["Domain/Entities/ScheduledReport.cs", "Infrastructure/Persistence/Config/ScheduledReportConfig.cs"]]
109
+ },
110
+ "checkpoint": {
111
+ "type": "string",
112
+ "description": "Checkpoint ID this task belongs to",
113
+ "pattern": "^CP\\d{3}$"
114
+ },
115
+ "estimatedLines": {
116
+ "type": "integer",
117
+ "description": "Estimated lines of code",
118
+ "minimum": 0
119
+ },
120
+ "actualLines": {
121
+ "type": "integer",
122
+ "description": "Actual lines of code (after completion)",
123
+ "minimum": 0
124
+ },
125
+ "completedAt": {
126
+ "type": "string",
127
+ "format": "date-time",
128
+ "description": "Completion timestamp"
129
+ },
130
+ "notes": {
131
+ "type": "string",
132
+ "description": "Additional notes or comments"
133
+ },
134
+ "blockedReason": {
135
+ "type": "string",
136
+ "description": "Reason for blocked status"
137
+ }
138
+ }
139
+ },
140
+ "checkpoint": {
141
+ "type": "object",
142
+ "required": ["id", "name"],
143
+ "properties": {
144
+ "id": {
145
+ "type": "string",
146
+ "description": "Checkpoint ID",
147
+ "pattern": "^CP\\d{3}$",
148
+ "examples": ["CP001", "CP002"]
149
+ },
150
+ "name": {
151
+ "type": "string",
152
+ "description": "Checkpoint name",
153
+ "examples": ["Entity Layer Complete", "Backend Complete"]
154
+ },
155
+ "afterTasks": {
156
+ "type": "array",
157
+ "description": "Task IDs after which this checkpoint triggers",
158
+ "items": {
159
+ "type": "string",
160
+ "pattern": "^T\\d{3}$"
161
+ }
162
+ },
163
+ "validation": {
164
+ "type": "array",
165
+ "description": "Validation steps for this checkpoint",
166
+ "items": {
167
+ "type": "string"
168
+ },
169
+ "examples": [["Run tests", "Build project", "Review code"]]
170
+ }
171
+ }
172
+ }
173
+ },
174
+ "examples": [
175
+ {
176
+ "version": "3.0.0",
177
+ "feature": "scheduled-reports",
178
+ "createdAt": "2024-01-15T10:00:00Z",
179
+ "summary": {
180
+ "total": 9,
181
+ "completed": 0,
182
+ "inProgress": 0,
183
+ "pending": 9,
184
+ "blocked": 0
185
+ },
186
+ "tasks": [
187
+ {
188
+ "id": "T001",
189
+ "title": "Create ScheduledReport entity",
190
+ "status": "pending",
191
+ "type": "entity",
192
+ "priority": "high",
193
+ "files": [
194
+ "Domain/Entities/ScheduledReport.cs",
195
+ "Infrastructure/Persistence/Config/ScheduledReportConfig.cs"
196
+ ],
197
+ "estimatedLines": 100
198
+ },
199
+ {
200
+ "id": "T002",
201
+ "title": "Create CreateReportCommand + Handler",
202
+ "status": "pending",
203
+ "type": "command",
204
+ "dependencies": ["T001"],
205
+ "files": [
206
+ "Application/Features/Reports/Commands/CreateReportCommand.cs"
207
+ ]
208
+ }
209
+ ],
210
+ "checkpoints": [
211
+ {
212
+ "id": "CP001",
213
+ "name": "Entity Layer Complete",
214
+ "afterTasks": ["T001", "T002", "T003"],
215
+ "validation": ["Build project", "Run unit tests"]
216
+ }
217
+ ]
218
+ }
219
+ ]
220
+ }