@fredcallagan/arn-spark 5.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/plugin.json +9 -0
- package/.opencode/plugins/arn-spark.js +272 -0
- package/package.json +17 -0
- package/plugins/arn-spark/.claude-plugin/plugin.json +9 -0
- package/plugins/arn-spark/LICENSE +21 -0
- package/plugins/arn-spark/README.md +25 -0
- package/plugins/arn-spark/agents/arn-spark-brand-strategist.md +299 -0
- package/plugins/arn-spark/agents/arn-spark-dev-env-builder.md +228 -0
- package/plugins/arn-spark/agents/arn-spark-doctor.md +92 -0
- package/plugins/arn-spark/agents/arn-spark-forensic-investigator.md +181 -0
- package/plugins/arn-spark/agents/arn-spark-market-researcher.md +232 -0
- package/plugins/arn-spark/agents/arn-spark-marketing-pm.md +225 -0
- package/plugins/arn-spark/agents/arn-spark-persona-architect.md +259 -0
- package/plugins/arn-spark/agents/arn-spark-persona-impersonator.md +183 -0
- package/plugins/arn-spark/agents/arn-spark-product-strategist.md +191 -0
- package/plugins/arn-spark/agents/arn-spark-prototype-builder.md +497 -0
- package/plugins/arn-spark/agents/arn-spark-scaffolder.md +228 -0
- package/plugins/arn-spark/agents/arn-spark-spike-runner.md +209 -0
- package/plugins/arn-spark/agents/arn-spark-style-capture.md +196 -0
- package/plugins/arn-spark/agents/arn-spark-tech-evaluator.md +229 -0
- package/plugins/arn-spark/agents/arn-spark-ui-interactor.md +235 -0
- package/plugins/arn-spark/agents/arn-spark-use-case-writer.md +280 -0
- package/plugins/arn-spark/agents/arn-spark-ux-judge.md +215 -0
- package/plugins/arn-spark/agents/arn-spark-ux-specialist.md +200 -0
- package/plugins/arn-spark/agents/arn-spark-visual-sketcher.md +285 -0
- package/plugins/arn-spark/agents/arn-spark-visual-test-engineer.md +224 -0
- package/plugins/arn-spark/references/copilot-tools.md +62 -0
- package/plugins/arn-spark/skills/arn-brainstorming/SKILL.md +520 -0
- package/plugins/arn-spark/skills/arn-brainstorming/references/add-feature-flow.md +155 -0
- package/plugins/arn-spark/skills/arn-spark-arch-vision/SKILL.md +226 -0
- package/plugins/arn-spark/skills/arn-spark-arch-vision/references/architecture-vision-template.md +153 -0
- package/plugins/arn-spark/skills/arn-spark-arch-vision/references/technology-evaluation-guide.md +86 -0
- package/plugins/arn-spark/skills/arn-spark-clickable-prototype/SKILL.md +471 -0
- package/plugins/arn-spark/skills/arn-spark-clickable-prototype/references/clickable-prototype-criteria.md +65 -0
- package/plugins/arn-spark/skills/arn-spark-clickable-prototype/references/journey-template.md +62 -0
- package/plugins/arn-spark/skills/arn-spark-clickable-prototype/references/review-report-template.md +75 -0
- package/plugins/arn-spark/skills/arn-spark-clickable-prototype/references/showcase-capture-guide.md +213 -0
- package/plugins/arn-spark/skills/arn-spark-clickable-prototype-teams/SKILL.md +642 -0
- package/plugins/arn-spark/skills/arn-spark-clickable-prototype-teams/references/debate-protocol.md +242 -0
- package/plugins/arn-spark/skills/arn-spark-clickable-prototype-teams/references/debate-review-report-template.md +161 -0
- package/plugins/arn-spark/skills/arn-spark-clickable-prototype-teams/references/expert-interaction-review-template.md +152 -0
- package/plugins/arn-spark/skills/arn-spark-concept-review/SKILL.md +350 -0
- package/plugins/arn-spark/skills/arn-spark-concept-review/references/conflict-resolution-protocol.md +145 -0
- package/plugins/arn-spark/skills/arn-spark-concept-review/references/review-report-template.md +185 -0
- package/plugins/arn-spark/skills/arn-spark-dev-setup/SKILL.md +366 -0
- package/plugins/arn-spark/skills/arn-spark-dev-setup/references/dev-setup-checklist.md +84 -0
- package/plugins/arn-spark/skills/arn-spark-dev-setup/references/dev-setup-template.md +205 -0
- package/plugins/arn-spark/skills/arn-spark-discover/SKILL.md +303 -0
- package/plugins/arn-spark/skills/arn-spark-discover/references/competitive-landscape-template.md +87 -0
- package/plugins/arn-spark/skills/arn-spark-discover/references/discovery-questions.md +120 -0
- package/plugins/arn-spark/skills/arn-spark-discover/references/persona-profile-template.md +97 -0
- package/plugins/arn-spark/skills/arn-spark-discover/references/product-concept-template.md +253 -0
- package/plugins/arn-spark/skills/arn-spark-ensure-config/SKILL.md +23 -0
- package/plugins/arn-spark/skills/arn-spark-ensure-config/references/ensure-config.md +388 -0
- package/plugins/arn-spark/skills/arn-spark-ensure-config/references/step-0-fast-path.md +25 -0
- package/plugins/arn-spark/skills/arn-spark-ensure-config/scripts/cache-check.sh +127 -0
- package/plugins/arn-spark/skills/arn-spark-feature-extract/SKILL.md +483 -0
- package/plugins/arn-spark/skills/arn-spark-feature-extract/references/feature-backlog-template.md +176 -0
- package/plugins/arn-spark/skills/arn-spark-feature-extract/references/feature-entry-template.md +209 -0
- package/plugins/arn-spark/skills/arn-spark-help/SKILL.md +149 -0
- package/plugins/arn-spark/skills/arn-spark-help/references/pipeline-map.md +211 -0
- package/plugins/arn-spark/skills/arn-spark-init/SKILL.md +312 -0
- package/plugins/arn-spark/skills/arn-spark-init/references/agent-models-presets/all-opus.md +23 -0
- package/plugins/arn-spark/skills/arn-spark-init/references/agent-models-presets/balanced.md +23 -0
- package/plugins/arn-spark/skills/arn-spark-init/references/bkt-setup.md +55 -0
- package/plugins/arn-spark/skills/arn-spark-init/references/jira-mcp-setup.md +61 -0
- package/plugins/arn-spark/skills/arn-spark-init/references/platform-labels.md +97 -0
- package/plugins/arn-spark/skills/arn-spark-naming/SKILL.md +275 -0
- package/plugins/arn-spark/skills/arn-spark-naming/references/creative-brief-template.md +146 -0
- package/plugins/arn-spark/skills/arn-spark-naming/references/naming-methodology.md +237 -0
- package/plugins/arn-spark/skills/arn-spark-naming/references/naming-report-template.md +122 -0
- package/plugins/arn-spark/skills/arn-spark-naming/references/trademark-databases.md +88 -0
- package/plugins/arn-spark/skills/arn-spark-naming/references/whois-server-map.md +164 -0
- package/plugins/arn-spark/skills/arn-spark-naming/scripts/whois-check.js +502 -0
- package/plugins/arn-spark/skills/arn-spark-naming/scripts/whois-check.py +533 -0
- package/plugins/arn-spark/skills/arn-spark-prototype-lock/SKILL.md +260 -0
- package/plugins/arn-spark/skills/arn-spark-prototype-lock/references/lock-report-template.md +68 -0
- package/plugins/arn-spark/skills/arn-spark-prototype-lock/references/pretooluse-hook-template.json +35 -0
- package/plugins/arn-spark/skills/arn-spark-prototype-lock/references/prototype-guardrail-rules.md +38 -0
- package/plugins/arn-spark/skills/arn-spark-report/SKILL.md +144 -0
- package/plugins/arn-spark/skills/arn-spark-report/references/issue-template.md +81 -0
- package/plugins/arn-spark/skills/arn-spark-report/references/spark-knowledge-base.md +293 -0
- package/plugins/arn-spark/skills/arn-spark-scaffold/SKILL.md +239 -0
- package/plugins/arn-spark/skills/arn-spark-scaffold/references/scaffold-checklist.md +79 -0
- package/plugins/arn-spark/skills/arn-spark-scaffold/references/scaffold-summary-template.md +74 -0
- package/plugins/arn-spark/skills/arn-spark-spike/SKILL.md +209 -0
- package/plugins/arn-spark/skills/arn-spark-spike/references/spike-report-template.md +123 -0
- package/plugins/arn-spark/skills/arn-spark-static-prototype/SKILL.md +362 -0
- package/plugins/arn-spark/skills/arn-spark-static-prototype/references/review-report-template.md +65 -0
- package/plugins/arn-spark/skills/arn-spark-static-prototype/references/showcase-capture-guide.md +153 -0
- package/plugins/arn-spark/skills/arn-spark-static-prototype/references/static-prototype-criteria.md +54 -0
- package/plugins/arn-spark/skills/arn-spark-static-prototype-teams/SKILL.md +518 -0
- package/plugins/arn-spark/skills/arn-spark-static-prototype-teams/references/debate-protocol.md +230 -0
- package/plugins/arn-spark/skills/arn-spark-static-prototype-teams/references/debate-review-report-template.md +148 -0
- package/plugins/arn-spark/skills/arn-spark-static-prototype-teams/references/expert-visual-review-template.md +130 -0
- package/plugins/arn-spark/skills/arn-spark-stress-competitive/SKILL.md +166 -0
- package/plugins/arn-spark/skills/arn-spark-stress-competitive/references/competitive-report-template.md +139 -0
- package/plugins/arn-spark/skills/arn-spark-stress-competitive/references/gap-analysis-framework.md +111 -0
- package/plugins/arn-spark/skills/arn-spark-stress-interview/SKILL.md +257 -0
- package/plugins/arn-spark/skills/arn-spark-stress-interview/references/interview-protocol.md +140 -0
- package/plugins/arn-spark/skills/arn-spark-stress-interview/references/interview-report-template.md +165 -0
- package/plugins/arn-spark/skills/arn-spark-stress-interview/references/persona-casting-spec.md +138 -0
- package/plugins/arn-spark/skills/arn-spark-stress-premortem/SKILL.md +181 -0
- package/plugins/arn-spark/skills/arn-spark-stress-premortem/references/premortem-protocol.md +112 -0
- package/plugins/arn-spark/skills/arn-spark-stress-premortem/references/premortem-report-template.md +158 -0
- package/plugins/arn-spark/skills/arn-spark-stress-prfaq/SKILL.md +206 -0
- package/plugins/arn-spark/skills/arn-spark-stress-prfaq/references/prfaq-report-template.md +139 -0
- package/plugins/arn-spark/skills/arn-spark-stress-prfaq/references/prfaq-workflow.md +118 -0
- package/plugins/arn-spark/skills/arn-spark-style-explore/SKILL.md +281 -0
- package/plugins/arn-spark/skills/arn-spark-style-explore/references/style-brief-template.md +198 -0
- package/plugins/arn-spark/skills/arn-spark-use-cases/SKILL.md +359 -0
- package/plugins/arn-spark/skills/arn-spark-use-cases/references/expert-review-template.md +94 -0
- package/plugins/arn-spark/skills/arn-spark-use-cases/references/review-protocol.md +150 -0
- package/plugins/arn-spark/skills/arn-spark-use-cases/references/use-case-index-template.md +108 -0
- package/plugins/arn-spark/skills/arn-spark-use-cases/references/use-case-template.md +125 -0
- package/plugins/arn-spark/skills/arn-spark-use-cases-teams/SKILL.md +306 -0
- package/plugins/arn-spark/skills/arn-spark-use-cases-teams/references/debate-protocol.md +272 -0
- package/plugins/arn-spark/skills/arn-spark-use-cases-teams/references/review-report-template.md +112 -0
- package/plugins/arn-spark/skills/arn-spark-visual-readiness/SKILL.md +293 -0
- package/plugins/arn-spark/skills/arn-spark-visual-readiness/references/readiness-checklist.md +196 -0
- package/plugins/arn-spark/skills/arn-spark-visual-sketch/SKILL.md +376 -0
- package/plugins/arn-spark/skills/arn-spark-visual-sketch/references/aesthetic-philosophy.md +210 -0
- package/plugins/arn-spark/skills/arn-spark-visual-sketch/references/sketch-gallery-guide.md +282 -0
- package/plugins/arn-spark/skills/arn-spark-visual-sketch/references/visual-direction-template.md +174 -0
- package/plugins/arn-spark/skills/arn-spark-visual-strategy/SKILL.md +447 -0
- package/plugins/arn-spark/skills/arn-spark-visual-strategy/references/baseline-capture-script-template.js +89 -0
- package/plugins/arn-spark/skills/arn-spark-visual-strategy/references/journey-schema.md +375 -0
- package/plugins/arn-spark/skills/arn-spark-visual-strategy/references/spike-checklist.md +122 -0
- package/plugins/arn-spark/skills/arn-spark-visual-strategy/references/strategy-layers-guide.md +132 -0
- package/plugins/arn-spark/skills/arn-spark-visual-strategy/references/visual-strategy-template.md +141 -0
|
@@ -0,0 +1,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.
|