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.zip

Installs 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.
190 chars✓ has a “when” trigger
Intermediate

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

You give it
GAL command or chord symbol
You get back
JSON structure or music theory result

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.diatonicChords return 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)

NameInputsOutput
domain.parseChordsymbol: stringJSON chord structure
domain.transposeChordsymbol: string, semitones: inttransposed chord symbol
domain.diatonicChordsroot: string, scale: stringstring[] of 7 triads
agent.theoryAgentquestion: stringGA chatbot answer
agent.tabAgentrequest: stringtab or VexTab string
agent.criticAgentprogression: stringharmonic critique
agent.fanOutquestion: string, agentNames: string[]Map of answers
io.readFilepath: stringfile contents
io.writeFilepath: string, content: stringunit
io.httpGeturl: stringresponse body
io.httpPosturl: string, body: stringresponse 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

dotnet SDK

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.

SkillInstallsUpdatedSafetyDifficulty
GA Eval (this skill)05moReviewIntermediate
streamlit869moNo flagsIntermediate
jupyter-notebook306moReviewIntermediate
backtesting-frameworks172moNo flagsAdvanced

Try saying

Example prompts that trigger this skill in your AI assistant.

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

86239

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.

30158

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.

17126

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.

17110

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.

7117

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.

6116

Search skills

Search the agent skills registry