@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,166 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: arn-spark-stress-competitive
|
|
3
|
+
description: >-
|
|
4
|
+
This skill should be used when the user says "competitive analysis",
|
|
5
|
+
"gap analysis", "competitive gap", "stress competitive", "compare competitors",
|
|
6
|
+
"feature comparison", "competitive stress test", "market comparison",
|
|
7
|
+
"competitor analysis", or wants to stress-test a product concept by conducting
|
|
8
|
+
deep competitive gap analysis with feature comparison, gap identification, and
|
|
9
|
+
positioning assessment. Produces a competitive report with a feature matrix,
|
|
10
|
+
per-competitor analysis, and recommended concept updates.
|
|
11
|
+
version: 1.0.0
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Arness Spark Stress Competitive
|
|
15
|
+
|
|
16
|
+
Stress-test a product concept through deep competitive gap analysis. This skill goes beyond surface-level feature comparison to identify where the product is uniquely strong, where competitors have real advantages, and where the market has gaps that no one is filling.
|
|
17
|
+
|
|
18
|
+
The process works in three stages:
|
|
19
|
+
1. **Deep research:** The market researcher agent conducts thorough competitive intelligence in deep-analysis mode, going beyond the competitors identified during discovery
|
|
20
|
+
2. **Gap analysis:** Features are categorized (core, differentiating, table-stakes), compared across competitors, and gaps are weighted against the product's own pillars
|
|
21
|
+
3. **Positioning assessment:** The product's market position is evaluated for defensibility, switching costs, and crowded vs. underserved areas
|
|
22
|
+
|
|
23
|
+
The product concept is read but never modified -- all recommendations are captured in the competitive report for later review.
|
|
24
|
+
|
|
25
|
+
## Prerequisites
|
|
26
|
+
|
|
27
|
+
### Configuration Check
|
|
28
|
+
|
|
29
|
+
1. Read the project's `arness.md` and check for a `## Arness` section
|
|
30
|
+
2. If found, extract the configured **Vision directory** and **Reports directory** paths
|
|
31
|
+
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.
|
|
32
|
+
4. If the Reports directory does not exist, create it with `mkdir -p <reports-dir>/stress-tests/`
|
|
33
|
+
|
|
34
|
+
### Data Availability
|
|
35
|
+
|
|
36
|
+
| Artifact | Status | Location | Fallback |
|
|
37
|
+
|----------|--------|----------|----------|
|
|
38
|
+
| Product concept | REQUIRED | `<vision-dir>/product-concept.md` | Cannot proceed without it -- suggest running `/arn-spark-discover` |
|
|
39
|
+
| Competitive landscape | REQUIRED | Competitive Landscape section of product concept | Fallback cascade below |
|
|
40
|
+
| Product pillars | ENRICHES | Product Pillars section of product concept | Gap weighting is less targeted but analysis proceeds |
|
|
41
|
+
| Core experience | ENRICHES | Core Experience section of product concept | Feature identification is less complete |
|
|
42
|
+
|
|
43
|
+
**Competitive landscape fallback cascade:**
|
|
44
|
+
|
|
45
|
+
If the product concept exists but the Competitive Landscape section is missing, contains "Not explored" sentinel, or lists zero competitors:
|
|
46
|
+
|
|
47
|
+
Ask the user: **"The product concept does not include a competitive landscape, which is needed to identify competitors for analysis. How would you like to proceed?"**
|
|
48
|
+
1. Run `/arn-spark-discover` to conduct competitive research through product discovery
|
|
49
|
+
2. Name 3-5 competitors now (I will research them in depth)
|
|
50
|
+
3. Skip the competitive stress test
|
|
51
|
+
|
|
52
|
+
If the user chooses option 2, collect competitor names and proceed to the workflow using those as the initial competitor list.
|
|
53
|
+
|
|
54
|
+
## Workflow
|
|
55
|
+
|
|
56
|
+
### Step 1: Load References
|
|
57
|
+
|
|
58
|
+
Load the gap analysis framework and report template:
|
|
59
|
+
> Read `${CLAUDE_PLUGIN_ROOT}/skills/arn-spark-stress-competitive/references/gap-analysis-framework.md`
|
|
60
|
+
> Read `${CLAUDE_PLUGIN_ROOT}/skills/arn-spark-stress-competitive/references/competitive-report-template.md`
|
|
61
|
+
|
|
62
|
+
### Step 2: Read Product Concept and Extract Competitor List
|
|
63
|
+
|
|
64
|
+
Read the product concept from `<vision-dir>/product-concept.md`. Extract:
|
|
65
|
+
- Product vision and core experience (for feature identification)
|
|
66
|
+
- Product pillars (for gap weighting)
|
|
67
|
+
- Competitive landscape section (primary competitors + extended landscape)
|
|
68
|
+
- Scope boundaries (to identify planned vs. unplanned features)
|
|
69
|
+
|
|
70
|
+
Build the initial competitor list from the competitive landscape section of the product concept (look for the primary/focus competitors subsection). Include extended landscape candidates if the primary list has fewer than 3 entries.
|
|
71
|
+
|
|
72
|
+
### Step 3: Deep Competitive Research
|
|
73
|
+
|
|
74
|
+
Invoke the `arn-spark-market-researcher` agent in **deep-analysis mode** 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:
|
|
75
|
+
|
|
76
|
+
--- PRODUCT CONCEPT (relevant sections) ---
|
|
77
|
+
[Extract and pass: Vision, Core Experience, Product Pillars, Competitive Landscape, Scope Boundaries, Target Platforms. Do not pass the full document — focus on sections relevant to competitive analysis.]
|
|
78
|
+
--- END PRODUCT CONCEPT ---
|
|
79
|
+
|
|
80
|
+
--- COMPETITOR LIST ---
|
|
81
|
+
[extracted competitor names and descriptions from product concept]
|
|
82
|
+
--- END COMPETITOR LIST ---
|
|
83
|
+
|
|
84
|
+
--- RESEARCH TASK ---
|
|
85
|
+
Deep-analysis mode: For each competitor, research:
|
|
86
|
+
1. Full feature inventory (from documentation, feature pages, changelogs, user reviews)
|
|
87
|
+
2. Pricing model and tiers
|
|
88
|
+
3. Target audience and market positioning
|
|
89
|
+
4. Known strengths and weaknesses (from user reviews, comparison articles, community feedback)
|
|
90
|
+
5. Recent developments (launches, pivots, acquisitions in the last 12 months)
|
|
91
|
+
|
|
92
|
+
Also identify any competitors NOT in the provided list that should be analyzed -- look for new entrants, adjacent products expanding into this space, and open-source alternatives.
|
|
93
|
+
--- END RESEARCH TASK ---
|
|
94
|
+
|
|
95
|
+
### Step 4: Build Feature Comparison Matrix
|
|
96
|
+
|
|
97
|
+
Using the gap analysis framework:
|
|
98
|
+
|
|
99
|
+
1. **Identify features:** Extract all features from the product concept's Core Experience. Research competitor features. Create a unified feature list by combining both sources and deduplicating any feature present across multiple products. Categorize each unique feature as Core, Differentiating, or Table-Stakes.
|
|
100
|
+
2. **Build the matrix:** For each feature, assess availability across the product and all competitors using Yes/No/Partial/Planned/Unknown indicators.
|
|
101
|
+
3. **Fill gaps:** Where competitor data is incomplete, note "Unknown" and add to Unresolved Questions.
|
|
102
|
+
|
|
103
|
+
### Step 5: Classify and Weight Gaps
|
|
104
|
+
|
|
105
|
+
Using the gap analysis framework:
|
|
106
|
+
|
|
107
|
+
1. **Classify gaps** into: Our Unique Strengths, Competitor Advantages, Uncovered Market Gaps, Parity Features
|
|
108
|
+
2. **Weight gaps** by product pillar alignment: Critical, High, Medium, Low
|
|
109
|
+
3. **Assess positioning:** Identify crowded vs. underserved areas, evaluate defensibility, assess switching costs
|
|
110
|
+
|
|
111
|
+
### Step 6: Draft Recommended Concept Updates
|
|
112
|
+
|
|
113
|
+
From Critical and High-weight gaps, draft the Recommended Concept Updates table. Each recommendation must:
|
|
114
|
+
- Reference a specific product concept section
|
|
115
|
+
- Describe the current state and proposed change
|
|
116
|
+
- Use the Type column (Add/Modify/Remove)
|
|
117
|
+
- Provide rationale linking to specific competitive findings
|
|
118
|
+
|
|
119
|
+
### Step 7: Assemble and Write Report
|
|
120
|
+
|
|
121
|
+
Using the competitive report template:
|
|
122
|
+
1. Populate all sections with research data, gap analysis, and positioning assessment
|
|
123
|
+
2. Write the report to `<reports-dir>/stress-tests/competitive-report.md`
|
|
124
|
+
|
|
125
|
+
Present a summary to the user:
|
|
126
|
+
|
|
127
|
+
"Competitive gap analysis complete. Report saved to `[path]`.
|
|
128
|
+
|
|
129
|
+
**Key findings:**
|
|
130
|
+
- **Unique strengths:** [N] features where we lead
|
|
131
|
+
- **Competitor advantages:** [N] features where competitors lead
|
|
132
|
+
- **Market gaps:** [N] opportunities no one is addressing
|
|
133
|
+
- **Critical gaps:** [N] gaps that threaten product pillars
|
|
134
|
+
|
|
135
|
+
**Recommended concept updates:** [N] recommendations ([X] Add, [Y] Modify, [Z] Remove)
|
|
136
|
+
**Unresolved questions:** [N]
|
|
137
|
+
|
|
138
|
+
This report will be used by `/arn-spark-concept-review` to propose changes to the product concept."
|
|
139
|
+
|
|
140
|
+
## Agent Invocation Guide
|
|
141
|
+
|
|
142
|
+
| Situation | Agent | Mode/Context |
|
|
143
|
+
|-----------|-------|--------------|
|
|
144
|
+
| Deep competitive research | `arn-spark-market-researcher` | Deep-analysis mode with competitor list and product concept |
|
|
145
|
+
|
|
146
|
+
## Error Handling
|
|
147
|
+
|
|
148
|
+
- **Market researcher returns sparse data:** Retry with broader search terms, alternative competitor names, and different search angles. If retry still returns insufficient data:
|
|
149
|
+
Ask the user: **"Competitive research returned limited data for some competitors. How would you like to proceed?"**
|
|
150
|
+
1. Retry with different search terms
|
|
151
|
+
2. Proceed with available data (gaps will be marked as Unknown)
|
|
152
|
+
3. Abort the competitive stress test
|
|
153
|
+
|
|
154
|
+
- **No competitors found (even with user-provided names):** Record "No competitive data available" and focus the report on feature categorization and market gap identification from the product concept alone. Note the limitation prominently in the report.
|
|
155
|
+
|
|
156
|
+
- **Market researcher agent fails entirely:** Retry once with a simplified prompt containing only the product description and competitor names. If retry fails:
|
|
157
|
+
Ask the user: **"Agent invocation failed. How would you like to proceed?"**
|
|
158
|
+
1. Retry
|
|
159
|
+
2. Skip this step
|
|
160
|
+
3. Abort
|
|
161
|
+
|
|
162
|
+
## Constraints
|
|
163
|
+
|
|
164
|
+
- **Read-only with respect to product-concept.md.** The competitive skill reads the product concept but NEVER modifies it. All recommendations are captured in the competitive report.
|
|
165
|
+
- **Market researcher in deep-analysis mode only.** Do not use identification mode (that is for discovery-time landscape mapping). Deep-analysis mode produces the feature-level detail needed for gap analysis.
|
|
166
|
+
- **Report overwrites on re-run.** If `competitive-report.md` already exists, it is overwritten. Git provides history.
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
# Competitive Report Template
|
|
2
|
+
|
|
3
|
+
Template for the competitive gap analysis stress test report. This document is consumed by the `arn-spark-stress-competitive` skill when assembling the final report from market researcher findings and gap analysis.
|
|
4
|
+
|
|
5
|
+
## Instructions for arn-spark-stress-competitive
|
|
6
|
+
|
|
7
|
+
When populating this template:
|
|
8
|
+
|
|
9
|
+
- Every section below MUST appear in the output
|
|
10
|
+
- Replace all bracketed placeholders with concrete content from market researcher output and gap analysis
|
|
11
|
+
- The Feature Comparison Matrix must include ALL features identified -- do not omit features where the product is weak
|
|
12
|
+
- Gap Analysis must cover all 4 categories even if a category is empty (write "None identified" if so)
|
|
13
|
+
- The Recommended Concept Updates table MUST use the standardized schema exactly as shown
|
|
14
|
+
- Unresolved Questions should capture gaps in competitive intelligence that could not be resolved with available data
|
|
15
|
+
- Source URLs should be included where available from market researcher output
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Template
|
|
20
|
+
|
|
21
|
+
```markdown
|
|
22
|
+
# Competitive Gap Analysis Report
|
|
23
|
+
|
|
24
|
+
**Product:** [product name]
|
|
25
|
+
**Date:** [ISO 8601 date]
|
|
26
|
+
**Competitors analyzed:** [Competitor 1], [Competitor 2], [Competitor 3], ...
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Executive Summary
|
|
31
|
+
|
|
32
|
+
[3-5 sentences summarizing the competitive position. Where is the product strong? Where is it vulnerable? What is the most significant finding?]
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## Feature Comparison Matrix
|
|
37
|
+
|
|
38
|
+
| Feature | Category | [Product] | [Competitor 1] | [Competitor 2] | [Competitor 3] | Notes |
|
|
39
|
+
|---------|----------|-----------|-----------------|-----------------|-----------------|-------|
|
|
40
|
+
| [feature] | [Core/Diff/Stakes] | [Yes/No/Partial/Planned] | [Yes/No/Partial/Unknown] | ... | ... | [context] |
|
|
41
|
+
|
|
42
|
+
**Legend:**
|
|
43
|
+
- **Yes:** Fully available and functional
|
|
44
|
+
- **No:** Not available
|
|
45
|
+
- **Partial:** Available with significant limitations
|
|
46
|
+
- **Planned:** In product concept scope but not yet built
|
|
47
|
+
- **Unknown:** Insufficient data
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## Per-Competitor Gap Analysis
|
|
52
|
+
|
|
53
|
+
### [Competitor 1 Name]
|
|
54
|
+
|
|
55
|
+
**Overview:** [1-2 sentences on what this competitor does and who they serve]
|
|
56
|
+
|
|
57
|
+
**Their advantages over [product]:**
|
|
58
|
+
- [Advantage 1 -- specific feature or capability with context]
|
|
59
|
+
- [Advantage 2]
|
|
60
|
+
|
|
61
|
+
**Our advantages over them:**
|
|
62
|
+
- [Advantage 1 -- specific feature or capability with context]
|
|
63
|
+
- [Advantage 2]
|
|
64
|
+
|
|
65
|
+
**Key differentiator:** [The single most important difference between this competitor and the product]
|
|
66
|
+
|
|
67
|
+
**Switching cost assessment:** [What it would take for their user to switch to the product, and vice versa]
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
### [Competitor 2 Name]
|
|
72
|
+
|
|
73
|
+
[Same structure as Competitor 1]
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
### [Competitor 3 Name]
|
|
78
|
+
|
|
79
|
+
[Same structure as Competitor 1]
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## Positioning Assessment
|
|
84
|
+
|
|
85
|
+
### Market Position Map
|
|
86
|
+
|
|
87
|
+
**Crowded areas:** [Feature categories where 3+ competitors are strong -- differentiation is harder here]
|
|
88
|
+
|
|
89
|
+
**Underserved areas:** [Feature categories with 0-1 competitors -- opportunity for ownership]
|
|
90
|
+
|
|
91
|
+
**Product alignment:** [Does the product concept position itself in underserved areas or compete head-on in crowded spaces?]
|
|
92
|
+
|
|
93
|
+
### Defensibility
|
|
94
|
+
|
|
95
|
+
**Defensible strengths:** [Product advantages that are hard to replicate -- network effects, data moats, technical complexity]
|
|
96
|
+
|
|
97
|
+
**Vulnerable strengths:** [Product advantages that competitors could replicate quickly -- UI features, integrations, pricing]
|
|
98
|
+
|
|
99
|
+
**Estimated competitive response time:** [How long before well-resourced competitors could close the gap on key differentiators]
|
|
100
|
+
|
|
101
|
+
### Switching Costs
|
|
102
|
+
|
|
103
|
+
**Inbound switching cost:** [Cost for users moving FROM competitors TO this product]
|
|
104
|
+
|
|
105
|
+
**Outbound switching cost:** [Cost for users moving FROM this product TO competitors]
|
|
106
|
+
|
|
107
|
+
**Lock-in assessment:** [Does the product concept create healthy retention or problematic lock-in?]
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
## Recommended Concept Updates
|
|
112
|
+
|
|
113
|
+
| # | Section | Current State | Recommended Change | Type | Rationale |
|
|
114
|
+
|---|---------|---------------|--------------------|------|-----------|
|
|
115
|
+
| 1 | [product concept section] | [what the concept currently says or assumes] | [specific change recommended] | [Add/Modify/Remove] | [which competitive finding supports this] |
|
|
116
|
+
| 2 | ... | ... | ... | ... | ... |
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## Unresolved Questions
|
|
121
|
+
|
|
122
|
+
| # | Section | Question | Options | Assessment |
|
|
123
|
+
|---|---------|----------|---------|------------|
|
|
124
|
+
| 1 | [product concept section] | [question about competitive position that could not be resolved] | [possible approaches to answering this] | [preliminary assessment based on available data] |
|
|
125
|
+
| 2 | ... | ... | ... | ... |
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
## Section Guidance
|
|
131
|
+
|
|
132
|
+
| Section | Source | Depth |
|
|
133
|
+
|---------|--------|-------|
|
|
134
|
+
| Executive Summary | Synthesized by skill from gap analysis findings | 3-5 sentences, strategic overview |
|
|
135
|
+
| Feature Comparison Matrix | Market researcher deep-analysis output + gap analysis framework | All identified features, all analyzed competitors, with indicators and notes |
|
|
136
|
+
| Per-Competitor Gap Analysis | Market researcher findings structured per competitor | Per competitor: overview, their advantages, our advantages, key differentiator, switching cost |
|
|
137
|
+
| Positioning Assessment | Gap analysis framework Steps 4-5 applied to findings | Market position map, defensibility analysis, switching cost assessment |
|
|
138
|
+
| Recommended Concept Updates | Derived from Critical and High weight gaps | One row per recommendation, Type must be Add/Modify/Remove, rationale must reference specific competitive findings |
|
|
139
|
+
| Unresolved Questions | Gaps in competitive intelligence identified during analysis | One row per question, must specify which product concept section is affected |
|
package/plugins/arn-spark/skills/arn-spark-stress-competitive/references/gap-analysis-framework.md
ADDED
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
# Gap Analysis Framework
|
|
2
|
+
|
|
3
|
+
Structured framework for conducting deep competitive gap analysis. This document is consumed by the `arn-spark-stress-competitive` skill to guide feature comparison, gap identification, and positioning assessment.
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
Competitive gap analysis goes beyond surface-level feature comparison. The goal is to understand where the product concept is uniquely strong, where competitors have advantages, and where the market has gaps that no one is filling. This analysis uses the product's own pillars as a weighting mechanism -- gaps that threaten core pillars are more critical than gaps in peripheral features.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Step 1: Feature Category Identification
|
|
12
|
+
|
|
13
|
+
Classify features into three categories based on their strategic role:
|
|
14
|
+
|
|
15
|
+
### Core Features
|
|
16
|
+
Features that directly deliver the product's primary value proposition. Without these, the product has no reason to exist. They correspond to the product concept's Core Experience section.
|
|
17
|
+
|
|
18
|
+
### Differentiating Features
|
|
19
|
+
Features that set the product apart from competitors. These may align with product pillars and represent the product's unique market position. Losing parity on these features undermines the product's reason to exist as a separate offering.
|
|
20
|
+
|
|
21
|
+
### Table-Stakes Features
|
|
22
|
+
Features that users expect as baseline functionality in this product category. Missing a table-stakes feature is not a competitive advantage for others -- it is a disqualification for the product. Examples: authentication, data export, mobile support (if the category demands it).
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## Step 2: Comparison Matrix Construction
|
|
27
|
+
|
|
28
|
+
Build a feature comparison matrix with the following structure:
|
|
29
|
+
|
|
30
|
+
| Feature | Category | [Product] | [Competitor 1] | [Competitor 2] | ... | Notes |
|
|
31
|
+
|---------|----------|-----------|-----------------|-----------------|-----|-------|
|
|
32
|
+
| [feature name] | Core / Diff / Stakes | Yes/No/Partial/Planned | Yes/No/Partial/Unknown | ... | ... | [context] |
|
|
33
|
+
|
|
34
|
+
**Indicators:**
|
|
35
|
+
- **Yes:** Feature is fully available and functional
|
|
36
|
+
- **No:** Feature is not available
|
|
37
|
+
- **Partial:** Feature exists but with significant limitations
|
|
38
|
+
- **Planned:** Feature is in the product concept's scope but not yet built (for the product being analyzed)
|
|
39
|
+
- **Unknown:** Insufficient data to determine (mark for follow-up research)
|
|
40
|
+
|
|
41
|
+
**Matrix population approach:**
|
|
42
|
+
1. Start with the product concept's features (from Core Experience, scope boundaries)
|
|
43
|
+
2. Add features found in competitor research that the product concept does not mention
|
|
44
|
+
3. Add table-stakes features for the product category even if no competitor lists them explicitly
|
|
45
|
+
4. For each competitor, populate based on market researcher findings, public documentation, and feature pages
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## Step 3: Gap Classification
|
|
50
|
+
|
|
51
|
+
From the comparison matrix, classify gaps into four categories:
|
|
52
|
+
|
|
53
|
+
### Our Unique Strengths
|
|
54
|
+
Features or capabilities where the product has a clear advantage that competitors lack. These are the product's defensible differentiators. Evaluate:
|
|
55
|
+
- How durable is this advantage? (Easy to copy vs. hard to replicate)
|
|
56
|
+
- How much do users care about this advantage? (Pillar-aligned vs. nice-to-have)
|
|
57
|
+
- Is this advantage acknowledged in the product concept's positioning?
|
|
58
|
+
|
|
59
|
+
### Competitor Advantages
|
|
60
|
+
Features or capabilities where one or more competitors have a clear lead. These represent potential adoption barriers. Evaluate:
|
|
61
|
+
- How critical is this feature to the target personas?
|
|
62
|
+
- Is the gap addressable within the product concept's scope, or does it require a scope change?
|
|
63
|
+
- Is the competitor's advantage based on features, execution quality, or market position?
|
|
64
|
+
|
|
65
|
+
### Uncovered Market Gaps
|
|
66
|
+
Opportunities that neither the product nor competitors address. These are potential differentiators if the product concept expands to fill them. Evaluate:
|
|
67
|
+
- Is there evidence of user demand for this capability?
|
|
68
|
+
- Does filling this gap align with the product's pillars?
|
|
69
|
+
- What would it cost (in scope and complexity) to address?
|
|
70
|
+
|
|
71
|
+
### Parity Features
|
|
72
|
+
Features where the product and key competitors are roughly equivalent. These are not strategic concerns but should be monitored for drift.
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## Step 4: Gap Weighting by Product Pillars
|
|
77
|
+
|
|
78
|
+
Weight each gap by its relevance to the product's declared pillars:
|
|
79
|
+
|
|
80
|
+
| Gap | Pillar Alignment | Weight | Rationale |
|
|
81
|
+
|-----|-----------------|--------|-----------|
|
|
82
|
+
| [gap description] | [which pillar(s)] | Critical / High / Medium / Low | [why this gap matters to the pillar] |
|
|
83
|
+
|
|
84
|
+
**Weighting rules:**
|
|
85
|
+
- **Critical:** Gap directly contradicts or undermines a product pillar
|
|
86
|
+
- **High:** Gap significantly weakens a pillar's delivery
|
|
87
|
+
- **Medium:** Gap is relevant to a pillar but does not directly threaten it
|
|
88
|
+
- **Low:** Gap is real but not pillar-aligned
|
|
89
|
+
|
|
90
|
+
Gaps weighted Critical or High should appear in the Recommended Concept Updates table.
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## Step 5: Positioning Assessment
|
|
95
|
+
|
|
96
|
+
Evaluate the product's market position based on the gap analysis:
|
|
97
|
+
|
|
98
|
+
### Crowded vs. Underserved Areas
|
|
99
|
+
- Which feature categories have 3+ competitors with strong offerings? (crowded -- differentiation is harder)
|
|
100
|
+
- Which feature categories have 0-1 competitors? (underserved -- opportunity for ownership)
|
|
101
|
+
- Does the product concept's positioning align with underserved areas or compete head-on in crowded spaces?
|
|
102
|
+
|
|
103
|
+
### Defensibility Analysis
|
|
104
|
+
- Which of the product's unique strengths are defensible? (network effects, data moats, technical complexity, brand trust)
|
|
105
|
+
- Which are easily replicated? (UI features, integrations, pricing models)
|
|
106
|
+
- What is the estimated time for a well-resourced competitor to close the gap on each unique strength?
|
|
107
|
+
|
|
108
|
+
### Switching Cost Assessment
|
|
109
|
+
- What is the switching cost for a user moving FROM a competitor TO this product? (data migration, learning curve, workflow disruption)
|
|
110
|
+
- What is the switching cost for a user moving FROM this product TO a competitor? (lock-in, data portability)
|
|
111
|
+
- Does the product concept address switching costs explicitly?
|
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: arn-spark-stress-interview
|
|
3
|
+
description: >-
|
|
4
|
+
This skill should be used when the user says "stress interview",
|
|
5
|
+
"synthetic interview", "user interview stress test", "interview my personas",
|
|
6
|
+
"test with synthetic users", "persona interview", "simulate user interviews",
|
|
7
|
+
"run user interviews", or wants to stress-test a product concept by conducting
|
|
8
|
+
structured interviews with synthetic personas through three adversarial lenses
|
|
9
|
+
(Pragmatist, Skeptic, Power User). Produces an interview report with
|
|
10
|
+
per-persona findings, synthesized themes, and recommended concept updates.
|
|
11
|
+
version: 1.0.0
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Arness Spark Stress Interview
|
|
15
|
+
|
|
16
|
+
Stress-test a product concept by conducting structured synthetic user interviews. This skill generates 3 synthetic personas from the product concept's persona moulds, applies adversarial casting overlays (Pragmatist, Skeptic, Power User), and runs each through a 3-phase "Two-Part Reveal" interview protocol:
|
|
17
|
+
|
|
18
|
+
1. **Phase 1 -- Blind Problem Check:** The persona hears about the problem without knowing the product exists. Do they even care?
|
|
19
|
+
2. **Phase 2 -- Elevator Pitch Reveal:** The full product concept is revealed. What resonates? What falls flat? What is missing?
|
|
20
|
+
3. **Phase 3 -- Dealbreaker Probe:** The weakest aspects are presented head-on. Would they still use this?
|
|
21
|
+
|
|
22
|
+
The process produces brutally honest feedback from 3 distinct adversarial perspectives, synthesized into actionable concept update recommendations. The product concept is read but never modified -- all recommendations are captured in the interview report for later review.
|
|
23
|
+
|
|
24
|
+
## Prerequisites
|
|
25
|
+
|
|
26
|
+
### Configuration Check
|
|
27
|
+
|
|
28
|
+
1. Read the project's `arness.md` and check for a `## Arness` section
|
|
29
|
+
2. If found, extract the configured **Vision directory** and **Reports directory** paths
|
|
30
|
+
3. If no `## Arness` section exists or Arness Spark fields are missing, inform the user: "Arness Spark is not configured for this project yet. Run `/arn-brainstorming` to get started — it will set everything up automatically." Do not proceed without it.
|
|
31
|
+
4. Create the reports directory structure if it does not exist: `mkdir -p <reports-dir>/stress-tests/`
|
|
32
|
+
|
|
33
|
+
### Data Availability
|
|
34
|
+
|
|
35
|
+
| Artifact | Status | Location | Fallback |
|
|
36
|
+
|----------|--------|----------|----------|
|
|
37
|
+
| Product concept | REQUIRED | `<vision-dir>/product-concept.md` | Cannot proceed without it -- suggest running `/arn-spark-discover` |
|
|
38
|
+
| Persona moulds | REQUIRED | Target Personas section of product concept | Fallback cascade below |
|
|
39
|
+
| Product pillars | ENRICHES | Product Pillars section of product concept | Interview proceeds but questions are less targeted |
|
|
40
|
+
| Competitive landscape | ENRICHES | Competitive Landscape section of product concept | Phase 3 competitive comparison questions are skipped |
|
|
41
|
+
|
|
42
|
+
**Persona moulds fallback cascade:**
|
|
43
|
+
|
|
44
|
+
If the product concept exists but the Target Personas section is missing or contains "Not explored" sentinel:
|
|
45
|
+
|
|
46
|
+
Ask the user: **"The product concept does not include persona moulds, which are needed to generate synthetic interview subjects. How would you like to proceed?"**
|
|
47
|
+
1. Run `/arn-spark-discover` to generate personas through product discovery
|
|
48
|
+
2. Describe 3 target user types now (I will generate personas from your descriptions)
|
|
49
|
+
3. Skip the interview stress test
|
|
50
|
+
|
|
51
|
+
If the user chooses option 2, collect brief descriptions and invoke `arn-spark-persona-architect` in **instantiation mode** to generate persona instances with casting overlays before proceeding.
|
|
52
|
+
|
|
53
|
+
## Workflow
|
|
54
|
+
|
|
55
|
+
### Step 1: Load References
|
|
56
|
+
|
|
57
|
+
Load the interview protocol, persona casting spec, and report template:
|
|
58
|
+
> Read `${CLAUDE_PLUGIN_ROOT}/skills/arn-spark-stress-interview/references/interview-protocol.md`
|
|
59
|
+
> Read `${CLAUDE_PLUGIN_ROOT}/skills/arn-spark-stress-interview/references/persona-casting-spec.md`
|
|
60
|
+
> Read `${CLAUDE_PLUGIN_ROOT}/skills/arn-spark-stress-interview/references/interview-report-template.md`
|
|
61
|
+
|
|
62
|
+
### Step 2: Read Product Concept and Extract Context
|
|
63
|
+
|
|
64
|
+
Read the product concept from `<vision-dir>/product-concept.md`. Extract:
|
|
65
|
+
- Product vision and problem statement (for Phase 1 blind problem check)
|
|
66
|
+
- Full product concept summary (for Phase 2 reveal)
|
|
67
|
+
- Product pillars (for targeted probing)
|
|
68
|
+
- Competitive landscape (for Phase 3 competitive comparisons)
|
|
69
|
+
- Persona moulds from the Target Personas section
|
|
70
|
+
- Scope boundaries and deferred features (for Phase 3 dealbreaker probes)
|
|
71
|
+
|
|
72
|
+
### Step 3: Generate Synthetic Personas (Casting)
|
|
73
|
+
|
|
74
|
+
Select 3 persona moulds from the product concept. If more than 3 moulds exist, select the 3 most diverse in adoption posture and technical sophistication.
|
|
75
|
+
|
|
76
|
+
For each mould, invoke the `arn-spark-persona-architect` agent in **instantiation mode** 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:
|
|
77
|
+
|
|
78
|
+
--- PERSONA MOULD ---
|
|
79
|
+
[full abstracted profile from product concept]
|
|
80
|
+
--- END PERSONA MOULD ---
|
|
81
|
+
|
|
82
|
+
--- CASTING OVERLAY ---
|
|
83
|
+
[overlay specification from persona-casting-spec.md -- one of Pragmatist, Skeptic, Power User]
|
|
84
|
+
--- END CASTING OVERLAY ---
|
|
85
|
+
|
|
86
|
+
--- PRODUCT CONTEXT ---
|
|
87
|
+
[product vision and problem statement for domain grounding]
|
|
88
|
+
--- END PRODUCT CONTEXT ---
|
|
89
|
+
|
|
90
|
+
Assign overlays following the priority in the casting spec: natural fit first, then maximize coverage.
|
|
91
|
+
|
|
92
|
+
Receive back 3 fully detailed concrete personas with casting overlays baked in. Present a brief summary to the user:
|
|
93
|
+
|
|
94
|
+
"I have generated 3 synthetic interview subjects:
|
|
95
|
+
- **[Persona 1 Name]** ([Archetype]) with **Pragmatist** lens -- focused on practical adoption barriers
|
|
96
|
+
- **[Persona 2 Name]** ([Archetype]) with **Skeptic** lens -- focused on trust and systemic risk
|
|
97
|
+
- **[Persona 3 Name]** ([Archetype]) with **Power User** lens -- focused on depth and scalability
|
|
98
|
+
|
|
99
|
+
Starting interviews now. Each persona goes through 3 phases: blind problem check, full reveal, and dealbreaker probe."
|
|
100
|
+
|
|
101
|
+
### Step 4: Conduct Interviews (3 Phases x 3 Personas -- Phase-Parallel)
|
|
102
|
+
|
|
103
|
+
Run interviews in 3 waves. Each wave runs one phase for all 3 personas in parallel. Each persona's interview context is independent -- no cross-persona information is shared between parallel invocations.
|
|
104
|
+
|
|
105
|
+
#### Wave 1 -- Phase 1 (Blind Problem Check)
|
|
106
|
+
|
|
107
|
+
Run all 3 personas' Phase 1 interviews in parallel. For each persona in parallel:
|
|
108
|
+
|
|
109
|
+
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:
|
|
110
|
+
|
|
111
|
+
--- PRODUCT CONCEPT ---
|
|
112
|
+
[full product concept]
|
|
113
|
+
--- END PRODUCT CONCEPT ---
|
|
114
|
+
|
|
115
|
+
--- INTERVIEW PROTOCOL ---
|
|
116
|
+
Phase 1 goal: formulate 2-3 questions that probe problem recognition without revealing the solution. Strip solution-specific language from the problem description.
|
|
117
|
+
--- END INTERVIEW PROTOCOL ---
|
|
118
|
+
|
|
119
|
+
--- PERSONA PROFILE ---
|
|
120
|
+
[full cast persona profile]
|
|
121
|
+
--- END PERSONA PROFILE ---
|
|
122
|
+
|
|
123
|
+
Then invoke the `arn-spark-persona-impersonator` 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:
|
|
124
|
+
|
|
125
|
+
--- PERSONA PROFILE ---
|
|
126
|
+
[full cast persona profile]
|
|
127
|
+
--- END PERSONA PROFILE ---
|
|
128
|
+
|
|
129
|
+
--- CASTING OVERLAY ---
|
|
130
|
+
[overlay name and specification]
|
|
131
|
+
--- END CASTING OVERLAY ---
|
|
132
|
+
|
|
133
|
+
--- PRODUCT CONCEPT SUMMARY ---
|
|
134
|
+
[problem space description ONLY -- no product details]
|
|
135
|
+
--- END PRODUCT CONCEPT SUMMARY ---
|
|
136
|
+
|
|
137
|
+
--- INTERVIEW PHASE ---
|
|
138
|
+
reaction
|
|
139
|
+
--- END INTERVIEW PHASE ---
|
|
140
|
+
|
|
141
|
+
--- INTERVIEW PROMPT ---
|
|
142
|
+
[questions from product strategist]
|
|
143
|
+
--- END INTERVIEW PROMPT ---
|
|
144
|
+
|
|
145
|
+
Record the full response for each persona.
|
|
146
|
+
|
|
147
|
+
After all 3 personas' Phase 1 responses are collected, proceed to Wave 2.
|
|
148
|
+
|
|
149
|
+
#### Wave 2 -- Phase 2 (Deep Probing)
|
|
150
|
+
|
|
151
|
+
After Wave 1 completes, run all 3 personas' Phase 2 interviews in parallel. Each persona's Phase 2 needs only its own Phase 1 context (available from Wave 1). For each persona in parallel:
|
|
152
|
+
|
|
153
|
+
Invoke `arn-spark-product-strategist` with that persona's Phase 1 responses and the full product concept, requesting Phase 2 questions that target gaps between the persona's described problem and the product's proposed solution.
|
|
154
|
+
|
|
155
|
+
Then invoke `arn-spark-persona-impersonator` with the full product concept revealed, interview phase set to `probing`, and questions from the strategist. Include that persona's Phase 1 responses as prior context.
|
|
156
|
+
|
|
157
|
+
Record the full response for each persona.
|
|
158
|
+
|
|
159
|
+
After all 3 personas' Phase 2 responses are collected, proceed to Wave 3.
|
|
160
|
+
|
|
161
|
+
#### Wave 3 -- Phase 3 (Stress Test)
|
|
162
|
+
|
|
163
|
+
After Wave 2 completes, run all 3 personas' Phase 3 interviews in parallel. Each persona's Phase 3 needs only its own Phase 1+2 context. For each persona in parallel:
|
|
164
|
+
|
|
165
|
+
Invoke `arn-spark-product-strategist` with that persona's Phase 1+2 responses, requesting Phase 3 questions that force the persona to confront known limitations, scope boundaries, and competitive alternatives.
|
|
166
|
+
|
|
167
|
+
Then invoke `arn-spark-persona-impersonator` with that persona's Phase 1+2 responses as prior context, interview phase set to `stress`, weakest aspects and scope boundaries explicitly highlighted, and questions from the strategist.
|
|
168
|
+
|
|
169
|
+
Record the full response for each persona.
|
|
170
|
+
|
|
171
|
+
### Step 5: Synthesize Findings
|
|
172
|
+
|
|
173
|
+
After all 9 interviews are complete, 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:
|
|
174
|
+
|
|
175
|
+
--- PRODUCT CONCEPT ---
|
|
176
|
+
[full product concept]
|
|
177
|
+
--- END PRODUCT CONCEPT ---
|
|
178
|
+
|
|
179
|
+
--- PRODUCT PILLARS ---
|
|
180
|
+
[product pillars section]
|
|
181
|
+
--- END PRODUCT PILLARS ---
|
|
182
|
+
|
|
183
|
+
--- INTERVIEW TRANSCRIPTS ---
|
|
184
|
+
[all 9 persona-impersonator responses organized by persona and phase]
|
|
185
|
+
--- END INTERVIEW TRANSCRIPTS ---
|
|
186
|
+
|
|
187
|
+
--- SYNTHESIS TASK ---
|
|
188
|
+
1. Identify 3-5 cross-persona themes (patterns observed across multiple personas and casting overlays)
|
|
189
|
+
2. Draft a Recommended Concept Updates table using the standardized schema: | # | Section | Current State | Recommended Change | Type | Rationale |
|
|
190
|
+
3. Identify Unresolved Questions that emerged from interviews but cannot be answered without real user data
|
|
191
|
+
--- END SYNTHESIS TASK ---
|
|
192
|
+
|
|
193
|
+
### Step 6: Assemble and Write Report
|
|
194
|
+
|
|
195
|
+
Using the interview report template:
|
|
196
|
+
1. Populate all sections with interview data and strategist synthesis
|
|
197
|
+
2. Include the full transcript of all 9 interviews
|
|
198
|
+
3. If `<reports-dir>/stress-tests/interview-report.md` already exists, inform the user: "A previous interview report exists. It will be overwritten (git preserves history)."
|
|
199
|
+
4. Write the report to `<reports-dir>/stress-tests/interview-report.md`
|
|
200
|
+
|
|
201
|
+
Present a summary to the user:
|
|
202
|
+
|
|
203
|
+
"Interview stress test complete. Report saved to `[path]`.
|
|
204
|
+
|
|
205
|
+
**Key findings:**
|
|
206
|
+
- [Finding 1 -- most impactful theme]
|
|
207
|
+
- [Finding 2]
|
|
208
|
+
- [Finding 3]
|
|
209
|
+
|
|
210
|
+
**Recommended concept updates:** [N] recommendations ([X] Add, [Y] Modify, [Z] Remove)
|
|
211
|
+
**Unresolved questions:** [N]
|
|
212
|
+
|
|
213
|
+
This report will be used by `/arn-spark-concept-review` to propose changes to the product concept."
|
|
214
|
+
|
|
215
|
+
## Agent Invocation Guide
|
|
216
|
+
|
|
217
|
+
| Situation | Agent | Mode/Context |
|
|
218
|
+
|-----------|-------|--------------|
|
|
219
|
+
| Generate cast personas from moulds | `arn-spark-persona-architect` | Instantiation mode with casting overlay |
|
|
220
|
+
| Formulate Phase 1 questions | `arn-spark-product-strategist` | Question formulation from problem statement |
|
|
221
|
+
| Conduct Phase 1 interview | `arn-spark-persona-impersonator` | Reaction phase, blind problem check |
|
|
222
|
+
| Formulate Phase 2 questions | `arn-spark-product-strategist` | Question formulation targeting revealed concept |
|
|
223
|
+
| Conduct Phase 2 interview | `arn-spark-persona-impersonator` | Probing phase, full concept revealed |
|
|
224
|
+
| Formulate Phase 3 questions | `arn-spark-product-strategist` | Question formulation targeting weaknesses |
|
|
225
|
+
| Conduct Phase 3 interview | `arn-spark-persona-impersonator` | Stress phase, dealbreaker probe |
|
|
226
|
+
| Synthesize all interview findings | `arn-spark-product-strategist` | Synthesis with all transcripts |
|
|
227
|
+
|
|
228
|
+
## Error Handling
|
|
229
|
+
|
|
230
|
+
- **Persona architect returns generic personas:** Retry with more specific mould details and casting overlay instructions. If retry fails:
|
|
231
|
+
Ask the user: **"Persona generation produced generic results. How would you like to proceed?"**
|
|
232
|
+
1. Retry with additional context
|
|
233
|
+
2. Skip this persona and continue with remaining
|
|
234
|
+
3. Abort the interview stress test
|
|
235
|
+
|
|
236
|
+
- **Persona impersonator breaks character:** Retry once with a simplified prompt that re-emphasizes the persona profile and casting overlay. If retry fails, record what was captured and note the gap in the report. Continue with remaining phases/personas.
|
|
237
|
+
|
|
238
|
+
- **Persona impersonator breaks character (persistent):** After retry failure:
|
|
239
|
+
Ask the user: **"The persona impersonator is not maintaining character. How would you like to proceed?"**
|
|
240
|
+
1. Retry this phase
|
|
241
|
+
2. Skip this phase and continue
|
|
242
|
+
3. Abort the interview stress test
|
|
243
|
+
|
|
244
|
+
- **Product strategist returns unhelpful questions:** Use the interview protocol's question types directly as fallback questions. Note in the report that strategist-formulated questions were replaced with protocol defaults.
|
|
245
|
+
|
|
246
|
+
- **Any agent invocation fails entirely:** Retry once with a simplified prompt. If retry fails:
|
|
247
|
+
Ask the user: **"Agent invocation failed. How would you like to proceed?"**
|
|
248
|
+
1. Retry
|
|
249
|
+
2. Skip this step
|
|
250
|
+
3. Abort
|
|
251
|
+
|
|
252
|
+
## Constraints
|
|
253
|
+
|
|
254
|
+
- **Read-only with respect to product-concept.md.** The interview skill reads the product concept but NEVER modifies it. All recommendations are captured in the interview report.
|
|
255
|
+
- **Phase-parallel interviews.** Each phase runs for all 3 personas in parallel before advancing to the next phase. Each persona's interview context is independent -- no cross-persona information is shared between parallel invocations.
|
|
256
|
+
- **All 3 casting overlays must be represented.** If fewer than 3 moulds exist, the skill still generates 3 personas (reusing moulds with different overlays if necessary) to ensure Pragmatist, Skeptic, and Power User perspectives are all captured.
|
|
257
|
+
- **Report overwrites on re-run.** If `interview-report.md` already exists, it is overwritten. Git provides history.
|