The fourth and fifth harnesses: Spruce now installs into VS Code (with GitHub Copilot) and Gemini CLI in addition to Claude Code, Cursor, and Codex CLI — completing the originally-planned multi-tool roadmap. The same npx spruce-skill add
command auto-detects which AI coding tool the project uses and installs the right per-harness bundle. Spruce works in all five major AI coding tools.
Same install command:
npx spruce-skill add
For VS Code Copilot users, files land at .github/skills/<command>/SKILL.md (Copilot's native path) or .agents/skills/ as fallback. For Gemini CLI users, files land at .gemini/skills/<command>/SKILL.md (Gemini's native path) or
.agents/skills/.
No code changes were required for either harness.
The v0.3.0 architecture committed to a thin install wrapper around vercel-labs/skills plus shipping standard Anthropic Agent Skills format to each harness's documented path. Both Copilot and
Gemini work out of the box — confirming the architecture scales: each new harness compatible with the Agent Skills spec is roughly a one-line addition to the build's harness coverage. Build output now totals 25 skills × 5 harnesses = 125
skill directories, with the same content shipped to each.
Invocation patterns per harness (all verified working):
-
VS Code with GitHub Copilot —
/design,/typeface,/personas, etc. as slash commands inside Copilot Chat. Or describe intent and Copilot's matcher selects the relevant skill. Skill loading and conversation flows execute
correctly. Adherence to.spruce.mdpreferences is good in/design's autonomous pass; specific avoid-list items (Inter, shadowed cards) can leak through Copilot's training prior in first-pass generation, and the corrective tier
(/typeface,/refine,/colorgrade, etc.) reliably cleans them up via direct user instruction. The intended workflow — generate, diagnose, correct — fits Copilot well. -
Gemini CLI —
/design,/typeface,/personas, etc. as slash commands. Gemini's UI explicitly announces skill activation ("Skill design activated. Resources loaded from .agents/skills/design") and shows file operations (✓ ReadFile .spruce.md,✓ WriteFile landing-section.html). Adherence is excellent — in smoke tests, Gemini honored named typefaces (Source Serif 4 + Hanken Grotesk), used exact OKLCH color values from the context file, respected the
4px-max border-radius constraint, used a top-edge highlight in place of forbidden box-shadows, and cited.spruce.mddirectly in code comments. Strictest skill-following of any harness tested.
Smoke-test confirmation:
In real Gemini CLI sessions, asking "/design a calm-evening landing section for this app" led Gemini to:
- Activate the
designskill explicitly (visible in the UI) - Read
SKILL.mdand the bundled reference files - Read
.spruce.mdfor context - Search for Discovery artifacts (
.personas.md,.jtbd.md, etc.) - Generate a
landing-section.htmlfile using the named typefaces, exact color tokens, and surface constraints from.spruce.md— with code comments citing the constraints
Copilot followed the same conversation flow on /decide, asking one decision at a time and waiting per the skill's spec. Both harnesses ship working integrations.
Preserved from v0.4.0:
- All 25 commands across 5 tiers (Setup, Discovery, Generative, Diagnostic, Corrective) work identically across every harness.
- Claude Code slash commands at
.claude/commands/still ship for the slash UX. - The 13 reference files (Discovery foundation + design dimensions) bundle into each skill so context-rich reasoning travels with every command.
- The
.spruce.mdcontext file remains the foundation every command reads from.