@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,226 @@
1
+ ---
2
+ name: arn-spark-arch-vision
3
+ description: >-
4
+ This skill should be used when the user says "arch vision", "architecture
5
+ vision", "arn arch vision", "define the architecture", "tech stack",
6
+ "what technology should I use", "design the system", "system architecture",
7
+ "how should I build this", "technology choices", "choose technologies",
8
+ "pick a tech stack", or wants to explore
9
+ technology options and define the high-level architecture for a greenfield
10
+ project. Takes a product concept as input and produces an
11
+ architecture-vision.md document capturing the technology stack, system
12
+ design, protocols, packaging strategy, and known risks.
13
+ version: 1.0.0
14
+ ---
15
+
16
+ # Arness Arch Vision
17
+
18
+ Explore technology options and define the system architecture for a greenfield project through iterative conversation, aided by technology research from the `arn-spark-tech-evaluator` agent. This is a conversational skill that runs in normal conversation (NOT plan mode). The primary artifact is an **architecture vision document**.
19
+
20
+ This skill covers the HOW at a high level: what technologies to use and how the system is structured. It does not cover implementation details like file structure, specific APIs, or code patterns -- that is the plan's job (via `/arn-code-plan`).
21
+
22
+ ## Step 0: Ensure Configuration
23
+
24
+ Read `${CLAUDE_PLUGIN_ROOT}/skills/arn-spark-ensure-config/references/step-0-fast-path.md` and follow its instructions. This guarantees a user profile exists and `## Arness` is configured with Arness Spark fields before proceeding.
25
+
26
+ After Step 0 completes, extract from `## Arness`:
27
+ - Vision directory, Use cases directory, Prototypes directory, Spikes directory, Visual grounding directory, Reports directory
28
+
29
+ ## Prerequisites
30
+
31
+ A product concept document should exist. Check in order:
32
+
33
+ 1. Check the configured Vision directory for `product-concept.md`
34
+ 2. If not found, check `.arness/vision/product-concept.md` at the project root
35
+
36
+ **If a product concept is found:** Read it and proceed to Step 1.
37
+
38
+ **If no product concept is found:** Inform the user:
39
+
40
+ "No product concept document found. I recommend running `/arn-spark-discover` first to define what you are building. Alternatively, you can describe your product briefly and I will work with that."
41
+
42
+ If the user provides an inline description, proceed with that as the product context. Do not hard-block.
43
+
44
+ Determine the output directory:
45
+ 1. Use the Vision directory path from `## Arness` — this is the source of truth
46
+ 2. If the output directory does not exist, create it
47
+
48
+ ## Workflow
49
+
50
+ ### Step 1: Load Product Concept and Extract Requirements
51
+
52
+ Read the product concept document (or use the inline description). Extract two things:
53
+
54
+ **Product Pillars:** If the product concept contains a Product Pillars section, extract all pillars. These are non-negotiable qualities that every technology choice must serve or, at minimum, not compromise. Examples: "design fidelity" means the UI framework must support high polish; "zero configuration" means the packaging and distribution must be frictionless; "privacy-first" means the network layer must support end-to-end encryption natively.
55
+
56
+ **Technical requirements by category:**
57
+
58
+ - **Target platforms:** Operating systems, versions, deployment targets
59
+ - **Real-time requirements:** Latency needs, streaming, P2P, bidirectional communication
60
+ - **Security requirements:** Trust model, encryption, authentication mechanism
61
+ - **Scale requirements:** Number of participants, topology, data volume
62
+ - **UI requirements:** Complexity, animations, native feel, accessibility
63
+ - **Distribution requirements:** Installer type, app store, auto-updates
64
+ - **Business & operational constraints:** Business model (B2B/B2C/SaaS), multi-tenancy requirements (tenant count, isolation level), regulatory compliance (GDPR/HIPAA/SOC2), cost/budget limits, vendor constraints, licensing requirements, team experience, timeline pressures
65
+
66
+ Present both to the user:
67
+
68
+ "Based on your product concept, here are the **product pillars** that will guide technology decisions:
69
+ - **[Pillar]:** [what it means for architecture choices]
70
+ - ...
71
+
72
+ And the key **technical requirements:** [bullet list].
73
+
74
+ Does this capture everything correctly, or should I adjust anything before we explore technology options?"
75
+
76
+ If no pillars were found in the product concept (e.g., it was written before the pillars feature, or the user provided an inline description), ask: "I did not find product pillars in your concept. Are there non-negotiable qualities -- like performance, polish, simplicity, privacy -- that should influence technology choices?"
77
+
78
+ Wait for user confirmation or corrections before proceeding.
79
+
80
+ ### Step 2: Initial Technology Exploration
81
+
82
+ Read the user profile for expertise context. Check `.arness/profile.yaml`. Also check `.arness/preferences.yaml` for project-level team preferences.
83
+
84
+ Invoke the `arn-spark-tech-evaluator` 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:
85
+ - The product concept (or extracted requirements)
86
+ - The full set of technical requirements from Step 1
87
+ - The product pillars from Step 1
88
+ - Any technology preferences or constraints the user has mentioned
89
+ - User expertise context (structured blocks below)
90
+
91
+ Include in the agent invocation context:
92
+
93
+ ```
94
+ --- BEGIN USER EXPERTISE ---
95
+ [Read from .arness/profile.yaml]
96
+ Role: [role]
97
+ Experience: [development_experience]
98
+ Technology preferences: [technology_preferences]
99
+ Expertise-aware: [expertise_aware]
100
+ --- END USER EXPERTISE ---
101
+
102
+ --- BEGIN PROJECT PREFERENCES ---
103
+ [Read from .arness/preferences.yaml if it exists, otherwise omit this section]
104
+ --- END PROJECT PREFERENCES ---
105
+ ```
106
+
107
+ If `expertise_aware: true` and the user lists relevant technologies, add "Team has strong [X] experience" as an IMPORTANT (not CRITICAL) criterion in the comparison matrix. If `development_experience: learning`, add explanatory notes for complex technologies and flag steep learning curves. If `development_experience: non-technical`, favor the most mainstream, well-documented options. Apply the advisory pattern: present the technically optimal recommendation first, then a preference-aligned alternative with pros/cons if they differ.
108
+
109
+ The agent returns:
110
+ - A requirements summary table (with pillar-derived criteria marked)
111
+ - Candidate technologies per architectural layer with comparison matrices
112
+ - Pillar alignment assessment per recommendation
113
+ - Validation points and risk assessment
114
+ - An initial stack recommendation with rationale
115
+
116
+ Present the findings to the user as a conversation starter. Highlight:
117
+ - The recommended stack and why
118
+ - How the stack serves (or challenges) each product pillar
119
+ - Key trade-offs and alternatives considered
120
+ - Critical validation points that need early testing
121
+
122
+ Frame it as: "Here is my initial technology assessment. Let's discuss each layer and make sure we are aligned."
123
+
124
+ ### Step 3: Architecture Exploration (Iterative)
125
+
126
+ Enter a conversation loop. Cover these architectural categories (not necessarily in order -- follow the user's interests):
127
+
128
+ 1. **Application Framework** -- Desktop, web, mobile, cross-platform runtime
129
+ 2. **UI Framework** -- Rendering approach, component library, animation capability
130
+ 3. **Network & Communication** -- Protocols for discovery, signaling, data transport
131
+ 4. **Security & Identity** -- Cryptographic identity, trust establishment, encryption
132
+ 5. **Data Storage & Persistence** -- Config storage, state persistence, caching
133
+ 6. **Platform Integration** -- OS-specific features, permissions, system tray, device management
134
+ 7. **Packaging & Distribution** -- Installers, code signing, auto-updates, firewall rules
135
+ 8. **Known Risks** -- Technical risks with specific mitigations and fallbacks
136
+
137
+ **Within each round of conversation, decide how to respond:**
138
+
139
+ | Situation | Action |
140
+ |-----------|--------|
141
+ | User asks "which is better, X or Y?" | Load `${CLAUDE_PLUGIN_ROOT}/skills/arn-spark-arch-vision/references/technology-evaluation-guide.md` if not already loaded, then invoke `arn-spark-tech-evaluator` with head-to-head comparison request |
142
+ | User asks "will X work for our use case?" | Invoke `arn-spark-tech-evaluator` with validation question |
143
+ | User asks about a technology's current status | Invoke `arn-spark-tech-evaluator` (uses websearch to verify) |
144
+ | User wants a full recommendation for a layer | Invoke `arn-spark-tech-evaluator` with layer evaluation request |
145
+ | User makes a technology decision | Record directly, confirm the decision and note implications |
146
+ | User asks about code patterns or project structure | Defer: "Good question -- code patterns will be set up automatically when the project transitions to development. For now, let's focus on which technologies to use." |
147
+ | User asks a product/scope question | Defer: "That is a product question. We can revisit the product concept if needed, but let's finish the architecture first." |
148
+ | User seems done or conversation is circling | Proceed to readiness check |
149
+
150
+ **Tracking coverage:** Track which architectural layers have been decided. A layer is "covered" when the user has agreed to a specific technology or explicitly deferred the decision.
151
+
152
+ **Readiness check:** After covering the major layers (typically 4-8 rounds), check:
153
+
154
+ "I think we have the architecture mapped out. Here is a summary of the stack: [brief table].
155
+
156
+ **Pillar alignment:** [For each pillar, a one-line assessment of how the chosen stack serves it. Flag any pillar that is not fully supported — e.g., 'Design fidelity: Strong — Svelte + shadcn-svelte provides full component customization' or 'Zero configuration: At risk — code signing requires manual certificate setup on first build.']
157
+
158
+ Ready for me to write the architecture vision document, or do you want to explore any area further?"
159
+
160
+ ### Step 4: Write the Architecture Vision Document
161
+
162
+ When the user is ready:
163
+
164
+ 1. Read the template:
165
+ > Read `${CLAUDE_PLUGIN_ROOT}/skills/arn-spark-arch-vision/references/architecture-vision-template.md`
166
+
167
+ 2. Populate the template with all decisions from the conversation:
168
+ - Replace all bracketed placeholders with concrete content
169
+ - Build the Technology Stack table with every layer discussed
170
+ - Create an ASCII architecture diagram showing major components
171
+ - Adapt section names to match the product domain
172
+ - For Known Risks, include specific mitigations and fallbacks (not vague assurances)
173
+ - Map Future Architecture Considerations to items from the product concept's "Future Considerations"
174
+
175
+ 3. Write the document to the output directory as `architecture-vision.md`
176
+
177
+ 4. Present a summary to the user:
178
+ - List the document path
179
+ - Show the final technology stack table
180
+ - Highlight critical validation points that need early attention
181
+ - Note any decisions that were deferred or need further investigation
182
+
183
+ ### Step 5: Recommend Next Steps
184
+
185
+ After writing the document, inform the user:
186
+
187
+ "Architecture vision saved to `[path]/architecture-vision.md`.
188
+
189
+ You now have both product concept and architecture vision defined. Recommended next steps:
190
+
191
+ 1. **Start developing:** If you have the Arness Code plugin installed, run `/arn-planning` to begin the development pipeline. Arness auto-configures code patterns based on your architecture choices.
192
+ 2. **Scaffold the project:** Set up the development environment with your chosen stack
193
+ 3. **Validate critical risks:** [list the top 1-2 validation points from the document]
194
+ 4. **Start feature specs:** Run `/arn-code-feature-spec` to spec your first feature"
195
+
196
+ Adapt the next steps based on what makes sense for the project. If critical validation points were identified, emphasize those as the immediate priority.
197
+
198
+ ## Agent Invocation Guide
199
+
200
+ | Situation | Action |
201
+ |-----------|--------|
202
+ | Initial technology exploration (Step 2) | Invoke `arn-spark-tech-evaluator` with full requirements |
203
+ | "Which is better, X or Y?" | Invoke `arn-spark-tech-evaluator` with comparison request |
204
+ | "Will X work for our use case?" | Invoke `arn-spark-tech-evaluator` with validation question |
205
+ | "What is the current state of X?" | Invoke `arn-spark-tech-evaluator` (uses websearch) |
206
+ | Full layer recommendation needed | Invoke `arn-spark-tech-evaluator` with layer evaluation |
207
+ | User makes a technology decision | Record directly, no agent needed |
208
+ | Architecture pattern question | Answer directly from conversation context |
209
+ | Product or scope question | Defer to product concept or `/arn-spark-discover` |
210
+
211
+ ## Error Handling
212
+
213
+ - **User cancels mid-conversation:** Confirm cancellation. If enough decisions have been made for a partial document, offer to write it. Otherwise, inform the user they can restart with `/arn-spark-arch-vision` at any time.
214
+ - **arn-spark-tech-evaluator returns unhelpful response:** Summarize the issue briefly and continue the conversation directly. Try a more specific or narrower question on the next agent invocation.
215
+ - **websearch unavailable (for arn-spark-tech-evaluator):** The agent will fall back to its training data. Note to the user that technology recommendations have not been verified against current release status and suggest the user manually check version currency for critical choices.
216
+ - **Writing the document fails:** Print the full document content in the conversation so the user can copy it. Suggest checking file permissions or the output directory path.
217
+ - **Architecture vision already exists:**
218
+
219
+ Ask the user:
220
+
221
+ > **An architecture vision already exists at `[path]`. How would you like to proceed?**
222
+ > 1. **Replace** — Start a fresh architecture exploration
223
+ > 2. **Update** — Focus on specific sections that need changes
224
+
225
+ If **Update**, read the existing document and focus the conversation on the sections that need changes.
226
+ - **No product concept and user declines to describe product:** Cannot proceed meaningfully. Suggest: "Without understanding what we are building, technology choices would be arbitrary. Run `/arn-spark-discover` first to define the product, then come back to architecture."
@@ -0,0 +1,153 @@
1
+ # Architecture Vision Template
2
+
3
+ This template defines the structure for architecture vision documents written by the `arn-spark-arch-vision` skill. The document is saved to the project's vision directory as `architecture-vision.md`.
4
+
5
+ An architecture vision captures the HOW at a high level: technology stack, system design, protocols, platform integration, packaging, and known risks. It does not contain implementation details like code structure, file organization, or specific APIs -- that is the plan's job.
6
+
7
+ ## Instructions for arn-spark-arch-vision
8
+
9
+ When populating this template:
10
+
11
+ - Every section below MUST appear in the output, even if the content is brief
12
+ - Replace all bracketed placeholders with concrete content from the architecture exploration conversation
13
+ - The Technology Stack table should include every architectural layer discussed, with rationale for each choice
14
+ - The High-Level Architecture diagram should be ASCII art showing major components and their relationships
15
+ - Adapt section names to match the product domain (e.g., "Network Protocols" for a P2P app, "API Design" for a web service)
16
+ - Pillar Alignment must reference the product concept's Product Pillars section. If no pillars exist, omit this section. Every pillar must be assessed — do not skip pillars that are hard to evaluate
17
+ - Known Risks must include specific mitigations, not just "we'll figure it out"
18
+ - Future Architecture Considerations should map to the product concept's "Future Considerations" and explain what would change architecturally
19
+
20
+ ---
21
+
22
+ ## Template
23
+
24
+ ```markdown
25
+ # [Product Name] - Architecture Vision
26
+
27
+ ## Technology Stack
28
+
29
+ | Layer | Technology | Rationale |
30
+ |-------|-----------|-----------|
31
+ | [layer name] | **[technology]** | [Why this was chosen over alternatives. Reference specific project requirements.] |
32
+
33
+ ## Business Constraints & Trade-offs
34
+
35
+ [How the technology stack addresses identified business constraints. Cost implications at stated scale, compliance alignment, tenancy support, vendor dependencies, and licensing. Omit this section if no business constraints were captured in the product concept.]
36
+
37
+ | Constraint | How Stack Addresses It | Risk or Trade-off |
38
+ |-----------|----------------------|-------------------|
39
+ | [e.g., Multi-tenant, 500 clients] | [e.g., PostgreSQL with schema-per-tenant via pg_schema; PgBouncer for connection pooling] | [e.g., Operational complexity increases with tenant count; schema migrations must be tenant-aware] |
40
+ | [e.g., HIPAA compliance] | [e.g., AWS with BAA, RDS encryption at rest, CloudTrail audit logging] | [e.g., Limits provider choices to AWS/GCP/Azure with BAA] |
41
+ | [e.g., Budget: $500/mo] | [e.g., Self-hosted on single VPS with tenant density optimization] | [e.g., Scaling beyond 200 tenants requires infrastructure upgrade] |
42
+
43
+ [Remove example rows. Only include constraints from the product concept's Business Constraints section.]
44
+
45
+ ## Pillar Alignment
46
+
47
+ [For each product pillar from the product concept, assess how the chosen technology stack serves it. This section ensures that non-negotiable product qualities were not compromised by technology decisions.]
48
+
49
+ | Pillar | Status | How the Stack Serves It |
50
+ |--------|--------|------------------------|
51
+ | [Pillar name] | Supported / At Risk / Mitigated | [Specific explanation: which technologies serve this pillar and how. If at risk, explain why and what mitigation exists.] |
52
+
53
+ [If any pillar is "At Risk," elaborate on the specific concern and what can be done — e.g., a spike to validate, a configuration change, or an alternative technology to evaluate. A technology stack that conflicts with a product pillar should be reconsidered unless the conflict is acknowledged and accepted by the user.]
54
+
55
+ ## High-Level Architecture
56
+
57
+ [ASCII component diagram showing major components, their groupings, and relationships. Use box drawing characters for clarity. Show the boundary between backend/native and frontend/UI layers if applicable.]
58
+
59
+ ### [Backend / Native Layer Name]
60
+
61
+ [What runs at the native/system level. List responsibilities as bullets. Describe each major component briefly.]
62
+
63
+ ### [Frontend / UI Layer Name]
64
+
65
+ [What the user sees and interacts with. List responsibilities as bullets. Describe each major component briefly.]
66
+
67
+ ### Communication Between Layers
68
+
69
+ [How the backend and frontend communicate. IPC mechanism, event system, API pattern. Brief description of data flow direction.]
70
+
71
+ ## [Protocols / Communication Design]
72
+
73
+ [For each protocol or communication mechanism used by the product:]
74
+
75
+ ### [Protocol / Mechanism Name]
76
+
77
+ [Service definition, message types, data format. How devices/users discover each other, how connections are established, what data flows over each channel. Include protocol-specific details like ports, service types, message schemas.]
78
+
79
+ [Repeat for each protocol]
80
+
81
+ ## [Identity / Security Architecture]
82
+
83
+ ### Identity
84
+
85
+ [How entities (users, devices) are identified. What cryptographic primitives are used. Where identity information is stored.]
86
+
87
+ ### [Trust Establishment]
88
+
89
+ [How trust is established between entities. The pairing/authentication flow at a technical level.]
90
+
91
+ ### [Entity] States
92
+
93
+ [State machine for the primary entity. List states and what each means for the system's behavior.]
94
+
95
+ ## [Platform Integration / Device Management]
96
+
97
+ ### [Capability] Selection & Persistence
98
+
99
+ [How platform resources (audio devices, cameras, etc.) are enumerated, selected, and remembered across sessions.]
100
+
101
+ ### Hot-Plug Handling
102
+
103
+ [How the system handles devices being connected/disconnected during operation. Fallback behavior, notification strategy, auto-recovery.]
104
+
105
+ ## Packaging & Distribution
106
+
107
+ ### [Platform 1]
108
+
109
+ [Installer type, signing requirements, platform-specific setup (firewall rules, permissions), build environment requirements.]
110
+
111
+ ### [Platform 2]
112
+
113
+ [Same structure for each target platform.]
114
+
115
+ ### Storage Locations
116
+
117
+ [Where application data is stored on each platform. Config files, cached data, logs.]
118
+
119
+ ## Known Risks & Mitigations
120
+
121
+ [For each identified risk:]
122
+
123
+ ### [Risk Name]
124
+
125
+ [Description of the risk. What could go wrong and what impact it would have.]
126
+
127
+ **Mitigation:** [Specific strategy to address or reduce the risk.]
128
+
129
+ **Fallback:** [What to do if the mitigation is insufficient. Alternative approach.]
130
+
131
+ ## Future Architecture Considerations
132
+
133
+ [For each item in the product concept's "Future Considerations," briefly describe what architectural changes would be needed. This ensures v1's architecture does not accidentally block future work.]
134
+
135
+ - **[Future feature]:** [What would change architecturally. What v1 decisions accommodate or constrain this.]
136
+ ```
137
+
138
+ ---
139
+
140
+ ## Section Guidance
141
+
142
+ | Section | Source | Depth |
143
+ |---------|--------|-------|
144
+ | Technology Stack | arn-spark-tech-evaluator recommendations + user decisions | Table covering every layer, 1-sentence rationale each |
145
+ | Business Constraints & Trade-offs | Business Constraints section of product concept | Table mapping each constraint to stack support + risk. Concrete numbers (cost at scale, connection limits, tenant capacity). Omit if no business constraints captured. |
146
+ | Pillar Alignment | Product concept pillars + stack decisions | Table with one row per pillar, status + explanation |
147
+ | High-Level Architecture | Conversation synthesis | ASCII diagram + 2-3 subsections with bullet lists |
148
+ | Protocols / Communication | arn-spark-tech-evaluator analysis + conversation | 1 subsection per protocol, technical but not implementation-level |
149
+ | Identity / Security | Conversation exploration of trust model | Identity primitives, trust flow, state machine |
150
+ | Platform Integration | Conversation exploration of platform concerns | Device management, hot-plug, OS-specific behavior |
151
+ | Packaging & Distribution | arn-spark-tech-evaluator research + conversation | 1 subsection per platform, installer + signing + permissions |
152
+ | Known Risks & Mitigations | arn-spark-tech-evaluator validation points + conversation | Each risk: description + mitigation + fallback |
153
+ | Future Architecture Considerations | Product concept's "Future Considerations" | Bullet list mapping each future item to architectural impact |
@@ -0,0 +1,86 @@
1
+ # Technology Evaluation Guide
2
+
3
+ Framework for evaluating technology choices in greenfield projects. Used by the `arn-spark-arch-vision` skill and `arn-spark-tech-evaluator` agent to ensure consistent, requirements-driven evaluation.
4
+
5
+ ## Evaluation Criteria Categories
6
+
7
+ When evaluating technologies, draw criteria from these categories. Not all categories apply to every evaluation -- select those relevant to the project's requirements.
8
+
9
+ ### Core Criteria (almost always relevant)
10
+
11
+ - **Platform support:** Does it run on all target platforms? Native support or workarounds needed?
12
+ - **Maturity:** How long has it been production-ready? Stable API? Predictable release cadence?
13
+ - **Maintenance:** Active development? Responsive to issues? Backed by a company or strong community?
14
+ - **Documentation:** Quality of official docs? Tutorials, examples, migration guides available?
15
+ - **Community:** Size and activity of the community? Stack Overflow presence? Discord/forum activity?
16
+
17
+ ### Project-Specific Criteria (select based on requirements)
18
+
19
+ - **Real-time capability:** Latency characteristics, streaming support, P2P capability
20
+ - **Performance:** Startup time, memory usage, CPU overhead, bundle/install size
21
+ - **Security:** Built-in security features, encryption support, vulnerability track record
22
+ - **Cross-platform consistency:** Same behavior across platforms? Platform-specific quirks?
23
+ - **Integration:** How well does it work with other chosen technologies? Known compatibility issues?
24
+ - **Learning curve:** Complexity for the team? Familiarity with the paradigm?
25
+ - **Licensing:** Open source? Permissive or copyleft? Commercial use restrictions?
26
+ - **Extensibility:** Plugin ecosystem? Easy to customize or extend?
27
+
28
+ ## Comparison Matrix Format
29
+
30
+ For each decision point, build a comparison table:
31
+
32
+ ```
33
+ | Criteria | [Tech A] | [Tech B] | [Tech C] |
34
+ |----------|----------|----------|----------|
35
+ | [Requirement 1] * | Strong | Adequate | Weak |
36
+ | [Requirement 2] | Adequate | Strong | Strong |
37
+ | [Requirement 3] * | Strong | Strong | Weak |
38
+
39
+ * = Critical requirement (Weak rating here is a deal-breaker)
40
+ ```
41
+
42
+ ### Rating Definitions
43
+
44
+ - **Strong:** Fully meets the requirement with minimal effort. Well-documented, battle-tested for this use case.
45
+ - **Adequate:** Meets the requirement but with caveats. May need extra configuration, workarounds, or has minor limitations.
46
+ - **Weak:** Does not meet the requirement, or meeting it requires significant effort, workarounds, or unproven approaches.
47
+ - **N/A:** Criteria does not apply to this technology.
48
+
49
+ ### Guidelines
50
+
51
+ - Derive criteria rows from the project's actual requirements, not generic benchmarks
52
+ - Mark critical requirements with an asterisk -- a "Weak" on a critical requirement is a deal-breaker
53
+ - Include evidence for each rating (1-2 sentences). Avoid bare ratings without explanation.
54
+ - If a rating is uncertain, note it: "Adequate (needs validation)" or "Strong (based on docs, not verified)"
55
+
56
+ ## Validation Point Categories
57
+
58
+ After recommending technologies, categorize what must be validated:
59
+
60
+ ### Critical (validate before writing any production code)
61
+
62
+ Items where failure would require changing the technology choice entirely. Examples:
63
+ - "WebRTC getUserMedia works in Tauri's macOS WKWebView"
64
+ - "mDNS multicast is not blocked by default Windows Firewall"
65
+
66
+ ### Important (validate in the first sprint)
67
+
68
+ Items where failure would require workarounds but not a technology change. Examples:
69
+ - "Svelte transitions perform smoothly on older hardware"
70
+ - "WebSocket reconnection handles network flapping gracefully"
71
+
72
+ ### Monitor (keep an eye on during development)
73
+
74
+ Items that are low-risk but worth tracking. Examples:
75
+ - "Bundle size stays under target as dependencies are added"
76
+ - "Build times remain reasonable as codebase grows"
77
+
78
+ ## Stack Cohesion Assessment
79
+
80
+ When recommending a full stack, assess how well the technologies work together:
81
+
82
+ - **Integration patterns:** Are there established patterns for combining these technologies? (e.g., "Tauri + Svelte has official template support")
83
+ - **Community examples:** Are there real projects using this combination? Can we reference them?
84
+ - **Build tooling:** Do the build tools play well together? Any conflicting requirements?
85
+ - **Dependency overlap:** Do the technologies share dependencies that could cause version conflicts?
86
+ - **Knowledge transfer:** If a developer knows one part of the stack, does that help with other parts?