@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,55 +1,67 @@
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
- ```
1
+ ---
2
+ description: "Phase 2 Step 4: High-Fidelity Design"
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-4 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 4: High-Fidelity Design
19
+
20
+ ## Purpose
21
+ Create High-Level Visualizations for the Component Architecture of the chosen design, using Mermaid.js syntax.
22
+
23
+ ## Steps
24
+
25
+ 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.
26
+
27
+ 2. **Remind the user to double-check Step 3's result before proceeding.** Present this to the user:
28
+
29
+ > Step 3 gave you the chosen design according to the Quality Attributes you designed
30
+ > previously. Make sure to double-check the results from Step 3 and do your own assessment of
31
+ > the results given by the AI agent in Step 3. Make sure you select the correct design, not
32
+ > just bias from the AI's results.
33
+
34
+ 3. **Ask the user to explain their chosen design.** Present this to the user:
35
+
36
+ > Briefly explain the design you've selected from the previous phase, and explain from your
37
+ > opinion why you selected that design. Or if you have your own thoughts/modification, let the
38
+ > AI agent know here.
39
+
40
+ Then stop and wait for the user's explanation. Do not proceed to the analysis/diagram below
41
+ until they've explained their chosen design.
42
+
43
+ 4. **Analyze the chosen design.** Once the user has explained their chosen design, do a deep
44
+ dive and meticulous analysis on that chosen design.
45
+
46
+ 5. **Create the System Context Diagram.** Using Mermaid.js syntax, create a System Context
47
+ Diagram that defines the boundaries of the current solution (feature, system, etc.) we are
48
+ working on, and shows how the design sits within the whole app.
49
+
50
+ Once this diagram is done, stop. The User Journey diagram is a separate step -
51
+ `/phase-2-step-5` - run after you've reviewed this one.
52
+
53
+ ## Hard constraints
54
+
55
+ - AVOID overengineering in the architecture itself — the diagrams should reflect a simple,
56
+ maintainable structure.
57
+ - Name every box/component in the diagrams using plain-language intent, not jargon.
58
+
59
+ ## Output
60
+ - The user's explanation of their chosen design (and any modifications)
61
+ - Analysis of the chosen design
62
+ - System Context Diagram (Mermaid.js)
63
+
64
+ ## Trigger
65
+ ```
66
+ $ARGUMENTS = "project name"
67
+ ```
@@ -1,22 +1,34 @@
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
- ```
1
+ ---
2
+ description: "Phase 2 Step 5: User Journey"
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-5 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 5: User Journey
19
+
20
+ ## Purpose
21
+ Create a User Journey Diagram using Mermaid.js syntax for the chosen design from Step 4 (High-Fidelity Design).
22
+
23
+ ## Steps
24
+
25
+ 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.
26
+ 2. **Create the User Journey Diagram** using Mermaid.js syntax, mapping the user's interaction flow through the system.
27
+
28
+ ## Output
29
+ - User Journey Diagram (Mermaid.js)
30
+
31
+ ## Trigger
32
+ ```
33
+ $ARGUMENTS = "project name"
34
+ ```
@@ -1,33 +1,45 @@
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
- ```
1
+ ---
2
+ description: "Phase 3: Implementation Plan"
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-3 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 3: Implementation Plan
19
+
20
+ ## Purpose
21
+ Write a comprehensive implementation plan based on the proposed plan and extensive architecture and design from Phase 1 and Phase 2.
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, then DO NOT PROCEED TO EXECUTE THIS STEP. Don't forget to remind the user if this happened.
26
+ 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).
27
+
28
+ ## Constraints
29
+
30
+ 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.
31
+
32
+ ## Iteration rule
33
+
34
+ If, while writing the implementation plan, you find a problem that is actually a Design problem
35
+ (not an implementation detail) - e.g. the architecture from Phase 2 doesn't actually support
36
+ something needed - STOP and tell the user clearly, and recommend circling back to Phase 2. Do
37
+ not silently work around a design flaw in the plan.
38
+
39
+ ## Output
40
+ - A comprehensive implementation plan, written to `.workflow/<slug>/03-implement.md`
41
+
42
+ ## Trigger
43
+ ```
44
+ $ARGUMENTS = "project name"
45
+ ```
@@ -1,29 +1,41 @@
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
- ```
1
+ ---
2
+ description: "Phase 4: Postmortem"
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-4 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 4: Postmortem
19
+
20
+ ## Purpose
21
+ Reflect on the iteration to improve the next one.
22
+
23
+ ## Prerequisites
24
+ - Phase 3 (Implement) is complete
25
+
26
+ ## Steps
27
+
28
+ 1. **What went well?** — capture successful patterns
29
+ 2. **What could be better?** — identify friction and slowdowns
30
+ 3. **What will we do differently?** — concrete improvements for next iteration
31
+ 4. **Update workflow** — if a process change is needed, update the relevant command files
32
+
33
+ ## Output
34
+ - Postmortem document
35
+ - Action items for next iteration
36
+ - Updated workflow documentation (if needed)
37
+
38
+ ## Trigger
39
+ ```
40
+ $ARGUMENTS = "project name"
41
+ ```
@@ -1,57 +1,69 @@
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
- ```
1
+ ---
2
+ description: "Session Transcript"
3
+ argument-hint: [optional: 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. `/session-transcript 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 → fall back to the project root directory name as the project name (this is the
17
+ one case where no project is in progress yet a transcript may legitimately exist outside
18
+ of `.workflow/`).
19
+
20
+ # Session Transcript
21
+
22
+ ## Purpose
23
+ 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).
24
+
25
+ ## Steps
26
+
27
+ 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.
28
+
29
+ 2. **Reconstruct this session's conversation in chronological order**, turn by turn, labeled by
30
+ who said it (`User` / `Agent`). Use the actual wording from the conversation - do not
31
+ summarize, paraphrase, condense, or skip turns.
32
+
33
+ 3. **Be honest about context limits.** You can only transcribe what's actually present in your
34
+ current context window for this session. If earlier turns were compacted, truncated, or are
35
+ otherwise not available to you, say so explicitly at the top of the file (e.g. "Transcript
36
+ starts partway through the session - earlier turns were not available in context") instead of
37
+ inventing or guessing what was said.
38
+
39
+ 4. **Check for an existing transcript file.** If `aichat-<slug>.md` already exists from a
40
+ previous run, do not overwrite it - append this session's transcript below the existing
41
+ content, under a new dated section, so multiple sessions accumulate in one file.
42
+
43
+ ## Output format
44
+
45
+ ```markdown
46
+ # Session Transcript
47
+
48
+ ## Project: <project-name>
49
+
50
+ ## Session: <date/time if known, otherwise "session N">
51
+
52
+ ### User
53
+ <verbatim text of the turn>
54
+
55
+ ### Agent
56
+ <verbatim text of the turn>
57
+
58
+ ### User
59
+ <verbatim text of the turn>
60
+
61
+ ...
62
+ ```
63
+
64
+ Write the result to `aichat-<slug>.md` in the project root. If no project name was provided, use `aichat.md`.
65
+
66
+ ## Trigger
67
+ ```
68
+ $ARGUMENTS = "optional: project name"
69
+ ```
@@ -1,2 +1,2 @@
1
- description = "Session Transcript — write verbatim chronological transcript to project root as aichat-<slug>.md"
2
- prompt = "Run Session Transcript. Determine feature slug from $ARGUMENTS if provided, otherwise use project root directory name. Scan the project root — do NOT create any new folders. Reconstruct conversation chronologically, labeled by User/Agent — verbatim, no summarization. If context is truncated, say so. If aichat-<slug>.md exists, append under new dated section instead of overwriting. Output: write to aichat-<slug>.md in project root. Reference: $ARGUMENTS"
1
+ description = "Session Transcript — write verbatim chronological transcript to project root as aichat-<slug>.md"
2
+ prompt = "Run Session Transcript. Determine project name from $ARGUMENTS if provided, otherwise use project root directory name. Scan the project root — do NOT create any new folders. Reconstruct conversation chronologically, labeled by User/Agent — verbatim, no summarization. If context is truncated, say so. If aichat-<slug>.md exists, append under new dated section instead of overwriting. Output: write to aichat-<slug>.md in project root. Reference: $ARGUMENTS"
package/package.json CHANGED
@@ -1,30 +1,42 @@
1
1
  {
2
2
  "name": "@arsxxi/iterative-dev-workflow",
3
- "version": "1.0.0",
3
+ "version": "1.0.2",
4
4
  "description": "A structured 4-phase iterative development workflow for AI coding agents.",
5
- "keywords": ["opencode-plugin", "opencode", "workflow", "methodology"],
5
+ "keywords": [
6
+ "opencode-plugin",
7
+ "opencode",
8
+ "workflow",
9
+ "methodology"
10
+ ],
6
11
  "license": "MIT",
7
12
  "author": {
8
13
  "name": "Clio",
9
- "url": "https://github.com/Arsxxi"
14
+ "url": "https://github.com/arsxxi/iterative-dev-workflow"
10
15
  },
11
- "homepage": "https://github.com/Arsxxi/Iterative-dev-workflow",
16
+ "homepage": "https://github.com/arsxxi/iterative-dev-workflow",
12
17
  "repository": {
13
18
  "type": "git",
14
- "url": "git+https://github.com/Arsxxi/Iterative-dev-workflow.git"
19
+ "url": "git+https://github.com/arsxxi/iterative-dev-workflow.git"
15
20
  },
16
21
  "bugs": {
17
- "url": "https://github.com/Arsxxi/Iterative-dev-workflow/issues"
22
+ "url": "https://github.com/arsxxi/iterative-dev-workflow/issues"
18
23
  },
19
24
  "main": "./.opencode/plugins/iterative-dev-workflow.mjs",
20
25
  "exports": {
21
26
  ".": "./.opencode/plugins/iterative-dev-workflow.mjs"
22
27
  },
28
+ "bin": {
29
+ "iterative-dev-workflow-install": "./bin/install-opencode-commands.mjs"
30
+ },
31
+ "scripts": {
32
+ "postinstall": "node ./bin/install-opencode-commands.mjs || true"
33
+ },
23
34
  "files": [
24
35
  "AGENTS.md",
25
36
  ".opencode/",
26
37
  "commands/",
27
- "skills/"
38
+ "skills/",
39
+ "bin/"
28
40
  ],
29
41
  "publishConfig": {
30
42
  "access": "public"