prizmkit 1.0.0 → 1.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.
- package/bundled/VERSION.json +5 -0
- package/bundled/adapters/claude/agent-adapter.js +108 -0
- package/bundled/adapters/claude/command-adapter.js +104 -0
- package/bundled/adapters/claude/paths.js +35 -0
- package/bundled/adapters/claude/rules-adapter.js +77 -0
- package/bundled/adapters/claude/settings-adapter.js +73 -0
- package/bundled/adapters/claude/team-adapter.js +183 -0
- package/bundled/adapters/codebuddy/agent-adapter.js +43 -0
- package/bundled/adapters/codebuddy/paths.js +29 -0
- package/bundled/adapters/codebuddy/settings-adapter.js +47 -0
- package/bundled/adapters/codebuddy/skill-adapter.js +68 -0
- package/bundled/adapters/codebuddy/team-adapter.js +46 -0
- package/bundled/adapters/shared/frontmatter.js +77 -0
- package/bundled/agents/prizm-dev-team-coordinator.md +142 -0
- package/bundled/agents/prizm-dev-team-dev.md +99 -0
- package/bundled/agents/prizm-dev-team-pm.md +114 -0
- package/bundled/agents/prizm-dev-team-reviewer.md +119 -0
- package/bundled/dev-pipeline/README.md +482 -0
- package/bundled/dev-pipeline/assets/feature-list-example.json +147 -0
- package/bundled/dev-pipeline/assets/prizm-dev-team-integration.md +138 -0
- package/bundled/dev-pipeline/launch-bugfix-daemon.sh +425 -0
- package/bundled/dev-pipeline/launch-daemon.sh +549 -0
- package/bundled/dev-pipeline/reset-feature.sh +209 -0
- package/bundled/dev-pipeline/retry-bug.sh +344 -0
- package/bundled/dev-pipeline/retry-feature.sh +338 -0
- package/bundled/dev-pipeline/run-bugfix.sh +638 -0
- package/bundled/dev-pipeline/run.sh +845 -0
- package/bundled/dev-pipeline/scripts/check-session-status.py +158 -0
- package/bundled/dev-pipeline/scripts/detect-stuck.py +385 -0
- package/bundled/dev-pipeline/scripts/generate-bootstrap-prompt.py +598 -0
- package/bundled/dev-pipeline/scripts/generate-bugfix-prompt.py +402 -0
- package/bundled/dev-pipeline/scripts/init-bugfix-pipeline.py +294 -0
- package/bundled/dev-pipeline/scripts/init-dev-team.py +134 -0
- package/bundled/dev-pipeline/scripts/init-pipeline.py +335 -0
- package/bundled/dev-pipeline/scripts/update-bug-status.py +748 -0
- package/bundled/dev-pipeline/scripts/update-feature-status.py +1076 -0
- package/bundled/dev-pipeline/templates/bootstrap-prompt.md +262 -0
- package/bundled/dev-pipeline/templates/bug-fix-list-schema.json +159 -0
- package/bundled/dev-pipeline/templates/bugfix-bootstrap-prompt.md +291 -0
- package/bundled/dev-pipeline/templates/feature-list-schema.json +112 -0
- package/bundled/dev-pipeline/templates/session-status-schema.json +77 -0
- package/bundled/skills/_metadata.json +267 -0
- package/bundled/skills/app-planner/SKILL.md +580 -0
- package/bundled/skills/app-planner/assets/planning-guide.md +313 -0
- package/bundled/skills/app-planner/scripts/validate-and-generate.py +758 -0
- package/bundled/skills/bug-planner/SKILL.md +235 -0
- package/bundled/skills/bugfix-pipeline-launcher/SKILL.md +252 -0
- package/bundled/skills/dev-pipeline-launcher/SKILL.md +223 -0
- package/bundled/skills/prizm-kit/SKILL.md +151 -0
- package/bundled/skills/prizm-kit/assets/claude-md-template.md +38 -0
- package/bundled/skills/prizm-kit/assets/codebuddy-md-template.md +35 -0
- package/bundled/skills/prizm-kit/assets/hooks/prizm-commit-hook.json +15 -0
- package/bundled/skills/prizmkit-adr-manager/SKILL.md +68 -0
- package/bundled/skills/prizmkit-adr-manager/assets/adr-template.md +26 -0
- package/bundled/skills/prizmkit-analyze/SKILL.md +194 -0
- package/bundled/skills/prizmkit-api-doc-generator/SKILL.md +56 -0
- package/bundled/skills/prizmkit-bug-fix-workflow/SKILL.md +351 -0
- package/bundled/skills/prizmkit-bug-reproducer/SKILL.md +62 -0
- package/bundled/skills/prizmkit-ci-cd-generator/SKILL.md +54 -0
- package/bundled/skills/prizmkit-clarify/SKILL.md +52 -0
- package/bundled/skills/prizmkit-code-review/SKILL.md +70 -0
- package/bundled/skills/prizmkit-committer/SKILL.md +117 -0
- package/bundled/skills/prizmkit-db-migration/SKILL.md +65 -0
- package/bundled/skills/prizmkit-dependency-health/SKILL.md +123 -0
- package/bundled/skills/prizmkit-deployment-strategy/SKILL.md +58 -0
- package/bundled/skills/prizmkit-error-triage/SKILL.md +55 -0
- package/bundled/skills/prizmkit-implement/SKILL.md +47 -0
- package/bundled/skills/prizmkit-init/SKILL.md +156 -0
- package/bundled/skills/prizmkit-log-analyzer/SKILL.md +55 -0
- package/bundled/skills/prizmkit-monitoring-setup/SKILL.md +75 -0
- package/bundled/skills/prizmkit-onboarding-generator/SKILL.md +70 -0
- package/bundled/skills/prizmkit-perf-profiler/SKILL.md +55 -0
- package/bundled/skills/prizmkit-plan/SKILL.md +54 -0
- package/bundled/skills/prizmkit-plan/assets/plan-template.md +37 -0
- package/bundled/skills/prizmkit-prizm-docs/SKILL.md +140 -0
- package/bundled/skills/prizmkit-prizm-docs/assets/PRIZM-SPEC.md +943 -0
- package/bundled/skills/prizmkit-retrospective/SKILL.md +79 -0
- package/bundled/skills/prizmkit-security-audit/SKILL.md +130 -0
- package/bundled/skills/prizmkit-specify/SKILL.md +52 -0
- package/bundled/skills/prizmkit-specify/assets/spec-template.md +37 -0
- package/bundled/skills/prizmkit-summarize/SKILL.md +51 -0
- package/bundled/skills/prizmkit-summarize/assets/registry-template.md +18 -0
- package/bundled/skills/prizmkit-tasks/SKILL.md +50 -0
- package/bundled/skills/prizmkit-tasks/assets/tasks-template.md +21 -0
- package/bundled/skills/prizmkit-tech-debt-tracker/SKILL.md +139 -0
- package/bundled/team/prizm-dev-team.json +47 -0
- package/bundled/templates/claude-md-template.md +38 -0
- package/bundled/templates/codebuddy-md-template.md +35 -0
- package/package.json +2 -1
|
@@ -0,0 +1,313 @@
|
|
|
1
|
+
# App Planning Reference Guide
|
|
2
|
+
|
|
3
|
+
This guide provides structured templates, decision matrices, and patterns for each phase of the app planning process. It is intended as a practical reference for the AI during interactive planning sessions.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 1. App Vision Template
|
|
8
|
+
|
|
9
|
+
Use this template to capture the app vision during the initial planning phase.
|
|
10
|
+
|
|
11
|
+
```markdown
|
|
12
|
+
# App Vision: [APP_NAME]
|
|
13
|
+
|
|
14
|
+
## Problem Statement
|
|
15
|
+
[What problem does this app solve?]
|
|
16
|
+
|
|
17
|
+
## Target Users
|
|
18
|
+
- Primary: [Who are the main users?]
|
|
19
|
+
- Secondary: [Any secondary user types?]
|
|
20
|
+
|
|
21
|
+
## Core Value Proposition
|
|
22
|
+
[What makes this app valuable? What's the "elevator pitch"?]
|
|
23
|
+
|
|
24
|
+
## Key Differentiators
|
|
25
|
+
[What sets this apart from existing solutions?]
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
### Guidance
|
|
29
|
+
|
|
30
|
+
- **Problem Statement**: Should describe a real pain point in 1-3 sentences. Avoid vague statements like "improve productivity." Be specific about who suffers and why.
|
|
31
|
+
- **Target Users**: Identify at least one primary user persona. Secondary users are optional but useful for prioritization decisions later.
|
|
32
|
+
- **Core Value Proposition**: Should be expressible in one sentence. If it takes a paragraph, the scope is likely too broad.
|
|
33
|
+
- **Key Differentiators**: List 1-3 concrete differentiators. If none exist, reconsider whether the app needs to be built.
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## 2. Tech Stack Decision Matrix
|
|
38
|
+
|
|
39
|
+
Use these tables to guide tech stack selection based on project requirements.
|
|
40
|
+
|
|
41
|
+
### Frontend Frameworks
|
|
42
|
+
|
|
43
|
+
| Framework | Best For | Ecosystem |
|
|
44
|
+
|-----------|----------|-----------|
|
|
45
|
+
| Next.js 14+ | Full-stack React, SSR, API routes | React ecosystem, Vercel |
|
|
46
|
+
| Nuxt 3 | Full-stack Vue, SSR | Vue ecosystem |
|
|
47
|
+
| SvelteKit | Performance-focused, smaller teams | Svelte ecosystem |
|
|
48
|
+
| Remix | Nested routes, data loading | React ecosystem |
|
|
49
|
+
|
|
50
|
+
### Backend Frameworks
|
|
51
|
+
|
|
52
|
+
| Framework | Best For | Language |
|
|
53
|
+
|-----------|----------|----------|
|
|
54
|
+
| Express.js | Flexible, minimal | Node.js/TS |
|
|
55
|
+
| FastAPI | High-perf APIs, Python ML | Python |
|
|
56
|
+
| NestJS | Enterprise, structured | Node.js/TS |
|
|
57
|
+
| Django | Batteries-included, admin | Python |
|
|
58
|
+
| Go (Gin/Echo) | High concurrency | Go |
|
|
59
|
+
|
|
60
|
+
### Databases
|
|
61
|
+
|
|
62
|
+
| Database | Best For | Type |
|
|
63
|
+
|----------|----------|------|
|
|
64
|
+
| PostgreSQL | Complex queries, ACID | Relational |
|
|
65
|
+
| MySQL | Read-heavy, simple | Relational |
|
|
66
|
+
| MongoDB | Flexible schema, documents | Document |
|
|
67
|
+
| SQLite | Embedded, prototyping | Relational |
|
|
68
|
+
| Redis | Caching, sessions, pub/sub | Key-Value |
|
|
69
|
+
|
|
70
|
+
### Design Systems
|
|
71
|
+
|
|
72
|
+
| System | Best For | Framework |
|
|
73
|
+
|--------|----------|-----------|
|
|
74
|
+
| shadcn/ui | Modern, customizable | React/Next.js |
|
|
75
|
+
| Ant Design | Enterprise, data-heavy | React |
|
|
76
|
+
| Material UI | Google-style, full-featured | React |
|
|
77
|
+
| Vuetify | Material Design for Vue | Vue |
|
|
78
|
+
| Tailwind CSS | Utility-first, any framework | Any |
|
|
79
|
+
|
|
80
|
+
### Common Service Patterns
|
|
81
|
+
|
|
82
|
+
| Need | Options |
|
|
83
|
+
|------|---------|
|
|
84
|
+
| Auth | NextAuth.js, Auth0, Clerk, Supabase Auth, custom JWT |
|
|
85
|
+
| Real-time | WebSocket, Socket.io, SSE, Supabase Realtime |
|
|
86
|
+
| File Storage | S3, Cloudflare R2, Supabase Storage |
|
|
87
|
+
| Email | SendGrid, Resend, Postmark |
|
|
88
|
+
| Payments | Stripe, LemonSqueezy |
|
|
89
|
+
| Search | Algolia, Meilisearch, Elasticsearch |
|
|
90
|
+
|
|
91
|
+
### Selection Heuristics
|
|
92
|
+
|
|
93
|
+
- If the user has no strong preference, default to **Next.js + PostgreSQL + shadcn/ui + Tailwind CSS** as a general-purpose stack.
|
|
94
|
+
- If the project involves ML/AI backends, prefer **FastAPI** on the backend.
|
|
95
|
+
- If the project requires high concurrency with minimal resource usage, consider **Go**.
|
|
96
|
+
- If rapid prototyping is the goal, consider **SQLite** initially with a migration path to PostgreSQL.
|
|
97
|
+
- Always ask about deployment preferences (Vercel, AWS, self-hosted) as this influences framework choice.
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## 3. Feature Decomposition Patterns
|
|
102
|
+
|
|
103
|
+
Use these patterns as starting points when breaking an app into features. Adapt them to the specific project.
|
|
104
|
+
|
|
105
|
+
### Pattern A: CRUD-Based App
|
|
106
|
+
|
|
107
|
+
Examples: CMS, project management tools, inventory systems.
|
|
108
|
+
|
|
109
|
+
```
|
|
110
|
+
F-001: Infrastructure Setup (no deps)
|
|
111
|
+
F-002: User Authentication (deps: F-001)
|
|
112
|
+
F-003: Core Entity CRUD (deps: F-002)
|
|
113
|
+
F-004: Entity Relationships (deps: F-003)
|
|
114
|
+
F-005: Search & Filtering (deps: F-003)
|
|
115
|
+
F-006: Notifications (deps: F-003)
|
|
116
|
+
F-007: Admin Dashboard (deps: F-004, F-005)
|
|
117
|
+
F-008: Analytics & Reporting (deps: F-007)
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
### Pattern B: SaaS Platform
|
|
121
|
+
|
|
122
|
+
Examples: subscription services, multi-tenant tools, B2B products.
|
|
123
|
+
|
|
124
|
+
```
|
|
125
|
+
F-001: Infrastructure + Multi-tenant Setup (no deps)
|
|
126
|
+
F-002: User Auth + Organization Management (deps: F-001)
|
|
127
|
+
F-003: Core Product Feature (deps: F-002)
|
|
128
|
+
F-004: Subscription & Billing (deps: F-002)
|
|
129
|
+
F-005: Usage Tracking & Limits (deps: F-003, F-004)
|
|
130
|
+
F-006: Admin Portal (deps: F-005)
|
|
131
|
+
F-007: API & Integrations (deps: F-003)
|
|
132
|
+
F-008: Analytics Dashboard (deps: F-006, F-007)
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
### Pattern C: Social/Community App
|
|
136
|
+
|
|
137
|
+
Examples: forums, social networks, community platforms.
|
|
138
|
+
|
|
139
|
+
```
|
|
140
|
+
F-001: Infrastructure Setup (no deps)
|
|
141
|
+
F-002: User Auth + Profiles (deps: F-001)
|
|
142
|
+
F-003: Content Creation (posts/media) (deps: F-002)
|
|
143
|
+
F-004: Social Graph (follow/friend) (deps: F-002)
|
|
144
|
+
F-005: Feed Algorithm (deps: F-003, F-004)
|
|
145
|
+
F-006: Interactions (likes, comments) (deps: F-003)
|
|
146
|
+
F-007: Real-time Messaging (deps: F-004)
|
|
147
|
+
F-008: Notifications (deps: F-005, F-006, F-007)
|
|
148
|
+
F-009: Discovery & Search (deps: F-005)
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
### Pattern D: E-commerce App
|
|
152
|
+
|
|
153
|
+
Examples: online stores, marketplaces, booking platforms.
|
|
154
|
+
|
|
155
|
+
```
|
|
156
|
+
F-001: Infrastructure Setup (no deps)
|
|
157
|
+
F-002: User Auth (deps: F-001)
|
|
158
|
+
F-003: Product Catalog (deps: F-001)
|
|
159
|
+
F-004: Shopping Cart (deps: F-002, F-003)
|
|
160
|
+
F-005: Checkout & Payment (deps: F-004)
|
|
161
|
+
F-006: Order Management (deps: F-005)
|
|
162
|
+
F-007: Inventory Management (deps: F-003)
|
|
163
|
+
F-008: Reviews & Ratings (deps: F-002, F-003)
|
|
164
|
+
F-009: Search & Recommendations (deps: F-003, F-008)
|
|
165
|
+
F-010: Admin Dashboard (deps: F-006, F-007)
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
### Decomposition Guidelines
|
|
169
|
+
|
|
170
|
+
- Every app starts with an infrastructure/setup feature (F-001) that has zero dependencies.
|
|
171
|
+
- Authentication almost always comes second unless the app is fully public.
|
|
172
|
+
- Group related functionality into single features rather than splitting too finely. A feature should represent a coherent unit of user-facing value.
|
|
173
|
+
- If a pattern does not match the app being planned, combine elements from multiple patterns or define a custom decomposition from scratch.
|
|
174
|
+
|
|
175
|
+
---
|
|
176
|
+
|
|
177
|
+
## 4. Acceptance Criteria Writing Guide
|
|
178
|
+
|
|
179
|
+
Acceptance criteria define what "done" means for a feature. They should be specific, testable, and unambiguous.
|
|
180
|
+
|
|
181
|
+
### Format: Given/When/Then
|
|
182
|
+
|
|
183
|
+
```
|
|
184
|
+
Given [precondition/context]
|
|
185
|
+
When [action performed]
|
|
186
|
+
Then [expected outcome]
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
### Examples by Feature Type
|
|
190
|
+
|
|
191
|
+
**Authentication:**
|
|
192
|
+
|
|
193
|
+
- Given a new user, When they submit a valid registration form, Then an account is created and a confirmation email is sent.
|
|
194
|
+
- Given a registered user, When they enter correct credentials, Then they are logged in and redirected to the dashboard.
|
|
195
|
+
- Given a logged-in user, When their session expires, Then they are redirected to the login page with a message.
|
|
196
|
+
|
|
197
|
+
**CRUD Operations:**
|
|
198
|
+
|
|
199
|
+
- Given an authenticated user, When they create a new [entity] with valid data, Then the entity is saved and appears in the list.
|
|
200
|
+
- Given an entity list, When the user applies filters, Then only matching entities are displayed.
|
|
201
|
+
- Given an entity owner, When they delete the entity, Then it is removed after confirmation.
|
|
202
|
+
|
|
203
|
+
**Real-time:**
|
|
204
|
+
|
|
205
|
+
- Given two users viewing the same board, When one makes a change, Then the other sees it within 2 seconds without a page refresh.
|
|
206
|
+
- Given a user is offline, When they reconnect, Then missed updates are synced.
|
|
207
|
+
|
|
208
|
+
### Writing Principles
|
|
209
|
+
|
|
210
|
+
1. **One behavior per criterion.** Each criterion tests exactly one thing.
|
|
211
|
+
2. **No implementation details.** Criteria describe what, not how. Say "user is redirected" not "React Router navigates to /dashboard."
|
|
212
|
+
3. **Include edge cases.** Cover invalid input, unauthorized access, empty states, and error conditions.
|
|
213
|
+
4. **Be measurable.** Where performance matters, include specific thresholds (e.g., "within 2 seconds").
|
|
214
|
+
5. **Keep the count manageable.** A feature with more than 8 acceptance criteria may need to be split into sub-features.
|
|
215
|
+
|
|
216
|
+
---
|
|
217
|
+
|
|
218
|
+
## 5. Complexity Estimation Guide
|
|
219
|
+
|
|
220
|
+
| Complexity | Characteristics | Typical Scope |
|
|
221
|
+
|------------|----------------|---------------|
|
|
222
|
+
| low | Single module, straightforward CRUD, minimal UI | 1-2 API endpoints, 1-2 pages |
|
|
223
|
+
| medium | Multiple modules, business logic, moderate UI | 3-5 API endpoints, 2-4 pages |
|
|
224
|
+
| high | Cross-cutting concerns, complex state, advanced UI | 5+ API endpoints, complex interactions |
|
|
225
|
+
|
|
226
|
+
### Complexity Red Flags
|
|
227
|
+
|
|
228
|
+
Consider splitting a feature if it exhibits any of the following:
|
|
229
|
+
|
|
230
|
+
- More than 8 acceptance criteria.
|
|
231
|
+
- Touches more than 3 distinct modules or layers.
|
|
232
|
+
- Requires both frontend and backend architectural decisions.
|
|
233
|
+
- Involves third-party service integration AND non-trivial business logic.
|
|
234
|
+
- Contains both real-time and batch processing requirements.
|
|
235
|
+
- Needs new infrastructure (e.g., message queue, search index) AND application logic.
|
|
236
|
+
|
|
237
|
+
### Estimation Consistency Rules
|
|
238
|
+
|
|
239
|
+
- If a feature is marked as "low" complexity, it should not have more than 5 acceptance criteria.
|
|
240
|
+
- If a feature is marked as "high" complexity, it should have a clear justification (e.g., "involves payment processing with webhook handling and idempotency").
|
|
241
|
+
- When in doubt, estimate higher -- it is better to over-allocate than to under-allocate.
|
|
242
|
+
|
|
243
|
+
---
|
|
244
|
+
|
|
245
|
+
## 6. Dependency Graph Rules
|
|
246
|
+
|
|
247
|
+
These rules ensure the feature dependency graph is valid and buildable.
|
|
248
|
+
|
|
249
|
+
1. **F-001 has zero dependencies.** The first feature is always infrastructure or project setup. It must be buildable from scratch with no preconditions.
|
|
250
|
+
|
|
251
|
+
2. **No circular dependencies.** Dependencies MUST form a directed acyclic graph (DAG). If A depends on B and B depends on A, restructure the features.
|
|
252
|
+
|
|
253
|
+
3. **Minimal dependency sets.** Each feature should depend only on the features it directly needs. Do not add transitive dependencies explicitly. If F-003 depends on F-002 and F-002 depends on F-001, then F-003 does NOT need to list F-001 as a dependency.
|
|
254
|
+
|
|
255
|
+
4. **Auth comes early.** Most features depend on authentication. Place auth-related features (registration, login, session management) as early in the graph as possible, typically F-002.
|
|
256
|
+
|
|
257
|
+
5. **Data model before display.** Features that create or define data entities must precede features that display, search, or manipulate that data.
|
|
258
|
+
|
|
259
|
+
6. **Infrastructure before everything.** Database setup, project scaffolding, CI/CD configuration, and environment setup belong in F-001.
|
|
260
|
+
|
|
261
|
+
7. **Independent features can be parallel.** If two features share no dependencies on each other, they can be built in parallel. The dependency graph should reflect this by not artificially linking them.
|
|
262
|
+
|
|
263
|
+
### Validation Checklist
|
|
264
|
+
|
|
265
|
+
- [ ] F-001 has an empty dependency list.
|
|
266
|
+
- [ ] No feature depends on itself.
|
|
267
|
+
- [ ] No circular dependency chains exist.
|
|
268
|
+
- [ ] Every feature ID referenced in a dependency list is defined in the plan.
|
|
269
|
+
- [ ] The graph can be topologically sorted (i.e., there exists a valid build order).
|
|
270
|
+
|
|
271
|
+
---
|
|
272
|
+
|
|
273
|
+
## 7. Session Granularity Decision Rules
|
|
274
|
+
|
|
275
|
+
Session granularity determines whether a feature is implemented in a single coding session or split across multiple sub-feature sessions.
|
|
276
|
+
|
|
277
|
+
### Decision Table
|
|
278
|
+
|
|
279
|
+
| Condition | Granularity | Notes |
|
|
280
|
+
|-----------|-------------|-------|
|
|
281
|
+
| Acceptance criteria <= 5 | `feature` | Single session can handle it |
|
|
282
|
+
| Acceptance criteria 6-8 | `feature` or `auto` | Use judgment based on complexity |
|
|
283
|
+
| Acceptance criteria > 8 | `auto` | Define sub_features |
|
|
284
|
+
| Touches <= 2 modules | `feature` | Focused enough for one session |
|
|
285
|
+
| Touches 3+ modules | `auto` | Split by module boundary |
|
|
286
|
+
| Complexity "low" | `feature` | Always single session |
|
|
287
|
+
| Complexity "high" + many criteria | `auto` | Always consider splitting |
|
|
288
|
+
|
|
289
|
+
### Sub-Feature Naming Convention
|
|
290
|
+
|
|
291
|
+
When using `auto` granularity with sub-features, name each sub-feature with the parent feature ID as a prefix:
|
|
292
|
+
|
|
293
|
+
```
|
|
294
|
+
F-003-A: Backend API for [entity] CRUD
|
|
295
|
+
F-003-B: Frontend UI for [entity] management
|
|
296
|
+
F-003-C: Integration tests for [entity] workflows
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
### Sub-Feature Design Principles
|
|
300
|
+
|
|
301
|
+
1. **Independently testable.** Each sub-feature should produce a verifiable result on its own. A backend API sub-feature can be tested via API calls without the frontend.
|
|
302
|
+
|
|
303
|
+
2. **Single concern.** Each sub-feature focuses on one layer or aspect: backend API, frontend UI, data migration, integration, etc.
|
|
304
|
+
|
|
305
|
+
3. **Clear boundaries.** The interface between sub-features should be well-defined (e.g., API contracts between backend and frontend sub-features).
|
|
306
|
+
|
|
307
|
+
4. **Ordered when necessary.** Sub-features within a feature may have internal ordering (e.g., backend before frontend), but this should be captured in the sub-feature dependencies.
|
|
308
|
+
|
|
309
|
+
### When NOT to Split
|
|
310
|
+
|
|
311
|
+
- If the feature is inherently atomic (e.g., "add a favicon" or "configure environment variables").
|
|
312
|
+
- If splitting would create sub-features that are too small to justify a separate session (fewer than 2 acceptance criteria each).
|
|
313
|
+
- If the feature involves tightly coupled frontend and backend logic where splitting would require extensive mocking.
|