@arsxxi/iterative-dev-workflow 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.opencode/plugins/iterative-dev-workflow.mjs +41 -0
- package/AGENTS.md +464 -0
- package/LICENSE +21 -0
- package/README.md +186 -0
- package/commands/kickoff.md +90 -0
- package/commands/kickoff.toml +2 -0
- package/commands/phase-1.md +31 -0
- package/commands/phase-1.toml +2 -0
- package/commands/phase-2-step-1.md +25 -0
- package/commands/phase-2-step-1.toml +2 -0
- package/commands/phase-2-step-2.md +27 -0
- package/commands/phase-2-step-2.toml +2 -0
- package/commands/phase-2-step-3.md +68 -0
- package/commands/phase-2-step-3.toml +2 -0
- package/commands/phase-2-step-4.md +55 -0
- package/commands/phase-2-step-4.toml +2 -0
- package/commands/phase-2-step-5.md +22 -0
- package/commands/phase-2-step-5.toml +2 -0
- package/commands/phase-3.md +33 -0
- package/commands/phase-3.toml +2 -0
- package/commands/phase-4.md +29 -0
- package/commands/phase-4.toml +2 -0
- package/commands/session-transcript.md +57 -0
- package/commands/session-transcript.toml +2 -0
- package/package.json +32 -0
- package/skills/workflow-methodology/SKILL.md +464 -0
package/README.md
ADDED
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<picture>
|
|
3
|
+
<source media="(prefers-color-scheme: dark)" srcset="assets/yamadaaa.png">
|
|
4
|
+
<img src="assets/yamadaaa.png" width="350" alt="Iterative Dev Workflow">
|
|
5
|
+
</picture>
|
|
6
|
+
</p>
|
|
7
|
+
|
|
8
|
+
<h1 align="center">Iterative Dev Workflow</h1>
|
|
9
|
+
|
|
10
|
+
<p align="center">
|
|
11
|
+
<em>Structure your AI agent's development process.</em>
|
|
12
|
+
</p>
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
Stop shipping features that break production. Stop rewriting the same architecture three times. Stop wondering why your AI agent keeps over-engineering simple tasks.
|
|
18
|
+
|
|
19
|
+
Iterative Dev Workflow gives your AI agent a structured development process — from understanding the task to reflecting on what went wrong.
|
|
20
|
+
|
|
21
|
+
## Before / after
|
|
22
|
+
|
|
23
|
+
You give your AI agent a vague task like "build user authentication." Without a structure, it writes code, asks no questions, and delivers something that doesn't match what you needed.
|
|
24
|
+
|
|
25
|
+
With Iterative Dev Workflow:
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
/kickoff
|
|
29
|
+
→ Agent asks: what platform? what stack? what's the slug?
|
|
30
|
+
→ You answer
|
|
31
|
+
→ Agent confirms understanding, sets up .workflow/<slug>/00-context.md
|
|
32
|
+
|
|
33
|
+
/phase-1
|
|
34
|
+
→ Agent explores codebase, identifies gaps, asks the right questions
|
|
35
|
+
|
|
36
|
+
/phase-2-step-1
|
|
37
|
+
→ Agent proposes 5 different approaches (Architecture, UI/UX, Data Model, etc.)
|
|
38
|
+
|
|
39
|
+
/phase-2-step-2
|
|
40
|
+
→ Agent analyzes trade-offs and sensitivity points for each approach
|
|
41
|
+
|
|
42
|
+
/phase-2-step-3
|
|
43
|
+
→ You define Quality Attributes (e.g. Performance, Maintainability)
|
|
44
|
+
→ Agent scores each design against your criteria
|
|
45
|
+
|
|
46
|
+
/phase-2-step-4
|
|
47
|
+
→ You choose the best design
|
|
48
|
+
→ Agent creates System Context Diagram (Mermaid.js)
|
|
49
|
+
|
|
50
|
+
/phase-2-step-5
|
|
51
|
+
→ Agent creates User Journey Diagram (Mermaid.js)
|
|
52
|
+
|
|
53
|
+
/phase-3
|
|
54
|
+
→ Agent writes implementation plan — avoiding overengineering
|
|
55
|
+
|
|
56
|
+
/phase-4
|
|
57
|
+
→ Agent reflects: what went well, what could be better
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
You stay in control. The agent never skips ahead.
|
|
61
|
+
|
|
62
|
+
## Install
|
|
63
|
+
|
|
64
|
+
### Claude Code
|
|
65
|
+
|
|
66
|
+
```
|
|
67
|
+
/plugin marketplace add Arsxxi/Iterative-dev-workflow
|
|
68
|
+
/plugin install iterative-dev-workflow@Repository
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### Codex
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
codex plugin marketplace add Arsxxi/Iterative-dev-workflow
|
|
75
|
+
codex plugin add iterative-dev-workflow@Repository
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### OpenCode
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
npm install -g @arsxxi/iterative-dev-workflow
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
Then add to your `opencode.json`:
|
|
85
|
+
|
|
86
|
+
```json
|
|
87
|
+
{ "plugin": ["@arsxxi/iterative-dev-workflow"] }
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Slash commands are auto-installed to `~/.config/opencode/commands/` on first run.
|
|
91
|
+
|
|
92
|
+
### Antigravity CLI
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
agy plugin install https://github.com/Arsxxi/Iterative-dev-workflow
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
## Commands
|
|
99
|
+
|
|
100
|
+
| # | Command | Description |
|
|
101
|
+
|---|---------|-------------|
|
|
102
|
+
| 0 | `/kickoff` | Start a new project — asks what to build, platform/stack, slug |
|
|
103
|
+
| 1 | `/phase-1` | Analyze: understand task, explore codebase, identify gaps |
|
|
104
|
+
| 2.1 | `/phase-2-step-1` | Solution Proposal: create minimum 5 designs |
|
|
105
|
+
| 2.2 | `/phase-2-step-2` | ATAM: assess trade-offs and sensitivity points |
|
|
106
|
+
| 2.3 | `/phase-2-step-3` | Quality Attribute: weighted scoring assessment |
|
|
107
|
+
| 2.4 | `/phase-2-step-4` | High-Fidelity Design: System Context Diagram (Mermaid.js) |
|
|
108
|
+
| 2.5 | `/phase-2-step-5` | User Journey: User Journey Diagram (Mermaid.js) |
|
|
109
|
+
| 3 | `/phase-3` | Implementation Plan: write comprehensive plan |
|
|
110
|
+
| 4 | `/phase-4` | Postmortem: reflect and improve |
|
|
111
|
+
| — | `/session-transcript` | Record verbatim conversation to project root as `aichat-<slug>.md` |
|
|
112
|
+
|
|
113
|
+
## Output Location
|
|
114
|
+
|
|
115
|
+
All phase outputs are written to `.workflow/<slug>/`:
|
|
116
|
+
|
|
117
|
+
```
|
|
118
|
+
.workflow/<slug>/
|
|
119
|
+
├── 00-context.md # platform, description, existing services
|
|
120
|
+
├── 01-analyze.md # Phase 1
|
|
121
|
+
├── 02-propose.md # Phase 2 Step 1
|
|
122
|
+
├── 02-atam.md # Phase 2 Step 2
|
|
123
|
+
├── 02-qa.md # Phase 2 Step 3
|
|
124
|
+
├── 02-hifi.md # Phase 2 Step 4 (System Context Diagram)
|
|
125
|
+
├── 02-journey.md # Phase 2 Step 5 (User Journey Diagram)
|
|
126
|
+
├── 03-implement.md # Phase 3
|
|
127
|
+
└── 04-postmortem.md # Phase 4
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
Session transcripts are saved directly to the **project root** as `aichat-<slug>.md` (or `aichat.md` if no slug provided).
|
|
131
|
+
|
|
132
|
+
## Hard Constraints
|
|
133
|
+
|
|
134
|
+
- **AVOID overengineering.** PREFER simple, low-complexity implementations.
|
|
135
|
+
- **AVOID jargon.** Use plain language that states actual intent.
|
|
136
|
+
- **Never skip phases.** Design must be approved before implementation begins.
|
|
137
|
+
- **Iterative, not waterfall.** If a problem surfaces in a later phase, circle back to fix it there.
|
|
138
|
+
|
|
139
|
+
## Workflow Flow
|
|
140
|
+
|
|
141
|
+
```
|
|
142
|
+
/kickoff
|
|
143
|
+
└── /phase-1
|
|
144
|
+
└── /phase-2-step-1
|
|
145
|
+
└── /phase-2-step-2
|
|
146
|
+
└── /phase-2-step-3 (may loop back to /phase-2-step-1)
|
|
147
|
+
└── /phase-2-step-4
|
|
148
|
+
└── /phase-2-step-5
|
|
149
|
+
└── /phase-3
|
|
150
|
+
└── /phase-4
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
## Development
|
|
154
|
+
|
|
155
|
+
The source of truth is `commands/*.md` (10 files) and `skills/workflow-methodology/SKILL.md`. After editing these, run:
|
|
156
|
+
|
|
157
|
+
```bash
|
|
158
|
+
bash scripts/sync-platforms.sh
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
This syncs to:
|
|
162
|
+
- `.opencode/commands/` — OpenCode command definitions
|
|
163
|
+
- `.agents/skills/` — Antigravity/Codex skill definitions
|
|
164
|
+
- `AGENTS.md` — cross-platform instruction file
|
|
165
|
+
|
|
166
|
+
## FAQ
|
|
167
|
+
|
|
168
|
+
**Does every project need all phases?**
|
|
169
|
+
|
|
170
|
+
No. The workflow is modular. Use only what the task needs — but don't skip backward. Each phase has a clear prerequisite chain.
|
|
171
|
+
|
|
172
|
+
**What if the design doesn't support implementation?**
|
|
173
|
+
|
|
174
|
+
Stop. Tell the user clearly. Circle back to Phase 2. Do not silently work around a design flaw in the plan.
|
|
175
|
+
|
|
176
|
+
**How do I choose a feature slug?**
|
|
177
|
+
|
|
178
|
+
Use a short, lowercase identifier with hyphens. Example: `user-auth`, `article-quality-widget`, `payment-flow`. The slug identifies the project folder in `.workflow/<slug>/`.
|
|
179
|
+
|
|
180
|
+
**What's the difference between Phase 2 Step 4 and Step 5?**
|
|
181
|
+
|
|
182
|
+
Step 4 creates a System Context Diagram — shows how the solution fits within the whole app. Step 5 creates a User Journey Diagram — shows how the user interacts with the system.
|
|
183
|
+
|
|
184
|
+
## License
|
|
185
|
+
|
|
186
|
+
[MIT](LICENSE)
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Kickoff"
|
|
3
|
+
argument-hint: [optional: feature-slug or description]
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## Step 0 - figure out what we're building (do this FIRST, before anything else)
|
|
7
|
+
|
|
8
|
+
Look at what was passed in: `$ARGUMENTS`
|
|
9
|
+
|
|
10
|
+
- If it already clearly states a feature slug, a real description of what to build, AND the
|
|
11
|
+
platform/stack (e.g. "React Native non-Expo", "Python backend service", "LLM agent pipeline"),
|
|
12
|
+
confirm your understanding back to me in one or two sentences and proceed to the section below.
|
|
13
|
+
- If any of those three are missing or vague, **stop and ask me**:
|
|
14
|
+
1. What are we building? (be as comprehensive as you want me to be - the more detail, the
|
|
15
|
+
better Phase 1 will be)
|
|
16
|
+
2. What platform/stack is this for? (e.g. mobile app - React Native/Expo/native, backend
|
|
17
|
+
service, LLM/agent pipeline, web frontend, CLI tool, etc. - this changes what Phase 1's
|
|
18
|
+
library/service analysis actually looks like)
|
|
19
|
+
3. What short slug should identify it? (used for the `.workflow/<slug>/` folder, e.g.
|
|
20
|
+
`article-quality-widget`)
|
|
21
|
+
|
|
22
|
+
Do not guess or invent a feature, and do not assume a default platform/stack (do not assume
|
|
23
|
+
React Native or anything else) to analyze. Do not proceed past this point until I've answered.
|
|
24
|
+
|
|
25
|
+
Also ask (can be part of the same question round): what services/infra already exist in this
|
|
26
|
+
project that Phase 1 should treat as "Existing Services" (e.g. a specific backend, database,
|
|
27
|
+
auth provider, third-party APIs already wired up) - versus what's clearly new and would count as
|
|
28
|
+
"Proposed Services". If I say I'm not sure or there's nothing existing yet, that's a valid
|
|
29
|
+
answer - don't invent a services list.
|
|
30
|
+
|
|
31
|
+
Once you know the platform/stack and existing services, use them consistently for the rest of
|
|
32
|
+
this workflow (Phase 1's library/package questions, Phase 2's architecture diagrams, etc. should
|
|
33
|
+
all be framed for this specific project, not a generic or assumed one).
|
|
34
|
+
|
|
35
|
+
## Step 1 - once we know what we're building
|
|
36
|
+
|
|
37
|
+
Here is the workflow we use for every feature, regardless of platform/stack:
|
|
38
|
+
|
|
39
|
+
- **Phase 1: Analyze** - requirements, libraries/packages, Existing vs. Proposed services, 5
|
|
40
|
+
candidate development paths, ATAM + SQALE, final timeline.
|
|
41
|
+
- **Phase 2: Design** - Solution Proposal (low-fidelity, divergent) -> ATAM -> Quality
|
|
42
|
+
Attribute Assessment (weighted scoring, may loop back to the proposal bucket) -> High-Fidelity
|
|
43
|
+
Design (System Context + User Flow diagrams in Mermaid.js).
|
|
44
|
+
- **Phase 3: Implement** - build it, following the High-Fidelity Design.
|
|
45
|
+
- **Phase 4: Post-Mortem** - retrospective.
|
|
46
|
+
|
|
47
|
+
This is an **iterative model, not waterfall**: if a problem surfaces in a later phase but
|
|
48
|
+
actually belongs to an earlier phase (e.g. an Implement-phase bug that's really a Design flaw),
|
|
49
|
+
we circle back to that earlier phase to fix it there rather than patching around it downstream.
|
|
50
|
+
|
|
51
|
+
I want you to do a deep, meticulous, extensive analysis of this workflow before we touch Phase 1:
|
|
52
|
+
|
|
53
|
+
1. Evaluate how it aligns with professional industry practice (e.g. where it maps to standard
|
|
54
|
+
models like Double Diamond, Set-Based Design, ATAM, SQALE - and where it deliberately departs
|
|
55
|
+
from them, and why that's reasonable for a project this size).
|
|
56
|
+
2. Flag any real gaps or risks in the workflow itself, applied to what we're building
|
|
57
|
+
specifically - not generic commentary.
|
|
58
|
+
3. Confirm you understand your role: you're my assistant through this, not an autopilot. After
|
|
59
|
+
each phase/step, you produce results and stop - I evaluate them and decide whether we move
|
|
60
|
+
on, adjust, or loop back. You never advance phases on your own.
|
|
61
|
+
|
|
62
|
+
## Step 2 - set up tracking
|
|
63
|
+
|
|
64
|
+
Once I've confirmed the analysis, create `.workflow/<slug>/` in this project (using the slug we
|
|
65
|
+
settled on in Step 0) and write `.workflow/<slug>/00-context.md` containing:
|
|
66
|
+
|
|
67
|
+
- Platform/stack
|
|
68
|
+
- What we're building (the description from Step 0)
|
|
69
|
+
- Existing Services (as I described them, or "none identified yet" if I said so)
|
|
70
|
+
|
|
71
|
+
Every later `/phase-*` command for this slug should read this file first and use it instead
|
|
72
|
+
of assuming or hardcoding a platform or services list.
|
|
73
|
+
|
|
74
|
+
## Hard constraints (apply for the entire workflow, every phase)
|
|
75
|
+
|
|
76
|
+
- AVOID overengineering. PREFER simple, low-complexity implementations. GOAL: high
|
|
77
|
+
maintainability.
|
|
78
|
+
- AVOID jargon when naming components/systems/functions - prefer plain language that states the
|
|
79
|
+
actual intent, so any developer can understand it without translation.
|
|
80
|
+
|
|
81
|
+
## Output
|
|
82
|
+
|
|
83
|
+
Give me your analysis of the workflow in chat (no need to write this one to a file - it's a
|
|
84
|
+
one-time discussion, not a phase deliverable). End by telling me you're ready for
|
|
85
|
+
`/phase-1` when I am.
|
|
86
|
+
|
|
87
|
+
## Trigger
|
|
88
|
+
```
|
|
89
|
+
$ARGUMENTS = "optional: feature-slug or description"
|
|
90
|
+
```
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
description = "Kickoff: introduce the 4-phase iterative workflow, ask what we're building, then analyze the workflow itself before starting Phase 1"
|
|
2
|
+
prompt = "Run the kickoff workflow. Step 0: figure out what we're building — ask about platform/stack, feature description, and slug. Step 1: analyze the workflow itself. Step 2: set up .workflow/<slug>/00-context.md. Use $ARGUMENTS as initial input. Reference: $ARGUMENTS"
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Phase 1: Analyze"
|
|
3
|
+
argument-hint: [feature-slug or description]
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Phase 1: Analyze
|
|
7
|
+
|
|
8
|
+
## Purpose
|
|
9
|
+
Understand the task deeply before writing any code.
|
|
10
|
+
|
|
11
|
+
## Steps
|
|
12
|
+
|
|
13
|
+
1. **Read the task** — understand what the user is asking for
|
|
14
|
+
2. **Explore the codebase** — understand existing patterns, structure, and constraints
|
|
15
|
+
3. **Identify gaps** — what information is missing? What needs clarification?
|
|
16
|
+
4. **Ask questions if needed** — use the ask-questions-if-underspecified skill when requirements are unclear
|
|
17
|
+
|
|
18
|
+
## Output
|
|
19
|
+
- A clear summary of what needs to be built
|
|
20
|
+
- Identified constraints and context
|
|
21
|
+
- List of open questions (if any)
|
|
22
|
+
|
|
23
|
+
## When to escalate
|
|
24
|
+
- Requirements are ambiguous or contradictory
|
|
25
|
+
- Task involves security-critical or irreversible changes
|
|
26
|
+
- Scope is too large for a single iteration
|
|
27
|
+
|
|
28
|
+
## Trigger
|
|
29
|
+
```
|
|
30
|
+
$ARGUMENTS = "feature-slug or description"
|
|
31
|
+
```
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
description = "Phase 1: Analyze — understand the task deeply before writing any code"
|
|
2
|
+
prompt = "Run Phase 1: Analyze. Read the task, explore the codebase, identify gaps, ask questions if needed. Output: summary of what needs to be built, constraints, open questions. Escalate if ambiguous, security-critical, or scope too large. Reference: $ARGUMENTS"
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Phase 2 Step 1: Solution Proposal"
|
|
3
|
+
argument-hint: [feature-slug or description]
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Phase 2 Step 1: Solution Proposal
|
|
7
|
+
|
|
8
|
+
## Purpose
|
|
9
|
+
Create a minimum of 5 designs that we can use to solve our problem, according to the previous instruction about this step.
|
|
10
|
+
|
|
11
|
+
## Steps
|
|
12
|
+
|
|
13
|
+
1. **Recall the previous instruction** about Step 1: Solution Proposal
|
|
14
|
+
2. **Analyze industry standard** — do a deep dive, extensive and meticulous analysis on how industry standard conducts this step
|
|
15
|
+
3. **Create minimum 5 designs** that we can use to solve our problem
|
|
16
|
+
4. **Proceed to execute Step 1**
|
|
17
|
+
|
|
18
|
+
## Output
|
|
19
|
+
- Analysis of how industry standard conducts this step
|
|
20
|
+
- Minimum 5 design candidates
|
|
21
|
+
|
|
22
|
+
## Trigger
|
|
23
|
+
```
|
|
24
|
+
$ARGUMENTS = "feature-slug or description"
|
|
25
|
+
```
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
description = "Phase 2 Step 1: Solution Proposal — create minimum 5 designs"
|
|
2
|
+
prompt = "Run Phase 2 Step 1: Solution Proposal Bucket. Recall the previous instruction, analyze industry standard, create minimum 5 designs. Output: analysis of industry standard + 5 design candidates. Reference: $ARGUMENTS"
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Phase 2 Step 2: ATAM"
|
|
3
|
+
argument-hint: [feature-slug or description]
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Phase 2 Step 2: ATAM
|
|
7
|
+
|
|
8
|
+
## Purpose
|
|
9
|
+
Assess each design using ATAM. Our goal is to identify trade-offs and sensitivity points on each design.
|
|
10
|
+
|
|
11
|
+
## Steps
|
|
12
|
+
|
|
13
|
+
1. **Check for the previous result** from the previous step. If it's empty or not generated due to certain reason, DO NOT PROCEED TO EXECUTE THIS STEP. Don't forget to remind the user if this happened.
|
|
14
|
+
2. **Analyze all of our designs** — do a deep dive, extensive and meticulous analysis on all of our designs
|
|
15
|
+
3. **Proceed to execute Step 2: ATAM**
|
|
16
|
+
|
|
17
|
+
## Output
|
|
18
|
+
- Trade-offs identified for each design
|
|
19
|
+
- Sensitivity points identified for each design
|
|
20
|
+
|
|
21
|
+
## Error handling
|
|
22
|
+
If any step contains an error regarding user prompts, INFORM THE USER and DO NOT CONTINUE.
|
|
23
|
+
|
|
24
|
+
## Trigger
|
|
25
|
+
```
|
|
26
|
+
$ARGUMENTS = "feature-slug or description"
|
|
27
|
+
```
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
description = "Phase 2 Step 2: ATAM — assess each design for trade-offs and sensitivity points"
|
|
2
|
+
prompt = "Run Phase 2 Step 2: ATAM. Check previous step result exists, then assess each design using ATAM. Identify trade-offs and sensitivity points for each design. Output: trade-offs + sensitivity points. Error: inform user and stop if previous step is empty. Reference: $ARGUMENTS"
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Phase 2 Step 3: Quality Attribute"
|
|
3
|
+
argument-hint: [feature-slug or description]
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Phase 2 Step 3: Quality Attribute
|
|
7
|
+
|
|
8
|
+
## Purpose
|
|
9
|
+
Assess the results from Step 2: ATAM using Weighted Scoring Assessment, against Quality Attributes designed specifically for this project.
|
|
10
|
+
|
|
11
|
+
## Steps
|
|
12
|
+
|
|
13
|
+
1. **Check for the previous result** from Step 2 (ATAM). If it's empty or not generated, DO NOT PROCEED TO EXECUTE THIS STEP — remind the user.
|
|
14
|
+
|
|
15
|
+
2. **Ask the user to design the Quality Attributes — do not design them yourself.** Present this to the user:
|
|
16
|
+
|
|
17
|
+
> You will need to design these Quality Attributes by yourself and assign each Attribute a
|
|
18
|
+
> Score Range. Base this design on the problem you need to solve, the project requirements,
|
|
19
|
+
> or any other relatable requirements (FR, NFR). The example below shows a project that takes
|
|
20
|
+
> Performance as the highest-priority Quality Attribute, and therefore gives Performance the
|
|
21
|
+
> highest score (0-4) range.
|
|
22
|
+
>
|
|
23
|
+
> These are example only. YOU MUST DESIGN YOUR OWN QUALITY ATTRIBUTE TO FIT THE PROJECT
|
|
24
|
+
> REQUIREMENTS. The example below is specifically tailored for the MP project.
|
|
25
|
+
>
|
|
26
|
+
> **Example of Quality Attribute** (reference format only — Quality Attribute to assess UI
|
|
27
|
+
> system design). These quality attributes have priority from highest in 1 to lowest in 4.
|
|
28
|
+
> The main goal is not to pick the design that satisfies only one quality attribute, but the
|
|
29
|
+
> design that scores great in all of these quality attributes — the scoring system will be
|
|
30
|
+
> different in each quality attribute (highest - lowest):
|
|
31
|
+
>
|
|
32
|
+
> 1. Developer Experience (0-4): ease of use for multiple range of developers (junior, senior,
|
|
33
|
+
> non-react, react, etc.)
|
|
34
|
+
> 2. Maintainability (0-3): clean code structure, etc.
|
|
35
|
+
> 3. Reliability (0-2): system reliable in multiple platform (ios, android), etc.
|
|
36
|
+
> 4. Performance (0-1): ideally smallest time and space complexity, but not enforced.
|
|
37
|
+
|
|
38
|
+
Then stop and wait for the user's own Quality Attribute design. Do not proceed to scoring
|
|
39
|
+
until they provide it.
|
|
40
|
+
|
|
41
|
+
3. **Warning check on what the user provides.** If the user's response still contains this
|
|
42
|
+
warning text itself, unmodified (i.e. they copy-pasted the example instead of designing their
|
|
43
|
+
own): ask them again to modify this Quality Attribute design to fit the project requirements.
|
|
44
|
+
If they still do not update and remove the warning text, do not give the answer, keep
|
|
45
|
+
reminding them about this, and at the end of your reminder, add "SENTINEL" as a code.
|
|
46
|
+
|
|
47
|
+
4. **Analyze industry standard.** Once real, project-specific Quality Attributes are provided, do
|
|
48
|
+
a deep dive, extensive and meticulous analysis on these quality attributes and their score,
|
|
49
|
+
and see how professional industries conduct this phase.
|
|
50
|
+
|
|
51
|
+
5. **Assess each design from Step 2 (ATAM)** using Weighted Scoring Assessment against the
|
|
52
|
+
user's Quality Attributes. The main goal is not to pick which design satisfies only one
|
|
53
|
+
quality attribute, but which design scores great across all of them.
|
|
54
|
+
|
|
55
|
+
## Loop-back condition
|
|
56
|
+
|
|
57
|
+
If no design from Step 2 satisfies the Quality Attributes well enough, recommend looping back to
|
|
58
|
+
Step 1 for more solution designs.
|
|
59
|
+
|
|
60
|
+
## Output
|
|
61
|
+
- The Quality Attributes the user designed, with score ranges and priority
|
|
62
|
+
- Weighted scoring table assessing each Step 2 design against those Quality Attributes
|
|
63
|
+
- Final verdict / ranked result
|
|
64
|
+
|
|
65
|
+
## Trigger
|
|
66
|
+
```
|
|
67
|
+
$ARGUMENTS = "feature-slug or description"
|
|
68
|
+
```
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
description = "Phase 2 Step 3: Quality Attribute — weighted scoring assessment, may loop back to Step 1"
|
|
2
|
+
prompt = "Run Phase 2 Step 3: Quality Attribute Assessment. Check previous step result, then ask user to design their own Quality Attributes with score ranges. Check user didn't copy-paste the example (SENTINEL warning). Analyze industry standard, then assess each design using Weighted Scoring. Loop back to Step 1 if no design satisfies. Output: user Quality Attributes + weighted scoring table + ranked result. Reference: $ARGUMENTS"
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Phase 2 Step 4: High-Fidelity Design"
|
|
3
|
+
argument-hint: [feature-slug or description]
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Phase 2 Step 4: High-Fidelity Design
|
|
7
|
+
|
|
8
|
+
## Purpose
|
|
9
|
+
Create High-Level Visualizations for the Component Architecture of the chosen design, using Mermaid.js syntax.
|
|
10
|
+
|
|
11
|
+
## Steps
|
|
12
|
+
|
|
13
|
+
1. **Check for the previous result** from Step 3 (Quality Attribute). If it's empty or not generated, DO NOT PROCEED TO EXECUTE THIS STEP — remind the user.
|
|
14
|
+
|
|
15
|
+
2. **Remind the user to double-check Step 3's result before proceeding.** Present this to the user:
|
|
16
|
+
|
|
17
|
+
> Step 3 gave you the chosen design according to the Quality Attributes you designed
|
|
18
|
+
> previously. Make sure to double-check the results from Step 3 and do your own assessment of
|
|
19
|
+
> the results given by the AI agent in Step 3. Make sure you select the correct design, not
|
|
20
|
+
> just bias from the AI's results.
|
|
21
|
+
|
|
22
|
+
3. **Ask the user to explain their chosen design.** Present this to the user:
|
|
23
|
+
|
|
24
|
+
> Briefly explain the design you've selected from the previous phase, and explain from your
|
|
25
|
+
> opinion why you selected that design. Or if you have your own thoughts/modification, let the
|
|
26
|
+
> AI agent know here.
|
|
27
|
+
|
|
28
|
+
Then stop and wait for the user's explanation. Do not proceed to the analysis/diagram below
|
|
29
|
+
until they've explained their chosen design.
|
|
30
|
+
|
|
31
|
+
4. **Analyze the chosen design.** Once the user has explained their chosen design, do a deep
|
|
32
|
+
dive and meticulous analysis on that chosen design.
|
|
33
|
+
|
|
34
|
+
5. **Create the System Context Diagram.** Using Mermaid.js syntax, create a System Context
|
|
35
|
+
Diagram that defines the boundaries of the current solution (feature, system, etc.) we are
|
|
36
|
+
working on, and shows how the design sits within the whole app.
|
|
37
|
+
|
|
38
|
+
Once this diagram is done, stop. The User Journey diagram is a separate step -
|
|
39
|
+
`/phase-2-step-5` - run after you've reviewed this one.
|
|
40
|
+
|
|
41
|
+
## Hard constraints
|
|
42
|
+
|
|
43
|
+
- AVOID overengineering in the architecture itself — the diagrams should reflect a simple,
|
|
44
|
+
maintainable structure.
|
|
45
|
+
- Name every box/component in the diagrams using plain-language intent, not jargon.
|
|
46
|
+
|
|
47
|
+
## Output
|
|
48
|
+
- The user's explanation of their chosen design (and any modifications)
|
|
49
|
+
- Analysis of the chosen design
|
|
50
|
+
- System Context Diagram (Mermaid.js)
|
|
51
|
+
|
|
52
|
+
## Trigger
|
|
53
|
+
```
|
|
54
|
+
$ARGUMENTS = "feature-slug or description"
|
|
55
|
+
```
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
description = "Phase 2 Step 4: High-Fidelity Design — System Context Diagram in Mermaid.js"
|
|
2
|
+
prompt = "Run Phase 2 Step 4: High-Fidelity Design. Check previous step result. Ask user to double-check Step 3 result. Ask user to explain their chosen design. Analyze the chosen design. Create System Context Diagram using Mermaid.js. Stop when done — User Journey is separate step (/phase-2-step-5). AVOID overengineering. Output: user explanation + analysis + System Context Diagram. Reference: $ARGUMENTS"
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Phase 2 Step 5: User Journey"
|
|
3
|
+
argument-hint: [feature-slug or description]
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Phase 2 Step 5: User Journey
|
|
7
|
+
|
|
8
|
+
## Purpose
|
|
9
|
+
Create a User Journey Diagram using Mermaid.js syntax for the chosen design from Step 4 (High-Fidelity Design).
|
|
10
|
+
|
|
11
|
+
## Steps
|
|
12
|
+
|
|
13
|
+
1. **Check for the previous result** from Step 4 (High-Fidelity Design). If it's empty or not generated, DO NOT PROCEED — remind the user.
|
|
14
|
+
2. **Create the User Journey Diagram** using Mermaid.js syntax, mapping the user's interaction flow through the system.
|
|
15
|
+
|
|
16
|
+
## Output
|
|
17
|
+
- User Journey Diagram (Mermaid.js)
|
|
18
|
+
|
|
19
|
+
## Trigger
|
|
20
|
+
```
|
|
21
|
+
$ARGUMENTS = "feature-slug or description"
|
|
22
|
+
```
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
description = "Phase 2 Step 5: User Journey — User Journey Diagram in Mermaid.js"
|
|
2
|
+
prompt = "Run Phase 2 Step 5: User Journey Diagram. Check previous step result exists. Create User Journey Diagram using Mermaid.js mapping user's interaction flow. Output: User Journey Diagram. Reference: $ARGUMENTS"
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Phase 3: Implementation Plan"
|
|
3
|
+
argument-hint: [feature-slug or description]
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Phase 3: Implementation Plan
|
|
7
|
+
|
|
8
|
+
## Purpose
|
|
9
|
+
Write a comprehensive implementation plan based on the proposed plan and extensive architecture and design from Phase 1 and Phase 2.
|
|
10
|
+
|
|
11
|
+
## Steps
|
|
12
|
+
|
|
13
|
+
1. **Check for the previous result** from the previous step. If it's empty or not generated due to certain reason, then DO NOT PROCEED TO EXECUTE THIS STEP. Don't forget to remind the user if this happened.
|
|
14
|
+
2. **Write a comprehensive implementation plan** based on the proposed plan (Phase 1: Analyze) and extensive architecture and design (Phase 2: Design - the chosen design, ATAM trade-offs, Quality Attribute results, System Context Diagram, and User Journey Diagram).
|
|
15
|
+
|
|
16
|
+
## Constraints
|
|
17
|
+
|
|
18
|
+
AVOID overengineering, PREFER simple, low-complexity implementations with the GOAL of high maintainability, AVOID jargons when naming function/methods/class/components/system, instead PRIORITIZE using layman's terms or prefer naming with the actual intentions of the code, the GOAL is ease of developer understanding and maintainability.
|
|
19
|
+
|
|
20
|
+
## Iteration rule
|
|
21
|
+
|
|
22
|
+
If, while writing the implementation plan, you find a problem that is actually a Design problem
|
|
23
|
+
(not an implementation detail) - e.g. the architecture from Phase 2 doesn't actually support
|
|
24
|
+
something needed - STOP and tell the user clearly, and recommend circling back to Phase 2. Do
|
|
25
|
+
not silently work around a design flaw in the plan.
|
|
26
|
+
|
|
27
|
+
## Output
|
|
28
|
+
- A comprehensive implementation plan, written to `.workflow/<slug>/03-implement.md`
|
|
29
|
+
|
|
30
|
+
## Trigger
|
|
31
|
+
```
|
|
32
|
+
$ARGUMENTS = "feature-slug or description"
|
|
33
|
+
```
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
description = "Phase 3: Implementation Plan — write comprehensive implementation plan based on Phase 1 and Phase 2"
|
|
2
|
+
prompt = "Run Phase 3: Implementation Plan. Check previous step result exists. Write comprehensive implementation plan based on Phase 1 (Analyze) and Phase 2 (Design: chosen design, ATAM, Quality Attribute, System Context Diagram, User Journey Diagram). AVOID overengineering — prefer simple, low-complexity, high maintainability. AVOID jargon in naming. Iteration rule: if design problem found, STOP and recommend circling back to Phase 2. Output: plan written to .workflow/<slug>/03-implement.md. Reference: $ARGUMENTS"
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Phase 4: Postmortem"
|
|
3
|
+
argument-hint: [feature-slug or description]
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Phase 4: Postmortem
|
|
7
|
+
|
|
8
|
+
## Purpose
|
|
9
|
+
Reflect on the iteration to improve the next one.
|
|
10
|
+
|
|
11
|
+
## Prerequisites
|
|
12
|
+
- Phase 3 (Implement) is complete
|
|
13
|
+
|
|
14
|
+
## Steps
|
|
15
|
+
|
|
16
|
+
1. **What went well?** — capture successful patterns
|
|
17
|
+
2. **What could be better?** — identify friction and slowdowns
|
|
18
|
+
3. **What will we do differently?** — concrete improvements for next iteration
|
|
19
|
+
4. **Update workflow** — if a process change is needed, update the relevant command files
|
|
20
|
+
|
|
21
|
+
## Output
|
|
22
|
+
- Postmortem document
|
|
23
|
+
- Action items for next iteration
|
|
24
|
+
- Updated workflow documentation (if needed)
|
|
25
|
+
|
|
26
|
+
## Trigger
|
|
27
|
+
```
|
|
28
|
+
$ARGUMENTS = "feature-slug or description"
|
|
29
|
+
```
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
description = "Phase 4: Postmortem — reflect on the iteration to improve the next one"
|
|
2
|
+
prompt = "Run Phase 4: Postmortem. Prerequisites: Phase 3 complete. Capture what went well, what could be better, what will we do differently. Update workflow command files if needed. Output: postmortem document + action items. Reference: $ARGUMENTS"
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Session Transcript"
|
|
3
|
+
argument-hint: [optional: feature-slug]
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Session Transcript
|
|
7
|
+
|
|
8
|
+
## Purpose
|
|
9
|
+
Record this session's conversation as-is, in chronological order (who said what), as a standalone factual record — separate from the workflow's phase deliverables (which only contain final results, not the discussion that led to them).
|
|
10
|
+
|
|
11
|
+
## Steps
|
|
12
|
+
|
|
13
|
+
1. **Determine the feature slug.** Use `$ARGUMENTS` if provided. If not provided, use the project root directory name or "session" as fallback.
|
|
14
|
+
|
|
15
|
+
2. **Scan the project root.** Do NOT create any new folders. Determine the project root directory (where `.git/` or `package.json` or similar marker exists). Save the transcript directly in the project root.
|
|
16
|
+
|
|
17
|
+
3. **Reconstruct this session's conversation in chronological order**, turn by turn, labeled by
|
|
18
|
+
who said it (`User` / `Agent`). Use the actual wording from the conversation - do not
|
|
19
|
+
summarize, paraphrase, condense, or skip turns.
|
|
20
|
+
|
|
21
|
+
4. **Be honest about context limits.** You can only transcribe what's actually present in your
|
|
22
|
+
current context window for this session. If earlier turns were compacted, truncated, or are
|
|
23
|
+
otherwise not available to you, say so explicitly at the top of the file (e.g. "Transcript
|
|
24
|
+
starts partway through the session - earlier turns were not available in context") instead of
|
|
25
|
+
inventing or guessing what was said.
|
|
26
|
+
|
|
27
|
+
5. **Check for an existing transcript file.** If `aichat-<slug>.md` already exists from a
|
|
28
|
+
previous run, do not overwrite it - append this session's transcript below the existing
|
|
29
|
+
content, under a new dated section, so multiple sessions accumulate in one file.
|
|
30
|
+
|
|
31
|
+
## Output format
|
|
32
|
+
|
|
33
|
+
```markdown
|
|
34
|
+
# Session Transcript
|
|
35
|
+
|
|
36
|
+
## Project: <project-name>
|
|
37
|
+
|
|
38
|
+
## Session: <date/time if known, otherwise "session N">
|
|
39
|
+
|
|
40
|
+
### User
|
|
41
|
+
<verbatim text of the turn>
|
|
42
|
+
|
|
43
|
+
### Agent
|
|
44
|
+
<verbatim text of the turn>
|
|
45
|
+
|
|
46
|
+
### User
|
|
47
|
+
<verbatim text of the turn>
|
|
48
|
+
|
|
49
|
+
...
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Write the result to `aichat-<slug>.md` in the project root. If no slug was provided, use `aichat.md`.
|
|
53
|
+
|
|
54
|
+
## Trigger
|
|
55
|
+
```
|
|
56
|
+
$ARGUMENTS = "optional: feature-slug"
|
|
57
|
+
```
|