@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,642 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: arn-spark-clickable-prototype-teams
|
|
3
|
+
description: >-
|
|
4
|
+
This skill should be used when the user says "clickable prototype teams",
|
|
5
|
+
"arn clickable prototype teams", "team clickable prototype", "debate clickable prototype",
|
|
6
|
+
"collaborative interaction review", "clickable prototype with debate",
|
|
7
|
+
"team-based interaction review", "interaction debate", "review interactions as a team",
|
|
8
|
+
"interactive prototype teams", "team prototype review",
|
|
9
|
+
or wants to create a clickable interactive prototype with linked screens and
|
|
10
|
+
validate it through iterative expert debate cycles where product strategist
|
|
11
|
+
and UX specialist discuss their scores and findings before producing a
|
|
12
|
+
combined review, with Playwright-based interaction testing, per-criterion scoring,
|
|
13
|
+
an independent judge verdict, and versioned output.
|
|
14
|
+
Supports Agent Teams for parallel debate or sequential simulation as fallback.
|
|
15
|
+
For standard lower-of-two-scores interaction review, use /arn-spark-clickable-prototype instead.
|
|
16
|
+
version: 1.0.0
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
# Arness Clickable Prototype Teams
|
|
20
|
+
|
|
21
|
+
Generate a clickable interactive prototype with all main application screens linked together and validate it through iterative build-review cycles with expert debate, 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` (greenfield agents in this plugin) for debate-based 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).
|
|
22
|
+
|
|
23
|
+
This is an alternative to `/arn-spark-clickable-prototype` (independent sequential review with mechanical lower-of-two scoring). Use this when the project has enough interaction complexity that expert debate adds value -- nuanced navigation decisions, multiple user journeys with trade-offs, screens where strategist and UX perspectives genuinely differ on flow quality. For simpler projects or lower token budgets, use `/arn-spark-clickable-prototype` instead.
|
|
24
|
+
|
|
25
|
+
The primary artifacts are **versioned clickable prototype applications**, **journey screenshots** documenting user flows, **debate review reports** with per-criterion scores and debate findings, and a **final report** documenting the complete validation and debate history. All output is versioned so the user can compare evolution across cycles.
|
|
26
|
+
|
|
27
|
+
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` or `/arn-spark-static-prototype-teams` first.
|
|
28
|
+
|
|
29
|
+
## Prerequisites
|
|
30
|
+
|
|
31
|
+
The following artifacts inform the prototype. Check in order:
|
|
32
|
+
|
|
33
|
+
Determine the prototypes output directory:
|
|
34
|
+
1. Read the project's `arness.md` and check for a `## Arness` section
|
|
35
|
+
2. If found, extract the configured Prototypes directory path -- this is the source of truth
|
|
36
|
+
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.
|
|
37
|
+
4. If the directory does not exist, create it
|
|
38
|
+
|
|
39
|
+
> All references to `prototypes/` in this skill refer to the configured prototypes directory determined above.
|
|
40
|
+
|
|
41
|
+
**Product concept (strongly recommended):**
|
|
42
|
+
1. Read the project's `arness.md` for a `## Arness` section. If found, check the configured Vision directory for `product-concept.md`
|
|
43
|
+
2. If no `## Arness` section found, check `.arness/vision/product-concept.md` at the project root
|
|
44
|
+
|
|
45
|
+
**Style brief (recommended):**
|
|
46
|
+
1. Check the configured Vision directory for `style-brief.md`
|
|
47
|
+
2. If no `## Arness` section found, check `.arness/vision/style-brief.md` at the project root
|
|
48
|
+
|
|
49
|
+
**Architecture vision (for framework context):**
|
|
50
|
+
1. Check the configured Vision directory for `architecture-vision.md`
|
|
51
|
+
2. If no `## Arness` section found, check `.arness/vision/architecture-vision.md` at the project root
|
|
52
|
+
|
|
53
|
+
**Static prototype results (optional):**
|
|
54
|
+
1. Check for `[prototypes-dir]/static/final-report.md` -- if a static prototype was validated, the visual direction is confirmed
|
|
55
|
+
|
|
56
|
+
**Visual grounding assets (recommended):**
|
|
57
|
+
1. Read the `## Arness` section for the Visual grounding directory path
|
|
58
|
+
2. Check for assets in `[visual-grounding]/references/`, `[visual-grounding]/designs/`, `[visual-grounding]/brand/`
|
|
59
|
+
3. Also check the style brief's Visual Grounding section for asset paths and categories
|
|
60
|
+
|
|
61
|
+
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).
|
|
62
|
+
|
|
63
|
+
**Fresh design assets (optional):**
|
|
64
|
+
1. Read the `## Arness` section for `Figma` and `Canva` fields
|
|
65
|
+
2. If either is `yes` AND the visual grounding directory already has assets in `designs/` or `brand/`:
|
|
66
|
+
Ask the user:
|
|
67
|
+
|
|
68
|
+
> **Design assets exist from a previous step. Would you like to pull fresh versions from [Figma/Canva] before starting validation?**
|
|
69
|
+
> 1. **Yes** — Pull fresh design assets
|
|
70
|
+
> 2. **No** — Use existing assets on disk
|
|
71
|
+
- 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.
|
|
72
|
+
- If no: proceed with existing assets on disk.
|
|
73
|
+
3. If either is `yes` but NO existing design assets found in `designs/` or `brand/`:
|
|
74
|
+
Ask the user:
|
|
75
|
+
|
|
76
|
+
> **No design mockups found yet. Would you like to pull design assets from [Figma/Canva]?**
|
|
77
|
+
> 1. **Yes** — Pull design assets now
|
|
78
|
+
> 2. **No** — Proceed without design mockups
|
|
79
|
+
- If yes: same flow as above.
|
|
80
|
+
- If no: proceed without design mockups.
|
|
81
|
+
4. If neither flag is `yes` or flags are missing: skip silently.
|
|
82
|
+
|
|
83
|
+
**Use cases (recommended):**
|
|
84
|
+
1. Read the configured Use cases directory from the `## Arness` section (default: `.arness/use-cases`)
|
|
85
|
+
2. Check for `[use-cases-dir]/README.md`
|
|
86
|
+
3. If found, scan for `[use-cases-dir]/UC-*.md` files
|
|
87
|
+
|
|
88
|
+
**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 2b).
|
|
89
|
+
|
|
90
|
+
**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."
|
|
91
|
+
|
|
92
|
+
**If a product concept is found:** Use it to derive the screen list and user journeys.
|
|
93
|
+
|
|
94
|
+
**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."
|
|
95
|
+
|
|
96
|
+
**If a style brief is found:** Apply the visual style to all screens.
|
|
97
|
+
|
|
98
|
+
**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."
|
|
99
|
+
|
|
100
|
+
**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."
|
|
101
|
+
|
|
102
|
+
**Agent Teams (strongly recommended):** This skill works best with Agent Teams enabled for parallel expert debate. Agent Teams availability is verified in Step 1 before any work begins. If not enabled, the skill falls back to sequential debate mode (or suggests `/arn-spark-clickable-prototype` for the non-debate alternative).
|
|
103
|
+
|
|
104
|
+
## Workflow
|
|
105
|
+
|
|
106
|
+
### Step 1: Check Agent Teams Availability
|
|
107
|
+
|
|
108
|
+
This is the FIRST step -- before any prototype work begins.
|
|
109
|
+
|
|
110
|
+
Check whether Agent Teams is supported by your platform.
|
|
111
|
+
|
|
112
|
+
**Display the result clearly to the user.** This is critical because Agent Teams sometimes does not activate even when the user expects it.
|
|
113
|
+
|
|
114
|
+
**If Agent Teams is supported:**
|
|
115
|
+
|
|
116
|
+
"**Agent Teams: ENABLED**
|
|
117
|
+
|
|
118
|
+
This skill will use Agent Teams for parallel expert debate. Both experts will score in parallel (Phase 1) and cross-review each other's findings in parallel (Phase 2).
|
|
119
|
+
|
|
120
|
+
Ask the user:
|
|
121
|
+
|
|
122
|
+
> **Proceed with Agent Teams debate, or use standard review instead?**
|
|
123
|
+
> 1. **Proceed** — Use Agent Teams for parallel expert debate
|
|
124
|
+
> 2. **Skip** — Use `/arn-spark-clickable-prototype` instead (non-debate review, lower token cost)
|
|
125
|
+
|
|
126
|
+
**If Agent Teams is NOT supported:**
|
|
127
|
+
|
|
128
|
+
"**Agent Teams: NOT ENABLED**
|
|
129
|
+
|
|
130
|
+
This skill works without Agent Teams using sequential debate (I will pass feedback between experts manually), but parallel debate is faster and produces identical results. Enable Agent Teams if your platform supports it.
|
|
131
|
+
|
|
132
|
+
Ask the user:
|
|
133
|
+
|
|
134
|
+
**"What would you like to do?"**
|
|
135
|
+
|
|
136
|
+
Options:
|
|
137
|
+
1. **Continue with sequential debate** — Same debate quality, slower execution (3 sequential expert invocations per debate round instead of 2 parallel)
|
|
138
|
+
2. **Use /arn-spark-clickable-prototype instead** — Non-debate review (mechanical lower-of-two scoring, lower token cost)
|
|
139
|
+
3. **Enable Agent Teams if your platform supports it and restart**"
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
### Step 2: Detect Resume or Fresh Start
|
|
144
|
+
|
|
145
|
+
Check for existing versioned output:
|
|
146
|
+
|
|
147
|
+
1. Look for `prototypes/clickable/v*/` directories at the project root
|
|
148
|
+
2. If versions exist, find the highest version number
|
|
149
|
+
|
|
150
|
+
**If existing versions found:**
|
|
151
|
+
|
|
152
|
+
Ask the user:
|
|
153
|
+
|
|
154
|
+
**"I found existing clickable prototype versions up to v[N]. Which would you prefer?"**
|
|
155
|
+
|
|
156
|
+
Options:
|
|
157
|
+
1. **Continue from v[N]** — I will read the latest review report and continue with new cycles
|
|
158
|
+
2. **Fresh start** — I will begin from v1 (existing versions are preserved)
|
|
159
|
+
|
|
160
|
+
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.
|
|
161
|
+
|
|
162
|
+
**If no existing versions:** Proceed to Step 2b.
|
|
163
|
+
|
|
164
|
+
### Step 2b: Derive Screen List and User Journeys
|
|
165
|
+
|
|
166
|
+
Load the product concept and extract screens and journeys:
|
|
167
|
+
|
|
168
|
+
**Screens:** Extract from the core experience:
|
|
169
|
+
- Each interaction mode suggests one or more screens
|
|
170
|
+
- Each user journey implies a sequence of screens
|
|
171
|
+
- Administrative functions suggest their own screens
|
|
172
|
+
- Check architecture vision for platform-specific screens
|
|
173
|
+
- Check style brief sample screens if any exist
|
|
174
|
+
- **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.
|
|
175
|
+
|
|
176
|
+
**Screen organization:** Group screens by functional area (e.g., setup flow, main experience, settings). The builder will create:
|
|
177
|
+
- A **hub screen** grouping all areas with screen counts and descriptions as the prototype entry point
|
|
178
|
+
- **Sequential prev/next navigation** within each group for guided walkthroughs
|
|
179
|
+
- **Persistent navigation** across all screens showing the current group
|
|
180
|
+
|
|
181
|
+
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).
|
|
182
|
+
|
|
183
|
+
**If use cases are available, also derive screens from them:**
|
|
184
|
+
- 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)
|
|
185
|
+
- Each extension/alternate flow may imply additional screens or states not visible in the main scenario (error screens, confirmation dialogs, empty states, timeout states)
|
|
186
|
+
- Use case preconditions may imply prerequisite screens (e.g., "Device is paired" implies a pairing completion screen exists)
|
|
187
|
+
- If use case files contain screen references, cross-reference them with the derived screen list
|
|
188
|
+
- 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.
|
|
189
|
+
|
|
190
|
+
**User journeys:** Derive from use cases (preferred) or product concept user flows:
|
|
191
|
+
- 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.
|
|
192
|
+
- If no use cases: extract from user flows in the product concept. Each primary user goal becomes a journey.
|
|
193
|
+
- Read the journey template for structure:
|
|
194
|
+
> Read `${CLAUDE_PLUGIN_ROOT}/skills/arn-spark-clickable-prototype/references/journey-template.md`
|
|
195
|
+
|
|
196
|
+
Propose the screen list and journeys:
|
|
197
|
+
|
|
198
|
+
"Based on your product concept, here are the screens and user journeys:
|
|
199
|
+
|
|
200
|
+
**Screens** (grouped by area):
|
|
201
|
+
| Area | # | Screen | Description | Links To |
|
|
202
|
+
|------|---|--------|-------------|----------|
|
|
203
|
+
| [area] | 1 | [Name] | [description] | Screens 2, 3 |
|
|
204
|
+
| ... | ... | ... | ... | ... |
|
|
205
|
+
|
|
206
|
+
**Navigation flow:**
|
|
207
|
+
```
|
|
208
|
+
[Hub] --> [Area 1: Screen 1] --> [Screen 2] --> [Screen 3]
|
|
209
|
+
|
|
|
210
|
+
+--> [Area 2: Screen 4] --> [Screen 5]
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
**User Journeys:**
|
|
214
|
+
| # | Journey | Steps | Goal |
|
|
215
|
+
|---|---------|-------|------|
|
|
216
|
+
| 1 | [Name] | [count] | [what the user accomplishes] |
|
|
217
|
+
| ... | ... | ... | ... |
|
|
218
|
+
|
|
219
|
+
Adjust screens, navigation, or journeys before I proceed."
|
|
220
|
+
|
|
221
|
+
Wait for user confirmation or adjustments.
|
|
222
|
+
|
|
223
|
+
### Step 3: Configure Validation Parameters
|
|
224
|
+
|
|
225
|
+
Present defaults and ask the user to confirm or adjust:
|
|
226
|
+
|
|
227
|
+
"Let me set up the validation parameters:
|
|
228
|
+
|
|
229
|
+
**Scoring:**
|
|
230
|
+
- **Scale:** 1-5 (1 = unmet, 5 = exemplary)
|
|
231
|
+
- **Minimum threshold:** 4 (every criterion must score at least 4)
|
|
232
|
+
- **Max cycles:** 3 (build-review iterations before judge review)
|
|
233
|
+
|
|
234
|
+
**Debate configuration:**
|
|
235
|
+
- **Debate mode:** [Choose one]
|
|
236
|
+
- **Divergence mode (Recommended):** Cross-review triggers only when any criterion score diverges by >= 2 points between experts. Saves tokens when experts mostly agree.
|
|
237
|
+
- **Standard mode:** Full cross-review every cycle, regardless of score agreement. Richer debate, higher token cost.
|
|
238
|
+
- **Execution mode:** [Agent Teams / Sequential] (detected in Step 1)
|
|
239
|
+
|
|
240
|
+
**Token cost comparison:**
|
|
241
|
+
- `/arn-spark-clickable-prototype` (no debate): 2 expert invocations per cycle
|
|
242
|
+
- This skill (divergence mode): 2-4 expert invocations per cycle (2 if no divergence, 4 if divergence detected)
|
|
243
|
+
- This skill (standard mode): 3-4 expert invocations per cycle (always full debate)
|
|
244
|
+
|
|
245
|
+
**Criteria:** Based on your screens and journeys, here are the proposed criteria:
|
|
246
|
+
|
|
247
|
+
| # | Criterion | Description |
|
|
248
|
+
|---|-----------|-------------|
|
|
249
|
+
| 1 | [criterion] | [description] |
|
|
250
|
+
| ... | ... | ... |
|
|
251
|
+
|
|
252
|
+
Adjust any parameter, debate mode, or criterion, or confirm to proceed."
|
|
253
|
+
|
|
254
|
+
To propose criteria:
|
|
255
|
+
1. Read the default criteria template:
|
|
256
|
+
> Read `${CLAUDE_PLUGIN_ROOT}/skills/arn-spark-clickable-prototype/references/clickable-prototype-criteria.md`
|
|
257
|
+
2. Adapt based on the screen list and journeys (add journey-specific criteria, remove inapplicable ones)
|
|
258
|
+
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
|
|
259
|
+
4. Present the adapted list
|
|
260
|
+
|
|
261
|
+
Check `arn-spark-ux-specialist` availability by attempting to invoke it with a minimal prompt (e.g., "Respond with OK to confirm availability"). If the agent is not found or the invocation fails, record single-reviewer mode and inform the user:
|
|
262
|
+
|
|
263
|
+
"UX specialist is not available. Review will be strategist-only (no debate). Consider `/arn-spark-clickable-prototype` which handles single-reviewer mode identically with lower overhead."
|
|
264
|
+
|
|
265
|
+
Present the full configuration summary:
|
|
266
|
+
|
|
267
|
+
"**Configuration summary:**
|
|
268
|
+
- **Debate mode:** [Divergence / Standard]
|
|
269
|
+
- **Execution mode:** [Agent Teams / Sequential / Single-reviewer]
|
|
270
|
+
- **Reviewers:** arn-spark-product-strategist + arn-spark-ux-specialist [/ arn-spark-product-strategist only]
|
|
271
|
+
- **Scale:** [1-N], **Threshold:** [T], **Max cycles:** [M]
|
|
272
|
+
- **Criteria:** [count] criteria
|
|
273
|
+
- **Journeys:** [count] journeys
|
|
274
|
+
|
|
275
|
+
Confirm to proceed."
|
|
276
|
+
|
|
277
|
+
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, ask whether to reuse, merge, or replace.
|
|
278
|
+
|
|
279
|
+
### Step 4: Create Task List
|
|
280
|
+
|
|
281
|
+
Create the task structure for the validation run. For max_cycles=N:
|
|
282
|
+
|
|
283
|
+
- Task pairs: Build v[X] + Debate review v[X] for each cycle (2 tasks per cycle)
|
|
284
|
+
- Judge review task
|
|
285
|
+
- User review task
|
|
286
|
+
|
|
287
|
+
Example for max_cycles=3 (starting from v1):
|
|
288
|
+
```
|
|
289
|
+
Task 1: Build v1
|
|
290
|
+
Task 2: Debate review v1
|
|
291
|
+
Task 3: Build v2
|
|
292
|
+
Task 4: Debate review v2
|
|
293
|
+
Task 5: Build v3
|
|
294
|
+
Task 6: Debate review v3
|
|
295
|
+
Task 7: Judge review
|
|
296
|
+
Task 8: User review
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
If resuming from v[N], number versions sequentially from v[N+1].
|
|
300
|
+
|
|
301
|
+
Present the task list to the user and proceed.
|
|
302
|
+
|
|
303
|
+
### Step 5: Build-Review Cycle (Iterative)
|
|
304
|
+
|
|
305
|
+
For each cycle:
|
|
306
|
+
|
|
307
|
+
#### 5a: Build
|
|
308
|
+
|
|
309
|
+
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:
|
|
310
|
+
- **Screen list:** with descriptions and navigation flow
|
|
311
|
+
- **Style brief:** toolkit configuration section
|
|
312
|
+
- **UI framework and component library:** from architecture vision or the project's dependency configuration
|
|
313
|
+
- **Project root path**
|
|
314
|
+
- **Output path:** `prototypes/clickable/v[N]/app/`
|
|
315
|
+
- **Reference images (if available):** visual grounding assets
|
|
316
|
+
- **Previous review feedback (if not first cycle):** failing criteria details, journey failure evidence, debate insights, and improvement suggestions from the previous cycle's debate review report
|
|
317
|
+
|
|
318
|
+
Mark the Build task as in_progress before invoking, completed after.
|
|
319
|
+
|
|
320
|
+
#### 5b: Interaction Testing
|
|
321
|
+
|
|
322
|
+
Start the prototype so it can be interacted with:
|
|
323
|
+
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)
|
|
324
|
+
2. Start the prototype in the background via Bash
|
|
325
|
+
3. Wait for it to be ready (e.g., poll a URL for web-based prototypes, wait for the process to report ready)
|
|
326
|
+
4. Note the process ID for cleanup
|
|
327
|
+
|
|
328
|
+
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:
|
|
329
|
+
- **Prototype URL or access point:** how to reach the running prototype (e.g., a URL for web-based, or launch instructions for native)
|
|
330
|
+
- **User journey definitions:** the journeys agreed in Step 2b/Step 3
|
|
331
|
+
- **Output path:** `prototypes/clickable/v[N]/journeys/`
|
|
332
|
+
|
|
333
|
+
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.
|
|
334
|
+
|
|
335
|
+
After the interactor completes, stop the prototype (kill the background process).
|
|
336
|
+
|
|
337
|
+
#### 5c: Expert Debate Review
|
|
338
|
+
|
|
339
|
+
This step replaces the mechanical lower-of-two scoring in `/arn-spark-clickable-prototype` with a structured expert debate.
|
|
340
|
+
|
|
341
|
+
1. Read the debate protocol:
|
|
342
|
+
> Read `${CLAUDE_PLUGIN_ROOT}/skills/arn-spark-clickable-prototype-teams/references/debate-protocol.md`
|
|
343
|
+
|
|
344
|
+
2. Create the `prototypes/clickable/reviews/` directory if it does not exist.
|
|
345
|
+
|
|
346
|
+
**Phase 1: Independent Scoring**
|
|
347
|
+
|
|
348
|
+
Both experts independently score all criteria and write structured feedback to files.
|
|
349
|
+
|
|
350
|
+
**If execution_mode is "agent_teams":**
|
|
351
|
+
|
|
352
|
+
Spawn both experts simultaneously as teammates. Each receives:
|
|
353
|
+
- Journey screenshots from Step 5b
|
|
354
|
+
- Interaction report from `arn-spark-ui-interactor`
|
|
355
|
+
- Criteria list from `prototypes/criteria.md`
|
|
356
|
+
- Scoring scale and minimum threshold
|
|
357
|
+
- Style brief (full document)
|
|
358
|
+
- Product concept (full document)
|
|
359
|
+
- Visual grounding assets (with category context: references=inspirational direction, designs=specification targets, brand=constraints)
|
|
360
|
+
- Expert interaction review template path: `${CLAUDE_PLUGIN_ROOT}/skills/arn-spark-clickable-prototype-teams/references/expert-interaction-review-template.md`
|
|
361
|
+
- File path to write to:
|
|
362
|
+
- Product strategist -> `prototypes/clickable/reviews/round-N-strategist-review.md`
|
|
363
|
+
- UX specialist -> `prototypes/clickable/reviews/round-N-ux-review.md`
|
|
364
|
+
- Instruction: "Score every criterion independently against the journey screenshots and interaction report. Assess every journey for completability. Write your complete review to the specified file path using the expert interaction review template. Do not communicate with other teammates during this phase. Return a brief summary in conversation."
|
|
365
|
+
|
|
366
|
+
**Verify Agent Teams actually worked:** After Phase 1 completes, check that BOTH review files exist and contain per-criterion scores. If only one expert wrote its file (potential Agent Teams failure), note the issue, invoke the missing expert sequentially, and log in the debate report: "Agent Teams Phase 1 partial failure: [agent] did not produce its review file. Invoked sequentially as fallback."
|
|
367
|
+
|
|
368
|
+
**If execution_mode is "sequential":**
|
|
369
|
+
|
|
370
|
+
Invocation 1: Invoke `arn-spark-product-strategist` with all inputs and file path `prototypes/clickable/reviews/round-N-strategist-review.md`.
|
|
371
|
+
|
|
372
|
+
Invocation 2: Invoke `arn-spark-ux-specialist` with all inputs and file path `prototypes/clickable/reviews/round-N-ux-review.md`.
|
|
373
|
+
|
|
374
|
+
**If single-reviewer mode:**
|
|
375
|
+
|
|
376
|
+
Invoke `arn-spark-product-strategist` only. No debate. Strategist scores become the combined scores directly (same behavior as `/arn-spark-clickable-prototype` single-reviewer). Skip Phases 2-4.
|
|
377
|
+
|
|
378
|
+
**Divergence Check:**
|
|
379
|
+
|
|
380
|
+
The skill reads both Phase 1 review files and compares per-criterion scores.
|
|
381
|
+
|
|
382
|
+
If `debate_mode` is "divergence":
|
|
383
|
+
- Calculate the absolute score difference for each criterion
|
|
384
|
+
- If ALL criteria have score difference < 2: skip Phase 2. Present to user: "Experts scored within 1 point on all criteria. No divergence detected -- skipping cross-review. Combined scores use the lower of each pair."
|
|
385
|
+
- If ANY criterion has score difference >= 2: trigger Phase 2. Present to user: "Divergence detected on [N] criteria (difference >= 2 points): [list criteria names with score pairs]. Triggering cross-review."
|
|
386
|
+
|
|
387
|
+
If `debate_mode` is "standard": always proceed to Phase 2.
|
|
388
|
+
|
|
389
|
+
**Phase 2: Cross-Review**
|
|
390
|
+
|
|
391
|
+
Each expert reads the other's Phase 1 file and responds per-criterion, focusing on divergent criteria. Experts also compare per-journey assessments.
|
|
392
|
+
|
|
393
|
+
**If execution_mode is "agent_teams":**
|
|
394
|
+
|
|
395
|
+
Through Teams communication, instruct each expert:
|
|
396
|
+
- Product strategist: Read `prototypes/clickable/reviews/round-N-ux-review.md`, write cross-review to `prototypes/clickable/reviews/round-N-strategist-cross-review.md`
|
|
397
|
+
- UX specialist: Read `prototypes/clickable/reviews/round-N-strategist-review.md`, write cross-review to `prototypes/clickable/reviews/round-N-ux-cross-review.md`
|
|
398
|
+
|
|
399
|
+
Each responds per-criterion and per-journey using the Phase 2 format from the expert interaction review template: Agree (optionally adjust score), Disagree (counter-evidence), or New concern.
|
|
400
|
+
|
|
401
|
+
**If execution_mode is "sequential":**
|
|
402
|
+
|
|
403
|
+
This follows the 3-invocation sequential pattern. Since Phase 1 already completed with 2 invocations, Phase 2 requires 1 additional invocation for the UX specialist's cross-review (already combined in Invocation 2 of the sequential pattern) and 1 invocation for the strategist's cross-review.
|
|
404
|
+
|
|
405
|
+
The full sequential pattern runs as 3 total invocations across Phase 1 and Phase 2:
|
|
406
|
+
|
|
407
|
+
Invocation 1: Strategist Phase 1 (writes `round-N-strategist-review.md`)
|
|
408
|
+
|
|
409
|
+
Invocation 2: UX specialist Phase 1 + Phase 2 combined (reads strategist file, writes `round-N-ux-review.md` with both sections)
|
|
410
|
+
|
|
411
|
+
Invocation 3: Strategist Phase 2 (reads UX specialist file, writes `round-N-strategist-cross-review.md`)
|
|
412
|
+
|
|
413
|
+
If Phase 2 was skipped (divergence mode, no divergence): only Invocations 1 and 2 (Phase 1 only) run. Invocation 2 does NOT include Phase 2 instructions in this case. Total: 2 invocations.
|
|
414
|
+
|
|
415
|
+
**Phase 3: Synthesis**
|
|
416
|
+
|
|
417
|
+
The skill reads all review files written by the experts (never from conversation context):
|
|
418
|
+
- `prototypes/clickable/reviews/round-N-strategist-review.md` (Phase 1)
|
|
419
|
+
- `prototypes/clickable/reviews/round-N-ux-review.md` (Phase 1, or Phase 1 + Phase 2 combined in sequential mode)
|
|
420
|
+
- `prototypes/clickable/reviews/round-N-strategist-cross-review.md` (Phase 2, if written)
|
|
421
|
+
- `prototypes/clickable/reviews/round-N-ux-cross-review.md` (Phase 2, Agent Teams mode only, if written)
|
|
422
|
+
|
|
423
|
+
For each criterion, categorize:
|
|
424
|
+
|
|
425
|
+
- **Consensus:** Both experts scored the same, or one adjusted their score in cross-review to match. Combined score = the agreed score.
|
|
426
|
+
- **Additions:** One expert scored lower with specific feedback, the other did not dispute. Combined score = the lower score.
|
|
427
|
+
- **Disagreements:** Both experts maintained different scores after cross-review. Combined score = deferred to Phase 4 for user resolution.
|
|
428
|
+
- **No-debate:** Phase 2 was skipped. Combined score = min(strategist, ux).
|
|
429
|
+
|
|
430
|
+
Also synthesize journey assessments: if experts disagree on whether a journey completed, note the disagreement in the debate report and include it in the resolution step if the journey outcome affects a criterion score.
|
|
431
|
+
|
|
432
|
+
Read the debate review report template:
|
|
433
|
+
> Read `${CLAUDE_PLUGIN_ROOT}/skills/arn-spark-clickable-prototype-teams/references/debate-review-report-template.md`
|
|
434
|
+
|
|
435
|
+
Write the debate report to `prototypes/clickable/reviews/round-N-cycle-M-debate-report.md`.
|
|
436
|
+
|
|
437
|
+
**Phase 4: Resolution (if disagreements exist)**
|
|
438
|
+
|
|
439
|
+
For each unresolved disagreement, present to the user:
|
|
440
|
+
|
|
441
|
+
"Expert disagreement on **[Criterion Name]** (criterion #[N]):
|
|
442
|
+
- **Product Strategist:** Score [X] -- [reasoning and journey evidence]
|
|
443
|
+
- **UX Specialist:** Score [Y] -- [reasoning and journey evidence]
|
|
444
|
+
- **Trade-off:** [what each score optimizes for]
|
|
445
|
+
|
|
446
|
+
What score should this criterion receive? (Or provide your reasoning and I will set the score.)"
|
|
447
|
+
|
|
448
|
+
Record user decisions. Update the debate report with resolutions. The resolved score becomes the combined score for that criterion.
|
|
449
|
+
|
|
450
|
+
Mark the Debate review task as in_progress before Phase 1, completed after all phases finish.
|
|
451
|
+
|
|
452
|
+
#### 5d: Evaluate and Record
|
|
453
|
+
|
|
454
|
+
1. Check all combined scores (from debate synthesis) against the minimum threshold
|
|
455
|
+
2. Copy the debate report to `prototypes/clickable/v[N]/review-report.md` for version-local access
|
|
456
|
+
3. Write version notes to `prototypes/clickable/v[N]/version-notes.md` (what changed from previous version, or "Initial version" for v1)
|
|
457
|
+
|
|
458
|
+
**If ALL criteria pass:** Mark the Validate task as completed. Skip remaining cycles and proceed to Step 6 (Judge Review).
|
|
459
|
+
|
|
460
|
+
**If ANY criterion fails:**
|
|
461
|
+
- Present the failing criteria to the user with debate context (what the experts said, where they agreed/disagreed) and journey evidence
|
|
462
|
+
- Feed the failing criteria details, journey failure screenshots, debate insights, and improvement suggestions to the next cycle's Build step
|
|
463
|
+
- Proceed to the next cycle (or Step 6 if this was the last cycle)
|
|
464
|
+
|
|
465
|
+
### Step 6: Judge Review
|
|
466
|
+
|
|
467
|
+
Start the prototype for the judge's interactive review using the same procedure as Step 5b:
|
|
468
|
+
1. Determine how to run the prototype from the project configuration
|
|
469
|
+
2. Start the prototype in the background via Bash
|
|
470
|
+
3. Wait for it to be ready
|
|
471
|
+
4. Note the process ID for cleanup
|
|
472
|
+
|
|
473
|
+
If the prototype fails to start, fall back to invoking the judge in `static` mode using the journey screenshots from the latest Step 5b cycle. Note the limitation in the final report.
|
|
474
|
+
|
|
475
|
+
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:
|
|
476
|
+
- **Review mode:** `interactive` -- the judge navigates the prototype firsthand rather than reviewing static screenshots
|
|
477
|
+
- **Prototype URL or access point:** how to reach the running prototype
|
|
478
|
+
- **Criteria list:** from `prototypes/criteria.md`
|
|
479
|
+
- **Scoring scale and minimum threshold**
|
|
480
|
+
- **Style brief and product concept**
|
|
481
|
+
- **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
|
|
482
|
+
- **Version number**
|
|
483
|
+
- **Journey definitions:** from Step 2b/Step 3 (for context, not as a script -- the judge navigates freely)
|
|
484
|
+
- **Previous review reports:** the latest version's review-report.md (which is the debate report)
|
|
485
|
+
|
|
486
|
+
The judge operates independently -- it provides its own scores without knowledge of the debate process. This is an independent validation gate. 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.
|
|
487
|
+
|
|
488
|
+
After the judge completes, stop the prototype.
|
|
489
|
+
|
|
490
|
+
Write the judge's report to `prototypes/clickable/v[N]/judge-report.md`.
|
|
491
|
+
|
|
492
|
+
**If Judge returns PASS:** Proceed to Step 6b.
|
|
493
|
+
|
|
494
|
+
**If Judge returns FAIL and cycle budget remains:**
|
|
495
|
+
- Present the judge's failing criteria to the user
|
|
496
|
+
- Calculate remaining budget (original max_cycles minus cycles used)
|
|
497
|
+
Ask the user:
|
|
498
|
+
|
|
499
|
+
> **The judge flagged [N] criteria below threshold. You have [M] cycles remaining. Run more fix cycles?**
|
|
500
|
+
> 1. **Yes** — Run [M] more fix cycles
|
|
501
|
+
> 2. **No** — Proceed with current results
|
|
502
|
+
|
|
503
|
+
- If **Yes**: create new Build+Debate review task pairs for the remaining cycles, return to Step 5
|
|
504
|
+
- If **No**: proceed to Step 6b with the judge's report
|
|
505
|
+
|
|
506
|
+
**If Judge returns FAIL and no budget remains:** Proceed to Step 6b with the judge's report.
|
|
507
|
+
|
|
508
|
+
### Step 6b: Generate Visual Showcase
|
|
509
|
+
|
|
510
|
+
After the judge review completes, generate structured visual assets so the user can review all screens and journey flows at a glance without running the dev server.
|
|
511
|
+
|
|
512
|
+
1. Read the showcase capture guide:
|
|
513
|
+
> Read `${CLAUDE_PLUGIN_ROOT}/skills/arn-spark-clickable-prototype/references/showcase-capture-guide.md`
|
|
514
|
+
|
|
515
|
+
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.
|
|
516
|
+
|
|
517
|
+
3. Start the prototype dev server.
|
|
518
|
+
|
|
519
|
+
4. Generate a Playwright capture script following the capture guide:
|
|
520
|
+
- Navigate to each screen route from the manifest
|
|
521
|
+
- Capture a full-viewport screenshot per screen, grouped by functional area
|
|
522
|
+
- Capture dark mode variants if the prototype has a dark/light toggle
|
|
523
|
+
|
|
524
|
+
5. Run the capture script via Bash.
|
|
525
|
+
|
|
526
|
+
6. Stop the prototype dev server.
|
|
527
|
+
|
|
528
|
+
7. Organize the journey gallery: read existing journey screenshots from `prototypes/clickable/v[N]/journeys/` (captured during Step 5b).
|
|
529
|
+
|
|
530
|
+
8. Write `prototypes/clickable/v[N]/showcase/showcase-index.md` with version, judge verdict, final scores, screen gallery, journey gallery, and embedded images.
|
|
531
|
+
|
|
532
|
+
If Playwright is unavailable, skip screen capture but still organize the journey gallery from existing screenshots. Inform the user the full prototype can be viewed by running the dev server.
|
|
533
|
+
|
|
534
|
+
### Step 7: User Review
|
|
535
|
+
|
|
536
|
+
Present the complete validation history:
|
|
537
|
+
|
|
538
|
+
"**Clickable prototype validation complete (debate mode).**
|
|
539
|
+
|
|
540
|
+
**Latest version:** v[N]
|
|
541
|
+
**Judge verdict:** [PASS / FAIL]
|
|
542
|
+
**Debate mode:** [Divergence / Standard]
|
|
543
|
+
**Execution mode:** [Agent Teams / Sequential / Single-reviewer]
|
|
544
|
+
|
|
545
|
+
**Version history:**
|
|
546
|
+
| Version | Criteria Passing | Criteria Failing | Journeys OK | Phase 2 Triggered | Notable Changes |
|
|
547
|
+
|---------|-----------------|------------------|-------------|-------------------|----------------|
|
|
548
|
+
| v1 | [X]/[M] | [Y] | [J1]/[J2] | [Yes/No] | Initial build |
|
|
549
|
+
| v2 | [X]/[M] | [Y] | [J1]/[J2] | [Yes/No] | [summary of fixes] |
|
|
550
|
+
| ... | ... | ... | ... | ... | ... |
|
|
551
|
+
|
|
552
|
+
**Final scores (v[N]):**
|
|
553
|
+
| # | Criterion | Strategist | UX Specialist | Combined | Category | Judge | Status |
|
|
554
|
+
|---|-----------|-----------|---------------|----------|----------|-------|--------|
|
|
555
|
+
| 1 | [name] | [score] | [score] | [score] | [Consensus/Addition/Resolved] | [score] | PASS/FAIL |
|
|
556
|
+
| ... | ... | ... | ... | ... | ... | ... | ... |
|
|
557
|
+
|
|
558
|
+
The prototype is at `prototypes/clickable/v[N]/app/`.
|
|
559
|
+
Debate reports are at `prototypes/clickable/reviews/`.
|
|
560
|
+
[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.
|
|
561
|
+
|
|
562
|
+
Are you satisfied with this result, or would you like additional cycles?"
|
|
563
|
+
|
|
564
|
+
If the user wants more cycles, return to Step 3 with new parameters.
|
|
565
|
+
|
|
566
|
+
### Step 8: Write Final Report
|
|
567
|
+
|
|
568
|
+
Write `prototypes/clickable/final-report.md` with:
|
|
569
|
+
- Complete version history and all scores
|
|
570
|
+
- Debate history: per-cycle summaries including which criteria triggered cross-review, how disagreements were resolved, and how scores evolved across cycles
|
|
571
|
+
- Judge verdict and report (from `prototypes/clickable/v[N]/judge-report.md`)
|
|
572
|
+
- User decision
|
|
573
|
+
- Criteria and journey definitions used
|
|
574
|
+
- Links to all version directories and debate reports in `prototypes/clickable/reviews/`
|
|
575
|
+
- Link to the visual showcase (`prototypes/clickable/v[N]/showcase/showcase-index.md`) if generated
|
|
576
|
+
|
|
577
|
+
### Step 9: Recommend Next Steps
|
|
578
|
+
|
|
579
|
+
"Clickable prototype validation complete. Results saved to `prototypes/clickable/`.
|
|
580
|
+
|
|
581
|
+
Recommended next steps:
|
|
582
|
+
1. **Extract features:** Run `/arn-spark-feature-extract` to create a prioritized feature backlog from the product concept and prototype
|
|
583
|
+
2. **Start developing:** If you have the Arness Code plugin installed, run `/arn-planning` to begin the development pipeline. Arness auto-configures on first use.
|
|
584
|
+
3. **Start feature specs:** Run `/arn-code-feature-spec` to spec your first production feature
|
|
585
|
+
|
|
586
|
+
The prototype serves as a visual reference during feature development."
|
|
587
|
+
|
|
588
|
+
## Agent Invocation Guide
|
|
589
|
+
|
|
590
|
+
| Situation | Action |
|
|
591
|
+
|-----------|--------|
|
|
592
|
+
| Check Agent Teams (Step 1) | Check whether Agent Teams is supported by your platform. Display result. Confirm with user. |
|
|
593
|
+
| Build prototype screens (Step 5a) | Invoke `arn-spark-prototype-builder` with screen list, style, framework, output path, and previous debate review feedback |
|
|
594
|
+
| Test user journeys (Step 5b) | Start the prototype, invoke `arn-spark-ui-interactor` with access point, journeys, and output path. Stop the prototype after. |
|
|
595
|
+
| Expert debate -- Agent Teams Phase 1 (Step 5c) | Spawn both experts simultaneously as teammates. Each writes to own file with journey screenshots + interaction report. Verify both files exist after completion. |
|
|
596
|
+
| Expert debate -- Agent Teams Phase 2 (Step 5c) | Through Teams communication, tell each expert to read the other's file and write cross-review to separate file. |
|
|
597
|
+
| Expert debate -- Sequential (Step 5c) | (1) Strategist Phase 1, writes file. (2) UX specialist Phase 1 + Phase 2, reads strategist file, writes own file. (3) Strategist Phase 2, reads UX file, writes cross-review. |
|
|
598
|
+
| Expert debate -- UX unavailable (Step 5c) | Strategist only. No debate. Same as `/arn-spark-clickable-prototype` single-reviewer. Suggest base skill. |
|
|
599
|
+
| Divergence check (Step 5c) | Skill reads both Phase 1 files, compares per-criterion scores. If divergence mode and all diffs < 2: skip Phase 2. |
|
|
600
|
+
| Synthesize debate report (Step 5c) | Skill reads all expert files (not from conversation). Categorizes per criterion: consensus, addition, disagreement, no-debate. Compares per-journey assessments. Writes debate report. |
|
|
601
|
+
| Resolve disagreements (Step 5c Phase 4) | Present each disagreement to user with both positions, journey evidence, and trade-offs. Wait for decisions. Update report. |
|
|
602
|
+
| Agent Teams failure detection (Step 5c) | After Phase 1, if one expert's file is missing, invoke that expert sequentially. Log the issue in the debate report. |
|
|
603
|
+
| Judge review (Step 6) | 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. |
|
|
604
|
+
| Generate visual showcase (Step 6b) | Read shared showcase capture guide from base clickable skill. Start prototype, generate and run Playwright capture script per screen manifest, organize journey screenshots, write showcase-index.md. |
|
|
605
|
+
| User wants targeted screen updates | Invoke `arn-spark-prototype-builder` with specific screen changes only |
|
|
606
|
+
| User wants to re-test a specific journey | Invoke `arn-spark-ui-interactor` with just that journey |
|
|
607
|
+
| User asks about visual-only validation | Suggest `/arn-spark-static-prototype` or `/arn-spark-static-prototype-teams` for component showcase validation |
|
|
608
|
+
| User asks about style changes | Defer to `/arn-spark-style-explore` for style brief updates |
|
|
609
|
+
| User asks about features | Defer: "Feature work starts after `/arn-spark-feature-extract` and `/arn-code-feature-spec`." |
|
|
610
|
+
| Builder fails | Retry up to 3 times. If still failing, present the error for manual investigation. |
|
|
611
|
+
| Interactor reports Playwright unavailable | Fall back to manual journey testing. User walks through and provides screenshots. |
|
|
612
|
+
| Expert returns vague scores (all maximum, no evidence) | Re-invoke with more specific prompt requiring per-criterion evidence referencing exact journey screenshots. |
|
|
613
|
+
|
|
614
|
+
## Error Handling
|
|
615
|
+
|
|
616
|
+
- **Agent Teams not enabled:** Fall back to sequential debate mode. Inform user clearly with setup instructions and offer `/arn-spark-clickable-prototype` as lower-cost alternative.
|
|
617
|
+
- **Agent Teams enabled but one expert fails to write its file:** Detect the missing file after Phase 1. Invoke the missing expert sequentially. Note the issue in the debate report: "Agent Teams Phase 1 partial failure."
|
|
618
|
+
- **arn-spark-ux-specialist unavailable:** Single-reviewer mode. No debate, strategist reviews alone. Suggest `/arn-spark-clickable-prototype` as equivalent for single-reviewer. Note limitation in all reports.
|
|
619
|
+
- **No product concept found:** Proceed with user's verbal screen and journey descriptions.
|
|
620
|
+
- **No style brief found:** Use component library defaults. Note that `/arn-spark-style-explore` can be run for custom styling.
|
|
621
|
+
- **Project not scaffolded:** Cannot build prototype. Suggest `/arn-spark-scaffold` first.
|
|
622
|
+
- **Builder fails (3 times):** Present the error. The user can investigate manually or adjust the approach.
|
|
623
|
+
- **Playwright unavailable for interaction testing:** Fall back to manual testing. User walks through journeys and provides screenshots. The skill continues without automated interaction capture. The visual showcase (Step 6b) screen capture is also skipped.
|
|
624
|
+
- **Prototype fails to start (Step 5b):** Check for port conflicts, build errors, missing dependencies. Present the error.
|
|
625
|
+
- **Prototype fails to start (Step 6 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.
|
|
626
|
+
- **Journey interaction fails (3 consecutive):** The interactor abandons the journey. Note it in the review. The expert reviewers assess based on available screenshots.
|
|
627
|
+
- **Playwright unavailable for showcase (Step 6b):** 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.
|
|
628
|
+
- **Screen manifest missing (Step 6b):** 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."
|
|
629
|
+
- **Expert returns unhelpful scores (vague, all maximum, etc.):** Re-invoke with a more specific prompt asking for scores on each criterion individually with evidence.
|
|
630
|
+
- **Judge unavailable:** The user becomes the judge. Present all debate review reports and ask the user to make the pass/fail decision.
|
|
631
|
+
- **Resume from interrupted cycle:** Detect the latest version directory. If it has a review-report.md, the cycle completed -- continue from the next cycle. If it has app files but no review-report.md, the build completed but review did not -- run review on the existing build.
|
|
632
|
+
- **Criteria file already exists:**
|
|
633
|
+
|
|
634
|
+
Ask the user:
|
|
635
|
+
|
|
636
|
+
> **Existing criteria found at `prototypes/criteria.md`. What would you like to do?**
|
|
637
|
+
> 1. **Reuse** — Use existing criteria as-is
|
|
638
|
+
> 2. **Merge** — Combine existing with clickable-specific criteria
|
|
639
|
+
> 3. **Define new** — Create fresh criteria from scratch
|
|
640
|
+
- **Too many screens (>10-12):** Suggest prioritizing core screens for initial cycles. Secondary screens can be added in follow-up.
|
|
641
|
+
- **Writing review files fails:** Print the full content in the conversation so the user can copy it.
|
|
642
|
+
- **User cancels mid-process:** Inform user of partial files in `prototypes/clickable/` and debate reports in `prototypes/clickable/reviews/`. These can be cleaned up manually.
|