@polymorphism-tech/morph-spec 4.15.0 → 4.17.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/README.md +2 -2
- package/bin/morph-spec.js +4 -0
- package/bin/task-manager.js +999 -962
- package/claude-plugin.json +1 -1
- package/docs/CHEATSHEET.md +1 -1
- package/docs/QUICKSTART.md +1 -1
- package/framework/agents/ai-agents/vector-search-expert.md +247 -233
- package/framework/agents/backend/ms-agent-expert.md +2 -1
- package/framework/agents/backend/neon-expert.md +397 -0
- package/framework/agents/frontend/gsap-animator.md +131 -0
- package/framework/agents.json +1175 -1077
- package/framework/commands/morph-preflight.md +200 -192
- package/framework/hooks/claude-code/session-start/inject-morph-context.js +1 -1
- package/framework/rules/gsap-standards.md +13 -0
- package/framework/rules/neon-standards.md +25 -0
- package/framework/skills/level-0-meta/mcp-registry.json +1 -1
- package/framework/skills/level-0-meta/morph-agent-teams/SKILL.md +472 -472
- package/framework/skills/level-0-meta/morph-init/SKILL.md +30 -11
- package/framework/skills/level-0-meta/morph-post-implementation/SKILL.md +5 -5
- package/framework/skills/level-0-meta/morph-tool-usage-guide/SKILL.md +5 -5
- package/framework/skills/level-0-meta/morph-tool-usage-guide/references/tools-per-phase.md +7 -7
- package/framework/skills/level-1-workflows/morph-phase-codebase-analysis/SKILL.md +24 -24
- package/framework/skills/level-1-workflows/morph-phase-design/SKILL.md +12 -12
- package/framework/skills/level-1-workflows/morph-phase-implement/SKILL.md +9 -9
- package/framework/skills/level-1-workflows/morph-phase-plan/SKILL.md +1 -1
- package/framework/skills/level-1-workflows/morph-phase-tasks/SKILL.md +1 -1
- package/framework/skills/level-1-workflows/morph-phase-tasks/references/task-planning-patterns.md +143 -143
- package/framework/skills/level-1-workflows/morph-phase-uiux/SKILL.md +1 -1
- package/framework/skills/level-1-workflows/morph-scope-escalation/SKILL.md +1 -1
- package/framework/standards/STANDARDS.json +184 -107
- package/framework/standards/ai-agents/production.md +1 -0
- package/framework/standards/ai-agents/setup.md +3 -2
- package/framework/standards/ai-agents/workflows.md +1 -0
- package/framework/standards/architecture/vertical-slice/vertical-slice.md +4 -4
- package/framework/standards/backend/database/postgresql/database.md +58 -78
- package/framework/standards/backend/dotnet/scalar-ui.md +172 -172
- package/framework/standards/backend/dotnet/vsa-handler-patterns.md +274 -274
- package/framework/standards/backend/integrations/asaas/asaas-api.md +1 -1
- package/framework/standards/backend/integrations/clerk/clerk-auth.md +23 -21
- package/framework/standards/frontend/design-system/animations.md +9 -0
- package/framework/standards/frontend/gsap/gsap-core.md +463 -0
- package/framework/standards/frontend/gsap/gsap-plugins.md +294 -0
- package/framework/standards/frontend/gsap/gsap-scrolltrigger.md +318 -0
- package/framework/standards/frontend/nextjs/motion-patterns.md +1 -0
- package/framework/standards/frontend/nextjs/nextjs-patterns.md +47 -37
- package/framework/standards/infrastructure/docker/easypanel-deploy.md +4 -8
- package/framework/standards/infrastructure/neon/neon-pgrag.md +239 -0
- package/framework/standards/infrastructure/neon/neon-pgvector.md +236 -0
- package/framework/standards/infrastructure/neon/neon-semantic-kernel.md +310 -0
- package/framework/standards/infrastructure/neon/neon-setup.md +186 -0
- package/framework/standards/integration/mcp/mcp-tools.md +32 -34
- package/framework/templates/README.md +18 -18
- package/framework/templates/REGISTRY.json +49 -96
- package/framework/templates/code/dotnet/abstractions/api-endpoint.cs +7 -7
- package/framework/templates/code/dotnet/backend/repository.cs +148 -148
- package/framework/templates/code/dotnet/contracts/contracts-vsa.cs +2 -2
- package/framework/templates/code/dotnet/database/vector-entity.cs +93 -0
- package/framework/templates/code/dotnet/feature/endpoint.cs.hbs +1 -1
- package/framework/templates/code/sql/{supabase-migration.sql → postgresql-migration.sql} +8 -17
- package/framework/templates/code/sql/{supabase-migration.template.sql → postgresql-migration.template.sql} +10 -13
- package/framework/templates/code/sql/{rls-policy.sql → postgresql-rls-policy.sql} +8 -8
- package/framework/templates/code/typescript/contracts.ts +167 -168
- package/framework/templates/context/CONTEXT.md +3 -3
- package/framework/templates/docs/proposal.md +6 -6
- package/framework/templates/docs/ui-components.md +1 -1
- package/framework/templates/feature/decisions.md +121 -121
- package/framework/templates/feature/recap.md +145 -145
- package/framework/templates/feature/tasks.md +199 -199
- package/framework/templates/frontend/nextjs/gsap-scroll-section.tsx.hbs +44 -0
- package/framework/templates/infrastructure/docker/docker-compose.template.yml +50 -67
- package/framework/templates/infrastructure/docker/dockerfile-api.dockerfile +38 -38
- package/framework/templates/infrastructure/docker/dockerfile-web.dockerfile +48 -48
- package/framework/templates/infrastructure/docker/easypanel.template.json +46 -54
- package/framework/templates/infrastructure/github/README.md +56 -56
- package/framework/templates/integrations/semantic-kernel-neon.cs +125 -0
- package/framework/workflows/README.md +1 -1
- package/framework/workflows/docs/full-morph.md +69 -69
- package/package.json +1 -1
- package/src/commands/agents/dispatch-agents.js +19 -15
- package/src/commands/project/setup-infra-cmd.js +1 -1
- package/src/commands/state/advance-phase.js +5 -0
- package/src/commands/tasks/task.js +3 -0
- package/src/core/state/state-manager.js +45 -1
- package/src/core/templates/template-registry.js +1 -66
- package/src/lib/detectors/index.js +2 -2
- package/src/lib/generators/architecture-scanner.js +640 -640
- package/src/lib/installers/mcp-installer.js +1 -1
- package/src/lib/tasks/task-classifier.js +15 -1
- package/src/lib/tasks/test-runner.js +5 -1
- package/src/lib/validators/content/content-validator.js +9 -10
- package/src/lib/validators/validation-runner.js +7 -5
- package/src/scripts/setup-infra.js +60 -30
- package/framework/agents/backend/supabase-expert.md +0 -256
- package/framework/rules/supabase-standards.md +0 -29
- package/framework/standards/infrastructure/supabase/mcp-setup.md +0 -142
- package/framework/standards/infrastructure/supabase/supabase-auth.md +0 -176
- package/framework/standards/infrastructure/supabase/supabase-custom-jwt.md +0 -206
- package/framework/standards/infrastructure/supabase/supabase-pgvector.md +0 -169
- package/framework/standards/infrastructure/supabase/supabase-rls.md +0 -184
- package/framework/standards/infrastructure/supabase/supabase-storage.md +0 -153
|
@@ -1,145 +1,145 @@
|
|
|
1
|
-
# Feature Recap: {{titleCase FEATURE_NAME}}
|
|
2
|
-
|
|
3
|
-
## Summary
|
|
4
|
-
|
|
5
|
-
| Field | Value |
|
|
6
|
-
|-------|-------|
|
|
7
|
-
| **Feature ID** | {{FEATURE_NAME}} |
|
|
8
|
-
| **Completed** | {{DATE}} |
|
|
9
|
-
| **Total Tasks** | {X} |
|
|
10
|
-
| **Time Spent** | {X}h |
|
|
11
|
-
| **Agents Used** | {list} |
|
|
12
|
-
{{#if STACK}}| **Stack** | {{STACK}} |{{/if}}
|
|
13
|
-
|
|
14
|
-
---
|
|
15
|
-
|
|
16
|
-
## Tasks Completed
|
|
17
|
-
|
|
18
|
-
| ID | Title | Category | Duration |
|
|
19
|
-
|----|-------|----------|----------|
|
|
20
|
-
| T001 | {title} | {{#if (eq STACK "nextjs-
|
|
21
|
-
| T002 | {title} | {{#if (eq STACK "nextjs-
|
|
22
|
-
| T003 | {title} | {{#if (eq STACK "nextjs-
|
|
23
|
-
|
|
24
|
-
---
|
|
25
|
-
|
|
26
|
-
{{#if (eq STACK "nextjs-
|
|
27
|
-
## Validation Results
|
|
28
|
-
|
|
29
|
-
| Validator | Status | Details |
|
|
30
|
-
|-----------|--------|---------|
|
|
31
|
-
| contract-compliance | Pass/Fail | {details} |
|
|
32
|
-
| architecture | Pass/Fail | {details} |
|
|
33
|
-
| design-system | Pass/Fail | {details} |
|
|
34
|
-
| coding-standards | Pass/Fail | {details} |
|
|
35
|
-
|
|
36
|
-
---
|
|
37
|
-
|
|
38
|
-
{{/if}}
|
|
39
|
-
## What Was Delivered
|
|
40
|
-
|
|
41
|
-
### Functionality
|
|
42
|
-
- {Functionality 1 delivered}
|
|
43
|
-
- {Functionality 2 delivered}
|
|
44
|
-
- {Functionality 3 delivered}
|
|
45
|
-
|
|
46
|
-
{{#if (eq STACK "nextjs-
|
|
47
|
-
### Database (
|
|
48
|
-
- Tables: {list}
|
|
49
|
-
- RLS Policies: {count} policies
|
|
50
|
-
- Migrations: {count} files
|
|
51
|
-
|
|
52
|
-
### Backend API (.NET)
|
|
53
|
-
- Endpoints: {count} endpoints
|
|
54
|
-
- Services: {list}
|
|
55
|
-
|
|
56
|
-
### Frontend (Next.js)
|
|
57
|
-
- Pages: {list}
|
|
58
|
-
- Components: {list}
|
|
59
|
-
{{/if}}
|
|
60
|
-
|
|
61
|
-
---
|
|
62
|
-
|
|
63
|
-
## Files Created
|
|
64
|
-
|
|
65
|
-
```
|
|
66
|
-
{{#if (eq STACK "nextjs-
|
|
67
|
-
|
|
68
|
-
backend/src/{files}
|
|
69
|
-
frontend/src/{files}
|
|
70
|
-
{{else}}
|
|
71
|
-
{list of created files}
|
|
72
|
-
{{/if}}
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
## Files Modified
|
|
76
|
-
|
|
77
|
-
```
|
|
78
|
-
{list of modified files}
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
---
|
|
82
|
-
|
|
83
|
-
## Architecture Decisions
|
|
84
|
-
|
|
85
|
-
| Decision | Rationale |
|
|
86
|
-
|----------|-----------|
|
|
87
|
-
| {Decision 1} | {Reason} |
|
|
88
|
-
| {Decision 2} | {Reason} |
|
|
89
|
-
|
|
90
|
-
See full ADRs in `decisions.md`
|
|
91
|
-
|
|
92
|
-
---
|
|
93
|
-
|
|
94
|
-
## Test Coverage
|
|
95
|
-
|
|
96
|
-
| Type | Files | Coverage |
|
|
97
|
-
|------|-------|----------|
|
|
98
|
-
| {{#if (eq STACK "nextjs-
|
|
99
|
-
| {{#if (eq STACK "nextjs-
|
|
100
|
-
|
|
101
|
-
---
|
|
102
|
-
|
|
103
|
-
## Lessons Learned
|
|
104
|
-
|
|
105
|
-
### What Went Well
|
|
106
|
-
- {Positive point 1}
|
|
107
|
-
- {Positive point 2}
|
|
108
|
-
|
|
109
|
-
### What Could Be Improved
|
|
110
|
-
- {Improvement point 1}
|
|
111
|
-
- {Improvement point 2}
|
|
112
|
-
|
|
113
|
-
### Recommendations for Future
|
|
114
|
-
- {Recommendation 1}
|
|
115
|
-
- {Recommendation 2}
|
|
116
|
-
|
|
117
|
-
---
|
|
118
|
-
|
|
119
|
-
## Metrics
|
|
120
|
-
|
|
121
|
-
| Metric | Value |
|
|
122
|
-
|--------|-------|
|
|
123
|
-
| Tasks Completed | {X}/{X} |
|
|
124
|
-
| Checkpoints Passed | {X} |
|
|
125
|
-
{{#if (eq STACK "nextjs-
|
|
126
|
-
{{else}}| Code Reviews | {X} |
|
|
127
|
-
{{/if}}| Bugs Found | {X} |
|
|
128
|
-
| Bugs Fixed | {X} |
|
|
129
|
-
|
|
130
|
-
---
|
|
131
|
-
|
|
132
|
-
## Related Resources
|
|
133
|
-
|
|
134
|
-
- **Proposal:** `proposal.md`
|
|
135
|
-
- **Spec:** `spec.md`
|
|
136
|
-
{{#if (eq STACK "nextjs-
|
|
137
|
-
- **Contracts (TS):** `contracts.ts`
|
|
138
|
-
{{else}}- **Contracts:** `contracts.cs`
|
|
139
|
-
{{/if}}- **Tasks:** `tasks.md`
|
|
140
|
-
- **Decisions:** `decisions.md`
|
|
141
|
-
- **PR:** {link}
|
|
142
|
-
|
|
143
|
-
---
|
|
144
|
-
|
|
145
|
-
*Generated by MORPH Framework on {{DATE}}*
|
|
1
|
+
# Feature Recap: {{titleCase FEATURE_NAME}}
|
|
2
|
+
|
|
3
|
+
## Summary
|
|
4
|
+
|
|
5
|
+
| Field | Value |
|
|
6
|
+
|-------|-------|
|
|
7
|
+
| **Feature ID** | {{FEATURE_NAME}} |
|
|
8
|
+
| **Completed** | {{DATE}} |
|
|
9
|
+
| **Total Tasks** | {X} |
|
|
10
|
+
| **Time Spent** | {X}h |
|
|
11
|
+
| **Agents Used** | {list} |
|
|
12
|
+
{{#if STACK}}| **Stack** | {{STACK}} |{{/if}}
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Tasks Completed
|
|
17
|
+
|
|
18
|
+
| ID | Title | Category | Duration |
|
|
19
|
+
|----|-------|----------|----------|
|
|
20
|
+
| T001 | {title} | {{#if (eq STACK "nextjs-neon")}}Database{{else}}{category}{{/if}} | {X}min |
|
|
21
|
+
| T002 | {title} | {{#if (eq STACK "nextjs-neon")}}Backend{{else}}{category}{{/if}} | {X}min |
|
|
22
|
+
| T003 | {title} | {{#if (eq STACK "nextjs-neon")}}Frontend{{else}}{category}{{/if}} | {X}min |
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
{{#if (eq STACK "nextjs-neon")}}
|
|
27
|
+
## Validation Results
|
|
28
|
+
|
|
29
|
+
| Validator | Status | Details |
|
|
30
|
+
|-----------|--------|---------|
|
|
31
|
+
| contract-compliance | Pass/Fail | {details} |
|
|
32
|
+
| architecture | Pass/Fail | {details} |
|
|
33
|
+
| design-system | Pass/Fail | {details} |
|
|
34
|
+
| coding-standards | Pass/Fail | {details} |
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
{{/if}}
|
|
39
|
+
## What Was Delivered
|
|
40
|
+
|
|
41
|
+
### Functionality
|
|
42
|
+
- {Functionality 1 delivered}
|
|
43
|
+
- {Functionality 2 delivered}
|
|
44
|
+
- {Functionality 3 delivered}
|
|
45
|
+
|
|
46
|
+
{{#if (eq STACK "nextjs-neon")}}
|
|
47
|
+
### Database (Neon PostgreSQL)
|
|
48
|
+
- Tables: {list}
|
|
49
|
+
- RLS Policies: {count} policies
|
|
50
|
+
- Migrations: {count} files
|
|
51
|
+
|
|
52
|
+
### Backend API (.NET)
|
|
53
|
+
- Endpoints: {count} endpoints
|
|
54
|
+
- Services: {list}
|
|
55
|
+
|
|
56
|
+
### Frontend (Next.js)
|
|
57
|
+
- Pages: {list}
|
|
58
|
+
- Components: {list}
|
|
59
|
+
{{/if}}
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## Files Created
|
|
64
|
+
|
|
65
|
+
```
|
|
66
|
+
{{#if (eq STACK "nextjs-neon")}}
|
|
67
|
+
migrations/{files}
|
|
68
|
+
backend/src/{files}
|
|
69
|
+
frontend/src/{files}
|
|
70
|
+
{{else}}
|
|
71
|
+
{list of created files}
|
|
72
|
+
{{/if}}
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## Files Modified
|
|
76
|
+
|
|
77
|
+
```
|
|
78
|
+
{list of modified files}
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## Architecture Decisions
|
|
84
|
+
|
|
85
|
+
| Decision | Rationale |
|
|
86
|
+
|----------|-----------|
|
|
87
|
+
| {Decision 1} | {Reason} |
|
|
88
|
+
| {Decision 2} | {Reason} |
|
|
89
|
+
|
|
90
|
+
See full ADRs in `decisions.md`
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## Test Coverage
|
|
95
|
+
|
|
96
|
+
| Type | Files | Coverage |
|
|
97
|
+
|------|-------|----------|
|
|
98
|
+
| {{#if (eq STACK "nextjs-neon")}}Backend Unit{{else}}Unit Tests{{/if}} | {X} | {X}% |
|
|
99
|
+
| {{#if (eq STACK "nextjs-neon")}}Frontend Component{{else}}Integration Tests{{/if}} | {X} | {X}% |
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## Lessons Learned
|
|
104
|
+
|
|
105
|
+
### What Went Well
|
|
106
|
+
- {Positive point 1}
|
|
107
|
+
- {Positive point 2}
|
|
108
|
+
|
|
109
|
+
### What Could Be Improved
|
|
110
|
+
- {Improvement point 1}
|
|
111
|
+
- {Improvement point 2}
|
|
112
|
+
|
|
113
|
+
### Recommendations for Future
|
|
114
|
+
- {Recommendation 1}
|
|
115
|
+
- {Recommendation 2}
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
## Metrics
|
|
120
|
+
|
|
121
|
+
| Metric | Value |
|
|
122
|
+
|--------|-------|
|
|
123
|
+
| Tasks Completed | {X}/{X} |
|
|
124
|
+
| Checkpoints Passed | {X} |
|
|
125
|
+
{{#if (eq STACK "nextjs-neon")}}| Validation Passes | {X}/{X} |
|
|
126
|
+
{{else}}| Code Reviews | {X} |
|
|
127
|
+
{{/if}}| Bugs Found | {X} |
|
|
128
|
+
| Bugs Fixed | {X} |
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
## Related Resources
|
|
133
|
+
|
|
134
|
+
- **Proposal:** `proposal.md`
|
|
135
|
+
- **Spec:** `spec.md`
|
|
136
|
+
{{#if (eq STACK "nextjs-neon")}}- **Contracts (.NET):** `contracts.cs`
|
|
137
|
+
- **Contracts (TS):** `contracts.ts`
|
|
138
|
+
{{else}}- **Contracts:** `contracts.cs`
|
|
139
|
+
{{/if}}- **Tasks:** `tasks.md`
|
|
140
|
+
- **Decisions:** `decisions.md`
|
|
141
|
+
- **PR:** {link}
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
*Generated by MORPH Framework on {{DATE}}*
|
|
@@ -1,199 +1,199 @@
|
|
|
1
|
-
# Tasks - {{titleCase FEATURE_NAME}}
|
|
2
|
-
|
|
3
|
-
> Implementation checklist for the feature.
|
|
4
|
-
> Update status as you progress.
|
|
5
|
-
|
|
6
|
-
| Task ID | Type | Title | Status |
|
|
7
|
-
|---------|------|-------|--------|
|
|
8
|
-
| T001 | {type} | {title} | Pending |
|
|
9
|
-
| T002 | {type} | {title} | Pending |
|
|
10
|
-
| T003 | {type} | {title} | In Progress |
|
|
11
|
-
| T004 | {type} | {title} | Blocked |
|
|
12
|
-
| T005 | {type} | {title} | Done |
|
|
13
|
-
|
|
14
|
-
**Status Values:** `Pending | In Progress | Blocked | Done`
|
|
15
|
-
|
|
16
|
-
---
|
|
17
|
-
|
|
18
|
-
## Task Granularity
|
|
19
|
-
|
|
20
|
-
### Ideal Task
|
|
21
|
-
- 15-60 minutes of implementation
|
|
22
|
-
- 1-5 files modified
|
|
23
|
-
- Testable in isolation
|
|
24
|
-
- Independent commit possible
|
|
25
|
-
|
|
26
|
-
### Signs of Too Broad (Split)
|
|
27
|
-
**Bad example:** "Implement feature"
|
|
28
|
-
**Split into:**
|
|
29
|
-
- T001: Define contracts and interfaces
|
|
30
|
-
- T002: Implement data layer
|
|
31
|
-
- T003: Implement business logic
|
|
32
|
-
- T004: Create UI components
|
|
33
|
-
- T005: Write tests
|
|
34
|
-
|
|
35
|
-
### Signs of Too Granular (Merge)
|
|
36
|
-
**Bad example:** "Create field A", "Create field B", "Create field C"
|
|
37
|
-
**Merge into:** "Create data model with all fields"
|
|
38
|
-
|
|
39
|
-
---
|
|
40
|
-
|
|
41
|
-
## Gates & Reviews
|
|
42
|
-
|
|
43
|
-
| Task ID | Type | Description | Status |
|
|
44
|
-
|---------|------|-------------|--------|
|
|
45
|
-
| T003 | Review | Review contracts and data model | Pending |
|
|
46
|
-
| T006 | Review | Review implementation | Pending |
|
|
47
|
-
| T009 | Approval | Approve UI before testing | Pending |
|
|
48
|
-
|
|
49
|
-
---
|
|
50
|
-
|
|
51
|
-
## Phase 1: Contracts & Data Model
|
|
52
|
-
|
|
53
|
-
### T001: Define contracts and interfaces
|
|
54
|
-
- **Type:** Contract
|
|
55
|
-
- **Priority:** 1
|
|
56
|
-
- **Estimate:** 30min
|
|
57
|
-
- **Assigned:** {agent}
|
|
58
|
-
- **Dependencies:** None
|
|
59
|
-
|
|
60
|
-
**Description:**
|
|
61
|
-
|
|
62
|
-
Define service interfaces and contracts.
|
|
63
|
-
|
|
64
|
-
**Deliverables:**
|
|
65
|
-
- [ ] Create: `{path-to-interface-file}`
|
|
66
|
-
|
|
67
|
-
---
|
|
68
|
-
|
|
69
|
-
### T002: Create data model
|
|
70
|
-
- **Type:** {{#if (eq STACK "nextjs-
|
|
71
|
-
- **Priority:** 1
|
|
72
|
-
- **Estimate:** 45min
|
|
73
|
-
- **Assigned:** {agent}
|
|
74
|
-
- **Dependencies:** None
|
|
75
|
-
|
|
76
|
-
**Description:**
|
|
77
|
-
|
|
78
|
-
Create data model {{#if (eq STACK "nextjs-
|
|
79
|
-
|
|
80
|
-
**Deliverables:**
|
|
81
|
-
- [ ] Create: `{path-to-model-file}`
|
|
82
|
-
|
|
83
|
-
---
|
|
84
|
-
|
|
85
|
-
## Phase 2: Implementation
|
|
86
|
-
|
|
87
|
-
### T003: Implement data layer
|
|
88
|
-
- **Type:** {{#if (eq STACK "nextjs-
|
|
89
|
-
- **Priority:** 2
|
|
90
|
-
- **Estimate:** 1h
|
|
91
|
-
- **Assigned:** {agent}
|
|
92
|
-
- **Dependencies:** T001, T002
|
|
93
|
-
|
|
94
|
-
**Description:**
|
|
95
|
-
|
|
96
|
-
Implement data access layer.
|
|
97
|
-
|
|
98
|
-
**Deliverables:**
|
|
99
|
-
- [ ] Create: `{path-to-repository-file}`
|
|
100
|
-
|
|
101
|
-
---
|
|
102
|
-
|
|
103
|
-
### T004: Implement business logic
|
|
104
|
-
- **Type:** Service
|
|
105
|
-
- **Priority:** 2
|
|
106
|
-
- **Estimate:** 1h
|
|
107
|
-
- **Assigned:** {agent}
|
|
108
|
-
- **Dependencies:** T001, T003
|
|
109
|
-
|
|
110
|
-
**Description:**
|
|
111
|
-
|
|
112
|
-
Implement service layer with business logic.
|
|
113
|
-
|
|
114
|
-
**Deliverables:**
|
|
115
|
-
- [ ] Create: `{path-to-service-file}`
|
|
116
|
-
|
|
117
|
-
---
|
|
118
|
-
|
|
119
|
-
## Phase 3: UI Components
|
|
120
|
-
|
|
121
|
-
### T005: Create list component
|
|
122
|
-
- **Type:** UI
|
|
123
|
-
- **Priority:** 2
|
|
124
|
-
- **Estimate:** 45min
|
|
125
|
-
- **Assigned:** {agent}
|
|
126
|
-
- **Dependencies:** T004
|
|
127
|
-
|
|
128
|
-
**Description:**
|
|
129
|
-
|
|
130
|
-
Create component to list items.
|
|
131
|
-
|
|
132
|
-
**Deliverables:**
|
|
133
|
-
- [ ] Create: `{path-to-component-file}`
|
|
134
|
-
|
|
135
|
-
---
|
|
136
|
-
|
|
137
|
-
### T006: Create form component
|
|
138
|
-
- **Type:** UI
|
|
139
|
-
- **Priority:** 2
|
|
140
|
-
- **Estimate:** 1h
|
|
141
|
-
- **Assigned:** {agent}
|
|
142
|
-
- **Dependencies:** T005
|
|
143
|
-
|
|
144
|
-
**Description:**
|
|
145
|
-
|
|
146
|
-
Create component for create/edit.
|
|
147
|
-
|
|
148
|
-
**Deliverables:**
|
|
149
|
-
- [ ] Create: `{path-to-form-file}`
|
|
150
|
-
|
|
151
|
-
---
|
|
152
|
-
|
|
153
|
-
## Phase 4: Testing
|
|
154
|
-
|
|
155
|
-
### T007: Write unit tests
|
|
156
|
-
- **Type:** Test
|
|
157
|
-
- **Priority:** 2
|
|
158
|
-
- **Estimate:** 1h
|
|
159
|
-
- **Assigned:** {agent}
|
|
160
|
-
- **Dependencies:** T004
|
|
161
|
-
|
|
162
|
-
**Description:**
|
|
163
|
-
|
|
164
|
-
Unit tests for service layer.
|
|
165
|
-
|
|
166
|
-
**Deliverables:**
|
|
167
|
-
- [ ] Create: `{path-to-test-file}`
|
|
168
|
-
|
|
169
|
-
---
|
|
170
|
-
|
|
171
|
-
### T008: Write integration tests
|
|
172
|
-
- **Type:** Test
|
|
173
|
-
- **Priority:** 3
|
|
174
|
-
- **Estimate:** 1h
|
|
175
|
-
- **Assigned:** {agent}
|
|
176
|
-
- **Dependencies:** T007
|
|
177
|
-
|
|
178
|
-
**Description:**
|
|
179
|
-
|
|
180
|
-
Integration tests for {{#if (eq STACK "nextjs-
|
|
181
|
-
|
|
182
|
-
**Deliverables:**
|
|
183
|
-
- [ ] Create: `{path-to-integration-test-file}`
|
|
184
|
-
|
|
185
|
-
---
|
|
186
|
-
|
|
187
|
-
## Summary
|
|
188
|
-
|
|
189
|
-
| Phase | Tasks | Estimate |
|
|
190
|
-
|-------|-------|----------|
|
|
191
|
-
| Phase 1 | T001-T002 | {X}h |
|
|
192
|
-
| Phase 2 | T003-T004 | {X}h |
|
|
193
|
-
| Phase 3 | T005-T006 | {X}h |
|
|
194
|
-
| Phase 4 | T007-T008 | {X}h |
|
|
195
|
-
| **Total** | **8 tasks** | **{X}h** |
|
|
196
|
-
|
|
197
|
-
---
|
|
198
|
-
|
|
199
|
-
*Generated by MORPH Framework*
|
|
1
|
+
# Tasks - {{titleCase FEATURE_NAME}}
|
|
2
|
+
|
|
3
|
+
> Implementation checklist for the feature.
|
|
4
|
+
> Update status as you progress.
|
|
5
|
+
|
|
6
|
+
| Task ID | Type | Title | Status |
|
|
7
|
+
|---------|------|-------|--------|
|
|
8
|
+
| T001 | {type} | {title} | Pending |
|
|
9
|
+
| T002 | {type} | {title} | Pending |
|
|
10
|
+
| T003 | {type} | {title} | In Progress |
|
|
11
|
+
| T004 | {type} | {title} | Blocked |
|
|
12
|
+
| T005 | {type} | {title} | Done |
|
|
13
|
+
|
|
14
|
+
**Status Values:** `Pending | In Progress | Blocked | Done`
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## Task Granularity
|
|
19
|
+
|
|
20
|
+
### Ideal Task
|
|
21
|
+
- 15-60 minutes of implementation
|
|
22
|
+
- 1-5 files modified
|
|
23
|
+
- Testable in isolation
|
|
24
|
+
- Independent commit possible
|
|
25
|
+
|
|
26
|
+
### Signs of Too Broad (Split)
|
|
27
|
+
**Bad example:** "Implement feature"
|
|
28
|
+
**Split into:**
|
|
29
|
+
- T001: Define contracts and interfaces
|
|
30
|
+
- T002: Implement data layer
|
|
31
|
+
- T003: Implement business logic
|
|
32
|
+
- T004: Create UI components
|
|
33
|
+
- T005: Write tests
|
|
34
|
+
|
|
35
|
+
### Signs of Too Granular (Merge)
|
|
36
|
+
**Bad example:** "Create field A", "Create field B", "Create field C"
|
|
37
|
+
**Merge into:** "Create data model with all fields"
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## Gates & Reviews
|
|
42
|
+
|
|
43
|
+
| Task ID | Type | Description | Status |
|
|
44
|
+
|---------|------|-------------|--------|
|
|
45
|
+
| T003 | Review | Review contracts and data model | Pending |
|
|
46
|
+
| T006 | Review | Review implementation | Pending |
|
|
47
|
+
| T009 | Approval | Approve UI before testing | Pending |
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## Phase 1: Contracts & Data Model
|
|
52
|
+
|
|
53
|
+
### T001: Define contracts and interfaces
|
|
54
|
+
- **Type:** Contract
|
|
55
|
+
- **Priority:** 1
|
|
56
|
+
- **Estimate:** 30min
|
|
57
|
+
- **Assigned:** {agent}
|
|
58
|
+
- **Dependencies:** None
|
|
59
|
+
|
|
60
|
+
**Description:**
|
|
61
|
+
|
|
62
|
+
Define service interfaces and contracts.
|
|
63
|
+
|
|
64
|
+
**Deliverables:**
|
|
65
|
+
- [ ] Create: `{path-to-interface-file}`
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
### T002: Create data model
|
|
70
|
+
- **Type:** {{#if (eq STACK "nextjs-neon")}}Database{{else}}Domain{{/if}}
|
|
71
|
+
- **Priority:** 1
|
|
72
|
+
- **Estimate:** 45min
|
|
73
|
+
- **Assigned:** {agent}
|
|
74
|
+
- **Dependencies:** None
|
|
75
|
+
|
|
76
|
+
**Description:**
|
|
77
|
+
|
|
78
|
+
Create data model {{#if (eq STACK "nextjs-neon")}}with migrations{{else}}with entities{{/if}}.
|
|
79
|
+
|
|
80
|
+
**Deliverables:**
|
|
81
|
+
- [ ] Create: `{path-to-model-file}`
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## Phase 2: Implementation
|
|
86
|
+
|
|
87
|
+
### T003: Implement data layer
|
|
88
|
+
- **Type:** {{#if (eq STACK "nextjs-neon")}}Repository{{else}}Infrastructure{{/if}}
|
|
89
|
+
- **Priority:** 2
|
|
90
|
+
- **Estimate:** 1h
|
|
91
|
+
- **Assigned:** {agent}
|
|
92
|
+
- **Dependencies:** T001, T002
|
|
93
|
+
|
|
94
|
+
**Description:**
|
|
95
|
+
|
|
96
|
+
Implement data access layer.
|
|
97
|
+
|
|
98
|
+
**Deliverables:**
|
|
99
|
+
- [ ] Create: `{path-to-repository-file}`
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
### T004: Implement business logic
|
|
104
|
+
- **Type:** Service
|
|
105
|
+
- **Priority:** 2
|
|
106
|
+
- **Estimate:** 1h
|
|
107
|
+
- **Assigned:** {agent}
|
|
108
|
+
- **Dependencies:** T001, T003
|
|
109
|
+
|
|
110
|
+
**Description:**
|
|
111
|
+
|
|
112
|
+
Implement service layer with business logic.
|
|
113
|
+
|
|
114
|
+
**Deliverables:**
|
|
115
|
+
- [ ] Create: `{path-to-service-file}`
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
## Phase 3: UI Components
|
|
120
|
+
|
|
121
|
+
### T005: Create list component
|
|
122
|
+
- **Type:** UI
|
|
123
|
+
- **Priority:** 2
|
|
124
|
+
- **Estimate:** 45min
|
|
125
|
+
- **Assigned:** {agent}
|
|
126
|
+
- **Dependencies:** T004
|
|
127
|
+
|
|
128
|
+
**Description:**
|
|
129
|
+
|
|
130
|
+
Create component to list items.
|
|
131
|
+
|
|
132
|
+
**Deliverables:**
|
|
133
|
+
- [ ] Create: `{path-to-component-file}`
|
|
134
|
+
|
|
135
|
+
---
|
|
136
|
+
|
|
137
|
+
### T006: Create form component
|
|
138
|
+
- **Type:** UI
|
|
139
|
+
- **Priority:** 2
|
|
140
|
+
- **Estimate:** 1h
|
|
141
|
+
- **Assigned:** {agent}
|
|
142
|
+
- **Dependencies:** T005
|
|
143
|
+
|
|
144
|
+
**Description:**
|
|
145
|
+
|
|
146
|
+
Create component for create/edit.
|
|
147
|
+
|
|
148
|
+
**Deliverables:**
|
|
149
|
+
- [ ] Create: `{path-to-form-file}`
|
|
150
|
+
|
|
151
|
+
---
|
|
152
|
+
|
|
153
|
+
## Phase 4: Testing
|
|
154
|
+
|
|
155
|
+
### T007: Write unit tests
|
|
156
|
+
- **Type:** Test
|
|
157
|
+
- **Priority:** 2
|
|
158
|
+
- **Estimate:** 1h
|
|
159
|
+
- **Assigned:** {agent}
|
|
160
|
+
- **Dependencies:** T004
|
|
161
|
+
|
|
162
|
+
**Description:**
|
|
163
|
+
|
|
164
|
+
Unit tests for service layer.
|
|
165
|
+
|
|
166
|
+
**Deliverables:**
|
|
167
|
+
- [ ] Create: `{path-to-test-file}`
|
|
168
|
+
|
|
169
|
+
---
|
|
170
|
+
|
|
171
|
+
### T008: Write integration tests
|
|
172
|
+
- **Type:** Test
|
|
173
|
+
- **Priority:** 3
|
|
174
|
+
- **Estimate:** 1h
|
|
175
|
+
- **Assigned:** {agent}
|
|
176
|
+
- **Dependencies:** T007
|
|
177
|
+
|
|
178
|
+
**Description:**
|
|
179
|
+
|
|
180
|
+
Integration tests for {{#if (eq STACK "nextjs-neon")}}API and database{{else}}repository and API{{/if}}.
|
|
181
|
+
|
|
182
|
+
**Deliverables:**
|
|
183
|
+
- [ ] Create: `{path-to-integration-test-file}`
|
|
184
|
+
|
|
185
|
+
---
|
|
186
|
+
|
|
187
|
+
## Summary
|
|
188
|
+
|
|
189
|
+
| Phase | Tasks | Estimate |
|
|
190
|
+
|-------|-------|----------|
|
|
191
|
+
| Phase 1 | T001-T002 | {X}h |
|
|
192
|
+
| Phase 2 | T003-T004 | {X}h |
|
|
193
|
+
| Phase 3 | T005-T006 | {X}h |
|
|
194
|
+
| Phase 4 | T007-T008 | {X}h |
|
|
195
|
+
| **Total** | **8 tasks** | **{X}h** |
|
|
196
|
+
|
|
197
|
+
---
|
|
198
|
+
|
|
199
|
+
*Generated by MORPH Framework*
|