@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,483 @@
1
+ ---
2
+ name: arn-spark-feature-extract
3
+ description: >-
4
+ This skill should be used when the user says "feature extract",
5
+ "arn feature extract", "extract features", "feature backlog",
6
+ "create backlog", "list features", "what features do we need",
7
+ "prioritize features", "feature list", "build the backlog",
8
+ "what should we build", "upload features", "feature tracker",
9
+ or wants to extract a structured, prioritized feature list with
10
+ journey steps, validated components, use case context, and UI
11
+ behavior details from all project artifacts, producing a feature
12
+ backlog document with a Feature Tracker that bridges into
13
+ arn-code-feature-spec and optionally uploads features to the issue tracker.
14
+ version: 3.0.0
15
+ ---
16
+
17
+ # Arness Feature Extract
18
+
19
+ Extract a structured, prioritized feature backlog from all available project artifacts through guided conversation, aided by the `arn-spark-product-strategist` and `arn-spark-ux-specialist` agents (greenfield agents in this plugin) for feature analysis, prioritization, and UX flow analysis. This is a conversational skill that runs in normal conversation (NOT plan mode). The primary artifact is a **feature backlog document** that feeds into `arn-code-feature-spec`.
20
+
21
+ This skill bridges the greenfield pipeline into Arness's existing development pipeline. It takes all upstream artifacts -- product concept, architecture vision, spike results, style brief, static prototype validation (including showcase and debate reports), clickable prototype validation (including showcase, screen manifest, and debate reports), use cases (including postconditions, business rules, and debate reports), and visual grounding assets -- and distills them into a prioritized list of features with a local Feature Tracker for dependency management.
22
+
23
+ Each feature carries lean context (description, journey summary, UI behavior unique to the feature, validated components, use case references, debate insights, technical notes, acceptance criteria) with references to upstream UC documents. `arn-code-feature-spec` expands these references at spec time by reading the referenced UC documents directly.
24
+
25
+ Optionally, features can be uploaded as issues to the configured issue tracker (GitHub or Jira) for team visibility and tracking.
26
+
27
+ ## Prerequisites
28
+
29
+ At minimum, a product concept document should exist. Check in order:
30
+
31
+ 1. Read the project's `arness.md` for a `## Arness` section. If found, check the configured Vision directory for `product-concept.md`
32
+ 2. If no `## Arness` section found, check `.arness/vision/product-concept.md` at the project root
33
+
34
+ **If a product concept is found:** Read it as the primary source for feature extraction.
35
+
36
+ **If no product concept is found:** Ask the user: "No product concept found. I can extract features from your description of the product. What are the main things users should be able to do?"
37
+
38
+ Read the configured directories from the `## Arness` section (use defaults if no config found):
39
+ - **Use cases directory** (default: `.arness/use-cases`)
40
+ - **Prototypes directory** (default: `.arness/prototypes`)
41
+ - **Vision directory** for the output (default: `.arness/vision`)
42
+ - **Visual grounding directory** (default: `.arness/visual-grounding`)
43
+
44
+ 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.
45
+
46
+ > All references to `use-cases/`, `prototypes/`, and `visual-grounding/` in this skill refer to the configured directories determined above.
47
+
48
+ Also check for and load (if available):
49
+ - `[use-cases-dir]/README.md` and `[use-cases-dir]/UC-*.md` -- for structured behavioral specs with actor goals, main success scenarios, alternate flows, business rules, and postconditions that map directly to features
50
+ - `[use-cases-dir]/reviews/` -- for debate reports from `arn-spark-use-cases-teams` (consensus findings, business rule discovery, scope concerns, missing elements)
51
+ - `architecture-vision.md` (in Vision directory) -- for technical capabilities and platform features
52
+ - `spike-results.md` (in Vision directory) -- for validated/failed risks that affect feature scope, validated capabilities, and known limitations
53
+ - `style-brief.md` (in Vision directory) -- for UI patterns, visual tokens, and component style that imply features
54
+ - `dev-setup.md` (in Vision directory) -- for environment constraints that may affect feature scope
55
+ - `[prototypes-dir]/static/final-report.md` -- for validated visual components and their review scores
56
+ - `[prototypes-dir]/static/v[N]/showcase/showcase-index.md` -- for per-component visual captures with scores (scan for the latest version directory)
57
+ - `[prototypes-dir]/static/v[N]/showcase-manifest.json` -- for the component section list (maps library components to showcase sections)
58
+ - `[prototypes-dir]/static/reviews/` -- for debate reports from `arn-spark-static-prototype-teams` (expert scoring, consensus, divergence on visual fidelity)
59
+ - `[prototypes-dir]/clickable/final-report.md` -- for validated user journeys, interaction test results, and journey screenshots
60
+ - `[prototypes-dir]/clickable/v[N]/showcase/showcase-index.md` -- for per-screen visual captures with journey mapping (scan for the latest version directory)
61
+ - `[prototypes-dir]/clickable/v[N]/screen-manifest.json` -- for the canonical screen list with routes and functional areas
62
+ - `[prototypes-dir]/clickable/reviews/` -- for debate reports from `arn-spark-clickable-prototype-teams` (expert scoring, journey agreement, interaction quality debate)
63
+ - `[prototypes-dir]/criteria.md` -- for agreed validation criteria
64
+ - Prototype screens: scan `[prototypes-dir]/clickable/` for versioned prototype app directories. Also check the project's screen/view directories (the location depends on the framework -- look at the project structure) -- each screen suggests features
65
+ - User journey definitions from the clickable prototype (journey templates and interaction reports in `[prototypes-dir]/clickable/`)
66
+ - `[visual-grounding-dir]/references/` -- reference images (inspirational, inform visual target classification)
67
+ - `[visual-grounding-dir]/designs/` -- design mockups (specification targets, inform visual target classification)
68
+ - `[visual-grounding-dir]/brand/` -- brand assets (fixed constraints)
69
+
70
+ The output directory is the Vision directory determined above. If it does not exist, create it.
71
+
72
+ ## Workflow
73
+
74
+ ### Step 1: Load All Artifacts
75
+
76
+ Read all available project artifacts:
77
+
78
+ - **Product concept:** Core experience, interaction modes, trust model, platform requirements, scope boundaries, future considerations
79
+ - **Architecture vision:** Technology stack, system components, protocols, platform integration points
80
+ - **Spike results:** Validated and failed risks (failed risks may eliminate or alter features), validated capabilities and their limitations
81
+ - **Style brief:** UI patterns, visual tokens, and component customization that suggest features (settings panel implies settings feature, dark mode toggle implies theme feature, etc.). Also read the Component Style section for the library component inventory.
82
+ - **Style brief Animation section (if present):** Motion philosophy, animation approach, key patterns, timing characteristics — used to identify which features have animation requirements
83
+ - **Static prototype results:** Validated visual components, review scores, and the component showcase -- which UI elements are themed, validated, and ready to use
84
+ - **Static prototype showcase:** Per-component section captures from `showcase-index.md` and `showcase-manifest.json` -- the canonical list of validated library components with their showcase section numbers
85
+ - **Clickable prototype results:** Validated user journeys with step-by-step interaction evidence, journey screenshots showing how screens link together, and which interactions work
86
+ - **Clickable prototype showcase:** Per-screen captures from `showcase-index.md` and `screen-manifest.json` -- the canonical screen list with routes and functional areas, showing product-specific component compositions
87
+ - **Debate reports (static prototype):** Expert consensus, additions, and disagreements on visual fidelity from `arn-spark-static-prototype-teams` review files
88
+ - **Debate reports (clickable prototype):** Expert consensus, additions, and disagreements on interaction quality from `arn-spark-clickable-prototype-teams` review files, including journey assessment agreement
89
+ - **Debate reports (use cases):** Expert consensus, additions, and disagreements on behavioral specs from `arn-spark-use-cases-teams` review files, including missing use cases, missing actors, and business rule validation
90
+ - **Use cases:** Actor catalog, individual use case documents with main success scenarios, extensions, postconditions, and business rules. Each user-goal use case maps to one or more features. Extensions reveal edge-case features. Postconditions provide acceptance criteria. Business rules become feature constraints. When available, use cases are the richest source for feature extraction because they provide structured behavioral detail that the product concept alone does not.
91
+ - **User journey definitions:** Journey name, steps (action + target + expected outcome), navigation flow -- these represent user goals that map to one or more features. If use cases exist, journeys are a complementary source (they show how the behavior maps to specific screens); if use cases do not exist, journeys are the primary behavioral source.
92
+ - **Visual grounding assets:** Reference images (inspirational direction), design mockups (specification targets), and brand assets (fixed constraints). These inform the visual target classification per feature.
93
+
94
+ Note which artifacts were available and which were missing. Present the artifact inventory to the user:
95
+
96
+ "I found these project artifacts:
97
+ - [artifact name] -- [brief note on what it provides]
98
+ - ...
99
+ - Showcase outputs (static v[N]) -- component captures with review scores
100
+ - Showcase outputs (clickable v[N]) -- screen captures with journey mapping
101
+ - Debate reports (use cases) -- [N] rounds, business + flow perspectives
102
+ - Debate reports (static prototype) -- [N] rounds, visual fidelity debate
103
+ - Debate reports (clickable prototype) -- [N] rounds, interaction quality debate
104
+ - Visual grounding assets -- [N] references, [N] designs, [N] brand assets
105
+ - Screen manifest (clickable v[N]) -- [N] screens with routing
106
+ - ...
107
+ - [artifact name] -- not found
108
+
109
+ [X] of [Y] artifacts available. [Note if key artifacts like prototype results, journeys, or use cases are missing.]"
110
+
111
+ ### Step 2: Extract Features with Experts
112
+
113
+ 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:
114
+
115
+ - All loaded artifacts
116
+ - Request to extract and categorize features from the artifacts
117
+ - Instruction to prioritize based on the product concept's scope boundaries (what is in v1 vs. what was deferred)
118
+ - Instruction to derive features from user journeys: each journey or major journey segment should map to a feature or feature group
119
+ - Instruction to flag XL features that should be decomposed
120
+ - Instruction to classify the visual target per feature based on visual grounding assets: if design mockups exist in `designs/` matching this feature's screens, classify as `Design assets`; if reference images exist in `references/`, classify as `Reference alignment`; otherwise `Style brief only`
121
+ - Instruction to extract debate insights from review files: read consensus and disagreement findings from debate reports (static, clickable, and use case) and attach relevant findings to specific features
122
+ - Instruction to reference use case documents with step ranges and BR identifiers per feature (do not inline postconditions or business rules -- `arn-code-feature-spec` reads UC documents directly at spec time)
123
+ - Instruction to provide a brief journey summary (2-3 sentences) per feature with UC references and step ranges, rather than inlining full step descriptions
124
+ - Instruction to identify product-specific component compositions per feature from clickable prototype screens (e.g., "DeviceListItem visible in screen 04-main-dashboard")
125
+
126
+ The agent returns:
127
+
128
+ - Categorized feature list grouped by functional area
129
+ - For each feature: description, suggested priority, complexity estimate, source artifact, journey references, visual target classification, debate insights, use case references (with step ranges), product-specific components
130
+ - Scope observations (features that might be scope creep, features that seem missing)
131
+ - Sizing warnings (features that seem too large or too thin)
132
+
133
+ Then invoke the `arn-spark-ux-specialist` agent via the Task tool, passing the model from `.arness/agent-models/spark.md` as the `model` parameter (see `plugins/arn-spark/skills/arn-spark-ensure-config/references/ensure-config.md` "Dispatch convention" for fallback). Context:
134
+
135
+ - The product strategist's feature list
136
+ - User journey definitions and journey screenshots from the clickable prototype
137
+ - Style brief and static prototype results (including showcase)
138
+ - Showcase screenshots from both static and clickable prototypes
139
+ - Visual grounding assets for comparison
140
+ - Request to review feature boundaries from a UX perspective: are any features too broad (should split) or too narrow (should merge)? Does each feature make sense as a coherent user-facing capability?
141
+ - Request to describe the UI behavior for each feature: what screens are involved, how they transition, what interactions happen, what feedback the user receives
142
+ - Request to map library components to features using the static prototype `showcase-manifest.json` sections and the style brief's Component Style section (e.g., "This feature uses Button (primary, secondary) from showcase section 3, and Input (text) from showcase section 5")
143
+ - Request to validate the visual target classification proposed by the product strategist
144
+ - For each feature, identify animation behaviors from the prototype: entrance animations, state transitions, scroll-triggered effects, loading indicators, hover/focus feedback. Reference the style brief's Animation section for the motion design system. Note whether animation is core to the feature's UX or purely decorative. Describe animation in platform-agnostic intent language.
145
+
146
+ If `arn-spark-ux-specialist` is not available, proceed with the product strategist's output alone and note the limitation.
147
+
148
+ The UX specialist returns:
149
+
150
+ - Feature boundary recommendations (split/merge suggestions)
151
+ - Per-feature UI behavior descriptions: screens involved, navigation flows, interaction details, feedback mechanisms
152
+ - Per-feature component mapping: library components (from static showcase) + product-specific components (from clickable screens)
153
+ - Visual target validation
154
+ - UX complexity assessment (some features look simple but have complex interaction patterns)
155
+
156
+ Merge the two expert outputs into a consolidated feature list. Then enrich each feature with the remaining fields defined in `${CLAUDE_PLUGIN_ROOT}/skills/arn-spark-feature-extract/references/feature-entry-template.md` — specifically: technical notes (from architecture vision and spike results), acceptance criteria (from journey steps, prototype behavior, and use case postconditions), use case context (references with step ranges; postconditions and business rules referenced, not inlined), prototype and showcase references (matched to specific screens and sections), component compilation (library + product-specific from both experts), and debate insights (from all debate report sources). The template provides field definitions, examples, and spec readiness criteria.
157
+
158
+ ### Step 2b: Gap Resolution (Collaborative)
159
+
160
+ After merging both expert outputs, scan for gaps -- areas where the consolidated feature list has incomplete, conflicting, or missing information. Common gap types:
161
+
162
+ | Gap type | Signal |
163
+ |----------|--------|
164
+ | **Missing UI behavior** | Product strategist identified a feature but UX specialist could not describe the interaction (no prototype coverage, unclear flow) |
165
+ | **Conflicting boundaries** | UX specialist suggested splitting or merging features that the product strategist scoped differently |
166
+ | **Journey coverage holes** | User journeys with steps not mapped to any feature |
167
+ | **Conflicting assessments** | Experts disagree on priority or complexity for the same feature |
168
+ | **Incomplete components** | Feature references screens/components that neither expert could map to showcase or prototype output |
169
+ | **Unresolved debate findings** | Debate reports flagged disagreements that affect feature scope but were not resolved in the prototype phase |
170
+
171
+ **If no gaps are found:** Skip to Step 3.
172
+
173
+ **If gaps are found:**
174
+
175
+ 1. Compile a gap summary listing each gap with:
176
+ - Which feature(s) it affects
177
+ - What each expert said (or didn't say) about it
178
+ - Why it matters for downstream spec writing
179
+
180
+ 2. 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:
181
+ - The gap summary
182
+ - The full consolidated feature list for context
183
+ - Instruction: "For each gap, propose a solution or alternative from the product perspective. Consider: should the feature be deferred, split, merged, or redefined? What is the minimal viable scope? If journey coverage is missing, which journeys should the feature map to?"
184
+
185
+ 3. Invoke the `arn-spark-ux-specialist` agent via the Task tool, passing the model from `.arness/agent-models/spark.md` as the `model` parameter (see `plugins/arn-spark/skills/arn-spark-ensure-config/references/ensure-config.md` "Dispatch convention" for fallback). Context:
186
+ - The gap summary
187
+ - The product strategist's proposed solutions
188
+ - The full consolidated feature list
189
+ - Instruction: "Review the product strategist's proposed solutions for each gap. For each: agree and refine, or propose an alternative from the UX perspective. For missing UI behavior, describe the interaction. For conflicting boundaries, recommend the split/merge that produces the best user experience. For incomplete components, suggest which existing components could serve or what new compositions are needed."
190
+
191
+ If `arn-spark-ux-specialist` is not available: proceed with the product strategist's gap solutions alone.
192
+
193
+ 4. Merge the gap resolutions into the consolidated feature list:
194
+ - Apply agreed solutions directly (update descriptions, boundaries, UI behavior, components)
195
+ - For gaps where experts proposed different solutions: note both perspectives and mark for user attention in Step 3
196
+ - Update journey mappings, component references, and acceptance criteria based on resolved gaps
197
+
198
+ 5. Record the gap resolution summary for transparency -- this will be shown to the user alongside the feature list in Step 3:
199
+ - "[N] gaps identified after expert analysis. [M] resolved collaboratively, [K] require your input."
200
+
201
+ ### Step 3: Present and Refine the Feature List
202
+
203
+ Present the extracted features to the user, grouped by functional area. For each feature, show the enriched description including journey, behavior, and component context:
204
+
205
+ "I extracted [N] features from your project artifacts ([X] from use cases/journeys, [Y] from product concept, [Z] from other sources).
206
+
207
+ [If gap resolution ran:] **Gap resolution:** [N] gaps identified after expert analysis. [M] resolved collaboratively, [K] require your input. [List unresolved gaps below the feature list with both expert perspectives.]
208
+
209
+ Here they are by area:
210
+
211
+ **[Functional Area 1]:**
212
+
213
+ **F-001: [Feature Name]** | Priority: Must-have | Complexity: M | Visual target: Design assets
214
+ [Description: 2-4 sentences covering what the user can do]
215
+ Journey: [brief summary sentence]. See UC-001 steps 1-6, UC-005.
216
+ UI behavior: [unique-beyond-UC behavioral details]
217
+ Components: [Button (primary), Input (text) -- static showcase v3 s3, s5. DeviceListItem -- clickable v2 screen 04]
218
+ Animation: [e.g., "scroll-triggered card stagger entrance, 0.15s delay — validated in clickable v2 screen 03" or "none"]
219
+ Showcase: [Static v3 s3. Clickable v2 screens 01, 04]
220
+ Debate: [key insight from debate reports, if any]
221
+ UC refs: [UC-001 steps 1-6, UC-005]
222
+
223
+ **F-002: [Feature Name]** | Priority: Should-have | Complexity: L | Visual target: Reference alignment
224
+ ...
225
+
226
+ **Summary:** [X] must-have, [Y] should-have, [Z] nice-to-have
227
+
228
+ **Sizing notes:**
229
+ - [Any features flagged as too large (XL) that should be split]
230
+ - [Any features flagged as too thin that could be merged]
231
+
232
+ Review and adjust:
233
+ - Change priorities?
234
+ - Add or remove features?
235
+ - Split large features or merge thin ones?
236
+ - Adjust the interaction descriptions?
237
+ - Modify complexity estimates?"
238
+
239
+ ### Step 4: Interactive Refinement
240
+
241
+ Enter a conversation loop for the user to refine the backlog:
242
+
243
+ | User Request | Action |
244
+ |-------------|--------|
245
+ | "Change F-003 to must-have" | Update priority, adjust rationale |
246
+ | "Add a feature for [description]" | Add with the user's description, estimate priority and complexity, derive journey and behavior context |
247
+ | "Remove F-007" | Remove from the backlog, note if it should go to Deferred Items |
248
+ | "Is F-005 really that complex?" | Invoke `arn-spark-product-strategist` for scope assessment if needed |
249
+ | "What am I missing?" | Invoke `arn-spark-product-strategist` with the current list and journey definitions to identify gaps |
250
+ | "These priorities look wrong" | Invoke `arn-spark-product-strategist` for re-prioritization with the user's feedback |
251
+ | "Split F-010 into smaller features" | Decompose with the user's guidance, distribute journey steps across the new features |
252
+ | "Keep F-005 as one feature" (UX says don't split) | If XL: add a `## Decomposition Hints` section to the feature with suggested implementation sub-features, journey segment mapping, and component allocation per the feature entry template. Update spec readiness to Yes if all other criteria are met. Explain: "F-005 will stay as one backlog entry. When you run `/arn-code-feature-spec` on it, it will be decomposed into sub-feature specs (F-005.1, F-005.2, ...) with separate tracker rows and issue tracker entries." |
253
+ | "Merge F-003 and F-004" | Combine, consolidate journey references and behavior descriptions |
254
+ | "The interaction for F-002 is wrong" | Update the UI behavior description based on user's correction |
255
+ | "What does F-005 look like in the prototype?" | Reference the clickable prototype journey screenshots and showcase screens for that feature |
256
+ | "This feature needs more detail" | Invoke `arn-spark-ux-specialist` with the specific feature for deeper behavior analysis |
257
+ | "What did the experts disagree about for F-003?" | Show the debate insights from review reports for that feature |
258
+ | "Show me the showcase for F-005" | Reference the showcase-index.md sections for that feature |
259
+ | "What visual assets do we have for F-002?" | Check visual grounding directories and showcase for that feature |
260
+ | "Change visual target for F-007" | Update the classification |
261
+ | "What components does F-004 use?" | Show the library and product-specific components for that feature |
262
+ | User is satisfied | Proceed to Step 5 |
263
+
264
+ Track all changes. The user has final authority over priorities and behavior descriptions -- the experts provide recommendations, not mandates.
265
+
266
+ ### Step 5: Validate Feature Sizing
267
+
268
+ If sizing concerns were already resolved during Step 4 refinement (user already split/merged features), skip this step. Otherwise, review the feature list for sizing issues:
269
+
270
+ **Too large (should split):**
271
+ - Any feature estimated as XL should be reviewed. XL features typically need decomposition before they can be effectively specced. Suggest splitting along journey boundaries or by UI area.
272
+ - Any feature that spans more than 3 user journeys is likely too broad.
273
+
274
+ **XL features kept whole (decomposition hints path):**
275
+ - If the UX specialist or user determines that an XL feature is one coherent user-facing capability that should not be split in the backlog, the feature can remain as a single backlog entry.
276
+ - Add a `## Decomposition Hints` section to the feature per the feature entry template. The hints must include at least 2 suggested sub-features with journey segment mappings, component allocations, a split rationale, and inter-sub-feature dependencies.
277
+ - Update the spec readiness assessment: the feature is ready for spec if all other criteria are met AND the decomposition hints section is present.
278
+ - Inform the user: "F-NNN will remain as one entry in the backlog. When you run `/arn-code-feature-spec` on it, it will be decomposed into [N] sub-feature specs (F-NNN.1, F-NNN.2, ...) with separate issue tracker entries and Feature Tracker rows. Each sub-feature will be a separate pickable and shippable work item."
279
+
280
+ **Too thin (should merge):**
281
+ - Any S-complexity feature that is a minor UI change or single interaction step might not warrant its own spec. Consider merging it into a parent feature.
282
+ - Features that only appear in one journey step and have no standalone value are candidates for merging.
283
+
284
+ **Right-sized features typically:**
285
+ - Map to 1-2 user journeys or a coherent segment of a larger journey
286
+ - Have 3-8 distinct interactions or behaviors to describe
287
+ - Can be specified, implemented, and tested independently
288
+ - Deliver a user-facing capability that makes sense on its own
289
+
290
+ Present sizing concerns to the user and resolve before writing.
291
+
292
+ ### Step 6: Write Feature Files and Index
293
+
294
+ When the user is ready:
295
+
296
+ 1. Read both templates:
297
+ > Read `${CLAUDE_PLUGIN_ROOT}/skills/arn-spark-feature-extract/references/feature-entry-template.md`
298
+ > Read `${CLAUDE_PLUGIN_ROOT}/skills/arn-spark-feature-extract/references/feature-backlog-template.md`
299
+
300
+ 2. Create the features directory: `[vision-dir]/features/`
301
+
302
+ 3. Write individual feature files — one per feature, using the feature entry template:
303
+ - File naming: `F-NNN-kebab-name.md` (e.g., `F-001-device-discovery.md`, `F-002-voice-communication.md`)
304
+ - Each file includes all fields per the lean feature entry template: description, journey summary (brief + UC refs), UI behavior (unique-beyond-UC), components, priority rationale, complexity notes, technical notes, source, references (prototype, showcase, visual target), debate insights, use case context (references with step ranges, not inlined), acceptance criteria, spec readiness
305
+ - Write features in batches of 4-5 using the Write tool for each file — all features are independent files, so write multiple files in a single turn for efficiency
306
+ - Initial status in each file: `pending`
307
+ - For XL features kept whole: include the `## Decomposition Hints` section. Set `Ready for spec: Yes` if all other spec readiness criteria are met. Sub-feature files are NOT created at this stage -- `arn-code-feature-spec` creates them at spec time.
308
+
309
+ 4. Write the index file: `[vision-dir]/features/feature-backlog.md`
310
+ - Populate using the backlog index template
311
+ - **Feature Tracker table:**
312
+ - One row per feature with ID, name, priority, deps, phase, issue (`--`), status (`pending`)
313
+ - Assign phase per feature from the Implementation Order Suggestion (Foundation / Core / Enhancement / Polish)
314
+ - Deps column derived from each feature's Dependencies field
315
+ - **Feature Index:** grouped by functional area, one row per feature with relative link to the individual file
316
+ - Implementation order suggestion based on priorities and dependencies
317
+ - Deferred items (features discussed and explicitly excluded)
318
+ - Journey-to-feature mapping table
319
+
320
+ 5. Present a summary:
321
+
322
+ "Feature backlog saved to `[path]/features/`.
323
+
324
+ **Files written:** [N] individual feature files + 1 index (`feature-backlog.md`)
325
+
326
+ **Summary:**
327
+ - **Must-have:** [N] features
328
+ - **Should-have:** [N] features
329
+ - **Nice-to-have:** [N] features
330
+ - **Total:** [N] features
331
+ - **Journey coverage:** [N] of [M] user journeys fully mapped to features
332
+ - **Component coverage:** [N] library components, [M] product-specific components mapped
333
+
334
+ **Feature Tracker:** [N] features tracked with dependency graph. All statuses: pending.
335
+
336
+ **Suggested implementation order:**
337
+ 1. Foundation: [list key features]
338
+ 2. Core experience: [list key features]
339
+ 3. Enhancement: [list key features]"
340
+
341
+ ### Step 7: Issue Upload (Opt-in)
342
+
343
+ 1. Read the **Issue tracker** field from `## Arness` config in the project's `arness.md` (values: `github`, `jira`, or `none`). If the field is not present, fall back to legacy detection: check for `GitHub: yes` and treat as `github`; otherwise treat as `none`.
344
+
345
+ 2. If Issue tracker is `none` or not present: skip to Step 8.
346
+
347
+ 3. If Issue tracker is `github` or `jira`:
348
+
349
+ Ask the user:
350
+
351
+ **"Would you like to upload these [N] features as issues to [GitHub/Jira]?"**
352
+
353
+ Options:
354
+ 1. **Yes, upload** — Each issue will carry a lean brief (description, journey summary, acceptance criteria, components, technical notes) with repo links to the full feature file and use case documents
355
+ 2. **Skip** — Do not upload issues now
356
+
357
+ 4. If the user declines: skip to Step 8.
358
+
359
+ 5. If the user accepts:
360
+
361
+ a. **Ensure labels exist:**
362
+ - If GitHub: Create labels if missing using `gh label create --force`. Reference `${CLAUDE_PLUGIN_ROOT}/skills/arn-spark-init/references/platform-labels.md` for label definitions (name, color, description). Labels needed: `arness-feature-issue` + priority labels (`arness-priority-high`, `arness-priority-medium`, `arness-priority-low`).
363
+ - If Jira: No label creation needed (labels are freeform and created implicitly).
364
+
365
+ b. **Priority mapping:**
366
+ - Must-have -> `arness-priority-high`
367
+ - Should-have -> `arness-priority-medium`
368
+ - Nice-to-have -> `arness-priority-low`
369
+
370
+ c. **Construct repo browse URL:**
371
+ - Read Platform from `## Arness` config: `github`, `bitbucket`, or `none`
372
+ - For GitHub: derive `https://github.com/<owner>/<repo>/blob/main/` from the git remote URL
373
+ - For Bitbucket: derive `https://bitbucket.org/<workspace>/<repo>/src/main/` from the git remote URL
374
+ - If platform is `none` or URL cannot be determined: repo links will be omitted from issue bodies
375
+ - Hold this base URL for use in all issue bodies
376
+
377
+ d. **Create issues in implementation order, in parallel batches of 4-5 using Task agents:**
378
+ - Order features by implementation sequence (Foundation first, then Core, Enhancement, Polish; within each phase, by dependency order)
379
+ - For each batch of 4-5 features:
380
+ - Spawn Task agents in parallel (one per feature in the batch)
381
+ - Each Task agent reads the individual feature file (`[vision-dir]/features/F-NNN-kebab-name.md`) and formats the issue body using the **Issue Body Template** section in `${CLAUDE_PLUGIN_ROOT}/skills/arn-spark-feature-extract/references/feature-backlog-template.md`, constructing repo links using the base URL. Then creates the issue:
382
+ - **If GitHub:**
383
+ ```bash
384
+ gh issue create --title "F-NNN: Feature Name" --body "<issue-body>" --label "arness-feature-issue,arness-priority-<level>"
385
+ ```
386
+ - **If Jira:**
387
+ Use the Atlassian MCP server to create a Story with:
388
+ - Summary: "F-NNN: Feature Name"
389
+ - Description: issue body (Jira-compatible markdown)
390
+ - Labels: `[arness-feature-issue, arness-priority-<level>]`
391
+ - Priority: High / Medium / Low (native Jira field, mapped from backlog priority)
392
+ - Collect the issue number (GitHub) or issue key (Jira) from each created issue
393
+ - Wait for each batch to complete before starting the next (dependency references in later batches need issue numbers from earlier batches)
394
+
395
+ e. **Update Feature Tracker in index:**
396
+ - For each created issue, update the Issue column in the Feature Tracker (in `features/feature-backlog.md`) from `--` to the issue number (`#42`) or Jira key (`PROJ-42`)
397
+
398
+ f. **Add dependency cross-references:**
399
+ - For features with dependencies where the dependency issues have already been created, the issue body already contains the dependency references using the collected issue numbers. E.g., "Depends on #42 (F-001: Device Discovery)".
400
+
401
+ g. **Re-write `features/feature-backlog.md`** with the updated Feature Tracker (issue numbers filled in). Individual feature files are not modified.
402
+
403
+ h. **Present summary:**
404
+
405
+ "Created [N] issues on [GitHub/Jira]. Feature Tracker updated with issue references.
406
+
407
+ | ID | Feature | Issue | Priority |
408
+ |----|---------|-------|----------|
409
+ | F-001 | [Name] | #42 | Must-have |
410
+ | F-002 | [Name] | #43 | Must-have |
411
+ | ... | ... | ... | ... |
412
+
413
+ Dependencies are noted in the issue bodies. Use `/arn-code-pick-issue` to work through these features in dependency order."
414
+
415
+ ### Step 8: Recommend Next Steps
416
+
417
+ "Your feature backlog is ready. Next steps:
418
+
419
+ 1. **Set up visual testing:** Run `/arn-spark-visual-strategy` to define visual regression testing against the prototype baselines. This ensures that feature implementations match the validated design.
420
+ 2. **Start developing:** If you have the Arness Code plugin installed, run `/arn-planning` to begin the development pipeline. Arness auto-configures on first use.
421
+ 3. **Pick features from the backlog:** Run `/arn-code-pick-issue` to browse features in dependency order and route to `/arn-code-feature-spec` for detailed specification. The Feature Tracker shows which features are unblocked.
422
+ 4. **Or start speccing directly:** Run `/arn-code-feature-spec` with a feature from the backlog to create a detailed specification. Each feature file (`features/F-NNN-name.md`) includes journey summaries with UC references, validated components, and UI behavior details. `/arn-code-feature-spec` will read the referenced UC documents for full behavioral detail.
423
+
424
+
425
+ I recommend starting with the Foundation phase features (those with no dependencies that enable other features). Each feature file references its upstream use case documents -- `/arn-code-feature-spec` will expand these references at spec time, reading the full UC documents for behavioral detail.
426
+
427
+ The Feature Tracker in `features/feature-backlog.md` is updated by `/arn-code-ship` after each PR — marking shipped features as done and surfacing newly unblocked features."
428
+
429
+ If the development pipeline is already configured (`## Arness` section exists in arness.md with Code patterns field), skip the development transition recommendation.
430
+
431
+ If issues were uploaded (Step 7), emphasize `/arn-code-pick-issue` as the primary path: "Since features are uploaded as issues, `/arn-code-pick-issue` will show you unblocked features with dependency resolution and validate against the remote issue tracker."
432
+
433
+ ## Agent Invocation Guide
434
+
435
+ | Situation | Action |
436
+ |-----------|--------|
437
+ | Initial feature extraction (Step 2) | Invoke `arn-spark-product-strategist` with all artifacts (including showcase, debate reports, visual grounding), then `arn-spark-ux-specialist` for behavior and component analysis |
438
+ | User asks "what am I missing?" | Invoke `arn-spark-product-strategist` with current list and journey definitions for gap analysis |
439
+ | User questions a priority or complexity | Invoke `arn-spark-product-strategist` for assessment |
440
+ | User asks to re-prioritize the whole list | Invoke `arn-spark-product-strategist` with user's prioritization criteria |
441
+ | User wants more detail on a feature's behavior | Invoke `arn-spark-ux-specialist` with the feature, its journey context, and showcase screenshots |
442
+ | User asks about feature boundaries (split/merge) | Invoke `arn-spark-ux-specialist` with the features in question and their journey mapping |
443
+ | User asks about debate findings for a feature | Read the relevant debate report files directly; no agent invocation needed |
444
+ | User asks about visual grounding for a feature | Check visual grounding directories and showcase-index.md; no agent invocation needed |
445
+ | User asks about components for a feature | Reference showcase-manifest.json (library) and screen-manifest.json (product-specific); no agent invocation needed |
446
+ | User makes direct changes | Record directly, no agent needed |
447
+ | User asks about technology choices | Defer: "Technology choices are in the architecture vision. This skill focuses on what features to build, not how." |
448
+ | User asks about implementation details | Defer: "Implementation details come during `/arn-code-feature-spec`. The backlog captures what to build and how it should behave." |
449
+ | arn-spark-ux-specialist unavailable | Proceed with `arn-spark-product-strategist` alone. Derive behavior descriptions and component mapping from journey definitions, prototype screenshots, and showcase outputs directly. Note the limitation. |
450
+
451
+ ## Error Handling
452
+
453
+ - **Only product concept available:** Extract from the product concept alone. Note that features will lack journey context and interaction behavior without prototype input. Behavior descriptions will be speculative. Components, showcase references, debate insights, and use case context will be "None".
454
+ - **No prototype results available:** Extract features from product concept and architecture vision. Note that UI behavior, component mapping, and journey mapping will be less detailed. Suggest running `/arn-spark-static-prototype` and `/arn-spark-clickable-prototype` first for richer feature context.
455
+ - **No product concept found and user declines to describe:** Cannot extract features from nothing. Suggest: "Run `/arn-spark-discover` first to define what you are building."
456
+ - **Product strategist returns unhelpful analysis:** Summarize the issue and continue the conversation directly. Extract features from the artifacts manually and present for user review.
457
+ - **arn-spark-ux-specialist unavailable:** Proceed with product strategist output. Derive UI behavior descriptions and component mapping from journey definitions, prototype screenshots, and showcase outputs directly. Gap resolution (Step 2b) will use product strategist only.
458
+ - **Gap resolution finds no gaps:** Skip Step 2b entirely — this is normal for simpler projects with good artifact coverage.
459
+ - **Experts disagree on gap solutions:** Present both perspectives to the user in Step 3 with the label "Unresolved gap" and let the user decide during refinement (Step 4).
460
+ - **Feature list is very large (20+ features):** Suggest the user focus on must-have and should-have for v1. Move nice-to-haves to the Deferred Items section. Check for features that should be merged.
461
+ - **Many XL features:** The feature list needs more decomposition. Work with the user to split XL features along journey boundaries before finalizing.
462
+ - **Writing a feature file fails:** Print the feature content in the conversation so the user can copy it. Continue with remaining features.
463
+ - **Features directory creation fails:** Try the parent directory. If that also fails, fall back to writing a single `feature-backlog.md` at the vision directory root (monolithic fallback).
464
+ - **Feature backlog already exists:**
465
+
466
+ Ask the user:
467
+
468
+ > **A feature backlog already exists at `[path]/features/`. How would you like to proceed?**
469
+ > 1. **Replace** — Fresh extraction, overwriting existing files
470
+ > 2. **Update** — Update specific features while preserving existing status and issue references
471
+
472
+ If **Update**, read the existing Feature Tracker to preserve status and issue references for features being kept.
473
+ - **Spike results show failed risks:** Features that depended on failed technologies should be flagged. Either adjust the feature to use the alternative approach from the spike, or defer the feature. Note the spike limitation in the feature's technical notes.
474
+ - **Journey definitions missing but prototype exists:** Derive journeys from the prototype screen navigation flow. The journey will be less detailed than one from the clickable prototype validation, but still provides useful structure.
475
+ - **User cancels mid-conversation:** If enough features have been discussed, offer to write a partial backlog. Otherwise, inform the user they can restart with `/arn-spark-feature-extract` at any time.
476
+ - **Showcase outputs not found:** Note in artifact inventory. Features will not have showcase references. Component mapping will rely on style brief Component Style section only.
477
+ - **Debate reports not found:** Note in artifact inventory. Features will not have debate insights.
478
+ - **Visual grounding directory not found or empty:** Note in artifact inventory. All features default to `Style brief only` visual target.
479
+ - **Screen manifest not found:** Note in artifact inventory. Product-specific component mapping will use screen scanning instead of manifest-based lookup.
480
+ - **Issue creation fails (GitHub):** Show the error and offer to retry the failed batch. Successfully created issues are preserved in the Feature Tracker. The user can re-run Step 7 for remaining features.
481
+ - **Issue creation fails (Jira):** Show the MCP error and offer to retry. Note which issues were successfully created.
482
+ - **Partial issue upload (user cancels mid-batch):** Save the Feature Tracker with whatever issues were created. Inform the user they can re-run the upload for remaining features.
483
+ - **Issue tracker not configured:** Skip Step 7 silently and proceed to Step 8.