@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,350 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: arn-spark-concept-review
|
|
3
|
+
description: >-
|
|
4
|
+
This skill should be used when the user says "concept review", "review concept",
|
|
5
|
+
"update product concept", "synthesize stress tests", "stress test review",
|
|
6
|
+
"apply stress test findings", "review stress test results", "concept update",
|
|
7
|
+
"merge stress test recommendations", or wants to synthesize findings from
|
|
8
|
+
completed stress tests into a reviewed and updated product concept document.
|
|
9
|
+
Scans for stress test reports, consolidates recommendations, resolves conflicts
|
|
10
|
+
using product pillars, presents the full changeset for user approval, and
|
|
11
|
+
produces an updated product-concept.md alongside a concept-review-report.md.
|
|
12
|
+
version: 1.0.0
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# Arness Spark Concept Review
|
|
16
|
+
|
|
17
|
+
Synthesize findings from completed stress tests into an updated product concept. This skill scans for stress test reports, extracts their Recommended Concept Updates tables and Unresolved Questions, invokes the product strategist to consolidate and de-duplicate recommendations, resolves conflicts using product pillars, and presents the full proposed changeset to the user for approval before making any changes.
|
|
18
|
+
|
|
19
|
+
This is the **only skill that modifies product-concept.md**. All stress test skills are read-only with respect to the product concept -- they write recommendations to their reports, and this skill is the single point where those recommendations become actual changes, subject to explicit user approval.
|
|
20
|
+
|
|
21
|
+
The process:
|
|
22
|
+
1. Scan for available stress test reports
|
|
23
|
+
2. Extract all recommendations and unresolved questions
|
|
24
|
+
3. Consolidate, de-duplicate, and detect conflicts via the product strategist
|
|
25
|
+
4. Conditionally involve the UX specialist for UX-relevant changes
|
|
26
|
+
5. Present the full changeset to the user for approval (accept all, or review individually)
|
|
27
|
+
6. Apply approved changes: rename the original concept, write the updated concept
|
|
28
|
+
7. Write the concept review report as an audit trail
|
|
29
|
+
|
|
30
|
+
## Prerequisites
|
|
31
|
+
|
|
32
|
+
### Configuration Check
|
|
33
|
+
|
|
34
|
+
1. Read the project's `arness.md` and check for a `## Arness` section
|
|
35
|
+
2. If found, extract the configured **Vision directory** and **Reports directory** paths
|
|
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 Reports directory or `stress-tests/` subdirectory does not exist, inform the user: "No stress-tests directory found. Run a stress test skill first to generate reports." (The stress test skills create this directory when writing their reports.)
|
|
38
|
+
|
|
39
|
+
### Data Availability
|
|
40
|
+
|
|
41
|
+
| Artifact | Status | Location | Fallback |
|
|
42
|
+
|----------|--------|----------|----------|
|
|
43
|
+
| Product concept | REQUIRED | `<vision-dir>/product-concept.md` | Cannot proceed without it -- suggest running `/arn-spark-discover` |
|
|
44
|
+
| Product pillars | REQUIRED | Product Pillars section of product concept | Cannot resolve conflicts without pillars -- suggest running `/arn-spark-discover` to define pillars |
|
|
45
|
+
| At least 1 stress test report | REQUIRED | `<reports-dir>/stress-tests/` | Cannot proceed without at least one report -- see below |
|
|
46
|
+
| Competitive landscape | ENRICHES | Competitive Landscape section of product concept | Review proceeds but competitive context is unavailable for conflict resolution |
|
|
47
|
+
|
|
48
|
+
**Stress test report detection:**
|
|
49
|
+
|
|
50
|
+
Scan `<reports-dir>/stress-tests/` for the following report files:
|
|
51
|
+
- `interview-report.md` (from `/arn-spark-stress-interview`)
|
|
52
|
+
- `competitive-report.md` (from `/arn-spark-stress-competitive`)
|
|
53
|
+
- `premortem-report.md` (from `/arn-spark-stress-premortem`)
|
|
54
|
+
- `prfaq-report.md` (from `/arn-spark-stress-prfaq`)
|
|
55
|
+
|
|
56
|
+
Present the scan results to the user:
|
|
57
|
+
|
|
58
|
+
"Found [N] stress test report(s):
|
|
59
|
+
- ✓ / — Interview Report: [found / not found]
|
|
60
|
+
- ✓ / — Competitive Report: [found / not found]
|
|
61
|
+
- ✓ / — Pre-Mortem Report: [found / not found]
|
|
62
|
+
- ✓ / — PR/FAQ Report: [found / not found]"
|
|
63
|
+
|
|
64
|
+
Use ✓ for found reports and — for missing reports.
|
|
65
|
+
|
|
66
|
+
**If 0 reports found:**
|
|
67
|
+
|
|
68
|
+
Inform the user: "No stress test reports found in `<reports-dir>/stress-tests/`. Run at least one stress test skill before reviewing the concept."
|
|
69
|
+
|
|
70
|
+
List the available stress test skills:
|
|
71
|
+
- `/arn-spark-stress-interview` -- Synthetic user interviews with adversarial personas
|
|
72
|
+
- `/arn-spark-stress-competitive` -- Competitive gap analysis
|
|
73
|
+
- `/arn-spark-stress-premortem` -- Pre-mortem failure investigation
|
|
74
|
+
- `/arn-spark-stress-prfaq` -- PR/FAQ marketing stress test
|
|
75
|
+
|
|
76
|
+
Do not proceed. Exit the skill.
|
|
77
|
+
|
|
78
|
+
**If 1 or more reports found:** Proceed with the available reports.
|
|
79
|
+
|
|
80
|
+
## Workflow
|
|
81
|
+
|
|
82
|
+
### Step 1: Load References
|
|
83
|
+
|
|
84
|
+
Load the conflict resolution protocol and review report template:
|
|
85
|
+
> Read `${CLAUDE_PLUGIN_ROOT}/skills/arn-spark-concept-review/references/conflict-resolution-protocol.md`
|
|
86
|
+
> Read `${CLAUDE_PLUGIN_ROOT}/skills/arn-spark-concept-review/references/review-report-template.md`
|
|
87
|
+
|
|
88
|
+
### Step 2: Read Reports and Extract Data
|
|
89
|
+
|
|
90
|
+
For each available stress test report:
|
|
91
|
+
|
|
92
|
+
1. Read the full report from `<reports-dir>/stress-tests/`
|
|
93
|
+
2. Extract the **Recommended Concept Updates** table -- parse every row preserving: row number, section, current state, recommended change, type (Add/Modify/Remove), rationale
|
|
94
|
+
3. Extract the **Unresolved Questions** section -- parse every row preserving: row number, section, question, options, assessment
|
|
95
|
+
4. Record the source report name, file path, and report date for attribution
|
|
96
|
+
|
|
97
|
+
Also read the current product concept from `<vision-dir>/product-concept.md`. Extract:
|
|
98
|
+
- The full document content (for the strategist)
|
|
99
|
+
- The Product Pillars section specifically (for conflict resolution)
|
|
100
|
+
- All section headings (for validating that recommendations reference real sections)
|
|
101
|
+
|
|
102
|
+
### Step 3: Invoke Product Strategist for Consolidation
|
|
103
|
+
|
|
104
|
+
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:
|
|
105
|
+
|
|
106
|
+
--- PRODUCT CONCEPT ---
|
|
107
|
+
[full product concept content]
|
|
108
|
+
--- END PRODUCT CONCEPT ---
|
|
109
|
+
|
|
110
|
+
--- PRODUCT PILLARS ---
|
|
111
|
+
[product pillars section content]
|
|
112
|
+
--- END PRODUCT PILLARS ---
|
|
113
|
+
|
|
114
|
+
--- STRESS TEST RECOMMENDATIONS ---
|
|
115
|
+
Source: [Report 1 name]
|
|
116
|
+
[full Recommended Concept Updates table from report 1]
|
|
117
|
+
|
|
118
|
+
Source: [Report 2 name]
|
|
119
|
+
[full Recommended Concept Updates table from report 2]
|
|
120
|
+
|
|
121
|
+
[... for all available reports]
|
|
122
|
+
--- END STRESS TEST RECOMMENDATIONS ---
|
|
123
|
+
|
|
124
|
+
--- CONSOLIDATION TASK ---
|
|
125
|
+
Follow the conflict resolution protocol:
|
|
126
|
+
1. De-duplicate recommendations that target the same section with semantically equivalent changes. Merge them with multi-source attribution.
|
|
127
|
+
2. Detect conflicts: recommendations targeting the same section with contradictory changes.
|
|
128
|
+
3. For each conflict, assess which recommendation better serves the product pillars. Produce a conflict resolution assessment with: both sides stated, pillar alignment analysis for each, your recommendation with reasoning, and a plain-language trade-off statement.
|
|
129
|
+
4. Organize the consolidated changeset grouped by product concept section.
|
|
130
|
+
5. Do NOT auto-resolve any conflicts. Present your assessment but flag that the user decides.
|
|
131
|
+
--- END CONSOLIDATION TASK ---
|
|
132
|
+
|
|
133
|
+
Receive back the consolidated changeset with de-duplicated recommendations, detected conflicts with resolution assessments, and the organized section grouping.
|
|
134
|
+
|
|
135
|
+
### Step 4: Conditional UX Specialist Involvement
|
|
136
|
+
|
|
137
|
+
Check the product concept content for signals that the UX specialist was involved in its creation:
|
|
138
|
+
|
|
139
|
+
- Explicit mentions of "UX specialist", "arn-spark-ux-specialist", or "UX review" in the document (strong signal)
|
|
140
|
+
- Dedicated sections with visual direction details (color names, font families, spacing values, component specs)
|
|
141
|
+
- References to prototype files, design artifacts, or Figma links
|
|
142
|
+
- Sections with interaction descriptions (click behaviors, transitions, micro-interactions) beyond basic flow
|
|
143
|
+
|
|
144
|
+
**Trigger condition:** If ANY of these signals are present, invoke the UX specialist.
|
|
145
|
+
|
|
146
|
+
**If UX signals are detected:**
|
|
147
|
+
|
|
148
|
+
Identify which recommendations in the consolidated changeset affect UX-relevant sections (Core Experience, visual direction, interaction patterns, onboarding flows, accessibility). If any exist, 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:
|
|
149
|
+
|
|
150
|
+
--- PRODUCT CONCEPT ---
|
|
151
|
+
[full product concept content]
|
|
152
|
+
--- END PRODUCT CONCEPT ---
|
|
153
|
+
|
|
154
|
+
--- UX-RELEVANT CHANGES ---
|
|
155
|
+
[subset of changeset recommendations that affect UX sections]
|
|
156
|
+
--- END UX-RELEVANT CHANGES ---
|
|
157
|
+
|
|
158
|
+
--- UX REVIEW TASK ---
|
|
159
|
+
Review the proposed changes to UX-relevant sections. For each change:
|
|
160
|
+
1. Does the change align with the visual direction and interaction patterns established in the concept?
|
|
161
|
+
2. Are there UX implications the stress tests may have missed?
|
|
162
|
+
3. Do you have supplementary recommendations for implementing this change while preserving design coherence?
|
|
163
|
+
--- END UX REVIEW TASK ---
|
|
164
|
+
|
|
165
|
+
Incorporate the UX specialist's feedback into the changeset as supplementary notes alongside each relevant recommendation.
|
|
166
|
+
|
|
167
|
+
**If no UX signals are detected:** Skip this step entirely.
|
|
168
|
+
|
|
169
|
+
### Step 5: Present Changeset for User Approval
|
|
170
|
+
|
|
171
|
+
**This is the mandatory user approval gate. No changes to the product concept are made without explicit user approval.**
|
|
172
|
+
|
|
173
|
+
Present the full consolidated changeset to the user, organized by product concept section. For each recommendation, show:
|
|
174
|
+
- Source report(s)
|
|
175
|
+
- Type (Add / Modify / Remove)
|
|
176
|
+
- Current state of the affected section
|
|
177
|
+
- Proposed change
|
|
178
|
+
- Rationale with source attribution
|
|
179
|
+
- UX specialist notes (if applicable)
|
|
180
|
+
|
|
181
|
+
For each conflict, show:
|
|
182
|
+
- Both recommendations with source attribution
|
|
183
|
+
- The strategist's conflict resolution assessment (pillar analysis, recommendation, trade-off)
|
|
184
|
+
|
|
185
|
+
After presenting the changeset, also show the aggregated unresolved questions (de-duplicated across reports, with source attribution).
|
|
186
|
+
|
|
187
|
+
Then ask for the user's decision:
|
|
188
|
+
|
|
189
|
+
Ask the user: **"How would you like to handle these [N] proposed changes?"**
|
|
190
|
+
1. Accept all changes as proposed
|
|
191
|
+
2. Review by section (batch accept/reject per section, then drill into individual changes if needed)
|
|
192
|
+
3. Review each change individually
|
|
193
|
+
|
|
194
|
+
**If the user chooses "Accept all":**
|
|
195
|
+
All non-conflicting changes are accepted as-is. For each conflict, accept the strategist's recommended resolution. Proceed to Step 6.
|
|
196
|
+
|
|
197
|
+
**If the user chooses "Review by section":**
|
|
198
|
+
Present changes grouped by product concept section. For each section with changes:
|
|
199
|
+
|
|
200
|
+
Ask the user: **"[Section Name] — [N] changes: [brief summary of changes]"**
|
|
201
|
+
1. Accept all in this section
|
|
202
|
+
2. Reject all in this section
|
|
203
|
+
3. Review individually within this section
|
|
204
|
+
|
|
205
|
+
If **Accept all** or **Reject all**, record the batch decision and move to the next section. If **Review individually**, present each change in the section using the individual review pattern below. After all sections are reviewed, handle conflicts (same as individual review).
|
|
206
|
+
|
|
207
|
+
**If the user chooses "Review individually":**
|
|
208
|
+
Present changes grouped by product concept section. For each change (or batch of related changes within a section):
|
|
209
|
+
|
|
210
|
+
Ask the user: **"[Section Name] -- [Change summary]: [Type] -- [brief description]"**
|
|
211
|
+
1. Accept
|
|
212
|
+
2. Reject
|
|
213
|
+
3. Modify
|
|
214
|
+
|
|
215
|
+
- **Accept:** Record the change as accepted.
|
|
216
|
+
- **Reject:** Use plain-text conversational input to ask "Why would you like to reject this change?" Record the change as rejected with the user's reason.
|
|
217
|
+
- **Modify:** Use plain-text conversational input to ask "Describe your modification." Record the change as modified with the user's modification.
|
|
218
|
+
|
|
219
|
+
For conflicts, present both sides with the strategist's assessment:
|
|
220
|
+
|
|
221
|
+
Ask the user: **"CONFLICT in [Section Name]: [Brief description]. The strategist recommends [recommended side]. How would you like to resolve this?"**
|
|
222
|
+
1. Accept strategist's recommendation ([brief description of recommended side])
|
|
223
|
+
2. Choose the other recommendation ([brief description of other side])
|
|
224
|
+
3. Provide a custom resolution
|
|
225
|
+
|
|
226
|
+
- If the user chooses option 3, collect their custom resolution as free-form text input.
|
|
227
|
+
|
|
228
|
+
**If the user rejects ALL changes (every individual change rejected):**
|
|
229
|
+
Inform the user: "All proposed changes have been rejected. The product concept will not be modified. A review report will still be written documenting the stress test findings and your decisions."
|
|
230
|
+
Skip the concept rename and rewrite in Step 6. Proceed directly to Step 7 to write the review report.
|
|
231
|
+
|
|
232
|
+
### Step 6: Apply Approved Changes
|
|
233
|
+
|
|
234
|
+
This step is skipped if the user rejected all changes.
|
|
235
|
+
|
|
236
|
+
**6a. Read the product concept template:**
|
|
237
|
+
|
|
238
|
+
> Read `${CLAUDE_PLUGIN_ROOT}/skills/arn-spark-discover/references/product-concept-template.md`
|
|
239
|
+
|
|
240
|
+
This is the template that governs the structure of the product concept. The updated concept MUST preserve this template's section structure exactly.
|
|
241
|
+
|
|
242
|
+
**6b. Rename the original concept:**
|
|
243
|
+
|
|
244
|
+
Rename `<vision-dir>/product-concept.md` to `<vision-dir>/product-concept-pre-review.md`.
|
|
245
|
+
|
|
246
|
+
If a file named `product-concept-pre-review.md` already exists (from a previous review cycle), overwrite it. Git provides history.
|
|
247
|
+
|
|
248
|
+
If the rename fails, inform the user of the error and ask whether to proceed with writing the updated concept anyway (the original would be lost) or abort. Use:
|
|
249
|
+
|
|
250
|
+
Ask the user: **"Could not rename the original product concept. How would you like to proceed?"**
|
|
251
|
+
1. Write the updated concept anyway (original will be overwritten)
|
|
252
|
+
2. Abort -- do not modify the product concept
|
|
253
|
+
|
|
254
|
+
**6c. Write the updated product concept:**
|
|
255
|
+
|
|
256
|
+
Starting from the pre-review product concept content, apply all accepted and modified changes while preserving the template structure:
|
|
257
|
+
|
|
258
|
+
- Every section from the product concept template MUST appear in the output
|
|
259
|
+
- Apply "Add" changes by adding content to the specified section
|
|
260
|
+
- Apply "Modify" changes by updating the specified content within the section
|
|
261
|
+
- Apply "Remove" changes by removing the specified content from the section (but keep the section heading if other content remains)
|
|
262
|
+
- For modified changes, use the user's modified version, not the original recommendation
|
|
263
|
+
- For resolved conflicts, apply the chosen resolution
|
|
264
|
+
- Preserve all sections and content that were NOT targeted by any recommendation
|
|
265
|
+
- Write in present tense, consistent with the existing document style
|
|
266
|
+
|
|
267
|
+
Write the updated concept to `<vision-dir>/product-concept.md`.
|
|
268
|
+
|
|
269
|
+
### Step 7: Write Concept Review Report
|
|
270
|
+
|
|
271
|
+
Using the review report template, populate all sections:
|
|
272
|
+
|
|
273
|
+
1. **Header:** Product name, date, list of stress tests included
|
|
274
|
+
2. **Input Reports Summary:** Each report found, its date, recommendation count, and unresolved question count
|
|
275
|
+
3. **Consolidated Changeset:** All recommendations grouped by section with full context and user decisions
|
|
276
|
+
4. **Conflict Resolutions:** Each conflict with both sides, strategist assessment, and user's decision
|
|
277
|
+
5. **User Decisions Summary:** Three tables -- accepted changes, rejected changes (with reasons), modified changes (with modifications)
|
|
278
|
+
6. **Aggregated Unresolved Questions:** De-duplicated across reports with source attribution
|
|
279
|
+
7. **UX Specialist Review:** If UX specialist was involved, document trigger signals, sections reviewed, feedback, and impact on changeset. If not involved, note why.
|
|
280
|
+
8. **Change Summary:** Counts of total recommendations, de-duplicated count, conflicts, accepted/rejected/modified, breakdown by type (Add/Modify/Remove)
|
|
281
|
+
|
|
282
|
+
Write the report to `<reports-dir>/stress-tests/concept-review-report.md`.
|
|
283
|
+
|
|
284
|
+
### Step 8: Present Summary
|
|
285
|
+
|
|
286
|
+
Present a summary to the user:
|
|
287
|
+
|
|
288
|
+
"Concept review complete.
|
|
289
|
+
|
|
290
|
+
**Reports reviewed:** [N] stress test report(s) ([list names])
|
|
291
|
+
**Total recommendations:** [N] (after de-duplication: [N])
|
|
292
|
+
**Conflicts detected:** [N]
|
|
293
|
+
**Changes accepted:** [N] ([X] adds, [Y] modifies, [Z] removes)
|
|
294
|
+
**Changes rejected:** [N]
|
|
295
|
+
**Changes modified:** [N]
|
|
296
|
+
**Unresolved questions:** [N]
|
|
297
|
+
|
|
298
|
+
[If concept was updated:]
|
|
299
|
+
Updated product concept saved to `[vision-dir]/product-concept.md`.
|
|
300
|
+
Original preserved as `[vision-dir]/product-concept-pre-review.md`.
|
|
301
|
+
|
|
302
|
+
[If concept was NOT updated:]
|
|
303
|
+
Product concept was not modified (all changes rejected).
|
|
304
|
+
|
|
305
|
+
Review report saved to `[reports-dir]/stress-tests/concept-review-report.md`.
|
|
306
|
+
|
|
307
|
+
Next step: Run `/arn-spark-arch-vision` to define the architecture based on the [updated / current] product concept."
|
|
308
|
+
|
|
309
|
+
## Agent Invocation Guide
|
|
310
|
+
|
|
311
|
+
| Situation | Agent | Context |
|
|
312
|
+
|-----------|-------|---------|
|
|
313
|
+
| Consolidate recommendations from multiple reports | `arn-spark-product-strategist` | All extracted recommendation tables, full product concept, product pillars, consolidation task instructions |
|
|
314
|
+
| Review UX-relevant changes (conditional) | `arn-spark-ux-specialist` | Full product concept, UX-relevant subset of changeset, UX review task instructions |
|
|
315
|
+
|
|
316
|
+
## Error Handling
|
|
317
|
+
|
|
318
|
+
- **No stress test reports found:** Inform the user and list available stress test skills. Do not proceed. Exit the skill.
|
|
319
|
+
|
|
320
|
+
- **Product concept missing:** Inform the user: "No product concept found at `<vision-dir>/product-concept.md`. Run `/arn-spark-discover` to create a product concept before running stress tests and concept review." Do not proceed.
|
|
321
|
+
|
|
322
|
+
- **Product pillars missing or contain "Not explored" sentinel:** Inform the user: "The product concept does not include product pillars, which are needed for conflict resolution. Run `/arn-spark-discover` to define product pillars." Do not proceed.
|
|
323
|
+
|
|
324
|
+
- **Report exists but recommendation table is malformed or missing:** Note the gap. Extract what is parseable. If zero recommendations can be extracted from a report, note it as having "0 recommendations (malformed or missing table)" in the review report. Continue with other reports.
|
|
325
|
+
|
|
326
|
+
- **Product strategist returns poor consolidation:** Retry once with a simplified prompt that emphasizes the consolidation task steps from the conflict resolution protocol. If retry fails:
|
|
327
|
+
Ask the user: **"The product strategist produced a poor consolidation. How would you like to proceed?"**
|
|
328
|
+
1. Retry
|
|
329
|
+
2. Skip consolidation and present raw recommendations without de-duplication
|
|
330
|
+
3. Abort
|
|
331
|
+
|
|
332
|
+
- **UX specialist returns unhelpful review:** Note the gap in the review report. Proceed without UX specialist input. Do not block the review.
|
|
333
|
+
|
|
334
|
+
- **File rename fails:** Present the error and offer the user the choice to write anyway or abort (see Step 6b).
|
|
335
|
+
|
|
336
|
+
- **User rejects all changes:** Write the review report documenting the full changeset and all rejections. Do NOT modify the product concept. The review report is the audit trail.
|
|
337
|
+
|
|
338
|
+
- **Writing updated concept fails:** Print the updated concept content in the conversation so the user can copy it. Suggest checking file permissions or the output directory path.
|
|
339
|
+
|
|
340
|
+
- **Writing review report fails:** Print the report content in the conversation so the user can copy it. Suggest checking file permissions or the reports directory path.
|
|
341
|
+
|
|
342
|
+
## Constraints
|
|
343
|
+
|
|
344
|
+
- **ONLY skill that modifies product-concept.md.** No other skill in the pipeline writes to the product concept. This constraint ensures all concept changes are tracked through the review report.
|
|
345
|
+
- **User approval gate is MANDATORY.** The full changeset MUST be presented to the user before any writes. No silent concept updates. No auto-applied changes.
|
|
346
|
+
- **Preserve template structure.** The updated product concept MUST follow the same template structure as the original (from `product-concept-template.md`). Sections are never dropped, reordered, or renamed.
|
|
347
|
+
- **Pre-review rename preserves the original.** The original concept is always renamed to `product-concept-pre-review.md` before the updated concept is written. This ensures recovery if the review produced undesirable results.
|
|
348
|
+
- **Read-only except for the final write step.** The skill reads reports and the product concept during Steps 1-5 but writes nothing until Step 6 (concept) and Step 7 (review report).
|
|
349
|
+
- **Report overwrites on re-run.** If `concept-review-report.md` already exists, it is overwritten. Git provides history.
|
|
350
|
+
- **All reference loading uses `${CLAUDE_PLUGIN_ROOT}` paths.** No absolute paths or user-specific paths in reference loading instructions.
|
package/plugins/arn-spark/skills/arn-spark-concept-review/references/conflict-resolution-protocol.md
ADDED
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
# Conflict Resolution Protocol
|
|
2
|
+
|
|
3
|
+
This protocol defines how the `arn-spark-concept-review` skill and the `arn-spark-product-strategist` agent consolidate, de-duplicate, and resolve conflicting recommendations from multiple stress test reports into a single proposed changeset for the product concept.
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
Stress test reports each produce a **Recommended Concept Updates** table and an **Unresolved Questions** section. When multiple reports exist, their recommendations may overlap, reinforce, or contradict each other. This protocol ensures that every recommendation is accounted for, conflicts are surfaced transparently, and the user makes the final decision on every change.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Process
|
|
12
|
+
|
|
13
|
+
### Step 1: Extract Recommendations from All Reports
|
|
14
|
+
|
|
15
|
+
For each stress test report found in `<reports-dir>/stress-tests/`:
|
|
16
|
+
|
|
17
|
+
1. Locate the **Recommended Concept Updates** table (standardized schema: `| # | Section | Current State | Recommended Change | Type | Rationale |`)
|
|
18
|
+
2. Parse every row, preserving the source report name (e.g., "Interview Report", "Competitive Report", "Pre-Mortem Report", "PR/FAQ Report")
|
|
19
|
+
3. Locate the **Unresolved Questions** section (standardized schema: `| # | Section | Question | Options | Assessment |`)
|
|
20
|
+
4. Parse every row, preserving the source report name
|
|
21
|
+
|
|
22
|
+
If a report exists but does not contain one or both tables (e.g., malformed output), note the gap and proceed with what is available.
|
|
23
|
+
|
|
24
|
+
### Step 2: De-duplicate Recommendations
|
|
25
|
+
|
|
26
|
+
Merge recommendations that target the **same product concept section** with **semantically equivalent changes**:
|
|
27
|
+
|
|
28
|
+
- **Same section + same Type + same intent:** Merge into a single recommendation. Cite all source reports in the rationale. Preserve the most specific wording.
|
|
29
|
+
- **Same section + same Type + different specificity:** Keep the more specific recommendation. Note the less specific one as supporting evidence in the rationale.
|
|
30
|
+
- **Different sections or different Types:** Keep as separate recommendations -- these are distinct changes.
|
|
31
|
+
|
|
32
|
+
De-duplication is a consolidation step, not a filtering step. No recommendations are discarded. Merged recommendations list all contributing source reports.
|
|
33
|
+
|
|
34
|
+
### Step 3: Detect Conflicts
|
|
35
|
+
|
|
36
|
+
Two recommendations **conflict** when they:
|
|
37
|
+
|
|
38
|
+
- Target the **same product concept section** AND
|
|
39
|
+
- Propose **contradictory changes** (e.g., one says "Add X" while another says "Remove X", or one says "Modify to emphasize A" while another says "Modify to emphasize B where B contradicts A")
|
|
40
|
+
|
|
41
|
+
Indicators of conflict:
|
|
42
|
+
- Opposing Type values for the same section (Add vs. Remove)
|
|
43
|
+
- Modify recommendations with incompatible directions (e.g., "simplify the trust model" vs. "add more trust verification layers")
|
|
44
|
+
- Recommendations whose rationales cite mutually exclusive user needs or market positions
|
|
45
|
+
|
|
46
|
+
Indicators that are NOT conflicts:
|
|
47
|
+
- Two "Add" recommendations for the same section that address different aspects (these are complementary, not conflicting)
|
|
48
|
+
- A "Modify" and an "Add" for the same section that are compatible (the modification and the addition can coexist)
|
|
49
|
+
- Recommendations from different reports that reinforce the same direction (these are corroborating, not conflicting)
|
|
50
|
+
|
|
51
|
+
### Step 4: Resolve Conflicts Using Product Pillars
|
|
52
|
+
|
|
53
|
+
For each detected conflict, the product strategist assesses which recommendation better serves the product's **Product Pillars** (the non-negotiable qualities defined in the product concept).
|
|
54
|
+
|
|
55
|
+
The strategist produces a **conflict resolution assessment** for each conflict:
|
|
56
|
+
|
|
57
|
+
1. **State both sides:** Quote each conflicting recommendation with its source report and rationale
|
|
58
|
+
2. **Pillar alignment analysis:** For each recommendation, assess alignment with each product pillar:
|
|
59
|
+
- Which pillars does Recommendation A serve?
|
|
60
|
+
- Which pillars does Recommendation B serve?
|
|
61
|
+
- Does either recommendation conflict with any pillar?
|
|
62
|
+
3. **Strategist's assessment:** Based on pillar alignment, the strategist recommends one side and explains why. If both serve different pillars equally well, the strategist notes the tension and defers to the user with a clear framing of the trade-off
|
|
63
|
+
4. **Trade-off statement:** A plain-language summary of what is gained and what is lost with each option
|
|
64
|
+
|
|
65
|
+
**Critical rule:** The strategist's assessment is a recommendation, not a decision. ALL conflicts are surfaced to the user with both sides and the strategist's analysis. The user always makes the final call.
|
|
66
|
+
|
|
67
|
+
### Step 5: Surface Everything to the User
|
|
68
|
+
|
|
69
|
+
The complete changeset presented to the user includes:
|
|
70
|
+
|
|
71
|
+
**For each non-conflicting recommendation (grouped by product concept section):**
|
|
72
|
+
- Source report(s)
|
|
73
|
+
- Type (Add / Modify / Remove)
|
|
74
|
+
- Current state of the section
|
|
75
|
+
- Proposed change
|
|
76
|
+
- Rationale (with source report attribution)
|
|
77
|
+
|
|
78
|
+
**For each conflict (grouped by product concept section):**
|
|
79
|
+
- Recommendation A: source report, type, proposed change, rationale
|
|
80
|
+
- Recommendation B: source report, type, proposed change, rationale
|
|
81
|
+
- Strategist's conflict resolution assessment (pillar analysis, recommendation, trade-off statement)
|
|
82
|
+
- Clear indication that the user must choose
|
|
83
|
+
|
|
84
|
+
**Aggregated Unresolved Questions (grouped by product concept section):**
|
|
85
|
+
- All questions from all reports, de-duplicated
|
|
86
|
+
- Source report attribution for each question
|
|
87
|
+
- Options and preliminary assessments preserved
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## Changeset Presentation Format
|
|
92
|
+
|
|
93
|
+
The changeset is organized by product concept section for readability. Within each section:
|
|
94
|
+
|
|
95
|
+
```
|
|
96
|
+
### [Product Concept Section Name]
|
|
97
|
+
|
|
98
|
+
**Change 1** (from [Source Report(s)])
|
|
99
|
+
- Type: [Add/Modify/Remove]
|
|
100
|
+
- Current state: [what the concept currently says]
|
|
101
|
+
- Proposed change: [specific recommended change]
|
|
102
|
+
- Rationale: [why, with source attribution]
|
|
103
|
+
|
|
104
|
+
**Change 2** (from [Source Report(s)])
|
|
105
|
+
- Type: [Add/Modify/Remove]
|
|
106
|
+
- Current state: [what the concept currently says]
|
|
107
|
+
- Proposed change: [specific recommended change]
|
|
108
|
+
- Rationale: [why, with source attribution]
|
|
109
|
+
|
|
110
|
+
**CONFLICT** -- [Source Report A] vs. [Source Report B]
|
|
111
|
+
- Recommendation A: [proposed change] (Type: [type]) -- [rationale]
|
|
112
|
+
- Recommendation B: [proposed change] (Type: [type]) -- [rationale]
|
|
113
|
+
- Strategist's assessment: [pillar analysis and recommendation]
|
|
114
|
+
- Trade-off: [what is gained/lost with each option]
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
## UX Specialist Conditional Involvement
|
|
120
|
+
|
|
121
|
+
Before presenting the changeset to the user, check whether UX specialist review is warranted:
|
|
122
|
+
|
|
123
|
+
**Detection signals** -- scan the product concept for any of these indicators that the UX specialist contributed to the original concept:
|
|
124
|
+
- Mentions of "UX specialist", "arn-spark-ux-specialist", or "UX review"
|
|
125
|
+
- Presence of detailed visual direction (color palettes, typography specifications, component styles)
|
|
126
|
+
- References to style briefs, prototype reviews, or visual grounding assets
|
|
127
|
+
- Sections that describe interaction patterns, transitions, or animation behavior in design-specific detail
|
|
128
|
+
|
|
129
|
+
**If UX signals are detected:**
|
|
130
|
+
1. Identify which recommendations in the changeset affect UX-relevant sections (Core Experience, visual direction, interaction patterns, onboarding flows, accessibility)
|
|
131
|
+
2. Invoke `arn-spark-ux-specialist` with the UX-relevant recommendations and the current product concept
|
|
132
|
+
3. The UX specialist reviews the proposed changes and provides feedback: does the change align with the visual direction and interaction patterns? Are there UX implications the stress tests missed?
|
|
133
|
+
4. Incorporate the UX specialist's feedback into the changeset -- add it as a supplementary note alongside each relevant recommendation
|
|
134
|
+
|
|
135
|
+
**If no UX signals are detected:** Skip UX specialist involvement entirely. Do not invoke the agent.
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
## Edge Cases
|
|
140
|
+
|
|
141
|
+
- **Single report:** No de-duplication or conflict detection needed. Present recommendations directly from the one report.
|
|
142
|
+
- **All reports agree:** No conflicts. Present the unified changeset with multi-source attribution.
|
|
143
|
+
- **Reports contradict on fundamental direction:** If recommendations collectively suggest the product concept needs fundamental rethinking (e.g., different target audience, different core experience), surface this as a meta-observation alongside the individual recommendations. The user may choose to re-run discover rather than patch the concept.
|
|
144
|
+
- **No recommendations in a report:** Some reports may have zero rows in the Recommended Concept Updates table (the stress test found no issues). This is valid -- note it in the review report as a positive signal.
|
|
145
|
+
- **User rejects all changes:** Write the review report documenting the full changeset and the user's rejection. Do NOT modify the product concept. The review report serves as a record that stress tests were run and findings were considered.
|