@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,293 @@
|
|
|
1
|
+
# Spark Knowledge Base
|
|
2
|
+
|
|
3
|
+
Reference documentation for the `arn-spark-doctor` agent. Describes the Arness Spark plugin's pipeline, configuration requirements, expected file structures, common failure modes, and inter-skill data flow.
|
|
4
|
+
|
|
5
|
+
## Pipeline Map
|
|
6
|
+
|
|
7
|
+
### Main Pipeline (Brainstorming Wizard)
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
discover → stress-test → concept-review → naming → arch-vision → use-cases → scaffold → spike → visual-sketch → style-explore → static-prototype → clickable-prototype → prototype-lock → feature-extract
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
The `arn-brainstorming` wizard walks through this pipeline with decision gates, detecting progress and offering to resume at the correct stage.
|
|
14
|
+
|
|
15
|
+
### Stress Testing Suite
|
|
16
|
+
|
|
17
|
+
Four stress test skills run after discovery and before concept review:
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
discover → stress-interview ──┐
|
|
21
|
+
→ stress-competitive ─┤
|
|
22
|
+
→ stress-premortem ───┤ → concept-review
|
|
23
|
+
→ stress-prfaq ───────┘
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Stress tests can run in parallel and produce independent reports. Concept review synthesizes all available stress test findings.
|
|
27
|
+
|
|
28
|
+
### Teams Variants
|
|
29
|
+
|
|
30
|
+
- `arn-spark-use-cases-teams` — team debate variant of use case authoring
|
|
31
|
+
- `arn-spark-static-prototype-teams` — team debate variant of static prototype validation
|
|
32
|
+
- `arn-spark-clickable-prototype-teams` — team debate variant of clickable prototype validation
|
|
33
|
+
|
|
34
|
+
### Standalone Skills
|
|
35
|
+
|
|
36
|
+
- `arn-spark-dev-setup` — development environment setup (can run independently after scaffold)
|
|
37
|
+
- `arn-spark-visual-strategy` — visual testing strategy with layered validation
|
|
38
|
+
- `arn-spark-visual-readiness` — visual readiness checkpoint for deferred layer activation
|
|
39
|
+
|
|
40
|
+
### Entry Point
|
|
41
|
+
|
|
42
|
+
- `arn-brainstorming` — guided wizard that walks through the entire greenfield pipeline with decision gates, detects resume point
|
|
43
|
+
|
|
44
|
+
## Config Requirements
|
|
45
|
+
|
|
46
|
+
The `## Arness` section in arness.md includes Spark-specific fields. Each skill reads specific fields:
|
|
47
|
+
|
|
48
|
+
| Skill | Vision dir | Use cases dir | Prototypes dir | Spikes dir | Visual grounding dir | Reports dir |
|
|
49
|
+
|-------|-----------|---------------|---------------|------------|---------------------|-------------|
|
|
50
|
+
| arn-spark-ensure-config | creates | creates | creates | creates | creates | creates |
|
|
51
|
+
| arn-spark-discover | writes to | - | - | - | - | - |
|
|
52
|
+
| arn-spark-stress-interview | reads (vision) | - | - | - | - | writes to |
|
|
53
|
+
| arn-spark-stress-competitive | reads (vision) | - | - | - | - | writes to |
|
|
54
|
+
| arn-spark-stress-premortem | reads (vision) | - | - | - | - | writes to |
|
|
55
|
+
| arn-spark-stress-prfaq | reads (vision) | - | - | - | - | writes to |
|
|
56
|
+
| arn-spark-concept-review | reads (vision) | - | - | - | - | writes to |
|
|
57
|
+
| arn-spark-naming | reads (vision) | - | - | - | - | writes to |
|
|
58
|
+
| arn-spark-arch-vision | reads (vision) | - | - | - | - | - |
|
|
59
|
+
| arn-spark-use-cases | reads (vision) | writes to | - | - | - | - |
|
|
60
|
+
| arn-spark-use-cases-teams | reads (vision) | writes to | - | - | - | - |
|
|
61
|
+
| arn-spark-scaffold | reads (vision) | - | - | - | - | - |
|
|
62
|
+
| arn-spark-spike | reads (vision) | - | - | reads/writes | - | - |
|
|
63
|
+
| arn-spark-visual-sketch | reads (vision) | - | - | - | writes to | - |
|
|
64
|
+
| arn-spark-style-explore | reads (vision) | - | - | - | writes to | - |
|
|
65
|
+
| arn-spark-static-prototype | reads (vision) | - | reads/writes | - | writes to | - |
|
|
66
|
+
| arn-spark-static-prototype-teams | reads (vision) | - | reads/writes | - | writes to | - |
|
|
67
|
+
| arn-spark-clickable-prototype | reads (vision) | - | reads/writes | - | writes to | - |
|
|
68
|
+
| arn-spark-clickable-prototype-teams | reads (vision) | - | reads/writes | - | writes to | - |
|
|
69
|
+
| arn-spark-prototype-lock | - | - | reads | - | - | - |
|
|
70
|
+
| arn-spark-feature-extract | reads (vision) | reads | reads | reads | reads | writes to |
|
|
71
|
+
| arn-spark-visual-strategy | - | - | - | - | reads | - |
|
|
72
|
+
| arn-spark-visual-readiness | - | - | - | - | reads | - |
|
|
73
|
+
| arn-spark-dev-setup | - | - | - | - | - | - |
|
|
74
|
+
| arn-brainstorming | all (via ensure-config) | all | all | all | all | all |
|
|
75
|
+
|
|
76
|
+
## Expected ## Arness Config Format (Spark Fields)
|
|
77
|
+
|
|
78
|
+
```markdown
|
|
79
|
+
## Arness
|
|
80
|
+
- **Vision directory:** <path>
|
|
81
|
+
- **Use cases directory:** <path>
|
|
82
|
+
- **Prototypes directory:** <path>
|
|
83
|
+
- **Spikes directory:** <path>
|
|
84
|
+
- **Visual grounding directory:** <path>
|
|
85
|
+
- **Reports directory:** <path>
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
Default values (created by arn-spark-ensure-config): Vision directory = `.arness/vision`, Use cases directory = `.arness/use-cases`, Prototypes directory = `.arness/prototypes`, Spikes directory = `.arness/spikes`, Visual grounding directory = `.arness/visual-grounding`, Reports directory = `.arness/reports`.
|
|
89
|
+
|
|
90
|
+
## Expected Directory/File Structure
|
|
91
|
+
|
|
92
|
+
### After arn-spark-discover
|
|
93
|
+
|
|
94
|
+
```
|
|
95
|
+
<vision-dir>/
|
|
96
|
+
└── product-concept.md
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### After stress tests (one or more)
|
|
100
|
+
|
|
101
|
+
```
|
|
102
|
+
<reports-dir>/
|
|
103
|
+
├── stress-interview-report.md (from arn-spark-stress-interview)
|
|
104
|
+
├── stress-competitive-report.md (from arn-spark-stress-competitive)
|
|
105
|
+
├── stress-premortem-report.md (from arn-spark-stress-premortem)
|
|
106
|
+
└── stress-prfaq-report.md (from arn-spark-stress-prfaq)
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
### After arn-spark-concept-review
|
|
110
|
+
|
|
111
|
+
```
|
|
112
|
+
<vision-dir>/
|
|
113
|
+
├── product-concept.md (updated with approved changes)
|
|
114
|
+
└── product-concept-pre-review.md (backup of pre-review version)
|
|
115
|
+
<reports-dir>/
|
|
116
|
+
└── concept-review-report.md
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
### After arn-spark-naming
|
|
120
|
+
|
|
121
|
+
```
|
|
122
|
+
<vision-dir>/
|
|
123
|
+
└── naming-brief.md (includes Final Decision section)
|
|
124
|
+
<reports-dir>/
|
|
125
|
+
└── naming-report.md
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
### After arn-spark-arch-vision
|
|
129
|
+
|
|
130
|
+
```
|
|
131
|
+
<vision-dir>/
|
|
132
|
+
└── architecture-vision.md
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
### After arn-spark-scaffold
|
|
136
|
+
|
|
137
|
+
```
|
|
138
|
+
<project-root>/
|
|
139
|
+
├── package.json (or equivalent)
|
|
140
|
+
├── node_modules/ (or equivalent)
|
|
141
|
+
├── src/ (or framework-specific structure)
|
|
142
|
+
└── ... (framework scaffolded files)
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
### After arn-spark-prototype-lock
|
|
146
|
+
|
|
147
|
+
```
|
|
148
|
+
<prototypes-dir>/
|
|
149
|
+
├── locked/ (frozen prototype copy)
|
|
150
|
+
│ └── ... (snapshot of prototype files)
|
|
151
|
+
└── LOCKED.md (lock manifest with timestamp and git tag)
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
### After arn-spark-feature-extract
|
|
155
|
+
|
|
156
|
+
```
|
|
157
|
+
<reports-dir>/
|
|
158
|
+
└── feature-backlog.md (prioritized feature list with Feature Tracker)
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
## Common Failure Modes
|
|
162
|
+
|
|
163
|
+
| Symptom | Likely Cause | Diagnostic Check |
|
|
164
|
+
|---------|-------------|------------------|
|
|
165
|
+
| product-concept.md not found after discovery | arn-spark-discover did not complete, or Vision directory misconfigured | Check `<vision-dir>/product-concept.md` exists |
|
|
166
|
+
| Stress test reports not in expected directory | Reports directory misconfigured, or stress test did not complete | Check `<reports-dir>/` for `stress-*-report.md` files |
|
|
167
|
+
| naming-brief.md incomplete (no Final Decision section) | Naming skill did not reach Step 4 (due diligence), or user exited early | Check `<vision-dir>/naming-brief.md` for "Final Decision" heading |
|
|
168
|
+
| Scaffold fails (npm/yarn install errors, framework init fails) | Missing Node.js, wrong version, network issues, or framework CLI not available | Run `node --version`, `npm --version`, check network |
|
|
169
|
+
| Playwright not available for prototyping | Playwright not installed or not in PATH | Run `npx playwright --version` |
|
|
170
|
+
| Visual sketch server won't start | Scaffold not completed, dev server config broken, or port conflict | Check scaffold output exists, dev server is runnable |
|
|
171
|
+
| Style brief not generated from visual direction | visual-direction.md missing in Vision directory, or style-explore did not complete | Check `<vision-dir>/visual-direction.md` exists |
|
|
172
|
+
| Static/clickable prototype build fails | Missing dependencies, scaffold incomplete, or style tokens not applied | Check `node_modules/` exists, scaffold files present |
|
|
173
|
+
| Feature extraction finds no upstream artifacts | No product concept, no use cases, no prototype validation reports | Check Vision, Use cases, Prototypes directories for expected files |
|
|
174
|
+
| Visual testing layer activation fails | Visual grounding directory missing or empty, visual strategy not run | Check `<visual-grounding-dir>/` exists and contains assets |
|
|
175
|
+
| Figma/Canva MCP not available | MCP server not configured for design tool integration | Check `.mcp.json` for design tool entries |
|
|
176
|
+
| Use case files not in expected format | Use cases written manually instead of via arn-spark-use-cases skill | Check `<use-cases-dir>/` for `UC-*.md` pattern |
|
|
177
|
+
| Prototype lock LOCKED.md missing | arn-spark-prototype-lock did not complete or Prototypes directory misconfigured | Check `<prototypes-dir>/LOCKED.md` exists |
|
|
178
|
+
| Brainstorming wizard can't detect resume point | Artifacts in unexpected locations, config directories changed after initial run | Check all configured directories match where artifacts were actually written |
|
|
179
|
+
| ensure-config fails to create Spark fields | arness.md not writable, or `## Arness` section has unexpected format | Check arness.md exists and is writable, check `## Arness` section format |
|
|
180
|
+
|
|
181
|
+
## Inter-Skill Data Flow
|
|
182
|
+
|
|
183
|
+
```
|
|
184
|
+
arn-spark-ensure-config
|
|
185
|
+
outputs: ## Arness config in arness.md (Spark fields), directories created
|
|
186
|
+
consumed by: all other Spark skills read ## Arness config
|
|
187
|
+
|
|
188
|
+
arn-spark-discover
|
|
189
|
+
outputs: product-concept.md in <vision-dir>/
|
|
190
|
+
consumed by: stress tests, concept-review, naming, arch-vision, use-cases,
|
|
191
|
+
scaffold (reads product pillars), feature-extract
|
|
192
|
+
|
|
193
|
+
arn-spark-stress-interview
|
|
194
|
+
outputs: stress-interview-report.md in <reports-dir>/
|
|
195
|
+
consumed by: arn-spark-concept-review
|
|
196
|
+
|
|
197
|
+
arn-spark-stress-competitive
|
|
198
|
+
outputs: stress-competitive-report.md in <reports-dir>/
|
|
199
|
+
consumed by: arn-spark-concept-review
|
|
200
|
+
|
|
201
|
+
arn-spark-stress-premortem
|
|
202
|
+
outputs: stress-premortem-report.md in <reports-dir>/
|
|
203
|
+
consumed by: arn-spark-concept-review
|
|
204
|
+
|
|
205
|
+
arn-spark-stress-prfaq
|
|
206
|
+
outputs: stress-prfaq-report.md in <reports-dir>/
|
|
207
|
+
consumed by: arn-spark-concept-review
|
|
208
|
+
|
|
209
|
+
arn-spark-concept-review
|
|
210
|
+
outputs: updated product-concept.md, concept-review-report.md in <reports-dir>/
|
|
211
|
+
consumed by: downstream skills that read product-concept.md
|
|
212
|
+
|
|
213
|
+
arn-spark-naming
|
|
214
|
+
outputs: naming-brief.md in <vision-dir>/, naming-report.md in <reports-dir>/
|
|
215
|
+
consumed by: scaffold (project name), arch-vision (brand context)
|
|
216
|
+
|
|
217
|
+
arn-spark-arch-vision
|
|
218
|
+
outputs: architecture-vision.md in <vision-dir>/
|
|
219
|
+
consumed by: scaffold, spike, use-cases, feature-extract
|
|
220
|
+
|
|
221
|
+
arn-spark-use-cases / arn-spark-use-cases-teams
|
|
222
|
+
outputs: UC-*.md files in <use-cases-dir>/
|
|
223
|
+
consumed by: static-prototype, clickable-prototype, feature-extract
|
|
224
|
+
|
|
225
|
+
arn-spark-scaffold
|
|
226
|
+
outputs: buildable project skeleton at <project-root>/
|
|
227
|
+
consumed by: spike, visual-sketch, style-explore, static-prototype,
|
|
228
|
+
clickable-prototype, dev-setup
|
|
229
|
+
|
|
230
|
+
arn-spark-spike
|
|
231
|
+
outputs: spike results in <spikes-dir>/
|
|
232
|
+
consumed by: visual-sketch (optional), feature-extract
|
|
233
|
+
|
|
234
|
+
arn-spark-visual-sketch
|
|
235
|
+
outputs: visual-direction.md in <vision-dir>/, screenshots in <visual-grounding-dir>/
|
|
236
|
+
consumed by: style-explore
|
|
237
|
+
|
|
238
|
+
arn-spark-style-explore
|
|
239
|
+
outputs: style-brief.md in <vision-dir>/, style tokens in <visual-grounding-dir>/
|
|
240
|
+
consumed by: static-prototype, clickable-prototype
|
|
241
|
+
|
|
242
|
+
arn-spark-static-prototype / arn-spark-static-prototype-teams
|
|
243
|
+
outputs: prototype files in <prototypes-dir>/, validation reports in <reports-dir>/,
|
|
244
|
+
screenshots in <visual-grounding-dir>/
|
|
245
|
+
consumed by: clickable-prototype, prototype-lock, feature-extract
|
|
246
|
+
|
|
247
|
+
arn-spark-clickable-prototype / arn-spark-clickable-prototype-teams
|
|
248
|
+
outputs: interactive prototype in <prototypes-dir>/, journey screenshots in
|
|
249
|
+
<visual-grounding-dir>/, validation reports in <reports-dir>/
|
|
250
|
+
consumed by: prototype-lock, feature-extract
|
|
251
|
+
|
|
252
|
+
arn-spark-prototype-lock
|
|
253
|
+
outputs: locked/ directory in <prototypes-dir>/, LOCKED.md, git tag
|
|
254
|
+
consumed by: development phase (read-only reference)
|
|
255
|
+
|
|
256
|
+
arn-spark-feature-extract
|
|
257
|
+
outputs: feature-backlog.md in <reports-dir>/, optional issue tracker uploads
|
|
258
|
+
consumed by: arn-code-feature-spec (bridges into Arness Code pipeline)
|
|
259
|
+
|
|
260
|
+
arn-brainstorming (entry point)
|
|
261
|
+
inputs: detects current pipeline state from artifacts on disk
|
|
262
|
+
outputs: drives discover → ... → feature-extract
|
|
263
|
+
consumed by: user (full greenfield workflow)
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
## Version History
|
|
267
|
+
|
|
268
|
+
### 1.0.0
|
|
269
|
+
- Initial release: 19 skills + 13 agents for the greenfield exploration pipeline
|
|
270
|
+
- Includes discover, arch-vision, use-cases, scaffold, spike, visual-sketch, style-explore, static-prototype, clickable-prototype, prototype-lock, feature-extract, dev-setup, visual-strategy, visual-readiness
|
|
271
|
+
- Brainstorming wizard for guided pipeline traversal
|
|
272
|
+
- Renamed from nova-green-* to arn-spark-* prefix
|
|
273
|
+
|
|
274
|
+
### 1.1.0
|
|
275
|
+
- AI-assisted discovery enrichment: product-concept sections, market-researcher + persona-architect agents
|
|
276
|
+
- Stress testing suite: stress-interview, stress-competitive, stress-premortem, stress-prfaq
|
|
277
|
+
- Concept review skill for synthesizing stress test findings
|
|
278
|
+
- Brand naming skill with 4-step methodology, brand-strategist agent, WHOIS scripts
|
|
279
|
+
|
|
280
|
+
### 2.0.0
|
|
281
|
+
- Nova to Arness rebrand: all skills/agents renamed from nova-green-*/nova-spark-* to arn-spark-*
|
|
282
|
+
- Directory convention changed from .nova/ to .arness/
|
|
283
|
+
- Config section changed from ## Nova to ## Arness
|
|
284
|
+
|
|
285
|
+
### 2.1.0
|
|
286
|
+
- Progressive zero-config init: arn-spark-ensure-config for automatic setup
|
|
287
|
+
- Deferred pattern docs, welcome/profile flow
|
|
288
|
+
- Teams variants for use cases, static prototype, and clickable prototype
|
|
289
|
+
|
|
290
|
+
## Version Information
|
|
291
|
+
|
|
292
|
+
- Plugin version — read via [PLATFORM_PLUGIN_METADATA] (field: `version`)
|
|
293
|
+
- Skill versions are in each SKILL.md frontmatter (field: `version`)
|
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: arn-spark-scaffold
|
|
3
|
+
description: >-
|
|
4
|
+
This skill should be used when the user says "scaffold", "arn scaffold",
|
|
5
|
+
"set up the project", "create project", "initialize project",
|
|
6
|
+
"bootstrap project", "create the skeleton",
|
|
7
|
+
"install dependencies", "configure the project", or wants to create a working
|
|
8
|
+
project skeleton from architecture decisions with installed dependencies,
|
|
9
|
+
configured build tools, and a UI toolkit ready for development.
|
|
10
|
+
version: 1.0.0
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Arness Scaffold
|
|
14
|
+
|
|
15
|
+
Set up a working project skeleton from architecture vision decisions through guided conversation, aided by the `arn-spark-scaffolder` agent for project creation and optionally the `arn-spark-tech-evaluator` agent for UI toolkit comparisons. This is a conversational skill that runs in normal conversation (NOT plan mode). The primary artifact is a **buildable project** with all dependencies installed and configured.
|
|
16
|
+
|
|
17
|
+
This skill covers the initial project setup: framework scaffolding, dependency installation, build configuration, linting, and UI toolkit setup. It does not implement features, create screens, or write application logic -- those are handled by subsequent skills (`/arn-spark-spike`, `/arn-spark-style-explore`, `/arn-spark-static-prototype`, `/arn-spark-clickable-prototype`).
|
|
18
|
+
|
|
19
|
+
## Prerequisites
|
|
20
|
+
|
|
21
|
+
An architecture vision document must exist. Check in order:
|
|
22
|
+
|
|
23
|
+
1. Read the project's `arness.md` for a `## Arness` section. If found, check the configured Vision directory for `architecture-vision.md`
|
|
24
|
+
2. If no `## Arness` section exists or Arness Spark fields are missing, inform the user: "Arness Spark is not configured for this project yet. Run `/arn-brainstorming` to get started — it will set everything up automatically." Do not proceed without it.
|
|
25
|
+
3. If `## Arness` exists but no architecture vision found, check `.arness/vision/architecture-vision.md` at the project root
|
|
26
|
+
|
|
27
|
+
**If an architecture vision is found:** Read it and proceed to Step 1.
|
|
28
|
+
|
|
29
|
+
**If no architecture vision is found:** Inform the user:
|
|
30
|
+
|
|
31
|
+
"No architecture vision document found. I recommend running `/arn-spark-arch-vision` first to define your technology stack. The scaffold needs to know which frameworks, build tools, and libraries to set up."
|
|
32
|
+
|
|
33
|
+
Do not proceed without an architecture vision or explicit technology stack from the user.
|
|
34
|
+
|
|
35
|
+
Determine the project root:
|
|
36
|
+
1. The project root is the working directory unless the user specifies otherwise
|
|
37
|
+
2. If the project root already contains a `package.json`, `Cargo.toml`, or similar, warn the user: "This directory already has a project manifest. Do you want to extend the existing project or start fresh in a subdirectory?"
|
|
38
|
+
|
|
39
|
+
## Workflow
|
|
40
|
+
|
|
41
|
+
### Step 1: Load Architecture Vision, Product Pillars, and Extract Stack Decisions
|
|
42
|
+
|
|
43
|
+
Read the architecture vision document. Extract technology decisions for each layer:
|
|
44
|
+
|
|
45
|
+
- **Application framework:** e.g., Tauri, Electron, plain web
|
|
46
|
+
- **UI framework:** e.g., Svelte, React, Vue
|
|
47
|
+
- **Language:** e.g., TypeScript, JavaScript
|
|
48
|
+
- **Build tool:** e.g., Vite, webpack
|
|
49
|
+
- **Package manager:** e.g., npm, pnpm, yarn, bun
|
|
50
|
+
- **Test framework:** e.g., Vitest, Jest, Playwright
|
|
51
|
+
- **Linter/formatter:** e.g., ESLint + Prettier, Biome
|
|
52
|
+
|
|
53
|
+
Also load the product concept document (same Vision directory) and extract the **Product Pillars** section if it exists. Pillars guide UI toolkit decisions in Step 2 — for example, a "design fidelity" pillar means the component library must allow full visual customization, while a "simplicity" pillar favors pre-styled components with minimal configuration.
|
|
54
|
+
|
|
55
|
+
Present the extracted stack and relevant pillars to the user:
|
|
56
|
+
|
|
57
|
+
"Based on your architecture vision, here is the stack I will scaffold:
|
|
58
|
+
|
|
59
|
+
| Layer | Technology |
|
|
60
|
+
|-------|-----------|
|
|
61
|
+
| Framework | [value] |
|
|
62
|
+
| UI | [value] |
|
|
63
|
+
| Build | [value] |
|
|
64
|
+
| ... | ... |
|
|
65
|
+
|
|
66
|
+
[If pillars found:] Your product pillars that will guide UI toolkit choices:
|
|
67
|
+
- **[Pillar]:** [what it implies for CSS/component library decisions]
|
|
68
|
+
- ...
|
|
69
|
+
|
|
70
|
+
Ask the user:
|
|
71
|
+
|
|
72
|
+
**"Does this stack look right?"**
|
|
73
|
+
|
|
74
|
+
Options:
|
|
75
|
+
1. **Yes, proceed** — Set up the project with this stack
|
|
76
|
+
2. **Adjust** — I want to change something before proceeding"
|
|
77
|
+
|
|
78
|
+
### Step 2: UI Toolkit Decisions
|
|
79
|
+
|
|
80
|
+
The architecture vision defines the high-level UI framework (e.g., Svelte) but typically does not specify the CSS approach and component library. These decisions happen now because they affect the scaffold setup and all subsequent work (style exploration, prototyping, production code).
|
|
81
|
+
|
|
82
|
+
When product pillars are available, annotate each option with how it serves or challenges the pillars. This helps the user make an informed choice aligned with their product's non-negotiable qualities.
|
|
83
|
+
|
|
84
|
+
**Profile-aware recommendations:** Read user profile from `.arness/profile.yaml`. Also check `.arness/preferences.yaml` for project-level team preferences. If the user lists specific frameworks (e.g., "React"), suggest compatible component libraries the user likely knows. If `development_experience: learning`, favor pre-styled libraries (DaisyUI, Chakra) over headless ones (shadcn, Radix) -- pre-styled libraries have less configuration overhead and visible results faster. If `development_experience: non-technical`, favor the most mainstream option with the largest community and most tutorials. Apply the advisory pattern for all toolkit recommendations: present the technically optimal recommendation first, then a preference-aligned alternative with pros/cons if they differ.
|
|
85
|
+
|
|
86
|
+
Ask the user about each:
|
|
87
|
+
|
|
88
|
+
**CSS approach:**
|
|
89
|
+
|
|
90
|
+
Ask the user:
|
|
91
|
+
|
|
92
|
+
**"Which CSS framework should we use?"**
|
|
93
|
+
|
|
94
|
+
Offer common options for the chosen UI framework, noting pillar alignment where relevant. For example, for Svelte with a "design fidelity" pillar:
|
|
95
|
+
|
|
96
|
+
Options:
|
|
97
|
+
1. **Tailwind CSS** (most popular, utility-first) — Supports design fidelity: fine-grained control over every visual detail
|
|
98
|
+
2. **UnoCSS** (similar to Tailwind, faster build) — Same control as Tailwind, lighter toolchain
|
|
99
|
+
3. **CSS Modules** (scoped styles, no utility framework) — Maximum control but more manual effort
|
|
100
|
+
4. **Vanilla CSS** (no framework, component-scoped styles) — Full freedom but no utility shortcuts
|
|
101
|
+
|
|
102
|
+
**Component library:**
|
|
103
|
+
|
|
104
|
+
Ask the user:
|
|
105
|
+
|
|
106
|
+
**"Which component library should we use?"**
|
|
107
|
+
|
|
108
|
+
Offer common options for the chosen UI framework + CSS approach, noting pillar alignment. For example, for Svelte + Tailwind with a "design fidelity" pillar:
|
|
109
|
+
|
|
110
|
+
Options:
|
|
111
|
+
1. **shadcn-svelte** (headless components, fully customizable) — Strong pillar fit: unstyled primitives give complete visual control
|
|
112
|
+
2. **Skeleton UI** (Svelte-native, Tailwind-based) — Moderate: customizable but has opinionated defaults
|
|
113
|
+
3. **DaisyUI** (Tailwind plugin, pre-styled) — Pillar risk: pre-styled components may conflict with custom design direction
|
|
114
|
+
4. **None** (build custom components) — Maximum control, highest effort
|
|
115
|
+
|
|
116
|
+
Note: Limit to 4 options. If more options exist, group or prioritize based on the chosen framework.
|
|
117
|
+
|
|
118
|
+
**Icon library (optional):**
|
|
119
|
+
|
|
120
|
+
Ask the user:
|
|
121
|
+
|
|
122
|
+
**"Do you want an icon library?"**
|
|
123
|
+
|
|
124
|
+
Options:
|
|
125
|
+
1. **Lucide** — Clean, consistent, popular
|
|
126
|
+
2. **Heroicons** — From the Tailwind team
|
|
127
|
+
3. **None** — Add later if needed
|
|
128
|
+
|
|
129
|
+
If the user is unsure about CSS or component library choices, invoke the `arn-spark-tech-evaluator` agent with a head-to-head comparison request for the specific options — include the product pillars so the evaluator can assess pillar alignment. Present the comparison and let the user decide.
|
|
130
|
+
|
|
131
|
+
Record all UI toolkit decisions for the scaffolder.
|
|
132
|
+
|
|
133
|
+
### Step 3: Invoke Scaffolder
|
|
134
|
+
|
|
135
|
+
Invoke the `arn-spark-scaffolder` agent via the Task tool, passing the model from `.arness/agent-models/spark.md` as the `model` parameter (see `plugins/arn-spark/skills/arn-spark-ensure-config/references/ensure-config.md` "Dispatch convention" for fallback). Context:
|
|
136
|
+
|
|
137
|
+
- All stack decisions from Step 1 (framework, UI, build, package manager, test, linter)
|
|
138
|
+
- All UI toolkit decisions from Step 2 (CSS framework, component library, icon library)
|
|
139
|
+
- Project root path
|
|
140
|
+
- Any configuration preferences the user mentioned
|
|
141
|
+
|
|
142
|
+
The agent creates the project structure, installs dependencies, configures build tools, sets up the UI toolkit, creates a minimal entry point, and runs the build to verify.
|
|
143
|
+
|
|
144
|
+
**Staging behavior:** When using official project creation tools (npm create, etc.), the scaffolder uses a `_scaffold-staging/` subdirectory to avoid overwriting existing project content (`.arness/`, `arness.md`, `.git/`, and any other files already present). Generated files are merged into the project root after creation, skipping any that already exist. The staging directory is removed after a successful merge. On failure, the staging directory is left in place so the user can inspect it.
|
|
145
|
+
|
|
146
|
+
### Step 4: Verify the Scaffold
|
|
147
|
+
|
|
148
|
+
After the scaffolder reports completion, verify using the scaffold checklist:
|
|
149
|
+
|
|
150
|
+
> Read `${CLAUDE_PLUGIN_ROOT}/skills/arn-spark-scaffold/references/scaffold-checklist.md`
|
|
151
|
+
|
|
152
|
+
Walk through all checklist categories:
|
|
153
|
+
|
|
154
|
+
1. **Project structure:** Key directories exist (src/, tests/, config files)
|
|
155
|
+
2. **Dependency management:** Package manifest exists, dependencies installed without errors, lock file present
|
|
156
|
+
3. **Build configuration:** Build tool configured, compiles or bundles without errors
|
|
157
|
+
4. **Linting and formatting:** Linter and formatter configured, run without errors on the minimal code
|
|
158
|
+
5. **Testing framework:** Test runner configured and executes (even with zero tests)
|
|
159
|
+
6. **UI toolkit:** CSS framework configured, component library initialized, a component renders
|
|
160
|
+
7. **Git configuration:** .gitignore is appropriate for the stack
|
|
161
|
+
8. **Minimal entry point:** App starts and renders something visible
|
|
162
|
+
9. **Run instructions:** Dev server, build, test, and lint commands documented
|
|
163
|
+
|
|
164
|
+
For any failed checks:
|
|
165
|
+
- Critical failures (build broken, dependencies not installed): Ask the scaffolder to fix
|
|
166
|
+
- Non-critical gaps (missing .gitignore entry): Note for the user
|
|
167
|
+
|
|
168
|
+
### Step 5: Write Scaffold Summary
|
|
169
|
+
|
|
170
|
+
Write a scaffold summary document so downstream skills have a record of the full technology stack including UI toolkit decisions made during scaffolding.
|
|
171
|
+
|
|
172
|
+
1. Read the template:
|
|
173
|
+
> Read `${CLAUDE_PLUGIN_ROOT}/skills/arn-spark-scaffold/references/scaffold-summary-template.md`
|
|
174
|
+
|
|
175
|
+
2. Populate the template with the scaffolding results:
|
|
176
|
+
- Technology stack with actual installed versions (from the scaffolder's report)
|
|
177
|
+
- UI toolkit decisions from Step 2 (CSS framework, component library, icon library)
|
|
178
|
+
- Pillar alignment assessment (if product pillars exist)
|
|
179
|
+
- Key files created
|
|
180
|
+
- Commands
|
|
181
|
+
- Build verification result
|
|
182
|
+
|
|
183
|
+
3. Determine the output directory:
|
|
184
|
+
- Read the project's `arness.md` for the configured Vision directory
|
|
185
|
+
- If not found, use `.arness/vision` at the project root
|
|
186
|
+
- Create the directory if it does not exist
|
|
187
|
+
|
|
188
|
+
4. Write the document to the Vision directory as `scaffold-summary.md`
|
|
189
|
+
|
|
190
|
+
### Step 6: Present Results and Recommend Next Steps
|
|
191
|
+
|
|
192
|
+
Present what was created:
|
|
193
|
+
|
|
194
|
+
"Project scaffolded successfully. Here is what was set up:
|
|
195
|
+
|
|
196
|
+
**Stack:**
|
|
197
|
+
| Layer | Technology | Version |
|
|
198
|
+
|-------|-----------|---------|
|
|
199
|
+
| ... | ... | ... |
|
|
200
|
+
|
|
201
|
+
**Key files created:**
|
|
202
|
+
- [list of important configuration and entry point files]
|
|
203
|
+
|
|
204
|
+
**Commands:**
|
|
205
|
+
- Dev server: `[command]`
|
|
206
|
+
- Build: `[command]`
|
|
207
|
+
- Test: `[command]`
|
|
208
|
+
- Lint: `[command]`
|
|
209
|
+
|
|
210
|
+
**Build result:** [pass/fail]
|
|
211
|
+
|
|
212
|
+
Scaffold summary saved to `[path]/scaffold-summary.md`.
|
|
213
|
+
|
|
214
|
+
Recommended next steps:
|
|
215
|
+
1. **Set up development environment:** Run `/arn-spark-dev-setup` to configure setup scripts, CI, dev containers, and developer onboarding
|
|
216
|
+
2. **Validate critical risks:** Run `/arn-spark-spike` to test technical risks from your architecture vision
|
|
217
|
+
3. **Explore visual style:** Run `/arn-spark-style-explore` to define the look and feel"
|
|
218
|
+
|
|
219
|
+
Adapt next steps based on context. If the architecture vision identified critical risks, emphasize spiking first. If the user is eager to see UI, suggest style exploration.
|
|
220
|
+
|
|
221
|
+
## Agent Invocation Guide
|
|
222
|
+
|
|
223
|
+
| Situation | Action |
|
|
224
|
+
|-----------|--------|
|
|
225
|
+
| Initial scaffold (Step 3) | Invoke `arn-spark-scaffolder` with full stack + UI toolkit decisions |
|
|
226
|
+
| User unsure about CSS framework | Invoke `arn-spark-tech-evaluator` with comparison request |
|
|
227
|
+
| User unsure about component library | Invoke `arn-spark-tech-evaluator` with comparison request |
|
|
228
|
+
| User asks about code patterns | Defer: "Code patterns will be established when features are built. The scaffold just sets up the foundation." |
|
|
229
|
+
| User asks about features or screens | Defer: "Features come after the scaffold. Next steps are `/arn-spark-spike` or `/arn-spark-style-explore`." |
|
|
230
|
+
| Build fails after scaffold | Ask `arn-spark-scaffolder` to diagnose and fix |
|
|
231
|
+
|
|
232
|
+
## Error Handling
|
|
233
|
+
|
|
234
|
+
- **Architecture vision not found:** Cannot proceed. Suggest `/arn-spark-arch-vision` first.
|
|
235
|
+
- **Project directory already has code:** Warn the user. Offer to extend the existing project or scaffold in a subdirectory.
|
|
236
|
+
- **Scaffold build fails:** Report the error. Invoke scaffolder to fix. If it fails after 3 attempts, present the error and suggest the user investigate manually.
|
|
237
|
+
- **Dependency installation fails:** Check network connectivity. Report the specific package that failed. Suggest the user try installing it manually.
|
|
238
|
+
- **UI toolkit comparison requested but arn-spark-tech-evaluator unavailable:** Provide a brief comparison from general knowledge and note that it was not verified via web search.
|
|
239
|
+
- **User cancels mid-scaffold:** Note what was completed. The user can re-run `/arn-spark-scaffold` to continue or start fresh.
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# Scaffold Checklist
|
|
2
|
+
|
|
3
|
+
This checklist defines what a properly scaffolded project should have. The `arn-spark-scaffold` skill uses it to verify completeness after the `arn-spark-scaffolder` agent finishes. Items are framework-agnostic -- adapt specifics to the chosen stack.
|
|
4
|
+
|
|
5
|
+
## Verification Categories
|
|
6
|
+
|
|
7
|
+
### 1. Project Structure
|
|
8
|
+
|
|
9
|
+
- [ ] Root directory exists with the project name or at the specified path
|
|
10
|
+
- [ ] `src/` directory (or framework equivalent) exists for application source code
|
|
11
|
+
- [ ] Entry point file exists (e.g., `src/main.ts`, `src/App.svelte`, `src/index.tsx`)
|
|
12
|
+
- [ ] Static assets directory exists if applicable (e.g., `public/`, `static/`)
|
|
13
|
+
- [ ] Test directory exists (e.g., `tests/`, `test/`, `__tests__/`)
|
|
14
|
+
|
|
15
|
+
### 2. Dependency Management
|
|
16
|
+
|
|
17
|
+
- [ ] Package manifest exists (e.g., `package.json`, `Cargo.toml`)
|
|
18
|
+
- [ ] Lock file exists (e.g., `package-lock.json`, `pnpm-lock.yaml`, `yarn.lock`, `Cargo.lock`)
|
|
19
|
+
- [ ] Core framework dependencies are installed (not just listed)
|
|
20
|
+
- [ ] Development dependencies are installed (linter, formatter, test framework)
|
|
21
|
+
- [ ] No missing peer dependencies (check install output for warnings)
|
|
22
|
+
|
|
23
|
+
### 3. Build Configuration
|
|
24
|
+
|
|
25
|
+
- [ ] Build tool configuration exists (e.g., `vite.config.ts`, `webpack.config.js`, `tauri.conf.json`)
|
|
26
|
+
- [ ] TypeScript configuration exists if using TypeScript (`tsconfig.json`)
|
|
27
|
+
- [ ] Build command runs without errors
|
|
28
|
+
- [ ] Development server starts without errors (if applicable)
|
|
29
|
+
|
|
30
|
+
### 4. Linting and Formatting
|
|
31
|
+
|
|
32
|
+
- [ ] Linter configuration exists (e.g., `eslint.config.js`, `.eslintrc`, `biome.json`)
|
|
33
|
+
- [ ] Formatter configuration exists (e.g., `.prettierrc`, integrated in biome/eslint)
|
|
34
|
+
- [ ] Linter runs on the minimal source code without errors
|
|
35
|
+
- [ ] Formatter runs without errors
|
|
36
|
+
|
|
37
|
+
### 5. Testing Framework
|
|
38
|
+
|
|
39
|
+
- [ ] Test framework is installed and configured
|
|
40
|
+
- [ ] Test command is defined in package scripts or is runnable
|
|
41
|
+
- [ ] A sample or smoke test can be executed (even if there are no real tests yet)
|
|
42
|
+
- [ ] Test configuration exists if needed (e.g., `vitest.config.ts`, `jest.config.js`)
|
|
43
|
+
|
|
44
|
+
### 6. UI Toolkit (if applicable)
|
|
45
|
+
|
|
46
|
+
- [ ] CSS framework is installed and configured (e.g., Tailwind CSS with `tailwind.config.js`)
|
|
47
|
+
- [ ] CSS framework directives are included in the global stylesheet (e.g., `@tailwind base;`)
|
|
48
|
+
- [ ] PostCSS is configured if required by the CSS framework
|
|
49
|
+
- [ ] Component library is installed and initialized (e.g., shadcn-svelte, Skeleton UI)
|
|
50
|
+
- [ ] Component library theme or base configuration is in place
|
|
51
|
+
- [ ] A component library component renders correctly in the minimal entry point
|
|
52
|
+
|
|
53
|
+
### 7. Git Configuration
|
|
54
|
+
|
|
55
|
+
- [ ] `.gitignore` exists with appropriate entries for the stack (node_modules, dist, build artifacts, OS files)
|
|
56
|
+
- [ ] No sensitive files or large binaries are unignored
|
|
57
|
+
|
|
58
|
+
### 8. Minimal Entry Point
|
|
59
|
+
|
|
60
|
+
- [ ] Application renders something visible (text, a component, a styled element)
|
|
61
|
+
- [ ] Entry point uses the UI framework (not just raw HTML)
|
|
62
|
+
- [ ] If a component library is installed, at least one component is used to verify integration
|
|
63
|
+
- [ ] The entry point is intentionally minimal -- no features beyond proving the stack works
|
|
64
|
+
|
|
65
|
+
### 9. Run Instructions
|
|
66
|
+
|
|
67
|
+
- [ ] Development server command is clear (e.g., `npm run dev`, `cargo tauri dev`)
|
|
68
|
+
- [ ] Build command is clear (e.g., `npm run build`, `cargo tauri build`)
|
|
69
|
+
- [ ] Test command is clear (e.g., `npm test`, `npx vitest`)
|
|
70
|
+
|
|
71
|
+
## How to Use This Checklist
|
|
72
|
+
|
|
73
|
+
The `arn-spark-scaffold` skill should:
|
|
74
|
+
|
|
75
|
+
1. After the `arn-spark-scaffolder` agent reports completion, walk through each applicable category
|
|
76
|
+
2. Skip categories that do not apply to the chosen stack (e.g., skip "UI Toolkit" for a CLI project)
|
|
77
|
+
3. For each failed check, note it as an issue in the scaffold summary
|
|
78
|
+
4. Critical failures (build does not pass, dependencies not installed) should be addressed before proceeding
|
|
79
|
+
5. Non-critical gaps (missing .gitignore entry, no sample test) can be noted for the user to address later
|