@polymorphism-tech/morph-spec 4.3.1 → 4.3.2

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 (192) hide show
  1. package/bin/morph-spec.js +1 -1
  2. package/package.json +2 -1
  3. package/src/commands/project/doctor.js +24 -18
  4. package/src/commands/project/init.js +1 -1
  5. package/src/commands/state/state.js +24 -2
  6. package/src/core/templates/template-registry.js +1 -1
  7. package/src/core/workflows/workflow-detector.js +2 -2
  8. package/stacks/blazor-azure/.claude/commands/morph-apply.md +221 -0
  9. package/stacks/blazor-azure/.claude/commands/morph-archive.md +79 -0
  10. package/stacks/blazor-azure/.claude/commands/morph-deploy.md +529 -0
  11. package/stacks/blazor-azure/.claude/commands/morph-infra.md +209 -0
  12. package/stacks/blazor-azure/.claude/commands/morph-preflight.md +227 -0
  13. package/stacks/blazor-azure/.claude/commands/morph-proposal.md +122 -0
  14. package/stacks/blazor-azure/.claude/commands/morph-status.md +86 -0
  15. package/stacks/blazor-azure/.claude/commands/morph-troubleshoot.md +122 -0
  16. package/stacks/blazor-azure/.morph/.morphversion +5 -5
  17. package/stacks/blazor-azure/.morph/archive/.gitkeep +25 -0
  18. package/stacks/blazor-azure/.morph/config/config.json +9 -0
  19. package/stacks/blazor-azure/.morph/features/.gitkeep +25 -0
  20. package/stacks/blazor-azure/.morph/project/context/README.md +17 -0
  21. package/stacks/blazor-azure/.morph/schemas/agent.schema.json +296 -0
  22. package/stacks/blazor-azure/.morph/schemas/tasks.schema.json +220 -0
  23. package/stacks/blazor-azure/.morph/specs/.gitkeep +20 -0
  24. package/stacks/blazor-azure/.morph/standards/ai-agents/blazor-ui.md +364 -0
  25. package/stacks/blazor-azure/.morph/standards/ai-agents/production.md +415 -0
  26. package/stacks/blazor-azure/.morph/standards/ai-agents/setup.md +418 -0
  27. package/stacks/blazor-azure/.morph/standards/ai-agents/team-orchestration.md +479 -0
  28. package/stacks/blazor-azure/.morph/standards/ai-agents/workflows.md +354 -0
  29. package/stacks/blazor-azure/.morph/standards/architecture/ddd/aggregates.md +120 -0
  30. package/stacks/blazor-azure/.morph/standards/architecture/ddd/entities.md +99 -0
  31. package/stacks/blazor-azure/.morph/standards/architecture/ddd/value-objects.md +124 -0
  32. package/stacks/blazor-azure/.morph/standards/backend/api/minimal-api.md +494 -0
  33. package/stacks/blazor-azure/.morph/standards/backend/api/rest.md +492 -0
  34. package/stacks/blazor-azure/.morph/standards/backend/api/validation.md +88 -0
  35. package/stacks/blazor-azure/.morph/standards/backend/authentication/passkeys.md +428 -0
  36. package/stacks/blazor-azure/.morph/standards/backend/database/ef-core.md +199 -0
  37. package/stacks/blazor-azure/.morph/standards/backend/database/migrations.md +393 -0
  38. package/stacks/blazor-azure/.morph/standards/backend/database/postgresql/database.md +352 -0
  39. package/stacks/blazor-azure/.morph/standards/backend/database/repository-patterns.md +528 -0
  40. package/stacks/blazor-azure/.morph/standards/backend/database/vector-search-rag.md +541 -0
  41. package/stacks/blazor-azure/.morph/standards/backend/dotnet/async.md +366 -0
  42. package/stacks/blazor-azure/.morph/standards/backend/dotnet/core.md +117 -0
  43. package/stacks/blazor-azure/.morph/standards/backend/dotnet/di.md +439 -0
  44. package/stacks/blazor-azure/.morph/standards/backend/dotnet/program-cs-checklist.md +92 -0
  45. package/stacks/blazor-azure/.morph/standards/backend/integrations/asaas/asaas-api.md +216 -0
  46. package/stacks/blazor-azure/.morph/standards/backend/integrations/clerk/clerk-auth.md +290 -0
  47. package/stacks/blazor-azure/.morph/standards/backend/integrations/hangfire/hangfire-jobs.md +350 -0
  48. package/stacks/blazor-azure/.morph/standards/backend/integrations/resend/resend-email.md +385 -0
  49. package/stacks/blazor-azure/.morph/standards/context/analytics.md +96 -0
  50. package/stacks/blazor-azure/.morph/standards/context/bundles.md +110 -0
  51. package/stacks/blazor-azure/.morph/standards/context/priming.md +78 -0
  52. package/stacks/blazor-azure/.morph/standards/core/architecture.md +185 -0
  53. package/stacks/blazor-azure/.morph/standards/core/coding.md +214 -0
  54. package/stacks/blazor-azure/.morph/standards/core/git-branching-strategy.md +403 -0
  55. package/stacks/blazor-azure/.morph/standards/core/git.md +185 -0
  56. package/stacks/blazor-azure/.morph/standards/core/testing.md +295 -0
  57. package/stacks/blazor-azure/.morph/standards/data/nosql/blob-storage.md +102 -0
  58. package/stacks/blazor-azure/.morph/standards/data/nosql/cache/redis.md +97 -0
  59. package/stacks/blazor-azure/.morph/standards/data/nosql/cosmos-db.md +118 -0
  60. package/stacks/blazor-azure/.morph/standards/data/vector-search/azure-ai-search.md +121 -0
  61. package/stacks/blazor-azure/.morph/standards/data/vector-search/rag-chunking.md +104 -0
  62. package/stacks/blazor-azure/.morph/standards/frontend/blazor/design-checklist.md +222 -0
  63. package/stacks/blazor-azure/.morph/standards/frontend/blazor/fluent-ui-setup.md +595 -0
  64. package/stacks/blazor-azure/.morph/standards/frontend/blazor/fluent-ui.md +137 -0
  65. package/stacks/blazor-azure/.morph/standards/frontend/blazor/html-conversion.md +184 -0
  66. package/stacks/blazor-azure/.morph/standards/frontend/blazor/lifecycle.md +195 -0
  67. package/stacks/blazor-azure/.morph/standards/frontend/blazor/pitfalls.md +198 -0
  68. package/stacks/blazor-azure/.morph/standards/frontend/blazor/state.md +191 -0
  69. package/stacks/blazor-azure/.morph/standards/frontend/design-system/animations.md +151 -0
  70. package/stacks/blazor-azure/.morph/standards/frontend/design-system/naming.md +64 -0
  71. package/stacks/blazor-azure/.morph/standards/frontend/nextjs/nextjs-patterns.md +198 -0
  72. package/stacks/blazor-azure/.morph/standards/infrastructure/azure/azure.md +624 -0
  73. package/stacks/blazor-azure/.morph/standards/infrastructure/azure/bicep/bicep-patterns.md +422 -0
  74. package/stacks/blazor-azure/.morph/standards/infrastructure/azure/devops/azure-devops-setup.md +516 -0
  75. package/stacks/blazor-azure/.morph/standards/infrastructure/azure/devops/local-development.md +520 -0
  76. package/stacks/blazor-azure/.morph/standards/infrastructure/azure/services/functions.md +486 -0
  77. package/stacks/blazor-azure/.morph/standards/infrastructure/azure/services/service-bus.md +459 -0
  78. package/stacks/blazor-azure/.morph/standards/infrastructure/azure/services/storage.md +407 -0
  79. package/stacks/blazor-azure/.morph/standards/infrastructure/docker/easypanel-deploy.md +196 -0
  80. package/stacks/blazor-azure/.morph/standards/infrastructure/supabase/mcp-setup.md +252 -0
  81. package/stacks/blazor-azure/.morph/standards/infrastructure/supabase/supabase-auth.md +176 -0
  82. package/stacks/blazor-azure/.morph/standards/infrastructure/supabase/supabase-pgvector.md +169 -0
  83. package/stacks/blazor-azure/.morph/standards/infrastructure/supabase/supabase-rls.md +184 -0
  84. package/stacks/blazor-azure/.morph/standards/infrastructure/supabase/supabase-storage.md +153 -0
  85. package/stacks/blazor-azure/.morph/standards/integration/api/graphql.md +91 -0
  86. package/stacks/blazor-azure/.morph/standards/integration/api/grpc.md +114 -0
  87. package/stacks/blazor-azure/.morph/standards/integration/api/rest-design.md +95 -0
  88. package/stacks/blazor-azure/.morph/standards/integration/event-driven/cqrs.md +101 -0
  89. package/stacks/blazor-azure/.morph/standards/integration/event-driven/event-sourcing.md +124 -0
  90. package/stacks/blazor-azure/.morph/standards/integration/event-driven/service-bus.md +95 -0
  91. package/stacks/blazor-azure/.morph/standards/observability/logging.md +131 -0
  92. package/stacks/blazor-azure/.morph/standards/observability/metrics.md +121 -0
  93. package/stacks/blazor-azure/.morph/standards/observability/monitoring.md +114 -0
  94. package/stacks/blazor-azure/.morph/standards/observability/tracing.md +132 -0
  95. package/stacks/blazor-azure/.morph/standards/workflows/parallel-execution.md +112 -0
  96. package/stacks/blazor-azure/.morph/standards/workflows/thread-management.md +113 -0
  97. package/stacks/blazor-azure/.morph/test-infra/example.bicep +59 -0
  98. package/stacks/blazor-azure/CLAUDE.md +106 -101
  99. package/stacks/nextjs-supabase/.claude/commands/morph-apply.md +221 -0
  100. package/stacks/nextjs-supabase/.claude/commands/morph-archive.md +79 -0
  101. package/stacks/nextjs-supabase/.claude/commands/morph-deploy.md +529 -0
  102. package/stacks/nextjs-supabase/.claude/commands/morph-infra.md +209 -0
  103. package/stacks/nextjs-supabase/.claude/commands/morph-preflight.md +227 -0
  104. package/stacks/nextjs-supabase/.claude/commands/morph-proposal.md +122 -0
  105. package/stacks/nextjs-supabase/.claude/commands/morph-status.md +86 -0
  106. package/stacks/nextjs-supabase/.claude/commands/morph-troubleshoot.md +122 -0
  107. package/stacks/nextjs-supabase/.morph/.morphversion +5 -0
  108. package/stacks/nextjs-supabase/.morph/config/agents.json +730 -127
  109. package/stacks/nextjs-supabase/.morph/config/config.json +9 -0
  110. package/stacks/nextjs-supabase/.morph/project/context/README.md +17 -0
  111. package/stacks/nextjs-supabase/.morph/standards/ai-agents/blazor-ui.md +364 -0
  112. package/stacks/nextjs-supabase/.morph/standards/ai-agents/production.md +415 -0
  113. package/stacks/nextjs-supabase/.morph/standards/ai-agents/setup.md +418 -0
  114. package/stacks/nextjs-supabase/.morph/standards/ai-agents/team-orchestration.md +479 -0
  115. package/stacks/nextjs-supabase/.morph/standards/ai-agents/workflows.md +354 -0
  116. package/stacks/nextjs-supabase/.morph/standards/architecture/ddd/aggregates.md +120 -0
  117. package/stacks/nextjs-supabase/.morph/standards/architecture/ddd/entities.md +99 -0
  118. package/stacks/nextjs-supabase/.morph/standards/architecture/ddd/value-objects.md +124 -0
  119. package/stacks/nextjs-supabase/.morph/standards/backend/api/minimal-api.md +494 -0
  120. package/stacks/nextjs-supabase/.morph/standards/backend/api/rest.md +492 -0
  121. package/stacks/nextjs-supabase/.morph/standards/backend/api/validation.md +88 -0
  122. package/stacks/nextjs-supabase/.morph/standards/backend/authentication/passkeys.md +428 -0
  123. package/stacks/nextjs-supabase/.morph/standards/backend/database/ef-core.md +199 -0
  124. package/stacks/nextjs-supabase/.morph/standards/backend/database/migrations.md +393 -0
  125. package/stacks/nextjs-supabase/.morph/standards/backend/database/postgresql/database.md +352 -0
  126. package/stacks/nextjs-supabase/.morph/standards/backend/database/repository-patterns.md +528 -0
  127. package/stacks/nextjs-supabase/.morph/standards/backend/database/vector-search-rag.md +541 -0
  128. package/stacks/nextjs-supabase/.morph/standards/backend/dotnet/async.md +366 -0
  129. package/stacks/nextjs-supabase/.morph/standards/backend/dotnet/core.md +117 -0
  130. package/stacks/nextjs-supabase/.morph/standards/backend/dotnet/di.md +439 -0
  131. package/stacks/nextjs-supabase/.morph/standards/backend/dotnet/program-cs-checklist.md +92 -0
  132. package/stacks/nextjs-supabase/.morph/standards/backend/integrations/asaas/asaas-api.md +216 -0
  133. package/stacks/nextjs-supabase/.morph/standards/backend/integrations/clerk/clerk-auth.md +290 -0
  134. package/stacks/nextjs-supabase/.morph/standards/backend/integrations/hangfire/hangfire-jobs.md +350 -0
  135. package/stacks/nextjs-supabase/.morph/standards/backend/integrations/resend/resend-email.md +385 -0
  136. package/stacks/nextjs-supabase/.morph/standards/context/analytics.md +96 -0
  137. package/stacks/nextjs-supabase/.morph/standards/context/bundles.md +110 -0
  138. package/stacks/nextjs-supabase/.morph/standards/context/priming.md +78 -0
  139. package/stacks/nextjs-supabase/.morph/standards/core/architecture.md +185 -0
  140. package/stacks/nextjs-supabase/.morph/standards/core/coding.md +214 -0
  141. package/stacks/nextjs-supabase/.morph/standards/core/git-branching-strategy.md +403 -0
  142. package/stacks/nextjs-supabase/.morph/standards/core/git.md +185 -0
  143. package/stacks/nextjs-supabase/.morph/standards/core/testing.md +295 -0
  144. package/stacks/nextjs-supabase/.morph/standards/data/nosql/blob-storage.md +102 -0
  145. package/stacks/nextjs-supabase/.morph/standards/data/nosql/cache/redis.md +97 -0
  146. package/stacks/nextjs-supabase/.morph/standards/data/nosql/cosmos-db.md +118 -0
  147. package/stacks/nextjs-supabase/.morph/standards/data/vector-search/azure-ai-search.md +121 -0
  148. package/stacks/nextjs-supabase/.morph/standards/data/vector-search/rag-chunking.md +104 -0
  149. package/stacks/nextjs-supabase/.morph/standards/frontend/blazor/design-checklist.md +222 -0
  150. package/stacks/nextjs-supabase/.morph/standards/frontend/blazor/fluent-ui-setup.md +595 -0
  151. package/stacks/nextjs-supabase/.morph/standards/frontend/blazor/fluent-ui.md +137 -0
  152. package/stacks/nextjs-supabase/.morph/standards/frontend/blazor/html-conversion.md +184 -0
  153. package/stacks/nextjs-supabase/.morph/standards/frontend/blazor/lifecycle.md +195 -0
  154. package/stacks/nextjs-supabase/.morph/standards/frontend/blazor/pitfalls.md +198 -0
  155. package/stacks/nextjs-supabase/.morph/standards/frontend/blazor/state.md +191 -0
  156. package/stacks/nextjs-supabase/.morph/standards/frontend/design-system/animations.md +151 -0
  157. package/stacks/nextjs-supabase/.morph/standards/frontend/design-system/naming.md +64 -0
  158. package/stacks/nextjs-supabase/.morph/standards/frontend/nextjs/nextjs-patterns.md +198 -0
  159. package/stacks/nextjs-supabase/.morph/standards/infrastructure/azure/azure.md +624 -0
  160. package/stacks/nextjs-supabase/.morph/standards/infrastructure/azure/bicep/bicep-patterns.md +422 -0
  161. package/stacks/nextjs-supabase/.morph/standards/infrastructure/azure/devops/azure-devops-setup.md +516 -0
  162. package/stacks/nextjs-supabase/.morph/standards/infrastructure/azure/devops/local-development.md +520 -0
  163. package/stacks/nextjs-supabase/.morph/standards/infrastructure/azure/services/functions.md +486 -0
  164. package/stacks/nextjs-supabase/.morph/standards/infrastructure/azure/services/service-bus.md +459 -0
  165. package/stacks/nextjs-supabase/.morph/standards/infrastructure/azure/services/storage.md +407 -0
  166. package/stacks/nextjs-supabase/.morph/standards/infrastructure/docker/easypanel-deploy.md +196 -0
  167. package/stacks/nextjs-supabase/.morph/standards/infrastructure/supabase/mcp-setup.md +252 -0
  168. package/stacks/nextjs-supabase/.morph/standards/infrastructure/supabase/supabase-auth.md +176 -0
  169. package/stacks/nextjs-supabase/.morph/standards/infrastructure/supabase/supabase-pgvector.md +169 -0
  170. package/stacks/nextjs-supabase/.morph/standards/infrastructure/supabase/supabase-rls.md +184 -0
  171. package/stacks/nextjs-supabase/.morph/standards/infrastructure/supabase/supabase-storage.md +153 -0
  172. package/stacks/nextjs-supabase/.morph/standards/integration/api/graphql.md +91 -0
  173. package/stacks/nextjs-supabase/.morph/standards/integration/api/grpc.md +114 -0
  174. package/stacks/nextjs-supabase/.morph/standards/integration/api/rest-design.md +95 -0
  175. package/stacks/nextjs-supabase/.morph/standards/integration/event-driven/cqrs.md +101 -0
  176. package/stacks/nextjs-supabase/.morph/standards/integration/event-driven/event-sourcing.md +124 -0
  177. package/stacks/nextjs-supabase/.morph/standards/integration/event-driven/service-bus.md +95 -0
  178. package/stacks/nextjs-supabase/.morph/standards/observability/logging.md +131 -0
  179. package/stacks/nextjs-supabase/.morph/standards/observability/metrics.md +121 -0
  180. package/stacks/nextjs-supabase/.morph/standards/observability/monitoring.md +114 -0
  181. package/stacks/nextjs-supabase/.morph/standards/observability/tracing.md +132 -0
  182. package/stacks/nextjs-supabase/.morph/standards/workflows/parallel-execution.md +112 -0
  183. package/stacks/nextjs-supabase/.morph/standards/workflows/thread-management.md +113 -0
  184. package/stacks/nextjs-supabase/CLAUDE.md +69 -63
  185. package/stacks/blazor-azure/.morph/templates/.gitkeep +0 -0
  186. package/stacks/blazor-azure/.morph/templates/infrastructure/github/workflows/cd-prod.yml.hbs +0 -41
  187. package/stacks/blazor-azure/.morph/templates/infrastructure/github/workflows/cd-staging.yml.hbs +0 -24
  188. package/stacks/blazor-azure/.morph/templates/infrastructure/github/workflows/ci-build.yml.hbs +0 -23
  189. package/stacks/nextjs-supabase/.morph/templates/.gitkeep +0 -0
  190. package/stacks/nextjs-supabase/.morph/templates/infrastructure/github/workflows/cd-prod.yml.hbs +0 -22
  191. package/stacks/nextjs-supabase/.morph/templates/infrastructure/github/workflows/cd-staging.yml.hbs +0 -22
  192. package/stacks/nextjs-supabase/.morph/templates/infrastructure/github/workflows/ci-build.yml.hbs +0 -35
