@arsxxi/iterative-dev-workflow 1.0.1 → 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.
- package/.opencode/commands/kickoff.md +90 -90
- package/.opencode/commands/phase-1.md +47 -43
- package/.opencode/commands/phase-2-step-1.md +39 -37
- package/.opencode/commands/phase-2-step-2.md +39 -39
- package/.opencode/commands/phase-2-step-3.md +80 -80
- package/.opencode/commands/phase-2-step-4.md +67 -67
- package/.opencode/commands/phase-2-step-5.md +34 -34
- package/.opencode/commands/phase-3.md +45 -45
- package/.opencode/commands/phase-4.md +41 -41
- package/.opencode/commands/session-transcript.md +69 -71
- package/.opencode/plugins/iterative-dev-workflow.mjs +4 -1
- package/AGENTS.md +47 -28
- package/README.md +24 -7
- package/bin/install-opencode-commands.mjs +49 -0
- package/commands/kickoff.md +90 -90
- package/commands/kickoff.toml +2 -2
- package/commands/phase-1.md +47 -43
- package/commands/phase-2-step-1.md +39 -37
- package/commands/phase-2-step-2.md +39 -39
- package/commands/phase-2-step-3.md +80 -80
- package/commands/phase-2-step-4.md +67 -67
- package/commands/phase-2-step-5.md +34 -34
- package/commands/phase-3.md +45 -45
- package/commands/phase-4.md +41 -41
- package/commands/session-transcript.md +69 -71
- package/commands/session-transcript.toml +2 -2
- package/package.json +9 -2
- package/skills/workflow-methodology/SKILL.md +562 -564
package/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<p align="center">
|
|
2
2
|
<picture>
|
|
3
3
|
<source media="(prefers-color-scheme: dark)" srcset="assets/yamadaaa.png">
|
|
4
|
-
<img src="assets/yamadaaa.png" width="
|
|
4
|
+
<img src="assets/yamadaaa.png" width="350" alt="Iterative Dev Workflow">
|
|
5
5
|
</picture>
|
|
6
6
|
</p>
|
|
7
7
|
|
|
@@ -11,9 +11,6 @@
|
|
|
11
11
|
<em>Structure your AI agent's development process.</em>
|
|
12
12
|
</p>
|
|
13
13
|
|
|
14
|
-
<p align="center">
|
|
15
|
-
<img src="https://img.shields.io/badge/license-MIT-111111?style=flat-square" alt="MIT license">
|
|
16
|
-
</p>
|
|
17
14
|
|
|
18
15
|
---
|
|
19
16
|
|
|
@@ -84,14 +81,27 @@ codex plugin add iterative-dev-workflow@arsxxi-iterative-dev-workflow
|
|
|
84
81
|
npm install -g @arsxxi/iterative-dev-workflow
|
|
85
82
|
```
|
|
86
83
|
|
|
87
|
-
|
|
84
|
+
On install, a `postinstall` script copies the commands into `~/.config/opencode/commands/`
|
|
85
|
+
automatically. Restart OpenCode and type `/` to see them.
|
|
86
|
+
|
|
87
|
+
If commands still don't show up (some package managers or environments skip lifecycle scripts,
|
|
88
|
+
or your OpenCode version doesn't pick them up automatically), run the installer manually:
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
npx --package=@arsxxi/iterative-dev-workflow iterative-dev-workflow-install
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
Or, as a guaranteed last resort, copy the `commands/` folder from this repo directly into
|
|
95
|
+
`~/.config/opencode/commands/` (global) or `.opencode/commands/` inside your project yourself -
|
|
96
|
+
these are plain markdown files, no build step required.
|
|
97
|
+
|
|
98
|
+
Then add to your `opencode.json` (this enables the AGENTS.md system-prompt injection feature,
|
|
99
|
+
separate from command registration):
|
|
88
100
|
|
|
89
101
|
```json
|
|
90
102
|
{ "plugin": ["@arsxxi/iterative-dev-workflow"] }
|
|
91
103
|
```
|
|
92
104
|
|
|
93
|
-
Slash commands are auto-installed to `~/.config/opencode/commands/` on first run.
|
|
94
|
-
|
|
95
105
|
### Antigravity CLI
|
|
96
106
|
|
|
97
107
|
```bash
|
|
@@ -184,6 +194,13 @@ Use a short, lowercase identifier with hyphens (e.g. `user-auth`, `article-quali
|
|
|
184
194
|
|
|
185
195
|
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.
|
|
186
196
|
|
|
197
|
+
## Acknowledgments
|
|
198
|
+
|
|
199
|
+
The Analyze → Design → Implement → Post-Mortem methodology, including the ATAM/SQALE
|
|
200
|
+
assessment framework and phase-gating prompts, was designed by **Hanzz**
|
|
201
|
+
([@haniladjamba](https://github.com/haniladjamba)). Implementation, cross-platform tooling,
|
|
202
|
+
and CI were built by [Arsxxi](https://github.com/Arsxxi).
|
|
203
|
+
|
|
187
204
|
## License
|
|
188
205
|
|
|
189
206
|
[MIT](LICENSE)
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
// Writes this package's commands/*.md into OpenCode's global commands directory
|
|
3
|
+
// (~/.config/opencode/commands/) so slash commands work regardless of whether
|
|
4
|
+
// OpenCode's internal plugin "config" hook is supported in the installed version.
|
|
5
|
+
//
|
|
6
|
+
// Run automatically via the "postinstall" npm script. If that doesn't fire in your
|
|
7
|
+
// environment (some package managers skip lifecycle scripts by default), run this
|
|
8
|
+
// manually:
|
|
9
|
+
// npx --package=@arsxxi/iterative-dev-workflow iterative-dev-workflow-install
|
|
10
|
+
// or just copy the commands/ folder from this package into your OpenCode commands dir
|
|
11
|
+
// yourself - see README.md.
|
|
12
|
+
|
|
13
|
+
import fs from "fs";
|
|
14
|
+
import path from "path";
|
|
15
|
+
import os from "os";
|
|
16
|
+
import { fileURLToPath } from "url";
|
|
17
|
+
|
|
18
|
+
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
19
|
+
const packageRoot = path.join(__dirname, "..");
|
|
20
|
+
const sourceDir = path.join(packageRoot, "commands");
|
|
21
|
+
|
|
22
|
+
const globalTarget = path.join(os.homedir(), ".config", "opencode", "commands");
|
|
23
|
+
|
|
24
|
+
function copyCommands(targetDir) {
|
|
25
|
+
fs.mkdirSync(targetDir, { recursive: true });
|
|
26
|
+
const files = fs.readdirSync(sourceDir).filter((f) => f.endsWith(".md"));
|
|
27
|
+
for (const f of files) {
|
|
28
|
+
fs.copyFileSync(path.join(sourceDir, f), path.join(targetDir, f));
|
|
29
|
+
}
|
|
30
|
+
return files.length;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
try {
|
|
34
|
+
const count = copyCommands(globalTarget);
|
|
35
|
+
console.log(
|
|
36
|
+
`[iterative-dev-workflow] Installed ${count} OpenCode commands to ${globalTarget}`
|
|
37
|
+
);
|
|
38
|
+
console.log(
|
|
39
|
+
"[iterative-dev-workflow] Restart OpenCode, then type / to see them (kickoff, phase-1, ...)."
|
|
40
|
+
);
|
|
41
|
+
} catch (err) {
|
|
42
|
+
console.warn(
|
|
43
|
+
"[iterative-dev-workflow] Could not auto-install OpenCode commands:",
|
|
44
|
+
err.message
|
|
45
|
+
);
|
|
46
|
+
console.warn(
|
|
47
|
+
`[iterative-dev-workflow] Manual fix: copy the commands/ folder from this package into ${globalTarget}`
|
|
48
|
+
);
|
|
49
|
+
}
|
package/commands/kickoff.md
CHANGED
|
@@ -1,90 +1,90 @@
|
|
|
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
|
-
```
|
|
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
|
+
```
|
package/commands/kickoff.toml
CHANGED
|
@@ -1,2 +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 project name. Step 1: analyze the workflow itself. Step 2: set up .workflow/<slug>/00-context.md. Use $ARGUMENTS as initial input. Reference: $ARGUMENTS"
|
|
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 project name. Step 1: analyze the workflow itself. Step 2: set up .workflow/<slug>/00-context.md. Use $ARGUMENTS as initial input. Reference: $ARGUMENTS"
|
package/commands/phase-1.md
CHANGED
|
@@ -1,43 +1,47 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: "Phase 1: Analyze"
|
|
3
|
-
argument-hint: [project name]
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
## Step 0 — find which project this is for
|
|
7
|
-
|
|
8
|
-
Before anything else, figure out which project this command applies to:
|
|
9
|
-
|
|
10
|
-
1. If you were given a project name after the slash (e.g. `/phase-1 my-project`), use it.
|
|
11
|
-
2. Otherwise, look at the subfolders under `.workflow/`:
|
|
12
|
-
- Exactly one folder → use it. Tell the user which project you picked (e.g. "Working on
|
|
13
|
-
`my-project`"), so it's never a silent guess.
|
|
14
|
-
- Two or more folders → ask the user once which project this is for. To make the question
|
|
15
|
-
useful, show the first line of each project's `00-context.md`, not just the folder name.
|
|
16
|
-
- No folders → stop and tell the user to run `/kickoff` first. Don't proceed.
|
|
17
|
-
|
|
18
|
-
# Phase 1: Analyze
|
|
19
|
-
|
|
20
|
-
## Purpose
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
## Steps
|
|
24
|
-
|
|
25
|
-
1. **
|
|
26
|
-
2. **
|
|
27
|
-
3. **
|
|
28
|
-
4. **
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
-
|
|
37
|
-
-
|
|
38
|
-
-
|
|
39
|
-
|
|
40
|
-
##
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
1
|
+
---
|
|
2
|
+
description: "Phase 1: Analyze"
|
|
3
|
+
argument-hint: [project name]
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## Step 0 — find which project this is for
|
|
7
|
+
|
|
8
|
+
Before anything else, figure out which project this command applies to:
|
|
9
|
+
|
|
10
|
+
1. If you were given a project name after the slash (e.g. `/phase-1 my-project`), use it.
|
|
11
|
+
2. Otherwise, look at the subfolders under `.workflow/`:
|
|
12
|
+
- Exactly one folder → use it. Tell the user which project you picked (e.g. "Working on
|
|
13
|
+
`my-project`"), so it's never a silent guess.
|
|
14
|
+
- Two or more folders → ask the user once which project this is for. To make the question
|
|
15
|
+
useful, show the first line of each project's `00-context.md`, not just the folder name.
|
|
16
|
+
- No folders → stop and tell the user to run `/kickoff` first. Don't proceed.
|
|
17
|
+
|
|
18
|
+
# Phase 1: Analyze
|
|
19
|
+
|
|
20
|
+
## Purpose
|
|
21
|
+
Analyze the requirements with the goal to propose a development timeline and plan.
|
|
22
|
+
|
|
23
|
+
## Steps
|
|
24
|
+
|
|
25
|
+
1. **Gather requirements** — do the usual analysis to gather requirements for what we wanted to build: $ARGUMENTS
|
|
26
|
+
2. **Identify libraries / npm packages** — determine what libraries / npm packages will be used
|
|
27
|
+
3. **Categorize services** — separate into two categories: Existing Services (the list of services currently available for the project: ask the user) and Proposed Services (the list of services needed to be added into the project)
|
|
28
|
+
4. **Brainstorm development paths** — brainstorm 5 various paths of development
|
|
29
|
+
5. **Perform ATAM** — perform an ATAM analysis of those paths of development
|
|
30
|
+
6. **Perform SQALE** — perform a SQALE analysis of those paths of development
|
|
31
|
+
7. **Write final output** — write the Development Timeline and explanation of chosen plan/solution
|
|
32
|
+
|
|
33
|
+
## Output
|
|
34
|
+
Write to `.workflow/<slug>/phase-1.md`:
|
|
35
|
+
- Development Timeline
|
|
36
|
+
- Explanation of chosen plan/solution
|
|
37
|
+
- Libraries / npm packages to be used
|
|
38
|
+
- Existing Services and Proposed Services breakdown
|
|
39
|
+
|
|
40
|
+
## Constraints
|
|
41
|
+
- AVOID overengineering, PREFER simple, low-complexity implementations with the GOAL of high maintainability
|
|
42
|
+
- AVOID jargons when naming components/systems, instead PRIORITIZE using layman's terms or prefer naming with the actual intentions of the components/systems, the GOAL is ease of developer understanding and maintainability
|
|
43
|
+
|
|
44
|
+
## Trigger
|
|
45
|
+
```
|
|
46
|
+
$ARGUMENTS = "project name"
|
|
47
|
+
```
|
|
@@ -1,37 +1,39 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: "Phase 2 Step 1: Solution Proposal"
|
|
3
|
-
argument-hint: [project name]
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
## Step 0 — find which project this is for
|
|
7
|
-
|
|
8
|
-
Before anything else, figure out which project this command applies to:
|
|
9
|
-
|
|
10
|
-
1. If you were given a project name after the slash (e.g. `/phase-2-step-1 my-project`), use it.
|
|
11
|
-
2. Otherwise, look at the subfolders under `.workflow/`:
|
|
12
|
-
- Exactly one folder → use it. Tell the user which project you picked (e.g. "Working on
|
|
13
|
-
`my-project`"), so it's never a silent guess.
|
|
14
|
-
- Two or more folders → ask the user once which project this is for. To make the question
|
|
15
|
-
useful, show the first line of each project's `00-context.md`, not just the folder name.
|
|
16
|
-
- No folders → stop and tell the user to run `/kickoff` first. Don't proceed.
|
|
17
|
-
|
|
18
|
-
# Phase 2 Step 1: Solution Proposal
|
|
19
|
-
|
|
20
|
-
## Purpose
|
|
21
|
-
Create a minimum of 5
|
|
22
|
-
|
|
23
|
-
##
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
```
|
|
1
|
+
---
|
|
2
|
+
description: "Phase 2 Step 1: Solution Proposal"
|
|
3
|
+
argument-hint: [project name]
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## Step 0 — find which project this is for
|
|
7
|
+
|
|
8
|
+
Before anything else, figure out which project this command applies to:
|
|
9
|
+
|
|
10
|
+
1. If you were given a project name after the slash (e.g. `/phase-2-step-1 my-project`), use it.
|
|
11
|
+
2. Otherwise, look at the subfolders under `.workflow/`:
|
|
12
|
+
- Exactly one folder → use it. Tell the user which project you picked (e.g. "Working on
|
|
13
|
+
`my-project`"), so it's never a silent guess.
|
|
14
|
+
- Two or more folders → ask the user once which project this is for. To make the question
|
|
15
|
+
useful, show the first line of each project's `00-context.md`, not just the folder name.
|
|
16
|
+
- No folders → stop and tell the user to run `/kickoff` first. Don't proceed.
|
|
17
|
+
|
|
18
|
+
# Phase 2 Step 1: Solution Proposal
|
|
19
|
+
|
|
20
|
+
## Purpose
|
|
21
|
+
Create a minimum of 5 design proposals for the chosen development path from Phase 1.
|
|
22
|
+
|
|
23
|
+
## Prerequisites
|
|
24
|
+
- Phase 1 output (`.workflow/<slug>/phase-1.md`) must exist and be non-empty. If it's missing or empty, do not proceed — remind the user.
|
|
25
|
+
|
|
26
|
+
## Steps
|
|
27
|
+
|
|
28
|
+
1. **Read Phase 1 output** — read `.workflow/<slug>/phase-1.md` to understand the chosen development path and its reasoning.
|
|
29
|
+
2. **Analyze industry standard** — do a deep dive, extensive and meticulous analysis on how industry standard conducts solution proposal
|
|
30
|
+
3. **Create minimum 5 design proposals** — create design proposals for the chosen development path from Phase 1. Each proposal should detail: Architecture, UI/UX approach, Data Model, and trade-offs at this design level.
|
|
31
|
+
|
|
32
|
+
## Output
|
|
33
|
+
- Industry standard analysis
|
|
34
|
+
- Minimum 5 design proposals for the chosen Phase 1 path
|
|
35
|
+
|
|
36
|
+
## Trigger
|
|
37
|
+
```
|
|
38
|
+
$ARGUMENTS = "project name"
|
|
39
|
+
```
|
|
@@ -1,39 +1,39 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: "Phase 2 Step 2: ATAM"
|
|
3
|
-
argument-hint: [project name]
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
## Step 0 — find which project this is for
|
|
7
|
-
|
|
8
|
-
Before anything else, figure out which project this command applies to:
|
|
9
|
-
|
|
10
|
-
1. If you were given a project name after the slash (e.g. `/phase-2-step-2 my-project`), use it.
|
|
11
|
-
2. Otherwise, look at the subfolders under `.workflow/`:
|
|
12
|
-
- Exactly one folder → use it. Tell the user which project you picked (e.g. "Working on
|
|
13
|
-
`my-project`"), so it's never a silent guess.
|
|
14
|
-
- Two or more folders → ask the user once which project this is for. To make the question
|
|
15
|
-
useful, show the first line of each project's `00-context.md`, not just the folder name.
|
|
16
|
-
- No folders → stop and tell the user to run `/kickoff` first. Don't proceed.
|
|
17
|
-
|
|
18
|
-
# Phase 2 Step 2: ATAM
|
|
19
|
-
|
|
20
|
-
## Purpose
|
|
21
|
-
Assess each design using ATAM. Our goal is to identify trade-offs and sensitivity points on each design.
|
|
22
|
-
|
|
23
|
-
## Steps
|
|
24
|
-
|
|
25
|
-
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.
|
|
26
|
-
2. **Analyze all of our designs** — do a deep dive, extensive and meticulous analysis on all of our designs
|
|
27
|
-
3. **Proceed to execute Step 2: ATAM**
|
|
28
|
-
|
|
29
|
-
## Output
|
|
30
|
-
- Trade-offs identified for each design
|
|
31
|
-
- Sensitivity points identified for each design
|
|
32
|
-
|
|
33
|
-
## Error handling
|
|
34
|
-
If any step contains an error regarding user prompts, INFORM THE USER and DO NOT CONTINUE.
|
|
35
|
-
|
|
36
|
-
## Trigger
|
|
37
|
-
```
|
|
38
|
-
$ARGUMENTS = "project name"
|
|
39
|
-
```
|
|
1
|
+
---
|
|
2
|
+
description: "Phase 2 Step 2: ATAM"
|
|
3
|
+
argument-hint: [project name]
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## Step 0 — find which project this is for
|
|
7
|
+
|
|
8
|
+
Before anything else, figure out which project this command applies to:
|
|
9
|
+
|
|
10
|
+
1. If you were given a project name after the slash (e.g. `/phase-2-step-2 my-project`), use it.
|
|
11
|
+
2. Otherwise, look at the subfolders under `.workflow/`:
|
|
12
|
+
- Exactly one folder → use it. Tell the user which project you picked (e.g. "Working on
|
|
13
|
+
`my-project`"), so it's never a silent guess.
|
|
14
|
+
- Two or more folders → ask the user once which project this is for. To make the question
|
|
15
|
+
useful, show the first line of each project's `00-context.md`, not just the folder name.
|
|
16
|
+
- No folders → stop and tell the user to run `/kickoff` first. Don't proceed.
|
|
17
|
+
|
|
18
|
+
# Phase 2 Step 2: ATAM
|
|
19
|
+
|
|
20
|
+
## Purpose
|
|
21
|
+
Assess each design using ATAM. Our goal is to identify trade-offs and sensitivity points on each design.
|
|
22
|
+
|
|
23
|
+
## Steps
|
|
24
|
+
|
|
25
|
+
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.
|
|
26
|
+
2. **Analyze all of our designs** — do a deep dive, extensive and meticulous analysis on all of our designs
|
|
27
|
+
3. **Proceed to execute Step 2: ATAM**
|
|
28
|
+
|
|
29
|
+
## Output
|
|
30
|
+
- Trade-offs identified for each design
|
|
31
|
+
- Sensitivity points identified for each design
|
|
32
|
+
|
|
33
|
+
## Error handling
|
|
34
|
+
If any step contains an error regarding user prompts, INFORM THE USER and DO NOT CONTINUE.
|
|
35
|
+
|
|
36
|
+
## Trigger
|
|
37
|
+
```
|
|
38
|
+
$ARGUMENTS = "project name"
|
|
39
|
+
```
|