specsmd 0.0.0-dev.21 → 0.0.0-dev.23
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/flows/aidlc/commands/construction-agent.md +1 -1
- package/flows/aidlc/memory-bank.yaml +2 -1
- package/flows/aidlc/skills/construction/bolt-list.md +1 -1
- package/flows/aidlc/skills/construction/bolt-status.md +1 -1
- package/flows/aidlc/skills/master/analyze-context.md +1 -1
- package/flows/aidlc/templates/construction/bolt-template.md +2 -2
- package/flows/aidlc/templates/construction/bolt-types/ddd-construction-bolt.md +69 -11
- package/flows/aidlc/templates/standards/decision-index-template.md +32 -0
- package/flows/simple/README.md +178 -0
- package/flows/simple/agents/agent.md +134 -0
- package/flows/simple/commands/agent.md +56 -0
- package/flows/simple/context-config.yaml +34 -0
- package/flows/simple/memory-bank.yaml +66 -0
- package/flows/simple/skills/design.md +94 -0
- package/flows/simple/skills/execute.md +130 -0
- package/flows/simple/skills/requirements.md +94 -0
- package/flows/simple/skills/tasks.md +118 -0
- package/flows/simple/templates/design-template.md +133 -0
- package/flows/simple/templates/requirements-template.md +73 -0
- package/flows/simple/templates/tasks-template.md +95 -0
- package/package.json +1 -1
|
@@ -29,7 +29,7 @@ You are now the **Construction Agent** for specsmd AI-DLC.
|
|
|
29
29
|
1. **Read Schema**: `.specsmd/aidlc/memory-bank.yaml`
|
|
30
30
|
2. **Verify Unit**: Check unit exists and has completed inception
|
|
31
31
|
3. **Load Bolts**: Find bolts for this unit
|
|
32
|
-
4. **Determine State**: Check which bolts are planned/in-progress/
|
|
32
|
+
4. **Determine State**: Check which bolts are planned/in-progress/complete
|
|
33
33
|
5. **Present Menu or Continue**: Show status or continue active bolt
|
|
34
34
|
|
|
35
35
|
---
|
|
@@ -81,13 +81,14 @@ schema:
|
|
|
81
81
|
story-index: "memory-bank/story-index.md"
|
|
82
82
|
inception-log: "memory-bank/intents/{intent-name}/inception-log.md"
|
|
83
83
|
construction-log: "memory-bank/intents/{intent-name}/units/{unit-name}/construction-log.md"
|
|
84
|
+
decision-index: "memory-bank/standards/decision-index.md"
|
|
84
85
|
|
|
85
86
|
# Agent Ownership
|
|
86
87
|
# Note: Both Inception and Construction can plan/create bolts
|
|
87
88
|
# Inception: initial planning, Construction: replanning during execution
|
|
88
89
|
ownership:
|
|
89
90
|
inception: [intents, units, stories, story-index, bolts] # Plans bolts initially
|
|
90
|
-
construction: [units, bolts]
|
|
91
|
+
construction: [units, bolts, decision-index] # Executes, can replan bolts, maintains decision index
|
|
91
92
|
operations: [operations]
|
|
92
93
|
|
|
93
94
|
# Global Story Index Options
|
|
@@ -81,7 +81,7 @@ Check for issues:
|
|
|
81
81
|
- **Unit**: `{unit-name}`
|
|
82
82
|
- **Intent**: `{intent-name}`
|
|
83
83
|
- **Type**: {bolt-type}
|
|
84
|
-
- **Status**: {planned|in-progress|
|
|
84
|
+
- **Status**: {planned|in-progress|complete|blocked}
|
|
85
85
|
|
|
86
86
|
### Progress
|
|
87
87
|
[██████████░░░░░░░░░░] 50% (2/4 stages)
|
|
@@ -53,7 +53,7 @@ For recent/active intents:
|
|
|
53
53
|
Check `schema.bolts` directory:
|
|
54
54
|
|
|
55
55
|
- Are there bolt instance files?
|
|
56
|
-
- What is their status? (planned, in-progress,
|
|
56
|
+
- What is their status? (planned, in-progress, complete)
|
|
57
57
|
- What stage are in-progress bolts at?
|
|
58
58
|
|
|
59
59
|
### 5. Determine Phase
|
|
@@ -67,7 +67,7 @@ Before creating a bolt, verify ALL required fields are present:
|
|
|
67
67
|
| `unit` | **YES** | Parent unit ID |
|
|
68
68
|
| `intent` | **YES** | Parent intent ID |
|
|
69
69
|
| `type` | **YES** | Bolt type (`ddd-construction-bolt` or `simple-construction-bolt`) |
|
|
70
|
-
| `status` | **YES** | Current status (`planned`, `in-progress`, `
|
|
70
|
+
| `status` | **YES** | Current status (`planned`, `in-progress`, `complete`, `blocked`) |
|
|
71
71
|
| `stories` | **YES** | Array of story IDs included in this bolt |
|
|
72
72
|
| `created` | **YES** | Creation timestamp |
|
|
73
73
|
| `requires_bolts` | **YES** | Array of bolt IDs this depends on (can be empty `[]`) |
|
|
@@ -134,7 +134,7 @@ Before creating a bolt, verify ALL required fields are present:
|
|
|
134
134
|
|
|
135
135
|
- **planned**: Bolt created, not started
|
|
136
136
|
- **in-progress**: Currently being executed
|
|
137
|
-
- **
|
|
137
|
+
- **complete**: All stages done
|
|
138
138
|
- **blocked**: Cannot proceed due to dependency
|
|
139
139
|
|
|
140
140
|
---
|
|
@@ -272,6 +272,7 @@ Suggest an ADR when you identify:
|
|
|
272
272
|
3 - **Identify ADR-worthy decisions**: Create decision list
|
|
273
273
|
4 - **Present opportunities to user**: Get user selection
|
|
274
274
|
5 - **Create ADR documents**: Generate selected ADRs
|
|
275
|
+
6 - **Update decision index**: Add entries to `memory-bank/standards/decision-index.md`
|
|
275
276
|
|
|
276
277
|
**Artifact**: `adr-{number}-{slug}.md` (zero or more)
|
|
277
278
|
**Template**: `.specsmd/aidlc/templates/construction/bolt-types/ddd-construction-bolt/adr-template.md`
|
|
@@ -282,7 +283,8 @@ Suggest an ADR when you identify:
|
|
|
282
283
|
1. Review stories, domain model, and technical design
|
|
283
284
|
2. Compare against loaded project standards
|
|
284
285
|
3. If decision-worthy patterns detected, present opportunities to user
|
|
285
|
-
4. Handle user response
|
|
286
|
+
4. Handle user response (create selected ADRs or skip)
|
|
287
|
+
5. Update decision index (if ADRs created) and proceed to checkpoint
|
|
286
288
|
|
|
287
289
|
**Step 3 Output Format**:
|
|
288
290
|
|
|
@@ -299,10 +301,35 @@ Would you like to create ADRs for any of these? (Enter numbers, "all", or "skip"
|
|
|
299
301
|
|
|
300
302
|
**Step 4 Decision Handling**:
|
|
301
303
|
|
|
302
|
-
- **User selects numbers or "all"** → Generate ADRs using template, then
|
|
304
|
+
- **User selects numbers or "all"** → Generate ADRs using template, then update decision index
|
|
303
305
|
- **User selects "skip"** → Proceed to checkpoint with "No ADRs created"
|
|
304
306
|
- **No ADR opportunities identified** → Auto-proceed to checkpoint with "No ADR-worthy decisions found"
|
|
305
307
|
|
|
308
|
+
**Step 5 Decision Index Update**:
|
|
309
|
+
|
|
310
|
+
For each ADR created, add an entry to `memory-bank/standards/decision-index.md`:
|
|
311
|
+
|
|
312
|
+
1. If `decision-index.md` doesn't exist, create it from template: `.specsmd/aidlc/templates/standards/decision-index-template.md`
|
|
313
|
+
2. Add entry for each ADR in the following format:
|
|
314
|
+
|
|
315
|
+
```markdown
|
|
316
|
+
### ADR-{n}: {title}
|
|
317
|
+
- **Status**: {status from ADR frontmatter}
|
|
318
|
+
- **Date**: {YYYY-MM-DD from ADR created timestamp}
|
|
319
|
+
- **Bolt**: {bolt-id} ({unit-name})
|
|
320
|
+
- **Path**: `bolts/{bolt-id}/adr-{n}-{slug}.md`
|
|
321
|
+
- **Summary**: {First sentence from Context section}. {First sentence from Decision section}.
|
|
322
|
+
- **Read when**: {Generate guidance based on the ADR's domain - describe scenarios when agents should read this ADR}
|
|
323
|
+
```
|
|
324
|
+
|
|
325
|
+
3. Update frontmatter: increment `total_decisions`, update `last_updated` timestamp
|
|
326
|
+
|
|
327
|
+
**"Read when" Guidance Examples**:
|
|
328
|
+
- "Working on authentication flows or session management"
|
|
329
|
+
- "Implementing caching strategies or data persistence patterns"
|
|
330
|
+
- "Designing API contracts or integration points"
|
|
331
|
+
- "Handling error cases or implementing retry logic"
|
|
332
|
+
|
|
306
333
|
**Example ADR**:
|
|
307
334
|
|
|
308
335
|
```markdown
|
|
@@ -330,6 +357,7 @@ Implement CQRS pattern with separate read models for task queries.
|
|
|
330
357
|
- [ ] Project standards compared
|
|
331
358
|
- [ ] User presented with ADR opportunities (if any)
|
|
332
359
|
- [ ] Selected ADRs created (or explicitly skipped)
|
|
360
|
+
- [ ] Decision index updated (if ADRs were created)
|
|
333
361
|
|
|
334
362
|
**Important**: Do not force ADRs. Only suggest when there's genuine value. Simple bolts with straightforward decisions don't need ADRs.
|
|
335
363
|
|
|
@@ -495,6 +523,34 @@ status: in-progress
|
|
|
495
523
|
|
|
496
524
|
## Bolt Context Loading
|
|
497
525
|
|
|
526
|
+
### Prior Decision Lookup (All Stages)
|
|
527
|
+
|
|
528
|
+
**Before starting any stage**, scan the decision index for relevant prior ADRs:
|
|
529
|
+
|
|
530
|
+
1. Read `memory-bank/standards/decision-index.md` (if it exists)
|
|
531
|
+
2. Match the current bolt's domain/scope against "Read when" fields
|
|
532
|
+
3. Load full ADRs for any matching entries
|
|
533
|
+
4. Consider these decisions as constraints or guidance for the current work
|
|
534
|
+
|
|
535
|
+
**Example**: If working on a bolt for "user-service" and the decision index contains:
|
|
536
|
+
```
|
|
537
|
+
### ADR-001: Use JWT for Authentication
|
|
538
|
+
- **Read when**: Working on authentication flows or user services
|
|
539
|
+
```
|
|
540
|
+
→ Load and consider `ADR-001` before starting design work.
|
|
541
|
+
|
|
542
|
+
**Present relevant ADRs to user** at bolt start:
|
|
543
|
+
```
|
|
544
|
+
## Relevant Prior Decisions
|
|
545
|
+
|
|
546
|
+
Found {n} ADR(s) that may apply to this bolt:
|
|
547
|
+
- ADR-001: Use JWT for Authentication → [View](bolts/001-auth-service/adr-001-jwt-auth.md)
|
|
548
|
+
|
|
549
|
+
These decisions may constrain or guide your approach. Proceed? (y/n)
|
|
550
|
+
```
|
|
551
|
+
|
|
552
|
+
### Bolt Folder Artifacts (Stages 4-5)
|
|
553
|
+
|
|
498
554
|
For stages that build on previous work (Stage 4: Implement, Stage 5: Test), load all artifacts from the bolt folder:
|
|
499
555
|
|
|
500
556
|
**Location**: `memory-bank/bolts/{bolt-id}/`
|
|
@@ -515,14 +571,16 @@ This ensures the implementation and test stages have full context from earlier d
|
|
|
515
571
|
1. **Load bolt instance** from path defined by `schema.bolts`
|
|
516
572
|
2. **Read `bolt_type` field** (e.g., `ddd-construction-bolt`)
|
|
517
573
|
3. **Load this definition** from `.specsmd/aidlc/templates/construction/bolt-types/`
|
|
518
|
-
4. **
|
|
519
|
-
5. **
|
|
520
|
-
6. **
|
|
521
|
-
7. **
|
|
522
|
-
8.
|
|
523
|
-
9. **
|
|
524
|
-
10.
|
|
525
|
-
|
|
526
|
-
|
|
574
|
+
4. **Scan decision index** for relevant prior ADRs (see Prior Decision Lookup)
|
|
575
|
+
5. **Present relevant ADRs** to user if any found, get confirmation to proceed
|
|
576
|
+
6. **Check `current_stage`** in bolt instance
|
|
577
|
+
7. **Load bolt folder artifacts** if stage requires previous context (see Bolt Folder Artifacts)
|
|
578
|
+
8. **Execute stage** following activities defined here
|
|
579
|
+
9. **Create artifacts** using templates
|
|
580
|
+
10. **⛔ STOP and present completion summary** - DO NOT continue automatically
|
|
581
|
+
11. **Wait for user confirmation** - user must explicitly approve (e.g., "continue", "proceed", "next")
|
|
582
|
+
12. **Only after approval**: Update bolt state and advance to next stage
|
|
583
|
+
|
|
584
|
+
**⛔ CRITICAL**: Steps 10-11 are MANDATORY. Never skip the human checkpoint. Never auto-advance.
|
|
527
585
|
|
|
528
586
|
The Construction Agent is **bolt-type agnostic** - it reads stages from this file and executes them.
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
---
|
|
2
|
+
last_updated: {YYYY-MM-DDTHH:MM:SSZ}
|
|
3
|
+
total_decisions: 0
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Decision Index
|
|
7
|
+
|
|
8
|
+
This index tracks all Architecture Decision Records (ADRs) created during Construction bolts.
|
|
9
|
+
Use this to find relevant prior decisions when working on related features.
|
|
10
|
+
|
|
11
|
+
## How to Use
|
|
12
|
+
|
|
13
|
+
**For Agents**: Scan the "Read when" fields below to identify decisions relevant to your current task. Before implementing new features, check if existing ADRs constrain or guide your approach. Load the full ADR for matching entries.
|
|
14
|
+
|
|
15
|
+
**For Humans**: Browse decisions chronologically or search for keywords. Each entry links to the full ADR with complete context, alternatives considered, and consequences.
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Decisions
|
|
20
|
+
|
|
21
|
+
<!-- Entries are appended below in reverse chronological order (newest first) -->
|
|
22
|
+
<!-- Format for each entry:
|
|
23
|
+
|
|
24
|
+
### ADR-{n}: {title}
|
|
25
|
+
- **Status**: {proposed|accepted|deprecated|superseded}
|
|
26
|
+
- **Date**: {YYYY-MM-DD}
|
|
27
|
+
- **Bolt**: {bolt-id} ({unit-name})
|
|
28
|
+
- **Path**: `bolts/{bolt-id}/adr-{n}-{slug}.md`
|
|
29
|
+
- **Summary**: {First sentence from Context}. {First sentence from Decision}.
|
|
30
|
+
- **Read when**: {Agent guidance - domain keywords and scenarios when this ADR is relevant}
|
|
31
|
+
|
|
32
|
+
-->
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
# Simple Flow - Spec-Driven Development
|
|
2
|
+
|
|
3
|
+
A lightweight flow for creating feature specifications, inspired by Amazon Kiro's spec-driven development approach.
|
|
4
|
+
|
|
5
|
+
## What is Simple Flow?
|
|
6
|
+
|
|
7
|
+
Simple Flow guides you through three phases to transform a feature idea into an actionable implementation plan:
|
|
8
|
+
|
|
9
|
+
1. **Requirements** - Define what to build with user stories and EARS acceptance criteria
|
|
10
|
+
2. **Design** - Create technical design with architecture, components, and data models
|
|
11
|
+
3. **Tasks** - Generate implementation checklist with incremental coding tasks
|
|
12
|
+
|
|
13
|
+
Each phase produces a markdown document that serves as both documentation and executable specification for AI-assisted development.
|
|
14
|
+
|
|
15
|
+
## When to Use Simple Flow
|
|
16
|
+
|
|
17
|
+
### Use Simple Flow when:
|
|
18
|
+
- You need quick feature specs without full methodology overhead
|
|
19
|
+
- Building prototypes or small-to-medium features
|
|
20
|
+
- You want structured documentation but not full AI-DLC complexity
|
|
21
|
+
- Working solo or in small teams
|
|
22
|
+
- Rapid iteration is more important than comprehensive process
|
|
23
|
+
|
|
24
|
+
### Use AI-DLC Flow when:
|
|
25
|
+
- Building complex, multi-team features
|
|
26
|
+
- You need full DDD stages and bolt management
|
|
27
|
+
- Following strict AI-DLC methodology with intents/units/stories
|
|
28
|
+
- Production systems requiring full traceability
|
|
29
|
+
- Team coordination with formal handoffs
|
|
30
|
+
|
|
31
|
+
## Quick Start
|
|
32
|
+
|
|
33
|
+
### 1. Create a New Spec
|
|
34
|
+
|
|
35
|
+
Invoke the spec agent with your feature idea:
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
/specsmd-agent Create a user authentication system with email login
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### 2. Review and Approve Requirements
|
|
42
|
+
|
|
43
|
+
The agent generates a requirements document with:
|
|
44
|
+
- Introduction summarizing the feature
|
|
45
|
+
- Glossary of domain terms
|
|
46
|
+
- User stories with EARS acceptance criteria
|
|
47
|
+
|
|
48
|
+
Review and provide feedback, or approve to continue.
|
|
49
|
+
|
|
50
|
+
### 3. Review and Approve Design
|
|
51
|
+
|
|
52
|
+
After requirements approval, the agent generates:
|
|
53
|
+
- Architecture overview with diagrams
|
|
54
|
+
- Component interfaces
|
|
55
|
+
- Data models with validation rules
|
|
56
|
+
- Error handling strategies
|
|
57
|
+
- Testing strategy
|
|
58
|
+
|
|
59
|
+
Review and provide feedback, or approve to continue.
|
|
60
|
+
|
|
61
|
+
### 4. Review and Approve Tasks
|
|
62
|
+
|
|
63
|
+
After design approval, the agent generates:
|
|
64
|
+
- Numbered checkbox task list
|
|
65
|
+
- Incremental implementation steps
|
|
66
|
+
- Requirement references for traceability
|
|
67
|
+
- Checkpoint tasks for verification
|
|
68
|
+
|
|
69
|
+
### 5. Execute Tasks
|
|
70
|
+
|
|
71
|
+
Once all three documents are approved:
|
|
72
|
+
|
|
73
|
+
```
|
|
74
|
+
/specsmd-agent --spec="user-auth" --execute
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Or ask: "What's the next task for user-auth?"
|
|
78
|
+
|
|
79
|
+
## Output Structure
|
|
80
|
+
|
|
81
|
+
```
|
|
82
|
+
memory-bank/
|
|
83
|
+
└── specs/
|
|
84
|
+
└── {feature-name}/
|
|
85
|
+
├── requirements.md # Phase 1: What to build
|
|
86
|
+
├── design.md # Phase 2: How to build it
|
|
87
|
+
└── tasks.md # Phase 3: Step-by-step plan
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
## EARS Format
|
|
91
|
+
|
|
92
|
+
Requirements use EARS (Easy Approach to Requirements Syntax) patterns:
|
|
93
|
+
|
|
94
|
+
| Pattern | Format | Example |
|
|
95
|
+
|---------|--------|---------|
|
|
96
|
+
| **Event-driven** | WHEN [trigger], THE [system] SHALL [response] | WHEN user clicks login, THE Auth_System SHALL validate credentials |
|
|
97
|
+
| **State-driven** | WHILE [condition], THE [system] SHALL [response] | WHILE session is active, THE Auth_System SHALL refresh tokens |
|
|
98
|
+
| **Unwanted** | IF [condition], THEN THE [system] SHALL [response] | IF password is invalid, THEN THE Auth_System SHALL display error |
|
|
99
|
+
| **Optional** | WHERE [option], THE [system] SHALL [response] | WHERE MFA is enabled, THE Auth_System SHALL require second factor |
|
|
100
|
+
|
|
101
|
+
## Key Principles
|
|
102
|
+
|
|
103
|
+
### Generate First, Ask Later
|
|
104
|
+
The agent generates a draft document immediately based on your feature idea. This serves as a starting point for discussion rather than requiring extensive Q&A upfront.
|
|
105
|
+
|
|
106
|
+
### Explicit Approval Gates
|
|
107
|
+
You must explicitly approve each phase before proceeding. Say "yes", "approved", or "looks good" to continue. Any feedback triggers revision.
|
|
108
|
+
|
|
109
|
+
### One Phase at a Time
|
|
110
|
+
The agent focuses on one document per interaction. This ensures thorough review and prevents overwhelming changes.
|
|
111
|
+
|
|
112
|
+
### One Task at a Time
|
|
113
|
+
During execution, only one task is implemented per interaction. This allows careful review of each change.
|
|
114
|
+
|
|
115
|
+
## File Structure
|
|
116
|
+
|
|
117
|
+
```
|
|
118
|
+
src/flows/simple/
|
|
119
|
+
├── README.md # This file
|
|
120
|
+
├── memory-bank.yaml # Storage configuration
|
|
121
|
+
├── context-config.yaml # Context loading rules
|
|
122
|
+
├── agents/
|
|
123
|
+
│ └── agent.md # Agent definition
|
|
124
|
+
├── commands/
|
|
125
|
+
│ └── agent.md # Command definition
|
|
126
|
+
├── skills/
|
|
127
|
+
│ ├── requirements.md # Phase 1 skill
|
|
128
|
+
│ ├── design.md # Phase 2 skill
|
|
129
|
+
│ ├── tasks.md # Phase 3 skill
|
|
130
|
+
│ └── execute.md # Task execution skill
|
|
131
|
+
└── templates/
|
|
132
|
+
├── requirements-template.md
|
|
133
|
+
├── design-template.md
|
|
134
|
+
└── tasks-template.md
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
## Comparison with AI-DLC
|
|
138
|
+
|
|
139
|
+
| Aspect | Simple Flow | AI-DLC Flow |
|
|
140
|
+
|--------|-------------|-------------|
|
|
141
|
+
| **Target** | Quick feature specs | Full development lifecycle |
|
|
142
|
+
| **Phases** | 3: Requirements → Design → Tasks | 3: Inception → Construction → Operations |
|
|
143
|
+
| **Agents** | 1 (Agent) | 4 (Master, Inception, Construction, Operations) |
|
|
144
|
+
| **Output** | 3 markdown files | Full memory-bank hierarchy |
|
|
145
|
+
| **DDD Stages** | Not included | Full DDD stages in Construction |
|
|
146
|
+
| **Bolts** | No concept | Time-boxed execution sessions |
|
|
147
|
+
| **Hierarchy** | Flat (specs/) | Nested (intents/units/stories) |
|
|
148
|
+
| **Overhead** | Minimal | Significant structure |
|
|
149
|
+
|
|
150
|
+
## Tips for Success
|
|
151
|
+
|
|
152
|
+
### Requirements Phase
|
|
153
|
+
- Be specific about user roles and their needs
|
|
154
|
+
- Include edge cases in acceptance criteria
|
|
155
|
+
- Define all domain terms in the glossary
|
|
156
|
+
- Aim for 3-7 requirements per feature
|
|
157
|
+
|
|
158
|
+
### Design Phase
|
|
159
|
+
- Ensure every requirement is addressed
|
|
160
|
+
- Use Mermaid diagrams for architecture
|
|
161
|
+
- Be explicit about error handling
|
|
162
|
+
- Define validation rules for all data
|
|
163
|
+
|
|
164
|
+
### Tasks Phase
|
|
165
|
+
- Each task should be completable in one session
|
|
166
|
+
- Include test tasks (mark optional with *)
|
|
167
|
+
- Add checkpoint tasks to verify progress
|
|
168
|
+
- Reference specific requirements for traceability
|
|
169
|
+
|
|
170
|
+
### Execution Phase
|
|
171
|
+
- Read all three spec files before starting
|
|
172
|
+
- Execute tasks in order (prerequisites first)
|
|
173
|
+
- Review changes after each task
|
|
174
|
+
- Update task status as you complete
|
|
175
|
+
|
|
176
|
+
## Attribution
|
|
177
|
+
|
|
178
|
+
Simple Flow is inspired by [Amazon Kiro](https://kiro.dev)'s spec-driven development approach, adapted for the specsmd framework.
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
# Agent
|
|
2
|
+
|
|
3
|
+
## Persona
|
|
4
|
+
|
|
5
|
+
You are the **Agent**, a specialist in spec-driven development. You guide users through the process of transforming feature ideas into structured specifications with requirements, design, and implementation tasks.
|
|
6
|
+
|
|
7
|
+
You follow a three-phase workflow inspired by Amazon Kiro:
|
|
8
|
+
1. **Requirements** - Define what to build with EARS-format acceptance criteria
|
|
9
|
+
2. **Design** - Create technical design with architecture and data models
|
|
10
|
+
3. **Tasks** - Generate implementation checklist with coding tasks
|
|
11
|
+
|
|
12
|
+
## Critical Rules
|
|
13
|
+
|
|
14
|
+
### Workflow Rules
|
|
15
|
+
|
|
16
|
+
1. **Generate documents FIRST, ask questions LATER**
|
|
17
|
+
- Do NOT ask clarifying questions before generating
|
|
18
|
+
- Create a draft document as discussion starting point
|
|
19
|
+
- User feedback refines the document
|
|
20
|
+
|
|
21
|
+
2. **NEVER tell the user about the internal workflow**
|
|
22
|
+
- Don't mention "Phase 1", "Phase 2", "Phase 3"
|
|
23
|
+
- Don't say "following the workflow" or similar
|
|
24
|
+
- Just naturally guide them through the process
|
|
25
|
+
|
|
26
|
+
3. **Explicit approval required between phases**
|
|
27
|
+
- After each document, ask for approval
|
|
28
|
+
- Do NOT proceed without explicit "yes", "approved", "looks good"
|
|
29
|
+
- Continue feedback-revision cycle until approved
|
|
30
|
+
|
|
31
|
+
4. **ONE phase at a time**
|
|
32
|
+
- Never generate multiple documents in one turn
|
|
33
|
+
- Complete each phase before moving to next
|
|
34
|
+
|
|
35
|
+
5. **Track state internally**
|
|
36
|
+
- Remember which phase you're in
|
|
37
|
+
- Detect state from existing files if resuming
|
|
38
|
+
|
|
39
|
+
### Execution Rules
|
|
40
|
+
|
|
41
|
+
6. **ONE task at a time**
|
|
42
|
+
- When executing tasks, do only one
|
|
43
|
+
- Stop for user review after each task
|
|
44
|
+
- Never auto-advance to next task
|
|
45
|
+
|
|
46
|
+
7. **Always read all specs before execution**
|
|
47
|
+
- Requirements, design, AND tasks must be read
|
|
48
|
+
- Context from all three is essential
|
|
49
|
+
|
|
50
|
+
## Context Loading
|
|
51
|
+
|
|
52
|
+
On activation, read:
|
|
53
|
+
```
|
|
54
|
+
.specsmd/simple/memory-bank.yaml # Storage structure
|
|
55
|
+
.specsmd/simple/skills/*.md # Available skills
|
|
56
|
+
.specsmd/simple/templates/*.md # Document templates
|
|
57
|
+
memory-bank/specs/ # Existing specs (for state detection)
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## State Detection
|
|
61
|
+
|
|
62
|
+
Check `memory-bank/specs/{feature-name}/` to determine state:
|
|
63
|
+
|
|
64
|
+
| Files Present | State | Action |
|
|
65
|
+
|--------------|-------|--------|
|
|
66
|
+
| None | NEW | Start requirements phase |
|
|
67
|
+
| requirements.md only | DESIGN_PENDING | Start design phase |
|
|
68
|
+
| requirements.md + design.md | TASKS_PENDING | Start tasks phase |
|
|
69
|
+
| All three files | COMPLETE | Offer task execution or updates |
|
|
70
|
+
|
|
71
|
+
## Skills
|
|
72
|
+
|
|
73
|
+
### requirements
|
|
74
|
+
Generate/update requirements document with EARS-format acceptance criteria.
|
|
75
|
+
- Output: `memory-bank/specs/{feature}/requirements.md`
|
|
76
|
+
- Approval prompt: "Do the requirements look good? If so, we can move on to the design."
|
|
77
|
+
|
|
78
|
+
### design
|
|
79
|
+
Generate/update technical design document with architecture and data models.
|
|
80
|
+
- Precondition: Requirements approved
|
|
81
|
+
- Output: `memory-bank/specs/{feature}/design.md`
|
|
82
|
+
- Approval prompt: "Does the design look good? If so, we can move on to the implementation plan."
|
|
83
|
+
|
|
84
|
+
### tasks
|
|
85
|
+
Generate/update implementation task list with coding tasks.
|
|
86
|
+
- Precondition: Design approved
|
|
87
|
+
- Output: `memory-bank/specs/{feature}/tasks.md`
|
|
88
|
+
- Approval prompt: "Do the tasks look good?"
|
|
89
|
+
|
|
90
|
+
### execute
|
|
91
|
+
Execute a single task from the approved tasks list.
|
|
92
|
+
- Precondition: All three spec files exist
|
|
93
|
+
- Output: Code changes + updated task checkbox
|
|
94
|
+
|
|
95
|
+
## Approval Detection
|
|
96
|
+
|
|
97
|
+
Recognize these as approval:
|
|
98
|
+
- "yes", "yeah", "yep", "sure"
|
|
99
|
+
- "approved", "approve"
|
|
100
|
+
- "looks good", "looks great", "looks fine"
|
|
101
|
+
- "let's continue", "move on", "proceed"
|
|
102
|
+
- "good to go", "all good"
|
|
103
|
+
|
|
104
|
+
Recognize these as feedback (NOT approval):
|
|
105
|
+
- Any suggested changes
|
|
106
|
+
- Questions about the document
|
|
107
|
+
- "but...", "except...", "however..."
|
|
108
|
+
- Requests for additions or removals
|
|
109
|
+
|
|
110
|
+
## Entry Points
|
|
111
|
+
|
|
112
|
+
### New Spec
|
|
113
|
+
User: "Create a spec for [feature idea]"
|
|
114
|
+
Action: Start requirements phase with derived feature name
|
|
115
|
+
|
|
116
|
+
### Resume Spec
|
|
117
|
+
User: "Continue working on [feature]" or just "/specsmd-agent"
|
|
118
|
+
Action: Detect state from files, resume at appropriate phase
|
|
119
|
+
|
|
120
|
+
### Update Spec
|
|
121
|
+
User: "Update the requirements for [feature]"
|
|
122
|
+
Action: Load existing file, apply updates, ask for approval
|
|
123
|
+
|
|
124
|
+
### Execute Tasks
|
|
125
|
+
User: "Start implementing [feature]" or "What's the next task?"
|
|
126
|
+
Action: Load all specs, recommend or execute requested task
|
|
127
|
+
|
|
128
|
+
## Response Style
|
|
129
|
+
|
|
130
|
+
- Be concise and direct
|
|
131
|
+
- Don't explain the methodology
|
|
132
|
+
- Focus on the content, not the process
|
|
133
|
+
- Ask clear approval questions
|
|
134
|
+
- Provide helpful context when generating documents
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# Agent Command
|
|
2
|
+
|
|
3
|
+
This file defines the agent command within the simple flow.
|
|
4
|
+
|
|
5
|
+
## Command Definition
|
|
6
|
+
|
|
7
|
+
```yaml
|
|
8
|
+
name: agent
|
|
9
|
+
description: Spec-driven development - create requirements, design, and tasks
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
## Invocation
|
|
13
|
+
|
|
14
|
+
When this command is invoked, the agent should:
|
|
15
|
+
|
|
16
|
+
1. **Load Context**
|
|
17
|
+
- Read `.specsmd/simple/memory-bank.yaml`
|
|
18
|
+
- Read `.specsmd/simple/agents/agent.md`
|
|
19
|
+
- Scan `memory-bank/specs/` for existing specs
|
|
20
|
+
|
|
21
|
+
2. **Parse Arguments**
|
|
22
|
+
- `$ARGUMENTS` contains user input after command
|
|
23
|
+
- Extract feature idea or spec name
|
|
24
|
+
- Determine intent (create, continue, update, execute)
|
|
25
|
+
|
|
26
|
+
3. **Detect State**
|
|
27
|
+
- If spec name provided, check for existing files
|
|
28
|
+
- Determine current phase based on file existence
|
|
29
|
+
|
|
30
|
+
4. **Route to Skill**
|
|
31
|
+
- NEW → requirements skill
|
|
32
|
+
- DESIGN_PENDING → design skill
|
|
33
|
+
- TASKS_PENDING → tasks skill
|
|
34
|
+
- COMPLETE → execute skill or offer updates
|
|
35
|
+
|
|
36
|
+
## Usage Examples
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
/specsmd-agent Create a todo app with local storage
|
|
40
|
+
```
|
|
41
|
+
→ Creates new spec "todo-app", starts requirements phase
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
/specsmd-agent --spec="todo-app"
|
|
45
|
+
```
|
|
46
|
+
→ Continues existing spec at current phase
|
|
47
|
+
|
|
48
|
+
```
|
|
49
|
+
/specsmd-agent --spec="todo-app" --execute
|
|
50
|
+
```
|
|
51
|
+
→ Enter task execution mode for completed spec
|
|
52
|
+
|
|
53
|
+
```
|
|
54
|
+
/specsmd-agent
|
|
55
|
+
```
|
|
56
|
+
→ Lists existing specs or prompts for feature idea
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# Context Configuration for Simple Flow
|
|
2
|
+
# Defines what context the agent should load
|
|
3
|
+
|
|
4
|
+
# Files to load on agent activation
|
|
5
|
+
context:
|
|
6
|
+
always_load:
|
|
7
|
+
- path: ".specsmd/simple/memory-bank.yaml"
|
|
8
|
+
description: "Storage structure and workflow configuration"
|
|
9
|
+
- path: ".specsmd/simple/agents/agent.md"
|
|
10
|
+
description: "Agent definition and behavior rules"
|
|
11
|
+
|
|
12
|
+
load_on_phase:
|
|
13
|
+
requirements:
|
|
14
|
+
- path: ".specsmd/simple/skills/requirements.md"
|
|
15
|
+
- path: ".specsmd/simple/templates/requirements-template.md"
|
|
16
|
+
design:
|
|
17
|
+
- path: ".specsmd/simple/skills/design.md"
|
|
18
|
+
- path: ".specsmd/simple/templates/design-template.md"
|
|
19
|
+
- path: "memory-bank/specs/{feature}/requirements.md"
|
|
20
|
+
tasks:
|
|
21
|
+
- path: ".specsmd/simple/skills/tasks.md"
|
|
22
|
+
- path: ".specsmd/simple/templates/tasks-template.md"
|
|
23
|
+
- path: "memory-bank/specs/{feature}/requirements.md"
|
|
24
|
+
- path: "memory-bank/specs/{feature}/design.md"
|
|
25
|
+
execute:
|
|
26
|
+
- path: ".specsmd/simple/skills/execute.md"
|
|
27
|
+
- path: "memory-bank/specs/{feature}/requirements.md"
|
|
28
|
+
- path: "memory-bank/specs/{feature}/design.md"
|
|
29
|
+
- path: "memory-bank/specs/{feature}/tasks.md"
|
|
30
|
+
|
|
31
|
+
# Scan directories on activation
|
|
32
|
+
scan:
|
|
33
|
+
- path: "memory-bank/specs/"
|
|
34
|
+
purpose: "Detect existing specs for state detection"
|