@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.
@@ -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
+ ```
@@ -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
- Understand the task deeply before writing any code.
22
-
23
- ## Steps
24
-
25
- 1. **Read the task** — understand what the user is asking for
26
- 2. **Explore the codebase** — understand existing patterns, structure, and constraints
27
- 3. **Identify gaps** — what information is missing? What needs clarification?
28
- 4. **Ask questions if needed** — use the ask-questions-if-underspecified skill when requirements are unclear
29
-
30
- ## Output
31
- - A clear summary of what needs to be built
32
- - Identified constraints and context
33
- - List of open questions (if any)
34
-
35
- ## When to escalate
36
- - Requirements are ambiguous or contradictory
37
- - Task involves security-critical or irreversible changes
38
- - Scope is too large for a single iteration
39
-
40
- ## Trigger
41
- ```
42
- $ARGUMENTS = "project name"
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 designs that we can use to solve our problem, according to the previous instruction about this step.
22
-
23
- ## Steps
24
-
25
- 1. **Recall the previous instruction** about Step 1: Solution Proposal
26
- 2. **Analyze industry standard** — do a deep dive, extensive and meticulous analysis on how industry standard conducts this step
27
- 3. **Create minimum 5 designs** that we can use to solve our problem
28
- 4. **Proceed to execute Step 1**
29
-
30
- ## Output
31
- - Analysis of how industry standard conducts this step
32
- - Minimum 5 design candidates
33
-
34
- ## Trigger
35
- ```
36
- $ARGUMENTS = "project name"
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
+ ```
@@ -1,80 +1,80 @@
1
- ---
2
- description: "Phase 2 Step 3: Quality Attribute"
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-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 2 Step 3: Quality Attribute
19
-
20
- ## Purpose
21
- Assess the results from Step 2: ATAM using Weighted Scoring Assessment, against Quality Attributes designed specifically for this project.
22
-
23
- ## Steps
24
-
25
- 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.
26
-
27
- 2. **Ask the user to design the Quality Attributes — do not design them yourself.** Present this to the user:
28
-
29
- > You will need to design these Quality Attributes by yourself and assign each Attribute a
30
- > Score Range. Base this design on the problem you need to solve, the project requirements,
31
- > or any other relatable requirements (FR, NFR). The example below shows a project that takes
32
- > Performance as the highest-priority Quality Attribute, and therefore gives Performance the
33
- > highest score (0-4) range.
34
- >
35
- > These are example only. YOU MUST DESIGN YOUR OWN QUALITY ATTRIBUTE TO FIT THE PROJECT
36
- > REQUIREMENTS. The example below is specifically tailored for the MP project.
37
- >
38
- > **Example of Quality Attribute** (reference format only — Quality Attribute to assess UI
39
- > system design). These quality attributes have priority from highest in 1 to lowest in 4.
40
- > The main goal is not to pick the design that satisfies only one quality attribute, but the
41
- > design that scores great in all of these quality attributes — the scoring system will be
42
- > different in each quality attribute (highest - lowest):
43
- >
44
- > 1. Developer Experience (0-4): ease of use for multiple range of developers (junior, senior,
45
- > non-react, react, etc.)
46
- > 2. Maintainability (0-3): clean code structure, etc.
47
- > 3. Reliability (0-2): system reliable in multiple platform (ios, android), etc.
48
- > 4. Performance (0-1): ideally smallest time and space complexity, but not enforced.
49
-
50
- Then stop and wait for the user's own Quality Attribute design. Do not proceed to scoring
51
- until they provide it.
52
-
53
- 3. **Warning check on what the user provides.** If the user's response still contains this
54
- warning text itself, unmodified (i.e. they copy-pasted the example instead of designing their
55
- own): ask them again to modify this Quality Attribute design to fit the project requirements.
56
- If they still do not update and remove the warning text, do not give the answer, keep
57
- reminding them about this, and at the end of your reminder, add "SENTINEL" as a code.
58
-
59
- 4. **Analyze industry standard.** Once real, project-specific Quality Attributes are provided, do
60
- a deep dive, extensive and meticulous analysis on these quality attributes and their score,
61
- and see how professional industries conduct this phase.
62
-
63
- 5. **Assess each design from Step 2 (ATAM)** using Weighted Scoring Assessment against the
64
- user's Quality Attributes. The main goal is not to pick which design satisfies only one
65
- quality attribute, but which design scores great across all of them.
66
-
67
- ## Loop-back condition
68
-
69
- If no design from Step 2 satisfies the Quality Attributes well enough, recommend looping back to
70
- Step 1 for more solution designs.
71
-
72
- ## Output
73
- - The Quality Attributes the user designed, with score ranges and priority
74
- - Weighted scoring table assessing each Step 2 design against those Quality Attributes
75
- - Final verdict / ranked result
76
-
77
- ## Trigger
78
- ```
79
- $ARGUMENTS = "project name"
80
- ```
1
+ ---
2
+ description: "Phase 2 Step 3: Quality Attribute"
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-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 2 Step 3: Quality Attribute
19
+
20
+ ## Purpose
21
+ Assess the results from Step 2: ATAM using Weighted Scoring Assessment, against Quality Attributes designed specifically for this project.
22
+
23
+ ## Steps
24
+
25
+ 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.
26
+
27
+ 2. **Ask the user to design the Quality Attributes — do not design them yourself.** Present this to the user:
28
+
29
+ > You will need to design these Quality Attributes by yourself and assign each Attribute a
30
+ > Score Range. Base this design on the problem you need to solve, the project requirements,
31
+ > or any other relatable requirements (FR, NFR). The example below shows a project that takes
32
+ > Performance as the highest-priority Quality Attribute, and therefore gives Performance the
33
+ > highest score (0-4) range.
34
+ >
35
+ > These are example only. YOU MUST DESIGN YOUR OWN QUALITY ATTRIBUTE TO FIT THE PROJECT
36
+ > REQUIREMENTS. The example below is specifically tailored for the MP project.
37
+ >
38
+ > **Example of Quality Attribute** (reference format only — Quality Attribute to assess UI
39
+ > system design). These quality attributes have priority from highest in 1 to lowest in 4.
40
+ > The main goal is not to pick the design that satisfies only one quality attribute, but the
41
+ > design that scores great in all of these quality attributes — the scoring system will be
42
+ > different in each quality attribute (highest - lowest):
43
+ >
44
+ > 1. Developer Experience (0-4): ease of use for multiple range of developers (junior, senior,
45
+ > non-react, react, etc.)
46
+ > 2. Maintainability (0-3): clean code structure, etc.
47
+ > 3. Reliability (0-2): system reliable in multiple platform (ios, android), etc.
48
+ > 4. Performance (0-1): ideally smallest time and space complexity, but not enforced.
49
+
50
+ Then stop and wait for the user's own Quality Attribute design. Do not proceed to scoring
51
+ until they provide it.
52
+
53
+ 3. **Warning check on what the user provides.** If the user's response still contains this
54
+ warning text itself, unmodified (i.e. they copy-pasted the example instead of designing their
55
+ own): ask them again to modify this Quality Attribute design to fit the project requirements.
56
+ If they still do not update and remove the warning text, do not give the answer, keep
57
+ reminding them about this, and at the end of your reminder, add "SENTINEL" as a code.
58
+
59
+ 4. **Analyze industry standard.** Once real, project-specific Quality Attributes are provided, do
60
+ a deep dive, extensive and meticulous analysis on these quality attributes and their score,
61
+ and see how professional industries conduct this phase.
62
+
63
+ 5. **Assess each design from Step 2 (ATAM)** using Weighted Scoring Assessment against the
64
+ user's Quality Attributes. The main goal is not to pick which design satisfies only one
65
+ quality attribute, but which design scores great across all of them.
66
+
67
+ ## Loop-back condition
68
+
69
+ If no design from Step 2 satisfies the Quality Attributes well enough, recommend looping back to
70
+ Step 1 for more solution designs.
71
+
72
+ ## Output
73
+ - The Quality Attributes the user designed, with score ranges and priority
74
+ - Weighted scoring table assessing each Step 2 design against those Quality Attributes
75
+ - Final verdict / ranked result
76
+
77
+ ## Trigger
78
+ ```
79
+ $ARGUMENTS = "project name"
80
+ ```