@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,230 @@
1
+ # Visual Review Debate Protocol
2
+
3
+ This document defines the structured debate process for team-based visual review in `arn-spark-static-prototype-teams`. Two expert reviewers -- a product strategist and a UX specialist -- independently score visual criteria against showcase screenshots, then cross-review each other's scores and findings to surface insights, resolve disagreements, and produce richer feedback than mechanical lower-of-two scoring.
4
+
5
+ The skill acts as the **facilitator**: it orchestrates the debate phases, passes file paths between agents, synthesizes the debate report, detects divergence, manages resolution, and presents results to the user. The facilitator does not participate in the scoring itself.
6
+
7
+ ## Team Roles
8
+
9
+ | Role | Agent | Perspective |
10
+ |------|-------|-------------|
11
+ | Builder | `arn-spark-prototype-builder` | Creates showcase (not part of debate) |
12
+ | Visual Strategist | `arn-spark-product-strategist` | Brand alignment, design direction, style brief fidelity, overall impression, product context |
13
+ | Visual Flow Reviewer | `arn-spark-ux-specialist` | Component usability, state coverage, interaction patterns, accessibility, spacing/hierarchy |
14
+ | Facilitator | The skill itself | Orchestrates debate, synthesizes report, manages divergence |
15
+ | Judge | `arn-spark-ux-judge` | Independent verdict (not part of debate) |
16
+
17
+ ## Debate Modes
18
+
19
+ ### Divergence Mode (Default)
20
+
21
+ Cross-review (Phase 2) triggers only when any criterion score differs by >= 2 points between experts. When experts mostly agree (all scores within 1 point), Phase 2 is skipped and combined scores use the lower of each pair (identical to base skill behavior). This mode saves tokens on cycles where the experts align.
22
+
23
+ ### Standard Mode
24
+
25
+ Full cross-review every cycle, regardless of score agreement. Produces richer debate findings but costs more tokens. Use when the project has complex visual decisions where expert dialogue adds value even on criteria they numerically agree about.
26
+
27
+ ## Execution Modes
28
+
29
+ **Important:** All execution modes use the same file-based review output. Each expert writes its review to a file -- this works identically in Agent Teams mode and sequential mode. The execution mode selection is based ONLY on whether Agent Teams is supported. File-based output does NOT affect mode selection and does NOT favor sequential over Agent Teams. When Agent Teams is supported, always use Agent Teams mode -- it is faster because experts run in parallel.
30
+
31
+ ### Agent Teams Mode (Preferred)
32
+
33
+ **When:** Agent Teams is supported by your platform.
34
+
35
+ Both experts are spawned as teammates. Phase 1 runs in parallel -- each expert writes to its own file simultaneously with no contention. Phase 2 uses Teams communication to coordinate cross-review -- each expert reads the other's completed file and writes its cross-review to a separate file.
36
+
37
+ ### Sequential Mode (Fallback)
38
+
39
+ **When:** Agent Teams is NOT enabled.
40
+
41
+ The skill simulates the debate through sequential expert invocations, manually passing file paths between agents so each can read the other's review. Produces the same logical result as Agent Teams mode but with serialized invocations.
42
+
43
+ ### Single-Reviewer Mode
44
+
45
+ **When:** `arn-spark-ux-specialist` is unavailable.
46
+
47
+ No debate occurs. The product strategist reviews independently. Strategist scores become the combined scores directly. The debate report notes "Single-Reviewer Mode" throughout. The skill suggests using `/arn-spark-static-prototype` instead, which handles single-reviewer identically.
48
+
49
+ ## Debate Phases
50
+
51
+ ### Phase 1: Independent Scoring
52
+
53
+ Both experts independently score ALL criteria against the showcase screenshots. Neither sees the other's scores during this phase.
54
+
55
+ **Product strategist focus areas:**
56
+ - Does the color palette match the style brief's hex values?
57
+ - Does the typography match the style brief's specified families, weights, sizes?
58
+ - Do shadows, borders, and radii match the style brief?
59
+ - Does the overall visual impression match the style brief's described feel?
60
+ - Is the showcase coherent with the product concept's intended audience and tone?
61
+ - If visual grounding assets exist:
62
+ - References: Does the overall direction align with inspirational references?
63
+ - Designs: How closely do components match design mockups?
64
+ - Brand: Are brand elements correctly applied?
65
+
66
+ **UX specialist focus areas:**
67
+ - Are all component variants rendered (sizes, states)?
68
+ - Are interactive states visually distinct (default, hover, active, disabled, error)?
69
+ - Does the component library theme configuration appear applied globally (not per-component overrides)?
70
+ - Does the visual hierarchy (heading, body, caption) establish clear reading order?
71
+ - Are components aligned to a consistent grid or layout system?
72
+ - Is content density appropriate for the intended use?
73
+ - Does dark mode (if applicable) maintain contrast and readability?
74
+ - Are spacing tokens consistent across components?
75
+
76
+ **Phase 1 file output:** Each expert writes their review to a file using the expert visual review template (`${CLAUDE_PLUGIN_ROOT}/skills/arn-spark-static-prototype-teams/references/expert-visual-review-template.md`). The skill tells each agent the exact file path to write to:
77
+ - Product strategist -> `prototypes/static/reviews/round-N-strategist-review.md`
78
+ - UX specialist -> `prototypes/static/reviews/round-N-ux-review.md`
79
+
80
+ The agent returns a brief summary in conversation -- the full review is in the file. Downstream steps read from the file, not from conversation context.
81
+
82
+ ### Divergence Check (Performed by Skill)
83
+
84
+ After Phase 1, the skill reads both review files and extracts per-criterion scores from the "Per-Criterion Scores" table.
85
+
86
+ **In divergence mode:** Calculate `|strategist_score - ux_score|` for each criterion.
87
+ - If max divergence < 2: Skip Phase 2. Combined score per criterion = `min(strategist, ux)`. Present to user: "Experts scored within 1 point on all criteria. No divergence detected -- skipping cross-review."
88
+ - If any divergence >= 2: Proceed to Phase 2. Present to user: "Divergence detected on [N] criteria (difference >= 2 points): [list criteria names and score pairs]. Triggering cross-review."
89
+
90
+ **In standard mode:** Always proceed to Phase 2 regardless of score differences.
91
+
92
+ ### Phase 2: Cross-Review
93
+
94
+ Each expert reads the other's Phase 1 file and responds per-criterion.
95
+
96
+ **Instructions for each expert during cross-review:**
97
+
98
+ For each criterion:
99
+ - **Agree** -- the other expert's score is valid. Optionally adjust own score (up or down) with reasoning.
100
+ - **Disagree** -- the other expert's score is incorrect. Maintain own score with counter-evidence (reference specific screenshot areas, style brief sections, or component states).
101
+ - **New concern prompted** -- the other expert's review reveals something not previously noticed. Add observation.
102
+
103
+ Focus on DIVERGENT criteria (score difference >= 2). For criteria with small differences (<= 1 point), a brief acknowledgment suffices.
104
+
105
+ **Phase 2 file output:** Each expert writes their cross-review to a separate file:
106
+ - Product strategist -> `prototypes/static/reviews/round-N-strategist-cross-review.md`
107
+ - UX specialist -> `prototypes/static/reviews/round-N-ux-cross-review.md`
108
+
109
+ In sequential mode (where the UX specialist writes Phase 1 + Phase 2 combined), the combined output goes to `round-N-ux-review.md` (a single file with both sections).
110
+
111
+ ### Phase 3: Synthesis (Performed by Skill)
112
+
113
+ The skill reads all review files written by the experts -- never from conversation context. The files to read are:
114
+ - `prototypes/static/reviews/round-N-strategist-review.md` (Phase 1)
115
+ - `prototypes/static/reviews/round-N-ux-review.md` (Phase 1, or Phase 1 + Phase 2 combined in sequential mode)
116
+ - `prototypes/static/reviews/round-N-strategist-cross-review.md` (Phase 2, if written separately)
117
+ - `prototypes/static/reviews/round-N-ux-cross-review.md` (Phase 2, Agent Teams mode only)
118
+
119
+ For each criterion, categorize:
120
+
121
+ **Consensus:** Both experts scored the same, or one adjusted their score in cross-review to match the other. Combined score = the agreed score.
122
+
123
+ **Additions:** One expert scored lower with specific feedback, the other did not dispute the lower score in cross-review (neither agreed nor disagreed). Combined score = the lower score.
124
+
125
+ **Disagreements:** Both experts maintained different scores after cross-review -- one raised a concern and the other explicitly disagreed. These require user resolution in Phase 4.
126
+
127
+ **No-debate:** Criteria where Phase 2 was skipped (divergence mode, no divergence detected). Combined score = `min(strategist, ux)`.
128
+
129
+ Write the debate review report using the debate review report template. Save to `prototypes/static/reviews/round-N-cycle-M-debate-report.md`.
130
+
131
+ ### Phase 4: Resolution (Conditional)
132
+
133
+ **Trigger:** One or more unresolved disagreements exist after Phase 3.
134
+
135
+ For each unresolved disagreement, present to the user:
136
+
137
+ "Expert disagreement on **[Criterion Name]** (criterion #[N]):
138
+ - **Product Strategist:** Score [X] -- [reasoning and evidence]
139
+ - **UX Specialist:** Score [Y] -- [reasoning and evidence]
140
+ - **Trade-off:** [what each score optimizes for]
141
+
142
+ What score should this criterion receive?"
143
+
144
+ Record user decisions. Update the debate report with resolutions. The resolved score becomes the final combined score for that criterion.
145
+
146
+ ## Sequential Mode Invocation Detail
147
+
148
+ When Agent Teams is not enabled, the skill simulates the debate with 3 sequential invocations per round:
149
+
150
+ **Invocation 1 -- Product Strategist Phase 1:**
151
+
152
+ Invoke the `arn-spark-product-strategist` 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:
153
+ - Screenshots from capture step
154
+ - All criteria with descriptions, scoring scale, and threshold
155
+ - Style brief, product concept, visual grounding assets (with category context)
156
+ - Expert visual review template path: `${CLAUDE_PLUGIN_ROOT}/skills/arn-spark-static-prototype-teams/references/expert-visual-review-template.md`
157
+ - File path to write to: `prototypes/static/reviews/round-N-strategist-review.md`
158
+ - Instruction: "Score every criterion independently against the screenshots. Write your complete review to the specified file path using the expert visual review template. Return a brief summary in conversation."
159
+
160
+ **Invocation 2 -- UX Specialist Phase 1 + Phase 2 Combined:**
161
+
162
+ Invoke the `arn-spark-ux-specialist` 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:
163
+ - Same inputs as Invocation 1
164
+ - The strategist's file path to read: `prototypes/static/reviews/round-N-strategist-review.md`
165
+ - File path to write to: `prototypes/static/reviews/round-N-ux-review.md`
166
+ - Instruction: "First, score every criterion independently from the UX perspective using the Phase 1 format. Then, read the strategist's review at the specified file path and respond to each criterion score using the Phase 2 cross-review format: agree (optionally adjust your score), disagree (with counter-evidence), or note new concerns. Write your complete review (Phase 1 + Phase 2 combined) to the specified file path. Return a brief summary in conversation."
167
+
168
+ **Invocation 3 -- Product Strategist Phase 2:**
169
+
170
+ Invoke the `arn-spark-product-strategist` 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:
171
+ - The UX specialist's file path to read: `prototypes/static/reviews/round-N-ux-review.md`
172
+ - Expert visual review template path
173
+ - File path to write to: `prototypes/static/reviews/round-N-strategist-cross-review.md`
174
+ - Instruction: "Read the UX specialist's review at the specified file path. The UX specialist has scored the criteria and also responded to your review. Respond to their scores and cross-review using the Phase 2 format. Write your cross-review to the specified file path. Return a brief summary in conversation."
175
+
176
+ The skill synthesizes by reading all three review files (not from conversation context).
177
+
178
+ **Note on sequential asymmetry:** In sequential mode, the UX specialist sees the strategist's review before writing their own Phase 1 review. Instruct the UX specialist to "score independently first" to minimize anchoring bias. The synthesis step normalizes the output regardless of invocation order.
179
+
180
+ ## Agent Teams Mode Invocation Detail
181
+
182
+ **Phase 1:** Spawn both experts simultaneously as teammates. Each receives:
183
+ - Screenshots, criteria, scoring parameters, style brief, product concept, visual grounding assets
184
+ - Expert visual review template path
185
+ - File path to write to: strategist -> `round-N-strategist-review.md`, UX specialist -> `round-N-ux-review.md`
186
+ - Instruction: "Score every criterion independently. Write the complete review to the specified file path using the expert visual review template. Do not communicate with other teammates during this phase."
187
+
188
+ Both produce Phase 1 reviews independently and write them to their respective files.
189
+
190
+ **Runtime verification:** After Phase 1, the skill checks that BOTH review files exist and contain per-criterion scores. If one file is missing (Agent Teams silently failed to spawn one expert), invoke the missing expert sequentially and note the issue in the debate report: "Agent Teams Phase 1 partial failure: [agent] did not produce its review file. Invoked sequentially as fallback."
191
+
192
+ **Phase 2:** Share file paths through Teams communication:
193
+ - Tell the UX specialist to read the strategist's file: `round-N-strategist-review.md`
194
+ - Tell the strategist to read the UX specialist's file: `round-N-ux-review.md`
195
+ - Each reads the other's file and writes their cross-review to a separate file:
196
+ - Product strategist -> `round-N-strategist-cross-review.md`
197
+ - UX specialist -> `round-N-ux-cross-review.md`
198
+ - Each responds using the Phase 2 cross-review format from the expert visual review template
199
+
200
+ The skill synthesizes by reading all four review files (not from conversation context).
201
+
202
+ ## Invocation Counts per Cycle
203
+
204
+ | Execution Mode | Debate Mode | Divergence Found | Expert Invocations | Notes |
205
+ |---------------|-------------|------------------|-------------------|-------|
206
+ | Agent Teams | Standard | N/A (always) | 4 (2 P1 + 2 P2) | Parallel within phases |
207
+ | Agent Teams | Divergence | Yes | 4 (2 P1 + 2 P2) | Same as standard |
208
+ | Agent Teams | Divergence | No | 2 (P1 only) | Phase 2 skipped |
209
+ | Sequential | Standard | N/A (always) | 3 (strat P1, UX P1+P2, strat P2) | |
210
+ | Sequential | Divergence | Yes | 3 | |
211
+ | Sequential | Divergence | No | 2 (strat P1, UX P1) | Phase 2 skipped |
212
+ | Single-reviewer | Any | N/A | 1 | No debate |
213
+
214
+ For max_cycles=3 with Agent Teams + standard mode: up to 12 expert invocations + 3 build cycles + 3 capture cycles + judge + showcase.
215
+
216
+ ## Skill's Facilitation Responsibilities
217
+
218
+ The `arn-spark-static-prototype-teams` skill (not the agents) is responsible for:
219
+
220
+ 1. **Agent Teams verification:** Check env var in Step 1 AND verify both experts write files after Phase 1. If one expert's file is missing, invoke sequentially as fallback and log the issue.
221
+ 2. **Mode detection:** Record execution mode (agent_teams / sequential) and debate mode (divergence / standard) from Step 1 and Step 3
222
+ 3. **Directory setup:** Create `prototypes/static/reviews/` if it does not exist before invoking experts
223
+ 4. **File path assignment:** Tell each expert agent the exact file path to write to and the expert visual review template path
224
+ 5. **Phase orchestration:** Run Phase 1, perform divergence check, conditionally run Phase 2, telling each expert to read the other's review file (by file path, not by passing content through conversation)
225
+ 6. **Synthesis:** Read all expert review files and categorize per criterion into consensus, additions, disagreements. Never rely on the expert's conversation summary -- always read the file.
226
+ 7. **Score computation:** For each criterion, compute the final combined score based on debate outcome (consensus: agreed score, additions: lower score, disagreements: user-resolved score, no-debate: min of two)
227
+ 8. **Conflict detection:** Identify disagreements and present to user for resolution with both positions and evidence
228
+ 9. **Report writing:** Produce the debate review report per template and save to file
229
+ 10. **Budget management:** Never exceed the user's configured max_cycles
230
+ 11. **User communication:** Present divergence status, debate summaries, and resolution requests clearly between phases
@@ -0,0 +1,148 @@
1
+ # Debate Review Report Template -- Static Prototype Teams
2
+
3
+ Use this template for each cycle's debate review report produced by the `arn-spark-static-prototype-teams` skill. The skill populates this template after synthesizing the expert debate outputs (Phase 1 scores + Phase 2 cross-review responses) into categorized findings with final combined scores.
4
+
5
+ ## Instructions for the Skill
6
+
7
+ When populating this template:
8
+
9
+ - Every section MUST appear, even if empty (write "None" for empty sections)
10
+ - **Consensus:** both experts agree on the score, or one adjusted to match in cross-review
11
+ - **Additions:** one expert scored lower with feedback, the other did not dispute
12
+ - **Disagreements:** experts explicitly disagreed in cross-review and disagreement persists
13
+ - **No-debate:** Phase 2 was skipped (divergence mode, no divergence detected) -- combined = min(strategist, ux)
14
+ - In single-reviewer mode (no UX specialist): all scores are from the strategist alone. Omit Disagreements and note "Single-Reviewer Mode" throughout.
15
+ - Save each report to `prototypes/static/reviews/round-N-cycle-M-debate-report.md`
16
+ - Also copy to `prototypes/static/v[M]/review-report.md` for version-local access
17
+
18
+ ---
19
+
20
+ ## Template
21
+
22
+ ```markdown
23
+ # Debate Review Report: Cycle [M], Round [N]
24
+
25
+ ## Debate Participants
26
+
27
+ | Role | Agent | Status |
28
+ |------|-------|--------|
29
+ | Visual Strategist | arn-spark-product-strategist | Participated |
30
+ | Visual Flow Reviewer | arn-spark-ux-specialist | Participated / Unavailable |
31
+
32
+ ## Configuration
33
+
34
+ - **Debate mode:** [Divergence / Standard]
35
+ - **Execution mode:** [Agent Teams / Sequential / Single-Reviewer]
36
+ - **Phase 2 triggered:** [Yes -- [N] criteria diverged by >= 2 / No -- all within 1 point / Yes -- standard mode (always)]
37
+ - **Divergent criteria:** [list names, or "None"]
38
+ - **Scoring scale:** [1-N]
39
+ - **Minimum threshold:** [T]
40
+
41
+ ## Criterion Scores
42
+
43
+ | # | Criterion | Strategist | UX Specialist | Combined | Status | Category |
44
+ |---|-----------|-----------|---------------|----------|--------|----------|
45
+ | 1 | [name] | [score] | [score] | [combined] | PASS/FAIL | [Consensus/Addition/Disagreement/No-debate] |
46
+ | 2 | [name] | [score] | [score] | [combined] | PASS/FAIL | [category] |
47
+ | ... | ... | ... | ... | ... | ... | ... |
48
+
49
+ ## Visual Grounding Comparison
50
+
51
+ **Assets provided to reviewers:**
52
+ | Category | Count | Source |
53
+ |----------|-------|--------|
54
+ | References | [N] | [URL captures, user screenshots] |
55
+ | Designs | [N] | [Figma exports, Canva exports, manual mockups] |
56
+ | Brand | [N] | [logos, guidelines] |
57
+
58
+ **Comparison notes:**
59
+ - **Reference alignment:** [strategist and UX specialist observations, noting any agreement or disagreement]
60
+ - **Design fidelity:** [only if designs exist]
61
+ - **Brand compliance:** [only if brand assets exist]
62
+
63
+ [If no visual grounding assets: "No visual grounding assets provided. Review based on style brief text only."]
64
+
65
+ ## Debate Findings
66
+
67
+ ### Consensus Criteria
68
+
69
+ [Criteria where both experts agreed or one adjusted to match]
70
+
71
+ **Criterion [N]: [Name]** -- Combined [X]/[scale]
72
+ - **Strategist:** [brief reasoning]
73
+ - **UX Specialist:** [brief reasoning]
74
+ - **Outcome:** Both agree. [Any shared feedback for builder.]
75
+
76
+ [Repeat for each consensus criterion, or "None"]
77
+
78
+ ### Addition Criteria
79
+
80
+ [Criteria where one expert raised feedback the other did not dispute]
81
+
82
+ **Criterion [N]: [Name]** -- Combined [X]/[scale] (raised by [Strategist / UX Specialist])
83
+ - **Lower scorer:** [agent] scored [X] -- [reasoning]
84
+ - **Higher scorer:** [agent] scored [Y] -- did not dispute
85
+ - **Outcome:** Lower score used. Builder feedback: [specific suggestion]
86
+
87
+ [Repeat for each addition criterion, or "None"]
88
+
89
+ ### Disagreement Criteria
90
+
91
+ [Criteria where experts explicitly disagreed after cross-review]
92
+
93
+ **Criterion [N]: [Name]**
94
+ - **Strategist:** Score [X] -- [position + reasoning + evidence]
95
+ - **UX Specialist:** Score [Y] -- [position + reasoning + evidence]
96
+ - **Trade-off:** [what each score optimizes for]
97
+ - **Resolution:** [User decided: score [Z] because [reasoning] / Pending user input]
98
+
99
+ [Repeat for each disagreement criterion, or "None"]
100
+
101
+ ### No-Debate Criteria
102
+
103
+ [Criteria where Phase 2 was skipped -- divergence mode only]
104
+
105
+ [If Phase 2 was skipped:] All criteria scored within 1 point. Combined = min(strategist, ux). No cross-review was performed.
106
+
107
+ [If Phase 2 ran:] N/A -- all criteria were included in the debate.
108
+
109
+ ## Failing Criteria
110
+
111
+ ### [Criterion Name] -- Combined [X]/[scale]
112
+ - **Strategist feedback:** [specific observation and suggestion]
113
+ - **UX specialist feedback:** [specific observation and suggestion]
114
+ - **Debate insight:** [anything surfaced during cross-review that adds context beyond individual feedback]
115
+ - **Priority:** [Critical / Important]
116
+
117
+ [Repeat for each failing criterion]
118
+
119
+ ## Passing Criteria Highlights
120
+ [Brief notes on particularly strong aspects]
121
+
122
+ ## Summary
123
+
124
+ - **Passing:** [N] of [M] criteria meet threshold
125
+ - **Failing:** [N] criteria below threshold
126
+ - **Phase 2 triggered:** [Yes / No]
127
+ - **Consensus criteria:** [N]
128
+ - **Addition criteria:** [N]
129
+ - **Disagreement criteria:** [N] ([N] resolved by user)
130
+ - **No-debate criteria:** [N]
131
+ - **Verdict:** PROCEED TO NEXT CYCLE / ALL CRITERIA PASS -- PROCEED TO JUDGE
132
+
133
+ ## Recommended Focus for Next Cycle
134
+
135
+ [If failing: ordered list of what to fix, most critical first, incorporating debate insights. Each item includes the debate context so the builder understands WHY, not just what to fix.]
136
+
137
+ 1. **[Criterion Name]:** [specific fix] -- [debate context: both experts agreed / strategist flagged X while UX specialist noted Y / user resolved in favor of Z]
138
+ 2. ...
139
+ ```
140
+
141
+ ## Usage Notes
142
+
143
+ - The skill writes this report to `prototypes/static/reviews/round-N-cycle-M-debate-report.md` after each debate cycle
144
+ - Also copy to `prototypes/static/v[M]/review-report.md` for version-local access
145
+ - The "Recommended Focus for Next Cycle" section is the primary output fed to the builder for the next cycle -- it must be actionable and specific, enriched by debate context
146
+ - In single-reviewer mode, the Category column is always "Single-reviewer", the Disagreements section reads "N/A -- single-reviewer mode", and the UX Specialist column shows "N/A"
147
+ - When Phase 2 is skipped in divergence mode, all criteria are categorized as "No-debate" and the Debate Findings section reflects this
148
+ - When writing the final report (`prototypes/static/final-report.md`), aggregate all per-cycle debate reports with a summary of the debate arc: how scores evolved, what diverged, what converged, what the user decided
@@ -0,0 +1,130 @@
1
+ # Expert Visual Review Template
2
+
3
+ This template defines the file format that expert agents (`arn-spark-product-strategist`, `arn-spark-ux-specialist`) use when writing their visual review reports to disk during `arn-spark-static-prototype-teams` debate cycles. Writing reviews to files ensures they survive context compression and provides a full audit trail.
4
+
5
+ ## File Naming Convention
6
+
7
+ All review files go in `prototypes/static/reviews/`. Create the directory if it does not exist.
8
+
9
+ ```
10
+ prototypes/static/reviews/
11
+ ├── round-N-strategist-review.md ← Product strategist Phase 1
12
+ ├── round-N-ux-review.md ← UX specialist Phase 1 (+ Phase 2 in sequential mode)
13
+ ├── round-N-strategist-cross-review.md ← Product strategist Phase 2 response
14
+ ├── round-N-ux-cross-review.md ← UX specialist Phase 2 response (Agent Teams only)
15
+ └── round-N-cycle-M-debate-report.md ← Synthesized debate report (written by skill)
16
+ ```
17
+
18
+ Where `N` is the overall round number and `M` is the cycle number within the current validation run.
19
+
20
+ ---
21
+
22
+ ## Phase 1 Template (Independent Scoring)
23
+
24
+ When an expert writes their Phase 1 review, the file must follow this structure:
25
+
26
+ ```markdown
27
+ # Visual Review: Round [N] -- [Product Strategist / UX Specialist]
28
+
29
+ **Agent:** [arn-spark-product-strategist / arn-spark-ux-specialist]
30
+ **Phase:** Phase 1: Independent Scoring
31
+ **Execution mode:** [Agent Teams / Sequential / Single-Reviewer]
32
+ **Criteria scored:** [count]
33
+ **Screenshots reviewed:** [count]
34
+ **Version:** v[X]
35
+
36
+ ---
37
+
38
+ ## Per-Criterion Scores
39
+
40
+ | # | Criterion | Score | Evidence |
41
+ |---|-----------|-------|----------|
42
+ | 1 | [name] | [X]/[scale] | [1-2 sentence observation grounded in specific screenshot evidence] |
43
+ | 2 | [name] | [X]/[scale] | [evidence] |
44
+ | ... | ... | ... | ... |
45
+
46
+ ## Failing Criteria Detail
47
+
48
+ ### [Criterion Name] -- [X]/[scale]
49
+
50
+ - **Observation:** [What specifically is wrong -- reference screenshot area, component, or element]
51
+ - **Expected:** [What the style brief or criteria description requires]
52
+ - **Suggestion:** [Specific actionable improvement for the builder]
53
+ - **Priority:** [Critical / Important]
54
+
55
+ [Repeat for each criterion below threshold]
56
+
57
+ ## Passing Criteria Highlights
58
+
59
+ [Brief notes on particularly strong aspects, optional]
60
+
61
+ ## Cross-Cutting Observations
62
+
63
+ - **Style coherence:** [Overall observation about the showcase's visual consistency]
64
+ - **Component quality:** [Overall observation about component rendering quality]
65
+ - **Missing elements:** [Anything expected but not present in the showcase]
66
+ ```
67
+
68
+ ---
69
+
70
+ ## Phase 2 Template (Cross-Review)
71
+
72
+ When an expert writes their Phase 2 cross-review, the file must follow this structure. In sequential mode where the UX specialist writes Phase 1 + Phase 2 combined, append this section after the Phase 1 content in the same file.
73
+
74
+ ```markdown
75
+ ## Cross-Review Response
76
+
77
+ ### Response to [Product Strategist / UX Specialist]'s Scores
78
+
79
+ | # | Criterion | Their Score | My Score | Response | Adjusted Score |
80
+ |---|-----------|-------------|----------|----------|----------------|
81
+ | 1 | [name] | [X] | [Y] | [Agree/Disagree/New concern] | [new score or unchanged] |
82
+ | 2 | [name] | [X] | [Y] | [Agree/Disagree/New concern] | [new score or unchanged] |
83
+ | ... | ... | ... | ... | ... | ... |
84
+
85
+ ### Detailed Responses (for divergent criteria)
86
+
87
+ **Criterion [N]: [Name]**
88
+ - **Their score:** [X] -- "[their evidence summary]"
89
+ - **My score:** [Y]
90
+ - **Response:** [Agree / Disagree / New concern]
91
+ - **Reasoning:** [Specific counter-evidence or supporting evidence, referencing screenshot areas]
92
+ - **Adjusted score:** [new score, or same if maintaining position]
93
+
94
+ [Repeat for each criterion with score difference >= 2, or all criteria in standard mode]
95
+
96
+ ### New Concerns Prompted by Other Expert's Review
97
+
98
+ - [Description of something their review revealed that was not noticed in Phase 1]
99
+ ```
100
+
101
+ ---
102
+
103
+ ## Instructions for Expert Agents
104
+
105
+ When instructed to write a visual review:
106
+
107
+ 1. Read all screenshots provided (visually, via multimodal capabilities)
108
+ 2. Read the criteria list and scoring scale
109
+ 3. Read the style brief and product concept for context
110
+ 4. Read visual grounding assets if provided (with their category context: references=inspirational, designs=specification, brand=constraints)
111
+ 5. Score EVERY criterion -- do not skip or combine criteria
112
+ 6. For each score, provide specific evidence grounded in what you observe in the screenshots
113
+ 7. Read this template to understand the expected file format
114
+ 8. Write your review to the exact file path specified by the caller
115
+ 9. Return a brief summary in conversation (criteria scored, count below threshold, top concerns) -- the full detail is in the file
116
+
117
+ The file contains the COMPLETE review with all scores and evidence. The conversation summary is just an acknowledgment -- downstream steps read from the file, not from conversation context.
118
+
119
+ ## Instructions for the Skill (Facilitator)
120
+
121
+ When orchestrating expert visual reviews:
122
+
123
+ 1. Create the `prototypes/static/reviews/` directory if it does not exist before invoking any expert
124
+ 2. Tell each expert agent the exact file path to write to AND the path to this template
125
+ 3. Tell each expert the criteria list, scoring scale, threshold, and all reference documents (style brief, product concept, visual grounding assets with categories)
126
+ 4. Provide all screenshots from the capture step
127
+ 5. When invoking for cross-review (Phase 2), tell the expert to READ the other expert's file by providing the file path -- do not pass the file content through conversation
128
+ 6. After each expert completes, read the review file (not the conversation summary) to extract scores for divergence calculation and synthesis
129
+ 7. Extract per-criterion scores from the "Per-Criterion Scores" table in each review file
130
+ 8. When synthesizing the debate report, read ALL review files from the current round -- never rely on conversation context