@fredcallagan/arn-spark 5.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (130) hide show
  1. package/.claude-plugin/plugin.json +9 -0
  2. package/.opencode/plugins/arn-spark.js +272 -0
  3. package/package.json +17 -0
  4. package/plugins/arn-spark/.claude-plugin/plugin.json +9 -0
  5. package/plugins/arn-spark/LICENSE +21 -0
  6. package/plugins/arn-spark/README.md +25 -0
  7. package/plugins/arn-spark/agents/arn-spark-brand-strategist.md +299 -0
  8. package/plugins/arn-spark/agents/arn-spark-dev-env-builder.md +228 -0
  9. package/plugins/arn-spark/agents/arn-spark-doctor.md +92 -0
  10. package/plugins/arn-spark/agents/arn-spark-forensic-investigator.md +181 -0
  11. package/plugins/arn-spark/agents/arn-spark-market-researcher.md +232 -0
  12. package/plugins/arn-spark/agents/arn-spark-marketing-pm.md +225 -0
  13. package/plugins/arn-spark/agents/arn-spark-persona-architect.md +259 -0
  14. package/plugins/arn-spark/agents/arn-spark-persona-impersonator.md +183 -0
  15. package/plugins/arn-spark/agents/arn-spark-product-strategist.md +191 -0
  16. package/plugins/arn-spark/agents/arn-spark-prototype-builder.md +497 -0
  17. package/plugins/arn-spark/agents/arn-spark-scaffolder.md +228 -0
  18. package/plugins/arn-spark/agents/arn-spark-spike-runner.md +209 -0
  19. package/plugins/arn-spark/agents/arn-spark-style-capture.md +196 -0
  20. package/plugins/arn-spark/agents/arn-spark-tech-evaluator.md +229 -0
  21. package/plugins/arn-spark/agents/arn-spark-ui-interactor.md +235 -0
  22. package/plugins/arn-spark/agents/arn-spark-use-case-writer.md +280 -0
  23. package/plugins/arn-spark/agents/arn-spark-ux-judge.md +215 -0
  24. package/plugins/arn-spark/agents/arn-spark-ux-specialist.md +200 -0
  25. package/plugins/arn-spark/agents/arn-spark-visual-sketcher.md +285 -0
  26. package/plugins/arn-spark/agents/arn-spark-visual-test-engineer.md +224 -0
  27. package/plugins/arn-spark/references/copilot-tools.md +62 -0
  28. package/plugins/arn-spark/skills/arn-brainstorming/SKILL.md +520 -0
  29. package/plugins/arn-spark/skills/arn-brainstorming/references/add-feature-flow.md +155 -0
  30. package/plugins/arn-spark/skills/arn-spark-arch-vision/SKILL.md +226 -0
  31. package/plugins/arn-spark/skills/arn-spark-arch-vision/references/architecture-vision-template.md +153 -0
  32. package/plugins/arn-spark/skills/arn-spark-arch-vision/references/technology-evaluation-guide.md +86 -0
  33. package/plugins/arn-spark/skills/arn-spark-clickable-prototype/SKILL.md +471 -0
  34. package/plugins/arn-spark/skills/arn-spark-clickable-prototype/references/clickable-prototype-criteria.md +65 -0
  35. package/plugins/arn-spark/skills/arn-spark-clickable-prototype/references/journey-template.md +62 -0
  36. package/plugins/arn-spark/skills/arn-spark-clickable-prototype/references/review-report-template.md +75 -0
  37. package/plugins/arn-spark/skills/arn-spark-clickable-prototype/references/showcase-capture-guide.md +213 -0
  38. package/plugins/arn-spark/skills/arn-spark-clickable-prototype-teams/SKILL.md +642 -0
  39. package/plugins/arn-spark/skills/arn-spark-clickable-prototype-teams/references/debate-protocol.md +242 -0
  40. package/plugins/arn-spark/skills/arn-spark-clickable-prototype-teams/references/debate-review-report-template.md +161 -0
  41. package/plugins/arn-spark/skills/arn-spark-clickable-prototype-teams/references/expert-interaction-review-template.md +152 -0
  42. package/plugins/arn-spark/skills/arn-spark-concept-review/SKILL.md +350 -0
  43. package/plugins/arn-spark/skills/arn-spark-concept-review/references/conflict-resolution-protocol.md +145 -0
  44. package/plugins/arn-spark/skills/arn-spark-concept-review/references/review-report-template.md +185 -0
  45. package/plugins/arn-spark/skills/arn-spark-dev-setup/SKILL.md +366 -0
  46. package/plugins/arn-spark/skills/arn-spark-dev-setup/references/dev-setup-checklist.md +84 -0
  47. package/plugins/arn-spark/skills/arn-spark-dev-setup/references/dev-setup-template.md +205 -0
  48. package/plugins/arn-spark/skills/arn-spark-discover/SKILL.md +303 -0
  49. package/plugins/arn-spark/skills/arn-spark-discover/references/competitive-landscape-template.md +87 -0
  50. package/plugins/arn-spark/skills/arn-spark-discover/references/discovery-questions.md +120 -0
  51. package/plugins/arn-spark/skills/arn-spark-discover/references/persona-profile-template.md +97 -0
  52. package/plugins/arn-spark/skills/arn-spark-discover/references/product-concept-template.md +253 -0
  53. package/plugins/arn-spark/skills/arn-spark-ensure-config/SKILL.md +23 -0
  54. package/plugins/arn-spark/skills/arn-spark-ensure-config/references/ensure-config.md +388 -0
  55. package/plugins/arn-spark/skills/arn-spark-ensure-config/references/step-0-fast-path.md +25 -0
  56. package/plugins/arn-spark/skills/arn-spark-ensure-config/scripts/cache-check.sh +127 -0
  57. package/plugins/arn-spark/skills/arn-spark-feature-extract/SKILL.md +483 -0
  58. package/plugins/arn-spark/skills/arn-spark-feature-extract/references/feature-backlog-template.md +176 -0
  59. package/plugins/arn-spark/skills/arn-spark-feature-extract/references/feature-entry-template.md +209 -0
  60. package/plugins/arn-spark/skills/arn-spark-help/SKILL.md +149 -0
  61. package/plugins/arn-spark/skills/arn-spark-help/references/pipeline-map.md +211 -0
  62. package/plugins/arn-spark/skills/arn-spark-init/SKILL.md +312 -0
  63. package/plugins/arn-spark/skills/arn-spark-init/references/agent-models-presets/all-opus.md +23 -0
  64. package/plugins/arn-spark/skills/arn-spark-init/references/agent-models-presets/balanced.md +23 -0
  65. package/plugins/arn-spark/skills/arn-spark-init/references/bkt-setup.md +55 -0
  66. package/plugins/arn-spark/skills/arn-spark-init/references/jira-mcp-setup.md +61 -0
  67. package/plugins/arn-spark/skills/arn-spark-init/references/platform-labels.md +97 -0
  68. package/plugins/arn-spark/skills/arn-spark-naming/SKILL.md +275 -0
  69. package/plugins/arn-spark/skills/arn-spark-naming/references/creative-brief-template.md +146 -0
  70. package/plugins/arn-spark/skills/arn-spark-naming/references/naming-methodology.md +237 -0
  71. package/plugins/arn-spark/skills/arn-spark-naming/references/naming-report-template.md +122 -0
  72. package/plugins/arn-spark/skills/arn-spark-naming/references/trademark-databases.md +88 -0
  73. package/plugins/arn-spark/skills/arn-spark-naming/references/whois-server-map.md +164 -0
  74. package/plugins/arn-spark/skills/arn-spark-naming/scripts/whois-check.js +502 -0
  75. package/plugins/arn-spark/skills/arn-spark-naming/scripts/whois-check.py +533 -0
  76. package/plugins/arn-spark/skills/arn-spark-prototype-lock/SKILL.md +260 -0
  77. package/plugins/arn-spark/skills/arn-spark-prototype-lock/references/lock-report-template.md +68 -0
  78. package/plugins/arn-spark/skills/arn-spark-prototype-lock/references/pretooluse-hook-template.json +35 -0
  79. package/plugins/arn-spark/skills/arn-spark-prototype-lock/references/prototype-guardrail-rules.md +38 -0
  80. package/plugins/arn-spark/skills/arn-spark-report/SKILL.md +144 -0
  81. package/plugins/arn-spark/skills/arn-spark-report/references/issue-template.md +81 -0
  82. package/plugins/arn-spark/skills/arn-spark-report/references/spark-knowledge-base.md +293 -0
  83. package/plugins/arn-spark/skills/arn-spark-scaffold/SKILL.md +239 -0
  84. package/plugins/arn-spark/skills/arn-spark-scaffold/references/scaffold-checklist.md +79 -0
  85. package/plugins/arn-spark/skills/arn-spark-scaffold/references/scaffold-summary-template.md +74 -0
  86. package/plugins/arn-spark/skills/arn-spark-spike/SKILL.md +209 -0
  87. package/plugins/arn-spark/skills/arn-spark-spike/references/spike-report-template.md +123 -0
  88. package/plugins/arn-spark/skills/arn-spark-static-prototype/SKILL.md +362 -0
  89. package/plugins/arn-spark/skills/arn-spark-static-prototype/references/review-report-template.md +65 -0
  90. package/plugins/arn-spark/skills/arn-spark-static-prototype/references/showcase-capture-guide.md +153 -0
  91. package/plugins/arn-spark/skills/arn-spark-static-prototype/references/static-prototype-criteria.md +54 -0
  92. package/plugins/arn-spark/skills/arn-spark-static-prototype-teams/SKILL.md +518 -0
  93. package/plugins/arn-spark/skills/arn-spark-static-prototype-teams/references/debate-protocol.md +230 -0
  94. package/plugins/arn-spark/skills/arn-spark-static-prototype-teams/references/debate-review-report-template.md +148 -0
  95. package/plugins/arn-spark/skills/arn-spark-static-prototype-teams/references/expert-visual-review-template.md +130 -0
  96. package/plugins/arn-spark/skills/arn-spark-stress-competitive/SKILL.md +166 -0
  97. package/plugins/arn-spark/skills/arn-spark-stress-competitive/references/competitive-report-template.md +139 -0
  98. package/plugins/arn-spark/skills/arn-spark-stress-competitive/references/gap-analysis-framework.md +111 -0
  99. package/plugins/arn-spark/skills/arn-spark-stress-interview/SKILL.md +257 -0
  100. package/plugins/arn-spark/skills/arn-spark-stress-interview/references/interview-protocol.md +140 -0
  101. package/plugins/arn-spark/skills/arn-spark-stress-interview/references/interview-report-template.md +165 -0
  102. package/plugins/arn-spark/skills/arn-spark-stress-interview/references/persona-casting-spec.md +138 -0
  103. package/plugins/arn-spark/skills/arn-spark-stress-premortem/SKILL.md +181 -0
  104. package/plugins/arn-spark/skills/arn-spark-stress-premortem/references/premortem-protocol.md +112 -0
  105. package/plugins/arn-spark/skills/arn-spark-stress-premortem/references/premortem-report-template.md +158 -0
  106. package/plugins/arn-spark/skills/arn-spark-stress-prfaq/SKILL.md +206 -0
  107. package/plugins/arn-spark/skills/arn-spark-stress-prfaq/references/prfaq-report-template.md +139 -0
  108. package/plugins/arn-spark/skills/arn-spark-stress-prfaq/references/prfaq-workflow.md +118 -0
  109. package/plugins/arn-spark/skills/arn-spark-style-explore/SKILL.md +281 -0
  110. package/plugins/arn-spark/skills/arn-spark-style-explore/references/style-brief-template.md +198 -0
  111. package/plugins/arn-spark/skills/arn-spark-use-cases/SKILL.md +359 -0
  112. package/plugins/arn-spark/skills/arn-spark-use-cases/references/expert-review-template.md +94 -0
  113. package/plugins/arn-spark/skills/arn-spark-use-cases/references/review-protocol.md +150 -0
  114. package/plugins/arn-spark/skills/arn-spark-use-cases/references/use-case-index-template.md +108 -0
  115. package/plugins/arn-spark/skills/arn-spark-use-cases/references/use-case-template.md +125 -0
  116. package/plugins/arn-spark/skills/arn-spark-use-cases-teams/SKILL.md +306 -0
  117. package/plugins/arn-spark/skills/arn-spark-use-cases-teams/references/debate-protocol.md +272 -0
  118. package/plugins/arn-spark/skills/arn-spark-use-cases-teams/references/review-report-template.md +112 -0
  119. package/plugins/arn-spark/skills/arn-spark-visual-readiness/SKILL.md +293 -0
  120. package/plugins/arn-spark/skills/arn-spark-visual-readiness/references/readiness-checklist.md +196 -0
  121. package/plugins/arn-spark/skills/arn-spark-visual-sketch/SKILL.md +376 -0
  122. package/plugins/arn-spark/skills/arn-spark-visual-sketch/references/aesthetic-philosophy.md +210 -0
  123. package/plugins/arn-spark/skills/arn-spark-visual-sketch/references/sketch-gallery-guide.md +282 -0
  124. package/plugins/arn-spark/skills/arn-spark-visual-sketch/references/visual-direction-template.md +174 -0
  125. package/plugins/arn-spark/skills/arn-spark-visual-strategy/SKILL.md +447 -0
  126. package/plugins/arn-spark/skills/arn-spark-visual-strategy/references/baseline-capture-script-template.js +89 -0
  127. package/plugins/arn-spark/skills/arn-spark-visual-strategy/references/journey-schema.md +375 -0
  128. package/plugins/arn-spark/skills/arn-spark-visual-strategy/references/spike-checklist.md +122 -0
  129. package/plugins/arn-spark/skills/arn-spark-visual-strategy/references/strategy-layers-guide.md +132 -0
  130. package/plugins/arn-spark/skills/arn-spark-visual-strategy/references/visual-strategy-template.md +141 -0
@@ -0,0 +1,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 |
@@ -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.