CLI tool for evaluating GA Language (GAL) scripts, music theory closures, and domain pipelines.
Install
mkdir -p .claude/skills/ga-eval && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/9731" && unzip -o skill.zip -d .claude/skills/ga-eval && rm skill.zipInstalls to .claude/skills/ga-eval
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Run GA Language (GAL) operations against the live domain services via the ga CLI. Use when you need to interactively explore domain closures, test pipelines, or compute music-theory results.Key capabilities
- →Execute GAL commands
- →Parse chord symbols
- →Transpose chord progressions
- →Calculate diatonic triads
- →Run domain closures
How it works
The ga CLI executes domain closures directly in-process using the GaCli project without requiring an Aspire stack.
Inputs & outputs
When to use GA Eval
- →Parsing music chord symbols
- →Transposing chord progressions
- →Testing GAL domain closures
- →Calculating diatonic triads
About this skill
/ga eval — GA Language Evaluator
Use this sub-command when the user asks to run a GAL script, test a closure, or explore the GA DSL interactively.
When to Use
- "What does
domain.diatonicChordsreturn for E minor?" - "List all available closures"
- "Run this closure and show me the result"
- "Test whether this chord symbol parses correctly"
CLI (primary — no server needed for domain closures)
The GaCli project (Apps/GaCli) calls domain closures directly in-process. No Aspire stack required.
# From repo root — build once, then use the binary directly
dotnet build Apps/GaCli/GaCli.fsproj -c Debug -v q
# Run any command
dotnet run --project Apps/GaCli/GaCli.fsproj -- <command>
Commands
ga closures [domain|pipeline|agent|io] List closures (optionally filtered by category)
ga chord <symbol> Parse a chord symbol → JSON structure
ga transpose <symbol> <semitones> Transpose a chord by N semitones
ga diatonic <root> [major|minor] Get the 7 diatonic triads for a key
ga progression <sym...> --by <n> Transpose every chord in a progression
ga ask <question> Ask the GA chatbot (requires server running)
Examples
dotnet run --project Apps/GaCli/GaCli.fsproj -- closures
dotnet run --project Apps/GaCli/GaCli.fsproj -- chord Am7
dotnet run --project Apps/GaCli/GaCli.fsproj -- transpose Cmaj9 5
dotnet run --project Apps/GaCli/GaCli.fsproj -- diatonic G major
dotnet run --project Apps/GaCli/GaCli.fsproj -- progression Am F C G --by 7
Available Closures (quick reference)
| Name | Inputs | Output |
|---|---|---|
domain.parseChord | symbol: string | JSON chord structure |
domain.transposeChord | symbol: string, semitones: int | transposed chord symbol |
domain.diatonicChords | root: string, scale: string | string[] of 7 triads |
agent.theoryAgent | question: string | GA chatbot answer |
agent.tabAgent | request: string | tab or VexTab string |
agent.criticAgent | progression: string | harmonic critique |
agent.fanOut | question: string, agentNames: string[] | Map of answers |
io.readFile | path: string | file contents |
io.writeFile | path: string, content: string | unit |
io.httpGet | url: string | response body |
io.httpPost | url: string, body: string | response body |
Full list at runtime: dotnet run --project Apps/GaCli/GaCli.fsproj -- closures
When the Aspire Stack Is Running
For agent closures (theory/tab/critic) and FSI scripts, the GaApi must be up. The eval endpoint accepts raw F# expressions:
curl -s -X POST http://localhost:5232/api/ga/eval \
-H "Content-Type: application/json" \
-d "$(jq -n --arg s 'invoke "domain.diatonicChords" (Map.ofList ["root", box "G"; "scale", box "major"])' '{script:$s}')"
Formatting Output
- Chord JSON
{"root":"A","quality":"minor","components":["ext:7"],"bass":null}→ Am7 = A minor, minor 7th extension - Diatonic arrays → display as Roman numeral table:
I=G ii=Am iii=Bm IV=C V=D vi=Em vii°=F#dim - Agent responses → display verbatim, then offer follow-up
When not to use it
- →When the Aspire stack is required for agent closures but not running
Prerequisites
Limitations
- →Requires Aspire stack for agent closures
How it compares
This approach provides a direct CLI interface for music theory operations instead of manual calculation or external API calls.
Compared to similar skills
GA Eval side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| GA Eval (this skill) | 0 | 5mo | Review | Intermediate |
| streamlit | 86 | 9mo | No flags | Intermediate |
| jupyter-notebook | 30 | 6mo | Review | Intermediate |
| backtesting-frameworks | 17 | 2mo | No flags | Advanced |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by GuitarAlchemist
View all by GuitarAlchemist →You might also like
streamlit
sverzijl
When working with Streamlit web apps, data dashboards, ML/AI app UIs, interactive Python visualizations, or building data science applications with Python
jupyter-notebook
davila7
Use when the user asks to create, scaffold, or edit Jupyter notebooks (`.ipynb`) for experiments, explorations, or tutorials; prefer the bundled templates and run the helper script `new_notebook.py` to generate a clean starting notebook.
backtesting-frameworks
wshobson
Build robust backtesting systems for trading strategies with proper handling of look-ahead bias, survivorship bias, and transaction costs. Use when developing trading algorithms, validating strategies, or building backtesting infrastructure.
pdf-processing-pro
davila7
Production-ready PDF processing with forms, tables, OCR, validation, and batch operations. Use when working with complex PDF workflows in production environments, processing large volumes of PDFs, or requiring robust error handling and validation.
llava
zechenzhangAGI
Large Language and Vision Assistant. Enables visual instruction tuning and image-based conversations. Combines CLIP vision encoder with Vicuna/LLaMA language models. Supports multi-turn image chat, visual question answering, and instruction following. Use for vision-language chatbots or image understanding tasks. Best for conversational image analysis.
cocoindex
cocoindex-io
Comprehensive toolkit for developing with the CocoIndex library. Use when users need to create data transformation pipelines (flows), write custom functions, or operate flows via CLI or API. Covers building ETL workflows for AI data processing, including embedding documents into vector databases, building knowledge graphs, creating search indexes, or processing data streams with incremental updates.