@arsxxi/iterative-dev-workflow 1.0.0 → 1.0.2

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.
@@ -1,464 +1,563 @@
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
- ```
91
-
92
- ---
93
-
94
- ---
95
- description: "Phase 1: Analyze"
96
- argument-hint: [feature-slug or description]
97
- ---
98
-
99
- # Phase 1: Analyze
100
-
101
- ## Purpose
102
- Understand the task deeply before writing any code.
103
-
104
- ## Steps
105
-
106
- 1. **Read the task** understand what the user is asking for
107
- 2. **Explore the codebase** understand existing patterns, structure, and constraints
108
- 3. **Identify gaps** what information is missing? What needs clarification?
109
- 4. **Ask questions if needed** — use the ask-questions-if-underspecified skill when requirements are unclear
110
-
111
- ## Output
112
- - A clear summary of what needs to be built
113
- - Identified constraints and context
114
- - List of open questions (if any)
115
-
116
- ## When to escalate
117
- - Requirements are ambiguous or contradictory
118
- - Task involves security-critical or irreversible changes
119
- - Scope is too large for a single iteration
120
-
121
- ## Trigger
122
- ```
123
- $ARGUMENTS = "feature-slug or description"
124
- ```
125
-
126
- ---
127
-
128
- ---
129
- description: "Phase 2 Step 1: Solution Proposal"
130
- argument-hint: [feature-slug or description]
131
- ---
132
-
133
- # Phase 2 Step 1: Solution Proposal
134
-
135
- ## Purpose
136
- Create a minimum of 5 designs that we can use to solve our problem, according to the previous instruction about this step.
137
-
138
- ## Steps
139
-
140
- 1. **Recall the previous instruction** about Step 1: Solution Proposal
141
- 2. **Analyze industry standard** — do a deep dive, extensive and meticulous analysis on how industry standard conducts this step
142
- 3. **Create minimum 5 designs** that we can use to solve our problem
143
- 4. **Proceed to execute Step 1**
144
-
145
- ## Output
146
- - Analysis of how industry standard conducts this step
147
- - Minimum 5 design candidates
148
-
149
- ## Trigger
150
- ```
151
- $ARGUMENTS = "feature-slug or description"
152
- ```
153
-
154
- ---
155
-
156
- ---
157
- description: "Phase 2 Step 2: ATAM"
158
- argument-hint: [feature-slug or description]
159
- ---
160
-
161
- # Phase 2 Step 2: ATAM
162
-
163
- ## Purpose
164
- Assess each design using ATAM. Our goal is to identify trade-offs and sensitivity points on each design.
165
-
166
- ## Steps
167
-
168
- 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.
169
- 2. **Analyze all of our designs** — do a deep dive, extensive and meticulous analysis on all of our designs
170
- 3. **Proceed to execute Step 2: ATAM**
171
-
172
- ## Output
173
- - Trade-offs identified for each design
174
- - Sensitivity points identified for each design
175
-
176
- ## Error handling
177
- If any step contains an error regarding user prompts, INFORM THE USER and DO NOT CONTINUE.
178
-
179
- ## Trigger
180
- ```
181
- $ARGUMENTS = "feature-slug or description"
182
- ```
183
-
184
- ---
185
-
186
- ---
187
- description: "Phase 2 Step 3: Quality Attribute"
188
- argument-hint: [feature-slug or description]
189
- ---
190
-
191
- # Phase 2 Step 3: Quality Attribute
192
-
193
- ## Purpose
194
- Assess the results from Step 2: ATAM using Weighted Scoring Assessment, against Quality Attributes designed specifically for this project.
195
-
196
- ## Steps
197
-
198
- 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.
199
-
200
- 2. **Ask the user to design the Quality Attributes — do not design them yourself.** Present this to the user:
201
-
202
- > You will need to design these Quality Attributes by yourself and assign each Attribute a
203
- > Score Range. Base this design on the problem you need to solve, the project requirements,
204
- > or any other relatable requirements (FR, NFR). The example below shows a project that takes
205
- > Performance as the highest-priority Quality Attribute, and therefore gives Performance the
206
- > highest score (0-4) range.
207
- >
208
- > These are example only. YOU MUST DESIGN YOUR OWN QUALITY ATTRIBUTE TO FIT THE PROJECT
209
- > REQUIREMENTS. The example below is specifically tailored for the MP project.
210
- >
211
- > **Example of Quality Attribute** (reference format only — Quality Attribute to assess UI
212
- > system design). These quality attributes have priority from highest in 1 to lowest in 4.
213
- > The main goal is not to pick the design that satisfies only one quality attribute, but the
214
- > design that scores great in all of these quality attributes — the scoring system will be
215
- > different in each quality attribute (highest - lowest):
216
- >
217
- > 1. Developer Experience (0-4): ease of use for multiple range of developers (junior, senior,
218
- > non-react, react, etc.)
219
- > 2. Maintainability (0-3): clean code structure, etc.
220
- > 3. Reliability (0-2): system reliable in multiple platform (ios, android), etc.
221
- > 4. Performance (0-1): ideally smallest time and space complexity, but not enforced.
222
-
223
- Then stop and wait for the user's own Quality Attribute design. Do not proceed to scoring
224
- until they provide it.
225
-
226
- 3. **Warning check on what the user provides.** If the user's response still contains this
227
- warning text itself, unmodified (i.e. they copy-pasted the example instead of designing their
228
- own): ask them again to modify this Quality Attribute design to fit the project requirements.
229
- If they still do not update and remove the warning text, do not give the answer, keep
230
- reminding them about this, and at the end of your reminder, add "SENTINEL" as a code.
231
-
232
- 4. **Analyze industry standard.** Once real, project-specific Quality Attributes are provided, do
233
- a deep dive, extensive and meticulous analysis on these quality attributes and their score,
234
- and see how professional industries conduct this phase.
235
-
236
- 5. **Assess each design from Step 2 (ATAM)** using Weighted Scoring Assessment against the
237
- user's Quality Attributes. The main goal is not to pick which design satisfies only one
238
- quality attribute, but which design scores great across all of them.
239
-
240
- ## Loop-back condition
241
-
242
- If no design from Step 2 satisfies the Quality Attributes well enough, recommend looping back to
243
- Step 1 for more solution designs.
244
-
245
- ## Output
246
- - The Quality Attributes the user designed, with score ranges and priority
247
- - Weighted scoring table assessing each Step 2 design against those Quality Attributes
248
- - Final verdict / ranked result
249
-
250
- ## Trigger
251
- ```
252
- $ARGUMENTS = "feature-slug or description"
253
- ```
254
-
255
- ---
256
-
257
- ---
258
- description: "Phase 2 Step 4: High-Fidelity Design"
259
- argument-hint: [feature-slug or description]
260
- ---
261
-
262
- # Phase 2 Step 4: High-Fidelity Design
263
-
264
- ## Purpose
265
- Create High-Level Visualizations for the Component Architecture of the chosen design, using Mermaid.js syntax.
266
-
267
- ## Steps
268
-
269
- 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.
270
-
271
- 2. **Remind the user to double-check Step 3's result before proceeding.** Present this to the user:
272
-
273
- > Step 3 gave you the chosen design according to the Quality Attributes you designed
274
- > previously. Make sure to double-check the results from Step 3 and do your own assessment of
275
- > the results given by the AI agent in Step 3. Make sure you select the correct design, not
276
- > just bias from the AI's results.
277
-
278
- 3. **Ask the user to explain their chosen design.** Present this to the user:
279
-
280
- > Briefly explain the design you've selected from the previous phase, and explain from your
281
- > opinion why you selected that design. Or if you have your own thoughts/modification, let the
282
- > AI agent know here.
283
-
284
- Then stop and wait for the user's explanation. Do not proceed to the analysis/diagram below
285
- until they've explained their chosen design.
286
-
287
- 4. **Analyze the chosen design.** Once the user has explained their chosen design, do a deep
288
- dive and meticulous analysis on that chosen design.
289
-
290
- 5. **Create the System Context Diagram.** Using Mermaid.js syntax, create a System Context
291
- Diagram that defines the boundaries of the current solution (feature, system, etc.) we are
292
- working on, and shows how the design sits within the whole app.
293
-
294
- Once this diagram is done, stop. The User Journey diagram is a separate step -
295
- `/phase-2-step-5` - run after you've reviewed this one.
296
-
297
- ## Hard constraints
298
-
299
- - AVOID overengineering in the architecture itself — the diagrams should reflect a simple,
300
- maintainable structure.
301
- - Name every box/component in the diagrams using plain-language intent, not jargon.
302
-
303
- ## Output
304
- - The user's explanation of their chosen design (and any modifications)
305
- - Analysis of the chosen design
306
- - System Context Diagram (Mermaid.js)
307
-
308
- ## Trigger
309
- ```
310
- $ARGUMENTS = "feature-slug or description"
311
- ```
312
-
313
- ---
314
-
315
- ---
316
- description: "Phase 2 Step 5: User Journey"
317
- argument-hint: [feature-slug or description]
318
- ---
319
-
320
- # Phase 2 Step 5: User Journey
321
-
322
- ## Purpose
323
- Create a User Journey Diagram using Mermaid.js syntax for the chosen design from Step 4 (High-Fidelity Design).
324
-
325
- ## Steps
326
-
327
- 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.
328
- 2. **Create the User Journey Diagram** using Mermaid.js syntax, mapping the user's interaction flow through the system.
329
-
330
- ## Output
331
- - User Journey Diagram (Mermaid.js)
332
-
333
- ## Trigger
334
- ```
335
- $ARGUMENTS = "feature-slug or description"
336
- ```
337
-
338
- ---
339
-
340
- ---
341
- description: "Phase 3: Implementation Plan"
342
- argument-hint: [feature-slug or description]
343
- ---
344
-
345
- # Phase 3: Implementation Plan
346
-
347
- ## Purpose
348
- Write a comprehensive implementation plan based on the proposed plan and extensive architecture and design from Phase 1 and Phase 2.
349
-
350
- ## Steps
351
-
352
- 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.
353
- 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).
354
-
355
- ## Constraints
356
-
357
- 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.
358
-
359
- ## Iteration rule
360
-
361
- If, while writing the implementation plan, you find a problem that is actually a Design problem
362
- (not an implementation detail) - e.g. the architecture from Phase 2 doesn't actually support
363
- something needed - STOP and tell the user clearly, and recommend circling back to Phase 2. Do
364
- not silently work around a design flaw in the plan.
365
-
366
- ## Output
367
- - A comprehensive implementation plan, written to `.workflow/<slug>/03-implement.md`
368
-
369
- ## Trigger
370
- ```
371
- $ARGUMENTS = "feature-slug or description"
372
- ```
373
-
374
- ---
375
-
376
- ---
377
- description: "Phase 4: Postmortem"
378
- argument-hint: [feature-slug or description]
379
- ---
380
-
381
- # Phase 4: Postmortem
382
-
383
- ## Purpose
384
- Reflect on the iteration to improve the next one.
385
-
386
- ## Prerequisites
387
- - Phase 3 (Implement) is complete
388
-
389
- ## Steps
390
-
391
- 1. **What went well?** — capture successful patterns
392
- 2. **What could be better?** — identify friction and slowdowns
393
- 3. **What will we do differently?** concrete improvements for next iteration
394
- 4. **Update workflow** if a process change is needed, update the relevant command files
395
-
396
- ## Output
397
- - Postmortem document
398
- - Action items for next iteration
399
- - Updated workflow documentation (if needed)
400
-
401
- ## Trigger
402
- ```
403
- $ARGUMENTS = "feature-slug or description"
404
- ```
405
-
406
- ---
407
-
408
- ---
409
- description: "Session Transcript"
410
- argument-hint: [optional: feature-slug]
411
- ---
412
-
413
- # Session Transcript
414
-
415
- ## Purpose
416
- 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).
417
-
418
- ## Steps
419
-
420
- 1. **Determine the feature slug.** Use `$ARGUMENTS` if provided. If not provided, use the project root directory name or "session" as fallback.
421
-
422
- 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.
423
-
424
- 3. **Reconstruct this session's conversation in chronological order**, turn by turn, labeled by
425
- who said it (`User` / `Agent`). Use the actual wording from the conversation - do not
426
- summarize, paraphrase, condense, or skip turns.
427
-
428
- 4. **Be honest about context limits.** You can only transcribe what's actually present in your
429
- current context window for this session. If earlier turns were compacted, truncated, or are
430
- otherwise not available to you, say so explicitly at the top of the file (e.g. "Transcript
431
- starts partway through the session - earlier turns were not available in context") instead of
432
- inventing or guessing what was said.
433
-
434
- 5. **Check for an existing transcript file.** If `aichat-<slug>.md` already exists from a
435
- previous run, do not overwrite it - append this session's transcript below the existing
436
- content, under a new dated section, so multiple sessions accumulate in one file.
437
-
438
- ## Output format
439
-
440
- ```markdown
441
- # Session Transcript
442
-
443
- ## Project: <project-name>
444
-
445
- ## Session: <date/time if known, otherwise "session N">
446
-
447
- ### User
448
- <verbatim text of the turn>
449
-
450
- ### Agent
451
- <verbatim text of the turn>
452
-
453
- ### User
454
- <verbatim text of the turn>
455
-
456
- ...
457
- ```
458
-
459
- Write the result to `aichat-<slug>.md` in the project root. If no slug was provided, use `aichat.md`.
460
-
461
- ## Trigger
462
- ```
463
- $ARGUMENTS = "optional: feature-slug"
464
- ```
1
+ ---
2
+ description: "Kickoff"
3
+ argument-hint: [optional: project name and what we're building]
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 project name, 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 project name 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 project name
65
+ we 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 project 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: project name and what we're building"
90
+ ```
91
+ ---
92
+
93
+ ---
94
+ description: "Phase 1: Analyze"
95
+ argument-hint: [project name]
96
+ ---
97
+
98
+ ## Step 0 — find which project this is for
99
+
100
+ Before anything else, figure out which project this command applies to:
101
+
102
+ 1. If you were given a project name after the slash (e.g. `/phase-1 my-project`), use it.
103
+ 2. Otherwise, look at the subfolders under `.workflow/`:
104
+ - Exactly one folder → use it. Tell the user which project you picked (e.g. "Working on
105
+ `my-project`"), so it's never a silent guess.
106
+ - Two or more folders ask the user once which project this is for. To make the question
107
+ useful, show the first line of each project's `00-context.md`, not just the folder name.
108
+ - No folders stop and tell the user to run `/kickoff` first. Don't proceed.
109
+
110
+ # Phase 1: Analyze
111
+
112
+ ## Purpose
113
+ Understand the task deeply before writing any code.
114
+
115
+ ## Steps
116
+
117
+ 1. **Read the task** understand what the user is asking for
118
+ 2. **Explore the codebase** understand existing patterns, structure, and constraints
119
+ 3. **Identify gaps** what information is missing? What needs clarification?
120
+ 4. **Ask questions if needed** — use the ask-questions-if-underspecified skill when requirements are unclear
121
+
122
+ ## Output
123
+ - A clear summary of what needs to be built
124
+ - Identified constraints and context
125
+ - List of open questions (if any)
126
+
127
+ ## When to escalate
128
+ - Requirements are ambiguous or contradictory
129
+ - Task involves security-critical or irreversible changes
130
+ - Scope is too large for a single iteration
131
+
132
+ ## Trigger
133
+ ```
134
+ $ARGUMENTS = "project name"
135
+ ```
136
+ ---
137
+
138
+ ---
139
+ description: "Phase 2 Step 1: Solution Proposal"
140
+ argument-hint: [project name]
141
+ ---
142
+
143
+ ## Step 0 find which project this is for
144
+
145
+ Before anything else, figure out which project this command applies to:
146
+
147
+ 1. If you were given a project name after the slash (e.g. `/phase-2-step-1 my-project`), use it.
148
+ 2. Otherwise, look at the subfolders under `.workflow/`:
149
+ - Exactly one folder → use it. Tell the user which project you picked (e.g. "Working on
150
+ `my-project`"), so it's never a silent guess.
151
+ - Two or more folders → ask the user once which project this is for. To make the question
152
+ useful, show the first line of each project's `00-context.md`, not just the folder name.
153
+ - No folders → stop and tell the user to run `/kickoff` first. Don't proceed.
154
+
155
+ # Phase 2 Step 1: Solution Proposal
156
+
157
+ ## Purpose
158
+ Create a minimum of 5 designs that we can use to solve our problem, according to the previous instruction about this step.
159
+
160
+ ## Steps
161
+
162
+ 1. **Recall the previous instruction** about Step 1: Solution Proposal
163
+ 2. **Analyze industry standard** — do a deep dive, extensive and meticulous analysis on how industry standard conducts this step
164
+ 3. **Create minimum 5 designs** that we can use to solve our problem
165
+ 4. **Proceed to execute Step 1**
166
+
167
+ ## Output
168
+ - Analysis of how industry standard conducts this step
169
+ - Minimum 5 design candidates
170
+
171
+ ## Trigger
172
+ ```
173
+ $ARGUMENTS = "project name"
174
+ ```
175
+ ---
176
+
177
+ ---
178
+ description: "Phase 2 Step 2: ATAM"
179
+ argument-hint: [project name]
180
+ ---
181
+
182
+ ## Step 0 — find which project this is for
183
+
184
+ Before anything else, figure out which project this command applies to:
185
+
186
+ 1. If you were given a project name after the slash (e.g. `/phase-2-step-2 my-project`), use it.
187
+ 2. Otherwise, look at the subfolders under `.workflow/`:
188
+ - Exactly one folder → use it. Tell the user which project you picked (e.g. "Working on
189
+ `my-project`"), so it's never a silent guess.
190
+ - Two or more folders → ask the user once which project this is for. To make the question
191
+ useful, show the first line of each project's `00-context.md`, not just the folder name.
192
+ - No folders → stop and tell the user to run `/kickoff` first. Don't proceed.
193
+
194
+ # Phase 2 Step 2: ATAM
195
+
196
+ ## Purpose
197
+ Assess each design using ATAM. Our goal is to identify trade-offs and sensitivity points on each design.
198
+
199
+ ## Steps
200
+
201
+ 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.
202
+ 2. **Analyze all of our designs** do a deep dive, extensive and meticulous analysis on all of our designs
203
+ 3. **Proceed to execute Step 2: ATAM**
204
+
205
+ ## Output
206
+ - Trade-offs identified for each design
207
+ - Sensitivity points identified for each design
208
+
209
+ ## Error handling
210
+ If any step contains an error regarding user prompts, INFORM THE USER and DO NOT CONTINUE.
211
+
212
+ ## Trigger
213
+ ```
214
+ $ARGUMENTS = "project name"
215
+ ```
216
+ ---
217
+
218
+ ---
219
+ description: "Phase 2 Step 3: Quality Attribute"
220
+ argument-hint: [project name]
221
+ ---
222
+
223
+ ## Step 0 find which project this is for
224
+
225
+ Before anything else, figure out which project this command applies to:
226
+
227
+ 1. If you were given a project name after the slash (e.g. `/phase-2-step-3 my-project`), use it.
228
+ 2. Otherwise, look at the subfolders under `.workflow/`:
229
+ - Exactly one folder use it. Tell the user which project you picked (e.g. "Working on
230
+ `my-project`"), so it's never a silent guess.
231
+ - Two or more folders → ask the user once which project this is for. To make the question
232
+ useful, show the first line of each project's `00-context.md`, not just the folder name.
233
+ - No folders stop and tell the user to run `/kickoff` first. Don't proceed.
234
+
235
+ # Phase 2 Step 3: Quality Attribute
236
+
237
+ ## Purpose
238
+ Assess the results from Step 2: ATAM using Weighted Scoring Assessment, against Quality Attributes designed specifically for this project.
239
+
240
+ ## Steps
241
+
242
+ 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.
243
+
244
+ 2. **Ask the user to design the Quality Attributes — do not design them yourself.** Present this to the user:
245
+
246
+ > You will need to design these Quality Attributes by yourself and assign each Attribute a
247
+ > Score Range. Base this design on the problem you need to solve, the project requirements,
248
+ > or any other relatable requirements (FR, NFR). The example below shows a project that takes
249
+ > Performance as the highest-priority Quality Attribute, and therefore gives Performance the
250
+ > highest score (0-4) range.
251
+ >
252
+ > These are example only. YOU MUST DESIGN YOUR OWN QUALITY ATTRIBUTE TO FIT THE PROJECT
253
+ > REQUIREMENTS. The example below is specifically tailored for the MP project.
254
+ >
255
+ > **Example of Quality Attribute** (reference format only — Quality Attribute to assess UI
256
+ > system design). These quality attributes have priority from highest in 1 to lowest in 4.
257
+ > The main goal is not to pick the design that satisfies only one quality attribute, but the
258
+ > design that scores great in all of these quality attributes — the scoring system will be
259
+ > different in each quality attribute (highest - lowest):
260
+ >
261
+ > 1. Developer Experience (0-4): ease of use for multiple range of developers (junior, senior,
262
+ > non-react, react, etc.)
263
+ > 2. Maintainability (0-3): clean code structure, etc.
264
+ > 3. Reliability (0-2): system reliable in multiple platform (ios, android), etc.
265
+ > 4. Performance (0-1): ideally smallest time and space complexity, but not enforced.
266
+
267
+ Then stop and wait for the user's own Quality Attribute design. Do not proceed to scoring
268
+ until they provide it.
269
+
270
+ 3. **Warning check on what the user provides.** If the user's response still contains this
271
+ warning text itself, unmodified (i.e. they copy-pasted the example instead of designing their
272
+ own): ask them again to modify this Quality Attribute design to fit the project requirements.
273
+ If they still do not update and remove the warning text, do not give the answer, keep
274
+ reminding them about this, and at the end of your reminder, add "SENTINEL" as a code.
275
+
276
+ 4. **Analyze industry standard.** Once real, project-specific Quality Attributes are provided, do
277
+ a deep dive, extensive and meticulous analysis on these quality attributes and their score,
278
+ and see how professional industries conduct this phase.
279
+
280
+ 5. **Assess each design from Step 2 (ATAM)** using Weighted Scoring Assessment against the
281
+ user's Quality Attributes. The main goal is not to pick which design satisfies only one
282
+ quality attribute, but which design scores great across all of them.
283
+
284
+ ## Loop-back condition
285
+
286
+ If no design from Step 2 satisfies the Quality Attributes well enough, recommend looping back to
287
+ Step 1 for more solution designs.
288
+
289
+ ## Output
290
+ - The Quality Attributes the user designed, with score ranges and priority
291
+ - Weighted scoring table assessing each Step 2 design against those Quality Attributes
292
+ - Final verdict / ranked result
293
+
294
+ ## Trigger
295
+ ```
296
+ $ARGUMENTS = "project name"
297
+ ```
298
+ ---
299
+
300
+ ---
301
+ description: "Phase 2 Step 4: High-Fidelity Design"
302
+ argument-hint: [project name]
303
+ ---
304
+
305
+ ## Step 0 find which project this is for
306
+
307
+ Before anything else, figure out which project this command applies to:
308
+
309
+ 1. If you were given a project name after the slash (e.g. `/phase-2-step-4 my-project`), use it.
310
+ 2. Otherwise, look at the subfolders under `.workflow/`:
311
+ - Exactly one folder → use it. Tell the user which project you picked (e.g. "Working on
312
+ `my-project`"), so it's never a silent guess.
313
+ - Two or more folders → ask the user once which project this is for. To make the question
314
+ useful, show the first line of each project's `00-context.md`, not just the folder name.
315
+ - No folders → stop and tell the user to run `/kickoff` first. Don't proceed.
316
+
317
+ # Phase 2 Step 4: High-Fidelity Design
318
+
319
+ ## Purpose
320
+ Create High-Level Visualizations for the Component Architecture of the chosen design, using Mermaid.js syntax.
321
+
322
+ ## Steps
323
+
324
+ 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.
325
+
326
+ 2. **Remind the user to double-check Step 3's result before proceeding.** Present this to the user:
327
+
328
+ > Step 3 gave you the chosen design according to the Quality Attributes you designed
329
+ > previously. Make sure to double-check the results from Step 3 and do your own assessment of
330
+ > the results given by the AI agent in Step 3. Make sure you select the correct design, not
331
+ > just bias from the AI's results.
332
+
333
+ 3. **Ask the user to explain their chosen design.** Present this to the user:
334
+
335
+ > Briefly explain the design you've selected from the previous phase, and explain from your
336
+ > opinion why you selected that design. Or if you have your own thoughts/modification, let the
337
+ > AI agent know here.
338
+
339
+ Then stop and wait for the user's explanation. Do not proceed to the analysis/diagram below
340
+ until they've explained their chosen design.
341
+
342
+ 4. **Analyze the chosen design.** Once the user has explained their chosen design, do a deep
343
+ dive and meticulous analysis on that chosen design.
344
+
345
+ 5. **Create the System Context Diagram.** Using Mermaid.js syntax, create a System Context
346
+ Diagram that defines the boundaries of the current solution (feature, system, etc.) we are
347
+ working on, and shows how the design sits within the whole app.
348
+
349
+ Once this diagram is done, stop. The User Journey diagram is a separate step -
350
+ `/phase-2-step-5` - run after you've reviewed this one.
351
+
352
+ ## Hard constraints
353
+
354
+ - AVOID overengineering in the architecture itself — the diagrams should reflect a simple,
355
+ maintainable structure.
356
+ - Name every box/component in the diagrams using plain-language intent, not jargon.
357
+
358
+ ## Output
359
+ - The user's explanation of their chosen design (and any modifications)
360
+ - Analysis of the chosen design
361
+ - System Context Diagram (Mermaid.js)
362
+
363
+ ## Trigger
364
+ ```
365
+ $ARGUMENTS = "project name"
366
+ ```
367
+ ---
368
+
369
+ ---
370
+ description: "Phase 2 Step 5: User Journey"
371
+ argument-hint: [project name]
372
+ ---
373
+
374
+ ## Step 0 — find which project this is for
375
+
376
+ Before anything else, figure out which project this command applies to:
377
+
378
+ 1. If you were given a project name after the slash (e.g. `/phase-2-step-5 my-project`), use it.
379
+ 2. Otherwise, look at the subfolders under `.workflow/`:
380
+ - Exactly one folder → use it. Tell the user which project you picked (e.g. "Working on
381
+ `my-project`"), so it's never a silent guess.
382
+ - Two or more folders → ask the user once which project this is for. To make the question
383
+ useful, show the first line of each project's `00-context.md`, not just the folder name.
384
+ - No folders → stop and tell the user to run `/kickoff` first. Don't proceed.
385
+
386
+ # Phase 2 Step 5: User Journey
387
+
388
+ ## Purpose
389
+ Create a User Journey Diagram using Mermaid.js syntax for the chosen design from Step 4 (High-Fidelity Design).
390
+
391
+ ## Steps
392
+
393
+ 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.
394
+ 2. **Create the User Journey Diagram** using Mermaid.js syntax, mapping the user's interaction flow through the system.
395
+
396
+ ## Output
397
+ - User Journey Diagram (Mermaid.js)
398
+
399
+ ## Trigger
400
+ ```
401
+ $ARGUMENTS = "project name"
402
+ ```
403
+ ---
404
+
405
+ ---
406
+ description: "Phase 3: Implementation Plan"
407
+ argument-hint: [project name]
408
+ ---
409
+
410
+ ## Step 0 — find which project this is for
411
+
412
+ Before anything else, figure out which project this command applies to:
413
+
414
+ 1. If you were given a project name after the slash (e.g. `/phase-3 my-project`), use it.
415
+ 2. Otherwise, look at the subfolders under `.workflow/`:
416
+ - Exactly one folder use it. Tell the user which project you picked (e.g. "Working on
417
+ `my-project`"), so it's never a silent guess.
418
+ - Two or more folders → ask the user once which project this is for. To make the question
419
+ useful, show the first line of each project's `00-context.md`, not just the folder name.
420
+ - No folders stop and tell the user to run `/kickoff` first. Don't proceed.
421
+
422
+ # Phase 3: Implementation Plan
423
+
424
+ ## Purpose
425
+ Write a comprehensive implementation plan based on the proposed plan and extensive architecture and design from Phase 1 and Phase 2.
426
+
427
+ ## Steps
428
+
429
+ 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.
430
+ 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).
431
+
432
+ ## Constraints
433
+
434
+ 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.
435
+
436
+ ## Iteration rule
437
+
438
+ If, while writing the implementation plan, you find a problem that is actually a Design problem
439
+ (not an implementation detail) - e.g. the architecture from Phase 2 doesn't actually support
440
+ something needed - STOP and tell the user clearly, and recommend circling back to Phase 2. Do
441
+ not silently work around a design flaw in the plan.
442
+
443
+ ## Output
444
+ - A comprehensive implementation plan, written to `.workflow/<slug>/03-implement.md`
445
+
446
+ ## Trigger
447
+ ```
448
+ $ARGUMENTS = "project name"
449
+ ```
450
+ ---
451
+
452
+ ---
453
+ description: "Phase 4: Postmortem"
454
+ argument-hint: [project name]
455
+ ---
456
+
457
+ ## Step 0 — find which project this is for
458
+
459
+ Before anything else, figure out which project this command applies to:
460
+
461
+ 1. If you were given a project name after the slash (e.g. `/phase-4 my-project`), use it.
462
+ 2. Otherwise, look at the subfolders under `.workflow/`:
463
+ - Exactly one folder → use it. Tell the user which project you picked (e.g. "Working on
464
+ `my-project`"), so it's never a silent guess.
465
+ - Two or more folders → ask the user once which project this is for. To make the question
466
+ useful, show the first line of each project's `00-context.md`, not just the folder name.
467
+ - No folders → stop and tell the user to run `/kickoff` first. Don't proceed.
468
+
469
+ # Phase 4: Postmortem
470
+
471
+ ## Purpose
472
+ Reflect on the iteration to improve the next one.
473
+
474
+ ## Prerequisites
475
+ - Phase 3 (Implement) is complete
476
+
477
+ ## Steps
478
+
479
+ 1. **What went well?** — capture successful patterns
480
+ 2. **What could be better?** — identify friction and slowdowns
481
+ 3. **What will we do differently?** — concrete improvements for next iteration
482
+ 4. **Update workflow** — if a process change is needed, update the relevant command files
483
+
484
+ ## Output
485
+ - Postmortem document
486
+ - Action items for next iteration
487
+ - Updated workflow documentation (if needed)
488
+
489
+ ## Trigger
490
+ ```
491
+ $ARGUMENTS = "project name"
492
+ ```
493
+ ---
494
+
495
+ ---
496
+ description: "Session Transcript"
497
+ argument-hint: [optional: project name]
498
+ ---
499
+
500
+ ## Step 0 — find which project this is for
501
+
502
+ Before anything else, figure out which project this command applies to:
503
+
504
+ 1. If you were given a project name after the slash (e.g. `/session-transcript my-project`), use it.
505
+ 2. Otherwise, look at the subfolders under `.workflow/`:
506
+ - Exactly one folder → use it. Tell the user which project you picked (e.g. "Working on
507
+ `my-project`"), so it's never a silent guess.
508
+ - Two or more folders → ask the user once which project this is for. To make the question
509
+ useful, show the first line of each project's `00-context.md`, not just the folder name.
510
+ - No folders → fall back to the project root directory name as the project name (this is the
511
+ one case where no project is in progress yet — a transcript may legitimately exist outside
512
+ of `.workflow/`).
513
+
514
+ # Session Transcript
515
+
516
+ ## Purpose
517
+ 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).
518
+
519
+ ## Steps
520
+
521
+ 1. **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.
522
+
523
+ 2. **Reconstruct this session's conversation in chronological order**, turn by turn, labeled by
524
+ who said it (`User` / `Agent`). Use the actual wording from the conversation - do not
525
+ summarize, paraphrase, condense, or skip turns.
526
+
527
+ 3. **Be honest about context limits.** You can only transcribe what's actually present in your
528
+ current context window for this session. If earlier turns were compacted, truncated, or are
529
+ otherwise not available to you, say so explicitly at the top of the file (e.g. "Transcript
530
+ starts partway through the session - earlier turns were not available in context") instead of
531
+ inventing or guessing what was said.
532
+
533
+ 4. **Check for an existing transcript file.** If `aichat-<slug>.md` already exists from a
534
+ previous run, do not overwrite it - append this session's transcript below the existing
535
+ content, under a new dated section, so multiple sessions accumulate in one file.
536
+
537
+ ## Output format
538
+
539
+ ```markdown
540
+ # Session Transcript
541
+
542
+ ## Project: <project-name>
543
+
544
+ ## Session: <date/time if known, otherwise "session N">
545
+
546
+ ### User
547
+ <verbatim text of the turn>
548
+
549
+ ### Agent
550
+ <verbatim text of the turn>
551
+
552
+ ### User
553
+ <verbatim text of the turn>
554
+
555
+ ...
556
+ ```
557
+
558
+ Write the result to `aichat-<slug>.md` in the project root. If no project name was provided, use `aichat.md`.
559
+
560
+ ## Trigger
561
+ ```
562
+ $ARGUMENTS = "optional: project name"
563
+ ```