@fredcallagan/arn-spark 5.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/plugin.json +9 -0
- package/.opencode/plugins/arn-spark.js +272 -0
- package/package.json +17 -0
- package/plugins/arn-spark/.claude-plugin/plugin.json +9 -0
- package/plugins/arn-spark/LICENSE +21 -0
- package/plugins/arn-spark/README.md +25 -0
- package/plugins/arn-spark/agents/arn-spark-brand-strategist.md +299 -0
- package/plugins/arn-spark/agents/arn-spark-dev-env-builder.md +228 -0
- package/plugins/arn-spark/agents/arn-spark-doctor.md +92 -0
- package/plugins/arn-spark/agents/arn-spark-forensic-investigator.md +181 -0
- package/plugins/arn-spark/agents/arn-spark-market-researcher.md +232 -0
- package/plugins/arn-spark/agents/arn-spark-marketing-pm.md +225 -0
- package/plugins/arn-spark/agents/arn-spark-persona-architect.md +259 -0
- package/plugins/arn-spark/agents/arn-spark-persona-impersonator.md +183 -0
- package/plugins/arn-spark/agents/arn-spark-product-strategist.md +191 -0
- package/plugins/arn-spark/agents/arn-spark-prototype-builder.md +497 -0
- package/plugins/arn-spark/agents/arn-spark-scaffolder.md +228 -0
- package/plugins/arn-spark/agents/arn-spark-spike-runner.md +209 -0
- package/plugins/arn-spark/agents/arn-spark-style-capture.md +196 -0
- package/plugins/arn-spark/agents/arn-spark-tech-evaluator.md +229 -0
- package/plugins/arn-spark/agents/arn-spark-ui-interactor.md +235 -0
- package/plugins/arn-spark/agents/arn-spark-use-case-writer.md +280 -0
- package/plugins/arn-spark/agents/arn-spark-ux-judge.md +215 -0
- package/plugins/arn-spark/agents/arn-spark-ux-specialist.md +200 -0
- package/plugins/arn-spark/agents/arn-spark-visual-sketcher.md +285 -0
- package/plugins/arn-spark/agents/arn-spark-visual-test-engineer.md +224 -0
- package/plugins/arn-spark/references/copilot-tools.md +62 -0
- package/plugins/arn-spark/skills/arn-brainstorming/SKILL.md +520 -0
- package/plugins/arn-spark/skills/arn-brainstorming/references/add-feature-flow.md +155 -0
- package/plugins/arn-spark/skills/arn-spark-arch-vision/SKILL.md +226 -0
- package/plugins/arn-spark/skills/arn-spark-arch-vision/references/architecture-vision-template.md +153 -0
- package/plugins/arn-spark/skills/arn-spark-arch-vision/references/technology-evaluation-guide.md +86 -0
- package/plugins/arn-spark/skills/arn-spark-clickable-prototype/SKILL.md +471 -0
- package/plugins/arn-spark/skills/arn-spark-clickable-prototype/references/clickable-prototype-criteria.md +65 -0
- package/plugins/arn-spark/skills/arn-spark-clickable-prototype/references/journey-template.md +62 -0
- package/plugins/arn-spark/skills/arn-spark-clickable-prototype/references/review-report-template.md +75 -0
- package/plugins/arn-spark/skills/arn-spark-clickable-prototype/references/showcase-capture-guide.md +213 -0
- package/plugins/arn-spark/skills/arn-spark-clickable-prototype-teams/SKILL.md +642 -0
- package/plugins/arn-spark/skills/arn-spark-clickable-prototype-teams/references/debate-protocol.md +242 -0
- package/plugins/arn-spark/skills/arn-spark-clickable-prototype-teams/references/debate-review-report-template.md +161 -0
- package/plugins/arn-spark/skills/arn-spark-clickable-prototype-teams/references/expert-interaction-review-template.md +152 -0
- package/plugins/arn-spark/skills/arn-spark-concept-review/SKILL.md +350 -0
- package/plugins/arn-spark/skills/arn-spark-concept-review/references/conflict-resolution-protocol.md +145 -0
- package/plugins/arn-spark/skills/arn-spark-concept-review/references/review-report-template.md +185 -0
- package/plugins/arn-spark/skills/arn-spark-dev-setup/SKILL.md +366 -0
- package/plugins/arn-spark/skills/arn-spark-dev-setup/references/dev-setup-checklist.md +84 -0
- package/plugins/arn-spark/skills/arn-spark-dev-setup/references/dev-setup-template.md +205 -0
- package/plugins/arn-spark/skills/arn-spark-discover/SKILL.md +303 -0
- package/plugins/arn-spark/skills/arn-spark-discover/references/competitive-landscape-template.md +87 -0
- package/plugins/arn-spark/skills/arn-spark-discover/references/discovery-questions.md +120 -0
- package/plugins/arn-spark/skills/arn-spark-discover/references/persona-profile-template.md +97 -0
- package/plugins/arn-spark/skills/arn-spark-discover/references/product-concept-template.md +253 -0
- package/plugins/arn-spark/skills/arn-spark-ensure-config/SKILL.md +23 -0
- package/plugins/arn-spark/skills/arn-spark-ensure-config/references/ensure-config.md +388 -0
- package/plugins/arn-spark/skills/arn-spark-ensure-config/references/step-0-fast-path.md +25 -0
- package/plugins/arn-spark/skills/arn-spark-ensure-config/scripts/cache-check.sh +127 -0
- package/plugins/arn-spark/skills/arn-spark-feature-extract/SKILL.md +483 -0
- package/plugins/arn-spark/skills/arn-spark-feature-extract/references/feature-backlog-template.md +176 -0
- package/plugins/arn-spark/skills/arn-spark-feature-extract/references/feature-entry-template.md +209 -0
- package/plugins/arn-spark/skills/arn-spark-help/SKILL.md +149 -0
- package/plugins/arn-spark/skills/arn-spark-help/references/pipeline-map.md +211 -0
- package/plugins/arn-spark/skills/arn-spark-init/SKILL.md +312 -0
- package/plugins/arn-spark/skills/arn-spark-init/references/agent-models-presets/all-opus.md +23 -0
- package/plugins/arn-spark/skills/arn-spark-init/references/agent-models-presets/balanced.md +23 -0
- package/plugins/arn-spark/skills/arn-spark-init/references/bkt-setup.md +55 -0
- package/plugins/arn-spark/skills/arn-spark-init/references/jira-mcp-setup.md +61 -0
- package/plugins/arn-spark/skills/arn-spark-init/references/platform-labels.md +97 -0
- package/plugins/arn-spark/skills/arn-spark-naming/SKILL.md +275 -0
- package/plugins/arn-spark/skills/arn-spark-naming/references/creative-brief-template.md +146 -0
- package/plugins/arn-spark/skills/arn-spark-naming/references/naming-methodology.md +237 -0
- package/plugins/arn-spark/skills/arn-spark-naming/references/naming-report-template.md +122 -0
- package/plugins/arn-spark/skills/arn-spark-naming/references/trademark-databases.md +88 -0
- package/plugins/arn-spark/skills/arn-spark-naming/references/whois-server-map.md +164 -0
- package/plugins/arn-spark/skills/arn-spark-naming/scripts/whois-check.js +502 -0
- package/plugins/arn-spark/skills/arn-spark-naming/scripts/whois-check.py +533 -0
- package/plugins/arn-spark/skills/arn-spark-prototype-lock/SKILL.md +260 -0
- package/plugins/arn-spark/skills/arn-spark-prototype-lock/references/lock-report-template.md +68 -0
- package/plugins/arn-spark/skills/arn-spark-prototype-lock/references/pretooluse-hook-template.json +35 -0
- package/plugins/arn-spark/skills/arn-spark-prototype-lock/references/prototype-guardrail-rules.md +38 -0
- package/plugins/arn-spark/skills/arn-spark-report/SKILL.md +144 -0
- package/plugins/arn-spark/skills/arn-spark-report/references/issue-template.md +81 -0
- package/plugins/arn-spark/skills/arn-spark-report/references/spark-knowledge-base.md +293 -0
- package/plugins/arn-spark/skills/arn-spark-scaffold/SKILL.md +239 -0
- package/plugins/arn-spark/skills/arn-spark-scaffold/references/scaffold-checklist.md +79 -0
- package/plugins/arn-spark/skills/arn-spark-scaffold/references/scaffold-summary-template.md +74 -0
- package/plugins/arn-spark/skills/arn-spark-spike/SKILL.md +209 -0
- package/plugins/arn-spark/skills/arn-spark-spike/references/spike-report-template.md +123 -0
- package/plugins/arn-spark/skills/arn-spark-static-prototype/SKILL.md +362 -0
- package/plugins/arn-spark/skills/arn-spark-static-prototype/references/review-report-template.md +65 -0
- package/plugins/arn-spark/skills/arn-spark-static-prototype/references/showcase-capture-guide.md +153 -0
- package/plugins/arn-spark/skills/arn-spark-static-prototype/references/static-prototype-criteria.md +54 -0
- package/plugins/arn-spark/skills/arn-spark-static-prototype-teams/SKILL.md +518 -0
- package/plugins/arn-spark/skills/arn-spark-static-prototype-teams/references/debate-protocol.md +230 -0
- package/plugins/arn-spark/skills/arn-spark-static-prototype-teams/references/debate-review-report-template.md +148 -0
- package/plugins/arn-spark/skills/arn-spark-static-prototype-teams/references/expert-visual-review-template.md +130 -0
- package/plugins/arn-spark/skills/arn-spark-stress-competitive/SKILL.md +166 -0
- package/plugins/arn-spark/skills/arn-spark-stress-competitive/references/competitive-report-template.md +139 -0
- package/plugins/arn-spark/skills/arn-spark-stress-competitive/references/gap-analysis-framework.md +111 -0
- package/plugins/arn-spark/skills/arn-spark-stress-interview/SKILL.md +257 -0
- package/plugins/arn-spark/skills/arn-spark-stress-interview/references/interview-protocol.md +140 -0
- package/plugins/arn-spark/skills/arn-spark-stress-interview/references/interview-report-template.md +165 -0
- package/plugins/arn-spark/skills/arn-spark-stress-interview/references/persona-casting-spec.md +138 -0
- package/plugins/arn-spark/skills/arn-spark-stress-premortem/SKILL.md +181 -0
- package/plugins/arn-spark/skills/arn-spark-stress-premortem/references/premortem-protocol.md +112 -0
- package/plugins/arn-spark/skills/arn-spark-stress-premortem/references/premortem-report-template.md +158 -0
- package/plugins/arn-spark/skills/arn-spark-stress-prfaq/SKILL.md +206 -0
- package/plugins/arn-spark/skills/arn-spark-stress-prfaq/references/prfaq-report-template.md +139 -0
- package/plugins/arn-spark/skills/arn-spark-stress-prfaq/references/prfaq-workflow.md +118 -0
- package/plugins/arn-spark/skills/arn-spark-style-explore/SKILL.md +281 -0
- package/plugins/arn-spark/skills/arn-spark-style-explore/references/style-brief-template.md +198 -0
- package/plugins/arn-spark/skills/arn-spark-use-cases/SKILL.md +359 -0
- package/plugins/arn-spark/skills/arn-spark-use-cases/references/expert-review-template.md +94 -0
- package/plugins/arn-spark/skills/arn-spark-use-cases/references/review-protocol.md +150 -0
- package/plugins/arn-spark/skills/arn-spark-use-cases/references/use-case-index-template.md +108 -0
- package/plugins/arn-spark/skills/arn-spark-use-cases/references/use-case-template.md +125 -0
- package/plugins/arn-spark/skills/arn-spark-use-cases-teams/SKILL.md +306 -0
- package/plugins/arn-spark/skills/arn-spark-use-cases-teams/references/debate-protocol.md +272 -0
- package/plugins/arn-spark/skills/arn-spark-use-cases-teams/references/review-report-template.md +112 -0
- package/plugins/arn-spark/skills/arn-spark-visual-readiness/SKILL.md +293 -0
- package/plugins/arn-spark/skills/arn-spark-visual-readiness/references/readiness-checklist.md +196 -0
- package/plugins/arn-spark/skills/arn-spark-visual-sketch/SKILL.md +376 -0
- package/plugins/arn-spark/skills/arn-spark-visual-sketch/references/aesthetic-philosophy.md +210 -0
- package/plugins/arn-spark/skills/arn-spark-visual-sketch/references/sketch-gallery-guide.md +282 -0
- package/plugins/arn-spark/skills/arn-spark-visual-sketch/references/visual-direction-template.md +174 -0
- package/plugins/arn-spark/skills/arn-spark-visual-strategy/SKILL.md +447 -0
- package/plugins/arn-spark/skills/arn-spark-visual-strategy/references/baseline-capture-script-template.js +89 -0
- package/plugins/arn-spark/skills/arn-spark-visual-strategy/references/journey-schema.md +375 -0
- package/plugins/arn-spark/skills/arn-spark-visual-strategy/references/spike-checklist.md +122 -0
- package/plugins/arn-spark/skills/arn-spark-visual-strategy/references/strategy-layers-guide.md +132 -0
- package/plugins/arn-spark/skills/arn-spark-visual-strategy/references/visual-strategy-template.md +141 -0
|
@@ -0,0 +1,520 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: arn-brainstorming
|
|
3
|
+
description: >-
|
|
4
|
+
This skill should be used when the user says "brainstorming", "arn brainstorming",
|
|
5
|
+
"brainstorm", "let's brainstorm", "start brainstorming", "brainstorming session",
|
|
6
|
+
"greenfield wizard", "arn spark wizard", "greenfield pipeline",
|
|
7
|
+
"walk me through greenfield", "guided greenfield", "full greenfield pipeline",
|
|
8
|
+
"greenfield flow", "explore to feature backlog", "greenfield start to finish",
|
|
9
|
+
"run the greenfield pipeline", "guide me through greenfield", "greenfield guided mode",
|
|
10
|
+
"greenfield setup", "new project wizard", "add a feature", "new feature",
|
|
11
|
+
"I need another feature", "add feature to greenfield", "one more feature",
|
|
12
|
+
or wants to be walked through the entire Arness greenfield exploration pipeline
|
|
13
|
+
in a single continuous session with guided decision gates instead of invoking
|
|
14
|
+
each skill manually. Also triggers when the user wants to add a new feature
|
|
15
|
+
to an existing greenfield project after the clickable prototype is complete.
|
|
16
|
+
version: 1.0.0
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
# Arness Brainstorming
|
|
20
|
+
|
|
21
|
+
Walk the user through the entire Arness greenfield exploration pipeline in a single continuous session. The wizard invokes each pipeline skill in sequence using the Skill tool, only pausing at genuine decision gates where user input is needed. Conversational skills (discover, arch-vision) have internal feedback loops and flow without wizard-level gates.
|
|
22
|
+
|
|
23
|
+
This skill is a **sequencer and decision-gate handler**. It MUST NOT duplicate sub-skill logic. All pipeline work is done by the invoked skills. The wizard handles: entry routing, transitions between skills, progress display, and resumability.
|
|
24
|
+
|
|
25
|
+
## Step 0: Ensure Configuration
|
|
26
|
+
|
|
27
|
+
Read `${CLAUDE_PLUGIN_ROOT}/skills/arn-spark-ensure-config/references/step-0-fast-path.md` and follow its instructions. This guarantees a user profile exists and `## Arness` is configured with Arness Spark fields before proceeding.
|
|
28
|
+
|
|
29
|
+
After Step 0 completes, extract from `## Arness`:
|
|
30
|
+
- Vision directory, Use cases directory, Prototypes directory, Spikes directory, Visual grounding directory, Reports directory
|
|
31
|
+
|
|
32
|
+
## Decision Gates
|
|
33
|
+
|
|
34
|
+
The wizard pauses at exactly 9 gates. Everything else flows automatically.
|
|
35
|
+
|
|
36
|
+
| Gate | When | Question | Options |
|
|
37
|
+
|------|------|----------|---------|
|
|
38
|
+
| G1 | Entry (artifacts detected) | "It looks like you have an in-progress greenfield pipeline. Resume or start fresh?" | Resume from [detected stage] / Start fresh |
|
|
39
|
+
| G-Stress | After discover | "Run stress tests on the product concept?" then "Select which stress tests to run" | Yes/Skip; then multi-select: Interview, Competitive, Pre-Mortem, PR/FAQ |
|
|
40
|
+
| G-Name | After stress-test/concept-review | "Explore brand names for your product?" | Yes / Skip |
|
|
41
|
+
| G2 | After arch-vision | "Write use cases before scaffolding?" | Write use cases (recommended) / Write use cases with expert debate (teams) / Skip to scaffold |
|
|
42
|
+
| G3 | After scaffold | "Validate technical risks before visual design?" | Run spikes (recommended if risks found) / Skip to visual sketch |
|
|
43
|
+
| G4 | Pre-prototype | "How should prototypes be validated?" | Standard review cycles / Expert debate (teams) for both / Expert debate (teams) for clickable only |
|
|
44
|
+
| G5 | After clickable prototype | "Lock the prototype and extract features?" | Lock prototype then extract features (recommended) / Extract features without locking / Review prototype first |
|
|
45
|
+
| G6 | After feature extraction | "Transition to development pipeline?" | Yes, run /arn-planning / Not yet |
|
|
46
|
+
| G7 | Entry (add-feature intent + completed prototype) | "Adding a new feature. This will update use cases, iterate the prototype, and add to the feature backlog. Ready?" | Proceed / Choose which steps to include / Cancel |
|
|
47
|
+
|
|
48
|
+
## Workflow
|
|
49
|
+
|
|
50
|
+
### Step 0.5: Extract Configuration
|
|
51
|
+
|
|
52
|
+
1. Read the project's arness.md `## Arness` section (guaranteed to exist after Step 0).
|
|
53
|
+
2. Extract configuration fields needed for artifact detection:
|
|
54
|
+
- **Vision directory** — for detecting product concept, architecture vision, scaffold summary, spike results, style brief, visual direction, feature backlog
|
|
55
|
+
- **Use cases directory** — for detecting use case files
|
|
56
|
+
- **Prototypes directory** — for detecting static and clickable prototype reports
|
|
57
|
+
- **Spikes directory** — for detecting spike POC directories
|
|
58
|
+
- **Visual grounding directory** — for detecting captured design references
|
|
59
|
+
- **Reports directory** — for detecting stress test reports and concept review report
|
|
60
|
+
|
|
61
|
+
### Step 1: Detect Pipeline State (Resumability)
|
|
62
|
+
|
|
63
|
+
Check which artifacts exist on disk to determine if the user is resuming a previous pipeline run. Check from most advanced to least advanced — first match wins:
|
|
64
|
+
|
|
65
|
+
| Artifact | Detected State | Resume Point |
|
|
66
|
+
|----------|---------------|--------------|
|
|
67
|
+
| User says "add feature" / "new feature" AND `<prototypes-dir>/clickable/final-report.md` exists | Add Feature mode | Start at Add Feature Mode (Step AF) |
|
|
68
|
+
| `<vision-dir>/features/feature-backlog.md` | Feature extraction complete | Resume at G6 |
|
|
69
|
+
| `<prototypes-dir>/locked/LOCKED.md` exists AND NO `<vision-dir>/features/feature-backlog.md` | Prototype locked, extraction pending | Resume at feature-extract directly (invoke `arn-spark-feature-extract`, skip G5 lock step — already locked) |
|
|
70
|
+
| `F-*.md` files in `<vision-dir>/features/` but NO `<vision-dir>/features/feature-backlog.md` | Feature extraction interrupted | Resume at feature-extract (invoke to complete/rebuild the Feature Tracker) |
|
|
71
|
+
| `<prototypes-dir>/clickable/final-report.md` | Clickable prototype done | Resume at G5 |
|
|
72
|
+
| `<prototypes-dir>/static/final-report.md` | Static prototype done | Resume at clickable prototype (Step 9b) |
|
|
73
|
+
| `<vision-dir>/style-brief.md` | Style defined | Resume at static prototype (Step 9a) |
|
|
74
|
+
| `<vision-dir>/visual-direction.md` | Visual direction chosen | Resume at style-explore (Step 8) |
|
|
75
|
+
| `<vision-dir>/spike-results.md` | Spike complete | Resume at visual-sketch (Step 7) |
|
|
76
|
+
| `<vision-dir>/scaffold-summary.md` | Scaffold built | Resume at G3 |
|
|
77
|
+
| `UC-*.md` in `<use-cases-dir>/` | Use cases written | Resume at scaffold (Step 5) |
|
|
78
|
+
| `<vision-dir>/architecture-vision.md` | Architecture defined | Resume at G2 |
|
|
79
|
+
| `<reports-dir>/stress-tests/concept-review-report.md` AND `<vision-dir>/naming-brief.md` with "Final Decision" section populated | Concept review + naming complete | Resume at arch-vision (Step 3) |
|
|
80
|
+
| `<reports-dir>/stress-tests/concept-review-report.md` AND `<vision-dir>/naming-brief.md` exists but no "Final Decision" section | Naming in progress | Resume at G-Name (naming skill handles internal resume) |
|
|
81
|
+
| `<reports-dir>/stress-tests/concept-review-report.md` AND NO `<vision-dir>/naming-brief.md` | Concept review complete, naming not started | Resume at G-Name |
|
|
82
|
+
| Any stress test report (`interview-report.md`, `competitive-report.md`, `premortem-report.md`, `prfaq-report.md`) in `<reports-dir>/stress-tests/` but NO `concept-review-report.md` | Stress tests run, review pending | Resume at concept review offer within G-Stress |
|
|
83
|
+
| `<vision-dir>/product-concept.md` | Product discovered | Resume at G-Stress |
|
|
84
|
+
| Greenfield fields but no artifacts | Greenfield initialized | Begin at discover (Step 2) |
|
|
85
|
+
|
|
86
|
+
**If artifacts are detected:**
|
|
87
|
+
|
|
88
|
+
Show the detected state and ask:
|
|
89
|
+
|
|
90
|
+
Ask the user:
|
|
91
|
+
|
|
92
|
+
> **It looks like you have an in-progress greenfield pipeline at [detected stage]. Would you like to resume or start fresh?**
|
|
93
|
+
> 1. **Resume from [detected stage]** — Skip to the detected resume point
|
|
94
|
+
> 2. **Start fresh** — Begin at Step 2 (existing artifacts are preserved)
|
|
95
|
+
|
|
96
|
+
**If ambiguous or conflicting artifacts are detected** (e.g., architecture-vision.md exists but no product-concept.md, or multiple conflicting states): list the detected artifacts and ask the user to clarify which state to resume from.
|
|
97
|
+
|
|
98
|
+
**If no artifacts detected:** skip G1 and proceed directly to Step 2.
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
### Step 2: Product Discovery (Automated)
|
|
103
|
+
|
|
104
|
+
Show progress:
|
|
105
|
+
```
|
|
106
|
+
Spark Pipeline: DISCOVER --> stress-test --> naming --> arch-vision --> use-cases --> scaffold --> spike --> visual-sketch --> style-explore --> prototypes --> feature-extract
|
|
107
|
+
^^^^^^^^
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
Inform the user: "Let's start by shaping your product idea..."
|
|
111
|
+
|
|
112
|
+
> `Skill: arn-spark:arn-spark-discover`
|
|
113
|
+
|
|
114
|
+
The discover skill has its own internal conversation loop with the product strategist agent. When it completes, `product-concept.md` exists in the vision directory.
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
### Step 2.5: Gate G-Stress — Stress Test Decision
|
|
119
|
+
|
|
120
|
+
Show progress:
|
|
121
|
+
```
|
|
122
|
+
Spark Pipeline: discover --> STRESS-TEST --> naming --> arch-vision --> use-cases --> scaffold --> spike --> visual-sketch --> style-explore --> prototypes --> feature-extract
|
|
123
|
+
^^^^^^^^^^^
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
**Step 1 of gate — Explain and ask:**
|
|
127
|
+
|
|
128
|
+
Briefly explain stress testing and each available test:
|
|
129
|
+
|
|
130
|
+
"Before committing to an architecture, you can stress-test the product concept to validate assumptions and identify blind spots. Four tests are available:
|
|
131
|
+
|
|
132
|
+
1. **Synthetic User Interview** — Generates synthetic personas (Pragmatist, Skeptic, Power User) from your product concept and conducts structured interviews to surface usability concerns and unmet needs.
|
|
133
|
+
2. **Competitive Gap Analysis** — Deep feature-by-feature comparison against identified competitors, revealing gaps in your positioning and missed opportunities.
|
|
134
|
+
3. **Pre-Mortem** — Assumes the product has already failed and investigates the most likely root causes, using Gary Klein's pre-mortem framework.
|
|
135
|
+
4. **PR/FAQ** — Drafts a press release for your product and then adversarially critiques it, exposing weak value propositions and messaging gaps.
|
|
136
|
+
|
|
137
|
+
Stress testing is optional but recommended — it validates WHAT you are building before committing to HOW."
|
|
138
|
+
|
|
139
|
+
Ask the user:
|
|
140
|
+
|
|
141
|
+
**"Run stress tests on the product concept?"**
|
|
142
|
+
|
|
143
|
+
Options:
|
|
144
|
+
1. **Yes, run stress tests** (Recommended) — Validate the concept before architecture
|
|
145
|
+
2. **Skip to architecture vision** — Proceed without stress testing
|
|
146
|
+
|
|
147
|
+
If **Skip** → proceed to Step 3 (arch-vision).
|
|
148
|
+
|
|
149
|
+
**Step 2 of gate — Multi-select:**
|
|
150
|
+
|
|
151
|
+
Ask the user (multiSelect: true):
|
|
152
|
+
|
|
153
|
+
**"Select which stress tests to run (select all that apply):"**
|
|
154
|
+
|
|
155
|
+
Options:
|
|
156
|
+
1. **Synthetic User Interview** — Persona-driven interviews revealing usability concerns
|
|
157
|
+
2. **Competitive Gap Analysis** — Feature comparison against competitors
|
|
158
|
+
3. **Pre-Mortem** — Investigate likely causes of product failure
|
|
159
|
+
4. **PR/FAQ** — Draft and adversarially critique a press release
|
|
160
|
+
|
|
161
|
+
Invoke each selected stress test skill in sequence:
|
|
162
|
+
|
|
163
|
+
- If Interview selected → `Skill: arn-spark:arn-spark-stress-interview`
|
|
164
|
+
- If Competitive selected → `Skill: arn-spark:arn-spark-stress-competitive`
|
|
165
|
+
- If Pre-Mortem selected → `Skill: arn-spark:arn-spark-stress-premortem`
|
|
166
|
+
- If PR/FAQ selected → `Skill: arn-spark:arn-spark-stress-prfaq`
|
|
167
|
+
|
|
168
|
+
**After all selected tests complete:**
|
|
169
|
+
|
|
170
|
+
"Stress tests complete. [N] report(s) generated. Run concept review to synthesize findings into product concept updates?"
|
|
171
|
+
|
|
172
|
+
Ask the user:
|
|
173
|
+
|
|
174
|
+
**"Review and update the product concept based on stress test findings?"**
|
|
175
|
+
|
|
176
|
+
Options:
|
|
177
|
+
1. **Yes, review and update concept** (Recommended) — Synthesize findings and propose concept changes
|
|
178
|
+
2. **Skip** — Keep concept as-is and proceed to architecture vision
|
|
179
|
+
|
|
180
|
+
If **Yes** → `Skill: arn-spark:arn-spark-concept-review`. After concept review completes, proceed to Step 2.7 (G-Name).
|
|
181
|
+
|
|
182
|
+
If **Skip** → proceed to Step 2.7 (G-Name).
|
|
183
|
+
|
|
184
|
+
---
|
|
185
|
+
|
|
186
|
+
### Step 2.7: Gate G-Name — Brand Naming Decision
|
|
187
|
+
|
|
188
|
+
Show progress:
|
|
189
|
+
```
|
|
190
|
+
Spark Pipeline: discover --> stress-test --> NAMING --> arch-vision --> use-cases --> scaffold --> spike --> visual-sketch --> style-explore --> prototypes --> feature-extract
|
|
191
|
+
^^^^^^
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
Ask the user:
|
|
195
|
+
|
|
196
|
+
**"Would you like to explore brand names for your product?"**
|
|
197
|
+
|
|
198
|
+
Options:
|
|
199
|
+
1. **Yes, find a name** (Recommended) — Run the structured 4-step naming process
|
|
200
|
+
2. **Skip** — I already have a name or will name it later
|
|
201
|
+
|
|
202
|
+
If **Yes** → `Skill: arn-spark:arn-spark-naming`. After naming completes, proceed to Step 3 (arch-vision).
|
|
203
|
+
|
|
204
|
+
If **Skip** → proceed to Step 3 (arch-vision).
|
|
205
|
+
|
|
206
|
+
---
|
|
207
|
+
|
|
208
|
+
### Step 3: Architecture Vision (Automated)
|
|
209
|
+
|
|
210
|
+
Show progress:
|
|
211
|
+
```
|
|
212
|
+
Spark Pipeline: discover --> stress-test --> naming --> ARCH-VISION --> use-cases --> scaffold --> spike --> visual-sketch --> style-explore --> prototypes --> feature-extract
|
|
213
|
+
^^^^^^^^^^^
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
Inform the user: "Product concept is ready. Now let's explore the architecture..."
|
|
217
|
+
|
|
218
|
+
> `Skill: arn-spark:arn-spark-arch-vision`
|
|
219
|
+
|
|
220
|
+
The arch-vision skill has its own internal conversation loop with the tech evaluator agent. When it completes, `architecture-vision.md` exists in the vision directory.
|
|
221
|
+
|
|
222
|
+
---
|
|
223
|
+
|
|
224
|
+
### Step 4: Gate G2 — Use Cases Decision
|
|
225
|
+
|
|
226
|
+
Show progress:
|
|
227
|
+
```
|
|
228
|
+
Spark Pipeline: discover --> stress-test --> naming --> arch-vision --> USE-CASES --> scaffold --> spike --> visual-sketch --> style-explore --> prototypes --> feature-extract
|
|
229
|
+
^^^^^^^^^
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
Ask the user:
|
|
233
|
+
|
|
234
|
+
**"Architecture vision is complete. Write use cases before scaffolding?"**
|
|
235
|
+
|
|
236
|
+
Options:
|
|
237
|
+
1. **Write use cases** (Recommended) — Structured behavioral requirements in Cockburn format
|
|
238
|
+
2. **Write use cases with expert debate** (Teams) — Multi-agent debate format with product strategist and UX specialist
|
|
239
|
+
3. **Skip to scaffold** — Proceed without formal use cases
|
|
240
|
+
|
|
241
|
+
Based on the user's choice:
|
|
242
|
+
|
|
243
|
+
- **Write use cases** → `Skill: arn-spark:arn-spark-use-cases`
|
|
244
|
+
- **Expert debate** → `Skill: arn-spark:arn-spark-use-cases-teams`
|
|
245
|
+
- **Skip** → mark use-cases as skipped and proceed to Step 5
|
|
246
|
+
|
|
247
|
+
---
|
|
248
|
+
|
|
249
|
+
### Step 5: Scaffold (Automated)
|
|
250
|
+
|
|
251
|
+
Show progress:
|
|
252
|
+
```
|
|
253
|
+
Spark Pipeline: discover --> stress-test --> naming --> arch-vision --> use-cases --> SCAFFOLD --> spike --> visual-sketch --> style-explore --> prototypes --> feature-extract
|
|
254
|
+
^^^^^^^^
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
Inform the user: "Setting up the project skeleton with the chosen tech stack..."
|
|
258
|
+
|
|
259
|
+
> `Skill: arn-spark:arn-spark-scaffold`
|
|
260
|
+
|
|
261
|
+
The scaffold skill creates the project structure, installs dependencies, and produces a buildable project. When it completes, `scaffold-summary.md` exists in the vision directory.
|
|
262
|
+
|
|
263
|
+
---
|
|
264
|
+
|
|
265
|
+
### Step 6: Gate G3 — Spike Decision
|
|
266
|
+
|
|
267
|
+
Show progress:
|
|
268
|
+
```
|
|
269
|
+
Spark Pipeline: discover --> stress-test --> naming --> arch-vision --> use-cases --> scaffold --> SPIKE --> visual-sketch --> style-explore --> prototypes --> feature-extract
|
|
270
|
+
^^^^^
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
Before asking, read `architecture-vision.md` from the vision directory and check for a "Risks" or "Known Risks" section. Count the number of identified risks.
|
|
274
|
+
|
|
275
|
+
Ask the user:
|
|
276
|
+
|
|
277
|
+
**"Scaffold complete. Validate technical risks before moving to visual design?"**
|
|
278
|
+
|
|
279
|
+
Options (if risks were found in architecture vision):
|
|
280
|
+
1. **Run spikes** (Recommended — [N] risks identified in architecture vision) — Validate risky assumptions with proof-of-concept code
|
|
281
|
+
2. **Skip to visual sketch** — Proceed to visual design without risk validation
|
|
282
|
+
|
|
283
|
+
Options (if no risks section found):
|
|
284
|
+
1. **Run spikes anyway** — Validate key assumptions even though no explicit risks were documented
|
|
285
|
+
2. **Skip to visual sketch** (Recommended) — Proceed to visual design
|
|
286
|
+
|
|
287
|
+
If **Run spikes:**
|
|
288
|
+
> `Skill: arn-spark:arn-spark-spike`
|
|
289
|
+
|
|
290
|
+
If **Skip:** mark spike as skipped and proceed to Step 7.
|
|
291
|
+
|
|
292
|
+
---
|
|
293
|
+
|
|
294
|
+
### Step 7: Visual Sketch (Automated)
|
|
295
|
+
|
|
296
|
+
Show progress:
|
|
297
|
+
```
|
|
298
|
+
Spark Pipeline: discover --> stress-test --> naming --> arch-vision --> use-cases --> scaffold --> spike --> VISUAL-SKETCH --> style-explore --> prototypes --> feature-extract
|
|
299
|
+
^^^^^^^^^^^^^
|
|
300
|
+
```
|
|
301
|
+
|
|
302
|
+
Inform the user: "Generating visual direction proposals..."
|
|
303
|
+
|
|
304
|
+
> `Skill: arn-spark:arn-spark-visual-sketch`
|
|
305
|
+
|
|
306
|
+
The visual-sketch skill generates multiple direction proposals as live pages on the dev server. When it completes, `visual-direction.md` exists in the vision directory.
|
|
307
|
+
|
|
308
|
+
---
|
|
309
|
+
|
|
310
|
+
### Step 8: Style Explore (Automated)
|
|
311
|
+
|
|
312
|
+
Show progress:
|
|
313
|
+
```
|
|
314
|
+
Spark Pipeline: discover --> stress-test --> naming --> arch-vision --> use-cases --> scaffold --> spike --> visual-sketch --> STYLE-EXPLORE --> prototypes --> feature-extract
|
|
315
|
+
^^^^^^^^^^^^^
|
|
316
|
+
```
|
|
317
|
+
|
|
318
|
+
Inform the user: "Defining the design system from the chosen visual direction..."
|
|
319
|
+
|
|
320
|
+
> `Skill: arn-spark:arn-spark-style-explore`
|
|
321
|
+
|
|
322
|
+
The style-explore skill defines color palettes, typography, component styles, and toolkit configuration. When it completes, `style-brief.md` exists in the vision directory.
|
|
323
|
+
|
|
324
|
+
---
|
|
325
|
+
|
|
326
|
+
### Step 9: Gate G4 — Prototype Validation Mode
|
|
327
|
+
|
|
328
|
+
Show progress:
|
|
329
|
+
```
|
|
330
|
+
Spark Pipeline: discover --> stress-test --> naming --> arch-vision --> use-cases --> scaffold --> spike --> visual-sketch --> style-explore --> PROTOTYPES --> feature-extract
|
|
331
|
+
^^^^^^^^^^
|
|
332
|
+
```
|
|
333
|
+
|
|
334
|
+
Ask the user:
|
|
335
|
+
|
|
336
|
+
**"Style system defined. How should prototypes be validated?"**
|
|
337
|
+
|
|
338
|
+
Options:
|
|
339
|
+
1. **Standard review cycles** — Build-review-iterate with expert scoring and UX judge verdict
|
|
340
|
+
2. **Expert debate (teams) for both** — Multi-agent debate for static and clickable prototypes
|
|
341
|
+
3. **Expert debate (teams) for clickable only** — Standard for static, debate for clickable
|
|
342
|
+
|
|
343
|
+
Based on choice, invoke the prototype skills in sequence:
|
|
344
|
+
|
|
345
|
+
**Standard:**
|
|
346
|
+
> `Skill: arn-spark:arn-spark-static-prototype`
|
|
347
|
+
> Then: `Skill: arn-spark:arn-spark-clickable-prototype`
|
|
348
|
+
|
|
349
|
+
**Teams for both:**
|
|
350
|
+
> `Skill: arn-spark:arn-spark-static-prototype-teams`
|
|
351
|
+
> Then: `Skill: arn-spark:arn-spark-clickable-prototype-teams`
|
|
352
|
+
|
|
353
|
+
**Teams for clickable only:**
|
|
354
|
+
> `Skill: arn-spark:arn-spark-static-prototype`
|
|
355
|
+
> Then: `Skill: arn-spark:arn-spark-clickable-prototype-teams`
|
|
356
|
+
|
|
357
|
+
After each prototype skill completes, show an intermediate progress update before invoking the next.
|
|
358
|
+
|
|
359
|
+
---
|
|
360
|
+
|
|
361
|
+
### Step 10: Gate G5 — Post-Prototype Actions
|
|
362
|
+
|
|
363
|
+
Show progress:
|
|
364
|
+
```
|
|
365
|
+
Spark Pipeline: discover --> stress-test --> naming --> arch-vision --> use-cases --> scaffold --> spike --> visual-sketch --> style-explore --> prototypes --> FEATURE-EXTRACT
|
|
366
|
+
^^^^^^^^^^^^^^^
|
|
367
|
+
```
|
|
368
|
+
|
|
369
|
+
Before asking, check if `<prototypes-dir>/locked/LOCKED.md` exists.
|
|
370
|
+
|
|
371
|
+
**If prototype is already locked:**
|
|
372
|
+
|
|
373
|
+
"Prototype is already locked (see `prototypes/locked/LOCKED.md`). Proceeding directly to feature extraction."
|
|
374
|
+
|
|
375
|
+
> `Skill: arn-spark:arn-spark-feature-extract`
|
|
376
|
+
|
|
377
|
+
Skip the G5 question — locking is already done. After feature-extract completes, proceed to G6.
|
|
378
|
+
|
|
379
|
+
**If prototype is NOT locked:**
|
|
380
|
+
|
|
381
|
+
Ask the user:
|
|
382
|
+
|
|
383
|
+
**"Prototype validation complete. What next?"**
|
|
384
|
+
|
|
385
|
+
Options:
|
|
386
|
+
1. **Lock prototype and extract features** (Recommended) — Protect the validated prototype, then build the feature backlog
|
|
387
|
+
2. **Extract features without locking** — Build the backlog without prototype protection
|
|
388
|
+
3. **Review prototype first** — Look at the validation results before deciding
|
|
389
|
+
|
|
390
|
+
If **Lock and extract:**
|
|
391
|
+
> `Skill: arn-spark:arn-spark-prototype-lock`
|
|
392
|
+
> Then: `Skill: arn-spark:arn-spark-feature-extract`
|
|
393
|
+
|
|
394
|
+
If **Extract without locking:**
|
|
395
|
+
> `Skill: arn-spark:arn-spark-feature-extract`
|
|
396
|
+
|
|
397
|
+
If **Review first:**
|
|
398
|
+
- Read the final reports from both static and clickable prototype directories
|
|
399
|
+
- Present a summary of the validation results (verdicts, scores, key findings)
|
|
400
|
+
- Then re-ask: "Lock and extract, or extract only?"
|
|
401
|
+
|
|
402
|
+
---
|
|
403
|
+
|
|
404
|
+
### Step 11: Gate G6 — Transition to Development
|
|
405
|
+
|
|
406
|
+
Show progress:
|
|
407
|
+
```
|
|
408
|
+
Spark Pipeline: discover --> stress-test --> naming --> arch-vision --> use-cases --> scaffold --> spike --> visual-sketch --> style-explore --> prototypes --> feature-extract
|
|
409
|
+
✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓
|
|
410
|
+
```
|
|
411
|
+
|
|
412
|
+
Before asking about transition, check if features have been uploaded to the issue tracker:
|
|
413
|
+
|
|
414
|
+
1. Read `## Arness` config for **Issue tracker** field (`github`, `jira`, or `none`). If not present, treat as `none`.
|
|
415
|
+
2. If Issue tracker is `none`: skip this check.
|
|
416
|
+
3. If Issue tracker is `github` or `jira`:
|
|
417
|
+
a. Read `<vision-dir>/features/feature-backlog.md` and check the Feature Tracker table's Issue column.
|
|
418
|
+
b. If ALL features have `--` in the Issue column (none uploaded):
|
|
419
|
+
|
|
420
|
+
Ask the user:
|
|
421
|
+
|
|
422
|
+
> **Your feature backlog has [N] features but none have been uploaded to [GitHub/Jira] yet. Would you like to upload them now?** This creates issues for team visibility and enables `/arn-code-pick-issue` for feature selection.
|
|
423
|
+
> 1. **Upload now** — Create issues for all features
|
|
424
|
+
> 2. **Skip** — Continue without uploading
|
|
425
|
+
|
|
426
|
+
If **Upload now** → `Skill: arn-spark:arn-spark-feature-extract` (the skill detects existing features and runs Step 7 upload)
|
|
427
|
+
If **Skip** → Continue to transition question
|
|
428
|
+
|
|
429
|
+
c. If SOME features have issue numbers (partial upload):
|
|
430
|
+
|
|
431
|
+
Ask the user:
|
|
432
|
+
|
|
433
|
+
> **[M] of [N] features have been uploaded to [GitHub/Jira]. Would you like to upload the remaining [K]?**
|
|
434
|
+
> 1. **Upload remaining** — Create issues for the remaining features
|
|
435
|
+
> 2. **Skip** — Continue without uploading
|
|
436
|
+
|
|
437
|
+
If **Upload remaining** → `Skill: arn-spark:arn-spark-feature-extract`
|
|
438
|
+
If **Skip** → Continue to transition question
|
|
439
|
+
|
|
440
|
+
d. If ALL features have issue numbers: skip this check silently.
|
|
441
|
+
|
|
442
|
+
Then proceed:
|
|
443
|
+
|
|
444
|
+
Ask the user:
|
|
445
|
+
|
|
446
|
+
**"Greenfield exploration is complete. Feature backlog is ready. Transition to the development pipeline?"**
|
|
447
|
+
|
|
448
|
+
Options:
|
|
449
|
+
1. **Yes, start developing** — Run `/arn-planning` to begin planning features from the backlog. Arness auto-configures code patterns, plans, specs, and report templates on first use.
|
|
450
|
+
2. **Not yet** — Stay in greenfield mode; transition later
|
|
451
|
+
|
|
452
|
+
If **Yes:**
|
|
453
|
+
> `Skill: arn-code:arn-planning`
|
|
454
|
+
|
|
455
|
+
If **Not yet:**
|
|
456
|
+
- Show what was completed
|
|
457
|
+
- Inform: "Run `/arn-planning` when ready to transition. Arness auto-configures on first use. Your greenfield artifacts are preserved."
|
|
458
|
+
|
|
459
|
+
---
|
|
460
|
+
|
|
461
|
+
### Step 12: Complete
|
|
462
|
+
|
|
463
|
+
Show final progress:
|
|
464
|
+
```
|
|
465
|
+
Spark Pipeline: discover --> stress-test --> naming --> arch-vision --> use-cases --> scaffold --> spike --> visual-sketch --> style-explore --> prototypes --> feature-extract
|
|
466
|
+
✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓
|
|
467
|
+
```
|
|
468
|
+
|
|
469
|
+
Present a completion summary:
|
|
470
|
+
- **Product concept:** `<vision-dir>/product-concept.md`
|
|
471
|
+
- **Brand name:** `<vision-dir>/naming-brief.md` — [chosen name] (or "skipped")
|
|
472
|
+
- **Architecture:** `<vision-dir>/architecture-vision.md`
|
|
473
|
+
- **Use cases:** [count] use cases in `<use-cases-dir>/` (or "skipped")
|
|
474
|
+
- **Scaffold:** `<vision-dir>/scaffold-summary.md`
|
|
475
|
+
- **Spikes:** `<vision-dir>/spike-results.md` (or "skipped")
|
|
476
|
+
- **Visual direction:** `<vision-dir>/visual-direction.md`
|
|
477
|
+
- **Style:** `<vision-dir>/style-brief.md`
|
|
478
|
+
- **Static prototype:** `<prototypes-dir>/static/final-report.md`
|
|
479
|
+
- **Clickable prototype:** `<prototypes-dir>/clickable/final-report.md`
|
|
480
|
+
- **Prototype lock:** [yes / no]
|
|
481
|
+
- **Feature backlog:** `<vision-dir>/features/feature-backlog.md` — [feature count] features
|
|
482
|
+
- **Development transition:** [initialized / deferred]
|
|
483
|
+
|
|
484
|
+
"Pipeline complete. Run `/arn-brainstorming` again to re-explore, or `/arn-planning` for the development pipeline."
|
|
485
|
+
|
|
486
|
+
---
|
|
487
|
+
|
|
488
|
+
### Add Feature Mode
|
|
489
|
+
|
|
490
|
+
Triggered when the user wants to add a new feature to a completed greenfield project. This mode sequences the incremental update skills in dependency order: use cases provide the behavioral foundation, the prototype validates the UI, and feature extraction adds to the backlog. Handles locked prototypes by iterating to a new version and re-locking.
|
|
491
|
+
|
|
492
|
+
> Read `${CLAUDE_PLUGIN_ROOT}/skills/arn-brainstorming/references/add-feature-flow.md` for the full Add Feature mode workflow.
|
|
493
|
+
|
|
494
|
+
---
|
|
495
|
+
|
|
496
|
+
## Error Handling
|
|
497
|
+
|
|
498
|
+
- **Sub-skill fails or errors out:** Present the error to the user. Ask the user: retry this step / skip this step / abort the wizard. If retry, re-invoke the same skill. If skip, continue to the next gate. If abort, show what was completed and exit.
|
|
499
|
+
- **User says "stop" or "pause":** Show what has been completed and what's next. Inform the user they can resume by running `/arn-brainstorming` again (artifact detection will pick up where they left off).
|
|
500
|
+
- **Arness greenfield not initialized:** Handled by Step 0 ensure-config, which auto-configures with sensible defaults.
|
|
501
|
+
- **Architecture vision has no risks section at G3:** Adjust the spike recommendation — default suggestion becomes "Skip" instead of "Run spikes". Show: "No explicit risks identified in the architecture vision."
|
|
502
|
+
- **Scaffold fails to build:** The scaffold skill has its own error handling with retries. If it ultimately fails, ask: retry scaffold / abort wizard. Do not skip scaffold — it is required for all subsequent visual steps.
|
|
503
|
+
- **Prototype validation does not reach PASS verdict:** After the sub-skill returns, inform the user: "The prototype did not reach a PASS verdict. Continue to feature extraction anyway, or iterate more on the prototype?" If iterate: re-invoke the prototype skill. If continue: proceed to G5.
|
|
504
|
+
- **arn-spark plugin not installed:** If skill invocations fail because the greenfield plugin is missing, inform: "The arn-spark plugin must be installed. Run `/plugin install arn-spark@arn-marketplace`."
|
|
505
|
+
- **Teams variant not available at G2 or G4:** If the user selects a teams variant but the environment does not support Agent Teams, inform them and suggest the standard option instead.
|
|
506
|
+
- **Product concept already exists when starting fresh:** The discover skill handles this internally (asks to replace or refine). The wizard does not need separate handling.
|
|
507
|
+
- **Add Feature mode invoked without completed prototype:** Redirect to normal wizard flow. Inform: "Add Feature mode requires a completed clickable prototype. Let's start with the full pipeline instead."
|
|
508
|
+
- **Locked prototype during Add Feature:** The lock protects the frozen snapshot, not the working directory. Prototype iteration creates a new version alongside the locked one. After iteration, the wizard offers to re-lock with the new version.
|
|
509
|
+
- **Feature extraction interrupted (partial feature files exist without Feature Tracker):** Detected by finding `F-*.md` files in the features directory without `feature-backlog.md`. Invoke `arn-spark-feature-extract` which handles resume and rebuilds the Feature Tracker from existing feature files.
|
|
510
|
+
- **Features not uploaded to issue tracker:** Detected at G6 by checking the Feature Tracker's Issue column. If all entries show `--`, offer to upload before transitioning to development.
|
|
511
|
+
|
|
512
|
+
## Constraints
|
|
513
|
+
|
|
514
|
+
- This skill MUST NOT duplicate sub-skill logic. It only handles sequencing and decision gates.
|
|
515
|
+
- All pipeline work is done by the invoked skills via the Skill tool.
|
|
516
|
+
- Progress display uses the compact format shown above — one line showing the full pipeline with the current stage highlighted.
|
|
517
|
+
- The wizard runs in normal conversation (not plan mode).
|
|
518
|
+
- Skill invocations use the Skill tool with fully qualified names: `Skill: arn-spark:arn-spark-<name>` for greenfield skills, `Skill: arn-code:arn-planning` for the development pipeline transition.
|
|
519
|
+
- Add Feature mode uses the same sub-skill invocation pattern as the main pipeline.
|
|
520
|
+
- Add Feature mode never unlocks or modifies a locked prototype snapshot. It iterates to a new version and optionally re-locks.
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
# Add Feature Flow
|
|
2
|
+
|
|
3
|
+
Reference procedure for the greenfield wizard's Add Feature mode. Triggered when the user wants to add a new feature after the clickable prototype is complete.
|
|
4
|
+
|
|
5
|
+
## Why This Sequence
|
|
6
|
+
|
|
7
|
+
Each step produces artifacts the next step needs:
|
|
8
|
+
1. **Use cases** provide the behavioral specification (main success scenario, extensions, business rules)
|
|
9
|
+
2. **Clickable prototype** adds screens that validate the new feature's UI interactions
|
|
10
|
+
3. **Feature extract** creates the F-NNN backlog entry with references to the new UC and prototype screens
|
|
11
|
+
4. **Re-lock** (if previously locked) updates the frozen snapshot to include the new screens
|
|
12
|
+
|
|
13
|
+
Skipping a step is allowed but has consequences:
|
|
14
|
+
- Skip use cases → the feature has no behavioral grounding; prototype screens lack UC-driven flows
|
|
15
|
+
- Skip prototype → the feature has no validated screens; feature file has no Component/Reference entries
|
|
16
|
+
- Skip extract → the new behavior exists in UCs and prototype but is not in the feature backlog
|
|
17
|
+
|
|
18
|
+
## Workflow
|
|
19
|
+
|
|
20
|
+
### Step AF1: Gate G7 — Confirm Intent and Detect Lock State
|
|
21
|
+
|
|
22
|
+
1. Check if a prototype lock exists by reading arness.md for a `### Prototype Lock` section.
|
|
23
|
+
|
|
24
|
+
2. Present what will happen:
|
|
25
|
+
|
|
26
|
+
**If prototype is NOT locked:**
|
|
27
|
+
|
|
28
|
+
"Adding a new feature to your greenfield project. This will:
|
|
29
|
+
1. Add a new use case (or update existing ones) to describe the behavior
|
|
30
|
+
2. Iterate the clickable prototype to add screens for the new feature
|
|
31
|
+
3. Add the feature to your backlog via feature extraction
|
|
32
|
+
|
|
33
|
+
Ready to proceed, or would you like to customize which steps to include?"
|
|
34
|
+
|
|
35
|
+
**If prototype IS locked:**
|
|
36
|
+
|
|
37
|
+
"Adding a new feature to your greenfield project. The prototype is currently locked (v[N], locked on [date]).
|
|
38
|
+
|
|
39
|
+
This will:
|
|
40
|
+
1. Add a new use case (or update existing ones) to describe the behavior
|
|
41
|
+
2. Iterate the clickable prototype to a NEW version v[N+1] — the locked v[N] snapshot is preserved
|
|
42
|
+
3. Add the feature to your backlog via feature extraction
|
|
43
|
+
4. Re-lock the prototype with the new v[N+1] as the reference
|
|
44
|
+
|
|
45
|
+
The original locked snapshot (v[N]) will be preserved alongside the new lock. Ready to proceed?"
|
|
46
|
+
|
|
47
|
+
3. Ask the user:
|
|
48
|
+
|
|
49
|
+
> **How would you like to proceed with adding this feature?**
|
|
50
|
+
> 1. **Proceed with all steps** (Recommended) — Use cases, prototype, extract, and re-lock if applicable
|
|
51
|
+
> 2. **Choose which steps** — Pick which steps to include
|
|
52
|
+
> 3. **Cancel** — Return to normal wizard flow
|
|
53
|
+
|
|
54
|
+
### Step AF2: Capture the Feature Idea
|
|
55
|
+
|
|
56
|
+
Ask the user to describe the new feature. Accept anything from a sentence to a detailed description.
|
|
57
|
+
|
|
58
|
+
Acknowledge with a brief restatement: "Got it — you want to add [summary]. Let me walk you through the updates."
|
|
59
|
+
|
|
60
|
+
### Step AF3: Update Use Cases (if included)
|
|
61
|
+
|
|
62
|
+
Show progress:
|
|
63
|
+
```
|
|
64
|
+
Add Feature: USE-CASES --> prototype --> extract [→ re-lock]
|
|
65
|
+
^^^^^^^^^
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
Invoke the use-cases skill in resume mode. The skill detects the existing `use-cases/` directory and offers to add new use cases.
|
|
69
|
+
|
|
70
|
+
> `Skill: arn-spark:arn-spark-use-cases`
|
|
71
|
+
|
|
72
|
+
Pass context: "The user wants to add a new feature: [user's description from AF2]. Resume the existing use case catalog and add use case(s) for this new behavior."
|
|
73
|
+
|
|
74
|
+
When the skill completes, note which new UC-NNN files were created.
|
|
75
|
+
|
|
76
|
+
### Step AF4: Iterate Clickable Prototype (if included)
|
|
77
|
+
|
|
78
|
+
Show progress:
|
|
79
|
+
```
|
|
80
|
+
Add Feature: use-cases --> PROTOTYPE --> extract [→ re-lock]
|
|
81
|
+
^^^^^^^^^
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
Invoke the clickable-prototype skill. It detects existing versions and offers to iterate. The lock does NOT prevent this — the locked snapshot is in `prototypes/locked/clickable-v[N]/`, while the skill creates a new version in `prototypes/clickable/v[N+1]/`.
|
|
85
|
+
|
|
86
|
+
> `Skill: arn-spark:arn-spark-clickable-prototype`
|
|
87
|
+
|
|
88
|
+
Pass context: "Iterate on the current clickable prototype to add screens for the new feature: [user's description]. New use case(s) added: [UC-NNN list from AF3]."
|
|
89
|
+
|
|
90
|
+
When the skill completes, note the new version number and new screens added.
|
|
91
|
+
|
|
92
|
+
### Step AF5: Add to Feature Backlog (if included)
|
|
93
|
+
|
|
94
|
+
Show progress:
|
|
95
|
+
```
|
|
96
|
+
Add Feature: use-cases --> prototype --> EXTRACT [→ re-lock]
|
|
97
|
+
^^^^^^^
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
Invoke the feature-extract skill. It detects the existing feature backlog and offers to add features.
|
|
101
|
+
|
|
102
|
+
> `Skill: arn-spark:arn-spark-feature-extract`
|
|
103
|
+
|
|
104
|
+
Pass context: "Add a new feature to the backlog for: [user's description]. New use case(s): [UC-NNN list]. New prototype screens: [screen list from AF4]."
|
|
105
|
+
|
|
106
|
+
When the skill completes, note the new F-NNN feature file created.
|
|
107
|
+
|
|
108
|
+
### Step AF6: Re-lock Prototype (if prototype was locked AND prototype step was included)
|
|
109
|
+
|
|
110
|
+
Show progress:
|
|
111
|
+
```
|
|
112
|
+
Add Feature: use-cases --> prototype --> extract --> RE-LOCK
|
|
113
|
+
^^^^^^^
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
The prototype was previously locked at v[N]. A new version v[N+1] has been created and validated. Re-lock to update the reference artifact.
|
|
117
|
+
|
|
118
|
+
> `Skill: arn-spark:arn-spark-prototype-lock`
|
|
119
|
+
|
|
120
|
+
The lock skill detects the existing lock and offers to replace it. It will:
|
|
121
|
+
- Create a new frozen snapshot at `prototypes/locked/clickable-v[N+1]/`
|
|
122
|
+
- Update arness.md `### Prototype Lock` section with new version and date
|
|
123
|
+
- Create a new git tag
|
|
124
|
+
- The original locked snapshot (`prototypes/locked/clickable-v[N]/`) is preserved unless the user chooses to remove it
|
|
125
|
+
|
|
126
|
+
**If prototype was NOT locked or prototype step was skipped:** Skip this step silently.
|
|
127
|
+
|
|
128
|
+
### Step AF7: Summary
|
|
129
|
+
|
|
130
|
+
Show completion:
|
|
131
|
+
```
|
|
132
|
+
Add Feature: use-cases --> prototype --> extract [→ re-lock]
|
|
133
|
+
✓ ✓ ✓ ✓
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
Present what was done:
|
|
137
|
+
- **New use case(s):** UC-NNN: [Title] (or "skipped")
|
|
138
|
+
- **Prototype:** Iterated to v[N+1] with [M] new screens (or "skipped")
|
|
139
|
+
- **Feature backlog:** Added F-NNN: [Feature Name] (or "skipped")
|
|
140
|
+
- **Prototype lock:** Updated to v[N+1] (or "not locked" / "skipped")
|
|
141
|
+
|
|
142
|
+
Offer next steps:
|
|
143
|
+
- "Run `/arn-code-pick-issue` to pick this feature for implementation"
|
|
144
|
+
- "Run `/arn-code-feature-spec F-NNN` to start specifying this feature"
|
|
145
|
+
- "Run `/arn-brainstorming` again to add another feature"
|
|
146
|
+
|
|
147
|
+
## Error Handling
|
|
148
|
+
|
|
149
|
+
- **Use-cases skill fails:** Ask the user: **"Use-cases skill failed. How would you like to proceed?"** 1. Retry / 2. Skip use cases and continue to prototype / 3. Abort. If skip: note that prototype and extract will proceed without UC grounding.
|
|
150
|
+
- **Clickable-prototype skill fails:** Ask the user: **"Clickable-prototype skill failed. How would you like to proceed?"** 1. Retry / 2. Skip prototype and continue to extract / 3. Abort. If skip: note that extract will proceed without new screens, and re-lock will be skipped.
|
|
151
|
+
- **Feature-extract skill fails:** Ask the user: **"Feature-extract skill failed. How would you like to proceed?"** 1. Retry / 2. Create the feature file manually / 3. Abort.
|
|
152
|
+
- **Prototype-lock skill fails during re-lock:** Ask the user: **"Re-lock failed. How would you like to proceed?"** 1. Retry / 2. Skip re-lock / 3. Abort. If skip: Inform "The new prototype v[N+1] was created successfully but is not locked. Run `/arn-spark-prototype-lock` manually when ready."
|
|
153
|
+
- **User cancels mid-flow:** Show what was completed so far. Inform: "Partial updates are preserved. Run the wizard again to continue."
|
|
154
|
+
- **No clickable prototype exists:** This mode requires a completed clickable prototype. If not found, inform: "Add Feature mode requires a completed clickable prototype. Run the full greenfield wizard first." Redirect to normal wizard flow.
|
|
155
|
+
- **Lock exists but PreToolUse hook blocks prototype iteration:** This should not happen because the lock protects the snapshot directory, not the working prototype directory. If it does occur, the hook guard script may have overly broad path matching. Inform: "The prototype lock hook is blocking iteration. Run `/arn-spark-prototype-lock` with a narrower scope, or temporarily remove the hook from `[PLATFORM_CONFIG_DIR]/settings.json`."
|