@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,118 @@
|
|
|
1
|
+
# PR/FAQ Workflow
|
|
2
|
+
|
|
3
|
+
Two-phase workflow for the Amazon PR/FAQ stress test method. This document is consumed by the `arn-spark-stress-prfaq` skill to orchestrate the marketing PM agent across draft and critique modes.
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
The PR/FAQ method forces a product concept to pass two tests:
|
|
8
|
+
|
|
9
|
+
1. **Can you tell a compelling story about this product?** If the press release is unconvincing, the product concept has messaging problems that likely trace to concept clarity problems.
|
|
10
|
+
2. **Does the story hold up under scrutiny?** If adversarial questions expose crack points, the product concept has structural weaknesses that need addressing before architecture commitment.
|
|
11
|
+
|
|
12
|
+
The two phases use **separate agent invocations** by design. Same-context self-critique tends toward rubber-stamping -- the critic unconsciously defends what the drafter wrote. Separate invocations force genuine adversarial evaluation.
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Phase 1: Draft Mode
|
|
17
|
+
|
|
18
|
+
### Goal
|
|
19
|
+
|
|
20
|
+
Produce a genuinely compelling press release and FAQ that represents the best possible public story of the product. The draft must be good enough that a real reader would want to try the product -- not a placeholder exercise with bracketed terms.
|
|
21
|
+
|
|
22
|
+
### Agent Invocation
|
|
23
|
+
|
|
24
|
+
Invoke the `arn-spark-marketing-pm` agent in **draft mode** via the Task tool, passing the model from `.arness/agent-models/spark.md` as the `model` parameter (see `plugins/arn-spark/skills/arn-spark-ensure-config/references/ensure-config.md` "Dispatch convention" for fallback). Context:
|
|
25
|
+
- Full product concept
|
|
26
|
+
- Product pillars (to anchor messaging)
|
|
27
|
+
- Operating mode: `draft`
|
|
28
|
+
|
|
29
|
+
### Expected Output
|
|
30
|
+
|
|
31
|
+
1. **Press Release (400-600 words)** following Amazon PR/FAQ format:
|
|
32
|
+
- Headline -- news-worthy, not a tagline
|
|
33
|
+
- Subheading -- who this is for and what it changes
|
|
34
|
+
- Problem paragraph -- specific, grounded in real scenarios
|
|
35
|
+
- Solution paragraph -- user experience focused, not technology focused
|
|
36
|
+
- Customer quote -- realistic, from a target persona, referencing a specific workflow scenario
|
|
37
|
+
- Product details paragraph -- features organized by value, not architecture
|
|
38
|
+
- Call to action -- specific next step
|
|
39
|
+
|
|
40
|
+
2. **Customer FAQ (5-8 entries)** -- questions a potential customer would ask:
|
|
41
|
+
- Practical usage (how it works in their workflow)
|
|
42
|
+
- Pricing and access
|
|
43
|
+
- Migration and onboarding
|
|
44
|
+
- Data handling and privacy
|
|
45
|
+
- Integration with existing tools
|
|
46
|
+
- Scope boundaries framed as focus, not limitation
|
|
47
|
+
|
|
48
|
+
3. **Internal FAQ (3-5 entries)** -- harder questions the team asks themselves:
|
|
49
|
+
- Why this will succeed where competitors failed
|
|
50
|
+
- Biggest technical risk
|
|
51
|
+
- Go-to-market strategy for first 1000 users
|
|
52
|
+
- Key assumption risk
|
|
53
|
+
- Success metrics for first 90 days
|
|
54
|
+
|
|
55
|
+
### Quality Check
|
|
56
|
+
|
|
57
|
+
Before proceeding to Phase 2, verify the draft is substantive:
|
|
58
|
+
- Press release should be 400-600 words, not a skeleton
|
|
59
|
+
- Customer FAQ answers should be concrete, not "it depends"
|
|
60
|
+
- Internal FAQ questions should be genuinely hard, not softballs
|
|
61
|
+
- Customer quote should sound like a real person, not a marketing team
|
|
62
|
+
|
|
63
|
+
If the draft is too thin or generic, retry with more specific context from the product concept -- highlight specific features, personas, and competitive positioning to ground the draft.
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## Phase 2: Critique Mode
|
|
68
|
+
|
|
69
|
+
### Goal
|
|
70
|
+
|
|
71
|
+
Adversarially evaluate the draft to find every place where the messaging makes a claim the product concept cannot fully support. The critique is not about copywriting quality -- it is about concept integrity.
|
|
72
|
+
|
|
73
|
+
### Agent Invocation
|
|
74
|
+
|
|
75
|
+
Invoke the `arn-spark-marketing-pm` agent in **critique mode** via the Task tool, passing the model from `.arness/agent-models/spark.md` as the `model` parameter (see `plugins/arn-spark/skills/arn-spark-ensure-config/references/ensure-config.md` "Dispatch convention" for fallback). Context:
|
|
76
|
+
- Full product concept (same as Phase 1)
|
|
77
|
+
- Product pillars (same as Phase 1)
|
|
78
|
+
- Operating mode: `critique`
|
|
79
|
+
- Draft output from Phase 1 (complete press release + both FAQs)
|
|
80
|
+
|
|
81
|
+
**Critical:** This MUST be a separate invocation from Phase 1. Do not pass Phase 1 context or conversation history. The critic has no memory of being the drafter.
|
|
82
|
+
|
|
83
|
+
### Expected Output
|
|
84
|
+
|
|
85
|
+
1. **Adversarial Questions (5-8)** -- questions the PR dodges:
|
|
86
|
+
- Each with: the question, why the PR dodges it, damage potential (High/Medium/Low)
|
|
87
|
+
- Focus on questions that expose concept weaknesses, not messaging weaknesses
|
|
88
|
+
|
|
89
|
+
2. **Crack Points (3-5)** -- gaps between messaging claims and concept substance:
|
|
90
|
+
- What the concept claims (from the PR/FAQ)
|
|
91
|
+
- What the question reveals (the gap or contradiction)
|
|
92
|
+
- What needs strengthening (actionable recommendation for the concept, not the copy)
|
|
93
|
+
|
|
94
|
+
3. **Recommended Concept Updates** -- standardized table derived from crack points
|
|
95
|
+
|
|
96
|
+
4. **Unresolved Questions** -- questions the critique raised that need real data to answer
|
|
97
|
+
|
|
98
|
+
### Quality Check
|
|
99
|
+
|
|
100
|
+
Verify the critique is genuinely adversarial:
|
|
101
|
+
- Adversarial questions should target concept substance, not word choice
|
|
102
|
+
- Crack points should identify real gaps, not cosmetic issues
|
|
103
|
+
- Damage potential ratings should be justified, not all "Medium"
|
|
104
|
+
- Recommendations should change the product concept, not the press release
|
|
105
|
+
|
|
106
|
+
If the critique is too soft, retry with explicit instruction: "The critique should make the product team uncomfortable. If no crack point makes someone say 'we need to address that before we build this,' the critique is too gentle."
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
## Rationale for Separate Invocations
|
|
111
|
+
|
|
112
|
+
The two-mode architecture exists because of a well-documented cognitive bias: **consistency bias in self-evaluation.** When the same agent drafts and critiques in a single context:
|
|
113
|
+
|
|
114
|
+
1. The critic has access to the drafter's reasoning and intent, making it harder to challenge assumptions that "obviously" made sense during drafting
|
|
115
|
+
2. The critic unconsciously defends claims it just wrote, finding reasons they work rather than reasons they fail
|
|
116
|
+
3. Questions tend to be answerable (because the critic already knows the answers) rather than genuinely probing
|
|
117
|
+
|
|
118
|
+
Separate invocations break this pattern by forcing the critic to evaluate the draft as an outsider -- the same way a real journalist, competitor, or skeptical customer would encounter the messaging.
|
|
@@ -0,0 +1,281 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: arn-spark-style-explore
|
|
3
|
+
description: >-
|
|
4
|
+
This skill should be used when the user says "style explore", "arn style",
|
|
5
|
+
"visual style", "explore styles", "UI style", "look and feel",
|
|
6
|
+
"design direction", "pick a style", "choose colors", "theme the app",
|
|
7
|
+
"visual direction", "style guide", or wants to explore and define the visual
|
|
8
|
+
design direction for their project through guided conversation, producing a
|
|
9
|
+
style brief document with implementable toolkit configuration.
|
|
10
|
+
version: 1.0.0
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Arness Style Explore
|
|
14
|
+
|
|
15
|
+
Explore visual style direction for the project through iterative conversation, aided by the `arn-spark-ux-specialist` agent (a greenfield agent in this plugin) for design guidance, optionally the `arn-spark-style-capture` agent for capturing reference website screenshots, and optionally the `arn-spark-prototype-builder` agent for sample screens. This is a conversational skill that runs in normal conversation (NOT plan mode). The primary artifact is a **style brief document** with implementable toolkit configuration.
|
|
16
|
+
|
|
17
|
+
This skill covers the visual identity of the product: colors, typography, spacing, component customization, and animation approach. It translates these into concrete configuration for the project's CSS framework and component library. It does not create full application screens -- that is `/arn-spark-static-prototype` and `/arn-spark-clickable-prototype`'s job.
|
|
18
|
+
|
|
19
|
+
## Prerequisites
|
|
20
|
+
|
|
21
|
+
A product concept document should exist for context on target users and product personality. Check in order:
|
|
22
|
+
|
|
23
|
+
1. Read the project's `arness.md` for a `## Arness` section. If found, check the configured Vision directory for `product-concept.md`
|
|
24
|
+
2. If no `## Arness` section found, check `.arness/vision/product-concept.md` at the project root
|
|
25
|
+
|
|
26
|
+
**If a product concept is found:** Read it to inform style recommendations.
|
|
27
|
+
|
|
28
|
+
**If no product concept is found:** Proceed with the user's description of the product. Style exploration does not hard-require a product concept.
|
|
29
|
+
|
|
30
|
+
**Visual direction (recommended):**
|
|
31
|
+
1. Check the configured Vision directory for `visual-direction.md`
|
|
32
|
+
2. If no `## Arness` section found, check `.arness/vision/visual-direction.md` at the project root
|
|
33
|
+
|
|
34
|
+
**If a visual direction is found:** Read it. The visual direction provides primary visual grounding from `/arn-spark-visual-sketch`: selected direction characteristics (color mood, typography feel, component style, layout density), approximate color palette with hex values, CSS variables used in the sketch, screenshot paths in the visual grounding `designs/` directory, **creative anchors** — tone commitment, differentiation anchor, and Design Thinking answers that capture the creative intent behind the direction, and **animation and motion context** — motion philosophy, key patterns, animation approach used, and whether animation is integral to the direction's identity. Use this as the starting point for style exploration rather than asking the user to describe a direction from scratch. The creative anchors are the direction's DNA — preserve them through token refinement rather than diluting them into generic defaults.
|
|
35
|
+
|
|
36
|
+
**If no visual direction is found:** Proceed normally with the user's verbal description. Visual direction is optional -- style exploration works without it.
|
|
37
|
+
|
|
38
|
+
The project should be scaffolded with a UI toolkit already configured (CSS framework and component library installed via `/arn-spark-scaffold`). Check:
|
|
39
|
+
|
|
40
|
+
1. Read the project's `package.json` to identify installed CSS framework and component library
|
|
41
|
+
2. Read the architecture vision for UI framework and toolkit choices
|
|
42
|
+
|
|
43
|
+
**If the project is scaffolded:** Use the installed toolkit for style configuration.
|
|
44
|
+
|
|
45
|
+
**If the project is NOT scaffolded:** Inform the user: "The project does not appear to be scaffolded yet. I can explore style direction conceptually, but the toolkit configuration section will be more useful after running `/arn-spark-scaffold`." Proceed with the exploration -- the style brief can be written without toolkit config and updated later.
|
|
46
|
+
|
|
47
|
+
Determine the output directory:
|
|
48
|
+
1. Read the project's `arness.md` and check for a `## Arness` section
|
|
49
|
+
2. If found, extract the configured Vision directory path — this is the source of truth
|
|
50
|
+
3. If no `## Arness` section exists or Arness Spark fields are missing, inform the user: "Arness Spark is not configured for this project yet. Run `/arn-brainstorming` to get started — it will set everything up automatically." Do not proceed without it.
|
|
51
|
+
4. If the output directory does not exist, create it
|
|
52
|
+
|
|
53
|
+
Determine the visual grounding directory:
|
|
54
|
+
1. Read the project's `arness.md` `## Arness` section
|
|
55
|
+
2. If found, extract the Visual grounding directory path
|
|
56
|
+
3. If not found, fall back to `.arness/visual-grounding`
|
|
57
|
+
4. Create the directory and subfolders (`references/`, `designs/`, `brand/`) if they do not exist
|
|
58
|
+
|
|
59
|
+
Check for design tool integration:
|
|
60
|
+
1. Read the `## Arness` section for `Figma` and `Canva` fields
|
|
61
|
+
2. Only offer Figma/Canva integration in Step 1 if the corresponding field is `yes`
|
|
62
|
+
3. If the field is `no` or missing, do not mention or attempt to use that design tool
|
|
63
|
+
|
|
64
|
+
## Workflow
|
|
65
|
+
|
|
66
|
+
### Step 1: Gather Context
|
|
67
|
+
|
|
68
|
+
Load available context:
|
|
69
|
+
|
|
70
|
+
- **Product concept:** Target users, core experience, product personality
|
|
71
|
+
- **Architecture vision:** UI framework, platform (desktop, web, mobile)
|
|
72
|
+
- **Scaffold results:** Installed CSS framework, component library, icon library
|
|
73
|
+
- **Visual direction (if found):** Selected direction characteristics, approximate color palette, CSS variables used in the sketch, screenshot paths, creative anchors (tone commitment, differentiation anchor, Design Thinking), animation context (motion philosophy, key patterns, animation approach, role)
|
|
74
|
+
|
|
75
|
+
Present the context to the user:
|
|
76
|
+
|
|
77
|
+
**If a visual direction exists:**
|
|
78
|
+
|
|
79
|
+
"Your project uses **[UI framework]** with **[CSS framework]** and **[component library]**. The product is [brief description from product concept, targeting audience].
|
|
80
|
+
|
|
81
|
+
A visual direction was established via `/arn-spark-visual-sketch`. The selected direction is: [summary from visual-direction.md — overall feel, color mood, typography, layout approach]. The creative anchors are: **Tone:** [tone commitment], **Differentiation:** [differentiation anchor].
|
|
82
|
+
|
|
83
|
+
[If screenshots exist:] Screenshots of the sketched screens are available at [paths].
|
|
84
|
+
|
|
85
|
+
I will use this as the starting point for the style brief."
|
|
86
|
+
|
|
87
|
+
Ask the user:
|
|
88
|
+
|
|
89
|
+
> **How would you like to proceed with this visual direction?**
|
|
90
|
+
> 1. **Proceed** — Build a style proposal based on this direction
|
|
91
|
+
> 2. **Adjust** — Refine specific aspects before proceeding
|
|
92
|
+
> 3. **Different direction** — Take it in a completely different direction
|
|
93
|
+
|
|
94
|
+
**If no visual direction exists:**
|
|
95
|
+
|
|
96
|
+
"Your project uses **[UI framework]** with **[CSS framework]** and **[component library]**. The product is [brief description from product concept, targeting audience].
|
|
97
|
+
|
|
98
|
+
Adapt the context summary based on what was found. If the project is not scaffolded, omit toolkit details and present only what is known (e.g., product description and platform context).
|
|
99
|
+
|
|
100
|
+
Describe the visual feel you want. You can:
|
|
101
|
+
- **Use words:** minimal, dark, playful, professional, etc.
|
|
102
|
+
- **Reference other apps:** 'I like how Linear looks' or 'something like Discord'
|
|
103
|
+
- **Share URLs:** Paste a URL and I can capture a screenshot to analyze the design
|
|
104
|
+
- **Share screenshots:** Paste or reference image files
|
|
105
|
+
|
|
106
|
+
Some starting points if you are not sure:
|
|
107
|
+
- **Minimal and clean** -- lots of whitespace, muted colors, thin borders
|
|
108
|
+
- **Dark with neon accents** -- dark backgrounds, vibrant accent colors, tech feel
|
|
109
|
+
- **Warm and approachable** -- rounded corners, warm colors, friendly tone
|
|
110
|
+
- **Professional and dense** -- compact layout, neutral palette, data-focused
|
|
111
|
+
|
|
112
|
+
Or describe your own direction."
|
|
113
|
+
|
|
114
|
+
After the user describes their initial direction, ask about visual assets:
|
|
115
|
+
|
|
116
|
+
Ask the user:
|
|
117
|
+
|
|
118
|
+
**"Do you have any visual assets to guide the style direction?"**
|
|
119
|
+
|
|
120
|
+
Options:
|
|
121
|
+
1. **Reference images** — Screenshots or URLs of apps/sites you admire (inspirational)
|
|
122
|
+
2. **Design mockups** — Figma, Canva, or exported screen designs (specification)
|
|
123
|
+
3. **Brand assets** — Logos, brand guidelines, color specs (constraints)
|
|
124
|
+
4. **None** — We will work from verbal descriptions
|
|
125
|
+
|
|
126
|
+
**Handle each asset type:**
|
|
127
|
+
|
|
128
|
+
| User has | Action |
|
|
129
|
+
|----------|--------|
|
|
130
|
+
| Reference URLs | Invoke `arn-spark-style-capture` → save to `[visual-grounding]/references/` |
|
|
131
|
+
| Reference image files | User provides paths → copy to `[visual-grounding]/references/` |
|
|
132
|
+
| Figma designs (Figma enabled in config) | Use Figma MCP to read selected designs, export screenshots → save to `[visual-grounding]/designs/` |
|
|
133
|
+
| Figma designs (Figma not enabled) | Do not offer Figma integration. If user mentions Figma, suggest re-running `/arn-spark-init` to enable it. User can export as PNG/PDF manually → save to `[visual-grounding]/designs/` |
|
|
134
|
+
| Canva designs (Canva enabled in config) | Use Canva MCP to export designs → save to `[visual-grounding]/designs/` |
|
|
135
|
+
| Canva designs (Canva not enabled) | Same as Figma — suggest re-running init or manual export → save to `[visual-grounding]/designs/` |
|
|
136
|
+
| Hand-drawn wireframes | User provides photos → save to `[visual-grounding]/designs/` |
|
|
137
|
+
| Brand assets (logos, guidelines) | User provides files → save to `[visual-grounding]/brand/` |
|
|
138
|
+
|
|
139
|
+
**If the user provides one or more URLs:** Invoke the `arn-spark-style-capture` 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), with the URLs and save screenshots to the visual grounding directory (under `references/`). If the agent reports Playwright is not available, inform the user:
|
|
140
|
+
|
|
141
|
+
"Playwright is not installed in this environment, so I cannot automatically capture that URL. You can either:
|
|
142
|
+
1. Install Playwright (`npm install -D playwright && npx playwright install chromium`) and try again
|
|
143
|
+
2. Take a screenshot yourself and share it
|
|
144
|
+
3. Describe what you like about the referenced site and I will work from that"
|
|
145
|
+
|
|
146
|
+
If capture succeeds, use the agent's extracted design characteristics (colors, typography, layout, spacing) as input to the `arn-spark-ux-specialist` alongside the user's verbal description.
|
|
147
|
+
|
|
148
|
+
### Step 2: Initial Style Proposal
|
|
149
|
+
|
|
150
|
+
Invoke the `arn-spark-ux-specialist` agent (greenfield 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:
|
|
151
|
+
|
|
152
|
+
- The user's style description or preferences
|
|
153
|
+
- Product concept context (target users, product personality)
|
|
154
|
+
- UI toolkit context (CSS framework, component library)
|
|
155
|
+
- Platform context (desktop app, web app, mobile)
|
|
156
|
+
- **Visual direction context (if found):** Include the visual direction's characteristics, approximate color palette, CSS variables, screenshot paths, and creative anchors (tone commitment, differentiation anchor, Design Thinking answers). Instruct the specialist: "A visual direction has been established via /arn-spark-visual-sketch. Use it as the primary input for the style proposal. The screenshots show the selected visual approach applied to real product screens. The tone commitment is '[tone]' and the differentiation anchor is '[differentiation]' — these are the creative DNA of the direction. Translate the direction into precise design tokens while preserving its character. Every token decision should support the tone commitment and keep the differentiation anchor intact. Do not flatten distinctive choices into generic defaults during refinement."
|
|
157
|
+
- **Visual direction animation context (if found):** If the visual direction includes an Animation & Motion section, pass it to the specialist: "The visual direction includes animation context: [motion philosophy], with key patterns [patterns], using [animation approach]. Animation is [integral/decorative/none] to the direction. Build the style brief's Animation and Motion section grounded in these choices — do not reinvent the motion approach from scratch. Describe animation in platform-agnostic intent language."
|
|
158
|
+
- **All available visual grounding assets.** Provide images from all three subfolders with category context so the specialist knows the intent:
|
|
159
|
+
- **References** (`[visual-grounding]/references/`): "These reference images are inspirational direction — they inform the overall feel but are not pixel-level targets."
|
|
160
|
+
- **Designs** (`[visual-grounding]/designs/`): "These design mockups are specification targets — match them for layout, spacing, and proportions where applicable."
|
|
161
|
+
- **Brand** (`[visual-grounding]/brand/`): "These brand assets are fixed constraints — logos, colors, and typefaces must be incorporated as-is."
|
|
162
|
+
|
|
163
|
+
Visual references provide nuances that text descriptions alone cannot convey — the UX specialist should see the actual images alongside the extracted design characteristics.
|
|
164
|
+
|
|
165
|
+
Request that the agent provide recommendations covering: color palette (with hex values for all roles), typography (specific font families and sizes), spacing and sizing tokens, border radius values, component style characteristics, and animation approach. These map directly to the style brief template sections.
|
|
166
|
+
|
|
167
|
+
The agent returns design recommendations:
|
|
168
|
+
|
|
169
|
+
- Color palette with specific values
|
|
170
|
+
- Typography recommendations
|
|
171
|
+
- Spacing and sizing tokens
|
|
172
|
+
- Component customization approach for the chosen library
|
|
173
|
+
- Animation and motion philosophy
|
|
174
|
+
|
|
175
|
+
Present the proposal to the user. Frame it as a starting point:
|
|
176
|
+
|
|
177
|
+
"Here is an initial style direction based on your description:
|
|
178
|
+
|
|
179
|
+
**Colors:** [Brief summary with primary, background, and accent colors]
|
|
180
|
+
**Typography:** [Font families and general sizing]
|
|
181
|
+
**Components:** [Overall feel -- rounded, sharp, shadows, borders]
|
|
182
|
+
**Animation:** [Approach -- minimal, moderate, expressive]
|
|
183
|
+
|
|
184
|
+
What do you think? We can adjust colors, change the overall feel, or try a completely different direction."
|
|
185
|
+
|
|
186
|
+
### Step 3: Iterative Refinement
|
|
187
|
+
|
|
188
|
+
Enter a conversation loop. The user may want to:
|
|
189
|
+
|
|
190
|
+
| User Request | Action |
|
|
191
|
+
|-------------|--------|
|
|
192
|
+
| "Make it darker" / "warmer" / "more playful" | Re-invoke `arn-spark-ux-specialist` with adjusted direction |
|
|
193
|
+
| "I like the colors but change the typography" | Re-invoke `arn-spark-ux-specialist` with partial update request |
|
|
194
|
+
| "Show me what it looks like" | Invoke `arn-spark-prototype-builder` to create 1-2 sample screens |
|
|
195
|
+
| "Compare two directions" | Invoke `arn-spark-ux-specialist` for both, present side-by-side |
|
|
196
|
+
| "Use [specific color/font]" | Record directly, adjust the proposal |
|
|
197
|
+
| "What would [reference app] style look like?" | Invoke `arn-spark-ux-specialist` with the reference for interpretation |
|
|
198
|
+
| User provides a URL to reference | Invoke `arn-spark-style-capture` with the URL, save to `[visual-grounding]/references/`. Feed results to `arn-spark-ux-specialist`. |
|
|
199
|
+
| User provides multiple URLs to compare | Invoke `arn-spark-style-capture` with all URLs, save to `[visual-grounding]/references/`. Present the comparison and feed results to `arn-spark-ux-specialist`. |
|
|
200
|
+
| User provides design mockups (Figma/Canva/manual) | Save to `[visual-grounding]/designs/`. Feed to `arn-spark-ux-specialist` as specification targets. |
|
|
201
|
+
| User provides brand assets | Save to `[visual-grounding]/brand/`. Feed to `arn-spark-ux-specialist` as fixed constraints. |
|
|
202
|
+
| User is happy with the direction | Proceed to Step 4 |
|
|
203
|
+
|
|
204
|
+
**Sample screens (optional):** If the user wants to see the style applied, invoke the `arn-spark-prototype-builder` agent to create 1-2 representative screens (e.g., the main screen and a settings screen). These use the actual component library with the proposed style configuration. If visual grounding assets are available, include them so the builder can visually match the intended direction — especially design mockups (specification targets) and brand assets (fixed constraints).
|
|
205
|
+
|
|
206
|
+
**Readiness check:** When the style direction seems settled:
|
|
207
|
+
|
|
208
|
+
"I think we have a solid visual direction. Here is a summary:
|
|
209
|
+
|
|
210
|
+
**Primary:** [color] | **Background:** [color] | **Accent:** [color]
|
|
211
|
+
**Font:** [family] | **Corners:** [radius] | **Animation:** [approach]
|
|
212
|
+
|
|
213
|
+
Ask the user:
|
|
214
|
+
|
|
215
|
+
> **Ready to write the style brief?**
|
|
216
|
+
> 1. **Yes, write it** — Generate the style brief document
|
|
217
|
+
> 2. **Keep adjusting** — I want to refine more before writing"
|
|
218
|
+
|
|
219
|
+
### Step 4: Write the Style Brief
|
|
220
|
+
|
|
221
|
+
When the user is ready:
|
|
222
|
+
|
|
223
|
+
1. Read the template:
|
|
224
|
+
> Read `${CLAUDE_PLUGIN_ROOT}/skills/arn-spark-style-explore/references/style-brief-template.md`
|
|
225
|
+
|
|
226
|
+
2. Populate the template with all decisions from the conversation:
|
|
227
|
+
- Specific color values (hex/HSL) for all palette roles
|
|
228
|
+
- Typography with actual font families and sizes
|
|
229
|
+
- Spacing and sizing tokens
|
|
230
|
+
- Component style characteristics
|
|
231
|
+
- Animation approach and specific animations if discussed
|
|
232
|
+
- **Toolkit Configuration section:** Translate all design tokens into the project's CSS framework config (e.g., Tailwind theme extensions) and component library theme (e.g., shadcn CSS custom properties)
|
|
233
|
+
|
|
234
|
+
3. Write the document to the output directory as `style-brief.md`
|
|
235
|
+
|
|
236
|
+
4. Present a summary:
|
|
237
|
+
- Document path
|
|
238
|
+
- Color palette overview
|
|
239
|
+
- Font choices
|
|
240
|
+
- Note whether toolkit configuration was included or deferred
|
|
241
|
+
|
|
242
|
+
### Step 5: Recommend Next Steps
|
|
243
|
+
|
|
244
|
+
"Style brief saved to `[path]/style-brief.md`.
|
|
245
|
+
|
|
246
|
+
Recommended next steps:
|
|
247
|
+
1. **Build static prototype:** Run `/arn-spark-static-prototype` to validate visual fidelity with component showcases
|
|
248
|
+
2. **Apply toolkit config:** The style brief includes [CSS framework] and [component library] configuration that will be applied during prototyping
|
|
249
|
+
|
|
250
|
+
The prototype will use the style brief to ensure all screens share a consistent visual language."
|
|
251
|
+
|
|
252
|
+
## Agent Invocation Guide
|
|
253
|
+
|
|
254
|
+
| Situation | Action |
|
|
255
|
+
|-----------|--------|
|
|
256
|
+
| User provides reference URL(s) (Step 1 or Step 3) | Invoke `arn-spark-style-capture` with URLs, save to `[visual-grounding]/references/`. If Playwright unavailable, fall back to user-provided screenshots or verbal description. |
|
|
257
|
+
| User provides design mockups or brand assets | Save to `[visual-grounding]/designs/` or `[visual-grounding]/brand/` respectively. For Figma/Canva exports, use the MCP only if the corresponding flag is `yes` in `## Arness` config. |
|
|
258
|
+
| Initial style proposal (Step 2) | Invoke `arn-spark-ux-specialist` with user's direction + product context + toolkit context + ALL visual grounding assets (with category context: references=inspirational, designs=specification, brand=constraints) |
|
|
259
|
+
| User wants style adjustments | Invoke `arn-spark-ux-specialist` with updated direction + all visual grounding assets. Always provide images alongside text when they exist — visual nuances matter. |
|
|
260
|
+
| User wants to see sample screens | Invoke `arn-spark-prototype-builder` with: screen list (1-2 screens), navigation flow (minimal), style brief (current direction), UI framework + component library, project root path, and visual grounding assets (especially design mockups and brand assets) |
|
|
261
|
+
| User asks which CSS framework to use | Defer: "CSS framework is chosen during `/arn-spark-scaffold`. If you want to change it, re-run scaffold." |
|
|
262
|
+
| User asks about specific component APIs | Defer: "Component implementation details come during feature development. The style brief defines how components should look." |
|
|
263
|
+
| User asks about features or architecture | Defer to the appropriate skill |
|
|
264
|
+
|
|
265
|
+
## Error Handling
|
|
266
|
+
|
|
267
|
+
- **No product concept found:** Proceed with the user's verbal description. The style can be explored without a formal product concept.
|
|
268
|
+
- **Project not scaffolded:** Explore style conceptually. Write the style brief without the Toolkit Configuration section, note it for later.
|
|
269
|
+
- **UX specialist returns unhelpful response:** Summarize the issue and continue the conversation directly. Try a more specific request on the next invocation.
|
|
270
|
+
- **User cannot describe a style direction:** Offer the curated archetypes from Step 1. If still stuck, ask: "What apps do you use and enjoy the look of?" and use those as reference points.
|
|
271
|
+
- **Writing the document fails:** Print the full content in the conversation so the user can copy it.
|
|
272
|
+
- **Style brief already exists:**
|
|
273
|
+
|
|
274
|
+
Ask the user:
|
|
275
|
+
|
|
276
|
+
> **A style brief already exists at `[path]`. How would you like to proceed?**
|
|
277
|
+
> 1. **Replace** — Start fresh with a new style brief
|
|
278
|
+
> 2. **Update** — Update specific sections of the existing brief
|
|
279
|
+
- **Sample screen build fails:** Note the issue, continue with the style exploration. The prototype build is optional during style exploration.
|
|
280
|
+
- **Playwright not available for URL capture:** Inform the user and offer alternatives: install Playwright, provide manual screenshots, or describe the reference verbally. Do not block the style exploration -- URL capture is optional.
|
|
281
|
+
- **URL capture fails (timeout, auth wall):** Report which URL failed. Ask the user to provide a manual screenshot or describe what they like about the site. Continue with the exploration.
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
# Style Brief Template
|
|
2
|
+
|
|
3
|
+
This template defines the structure for visual style documents written by the `arn-spark-style-explore` skill. The document is saved to the project's vision directory as `style-brief.md`.
|
|
4
|
+
|
|
5
|
+
A style brief captures the visual design direction for the project: colors, typography, spacing, component customization, and toolkit-specific configuration. It serves as the visual contract between design decisions and implementation, ensuring the prototype and production code share the same visual language.
|
|
6
|
+
|
|
7
|
+
## Instructions for arn-spark-style-explore
|
|
8
|
+
|
|
9
|
+
When populating this template:
|
|
10
|
+
|
|
11
|
+
- Replace all bracketed placeholders with concrete values from the style exploration conversation
|
|
12
|
+
- Color values must be specific (hex, HSL, or RGB) -- not vague descriptions like "blue"
|
|
13
|
+
- Typography must specify actual font families, not categories like "sans-serif"
|
|
14
|
+
- The Toolkit Configuration section is critical -- it translates the design into implementable code
|
|
15
|
+
- If using a component library (shadcn, Skeleton UI, etc.), include the library-specific theme configuration
|
|
16
|
+
- Dark/light mode: specify both palettes if the project supports both, or note that only one mode is in scope for v1
|
|
17
|
+
- Visual grounding assets (references, designs, brand) are optional but helpful for communicating intent and enabling downstream fidelity comparison
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## Template
|
|
22
|
+
|
|
23
|
+
```markdown
|
|
24
|
+
# [Product Name] - Style Brief
|
|
25
|
+
|
|
26
|
+
## Design Direction
|
|
27
|
+
|
|
28
|
+
[2-3 sentences describing the overall visual feel. Reference the target audience and product personality from the product concept. E.g., "Warm and approachable, reflecting a tool used between family members and close friends. Clean but not clinical -- soft edges, gentle shadows, and a color palette that feels inviting rather than corporate."]
|
|
29
|
+
|
|
30
|
+
## Color Palette
|
|
31
|
+
|
|
32
|
+
### Primary Colors
|
|
33
|
+
|
|
34
|
+
| Role | Color | Hex | Usage |
|
|
35
|
+
|------|-------|-----|-------|
|
|
36
|
+
| Primary | [Name] | [#hex] | [Primary actions, key UI elements] |
|
|
37
|
+
| Primary Hover | [Name] | [#hex] | [Hover/active state for primary] |
|
|
38
|
+
| Primary Foreground | [Name] | [#hex] | [Text on primary background] |
|
|
39
|
+
|
|
40
|
+
### Neutral Colors
|
|
41
|
+
|
|
42
|
+
| Role | Color | Hex | Usage |
|
|
43
|
+
|------|-------|-----|-------|
|
|
44
|
+
| Background | [Name] | [#hex] | [Page background] |
|
|
45
|
+
| Surface | [Name] | [#hex] | [Card/panel backgrounds] |
|
|
46
|
+
| Border | [Name] | [#hex] | [Borders, dividers] |
|
|
47
|
+
| Text Primary | [Name] | [#hex] | [Main body text] |
|
|
48
|
+
| Text Secondary | [Name] | [#hex] | [Secondary/muted text] |
|
|
49
|
+
| Text Disabled | [Name] | [#hex] | [Disabled state text] |
|
|
50
|
+
|
|
51
|
+
### Semantic Colors
|
|
52
|
+
|
|
53
|
+
| Role | Color | Hex | Usage |
|
|
54
|
+
|------|-------|-----|-------|
|
|
55
|
+
| Success | [Name] | [#hex] | [Connected, active, confirmed] |
|
|
56
|
+
| Warning | [Name] | [#hex] | [Attention needed, degraded state] |
|
|
57
|
+
| Error | [Name] | [#hex] | [Disconnected, failed, destructive] |
|
|
58
|
+
| Info | [Name] | [#hex] | [Informational, neutral status] |
|
|
59
|
+
|
|
60
|
+
### Dark Mode (if applicable)
|
|
61
|
+
|
|
62
|
+
[If dark mode is in scope: provide the equivalent palette for dark mode. If not: note "Dark mode deferred to post-v1."]
|
|
63
|
+
|
|
64
|
+
## Typography
|
|
65
|
+
|
|
66
|
+
| Role | Font Family | Weight | Size | Line Height |
|
|
67
|
+
|------|-------------|--------|------|-------------|
|
|
68
|
+
| Heading 1 | [Family] | [Weight] | [Size] | [Line height] |
|
|
69
|
+
| Heading 2 | [Family] | [Weight] | [Size] | [Line height] |
|
|
70
|
+
| Heading 3 | [Family] | [Weight] | [Size] | [Line height] |
|
|
71
|
+
| Body | [Family] | [Weight] | [Size] | [Line height] |
|
|
72
|
+
| Body Small | [Family] | [Weight] | [Size] | [Line height] |
|
|
73
|
+
| Caption | [Family] | [Weight] | [Size] | [Line height] |
|
|
74
|
+
| Monospace | [Family] | [Weight] | [Size] | [Line height] |
|
|
75
|
+
|
|
76
|
+
**Font loading:** [How fonts are loaded -- Google Fonts, local files, system fonts, etc.]
|
|
77
|
+
|
|
78
|
+
## Spacing and Sizing
|
|
79
|
+
|
|
80
|
+
| Token | Value | Usage |
|
|
81
|
+
|-------|-------|-------|
|
|
82
|
+
| spacing-xs | [value] | [Tight gaps, icon padding] |
|
|
83
|
+
| spacing-sm | [value] | [Inner padding, form gaps] |
|
|
84
|
+
| spacing-md | [value] | [Section padding, card padding] |
|
|
85
|
+
| spacing-lg | [value] | [Section margins, major gaps] |
|
|
86
|
+
| spacing-xl | [value] | [Page margins, hero spacing] |
|
|
87
|
+
|
|
88
|
+
### Border Radius
|
|
89
|
+
|
|
90
|
+
| Token | Value | Usage |
|
|
91
|
+
|-------|-------|-------|
|
|
92
|
+
| radius-sm | [value] | [Badges, small elements] |
|
|
93
|
+
| radius-md | [value] | [Buttons, inputs, cards] |
|
|
94
|
+
| radius-lg | [value] | [Modals, large containers] |
|
|
95
|
+
| radius-full | 9999px | [Avatars, circular elements] |
|
|
96
|
+
|
|
97
|
+
## Component Style
|
|
98
|
+
|
|
99
|
+
### General Characteristics
|
|
100
|
+
|
|
101
|
+
- **Edges:** [Rounded / Sharp / Mixed -- describe the approach]
|
|
102
|
+
- **Shadows:** [None / Subtle / Prominent -- describe the approach and when shadows are used]
|
|
103
|
+
- **Borders:** [Visible / Minimal / None -- describe when borders appear]
|
|
104
|
+
- **Density:** [Compact / Comfortable / Spacious -- describe the information density]
|
|
105
|
+
|
|
106
|
+
### Buttons
|
|
107
|
+
|
|
108
|
+
- **Primary:** [Description: fill color, text color, hover behavior, border radius]
|
|
109
|
+
- **Secondary:** [Description: outline/ghost style, hover behavior]
|
|
110
|
+
- **Destructive:** [Description: color treatment for destructive actions]
|
|
111
|
+
- **Disabled:** [Description: opacity, cursor, color changes]
|
|
112
|
+
|
|
113
|
+
### Inputs
|
|
114
|
+
|
|
115
|
+
- **Default:** [Description: border style, background, focus ring, placeholder color]
|
|
116
|
+
- **Focus:** [Description: ring color, border change, animation]
|
|
117
|
+
- **Error:** [Description: border color, helper text color]
|
|
118
|
+
|
|
119
|
+
### Cards / Panels
|
|
120
|
+
|
|
121
|
+
- **Background:** [Surface color, border, shadow, radius]
|
|
122
|
+
- **Hover:** [If interactive: hover effect description]
|
|
123
|
+
|
|
124
|
+
## Animation and Motion
|
|
125
|
+
|
|
126
|
+
- **Approach:** [Minimal / Moderate / Expressive -- describe the philosophy]
|
|
127
|
+
- **Transitions:** [Duration and easing for standard transitions, e.g., "150ms ease-out for hover, 200ms ease-in-out for layout changes"]
|
|
128
|
+
- **Specific animations:** [List any product-specific animations, e.g., "Pulse animation on incoming knock", "Fade-in for new device discovery"]
|
|
129
|
+
|
|
130
|
+
## Toolkit Configuration
|
|
131
|
+
|
|
132
|
+
This section translates the design decisions above into implementable configuration for the project's specific CSS framework and component library.
|
|
133
|
+
|
|
134
|
+
### [CSS Framework] Configuration
|
|
135
|
+
|
|
136
|
+
[E.g., "Tailwind CSS Configuration" -- provide the actual config values]
|
|
137
|
+
|
|
138
|
+
```[language]
|
|
139
|
+
// [config file name, e.g., tailwind.config.js theme extend section]
|
|
140
|
+
[Actual configuration code that implements the color palette, typography, spacing, and border radius defined above]
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
### [Component Library] Theme
|
|
144
|
+
|
|
145
|
+
[E.g., "shadcn-svelte Theme Variables" -- provide the actual CSS custom properties or theme config]
|
|
146
|
+
|
|
147
|
+
```css
|
|
148
|
+
/* [Description of where these variables live, e.g., app.css :root block] */
|
|
149
|
+
[Actual CSS custom properties or theme configuration that customizes the component library]
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
### Global CSS
|
|
153
|
+
|
|
154
|
+
```css
|
|
155
|
+
/* Base styles applied globally */
|
|
156
|
+
[Any global CSS needed: font imports, base resets, custom utility classes]
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
## Visual Grounding
|
|
160
|
+
|
|
161
|
+
### References
|
|
162
|
+
[Inspirational images that informed the style direction. These guide the overall feel but are not pixel-level targets.]
|
|
163
|
+
|
|
164
|
+
| Source | Path | What it informs |
|
|
165
|
+
|--------|------|-----------------|
|
|
166
|
+
| [URL or description] | [visual-grounding/references/filename.png] | [colors / layout / feel] |
|
|
167
|
+
|
|
168
|
+
### Designs
|
|
169
|
+
[Design mockups that serve as specification targets. These are the ground truth for visual fidelity.]
|
|
170
|
+
|
|
171
|
+
| Source | Path | Screens covered |
|
|
172
|
+
|--------|------|----------------|
|
|
173
|
+
| [Figma / Canva / hand-drawn] | [visual-grounding/designs/filename.png] | [which screens or components] |
|
|
174
|
+
|
|
175
|
+
### Brand
|
|
176
|
+
[Fixed brand assets that must be incorporated.]
|
|
177
|
+
|
|
178
|
+
| Asset | Path | Constraint |
|
|
179
|
+
|-------|------|-----------|
|
|
180
|
+
| [Logo / color spec / typeface] | [visual-grounding/brand/filename.png] | [how it constrains the design] |
|
|
181
|
+
|
|
182
|
+
[If no visual grounding assets were provided, note: "No visual grounding assets. Style derived from verbal description only."]
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
---
|
|
186
|
+
|
|
187
|
+
## Section Guidance
|
|
188
|
+
|
|
189
|
+
| Section | Source | Depth |
|
|
190
|
+
|---------|--------|-------|
|
|
191
|
+
| Design Direction | User's description + UX specialist analysis | 2-3 sentences capturing the feel |
|
|
192
|
+
| Color Palette | UX specialist recommendation + user refinement | Exact values, all roles covered |
|
|
193
|
+
| Typography | UX specialist recommendation + user refinement | Exact values for all text roles |
|
|
194
|
+
| Spacing and Sizing | UX specialist recommendation | Token table with concrete values |
|
|
195
|
+
| Component Style | UX specialist recommendation + user preferences | Descriptive characteristics per component type |
|
|
196
|
+
| Animation and Motion | User preferences + UX specialist guidance | Philosophy + specific animations |
|
|
197
|
+
| Toolkit Configuration | Translated from design tokens by skill | Actual code that can be copy-pasted into config files |
|
|
198
|
+
| Visual Grounding | User-provided + MCP exports + URL captures | Three categories: references (inspirational), designs (specification), brand (constraints). Paths to files in visual grounding directory. |
|