@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,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."
|
package/plugins/arn-spark/skills/arn-spark-arch-vision/references/architecture-vision-template.md
ADDED
|
@@ -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 |
|
package/plugins/arn-spark/skills/arn-spark-arch-vision/references/technology-evaluation-guide.md
ADDED
|
@@ -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?
|