@@ -0,0 +1,296 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "https://polymorphism.com.br/morph-spec/schemas/agent.schema.json",
4
+ "title": "MORPH-SPEC Agent Configuration Schema",
5
+ "description": "JSON Schema for validating agents.json configuration file",
6
+ "type": "object",
7
+ "required": ["version", "agents"],
8
+ "properties": {
9
+ "version": {
10
+ "type": "string",
11
+ "description": "Schema version",
12
+ "pattern": "^\\d+\\.\\d+\\.\\d+$",
13
+ "examples": ["1.0.0", "2.1.0"]
14
+ },
15
+ "agents": {
16
+ "type": "object",
17
+ "description": "Agent definitions organized by type",
18
+ "required": ["core", "specialists"],
19
+ "properties": {
20
+ "core": {
21
+ "type": "array",
22
+ "description": "Core agents (always active)",
23
+ "items": {
24
+ "$ref": "#/definitions/agent"
25
+ },
26
+ "minItems": 1
27
+ },
28
+ "specialists": {
29
+ "type": "array",
30
+ "description": "Specialist agents (activated on-demand by keywords)",
31
+ "items": {
32
+ "$ref": "#/definitions/specialistAgent"
33
+ }
34
+ }
35
+ },
36
+ "additionalProperties": false
37
+ }
38
+ },
39
+ "additionalProperties": false,
40
+ "definitions": {
41
+ "agent": {
42
+ "type": "object",
43
+ "description": "Base agent definition",
44
+ "required": ["id", "name", "emoji", "type", "description", "responsibilities"],
45
+ "properties": {
46
+ "id": {
47
+ "type": "string",
48
+ "description": "Unique agent identifier (kebab-case)",
49
+ "pattern": "^[a-z][a-z0-9-]*$",
50
+ "examples": ["standards-architect", "azure-architect"]
51
+ },
52
+ "name": {
53
+ "type": "string",
54
+ "description": "Human-readable agent name",
55
+ "minLength": 3,
56
+ "maxLength": 50,
57
+ "examples": ["Standards Architect", "Azure Architect"]
58
+ },
59
+ "emoji": {
60
+ "type": "string",
61
+ "description": "Agent emoji (single character)",
62
+ "pattern": "^.{1,2}$",
63
+ "examples": ["📐", "☁️", "🔥"]
64
+ },
65
+ "type": {
66
+ "type": "string",
67
+ "description": "Agent type",
68
+ "enum": ["core", "specialist"],
69
+ "examples": ["core", "specialist"]
70
+ },
71
+ "skillPath": {
72
+ "type": "string",
73
+ "description": "Path to agent skill file (relative to repo root)",
74
+ "pattern": "^[^/].*\\.md$",
75
+ "examples": [".claude/skills/specialists/standards-architect.md"]
76
+ },
77
+ "description": {
78
+ "type": "string",
79
+ "description": "Brief agent description (PT-BR or EN)",
80
+ "minLength": 10,
81
+ "maxLength": 200,
82
+ "examples": ["Guardião dos padrões de código e arquitetura"]
83
+ },
84
+ "responsibilities": {
85
+ "type": "array",
86
+ "description": "List of agent responsibilities",
87
+ "items": {
88
+ "type": "string",
89
+ "minLength": 5,
90
+ "maxLength": 150
91
+ },
92
+ "minItems": 1,
93
+ "maxItems": 10,
94
+ "examples": [
95
+ ["Validar aderência aos padrões", "Revisar nomenclatura"]
96
+ ]
97
+ },
98
+ "validatesPhases": {
99
+ "type": "array",
100
+ "description": "Which MORPH phases this agent validates",
101
+ "items": {
102
+ "type": "string",
103
+ "enum": ["setup", "uiux-design", "design", "clarify", "tasks", "implement", "sync"]
104
+ },
105
+ "uniqueItems": true,
106
+ "examples": [["design", "implement"]]
107
+ },
108
+ "expertise": {
109
+ "type": "array",
110
+ "description": "Areas of expertise",
111
+ "items": {
112
+ "type": "string",
113
+ "minLength": 3,
114
+ "maxLength": 100
115
+ },
116
+ "examples": [["Container Apps", "Azure SQL", "Bicep"]]
117
+ },
118
+ "patterns": {
119
+ "type": "array",
120
+ "description": "Technical patterns the agent specializes in",
121
+ "items": {
122
+ "type": "string",
123
+ "minLength": 3,
124
+ "maxLength": 100
125
+ },
126
+ "examples": [["CQRS", "Repository", "DI"]]
127
+ },
128
+ "limits": {
129
+ "type": "object",
130
+ "description": "Agent-specific limits (e.g., for Cost Guardian)",
131
+ "additionalProperties": true
132
+ },
133
+ "defaultModel": {
134
+ "type": "string",
135
+ "description": "Default AI model for this agent",
136
+ "examples": ["gpt-4o-mini", "claude-3-5-sonnet"]
137
+ },
138
+ "deliverables": {
139
+ "type": "array",
140
+ "description": "Outputs this agent is responsible for",
141
+ "items": {
142
+ "type": "string",
143
+ "minLength": 3,
144
+ "maxLength": 100
145
+ },
146
+ "examples": [["ui-design-system.md", "ui-mockups.md"]]
147
+ },
148
+ "workflow": {
149
+ "type": "array",
150
+ "description": "Step-by-step workflow for this agent",
151
+ "items": {
152
+ "type": "string",
153
+ "minLength": 5,
154
+ "maxLength": 200
155
+ },
156
+ "examples": [
157
+ ["1. Analisar contexto", "2. Gerar proposta", "3. Validar com usuário"]
158
+ ]
159
+ },
160
+ "techniques": {
161
+ "type": "array",
162
+ "description": "Techniques or methodologies the agent uses",
163
+ "items": {
164
+ "type": "string",
165
+ "minLength": 3,
166
+ "maxLength": 100
167
+ },
168
+ "examples": [["5 Whys", "MoSCoW", "User story mapping"]]
169
+ }
170
+ },
171
+ "additionalProperties": false
172
+ },
173
+ "specialistAgent": {
174
+ "type": "object",
175
+ "required": ["id", "name", "emoji", "type", "description", "responsibilities", "autoActivation"],
176
+ "properties": {
177
+ "id": {
178
+ "type": "string",
179
+ "description": "Unique agent identifier (kebab-case)",
180
+ "pattern": "^[a-z][a-z0-9-]*$"
181
+ },
182
+ "name": {
183
+ "type": "string",
184
+ "description": "Human-readable agent name",
185
+ "minLength": 3,
186
+ "maxLength": 50
187
+ },
188
+ "emoji": {
189
+ "type": "string",
190
+ "description": "Agent emoji (single character)",
191
+ "pattern": "^.{1,2}$"
192
+ },
193
+ "type": {
194
+ "const": "specialist"
195
+ },
196
+ "skillPath": {
197
+ "type": "string",
198
+ "description": "Path to agent skill file",
199
+ "pattern": "^[^/].*\\.md$"
200
+ },
201
+ "description": {
202
+ "type": "string",
203
+ "description": "Brief agent description",
204
+ "minLength": 10,
205
+ "maxLength": 200
206
+ },
207
+ "responsibilities": {
208
+ "type": "array",
209
+ "description": "List of agent responsibilities",
210
+ "items": {
211
+ "type": "string",
212
+ "minLength": 5,
213
+ "maxLength": 150
214
+ },
215
+ "minItems": 1,
216
+ "maxItems": 10
217
+ },
218
+ "autoActivation": {
219
+ "type": "object",
220
+ "description": "Auto-activation configuration for specialist agents",
221
+ "required": ["keywords"],
222
+ "properties": {
223
+ "keywords": {
224
+ "type": "array",
225
+ "description": "Keywords that trigger this agent (lowercase, alphanumeric + hyphens/underscores)",
226
+ "items": {
227
+ "type": "string",
228
+ "pattern": "^[a-z][a-z0-9_-]*$",
229
+ "minLength": 2,
230
+ "maxLength": 50
231
+ },
232
+ "minItems": 1,
233
+ "uniqueItems": true
234
+ },
235
+ "minKeywords": {
236
+ "type": "integer",
237
+ "description": "Minimum number of keyword matches required (default: 1)",
238
+ "minimum": 1,
239
+ "default": 1
240
+ }
241
+ },
242
+ "additionalProperties": false
243
+ },
244
+ "validatesPhases": {
245
+ "type": "array",
246
+ "items": {
247
+ "type": "string",
248
+ "enum": ["setup", "uiux-design", "design", "clarify", "tasks", "implement", "sync"]
249
+ },
250
+ "uniqueItems": true
251
+ },
252
+ "expertise": {
253
+ "type": "array",
254
+ "items": {
255
+ "type": "string",
256
+ "minLength": 3,
257
+ "maxLength": 100
258
+ }
259
+ },
260
+ "patterns": {
261
+ "type": "array",
262
+ "items": {
263
+ "type": "string",
264
+ "minLength": 3,
265
+ "maxLength": 100
266
+ }
267
+ },
268
+ "deliverables": {
269
+ "type": "array",
270
+ "items": {
271
+ "type": "string",
272
+ "minLength": 3,
273
+ "maxLength": 100
274
+ }
275
+ },
276
+ "workflow": {
277
+ "type": "array",
278
+ "items": {
279
+ "type": "string",
280
+ "minLength": 5,
281
+ "maxLength": 200
282
+ }
283
+ },
284
+ "techniques": {
285
+ "type": "array",
286
+ "items": {
287
+ "type": "string",
288
+ "minLength": 3,
289
+ "maxLength": 100
290
+ }
291
+ }
292
+ },
293
+ "additionalProperties": false
294
+ }
295
+ }
296
+ }
@@ -0,0 +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
+ }
@@ -0,0 +1,20 @@
1
+ # Specs Ativas
2
+
3
+ Esta pasta contém as especificações ATIVAS do projeto.
4
+ Specs são extraídas de features arquivadas e representam a "verdade atual" do sistema.
5
+
6
+ ## Estrutura
7
+
8
+ ```
9
+ specs/
10
+ └── {domain}/
11
+ └── spec.md
12
+ ```
13
+
14
+ ## Como usar
15
+
16
+ 1. Quando uma feature é arquivada, specs relevantes são extraídas para cá
17
+ 2. Specs aqui são a referência para comportamento do sistema
18
+ 3. Novas features podem referenciar e modificar estas specs
19
+
20
+ *Gerado pelo MORPH Framework*