Arness Spark Concept Review
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.
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.
The process:
- Scan for available stress test reports
- Extract all recommendations and unresolved questions
- Consolidate, de-duplicate, and detect conflicts via the product strategist
- Conditionally involve the UX specialist for UX-relevant changes
- Present the full changeset to the user for approval (accept all, or review individually)
- Apply approved changes: rename the original concept, write the updated concept
- Write the concept review report as an audit trail
Prerequisites
Configuration Check
- Read the project's
CLAUDE.mdand check for a## Arnesssection - If found, extract the configured Vision directory and Reports directory paths
- If no
## Arnesssection exists or Arness Spark fields are missing, inform the user: "Arness Spark is not configured for this project yet. Run/arn-brainstormingto get started — it will set everything up automatically." Do not proceed without it. - 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.)
Data Availability
| Artifact | Status | Location | Fallback | |----------|--------|----------|----------| | Product concept | REQUIRED | <vision-dir>/product-concept.md | Cannot proceed without it -- suggest running /arn-spark-discover | | Product pillars | REQUIRED | Product Pillars section of product concept | Cannot resolve conflicts without pillars -- suggest running /arn-spark-discover to define pillars | | At least 1 stress test report | REQUIRED | <reports-dir>/stress-tests/ | Cannot proceed without at least one report -- see below | | Competitive landscape | ENRICHES | Competitive Landscape section of product concept | Review proceeds but competitive context is unavailable for conflict resolution |
Stress test report detection:
Scan <reports-dir>/stress-tests/ for the following report files:
interview-report.md(from/arn-spark-stress-interview)competitive-report.md(from/arn-spark-stress-competitive)premortem-report.md(from/arn-spark-stress-premortem)prfaq-report.md(from/arn-spark-stress-prfaq)
Present the scan results to the user:
"Found [N] stress test report(s):
- ✓ / — Interview Report: [found / not found]
- ✓ / — Competitive Report: [found / not found]
- ✓ / — Pre-Mortem Report: [found / not found]
- ✓ / — PR/FAQ Report: [found / not found]"
Use ✓ for found reports and — for missing reports.
If 0 reports found:
Inform the user: "No stress test reports found in <reports-dir>/stress-tests/. Run at least one stress test skill before reviewing the concept."
List the available stress test skills:
/arn-spark-stress-interview-- Synthetic user interviews with adversarial personas/arn-spark-stress-competitive-- Competitive gap analysis/arn-spark-stress-premortem-- Pre-mortem failure investigation/arn-spark-stress-prfaq-- PR/FAQ marketing stress test
Do not proceed. Exit the skill.
If 1 or more reports found: Proceed with the available reports.
Workflow
Step 1: Load References
Load the conflict resolution protocol and review report template:
Read ${CLAUDE_PLUGIN_ROOT}/skills/arn-spark-concept-review/references/conflict-resolution-protocol.md
Read ${CLAUDE_PLUGIN_ROOT}/skills/arn-spark-concept-review/references/review-report-template.md
Step 2: Read Reports and Extract Data
For each available stress test report:
- Read the full report from
<reports-dir>/stress-tests/ - Extract the Recommended Concept Updates table -- parse every row preserving: row number, section, current state, recommended change, type (Add/Modify/Remove), rationale
- Extract the Unresolved Questions section -- parse every row preserving: row number, section, question, options, assessment
- Record the source report name, file path, and report date for attribution
Also read the current product concept from <vision-dir>/product-concept.md. Extract:
- The full document content (for the strategist)
- The Product Pillars section specifically (for conflict resolution)
- All section headings (for validating that recommendations reference real sections)
Step 3: Invoke Product Strategist for Consolidation
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:
--- PRODUCT CONCEPT --- [full product concept content] --- END PRODUCT CONCEPT ---
--- PRODUCT PILLARS --- [product pillars section content] --- END PRODUCT PILLARS ---
--- STRESS TEST RECOMMENDATIONS --- Source: [Report 1 name] [full Recommended Concept Updates table from report 1]
Source: [Report 2 name] [full Recommended Concept Updates table from report 2]
[... for all available reports] --- END STRESS TEST RECOMMENDATIONS ---
--- CONSOLIDATION TASK --- Follow the conflict resolution protocol:
- De-duplicate recommendations that target the same section with semantically equivalent changes. Merge them with multi-source attribution.
- Detect conflicts: recommendations targeting the same section with contradictory changes.
- 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.
- Organize the consolidated changeset grouped by product concept section.
- Do NOT auto-resolve any conflicts. Present your assessment but flag that the user decides.
--- END CONSOLIDATION TASK ---
Receive back the consolidated changeset with de-duplicated recommendations, detected conflicts with resolution assessments, and the organized section grouping.
Step 4: Conditional UX Specialist Involvement
Check the product concept content for signals that the UX specialist was involved in its creation:
- Explicit mentions of "UX specialist", "arn-spark-ux-specialist", or "UX review" in the document (strong signal)
- Dedicated sections with visual direction details (color names, font families, spacing values, component specs)
- References to prototype files, design artifacts, or Figma links
- Sections with interaction descriptions (click behaviors, transitions, micro-interactions) beyond basic flow
Trigger condition: If ANY of these signals are present, invoke the UX specialist.
If UX signals are detected:
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:
--- PRODUCT CONCEPT --- [full product concept content] --- END PRODUCT CONCEPT ---
--- UX-RELEVANT C