@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.
Files changed (130) hide show
  1. package/.claude-plugin/plugin.json +9 -0
  2. package/.opencode/plugins/arn-spark.js +272 -0
  3. package/package.json +17 -0
  4. package/plugins/arn-spark/.claude-plugin/plugin.json +9 -0
  5. package/plugins/arn-spark/LICENSE +21 -0
  6. package/plugins/arn-spark/README.md +25 -0
  7. package/plugins/arn-spark/agents/arn-spark-brand-strategist.md +299 -0
  8. package/plugins/arn-spark/agents/arn-spark-dev-env-builder.md +228 -0
  9. package/plugins/arn-spark/agents/arn-spark-doctor.md +92 -0
  10. package/plugins/arn-spark/agents/arn-spark-forensic-investigator.md +181 -0
  11. package/plugins/arn-spark/agents/arn-spark-market-researcher.md +232 -0
  12. package/plugins/arn-spark/agents/arn-spark-marketing-pm.md +225 -0
  13. package/plugins/arn-spark/agents/arn-spark-persona-architect.md +259 -0
  14. package/plugins/arn-spark/agents/arn-spark-persona-impersonator.md +183 -0
  15. package/plugins/arn-spark/agents/arn-spark-product-strategist.md +191 -0
  16. package/plugins/arn-spark/agents/arn-spark-prototype-builder.md +497 -0
  17. package/plugins/arn-spark/agents/arn-spark-scaffolder.md +228 -0
  18. package/plugins/arn-spark/agents/arn-spark-spike-runner.md +209 -0
  19. package/plugins/arn-spark/agents/arn-spark-style-capture.md +196 -0
  20. package/plugins/arn-spark/agents/arn-spark-tech-evaluator.md +229 -0
  21. package/plugins/arn-spark/agents/arn-spark-ui-interactor.md +235 -0
  22. package/plugins/arn-spark/agents/arn-spark-use-case-writer.md +280 -0
  23. package/plugins/arn-spark/agents/arn-spark-ux-judge.md +215 -0
  24. package/plugins/arn-spark/agents/arn-spark-ux-specialist.md +200 -0
  25. package/plugins/arn-spark/agents/arn-spark-visual-sketcher.md +285 -0
  26. package/plugins/arn-spark/agents/arn-spark-visual-test-engineer.md +224 -0
  27. package/plugins/arn-spark/references/copilot-tools.md +62 -0
  28. package/plugins/arn-spark/skills/arn-brainstorming/SKILL.md +520 -0
  29. package/plugins/arn-spark/skills/arn-brainstorming/references/add-feature-flow.md +155 -0
  30. package/plugins/arn-spark/skills/arn-spark-arch-vision/SKILL.md +226 -0
  31. package/plugins/arn-spark/skills/arn-spark-arch-vision/references/architecture-vision-template.md +153 -0
  32. package/plugins/arn-spark/skills/arn-spark-arch-vision/references/technology-evaluation-guide.md +86 -0
  33. package/plugins/arn-spark/skills/arn-spark-clickable-prototype/SKILL.md +471 -0
  34. package/plugins/arn-spark/skills/arn-spark-clickable-prototype/references/clickable-prototype-criteria.md +65 -0
  35. package/plugins/arn-spark/skills/arn-spark-clickable-prototype/references/journey-template.md +62 -0
  36. package/plugins/arn-spark/skills/arn-spark-clickable-prototype/references/review-report-template.md +75 -0
  37. package/plugins/arn-spark/skills/arn-spark-clickable-prototype/references/showcase-capture-guide.md +213 -0
  38. package/plugins/arn-spark/skills/arn-spark-clickable-prototype-teams/SKILL.md +642 -0
  39. package/plugins/arn-spark/skills/arn-spark-clickable-prototype-teams/references/debate-protocol.md +242 -0
  40. package/plugins/arn-spark/skills/arn-spark-clickable-prototype-teams/references/debate-review-report-template.md +161 -0
  41. package/plugins/arn-spark/skills/arn-spark-clickable-prototype-teams/references/expert-interaction-review-template.md +152 -0
  42. package/plugins/arn-spark/skills/arn-spark-concept-review/SKILL.md +350 -0
  43. package/plugins/arn-spark/skills/arn-spark-concept-review/references/conflict-resolution-protocol.md +145 -0
  44. package/plugins/arn-spark/skills/arn-spark-concept-review/references/review-report-template.md +185 -0
  45. package/plugins/arn-spark/skills/arn-spark-dev-setup/SKILL.md +366 -0
  46. package/plugins/arn-spark/skills/arn-spark-dev-setup/references/dev-setup-checklist.md +84 -0
  47. package/plugins/arn-spark/skills/arn-spark-dev-setup/references/dev-setup-template.md +205 -0
  48. package/plugins/arn-spark/skills/arn-spark-discover/SKILL.md +303 -0
  49. package/plugins/arn-spark/skills/arn-spark-discover/references/competitive-landscape-template.md +87 -0
  50. package/plugins/arn-spark/skills/arn-spark-discover/references/discovery-questions.md +120 -0
  51. package/plugins/arn-spark/skills/arn-spark-discover/references/persona-profile-template.md +97 -0
  52. package/plugins/arn-spark/skills/arn-spark-discover/references/product-concept-template.md +253 -0
  53. package/plugins/arn-spark/skills/arn-spark-ensure-config/SKILL.md +23 -0
  54. package/plugins/arn-spark/skills/arn-spark-ensure-config/references/ensure-config.md +388 -0
  55. package/plugins/arn-spark/skills/arn-spark-ensure-config/references/step-0-fast-path.md +25 -0
  56. package/plugins/arn-spark/skills/arn-spark-ensure-config/scripts/cache-check.sh +127 -0
  57. package/plugins/arn-spark/skills/arn-spark-feature-extract/SKILL.md +483 -0
  58. package/plugins/arn-spark/skills/arn-spark-feature-extract/references/feature-backlog-template.md +176 -0
  59. package/plugins/arn-spark/skills/arn-spark-feature-extract/references/feature-entry-template.md +209 -0
  60. package/plugins/arn-spark/skills/arn-spark-help/SKILL.md +149 -0
  61. package/plugins/arn-spark/skills/arn-spark-help/references/pipeline-map.md +211 -0
  62. package/plugins/arn-spark/skills/arn-spark-init/SKILL.md +312 -0
  63. package/plugins/arn-spark/skills/arn-spark-init/references/agent-models-presets/all-opus.md +23 -0
  64. package/plugins/arn-spark/skills/arn-spark-init/references/agent-models-presets/balanced.md +23 -0
  65. package/plugins/arn-spark/skills/arn-spark-init/references/bkt-setup.md +55 -0
  66. package/plugins/arn-spark/skills/arn-spark-init/references/jira-mcp-setup.md +61 -0
  67. package/plugins/arn-spark/skills/arn-spark-init/references/platform-labels.md +97 -0
  68. package/plugins/arn-spark/skills/arn-spark-naming/SKILL.md +275 -0
  69. package/plugins/arn-spark/skills/arn-spark-naming/references/creative-brief-template.md +146 -0
  70. package/plugins/arn-spark/skills/arn-spark-naming/references/naming-methodology.md +237 -0
  71. package/plugins/arn-spark/skills/arn-spark-naming/references/naming-report-template.md +122 -0
  72. package/plugins/arn-spark/skills/arn-spark-naming/references/trademark-databases.md +88 -0
  73. package/plugins/arn-spark/skills/arn-spark-naming/references/whois-server-map.md +164 -0
  74. package/plugins/arn-spark/skills/arn-spark-naming/scripts/whois-check.js +502 -0
  75. package/plugins/arn-spark/skills/arn-spark-naming/scripts/whois-check.py +533 -0
  76. package/plugins/arn-spark/skills/arn-spark-prototype-lock/SKILL.md +260 -0
  77. package/plugins/arn-spark/skills/arn-spark-prototype-lock/references/lock-report-template.md +68 -0
  78. package/plugins/arn-spark/skills/arn-spark-prototype-lock/references/pretooluse-hook-template.json +35 -0
  79. package/plugins/arn-spark/skills/arn-spark-prototype-lock/references/prototype-guardrail-rules.md +38 -0
  80. package/plugins/arn-spark/skills/arn-spark-report/SKILL.md +144 -0
  81. package/plugins/arn-spark/skills/arn-spark-report/references/issue-template.md +81 -0
  82. package/plugins/arn-spark/skills/arn-spark-report/references/spark-knowledge-base.md +293 -0
  83. package/plugins/arn-spark/skills/arn-spark-scaffold/SKILL.md +239 -0
  84. package/plugins/arn-spark/skills/arn-spark-scaffold/references/scaffold-checklist.md +79 -0
  85. package/plugins/arn-spark/skills/arn-spark-scaffold/references/scaffold-summary-template.md +74 -0
  86. package/plugins/arn-spark/skills/arn-spark-spike/SKILL.md +209 -0
  87. package/plugins/arn-spark/skills/arn-spark-spike/references/spike-report-template.md +123 -0
  88. package/plugins/arn-spark/skills/arn-spark-static-prototype/SKILL.md +362 -0
  89. package/plugins/arn-spark/skills/arn-spark-static-prototype/references/review-report-template.md +65 -0
  90. package/plugins/arn-spark/skills/arn-spark-static-prototype/references/showcase-capture-guide.md +153 -0
  91. package/plugins/arn-spark/skills/arn-spark-static-prototype/references/static-prototype-criteria.md +54 -0
  92. package/plugins/arn-spark/skills/arn-spark-static-prototype-teams/SKILL.md +518 -0
  93. package/plugins/arn-spark/skills/arn-spark-static-prototype-teams/references/debate-protocol.md +230 -0
  94. package/plugins/arn-spark/skills/arn-spark-static-prototype-teams/references/debate-review-report-template.md +148 -0
  95. package/plugins/arn-spark/skills/arn-spark-static-prototype-teams/references/expert-visual-review-template.md +130 -0
  96. package/plugins/arn-spark/skills/arn-spark-stress-competitive/SKILL.md +166 -0
  97. package/plugins/arn-spark/skills/arn-spark-stress-competitive/references/competitive-report-template.md +139 -0
  98. package/plugins/arn-spark/skills/arn-spark-stress-competitive/references/gap-analysis-framework.md +111 -0
  99. package/plugins/arn-spark/skills/arn-spark-stress-interview/SKILL.md +257 -0
  100. package/plugins/arn-spark/skills/arn-spark-stress-interview/references/interview-protocol.md +140 -0
  101. package/plugins/arn-spark/skills/arn-spark-stress-interview/references/interview-report-template.md +165 -0
  102. package/plugins/arn-spark/skills/arn-spark-stress-interview/references/persona-casting-spec.md +138 -0
  103. package/plugins/arn-spark/skills/arn-spark-stress-premortem/SKILL.md +181 -0
  104. package/plugins/arn-spark/skills/arn-spark-stress-premortem/references/premortem-protocol.md +112 -0
  105. package/plugins/arn-spark/skills/arn-spark-stress-premortem/references/premortem-report-template.md +158 -0
  106. package/plugins/arn-spark/skills/arn-spark-stress-prfaq/SKILL.md +206 -0
  107. package/plugins/arn-spark/skills/arn-spark-stress-prfaq/references/prfaq-report-template.md +139 -0
  108. package/plugins/arn-spark/skills/arn-spark-stress-prfaq/references/prfaq-workflow.md +118 -0
  109. package/plugins/arn-spark/skills/arn-spark-style-explore/SKILL.md +281 -0
  110. package/plugins/arn-spark/skills/arn-spark-style-explore/references/style-brief-template.md +198 -0
  111. package/plugins/arn-spark/skills/arn-spark-use-cases/SKILL.md +359 -0
  112. package/plugins/arn-spark/skills/arn-spark-use-cases/references/expert-review-template.md +94 -0
  113. package/plugins/arn-spark/skills/arn-spark-use-cases/references/review-protocol.md +150 -0
  114. package/plugins/arn-spark/skills/arn-spark-use-cases/references/use-case-index-template.md +108 -0
  115. package/plugins/arn-spark/skills/arn-spark-use-cases/references/use-case-template.md +125 -0
  116. package/plugins/arn-spark/skills/arn-spark-use-cases-teams/SKILL.md +306 -0
  117. package/plugins/arn-spark/skills/arn-spark-use-cases-teams/references/debate-protocol.md +272 -0
  118. package/plugins/arn-spark/skills/arn-spark-use-cases-teams/references/review-report-template.md +112 -0
  119. package/plugins/arn-spark/skills/arn-spark-visual-readiness/SKILL.md +293 -0
  120. package/plugins/arn-spark/skills/arn-spark-visual-readiness/references/readiness-checklist.md +196 -0
  121. package/plugins/arn-spark/skills/arn-spark-visual-sketch/SKILL.md +376 -0
  122. package/plugins/arn-spark/skills/arn-spark-visual-sketch/references/aesthetic-philosophy.md +210 -0
  123. package/plugins/arn-spark/skills/arn-spark-visual-sketch/references/sketch-gallery-guide.md +282 -0
  124. package/plugins/arn-spark/skills/arn-spark-visual-sketch/references/visual-direction-template.md +174 -0
  125. package/plugins/arn-spark/skills/arn-spark-visual-strategy/SKILL.md +447 -0
  126. package/plugins/arn-spark/skills/arn-spark-visual-strategy/references/baseline-capture-script-template.js +89 -0
  127. package/plugins/arn-spark/skills/arn-spark-visual-strategy/references/journey-schema.md +375 -0
  128. package/plugins/arn-spark/skills/arn-spark-visual-strategy/references/spike-checklist.md +122 -0
  129. package/plugins/arn-spark/skills/arn-spark-visual-strategy/references/strategy-layers-guide.md +132 -0
  130. package/plugins/arn-spark/skills/arn-spark-visual-strategy/references/visual-strategy-template.md +141 -0
