project-iris 0.0.17 → 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/master-agent.md +204 -24
- package/flows/aidlc/memory-bank.yaml +58 -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 +1 -1
- package/flows/aidlc/skills/construction/navigator.md +1 -1
- package/flows/aidlc/skills/inception/bolt-plan.md +1 -1
- package/flows/aidlc/skills/inception/intent-create.md +91 -2
- package/flows/aidlc/skills/inception/requirements.md +105 -6
- 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 +27 -27
- 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,434 @@
|
|
|
1
|
+
# Skill: Code Elevation (Brownfield)
|
|
2
|
+
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
## Mandatory Output Rules (READ FIRST)
|
|
6
|
+
|
|
7
|
+
- 🚫 **NEVER** use ASCII tables for options - they break at different terminal widths
|
|
8
|
+
- ✅ **ALWAYS** use numbered list format: `N - **Option**: Description`
|
|
9
|
+
- ✅ **ALWAYS** use status indicators: ✅ (done) ⏳ (current) [ ] (pending) 🚫 (blocked)
|
|
10
|
+
- ✅ **ALWAYS** show elevation progress with phase indicators
|
|
11
|
+
- ✅ **ALWAYS** produce both static and dynamic models
|
|
12
|
+
- 🛑 **STOP** at each checkpoint - wait for user validation
|
|
13
|
+
|
|
14
|
+
## Success Metrics
|
|
15
|
+
|
|
16
|
+
- ✅ Static model captures all domain components, responsibilities, and relationships
|
|
17
|
+
- ✅ Dynamic model shows component interactions for significant use cases
|
|
18
|
+
- ✅ Models are semantically rich enough for AI context
|
|
19
|
+
- ✅ User validates models against their understanding of the codebase
|
|
20
|
+
- ✅ Models stored at project level for reuse across intents
|
|
21
|
+
|
|
22
|
+
## Failure Modes
|
|
23
|
+
|
|
24
|
+
- ❌ Skipping static model and jumping to dynamic model
|
|
25
|
+
- ❌ Missing key domain components in static model
|
|
26
|
+
- ❌ Dynamic model doesn't cover significant use cases
|
|
27
|
+
- ❌ Models too shallow (not semantically rich)
|
|
28
|
+
- ❌ Not validating with user before proceeding
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## AI-DLC Specification Reference
|
|
33
|
+
|
|
34
|
+
> **Brown-Field Scenarios:** In the brown-field (existing application) scenarios, the construction phase involves first elevating the codes into a semantic rich modelling representation so that the context to AI becomes concise and accurate. The suggested modelling representations are:
|
|
35
|
+
> - **Static models** (just the domain components, responsibilities and their relationships)
|
|
36
|
+
> - **Dynamic models** (how the components interact to realize the significant use cases)
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## Context: Master Agent Skill
|
|
41
|
+
|
|
42
|
+
This skill is executed by the **Master Agent** after project initialization for brownfield projects.
|
|
43
|
+
|
|
44
|
+
**When triggered:**
|
|
45
|
+
- After `project-init` completes with `scenario: brownfield`
|
|
46
|
+
- When returning user has brownfield project without elevation
|
|
47
|
+
- Master offers: "Run code elevation to analyze existing code?"
|
|
48
|
+
|
|
49
|
+
**Why project-level (not intent-level):**
|
|
50
|
+
- Codebase structure is project-wide, not per-intent
|
|
51
|
+
- Elevation done once, reused by all intents
|
|
52
|
+
- Avoids redundant analysis for each feature
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## Progress Display
|
|
57
|
+
|
|
58
|
+
Show at start of this skill:
|
|
59
|
+
|
|
60
|
+
```text
|
|
61
|
+
### Code Elevation Progress (Brownfield)
|
|
62
|
+
- [ ] Codebase Analysis ← current
|
|
63
|
+
- [ ] Static Model (components, responsibilities, relationships)
|
|
64
|
+
- [ ] Dynamic Model (interactions for significant use cases)
|
|
65
|
+
- [ ] User Validation
|
|
66
|
+
- [ ] Ready for Inception/Construction
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## Checkpoints
|
|
72
|
+
|
|
73
|
+
- **Checkpoint 1**: Static model review and validation
|
|
74
|
+
- **Checkpoint 2**: Dynamic model review and validation
|
|
75
|
+
- **Checkpoint 3**: Models approved, elevation complete
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
## Goal
|
|
80
|
+
|
|
81
|
+
Elevate existing codebase into semantic-rich modeling representations (static and dynamic models) that provide concise and accurate context for AI-driven planning and construction in brownfield scenarios.
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## Input
|
|
86
|
+
|
|
87
|
+
- **Required**: `memory-bank/project.yaml` - project configuration with `scenario: brownfield`
|
|
88
|
+
- **Required**: `project.yaml.existing_codebase.paths` - directories to analyze
|
|
89
|
+
- **Required**: `.iris/aidlc/memory-bank.yaml` - artifact schema
|
|
90
|
+
- **Optional**: Existing documentation, README files, architecture diagrams
|
|
91
|
+
|
|
92
|
+
**Note**: This is a project-level skill. Intent/unit selection happens later in Inception.
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## When to Use This Skill
|
|
97
|
+
|
|
98
|
+
**Triggered by Master Agent when:**
|
|
99
|
+
|
|
100
|
+
1. **First-time brownfield**: User has existing code, just initialized iris
|
|
101
|
+
2. **Returning brownfield**: Brownfield project without elevation completed
|
|
102
|
+
3. **User request**: User explicitly asks to analyze codebase
|
|
103
|
+
|
|
104
|
+
**Do NOT use for greenfield** - skip directly to Inception.
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## Process
|
|
109
|
+
|
|
110
|
+
### Phase 1: Load Project Context
|
|
111
|
+
|
|
112
|
+
Read project configuration:
|
|
113
|
+
|
|
114
|
+
```text
|
|
115
|
+
1. Read memory-bank/project.yaml
|
|
116
|
+
2. Get existing_codebase.paths (e.g., src/, lib/, app/)
|
|
117
|
+
3. Get project_type for context (e.g., backend-api, full-stack-web)
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
### Phase 2: Codebase Analysis
|
|
121
|
+
|
|
122
|
+
Present analysis plan to user:
|
|
123
|
+
|
|
124
|
+
```markdown
|
|
125
|
+
## Codebase Analysis
|
|
126
|
+
|
|
127
|
+
Based on your project configuration, I'll analyze:
|
|
128
|
+
|
|
129
|
+
**Directories**:
|
|
130
|
+
- `src/` - {N} files
|
|
131
|
+
- `lib/` - {N} files
|
|
132
|
+
|
|
133
|
+
**Analysis Goals**:
|
|
134
|
+
1. **Project Structure**: How is the code organized?
|
|
135
|
+
2. **Entry Points**: Where does execution begin?
|
|
136
|
+
3. **Domain Boundaries**: What are the logical groupings?
|
|
137
|
+
4. **External Dependencies**: What external systems does it interact with?
|
|
138
|
+
|
|
139
|
+
Proceed with analysis?
|
|
140
|
+
|
|
141
|
+
1 - **Analyze all** - Scan all configured paths
|
|
142
|
+
2 - **Specify scope** - Focus on specific directories
|
|
143
|
+
3 - **Skip** - Proceed without elevation
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
**Wait for user confirmation.**
|
|
147
|
+
|
|
148
|
+
### Phase 3: Generate Static Model
|
|
149
|
+
|
|
150
|
+
**Objective**: Capture domain components, their responsibilities, and relationships.
|
|
151
|
+
|
|
152
|
+
**Activities**:
|
|
153
|
+
|
|
154
|
+
1 - **Identify Components**: Find classes, modules, services
|
|
155
|
+
2 - **Document Responsibilities**: What does each component do?
|
|
156
|
+
3 - **Map Relationships**: How do components relate to each other?
|
|
157
|
+
4 - **Note Boundaries**: Where are the logical boundaries?
|
|
158
|
+
|
|
159
|
+
**Static Model Structure**:
|
|
160
|
+
|
|
161
|
+
```markdown
|
|
162
|
+
## Static Model: {project-name}
|
|
163
|
+
|
|
164
|
+
### Overview
|
|
165
|
+
- **Project Type**: {type}
|
|
166
|
+
- **Primary Language**: {language}
|
|
167
|
+
- **Components Identified**: {N}
|
|
168
|
+
|
|
169
|
+
### Components
|
|
170
|
+
|
|
171
|
+
#### Component 1: {Name}
|
|
172
|
+
- **Type**: {Class/Module/Service/Repository/etc.}
|
|
173
|
+
- **Location**: `{file path}`
|
|
174
|
+
- **Responsibility**: {Single responsibility description}
|
|
175
|
+
- **Key Methods/Functions**:
|
|
176
|
+
- `{method1}`: {what it does}
|
|
177
|
+
- `{method2}`: {what it does}
|
|
178
|
+
|
|
179
|
+
#### Component 2: {Name}
|
|
180
|
+
...
|
|
181
|
+
|
|
182
|
+
### Relationships
|
|
183
|
+
|
|
184
|
+
```text
|
|
185
|
+
┌─────────────────┐ uses ┌─────────────────┐
|
|
186
|
+
│ Component A │──────────────►│ Component B │
|
|
187
|
+
└─────────────────┘ └─────────────────┘
|
|
188
|
+
│ │
|
|
189
|
+
│ extends │ implements
|
|
190
|
+
▼ ▼
|
|
191
|
+
┌─────────────────┐ ┌─────────────────┐
|
|
192
|
+
│ Component C │ │ Interface D │
|
|
193
|
+
└─────────────────┘ └─────────────────┘
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
### Dependency Graph
|
|
197
|
+
|
|
198
|
+
- **{Component A}** depends on: {Component B}, {Component C}
|
|
199
|
+
- **{Component B}** depends on: {External Service X}
|
|
200
|
+
|
|
201
|
+
### Architectural Layers
|
|
202
|
+
|
|
203
|
+
- **Domain Layer**: {components}
|
|
204
|
+
- **Application Layer**: {components}
|
|
205
|
+
- **Infrastructure Layer**: {components}
|
|
206
|
+
- **External Integrations**: {components}
|
|
207
|
+
|
|
208
|
+
### Technology Stack (Detected)
|
|
209
|
+
|
|
210
|
+
- **Framework**: {detected framework}
|
|
211
|
+
- **Database**: {detected DB client/ORM}
|
|
212
|
+
- **External APIs**: {detected integrations}
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
**Checkpoint 1**: Present static model for validation.
|
|
216
|
+
|
|
217
|
+
```markdown
|
|
218
|
+
## Static Model Complete
|
|
219
|
+
|
|
220
|
+
I've analyzed the codebase and created a static model capturing:
|
|
221
|
+
|
|
222
|
+
- **{N} Components** identified
|
|
223
|
+
- **{N} Relationships** mapped
|
|
224
|
+
- **{N} Layers** defined
|
|
225
|
+
|
|
226
|
+
### Key Findings
|
|
227
|
+
- {Finding 1: e.g., "Clean separation between domain and infrastructure"}
|
|
228
|
+
- {Finding 2: e.g., "Heavy coupling in payment module"}
|
|
229
|
+
|
|
230
|
+
Does this static model accurately represent your codebase?
|
|
231
|
+
|
|
232
|
+
1 - **Approve** - Proceed to dynamic model
|
|
233
|
+
2 - **Revise** - Specify corrections
|
|
234
|
+
3 - **Expand** - Analyze additional files
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
**Wait for user response.**
|
|
238
|
+
|
|
239
|
+
---
|
|
240
|
+
|
|
241
|
+
### Phase 4: Generate Dynamic Model
|
|
242
|
+
|
|
243
|
+
**Objective**: Show how components interact to realize significant use cases.
|
|
244
|
+
|
|
245
|
+
**Activities**:
|
|
246
|
+
|
|
247
|
+
1 - **Identify Use Cases**: What are the key user flows?
|
|
248
|
+
2 - **Trace Interactions**: Follow the call chain through components
|
|
249
|
+
3 - **Document Data Flow**: What data moves between components?
|
|
250
|
+
4 - **Note Side Effects**: What external effects occur?
|
|
251
|
+
|
|
252
|
+
**Dynamic Model Structure**:
|
|
253
|
+
|
|
254
|
+
```markdown
|
|
255
|
+
## Dynamic Model: {project-name}
|
|
256
|
+
|
|
257
|
+
### Significant Use Cases
|
|
258
|
+
|
|
259
|
+
#### Use Case 1: {Name}
|
|
260
|
+
|
|
261
|
+
**Trigger**: {What initiates this flow}
|
|
262
|
+
**Actors**: {Who/what participates}
|
|
263
|
+
|
|
264
|
+
**Interaction Sequence**:
|
|
265
|
+
|
|
266
|
+
```text
|
|
267
|
+
┌──────┐ 1. Request ┌───────────┐ 2. Validate ┌───────────┐
|
|
268
|
+
│ User │────────────────────►│ Controller│────────────────────►│ Service │
|
|
269
|
+
└──────┘ └───────────┘ └───────────┘
|
|
270
|
+
│
|
|
271
|
+
┌─────────────────────────────────┘
|
|
272
|
+
│ 3. Query
|
|
273
|
+
▼
|
|
274
|
+
┌───────────┐ 4. SQL ┌──────────┐
|
|
275
|
+
│Repository │────────────────────►│ Database │
|
|
276
|
+
└───────────┘ └──────────┘
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
**Step-by-Step**:
|
|
280
|
+
1. {Step 1}: {Component A} receives {input} from {source}
|
|
281
|
+
2. {Step 2}: {Component A} calls {Component B}.{method}({params})
|
|
282
|
+
3. {Step 3}: {Component B} queries {Component C} for {data}
|
|
283
|
+
4. {Step 4}: {Response} returned to {originator}
|
|
284
|
+
|
|
285
|
+
**Data Flow**:
|
|
286
|
+
- Input: {data structure}
|
|
287
|
+
- Output: {data structure}
|
|
288
|
+
- Side Effects: {external changes, events emitted}
|
|
289
|
+
|
|
290
|
+
#### Use Case 2: {Name}
|
|
291
|
+
...
|
|
292
|
+
|
|
293
|
+
### Integration Points
|
|
294
|
+
|
|
295
|
+
| Integration | Protocol | Direction | Data |
|
|
296
|
+
|-------------|----------|-----------|------|
|
|
297
|
+
| {External API} | REST | Outbound | {data} |
|
|
298
|
+
| {Message Queue} | AMQP | Bidirectional | {events} |
|
|
299
|
+
| {Database} | SQL | Bidirectional | {entities} |
|
|
300
|
+
|
|
301
|
+
### Critical Paths
|
|
302
|
+
|
|
303
|
+
- **Happy Path**: {primary success scenario}
|
|
304
|
+
- **Error Handling**: {how errors propagate}
|
|
305
|
+
- **Authentication Flow**: {if applicable}
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
**Checkpoint 2**: Present dynamic model for validation.
|
|
309
|
+
|
|
310
|
+
```markdown
|
|
311
|
+
## Dynamic Model Complete
|
|
312
|
+
|
|
313
|
+
I've traced the key interactions and created a dynamic model capturing:
|
|
314
|
+
|
|
315
|
+
- **{N} Use Cases** documented
|
|
316
|
+
- **{N} Integration Points** identified
|
|
317
|
+
- **{N} Data Flows** mapped
|
|
318
|
+
|
|
319
|
+
### Coverage Assessment
|
|
320
|
+
- ✅ {Use case 1} - Critical path covered
|
|
321
|
+
- ✅ {Use case 2} - Happy path covered
|
|
322
|
+
- ⚠️ {Use case 3} - Error handling paths need review
|
|
323
|
+
|
|
324
|
+
Does this dynamic model accurately represent how your system behaves?
|
|
325
|
+
|
|
326
|
+
1 - **Approve** - Finalize elevation
|
|
327
|
+
2 - **Revise** - Specify corrections
|
|
328
|
+
3 - **Add Use Case** - Document additional flows
|
|
329
|
+
```
|
|
330
|
+
|
|
331
|
+
**Wait for user response.**
|
|
332
|
+
|
|
333
|
+
---
|
|
334
|
+
|
|
335
|
+
### Phase 5: Finalize Elevation
|
|
336
|
+
|
|
337
|
+
**Checkpoint 3**: Confirm models are ready.
|
|
338
|
+
|
|
339
|
+
Save artifacts and present summary:
|
|
340
|
+
|
|
341
|
+
```markdown
|
|
342
|
+
## Code Elevation Complete
|
|
343
|
+
|
|
344
|
+
### Models Created
|
|
345
|
+
- ✅ `memory-bank/elevation/static-model.md`
|
|
346
|
+
- ✅ `memory-bank/elevation/dynamic-model.md`
|
|
347
|
+
|
|
348
|
+
### Summary
|
|
349
|
+
- **Components**: {N} documented
|
|
350
|
+
- **Relationships**: {N} mapped
|
|
351
|
+
- **Use Cases**: {N} traced
|
|
352
|
+
- **Integration Points**: {N} identified
|
|
353
|
+
|
|
354
|
+
### What These Models Enable
|
|
355
|
+
|
|
356
|
+
Inception Agent will use these to:
|
|
357
|
+
- Understand what already exists before planning new features
|
|
358
|
+
- Identify which components a new intent might affect
|
|
359
|
+
- Suggest appropriate units based on existing structure
|
|
360
|
+
|
|
361
|
+
Construction Agent will use these to:
|
|
362
|
+
- Generate code consistent with existing patterns
|
|
363
|
+
- Extend existing components rather than duplicating
|
|
364
|
+
- Avoid breaking existing functionality
|
|
365
|
+
|
|
366
|
+
### Next Steps
|
|
367
|
+
|
|
368
|
+
1 - **Create intent** - Start planning a new feature
|
|
369
|
+
2 - **Review models** - Look at models again
|
|
370
|
+
3 - **Return to menu** - See other options
|
|
371
|
+
|
|
372
|
+
**Recommended**: Create your first intent with `/iris-inception-agent`
|
|
373
|
+
```
|
|
374
|
+
|
|
375
|
+
---
|
|
376
|
+
|
|
377
|
+
## Output Artifacts
|
|
378
|
+
|
|
379
|
+
### Location (Project-Level)
|
|
380
|
+
|
|
381
|
+
```text
|
|
382
|
+
memory-bank/elevation/
|
|
383
|
+
├── static-model.md # Components, responsibilities, relationships
|
|
384
|
+
├── dynamic-model.md # Use case interactions, data flows
|
|
385
|
+
└── elevation-log.md # When elevated, what was analyzed
|
|
386
|
+
```
|
|
387
|
+
|
|
388
|
+
### Usage by Other Agents
|
|
389
|
+
|
|
390
|
+
**Inception Agent**:
|
|
391
|
+
- Loads elevation models when creating intents
|
|
392
|
+
- Uses component list to suggest unit decomposition
|
|
393
|
+
- References existing patterns in requirements
|
|
394
|
+
|
|
395
|
+
**Construction Agent**:
|
|
396
|
+
- Loads elevation models during bolt execution
|
|
397
|
+
- References static model during Domain Design stage
|
|
398
|
+
- References dynamic model during Logical Design stage
|
|
399
|
+
|
|
400
|
+
---
|
|
401
|
+
|
|
402
|
+
## Templates
|
|
403
|
+
|
|
404
|
+
- **Static Model Template**: `.iris/aidlc/templates/construction/elevation-static-model-template.md`
|
|
405
|
+
- **Dynamic Model Template**: `.iris/aidlc/templates/construction/elevation-dynamic-model-template.md`
|
|
406
|
+
|
|
407
|
+
---
|
|
408
|
+
|
|
409
|
+
## Transition
|
|
410
|
+
|
|
411
|
+
After code elevation complete:
|
|
412
|
+
|
|
413
|
+
- → **Master Agent** returns control
|
|
414
|
+
- → Master offers to route to **Inception Agent**
|
|
415
|
+
- → Elevation context available for all future intents
|
|
416
|
+
|
|
417
|
+
---
|
|
418
|
+
|
|
419
|
+
## Test Contract
|
|
420
|
+
|
|
421
|
+
```yaml
|
|
422
|
+
input: Existing codebase paths from project.yaml
|
|
423
|
+
output: memory-bank/elevation/static-model.md, memory-bank/elevation/dynamic-model.md
|
|
424
|
+
checkpoints: 3
|
|
425
|
+
- Checkpoint 1: Static model validated
|
|
426
|
+
- Checkpoint 2: Dynamic model validated
|
|
427
|
+
- Checkpoint 3: Models approved
|
|
428
|
+
ai_dlc_alignment:
|
|
429
|
+
- Brownfield code elevation per spec Section V.2
|
|
430
|
+
- Semantic-rich modeling for AI context
|
|
431
|
+
- Static models (components, responsibilities, relationships)
|
|
432
|
+
- Dynamic models (use case interactions)
|
|
433
|
+
- Project-level analysis, reused across intents
|
|
434
|
+
```
|
|
@@ -71,16 +71,16 @@ AI-DLC is a reimagined development methodology where AI drives the workflow and
|
|
|
71
71
|
- Output: Tested, working code
|
|
72
72
|
|
|
73
73
|
**DDD Bolt** (for domain-heavy business logic):
|
|
74
|
-
- Stage 1: Domain
|
|
75
|
-
- Stage 2:
|
|
74
|
+
- Stage 1: Domain Design → AI models entities, aggregates, events
|
|
75
|
+
- Stage 2: Logical Design → AI architects layers, APIs, data
|
|
76
76
|
- Stage 3: ADR Analysis → Capture architectural decisions (optional)
|
|
77
|
-
- Stage 4:
|
|
78
|
-
- Stage 5:
|
|
77
|
+
- Stage 4: Code Generation → AI generates code from designs
|
|
78
|
+
- Stage 5: Testing → AI writes and runs tests
|
|
79
79
|
|
|
80
80
|
**Simple Bolt** (for straightforward tasks):
|
|
81
81
|
- Stage 1: Plan → Define what to build
|
|
82
|
-
- Stage 2:
|
|
83
|
-
- Stage 3:
|
|
82
|
+
- Stage 2: Code Generation → AI generates code
|
|
83
|
+
- Stage 3: Testing → AI writes and runs tests
|
|
84
84
|
|
|
85
85
|
3. **Operations** → Deploy & Monitor
|
|
86
86
|
- Package deployment units
|
|
@@ -13,7 +13,8 @@
|
|
|
13
13
|
|
|
14
14
|
## Success Metrics
|
|
15
15
|
|
|
16
|
-
- ✅ project.yaml created with project type
|
|
16
|
+
- ✅ project.yaml created with project type AND scenario (greenfield/brownfield/hybrid)
|
|
17
|
+
- ✅ Scenario detected automatically with user confirmation
|
|
17
18
|
- ✅ Standards created in correct order (dependencies respected)
|
|
18
19
|
- ✅ Each question is single-focus (not combined)
|
|
19
20
|
- ✅ Final summary shows all created/skipped standards
|
|
@@ -24,6 +25,7 @@
|
|
|
24
25
|
- ❌ Asking multiple questions at once
|
|
25
26
|
- ❌ Creating standard before its dependencies
|
|
26
27
|
- ❌ Not creating project.yaml
|
|
28
|
+
- ❌ Not detecting/asking about greenfield vs brownfield scenario
|
|
27
29
|
|
|
28
30
|
---
|
|
29
31
|
|
|
@@ -85,26 +87,112 @@ Use the project type to determine:
|
|
|
85
87
|
- Recommended standards (suggest, but optional)
|
|
86
88
|
- Skippable standards (not relevant)
|
|
87
89
|
|
|
88
|
-
**IMPORTANT**: After determining project type,
|
|
90
|
+
**IMPORTANT**: After determining project type, proceed to scenario detection before saving project.yaml.
|
|
91
|
+
|
|
92
|
+
### 3. Detect Project Scenario (Greenfield vs Brownfield)
|
|
93
|
+
|
|
94
|
+
**AI-DLC requires different workflows for new vs existing projects.**
|
|
95
|
+
|
|
96
|
+
#### Step 3a: Auto-detect existing code
|
|
97
|
+
|
|
98
|
+
Check for existing code in common directories:
|
|
99
|
+
|
|
100
|
+
```text
|
|
101
|
+
Check these directories:
|
|
102
|
+
- src/
|
|
103
|
+
- lib/
|
|
104
|
+
- app/
|
|
105
|
+
- packages/
|
|
106
|
+
|
|
107
|
+
If ANY contain source files (*.js, *.ts, *.py, etc.) → Suggest brownfield
|
|
108
|
+
If ALL are empty or don't exist → Suggest greenfield
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
#### Step 3b: Confirm with user
|
|
112
|
+
|
|
113
|
+
**If existing code detected:**
|
|
114
|
+
|
|
115
|
+
```markdown
|
|
116
|
+
## Project Scenario
|
|
117
|
+
|
|
118
|
+
I detected existing code in your project:
|
|
119
|
+
- `src/` - {n} files found
|
|
120
|
+
- `lib/` - {n} files found
|
|
121
|
+
|
|
122
|
+
This appears to be a **brownfield** project (enhancing existing code).
|
|
123
|
+
|
|
124
|
+
1. **Brownfield** - Yes, I'm adding to/modifying existing code
|
|
125
|
+
2. **Greenfield** - No, ignore existing code, starting fresh
|
|
126
|
+
3. **Hybrid** - Some features will modify existing, some are new
|
|
127
|
+
|
|
128
|
+
This affects how the Construction Agent works:
|
|
129
|
+
- **Brownfield**: Runs code elevation first to understand existing structure
|
|
130
|
+
- **Greenfield**: Starts fresh with domain modeling
|
|
131
|
+
- **Hybrid**: Asks per-intent which flow to use
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
**If no existing code detected:**
|
|
135
|
+
|
|
136
|
+
```markdown
|
|
137
|
+
## Project Scenario
|
|
138
|
+
|
|
139
|
+
No existing code detected. This appears to be a **greenfield** project.
|
|
140
|
+
|
|
141
|
+
1. **Greenfield** - Yes, this is a new project (recommended)
|
|
142
|
+
2. **Brownfield** - Actually, there's existing code elsewhere
|
|
143
|
+
3. **Hybrid** - Planning to integrate with existing code later
|
|
144
|
+
|
|
145
|
+
This affects how the Construction Agent works.
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
#### Step 3c: Capture existing codebase paths (if brownfield/hybrid)
|
|
149
|
+
|
|
150
|
+
If user selected brownfield or hybrid:
|
|
151
|
+
|
|
152
|
+
```markdown
|
|
153
|
+
## Existing Code Location
|
|
154
|
+
|
|
155
|
+
Where is your existing code located?
|
|
156
|
+
|
|
157
|
+
Common paths I'll analyze during code elevation:
|
|
158
|
+
- `src/` - main source
|
|
159
|
+
- `lib/` - libraries
|
|
160
|
+
- `app/` - application code
|
|
161
|
+
|
|
162
|
+
1. **Use defaults** - src/, lib/, app/
|
|
163
|
+
2. **Specify paths** - I'll list specific directories
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
### 4. Save project.yaml
|
|
167
|
+
|
|
168
|
+
**IMPORTANT**: After determining BOTH project type AND scenario, save to `memory-bank/project.yaml`:
|
|
89
169
|
|
|
90
170
|
```yaml
|
|
91
171
|
# Project Configuration
|
|
92
172
|
# Generated by project-init
|
|
93
173
|
|
|
94
|
-
project_type: {selected-type} #
|
|
174
|
+
project_type: {selected-type} # full-stack-web, backend-api, frontend-app, cli-tool, library
|
|
175
|
+
scenario: {scenario} # greenfield, brownfield, hybrid
|
|
95
176
|
initialized_at: {ISO timestamp}
|
|
177
|
+
|
|
178
|
+
# Only present if brownfield or hybrid
|
|
179
|
+
existing_codebase:
|
|
180
|
+
paths:
|
|
181
|
+
- src/
|
|
182
|
+
- lib/
|
|
183
|
+
detected_files: {count} # Number of source files found
|
|
96
184
|
```
|
|
97
185
|
|
|
98
|
-
This file MUST be created before proceeding to standards facilitation, as other agents (e.g., Inception) read it to provide context-aware
|
|
186
|
+
This file MUST be created before proceeding to standards facilitation, as other agents (e.g., Inception, Construction) read it to provide context-aware behavior.
|
|
99
187
|
|
|
100
|
-
###
|
|
188
|
+
### 5. Check Existing Standards
|
|
101
189
|
|
|
102
190
|
Before creating new standards, check if any exist:
|
|
103
191
|
|
|
104
192
|
- Read `standards/` directory
|
|
105
193
|
- If files exist, ask: "I found existing standards. Do you want to review and update them, or start fresh?"
|
|
106
194
|
|
|
107
|
-
###
|
|
195
|
+
### 6. Facilitate Each Standard
|
|
108
196
|
|
|
109
197
|
For each required/recommended standard:
|
|
110
198
|
|
|
@@ -115,7 +203,7 @@ For each required/recommended standard:
|
|
|
115
203
|
5. **Generate the standard file** - using the output format in the guide
|
|
116
204
|
6. **Save to path** defined in catalog (`output_path`)
|
|
117
205
|
|
|
118
|
-
###
|
|
206
|
+
### 7. Order of Standards
|
|
119
207
|
|
|
120
208
|
Follow dependency order from catalog:
|
|
121
209
|
|
|
@@ -127,7 +215,7 @@ Follow dependency order from catalog:
|
|
|
127
215
|
|
|
128
216
|
Never create a standard before its dependencies are satisfied.
|
|
129
217
|
|
|
130
|
-
###
|
|
218
|
+
### 8. Handle Optional Standards
|
|
131
219
|
|
|
132
220
|
For optional/recommended standards:
|
|
133
221
|
|
|
@@ -221,6 +309,12 @@ After completing all standards:
|
|
|
221
309
|
```markdown
|
|
222
310
|
## Project Initialization Complete
|
|
223
311
|
|
|
312
|
+
### Project Configuration
|
|
313
|
+
|
|
314
|
+
- **Type**: {project type} (e.g., full-stack-web)
|
|
315
|
+
- **Scenario**: {scenario} (greenfield/brownfield/hybrid)
|
|
316
|
+
- **Config**: `memory-bank/project.yaml`
|
|
317
|
+
|
|
224
318
|
### Standards Created
|
|
225
319
|
|
|
226
320
|
- ✅ **Tech Stack**: Created at `standards/tech-stack.md`
|
|
@@ -231,18 +325,22 @@ After completing all standards:
|
|
|
231
325
|
|
|
232
326
|
### Summary
|
|
233
327
|
|
|
234
|
-
Your project is configured as a **{project type}** using:
|
|
328
|
+
Your project is configured as a **{project type}** ({scenario}) using:
|
|
235
329
|
- **Language**: {language}
|
|
236
330
|
- **Framework**: {framework}
|
|
237
331
|
- **Database**: {database or "TBD"}
|
|
238
332
|
|
|
239
|
-
### What
|
|
333
|
+
### What This Configuration Enables
|
|
240
334
|
|
|
241
|
-
AI agents will
|
|
335
|
+
**Standards** - AI agents will:
|
|
242
336
|
- Generate code matching your style preferences
|
|
243
337
|
- Use your chosen libraries and patterns
|
|
244
338
|
- Follow your testing strategy
|
|
245
|
-
|
|
339
|
+
|
|
340
|
+
**Scenario** - Construction Agent will:
|
|
341
|
+
- {If greenfield}: Start with domain modeling (fresh design)
|
|
342
|
+
- {If brownfield}: Run code elevation first (analyze existing code)
|
|
343
|
+
- {If hybrid}: Ask per-intent which flow to use
|
|
246
344
|
|
|
247
345
|
### Actions
|
|
248
346
|
|