project-iris 0.0.16 → 0.0.18
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 +86 -15
- package/flows/aidlc/README.md +358 -214
- package/flows/aidlc/agents/README.md +154 -0
- package/flows/aidlc/agents/inception-agent.md +23 -12
- package/flows/aidlc/agents/master-agent.md +204 -24
- package/flows/aidlc/memory-bank.yaml +61 -10
- package/flows/aidlc/quick-start.md +7 -7
- package/flows/aidlc/skills/README.md +106 -0
- package/flows/aidlc/skills/construction/bolt-start.md +5 -1
- package/flows/aidlc/skills/construction/navigator.md +1 -1
- package/flows/aidlc/skills/inception/bolt-plan.md +3 -2
- package/flows/aidlc/skills/inception/context.md +2 -1
- package/flows/aidlc/skills/inception/intent-create.md +91 -2
- package/flows/aidlc/skills/inception/navigator.md +13 -8
- package/flows/aidlc/skills/inception/requirements.md +541 -95
- package/flows/aidlc/skills/inception/review.md +75 -11
- package/flows/aidlc/skills/inception/risks.md +541 -0
- package/flows/aidlc/skills/inception/story-create.md +2 -1
- package/flows/aidlc/skills/inception/units.md +2 -1
- package/flows/aidlc/skills/master/answer-question.md +1 -1
- package/flows/aidlc/skills/master/code-elevate.md +434 -0
- package/flows/aidlc/skills/master/explain-flow.md +6 -6
- package/flows/aidlc/skills/master/project-init.md +110 -12
- package/flows/aidlc/skills/operations/build.md +32 -4
- package/flows/aidlc/skills/operations/monitor.md +75 -14
- package/flows/aidlc/skills/operations/rollback.md +239 -0
- package/flows/aidlc/templates/README.md +128 -0
- package/flows/aidlc/templates/construction/bolt-template.md +5 -5
- package/flows/aidlc/templates/construction/bolt-types/ddd-construction-bolt/{ddd-02-technical-design-template.md → ddd-02-logical-design-template.md} +1 -1
- package/flows/aidlc/templates/construction/bolt-types/ddd-construction-bolt.md +123 -41
- package/flows/aidlc/templates/construction/bolt-types/simple-construction-bolt.md +6 -6
- package/flows/aidlc/templates/construction/construction-guide.md +244 -0
- package/flows/aidlc/templates/construction/construction-log-template.md +7 -6
- package/flows/aidlc/templates/construction/elevation-dynamic-model-template.md +265 -0
- package/flows/aidlc/templates/construction/elevation-static-model-template.md +204 -0
- package/flows/aidlc/templates/inception/prfaq-template.md +147 -0
- package/flows/aidlc/templates/inception/requirements-template.md +70 -5
- package/flows/aidlc/templates/inception/risks-template.md +214 -0
- package/flows/aidlc/templates/operations/deployment-unit-template.md +228 -0
- package/package.json +1 -1
- package/flows/aidlc/templates/inception/project/README.md +0 -55
- /package/flows/aidlc/templates/construction/bolt-types/ddd-construction-bolt/{ddd-01-domain-model-template.md → ddd-01-domain-design-template.md} +0 -0
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
# Dynamic Model Template
|
|
2
|
+
|
|
3
|
+
Use this template when documenting the dynamic model during code elevation for brownfield projects.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Frontmatter
|
|
8
|
+
|
|
9
|
+
```yaml
|
|
10
|
+
---
|
|
11
|
+
project: {project-name}
|
|
12
|
+
type: dynamic-model
|
|
13
|
+
scenario: brownfield
|
|
14
|
+
created: {YYYY-MM-DDTHH:MM:SSZ}
|
|
15
|
+
updated: {YYYY-MM-DDTHH:MM:SSZ}
|
|
16
|
+
use_cases_count: {N}
|
|
17
|
+
integration_points_count: {N}
|
|
18
|
+
---
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Content
|
|
24
|
+
|
|
25
|
+
```markdown
|
|
26
|
+
# Dynamic Model: {Project Name}
|
|
27
|
+
|
|
28
|
+
## Overview
|
|
29
|
+
|
|
30
|
+
- **Use Cases Documented**: {N}
|
|
31
|
+
- **Integration Points Identified**: {N}
|
|
32
|
+
- **Critical Paths Traced**: {N}
|
|
33
|
+
- **Related Static Model**: `memory-bank/elevation/static-model.md`
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Significant Use Cases
|
|
38
|
+
|
|
39
|
+
### Use Case 1: {Name}
|
|
40
|
+
|
|
41
|
+
**Description**: {Brief description of what this use case accomplishes}
|
|
42
|
+
|
|
43
|
+
**Trigger**: {What initiates this flow - user action, API call, scheduled job, etc.}
|
|
44
|
+
|
|
45
|
+
**Actors**:
|
|
46
|
+
- Primary: {e.g., User, Admin, System}
|
|
47
|
+
- Secondary: {e.g., External API, Database}
|
|
48
|
+
|
|
49
|
+
**Preconditions**:
|
|
50
|
+
- {Condition 1: e.g., User must be authenticated}
|
|
51
|
+
- {Condition 2: e.g., Resource must exist}
|
|
52
|
+
|
|
53
|
+
**Interaction Sequence**:
|
|
54
|
+
|
|
55
|
+
```text
|
|
56
|
+
┌──────┐ 1. Request ┌───────────┐ 2. Validate ┌───────────┐
|
|
57
|
+
│ User │────────────────────►│ Controller│────────────────────►│ Service │
|
|
58
|
+
└──────┘ └───────────┘ └───────────┘
|
|
59
|
+
▲ │
|
|
60
|
+
│ ┌──────────────────────────────────┘
|
|
61
|
+
│ │ 3. Query
|
|
62
|
+
│ ▼
|
|
63
|
+
│ ┌───────────┐ 4. SQL ┌──────────┐
|
|
64
|
+
│ │Repository │────────────────────►│ Database │
|
|
65
|
+
│ └───────────┘ └──────────┘
|
|
66
|
+
│ │
|
|
67
|
+
│ │ 5. Data
|
|
68
|
+
│ ▼
|
|
69
|
+
│ 6. Response ┌───────────┐
|
|
70
|
+
└────────────────────────│ Service │
|
|
71
|
+
└───────────┘
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
**Step-by-Step**:
|
|
75
|
+
|
|
76
|
+
| Step | Component | Action | Input | Output |
|
|
77
|
+
|------|-----------|--------|-------|--------|
|
|
78
|
+
| 1 | Controller | Receives HTTP request | Request body | Validated DTO |
|
|
79
|
+
| 2 | Service | Validates business rules | DTO | Validated entity |
|
|
80
|
+
| 3 | Repository | Queries database | Entity ID | Entity data |
|
|
81
|
+
| 4 | Service | Applies business logic | Entity | Result |
|
|
82
|
+
| 5 | Controller | Returns response | Result | HTTP response |
|
|
83
|
+
|
|
84
|
+
**Data Flow**:
|
|
85
|
+
- **Input**: `{data structure, e.g., { userId: string, action: string }}`
|
|
86
|
+
- **Output**: `{data structure, e.g., { success: boolean, data: object }}`
|
|
87
|
+
- **Transformations**: {How data changes through the flow}
|
|
88
|
+
|
|
89
|
+
**Side Effects**:
|
|
90
|
+
- {Side effect 1: e.g., Database record updated}
|
|
91
|
+
- {Side effect 2: e.g., Event emitted to queue}
|
|
92
|
+
- {Side effect 3: e.g., Audit log created}
|
|
93
|
+
|
|
94
|
+
**Error Scenarios**:
|
|
95
|
+
| Error | Handled By | Response |
|
|
96
|
+
|-------|------------|----------|
|
|
97
|
+
| Validation failure | Controller | 400 Bad Request |
|
|
98
|
+
| Not found | Service | 404 Not Found |
|
|
99
|
+
| Unauthorized | Middleware | 401 Unauthorized |
|
|
100
|
+
| Server error | Error handler | 500 Internal Error |
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
### Use Case 2: {Name}
|
|
105
|
+
|
|
106
|
+
**Description**: {Brief description}
|
|
107
|
+
|
|
108
|
+
**Trigger**: {What initiates this flow}
|
|
109
|
+
|
|
110
|
+
**Actors**:
|
|
111
|
+
- Primary: {actor}
|
|
112
|
+
- Secondary: {actor}
|
|
113
|
+
|
|
114
|
+
**Interaction Sequence**:
|
|
115
|
+
|
|
116
|
+
```text
|
|
117
|
+
{Diagram}
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
**Step-by-Step**:
|
|
121
|
+
|
|
122
|
+
| Step | Component | Action | Input | Output |
|
|
123
|
+
|------|-----------|--------|-------|--------|
|
|
124
|
+
| 1 | | | | |
|
|
125
|
+
|
|
126
|
+
**Data Flow**:
|
|
127
|
+
- **Input**: `{structure}`
|
|
128
|
+
- **Output**: `{structure}`
|
|
129
|
+
|
|
130
|
+
**Side Effects**:
|
|
131
|
+
- {effects}
|
|
132
|
+
|
|
133
|
+
---
|
|
134
|
+
|
|
135
|
+
## Integration Points
|
|
136
|
+
|
|
137
|
+
### External APIs
|
|
138
|
+
|
|
139
|
+
| Integration | Protocol | Direction | Endpoint | Purpose |
|
|
140
|
+
|-------------|----------|-----------|----------|---------|
|
|
141
|
+
| {API Name} | REST | Outbound | `{URL}` | {What it's used for} |
|
|
142
|
+
| {API Name} | GraphQL | Outbound | `{URL}` | {What it's used for} |
|
|
143
|
+
|
|
144
|
+
### Message Queues
|
|
145
|
+
|
|
146
|
+
| Queue | Protocol | Direction | Events | Purpose |
|
|
147
|
+
|-------|----------|-----------|--------|---------|
|
|
148
|
+
| {Queue} | AMQP | Publish | `{event types}` | {Purpose} |
|
|
149
|
+
| {Queue} | AMQP | Subscribe | `{event types}` | {Purpose} |
|
|
150
|
+
|
|
151
|
+
### Databases
|
|
152
|
+
|
|
153
|
+
| Database | Type | Operations | Tables/Collections |
|
|
154
|
+
|----------|------|------------|-------------------|
|
|
155
|
+
| {DB Name} | PostgreSQL | CRUD | `{table list}` |
|
|
156
|
+
| {Cache} | Redis | Read/Write | `{key patterns}` |
|
|
157
|
+
|
|
158
|
+
### File Storage
|
|
159
|
+
|
|
160
|
+
| Storage | Type | Operations | Purpose |
|
|
161
|
+
|---------|------|------------|---------|
|
|
162
|
+
| {Storage} | S3 | Upload/Download | {Purpose} |
|
|
163
|
+
|
|
164
|
+
---
|
|
165
|
+
|
|
166
|
+
## Critical Paths
|
|
167
|
+
|
|
168
|
+
### Happy Path: {Primary Flow Name}
|
|
169
|
+
|
|
170
|
+
The most common successful path through the system:
|
|
171
|
+
|
|
172
|
+
```text
|
|
173
|
+
Entry → Validation → Processing → Persistence → Response
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
**Performance Characteristics**:
|
|
177
|
+
- Typical latency: {e.g., < 100ms}
|
|
178
|
+
- Bottlenecks: {e.g., Database query at step 3}
|
|
179
|
+
|
|
180
|
+
### Error Handling Path
|
|
181
|
+
|
|
182
|
+
How errors propagate through the system:
|
|
183
|
+
|
|
184
|
+
```text
|
|
185
|
+
Error occurs → Caught by {component} → Logged → Transformed → Returned to client
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
**Error Propagation**:
|
|
189
|
+
- Domain errors: Wrapped and returned as business errors
|
|
190
|
+
- Infrastructure errors: Logged, generic error returned
|
|
191
|
+
- Validation errors: Returned immediately with details
|
|
192
|
+
|
|
193
|
+
### Authentication Flow
|
|
194
|
+
|
|
195
|
+
How authentication is handled:
|
|
196
|
+
|
|
197
|
+
```text
|
|
198
|
+
Request → Auth Middleware → Token Validation → User Context → Proceed/Reject
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
---
|
|
202
|
+
|
|
203
|
+
## Event Flows
|
|
204
|
+
|
|
205
|
+
### Events Emitted
|
|
206
|
+
|
|
207
|
+
| Event | Trigger | Payload | Consumers |
|
|
208
|
+
|-------|---------|---------|-----------|
|
|
209
|
+
| `{event.name}` | {When emitted} | `{payload structure}` | {Who listens} |
|
|
210
|
+
|
|
211
|
+
### Events Consumed
|
|
212
|
+
|
|
213
|
+
| Event | Source | Handler | Side Effects |
|
|
214
|
+
|-------|--------|---------|--------------|
|
|
215
|
+
| `{event.name}` | {Source} | `{handler}` | {What happens} |
|
|
216
|
+
|
|
217
|
+
---
|
|
218
|
+
|
|
219
|
+
## Async Operations
|
|
220
|
+
|
|
221
|
+
### Background Jobs
|
|
222
|
+
|
|
223
|
+
| Job | Trigger | Frequency | Purpose |
|
|
224
|
+
|-----|---------|-----------|---------|
|
|
225
|
+
| {Job name} | {Cron/Event/Manual} | {Schedule} | {What it does} |
|
|
226
|
+
|
|
227
|
+
### Long-Running Processes
|
|
228
|
+
|
|
229
|
+
| Process | Duration | Checkpoints | Recovery |
|
|
230
|
+
|---------|----------|-------------|----------|
|
|
231
|
+
| {Process} | {Typical time} | {Checkpoint mechanism} | {How to recover} |
|
|
232
|
+
|
|
233
|
+
---
|
|
234
|
+
|
|
235
|
+
## Observations
|
|
236
|
+
|
|
237
|
+
### Well-Designed Flows
|
|
238
|
+
- {Observation 1: e.g., "Clean error handling in payment flow"}
|
|
239
|
+
- {Observation 2: e.g., "Good separation of concerns in auth"}
|
|
240
|
+
|
|
241
|
+
### Potential Issues
|
|
242
|
+
- {Issue 1: e.g., "No retry logic for external API calls"}
|
|
243
|
+
- {Issue 2: e.g., "Missing circuit breaker for payment gateway"}
|
|
244
|
+
|
|
245
|
+
### Recommendations
|
|
246
|
+
- {Recommendation 1: e.g., "Add retry with exponential backoff for API X"}
|
|
247
|
+
- {Recommendation 2: e.g., "Consider caching for frequently accessed data"}
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
---
|
|
251
|
+
|
|
252
|
+
## Quality Checklist
|
|
253
|
+
|
|
254
|
+
Before marking dynamic model complete, verify:
|
|
255
|
+
|
|
256
|
+
- [ ] All significant use cases documented
|
|
257
|
+
- [ ] Each use case has interaction diagram
|
|
258
|
+
- [ ] Step-by-step breakdown provided
|
|
259
|
+
- [ ] Data flow documented (input/output/transformations)
|
|
260
|
+
- [ ] Side effects identified
|
|
261
|
+
- [ ] Error scenarios covered
|
|
262
|
+
- [ ] Integration points mapped
|
|
263
|
+
- [ ] Critical paths traced
|
|
264
|
+
- [ ] Async operations documented
|
|
265
|
+
- [ ] Observations and recommendations noted
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
# Static Model Template
|
|
2
|
+
|
|
3
|
+
Use this template when documenting the static model during code elevation for brownfield projects.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Frontmatter
|
|
8
|
+
|
|
9
|
+
```yaml
|
|
10
|
+
---
|
|
11
|
+
project: {project-name}
|
|
12
|
+
type: static-model
|
|
13
|
+
scenario: brownfield
|
|
14
|
+
created: {YYYY-MM-DDTHH:MM:SSZ}
|
|
15
|
+
updated: {YYYY-MM-DDTHH:MM:SSZ}
|
|
16
|
+
analyzed_paths:
|
|
17
|
+
- src/
|
|
18
|
+
- lib/
|
|
19
|
+
components_count: {N}
|
|
20
|
+
relationships_count: {N}
|
|
21
|
+
---
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## Content
|
|
27
|
+
|
|
28
|
+
```markdown
|
|
29
|
+
# Static Model: {Project Name}
|
|
30
|
+
|
|
31
|
+
## Overview
|
|
32
|
+
|
|
33
|
+
- **Project Type**: {e.g., backend-api, full-stack-web}
|
|
34
|
+
- **Primary Language**: {e.g., TypeScript, Python, Go}
|
|
35
|
+
- **Framework**: {e.g., Next.js, FastAPI, Express}
|
|
36
|
+
- **Components Identified**: {N}
|
|
37
|
+
- **Relationships Mapped**: {N}
|
|
38
|
+
- **Analyzed Paths**: `src/`, `lib/`
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## Architectural Layers
|
|
43
|
+
|
|
44
|
+
### Domain Layer
|
|
45
|
+
Components that contain core business logic.
|
|
46
|
+
|
|
47
|
+
| Component | Location | Responsibility |
|
|
48
|
+
|-----------|----------|----------------|
|
|
49
|
+
| {Component} | `{path}` | {responsibility} |
|
|
50
|
+
|
|
51
|
+
### Application Layer
|
|
52
|
+
Components that orchestrate domain logic.
|
|
53
|
+
|
|
54
|
+
| Component | Location | Responsibility |
|
|
55
|
+
|-----------|----------|----------------|
|
|
56
|
+
| {Component} | `{path}` | {responsibility} |
|
|
57
|
+
|
|
58
|
+
### Infrastructure Layer
|
|
59
|
+
Components that handle external concerns (DB, APIs, etc.).
|
|
60
|
+
|
|
61
|
+
| Component | Location | Responsibility |
|
|
62
|
+
|-----------|----------|----------------|
|
|
63
|
+
| {Component} | `{path}` | {responsibility} |
|
|
64
|
+
|
|
65
|
+
### Presentation Layer
|
|
66
|
+
Components that handle user interface (if applicable).
|
|
67
|
+
|
|
68
|
+
| Component | Location | Responsibility |
|
|
69
|
+
|-----------|----------|----------------|
|
|
70
|
+
| {Component} | `{path}` | {responsibility} |
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## Components Detail
|
|
75
|
+
|
|
76
|
+
### {Component 1 Name}
|
|
77
|
+
|
|
78
|
+
- **Type**: {Class/Module/Service/Repository/Controller/etc.}
|
|
79
|
+
- **Location**: `{file path}`
|
|
80
|
+
- **Layer**: {Domain/Application/Infrastructure/Presentation}
|
|
81
|
+
- **Responsibility**: {Single sentence describing what this component does}
|
|
82
|
+
|
|
83
|
+
**Key Methods/Functions**:
|
|
84
|
+
- `{method1}({params})`: {What it does, what it returns}
|
|
85
|
+
- `{method2}({params})`: {What it does, what it returns}
|
|
86
|
+
|
|
87
|
+
**Dependencies**:
|
|
88
|
+
- Depends on: {List of components this depends on}
|
|
89
|
+
- Used by: {List of components that use this}
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
### {Component 2 Name}
|
|
94
|
+
|
|
95
|
+
- **Type**: {Class/Module/Service/Repository/Controller/etc.}
|
|
96
|
+
- **Location**: `{file path}`
|
|
97
|
+
- **Layer**: {Domain/Application/Infrastructure/Presentation}
|
|
98
|
+
- **Responsibility**: {Single sentence describing what this component does}
|
|
99
|
+
|
|
100
|
+
**Key Methods/Functions**:
|
|
101
|
+
- `{method1}({params})`: {What it does, what it returns}
|
|
102
|
+
|
|
103
|
+
**Dependencies**:
|
|
104
|
+
- Depends on: {List}
|
|
105
|
+
- Used by: {List}
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## Relationships Diagram
|
|
110
|
+
|
|
111
|
+
```text
|
|
112
|
+
┌─────────────────┐ uses ┌─────────────────┐
|
|
113
|
+
│ Controller │──────────────►│ Service │
|
|
114
|
+
└─────────────────┘ └─────────────────┘
|
|
115
|
+
│
|
|
116
|
+
│ uses
|
|
117
|
+
▼
|
|
118
|
+
┌─────────────────┐
|
|
119
|
+
│ Repository │
|
|
120
|
+
└─────────────────┘
|
|
121
|
+
│
|
|
122
|
+
│ queries
|
|
123
|
+
▼
|
|
124
|
+
┌─────────────────┐
|
|
125
|
+
│ Database │
|
|
126
|
+
└─────────────────┘
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
---
|
|
130
|
+
|
|
131
|
+
## Dependency Graph
|
|
132
|
+
|
|
133
|
+
| Component | Depends On | Used By |
|
|
134
|
+
|-----------|------------|---------|
|
|
135
|
+
| {Component A} | {Component B, Component C} | {Component X} |
|
|
136
|
+
| {Component B} | {External: Database} | {Component A} |
|
|
137
|
+
|
|
138
|
+
---
|
|
139
|
+
|
|
140
|
+
## External Dependencies
|
|
141
|
+
|
|
142
|
+
### Libraries/Packages
|
|
143
|
+
| Package | Purpose | Version |
|
|
144
|
+
|---------|---------|---------|
|
|
145
|
+
| {package} | {what it's used for} | {version} |
|
|
146
|
+
|
|
147
|
+
### External Services
|
|
148
|
+
| Service | Type | Purpose |
|
|
149
|
+
|---------|------|---------|
|
|
150
|
+
| {Database} | PostgreSQL | Primary data store |
|
|
151
|
+
| {Cache} | Redis | Session/cache storage |
|
|
152
|
+
| {API} | REST | Third-party integration |
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
## Technology Stack (Detected)
|
|
157
|
+
|
|
158
|
+
- **Runtime**: {Node.js, Python, Go, etc.}
|
|
159
|
+
- **Framework**: {Express, FastAPI, Gin, etc.}
|
|
160
|
+
- **Database Client**: {Prisma, SQLAlchemy, GORM, etc.}
|
|
161
|
+
- **Authentication**: {JWT, OAuth, Session, etc.}
|
|
162
|
+
- **Testing**: {Jest, Pytest, etc.}
|
|
163
|
+
|
|
164
|
+
---
|
|
165
|
+
|
|
166
|
+
## Key Observations
|
|
167
|
+
|
|
168
|
+
### Strengths
|
|
169
|
+
- {Observation 1: e.g., "Clean separation between domain and infrastructure"}
|
|
170
|
+
- {Observation 2: e.g., "Consistent naming conventions"}
|
|
171
|
+
|
|
172
|
+
### Areas of Concern
|
|
173
|
+
- {Concern 1: e.g., "High coupling in payment module"}
|
|
174
|
+
- {Concern 2: e.g., "Missing abstraction for external APIs"}
|
|
175
|
+
|
|
176
|
+
### Patterns Identified
|
|
177
|
+
- {Pattern 1: e.g., "Repository pattern for data access"}
|
|
178
|
+
- {Pattern 2: e.g., "Service layer for business logic"}
|
|
179
|
+
|
|
180
|
+
---
|
|
181
|
+
|
|
182
|
+
## Recommendations for New Development
|
|
183
|
+
|
|
184
|
+
When adding new features to this codebase:
|
|
185
|
+
|
|
186
|
+
1. **Follow existing layer structure**: Place new code in appropriate layer
|
|
187
|
+
2. **Use established patterns**: {e.g., Repository pattern for data access}
|
|
188
|
+
3. **Respect naming conventions**: {e.g., PascalCase for classes, camelCase for functions}
|
|
189
|
+
4. **Maintain dependency direction**: {e.g., Domain should not depend on Infrastructure}
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
---
|
|
193
|
+
|
|
194
|
+
## Quality Checklist
|
|
195
|
+
|
|
196
|
+
Before marking static model complete, verify:
|
|
197
|
+
|
|
198
|
+
- [ ] All significant components documented
|
|
199
|
+
- [ ] Each component has clear responsibility (single sentence)
|
|
200
|
+
- [ ] Layer assignments are accurate
|
|
201
|
+
- [ ] Relationships between components mapped
|
|
202
|
+
- [ ] External dependencies identified
|
|
203
|
+
- [ ] Technology stack detected
|
|
204
|
+
- [ ] Key observations noted for future development
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
# PRFAQ Template
|
|
2
|
+
|
|
3
|
+
Use this template when creating a PRFAQ (Press Release / FAQ) document for an intent.
|
|
4
|
+
|
|
5
|
+
The PRFAQ format, popularized by Amazon, forces clarity on business value before implementation.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Frontmatter
|
|
10
|
+
|
|
11
|
+
```yaml
|
|
12
|
+
---
|
|
13
|
+
intent: {NNN}-{intent-name}
|
|
14
|
+
phase: inception
|
|
15
|
+
status: draft|complete
|
|
16
|
+
created: {YYYY-MM-DDTHH:MM:SSZ}
|
|
17
|
+
updated: {YYYY-MM-DDTHH:MM:SSZ}
|
|
18
|
+
---
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Content
|
|
24
|
+
|
|
25
|
+
```markdown
|
|
26
|
+
# PRFAQ: {Intent Name}
|
|
27
|
+
|
|
28
|
+
## Press Release
|
|
29
|
+
|
|
30
|
+
### Headline
|
|
31
|
+
{Compelling one-line announcement of the feature}
|
|
32
|
+
|
|
33
|
+
### Subheadline
|
|
34
|
+
{Who benefits and what's the key value proposition}
|
|
35
|
+
|
|
36
|
+
### Summary Paragraph
|
|
37
|
+
{City, Date} — {Company/Product Name} today announced {feature name}, a {brief description} that enables {target users} to {key benefit}. With this release, users can now {primary capability}, resulting in {measurable outcome or business value}.
|
|
38
|
+
|
|
39
|
+
### Problem Statement
|
|
40
|
+
{Describe the customer problem this solves. Be specific about the pain points.}
|
|
41
|
+
|
|
42
|
+
"{Quote from a fictional user describing their frustration with the current state}"
|
|
43
|
+
|
|
44
|
+
### Solution
|
|
45
|
+
{Describe how the feature solves the problem. Focus on user benefits, not technical details.}
|
|
46
|
+
|
|
47
|
+
Key capabilities include:
|
|
48
|
+
- **{Capability 1}**: {Benefit to user}
|
|
49
|
+
- **{Capability 2}**: {Benefit to user}
|
|
50
|
+
- **{Capability 3}**: {Benefit to user}
|
|
51
|
+
|
|
52
|
+
### Customer Quote
|
|
53
|
+
"{Testimonial-style quote from a fictional customer describing how this feature improved their workflow or solved their problem.}"
|
|
54
|
+
|
|
55
|
+
— {Fictional Customer Name}, {Role} at {Company Type}
|
|
56
|
+
|
|
57
|
+
### Call to Action
|
|
58
|
+
{How users can get started or learn more. What should they do next?}
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## Frequently Asked Questions
|
|
63
|
+
|
|
64
|
+
### Customer FAQ
|
|
65
|
+
|
|
66
|
+
#### Q1: Who is this feature for?
|
|
67
|
+
**A**: {Describe the primary and secondary user personas}
|
|
68
|
+
|
|
69
|
+
#### Q2: What problem does this solve?
|
|
70
|
+
**A**: {Explain the core pain point in user terms}
|
|
71
|
+
|
|
72
|
+
#### Q3: How is this different from {alternative/competitor}?
|
|
73
|
+
**A**: {Differentiation and unique value proposition}
|
|
74
|
+
|
|
75
|
+
#### Q4: When will this be available?
|
|
76
|
+
**A**: {Target timeline or release phase}
|
|
77
|
+
|
|
78
|
+
#### Q5: What are the prerequisites or requirements?
|
|
79
|
+
**A**: {Dependencies, account types, technical requirements}
|
|
80
|
+
|
|
81
|
+
### Technical FAQ
|
|
82
|
+
|
|
83
|
+
#### Q6: How does this integrate with existing features?
|
|
84
|
+
**A**: {Integration points and compatibility}
|
|
85
|
+
|
|
86
|
+
#### Q7: What are the performance characteristics?
|
|
87
|
+
**A**: {Response times, throughput, scalability}
|
|
88
|
+
|
|
89
|
+
#### Q8: What are the security considerations?
|
|
90
|
+
**A**: {Authentication, authorization, data protection}
|
|
91
|
+
|
|
92
|
+
#### Q9: What are the known limitations?
|
|
93
|
+
**A**: {Scope boundaries, not-supported scenarios}
|
|
94
|
+
|
|
95
|
+
#### Q10: What's on the roadmap for future iterations?
|
|
96
|
+
**A**: {Planned enhancements, what's explicitly out of scope for now}
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
## Success Metrics
|
|
101
|
+
|
|
102
|
+
| Metric | Current State | Target | Measurement Method |
|
|
103
|
+
|--------|---------------|--------|-------------------|
|
|
104
|
+
| {Metric 1} | {Baseline} | {Goal} | {How to measure} |
|
|
105
|
+
| {Metric 2} | {Baseline} | {Goal} | {How to measure} |
|
|
106
|
+
| {Metric 3} | {Baseline} | {Goal} | {How to measure} |
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
## Appendix: Internal Notes
|
|
111
|
+
|
|
112
|
+
### Risks & Mitigations
|
|
113
|
+
{Key risks identified and how they'll be addressed}
|
|
114
|
+
|
|
115
|
+
### Dependencies
|
|
116
|
+
{External teams, services, or features this depends on}
|
|
117
|
+
|
|
118
|
+
### Open Questions
|
|
119
|
+
{Unresolved questions that need answers before or during implementation}
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
## PRFAQ Quality Checklist
|
|
125
|
+
|
|
126
|
+
Before marking PRFAQ as complete, verify:
|
|
127
|
+
|
|
128
|
+
- [ ] Headline is compelling and clear (< 10 words)
|
|
129
|
+
- [ ] Problem statement describes real user pain
|
|
130
|
+
- [ ] Solution focuses on benefits, not features
|
|
131
|
+
- [ ] Customer quote sounds authentic
|
|
132
|
+
- [ ] FAQ addresses likely questions from users AND technical team
|
|
133
|
+
- [ ] Success metrics are measurable and have baselines
|
|
134
|
+
- [ ] No technical jargon in customer-facing sections
|
|
135
|
+
- [ ] Call to action is clear and actionable
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
## Why PRFAQ?
|
|
140
|
+
|
|
141
|
+
The PRFAQ format is recommended by AI-DLC because it:
|
|
142
|
+
|
|
143
|
+
1. **Forces customer-centricity**: Writing the press release first ensures you understand the user value
|
|
144
|
+
2. **Clarifies scope**: The FAQ section surfaces edge cases and boundaries early
|
|
145
|
+
3. **Aligns stakeholders**: Everyone reads the same "future announcement"
|
|
146
|
+
4. **Measures success**: Defining metrics upfront enables validation later
|
|
147
|
+
5. **Reduces rework**: Catching misalignment in a document is cheaper than in code
|
|
@@ -88,6 +88,53 @@ Note: All naming is derived from folder names. No prefix field needed.
|
|
|
88
88
|
|
|
89
89
|
---
|
|
90
90
|
|
|
91
|
+
## Service Level Objectives (SLOs)
|
|
92
|
+
|
|
93
|
+
| SLO | Indicator | Target | Window |
|
|
94
|
+
|-----|-----------|--------|--------|
|
|
95
|
+
| Availability | % successful requests (non-5xx) | {X}% | 30-day |
|
|
96
|
+
| Latency | Response time at p95 | < {X}ms | Rolling |
|
|
97
|
+
| Error Rate | % failed requests | < {X}% | 24-hour |
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## Measurement Criteria (AI-DLC Required)
|
|
102
|
+
|
|
103
|
+
Measurement Criteria trace back to the business intent and validate whether the feature delivers expected value.
|
|
104
|
+
|
|
105
|
+
### Primary Success Metric
|
|
106
|
+
- **Metric**: {metric name}
|
|
107
|
+
- **Baseline**: {current state, if known}
|
|
108
|
+
- **Target**: {goal}
|
|
109
|
+
- **Measurement Method**: {how to measure}
|
|
110
|
+
|
|
111
|
+
### Business Outcome Metrics
|
|
112
|
+
| Metric | Current | Target | Timeline |
|
|
113
|
+
|--------|---------|--------|----------|
|
|
114
|
+
| {User adoption metric} | {baseline} | {target} | {when} |
|
|
115
|
+
| {Business impact metric} | {baseline} | {target} | {when} |
|
|
116
|
+
|
|
117
|
+
### Business Traceability
|
|
118
|
+
| Metric | Business Goal | Linked Requirements |
|
|
119
|
+
|--------|---------------|---------------------|
|
|
120
|
+
| {Metric 1} | {Which business goal it validates} | FR-1, FR-2 |
|
|
121
|
+
| {Metric 2} | {Which business goal it validates} | NFR-P1 |
|
|
122
|
+
|
|
123
|
+
### Measurement Timeline
|
|
124
|
+
- **Week 1-2**: {Early indicators to monitor}
|
|
125
|
+
- **Month 1**: {Short-term success criteria}
|
|
126
|
+
- **Quarter 1**: {Long-term validation}
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
## Trade-off Decisions
|
|
131
|
+
|
|
132
|
+
| Trade-off | Options Considered | Decision | Rationale |
|
|
133
|
+
|-----------|-------------------|----------|-----------|
|
|
134
|
+
| {e.g., Performance vs Security} | {Option A, Option B} | {Chosen option} | {Why this choice} |
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
91
138
|
## Constraints
|
|
92
139
|
|
|
93
140
|
### Technical Constraints
|
|
@@ -136,9 +183,27 @@ Note: All naming is derived from folder names. No prefix field needed.
|
|
|
136
183
|
|
|
137
184
|
Before marking requirements complete, verify:
|
|
138
185
|
|
|
139
|
-
|
|
140
|
-
- [ ]
|
|
141
|
-
- [ ]
|
|
142
|
-
- [ ]
|
|
143
|
-
- [ ]
|
|
186
|
+
### Functional Requirements
|
|
187
|
+
- [ ] All FRs have User Story format (As a..., I want..., So that...)
|
|
188
|
+
- [ ] All FRs have testable Acceptance Criteria (binary pass/fail)
|
|
189
|
+
- [ ] All FRs have Priority assigned (Must/Should/Could)
|
|
190
|
+
- [ ] Dependencies between FRs are identified
|
|
191
|
+
|
|
192
|
+
### Non-Functional Requirements
|
|
193
|
+
- [ ] All 5 NFR categories addressed (Performance, Scalability, Security, Reliability, Compliance)
|
|
194
|
+
- [ ] Each NFR has specific metrics and targets (not vague)
|
|
195
|
+
- [ ] SLOs defined with indicators, targets, and measurement windows
|
|
196
|
+
|
|
197
|
+
### Measurement Criteria (AI-DLC Required)
|
|
198
|
+
- [ ] Primary success metric defined with baseline and target
|
|
199
|
+
- [ ] Business traceability documented (metrics → goals → FRs)
|
|
200
|
+
- [ ] Measurement timeline established (leading/lagging indicators)
|
|
201
|
+
|
|
202
|
+
### Trade-offs
|
|
203
|
+
- [ ] Conflicting requirements identified
|
|
204
|
+
- [ ] Trade-off decisions documented with rationale
|
|
205
|
+
|
|
206
|
+
### General
|
|
207
|
+
- [ ] Constraints are documented (technical and business)
|
|
144
208
|
- [ ] Assumptions are stated and risks assessed
|
|
209
|
+
- [ ] Open questions have owners and due dates
|