From ga
Primes every session with the guitarist's perspective, GA architecture, and how to use the MCP tools during feature development. Load this before working on any Guitar Alchemist feature.
How this skill is triggered — by the user, by Claude, or both
Slash command
/ga:ga-domainThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Guitar Alchemist is **a music platform for guitarists**, not a generic dev project. Every feature decision should start with a real guitarist's pain, verified with the GA MCP tools, then implemented in the GA domain model.
Guitar Alchemist is a music platform for guitarists, not a generic dev project. Every feature decision should start with a real guitarist's pain, verified with the GA MCP tools, then implemented in the GA domain model.
A guitarist who:
North Star question for every feature: What does a guitarist do with this?
The ga-dsl MCP server (registered as mcp__ga-dsl__*) gives you live music theory during brainstorming and planning. Call these tools when designing features to verify your theory is correct before writing code.
GaAnalyzeProgression, GaChordIntervals, GaCommonTones to ground the feature in real theory| Tool | When to call it |
|---|---|
GaAnalyzeProgression("Am F C G") | Whenever a feature involves key detection or Roman numeral labelling |
GaDiatonicChords("G", "major") | When suggesting chords that "fit" a key |
GaChordIntervals("Cmaj7") | When explaining why a chord sounds the way it does |
GaCommonTones("G7", "Cmaj7") | When implementing voice-leading or pivot-chord features |
GaTransposeChord("Am7", 7) | When implementing transposition or capo features |
GaRelativeKey("A", "minor") | When implementing relative key or parallel key features |
GaSearchTabs("metallica nothing else matters") | When a feature needs real-world tab examples |
GaInvokeClosure("domain.queryChords", '{"key":"G","scale":"major","quality":"minor"}') | For advanced diatonic filtering |
Layer 1 — GA.Core / GA.Domain.Core Pure primitives: Note, Interval, PitchClass, Fretboard
Layer 2 — GA.Business.Core Business logic, chord analysis, scale queries
Layer 3 — GA.Business.Core.Harmony Voice leading, chord progression analysis
Layer 4 — GA.Business.ML Embeddings (OPTIC-K), semantic search, agents
Layer 5 — GA.Business.Core.Orchestration High-level workflows, IntelligentBSPGenerator
Rule: new code goes in the lowest layer that has everything it needs. AI code → Layer 4. Workflows → Layer 5. Pure music math → Layer 1 or 2.
| Problem type | Layer | Example |
|---|---|---|
| "What intervals are in this chord?" | 1–2 | Chord.Intervals, ChordDslService |
| "Which chords fit this key?" | 2–3 | DiatonicChordService |
| "Suggest a substitution" | 3 | HarmonicTransformationService |
| "Find similar-sounding songs" | 4 | OPTIC-K embedding + vector search |
| "Generate a practice routine" | 5 | Orchestration + agent composition |
The GA Language closures (domain.*, tab.*, agent.*) live in GA.Business.DSL. They are:
do register()GaClosureRegistry.Globalga-dsl MCP serverWhen adding a new music-theory closure, add it to DomainClosures.fs and register it in register().
Used for semantic similarity between chord voicings/BSP rooms. Never change dimension count without a full re-index. Structure:
Guitarist problem (BACKLOG.md)
↓
Brainstorm: call GA MCP tools to verify the music theory
↓ GaAnalyzeProgression, GaChordIntervals, GaCommonTones…
Plan: docs/plans/ — what does the guitarist see + how does it map to layers?
↓
Implement: lowest layer first, ROP error handling, unit tests
↓
Document: update BACKLOG.md (remove idea), link plan to PR
↓
Compound: solution is now a closure / endpoint / UI feature
that makes the NEXT problem easier to solve
Each solved problem expands the closure registry, which makes future features faster: GaCommonTones built for voice-leading also powers pivot-chord detection and substitution suggestions.
| What a guitarist says | GA concept | Tool / layer |
|---|---|---|
| "What key am I in?" | Key inference from chord set | GaAnalyzeProgression |
| "What scale fits here?" | Diatonic scale from key | GaDiatonicChords |
| "Why does this note sound outside?" | Chromatic pitch class vs. diatonic set | GaChordIntervals + set math |
| "What can I play instead?" | Chord substitution | GaCommonTones + GaRelativeKey |
| "How do I finger this?" | Fretboard geometry | GA.Business.Core.Fretboard layer |
| "Show me a lick" | Tab generation | tab.generateChord, VexTabGenerator |
| "Find me a tab" | Internet tab search | GaSearchTabs (Archive.org + GitHub) |
| "This sounds jazzy/bluesy" | Stylistic tag | OPTIC-K SYMBOLIC dims |
Result<T, TError>, never throwCreates structured, bite-sized implementation plans from specs or requirements before writing code. Useful for breaking down multi-step tasks into testable steps with file structure and task boundaries.
npx claudepluginhub meefs/ga --plugin ga