@@ -0,0 +1,471 @@
1
+ ---
2
+ name: arn-spark-clickable-prototype
3
+ description: >-
4
+ This skill should be used when the user says "clickable prototype", "arn
5
+ clickable prototype", "interactive prototype", "test interactions", "validate
6
+ UX", "user journeys", "test navigation", "make it clickable", "prototype
7
+ interactions", "test the prototype", "build the screens", "create the UI",
8
+ "screen mockups", or wants to generate a clickable interactive prototype with
9
+ linked screens and validate it through iterative build-review cycles with
10
+ Playwright-based interaction testing, per-criterion scoring, an independent
11
+ judge verdict, and versioned output.
12
+ version: 1.0.0
13
+ ---
14
+
15
+ # Arness Clickable Prototype
16
+
17
+ Generate a clickable interactive prototype with all main application screens linked together and validate it through iterative build-review cycles, aided by the `arn-spark-prototype-builder` agent for screen creation, the `arn-spark-ui-interactor` agent for Playwright-based interaction testing, `arn-spark-product-strategist` and `arn-spark-ux-specialist` for expert review, and the `arn-spark-ux-judge` agent for an independent final verdict. This is a conversational skill that runs in normal conversation (NOT plan mode).
18
+
19
+ The primary artifacts are **versioned clickable prototype applications**, **journey screenshots** documenting user flows, **review reports** with per-criterion scores, and a **final report** documenting the complete validation history. All output is versioned so the user can compare evolution across cycles.
20
+
21
+ This skill covers interactive behavior validation: do the screens link correctly, do interactions work, can users complete journeys? For visual-only validation of component rendering, use `/arn-spark-static-prototype` first.
22
+
23
+ ## Prerequisites
24
+
25
+ The following artifacts inform the prototype. Check in order:
26
+
27
+ Determine the prototypes output directory:
28
+ 1. Read the project's `arness.md` and check for a `## Arness` section
29
+ 2. If found, extract the configured Prototypes directory path — this is the source of truth
30
+ 3. 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.
31
+ 4. If the directory does not exist, create it
32
+
33
+ > All references to `prototypes/` in this skill refer to the configured prototypes directory determined above.
34
+
35
+ **Product concept (strongly recommended):**
36
+ 1. Read the project's `arness.md` for a `## Arness` section. If found, check the configured Vision directory for `product-concept.md`
37
+ 2. If no `## Arness` section found, check `.arness/vision/product-concept.md` at the project root
38
+
39
+ **Style brief (recommended):**
40
+ 1. Check the configured Vision directory for `style-brief.md`
41
+ 2. If no `## Arness` section found, check `.arness/vision/style-brief.md` at the project root
42
+
43
+ **Architecture vision (for framework context):**
44
+ 1. Check the configured Vision directory for `architecture-vision.md`
45
+ 2. If no `## Arness` section found, check `.arness/vision/architecture-vision.md` at the project root
46
+
47
+ **Static prototype results (optional):**
48
+ 1. Check for `[prototypes-dir]/static/final-report.md` -- if a static prototype was validated, the visual direction is confirmed
49
+
50
+ **Visual grounding assets (recommended):**
51
+ 1. Read the `## Arness` section for the Visual grounding directory path
52
+ 2. Check for assets in `[visual-grounding]/references/`, `[visual-grounding]/designs/`, `[visual-grounding]/brand/`
53
+ 3. Also check the style brief's Visual Grounding section for asset paths and categories
54
+
55
+ If found: visual grounding assets will be provided to expert reviewers and the judge alongside journey screenshots for comparison. The focus is on screen-level layout comparison and overall flow feel, not component-level fidelity (that was validated in the static prototype).
56
+
57
+ **Fresh design assets (optional):**
58
+ 1. Read the `## Arness` section for `Figma` and `Canva` fields
59
+ 2. If either is `yes` AND the visual grounding directory already has assets in `designs/` or `brand/`:
60
+ Ask the user:
61
+
62
+ > **Design assets exist from a previous step. Would you like to pull fresh versions from [Figma/Canva] before starting validation?**
63
+ > 1. **Yes** — Pull fresh design assets
64
+ > 2. **No** — Use existing assets on disk
65
+ - If yes: ask the user to specify which assets to fetch (Figma file URL, page, or frame names / Canva design URL). Use the corresponding MCP to fetch and save to `[visual-grounding]/designs/` or `[visual-grounding]/brand/`. Show a summary of what was downloaded or replaced.
66
+ - If no: proceed with existing assets on disk.
67
+ 3. If either is `yes` but NO existing design assets found in `designs/` or `brand/`:
68
+ Ask the user:
69
+
70
+ > **No design mockups found yet. Would you like to pull design assets from [Figma/Canva]?**
71
+ > 1. **Yes** — Pull design assets now
72
+ > 2. **No** — Proceed without design mockups
73
+ - If yes: same flow as above.
74
+ - If no: proceed without design mockups.
75
+ 4. If neither flag is `yes` or flags are missing: skip silently.
76
+
77
+ **Use cases (recommended):**
78
+ 1. Read the configured Use cases directory from the `## Arness` section (default: `.arness/use-cases`)
79
+ 2. Check for `[use-cases-dir]/README.md`
80
+ 3. If found, scan for `[use-cases-dir]/UC-*.md` files
81
+
82
+ **If use cases are found:** Read the README index and all use case files. Use them alongside the product concept for richer screen and journey derivation (see Step 1b).
83
+
84
+ **If no use cases are found:** Derive screens and journeys from the product concept alone. Note: "No use cases found. Screen derivation will use the product concept directly. Run `/arn-spark-use-cases` first for richer screen derivation from structured behavioral specs."
85
+
86
+ **If a product concept is found:** Use it to derive the screen list and user journeys.
87
+
88
+ **If no product concept is found:** Ask the user to describe the screens and journeys: "No product concept found. Describe the main screens of your application and the key user flows, and I will create the prototype from your description."
89
+
90
+ **If a style brief is found:** Apply the visual style to all screens.
91
+
92
+ **If no style brief is found:** Use sensible defaults for the installed component library. Note: "No style brief found. The prototype will use default styling. Run `/arn-spark-style-explore` first for a custom visual direction."
93
+
94
+ **Project scaffold:** The project must be scaffolded with the UI framework and component library installed. If not, inform the user: "The project needs to be scaffolded before building a prototype. Run `/arn-spark-scaffold` first."
95
+
96
+ ## Workflow
97
+
98
+ ### Step 1: Detect Resume or Fresh Start
99
+
100
+ Check for existing versioned output:
101
+
102
+ 1. Look for `prototypes/clickable/v*/` directories at the project root
103
+ 2. If versions exist, find the highest version number
104
+
105
+ **If existing versions found:**
106
+
107
+ Ask the user:
108
+
109
+ **"I found existing clickable prototype versions up to v[N]. Which would you prefer?"**
110
+
111
+ Options:
112
+ 1. **Continue from v[N]** — I will read the latest review report and continue with new cycles
113
+ 2. **Fresh start** — I will begin from v1 (existing versions are preserved)
114
+
115
+ If continuing: read `prototypes/clickable/v[N]/review-report.md` to understand the current state and what was flagged. Ask the user for the new cycle budget and any focus refinements.
116
+
117
+ **If no existing versions:** Proceed to Step 1b.
118
+
119
+ ### Step 1b: Derive Screen List and User Journeys
120
+
121
+ Load the product concept and extract screens and journeys:
122
+
123
+ **Screens:** Extract from the core experience:
124
+ - Each interaction mode suggests one or more screens
125
+ - Each user journey implies a sequence of screens
126
+ - Administrative functions suggest their own screens
127
+ - Check architecture vision for platform-specific screens
128
+ - Check style brief sample screens if any exist
129
+ - **Derive state-specific screens:** Each distinct state of a major screen should be a separate navigable view (e.g., a connection screen in "searching", "found", "pairing", "connected" states; a main view in "active", "muted", "idle", "offline" states). This makes every meaningful state individually navigable, screenshottable, and testable rather than hiding states behind runtime interactions that may be hard to trigger.
130
+
131
+ **Screen organization:** Group screens by functional area (e.g., setup flow, main experience, settings). The builder will create:
132
+ - A **hub screen** grouping all areas with screen counts and descriptions as the prototype entry point
133
+ - **Sequential prev/next navigation** within each group for guided walkthroughs
134
+ - **Persistent navigation** across all screens showing the current group
135
+
136
+ This structure supports both human reviewers (who can explore freely or follow a guided path) and automated testing tools (which can discover screens from the hub and follow linear navigation).
137
+
138
+ **If use cases are available, also derive screens from them:**
139
+ - Each use case main success scenario implies a screen sequence (each step where the system presents information or the actor interacts with the UI suggests a screen or screen state)
140
+ - Each extension/alternate flow may imply additional screens or states not visible in the main scenario (error screens, confirmation dialogs, empty states, timeout states)
141
+ - Use case preconditions may imply prerequisite screens (e.g., "Device is paired" implies a pairing completion screen exists)
142
+ - If use case files contain screen references, cross-reference them with the derived screen list
143
+ - Merge use case screens with product concept screens: product concept provides broad strokes (interaction modes, administrative functions), use cases provide fine-grained states and flows. For each use case, check if its steps map to existing screens. If yes, enrich those screens with state-specific views. If no, add new screens.
144
+
145
+ **User journeys:** Derive from use cases (preferred) or product concept user flows:
146
+ - If use cases exist: each user-goal level use case maps directly to a user journey. The main success scenario steps become the journey steps. Extensions become alternate journey paths or error scenarios to test.
147
+ - If no use cases: extract from user flows in the product concept. Each primary user goal becomes a journey.
148
+ - Read the journey template for structure:
149
+ > Read `${CLAUDE_PLUGIN_ROOT}/skills/arn-spark-clickable-prototype/references/journey-template.md`
150
+
151
+ Propose the screen list and journeys:
152
+
153
+ "Based on your product concept, here are the screens and user journeys:
154
+
155
+ **Screens** (grouped by area):
156
+ | Area | # | Screen | Description | Links To |
157
+ |------|---|--------|-------------|----------|
158
+ | [area] | 1 | [Name] | [description] | Screens 2, 3 |
159
+ | ... | ... | ... | ... | ... |
160
+
161
+ **Navigation flow:**
162
+ ```
163
+ [Hub] --> [Area 1: Screen 1] --> [Screen 2] --> [Screen 3]
164
+ |
165
+ +--> [Area 2: Screen 4] --> [Screen 5]
166
+ ```
167
+
168
+ **User Journeys:**
169
+ | # | Journey | Steps | Goal |
170
+ |---|---------|-------|------|
171
+ | 1 | [Name] | [count] | [what the user accomplishes] |
172
+ | ... | ... | ... | ... |
173
+
174
+ Adjust screens, navigation, or journeys before I proceed."
175
+
176
+ Wait for user confirmation or adjustments.
177
+
178
+ ### Step 2: Configure Validation Parameters
179
+
180
+ Present defaults and ask the user to confirm or adjust:
181
+
182
+ "Let me set up the validation parameters:
183
+
184
+ **Scoring:**
185
+ - **Scale:** 1-5 (1 = unmet, 5 = exemplary)
186
+ - **Minimum threshold:** 4 (every criterion must score at least 4)
187
+ - **Max cycles:** 3 (build-review iterations before judge review)
188
+
189
+ **Criteria:** Based on your screens and journeys, here are the proposed criteria:
190
+
191
+ | # | Criterion | Description |
192
+ |---|-----------|-------------|
193
+ | 1 | [criterion] | [description] |
194
+ | ... | ... | ... |
195
+
196
+ Adjust any parameter or criterion, or confirm to proceed."
197
+
198
+ To propose criteria:
199
+ 1. Read the default criteria template:
200
+ > Read `${CLAUDE_PLUGIN_ROOT}/skills/arn-spark-clickable-prototype/references/clickable-prototype-criteria.md`
201
+ 2. Adapt based on the screen list and journeys (add journey-specific criteria, remove inapplicable ones)
202
+ 3. Incorporate relevant items from these additional categories if not already covered: screen completeness, navigation, visual style consistency, component library usage, content quality, responsive considerations, and build/run verification
203
+ 4. Present the adapted list
204
+
205
+ When the user confirms, write the agreed criteria to `prototypes/criteria.md` (create `prototypes/` directory if needed). If the file already exists from a static prototype run:
206
+
207
+ Ask the user:
208
+
209
+ > **Criteria file already exists from the static prototype. What would you like to do?**
210
+ > 1. **Reuse** — Use existing criteria as-is
211
+ > 2. **Merge** — Combine existing with clickable-specific criteria
212
+ > 3. **Replace** — Define new criteria from scratch
213
+
214
+ ### Step 3: Create Task List
215
+
216
+ Create the task structure for the validation run. For max_cycles=N:
217
+
218
+ - Task pairs: Build v[X] + Validate v[X] for each cycle
219
+ - Judge review task
220
+ - User review task
221
+
222
+ Example for max_cycles=3 (starting from v1):
223
+ ```
224
+ Task 1: Build v1
225
+ Task 2: Validate v1
226
+ Task 3: Build v2
227
+ Task 4: Validate v2
228
+ Task 5: Build v3
229
+ Task 6: Validate v3
230
+ Task 7: Judge review
231
+ Task 8: User review
232
+ ```
233
+
234
+ If resuming from v[N], number versions sequentially from v[N+1].
235
+
236
+ Present the task list to the user and proceed.
237
+
238
+ ### Step 4: Build-Review Cycle (Iterative)
239
+
240
+ For each cycle:
241
+
242
+ #### 4a: Build
243
+
244
+ Invoke the `arn-spark-prototype-builder` 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:
245
+ - **Screen list:** with descriptions and navigation flow
246
+ - **Style brief:** toolkit configuration section
247
+ - **UI framework and component library:** from architecture vision or the project's dependency configuration
248
+ - **Project root path**
249
+ - **Output path:** `prototypes/clickable/v[N]/app/`
250
+ - **Reference images (if available):** captured screenshots or user-provided images
251
+ - **Previous review feedback (if not first cycle):** failing criteria details, journey failure evidence, and improvement suggestions from the previous cycle's review report
252
+ - **Animation specs (if style brief has Animation and Motion section):** Pass the full Animation and Motion section from the style brief. Instruct the builder: "Implement all specified animations. The prototype must demonstrate the motion experience, not just the static layout."
253
+
254
+ Mark the Build task as in_progress before invoking, completed after.
255
+
256
+ #### 4b: Interaction Testing
257
+
258
+ Start the prototype so it can be interacted with:
259
+ 1. Determine how to run the prototype from the project configuration (e.g., a dev server command, an application launcher, a build-and-open step -- whatever the framework requires)
260
+ 2. Start the prototype in the background via Bash
261
+ 3. Wait for it to be ready (e.g., poll a URL for web-based prototypes, wait for the process to report ready)
262
+ 4. Note the process ID for cleanup
263
+
264
+ Then invoke the `arn-spark-ui-interactor` 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:
265
+ - **Prototype URL or access point:** how to reach the running prototype (e.g., a URL for web-based, or launch instructions for native)
266
+ - **User journey definitions:** the journeys agreed in Step 1b/Step 2
267
+ - **Output path:** `prototypes/clickable/v[N]/journeys/`
268
+
269
+ If Playwright is unavailable, inform the user and ask them to manually walk through the journeys and provide screenshots. Note the limitation in the review report.
270
+
271
+ After the interactor completes, stop the prototype (kill the background process).
272
+
273
+ #### 4c: Expert Review
274
+
275
+ Invoke `arn-spark-product-strategist` and `arn-spark-ux-specialist` in parallel. Both agents receive the same inputs:
276
+
277
+ - Journey screenshots, criteria list, scoring scale, threshold, style brief, product concept, and the interaction report
278
+ - If visual grounding assets are available, include them with category context:
279
+ - **References:** "These are inspirational references. Assess whether the screen layouts and overall flow feel align with the reference direction."
280
+ - **Designs:** "These are design mockups (specification). Assess whether screen layouts match the design mockups in structure, component placement, and flow."
281
+ - **Brand:** "These are brand constraints. Verify brand elements appear correctly across all screens."
282
+ - **Animation reference (if style brief has Animation and Motion section):** Pass the style brief's Animation and Motion section so reviewers can compare animation implementation against specification.
283
+ - Request per-criterion scores and feedback from each agent.
284
+
285
+ After both agents complete:
286
+
287
+ For each criterion, use the LOWER of the two expert scores as the combined score. If only one expert is available (e.g., `arn-spark-ux-specialist` is not accessible), use that single expert's scores as the combined scores and note the limitation in the review report.
288
+
289
+ #### 4d: Evaluate and Record
290
+
291
+ 1. Check all combined scores against the minimum threshold
292
+ 2. Read the review report template:
293
+ > Read `${CLAUDE_PLUGIN_ROOT}/skills/arn-spark-clickable-prototype/references/review-report-template.md`
294
+ 3. Write the review report to `prototypes/clickable/v[N]/review-report.md`
295
+ 4. Write version notes to `prototypes/clickable/v[N]/version-notes.md`
296
+
297
+ **If ALL criteria pass:** Mark the Validate task as completed. Skip remaining cycles and proceed to Step 5 (Judge Review).
298
+
299
+ **If ANY criterion fails:**
300
+ - Mark the Validate task as completed
301
+ - Present the failing criteria with journey evidence to the user
302
+ - Feed the failing criteria details, journey failure screenshots, and improvement suggestions to the next cycle's Build step
303
+ - Proceed to the next cycle (or Step 5 if this was the last cycle)
304
+
305
+ ### Step 5: Judge Review
306
+
307
+ Start the prototype for the judge's interactive review using the same procedure as Step 4b:
308
+ 1. Determine how to run the prototype from the project configuration
309
+ 2. Start the prototype in the background via Bash
310
+ 3. Wait for it to be ready
311
+ 4. Note the process ID for cleanup
312
+
313
+ If the prototype fails to start, fall back to invoking the judge in `static` mode using the journey screenshots from the latest Step 4b cycle. Note the limitation in the final report.
314
+
315
+ Once the prototype is running, invoke the `arn-spark-ux-judge` 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:
316
+ - **Review mode:** `interactive` -- the judge navigates the prototype firsthand rather than reviewing static screenshots
317
+ - **Prototype URL or access point:** how to reach the running prototype
318
+ - **Criteria list:** from `prototypes/criteria.md`
319
+ - **Scoring scale and minimum threshold**
320
+ - **Style brief and product concept**
321
+ - **Visual grounding assets (if available):** provide all three categories with context so the judge can compare screen layouts and flow against reference images, design mockups, and brand assets during interactive navigation
322
+ - **Version number**
323
+ - **Journey definitions:** from Step 1b/Step 2 (for context, not as a script -- the judge navigates freely)
324
+ - **Previous review reports:** the latest version's review-report.md
325
+
326
+ The judge will navigate the prototype via Playwright, experience transitions, test interactions, capture its own screenshots as evidence, and score each criterion based on firsthand experience. After the judge completes, stop the prototype.
327
+
328
+ Write the judge's report to `prototypes/clickable/v[N]/judge-report.md`.
329
+
330
+ **If Judge returns PASS:** Proceed to Step 5b.
331
+
332
+ **If Judge returns FAIL and cycle budget remains:**
333
+ - Present the judge's failing criteria to the user
334
+ - Calculate remaining budget
335
+ Ask the user:
336
+
337
+ > **The judge flagged [N] criteria below threshold. You have [M] cycles remaining. Run more fix cycles?**
338
+ > 1. **Yes** — Run [M] more fix cycles
339
+ > 2. **No** — Proceed with current results
340
+
341
+ - If **Yes**: create new Build+Validate task pairs, return to Step 4
342
+ - If **No**: proceed to Step 5b with the judge's report
343
+
344
+ **If Judge returns FAIL and no budget remains:** Proceed to Step 5b with the judge's report.
345
+
346
+ ### Step 5b: Generate Visual Showcase
347
+
348
+ Generate structured visual assets so the user can review all screens and journey flows at a glance without running the dev server.
349
+
350
+ 1. Read the showcase capture guide:
351
+ > Read `${CLAUDE_PLUGIN_ROOT}/skills/arn-spark-clickable-prototype/references/showcase-capture-guide.md`
352
+
353
+ 2. Read the screen manifest from `prototypes/clickable/v[N]/screen-manifest.json` (written by the prototype builder). If the manifest does not exist, note the limitation and capture the hub page only.
354
+
355
+ 3. Start the prototype dev server using the same procedure as Step 4b.
356
+
357
+ 4. Generate a Playwright capture script following the capture guide:
358
+ - Navigate to each screen route from the manifest
359
+ - Capture a full-viewport screenshot per screen, grouped by functional area
360
+ - Capture dark mode variants if the prototype has a dark/light toggle
361
+ - Save per-screen screenshots to `prototypes/clickable/v[N]/showcase/screens/`
362
+
363
+ Write the script to `prototypes/clickable/v[N]/showcase/capture-script.js` so the user can re-run it.
364
+
365
+ 5. Run the capture script via Bash.
366
+
367
+ 6. Stop the prototype dev server.
368
+
369
+ 7. Organize the journey gallery: read existing journey screenshots from `prototypes/clickable/v[N]/journeys/` (captured during Step 4b). These are referenced in the showcase index, not copied.
370
+
371
+ 8. Write `prototypes/clickable/v[N]/showcase/showcase-index.md` — a self-contained markdown document with:
372
+ - Version, judge verdict, date, screen count, journey count
373
+ - Scores summary table
374
+ - **Screen Gallery:** all screens grouped by functional area, each with embedded image
375
+ - **Journey Gallery:** each journey as a visual sequence with step labels, screenshots, and outcomes
376
+ - Dark mode section (if applicable)
377
+
378
+ If Playwright is unavailable, skip screen capture but still organize the journey gallery from existing screenshots. Inform the user: "Playwright is not available for screen capture. Journey screenshots from interaction testing are included. The full prototype can be viewed by running the dev server."
379
+
380
+ ### Step 6: User Review
381
+
382
+ Present the complete validation history:
383
+
384
+ "**Clickable prototype validation complete.**
385
+
386
+ **Latest version:** v[N]
387
+ **Judge verdict:** [PASS / FAIL]
388
+
389
+ **Version history:**
390
+ | Version | Criteria Passing | Criteria Failing | Journeys OK | Notable Changes |
391
+ |---------|-----------------|------------------|-------------|----------------|
392
+ | v1 | [X]/[M] | [Y] | [J1]/[J2] | Initial build |
393
+ | v2 | [X]/[M] | [Y] | [J1]/[J2] | [summary of fixes] |
394
+ | ... | ... | ... | ... | ... |
395
+
396
+ **Final scores (v[N]):**
397
+ | # | Criterion | Expert Score | Judge Score | Status |
398
+ |---|-----------|-------------|-------------|--------|
399
+ | 1 | [name] | [score] | [score] | PASS/FAIL |
400
+ | ... | ... | ... | ... | ... |
401
+
402
+ The prototype is at `prototypes/clickable/v[N]/app/`.
403
+ [If showcase images were generated:] Visual showcase is at `prototypes/clickable/v[N]/showcase/showcase-index.md` — open this file to see all screens and journey flows at a glance without running the dev server.
404
+
405
+ Ask the user:
406
+
407
+ > **Are you satisfied with this result?**
408
+ > 1. **Yes, finalize** — Write the final report
409
+ > 2. **Run additional cycles** — Return to Step 2 with new parameters"
410
+
411
+ If the user chooses **Run additional cycles**, return to Step 2 with new parameters.
412
+
413
+ ### Step 7: Write Final Report
414
+
415
+ Write `prototypes/clickable/final-report.md` with:
416
+ - Complete version history and all scores
417
+ - Judge verdict and report (from `prototypes/clickable/v[N]/judge-report.md`)
418
+ - User decision
419
+ - Criteria and journey definitions used
420
+ - Links to all version directories
421
+ - Link to the visual showcase (`prototypes/clickable/v[N]/showcase/showcase-index.md`) if generated
422
+
423
+ ### Step 8: Recommend Next Steps
424
+
425
+ "Clickable prototype validation complete. Results saved to `prototypes/clickable/`.
426
+
427
+ Recommended next steps:
428
+ 1. **Lock the prototype:** Run `/arn-spark-prototype-lock` to freeze a snapshot of the validated prototype before development modifies shared source files
429
+ 2. **Set up dev environment:** Run `/arn-spark-dev-setup` to configure the development environment
430
+ 3. **Define visual testing:** Run `/arn-spark-visual-strategy` to set up visual regression testing against the prototype
431
+ 4. **Extract features:** Run `/arn-spark-feature-extract` to create a prioritized feature backlog from the product concept and prototype
432
+
433
+ The prototype serves as a visual reference during feature development. Locking it first ensures the reference is preserved even as production code evolves."
434
+
435
+ ## Agent Invocation Guide
436
+
437
+ | Situation | Action |
438
+ |-----------|--------|
439
+ | Build prototype screens (Step 4a) | Invoke `arn-spark-prototype-builder` with screen list, style, framework, output path, and previous review feedback |
440
+ | Test user journeys (Step 4b) | Start the prototype, invoke `arn-spark-ui-interactor` with access point, journeys, and output path. Stop the prototype after. |
441
+ | Expert review (Step 4c) | Invoke `arn-spark-product-strategist` and `arn-spark-ux-specialist` in parallel with journey screenshots, criteria, scoring parameters, and visual grounding assets (with category context). After both complete, take the LOWER score per criterion. |
442
+ | Judge review (Step 5) | Start the prototype, invoke `arn-spark-ux-judge` in `interactive` mode with prototype URL, criteria, scoring parameters, journey definitions, review reports, and visual grounding assets for comparison. Stop the prototype after. If prototype fails to start, fall back to `static` mode with journey screenshots. |
443
+ | Generate visual showcase (Step 5b) | Read the showcase capture guide, start the prototype, generate and run a Playwright capture script per the screen manifest, organize journey screenshots, write `showcase-index.md`. Skip screen capture if Playwright unavailable. |
444
+ | User wants targeted screen updates | Invoke `arn-spark-prototype-builder` with specific screen changes only |
445
+ | User wants to re-test a specific journey | Invoke `arn-spark-ui-interactor` with just that journey |
446
+ | User asks about visual-only validation | Suggest `/arn-spark-static-prototype` for component showcase validation |
447
+ | User asks about style changes | Defer to `/arn-spark-style-explore` for style brief updates |
448
+ | User asks about features | Defer: "Feature work starts after `/arn-spark-feature-extract`. If Arness Code is installed, continue with `/arn-code-feature-spec` for detailed specifications." |
449
+ | Builder fails | Retry up to 3 times. If still failing, present the error for manual investigation. |
450
+ | Interactor reports Playwright unavailable | Fall back to manual journey testing. User walks through and provides screenshots. |
451
+ | Expert returns unhelpful scores | Re-invoke with more specific prompt referencing exact criteria and journey screenshots. |
452
+
453
+ ## Error Handling
454
+
455
+ - **No product concept found:** Proceed with user's verbal screen and journey descriptions.
456
+ - **No style brief found:** Use component library defaults. Note that `/arn-spark-style-explore` can be run for custom styling.
457
+ - **Project not scaffolded:** Cannot build prototype. Suggest `/arn-spark-scaffold` first.
458
+ - **Builder fails (3 times):** Present the error for manual investigation.
459
+ - **Playwright unavailable for interaction testing:** Fall back to manual testing. User walks through journeys and provides screenshots. The skill continues without automated interaction capture.
460
+ - **Prototype fails to start (Step 4b):** Check for port conflicts, build errors, missing dependencies. Present the error.
461
+ - **Prototype fails to start (Step 5 judge review):** Fall back to invoking the judge in `static` mode using journey screenshots from the latest interaction testing cycle. Note the limitation in the final report.
462
+ - **Journey interaction fails (3 consecutive):** The interactor abandons the journey. Note it in the review. The expert reviewers assess based on available screenshots.
463
+ - **Expert returns unhelpful scores:** Re-invoke with more specific prompt.
464
+ - **arn-spark-ux-specialist unavailable:** Proceed with `arn-spark-product-strategist` as the sole expert reviewer. Use its scores directly as the combined scores. Note the limitation in the review report.
465
+ - **Judge unavailable:** The user becomes the judge.
466
+ - **Playwright unavailable for showcase (Step 5b):** Skip screen capture. Journey screenshots from interaction testing are still organized into the showcase index. Inform the user the full prototype can be viewed by running the dev server.
467
+ - **Screen manifest missing (Step 5b):** The builder did not write `screen-manifest.json`. Capture the hub page only. Note: "Screen manifest not found. Only hub capture produced. Re-build the prototype to generate per-screen captures."
468
+ - **Resume from interrupted cycle:** Detect the latest version directory. If it has a review-report.md, continue from the next cycle. If it has app files but no review-report.md, run review on the existing build.
469
+ - **Criteria file exists from static prototype:** Ask whether to reuse criteria, merge with clickable-specific criteria, or define new ones.
470
+ - **Too many screens (>10-12):** Suggest prioritizing core screens for initial cycles. Secondary screens can be added in follow-up.
471
+ - **Writing the document fails:** Print the full content in the conversation.
@@ -0,0 +1,65 @@
1
+ # Clickable Prototype Default Criteria
2
+
3
+ This template provides the default criteria for interaction validation of clickable prototypes. The `arn-spark-clickable-prototype` skill proposes these criteria based on available project artifacts (product concept, style brief, screen list). The user confirms or adjusts before validation begins.
4
+
5
+ ## Default Criteria
6
+
7
+ ### Navigation
8
+
9
+ | # | Criterion | Description |
10
+ |---|-----------|-------------|
11
+ | 1 | Screen reachability | Every screen is reachable from the navigation index and via the defined navigation flow |
12
+ | 2 | Navigation consistency | Navigation elements (nav bar, sidebar, breadcrumbs) appear consistently and indicate the current location |
13
+ | 3 | Back navigation | Users can return to previous screens without using the browser back button |
14
+ | 4 | No dead ends | Every screen has at least one navigation path forward or back |
15
+
16
+ ### Interaction
17
+
18
+ | # | Criterion | Description |
19
+ |---|-----------|-------------|
20
+ | 5 | Clickable elements respond | All buttons, links, and interactive elements respond to clicks (visual feedback or navigation) |
21
+ | 6 | Form elements functional | Input fields accept text, dropdowns open, checkboxes toggle, selects work |
22
+ | 7 | State changes visible | Interactive state changes (selected, active, expanded, collapsed) are visually clear |
23
+ | 8 | Transition smoothness | Page transitions and component state changes are smooth, not jarring or broken. Animations use appropriate easing and duration for the platform. |
24
+ | 9 | Animation implementation | If the style brief has an Animation and Motion section: all specified animations are implemented with the correct approach, triggers, and behavior. Entrance sequences play on the documented triggers. State transitions match specified timing. Animation descriptions in the style brief use platform-agnostic intent language — the prototype translates that intent to the project's specific technology. |
25
+
26
+ ### User Journeys
27
+
28
+ | # | Criterion | Description |
29
+ |---|-----------|-------------|
30
+ | 10 | Journey completability | Each defined user journey can be completed from start to finish without errors |
31
+ | 11 | Journey clarity | At each step of a journey, the next action is obvious to the user |
32
+ | 12 | Error state handling | If the prototype shows error states, they are visually clear and provide guidance |
33
+
34
+ ### Visual Consistency
35
+
36
+ | # | Criterion | Description |
37
+ |---|-----------|-------------|
38
+ | 13 | Style brief adherence | Visual style (colors, typography, spacing) matches the style brief across all screens |
39
+ | 14 | Component consistency | Same component types look and behave the same across all screens |
40
+ | 15 | Responsive behavior | If specified: layout adapts correctly at target viewport sizes |
41
+
42
+ ### Build Quality
43
+
44
+ | # | Criterion | Description |
45
+ |---|-----------|-------------|
46
+ | 16 | No JavaScript errors | Prototype runs without console errors during normal interaction |
47
+ | 17 | No broken assets | All images, icons, and fonts load correctly |
48
+
49
+ ## Adapting Criteria
50
+
51
+ - **If no style brief exists:** Remove criteria 13-14. Focus on navigation and interaction.
52
+ - **If no user journeys are defined:** Remove criteria 10-12. Add them once journeys are defined.
53
+ - **If desktop-only (no responsive):** Remove criterion 15.
54
+ - **If specific interaction patterns were discussed:** Add per-pattern criteria (e.g., drag-and-drop, keyboard navigation, accessibility).
55
+ - **If reference images exist** (in visual grounding `references/`): Add criterion:
56
+ "Reference alignment — screen layouts and overall flow feel align with the reference direction"
57
+ - **If design mockups exist** (in visual grounding `designs/`): Add criterion:
58
+ "Design fidelity — screen layouts match the provided design mockups in structure, component placement, and flow"
59
+ - **If brand assets exist** (in visual grounding `brand/`): Add criterion:
60
+ "Brand compliance — brand elements appear correctly across all screens"
61
+
62
+ - **If no style brief Animation section exists or it says "none":** Remove criterion 9 (Animation implementation). Criterion 8 (Transition smoothness) still applies to basic transitions.
63
+ - **If style brief specifies animations:** Both criteria 8 and 9 apply. Pass the style brief's Animation and Motion section to expert reviewers and the judge so they can compare implementation against specification.
64
+
65
+ The user may add, remove, or modify any criterion before validation begins.
@@ -0,0 +1,62 @@
1
+ # User Journey Template
2
+
3
+ Use this template to define user journeys for the clickable prototype validation. Each journey describes a sequence of interactions a user would perform to accomplish a goal.
4
+
5
+ ```markdown
6
+ ## Journey: [Name]
7
+
8
+ **Goal:** [What the user is trying to accomplish]
9
+ **Starting point:** [Where the journey begins, e.g., "Home screen", "/settings"]
10
+
11
+ ### Steps
12
+
13
+ | # | Action | Target | Expected Outcome |
14
+ |---|--------|--------|-----------------|
15
+ | 1 | Navigate | [URL or screen name] | [Page loads with expected content] |
16
+ | 2 | Click | [Button/link text or description] | [What should happen: navigation, modal opens, state changes] |
17
+ | 3 | Fill | [Input field name/label] | [Input accepts text, validation feedback if applicable] |
18
+ | 4 | Select | [Dropdown/option description] | [Option is selected, dependent UI updates] |
19
+ | 5 | Click | [Submit/confirm button] | [Action completes, success state shown] |
20
+
21
+ ### Expected End State
22
+ [What the screen should look like when the journey is complete]
23
+ ```
24
+
25
+ ## Example Journeys
26
+
27
+ ### Journey: Device Pairing
28
+
29
+ **Goal:** Connect a new device to the local network
30
+ **Starting point:** Home screen
31
+
32
+ | # | Action | Target | Expected Outcome |
33
+ |---|--------|--------|-----------------|
34
+ | 1 | Navigate | / | Home screen with device list |
35
+ | 2 | Click | "Add Device" button | Pairing modal or screen opens |
36
+ | 3 | Wait | Device list | Available devices appear |
37
+ | 4 | Click | Device name in list | Device selected, confirmation shown |
38
+ | 5 | Click | "Connect" button | Connection established, device appears in main list |
39
+
40
+ **Expected End State:** Home screen shows the newly paired device in the device list with "Connected" status.
41
+
42
+ ### Journey: Settings Navigation
43
+
44
+ **Goal:** Navigate through all settings sections
45
+ **Starting point:** Home screen
46
+
47
+ | # | Action | Target | Expected Outcome |
48
+ |---|--------|--------|-----------------|
49
+ | 1 | Click | Settings icon/button | Settings screen opens |
50
+ | 2 | Click | "Audio" settings section | Audio settings displayed |
51
+ | 3 | Click | "Video" settings section | Video settings displayed |
52
+ | 4 | Click | "Network" settings section | Network settings displayed |
53
+ | 5 | Click | Back/close button | Returns to home screen |
54
+
55
+ **Expected End State:** Home screen displayed, no errors.
56
+
57
+ ## Notes
58
+
59
+ - Keep journeys focused on one goal each. A journey with 10+ steps should probably be split.
60
+ - Journeys should use the same vocabulary as the prototype's UI (button labels, section names).
61
+ - The `arn-spark-clickable-prototype` skill derives initial journeys from the product concept and screen list. The user refines them.
62
+ - The `arn-spark-ui-interactor` agent translates these journeys into Playwright scripts.