Agent skill

Raven Debug Compiler

by marinasundstrom in marinasundstrom/raven

Debug workflow for Raven compiler analysis and emission issues using rvn frontend tooling and the rvnc compiler driver.

MITAuto-check passedDevelopment

Install Raven Debug Compiler

skills CLI
$ npx skills add marinasundstrom/raven --skill raven-debug-compiler -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install marinasundstrom/raven raven-debug-compiler --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/marinasundstrom/raven.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/raven-debug-compiler .claude/skills/raven-debug-compiler && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
raven-debug-compiler
GitHub stars
108
Token cost
~1.6k tokens
SKILL.md length
805 words
Files
1
Skills in repo
5
Repo updated
First seen
Licence
MIT

At a glance

Debug workflow for Raven compiler analysis and emission issues using rvn frontend tooling and the rvnc compiler driver.

  • Works in 3 steps: Reduce the issue to a tiny .rav sample. → Prefer working from the samples… → Separate analysis problems from emit or…
  • Investigating parser
  • SKILL.md covers Repro Strategy, Tool Entry Points, Useful Flags and Preferred Debug Loop, plus 3 more sections
  • Calls dotnet

What it does

Raven Debug Compiler is an agent skill from marinasundstrom/raven. Debug workflow for Raven compiler analysis and emission issues using rvn frontend tooling and the rvnc compiler driver. Use when investigating parser, binder, semantic model, incremental binding, lowering, emit, or runtime failures from Raven source samples. Covers repro reduction, CLI flags, binder-owned state, analysis-first debugging, and optional IL inspection.

Its SKILL.md is about 1.6k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Development, covering Debugging. It works with .NET. The repository describes itself as: Raven is a pragmatic, typed, general-purpose programming language for .NET. The licence is MIT.

When your agent uses it

  • Investigating parser
  • Incremental binding
  • Runtime failures from Raven source samples

Example prompts

  • “/raven-debug-compiler”

Workflow steps

3 steps, taken from the first numbered list in SKILL.md.

  1. Reduce the issue to a tiny .rav sample.
  2. Prefer working from the samples directory or another minimal repro location.
  3. Separate analysis problems from emit or runtime problems before changing code.

What it can do on your machine

Read from SKILL.md and the folder at commit a00fa5e. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • dotnet

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Raven Debug Compiler loads about 1.6k tokens when it runs. Until then it costs about 97 tokens; SKILL.md has 805 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~97
When it runs · the whole SKILL.md, loaded when a task matches
~1.6k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from marinasundstrom/raven at commit a00fa5e, republished under its MIT licence (© marinasundstrom). 805 words, ~1,575 tokens.

Download SKILL.mdSave it as .claude/skills/raven-debug-compiler/SKILL.md (or your agent's skills folder).
name
raven-debug-compiler
description
Debug workflow for Raven compiler analysis and emission issues using rvn frontend tooling and the rvnc compiler driver. Use when investigating parser, binder, semantic model, incremental binding, lowering, emit, or runtime failures from Raven source samples. Covers repro reduction, CLI flags, binder-owned state, analysis-first debugging, and optional IL inspection.

Raven Compiler Debugging

Use this skill when debugging compiler behavior through command-line tooling.

Repro Strategy

For large compiler investigations, use a planned task sequence: define the current slice, keep one step active, verify it before moving on, and re-evaluate the next slice after each result. Tell the user what the next step is after each verified slice. Prefer the smallest compiler-level repro that proves or disproves the suspected behavior before broadening to samples, language-server tests, or full baselines.

  1. Reduce the issue to a tiny .rav sample.
  2. Prefer working from the samples directory or another minimal repro location.
  3. Separate analysis problems from emit or runtime problems before changing code.

Tool Entry Points

Use Raven / rvn for developer workflows such as scaffolding, project commands, and internal debug views. rvn is not the compiler driver:

bash
dotnet run --project ../src/Raven --property WarningLevel=0 -- dev bound-tree <file.rav>

Use Raven.Compiler / rvnc for compiler-driver behavior. This is the compiler used by project builds, sample builds, MSBuild integration, and one-shot compile repros:

bash
dotnet run --project ../src/Raven.Compiler --property WarningLevel=0 -- <file.rav> -o test.dll

Useful Flags

  • rvn dev syntax prints the syntax tree
  • rvn dev dump pretty prints a colorized syntax tree
  • rvn dev bound-tree prints the bound tree before full lowering
  • --no-emit stops after analysis
  • rvn dev parse-sequence shows parsing sequence details

Keep rvnc minimal. It is the compiler driver used by MSBuild and should not grow frontend-only debug commands unless the build integration needs them. Keep developer-only diagnostics, syntax dumps, and other exploratory commands on the rvn dev ... side. If you change flags, rebuild before running again.

Preferred Debug Loop

  1. Run with rvn dev dump pretty <file> --no-emit and rvn dev bound-tree <file> --no-emit first.
  2. If the syntax tree is wrong, investigate lexer or parser behavior.
  3. If syntax is correct but the bound tree is wrong, investigate binding or semantics.
  4. Only enable emit after analysis looks correct, then reproduce compiler behavior with rvnc or dotnet run --project ../src/Raven.Compiler -- ....
  5. If emit or runtime still fails, inspect the produced assembly or IL.
  6. Lock the repro with a focused test in test/Raven.CodeAnalysis.Tests.
  7. Keep documentation current when the investigation changes or clarifies compiler behavior; if expected behavior should be documented but is missing from docs/, consider adding it.

Binder And Semantic Model Checks

  • Treat binders as the execution units for binding. First identify the binder that should own the answer: method binder for parameters, block binder for immediate locals/statements/expressions, type/member binders for declarations, etc.
  • Treat Compilation and SemanticModel as the semantic service layer. Public semantic APIs should decide whether to answer from binder-owned state, existing semantic-model caches, available incremental state, or a new lazy bind.
  • Prefer fixing the responsible binder or public semantic API over adding a caller-side workaround. Public APIs should decide whether to answer from binder-owned state, cached bound nodes, available incremental state, or a narrow rebind.
  • Lazy binding is the expected behavior. A semantic query is allowed to trigger the bind that produces missing information; that information should then live in compiler-owned binder/semantic-model state and be reused by later queries.
  • Available-state query helpers are opportunistic fast paths, not the source of truth. If the available path lacks enough context, the authoritative semantic query should bind and cache the correct answer rather than return a guessed symbol or type.
  • Do not treat "not already cached" as "not knowable." If a symbol, type, diagnostic, or operation can be resolved by normal binding, every semantic query path that needs it should be able to reach that binding path.
  • Cheap available-state paths are useful for performance only when they are sound. If available-state inference is ambiguous or incomplete, fall back to full binding rather than returning a partial answer.
  • When debugging incremental behavior, compare one-shot compilation against the semantic query path. The first query after an edit must be correct even if no warm cache exists.
  • Binder-owned diagnostics should disappear with invalidated binders. Analyzer diagnostics should stay owned by their analyzer pipeline.
  • Binder reuse is an outer snapshot/cache decision, not a binder responsibility. A binder may cache state derived from its syntax/scope, but reuse is only valid when the syntax identity and semantic context still match: parent binder/member signature/import scope/compilation options must remain equivalent.
  • If a syntax or semantic-context change invalidates a binder, the replacement binder should recreate its owned symbols and diagnostics lazily. Do not make old binders self-heal or mutate into a new context.
  • One-shot compilation remains the correctness baseline. Incremental compilation should reuse valid semantic state only as an optimization over the same observable answers.
  • If a language-server bug reproduces as wrong GetSymbolInfo, GetTypeInfo, GetDeclaredSymbol, diagnostics, or operations output, fix Raven.CodeAnalysis first.
Show full SKILL.md (53 more words)Show less

IL Inspection

Use ilspycmd to inspect ravc output when emit behavior is in question:

bash
dotnet tool install --global ilspycmd

Use IL inspection to understand generated output, not as the primary assertion model for stable tests.

Validation

  • Re-run the minimal repro after each change.
  • Prefer the smallest possible focused unit test over broad regression coverage for the first lock.

© marinasundstrom, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/raven-debug-compiler of marinasundstrom/raven.

Open the folder on GitHubat commit a00fa5e

Compare with similar skills

Raven Debug Compiler next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Raven Debug Compiler compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Raven Debug Compiler this skillmarinasundstrom/raven108—~1.6kAutomated safety check: PassMIT
Dotnet Debuggingnovotnyllc/dotnet-artisan233—~2.1kAutomated safety check: PassMIT
Okojo Node Ink Debugakeit0/okojo160—~798Automated safety check: PassMIT
MSBuildLocator .NET Core Loadermicrosoft/MSBuildLocator263—~1.1kAutomated safety check: PassCustom licence
Nes Rom Debugjonathanpeppers/dotnes780—~1.5kAutomated safety check: PassMIT
Development Workflowrunceel/ReactiveProperty944—~1.4kAutomated safety check: PassMIT

Similar skills

  • Dotnet Debugging

    novotnyllc/dotnet-artisan

    Debugs Windows and Linux/macOS applications (native, .NET/CLR, mixed-mode) with WinDbg MCP (crash dumps, !analyze, !syncblk, !dlk, !runaway, !dumpheap, !gcroot, BSOD), dotnet-dump, lldb with SOS…

    233 GitHub stars~2.1k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Debug Okojo.Node large-app failures through sandbox/OkojoInkProbe and sandbox/OkojoNodeDebugSandbox.

    160 GitHub stars~798 tokensUpdated 17 days ago
    DevelopmentAuto-check passed
  • MSBuildLocator .NET Core Loader

    microsoft/MSBuildLocator

    Official

    Reference for how MSBuildLocator loads MSBuild assemblies and finds the .NET SDK on .NET Core hosts, for anyone editing or debugging that loader code.

    263 GitHub stars~1.1k tokensUpdated 2 days ago
    DevelopmentAuto-check passed
  • Nes Rom Debug

    jonathanpeppers/dotnes

    Disassemble and debug NES ROM files (.nes) produced by the dotnes transpiler.

    780 GitHub stars~1.5k tokensUpdated 15 days ago
    DevelopmentAuto-check passed
  • Development Workflow

    runceel/ReactiveProperty

    ReactiveProperty repository development policy. An agent skill from runceel/ReactiveProperty.

    944 GitHub stars~1.4k tokensUpdated 1 mo ago
    DevelopmentAuto-check passed
  • MSBuildLocator .NET Framework Loader

    microsoft/MSBuildLocator

    Official

    Explains how MSBuildLocator loads MSBuild assemblies and finds Visual Studio installs on the .NET Framework net46 target, for anyone editing or reviewing that code.

    263 GitHub stars~745 tokensUpdated 2 days ago
    DevelopmentAuto-check passed

More from marinasundstrom/raven

  • Raven Lsp Debug

    marinasundstrom/raven

    Troubleshooting workflow for Raven language service and editor failures.

    108 GitHub stars~3.7k tokensUpdated today
    Auto-check passed
  • Raven Test Triage

    marinasundstrom/raven

    Testing and stabilization workflow for the Raven compiler test suite.

    108 GitHub stars~1.4k tokensUpdated today
    Auto-check passed
  • Raven Feature Workflow

    marinasundstrom/raven

    End-to-end workflow for Raven language and compiler feature work.

    108 GitHub stars~2.5k tokensUpdated today
    Auto-check passed
  • Raven Test Cleanup

    marinasundstrom/raven

    Coverage-improvement workflow for Raven tests through cleanup.

    108 GitHub stars~2.2k tokensUpdated today
    Auto-check passed

Works with

Categories

Questions about Raven Debug Compiler

What does Raven Debug Compiler do?

Debug workflow for Raven compiler analysis and emission issues using rvn frontend tooling and the rvnc compiler driver. Raven Debug Compiler is an agent skill from marinasundstrom/raven. Debug workflow for Raven compiler analysis and emission issues using rvn frontend tooling and the rvnc compiler driver.

When should I use Raven Debug Compiler?

Raven Debug Compiler fits situations like: investigating parser; incremental binding; runtime failures from Raven source samples.

How do I install Raven Debug Compiler in Claude Code?

Run `npx skills add marinasundstrom/raven --skill raven-debug-compiler -a claude-code`. Or copy the skill folder (.agents/skills/raven-debug-compiler in marinasundstrom/raven) into .claude/skills/raven-debug-compiler in your project. Claude Code loads it when a task matches its description.

How do I install Raven Debug Compiler in Codex?

Run `npx skills add marinasundstrom/raven --skill raven-debug-compiler -a codex`. Or copy the skill folder (.agents/skills/raven-debug-compiler in marinasundstrom/raven) into .agents/skills/raven-debug-compiler in your project. Codex loads it when a task matches its description.

Can I use Raven Debug Compiler in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add marinasundstrom/raven --skill raven-debug-compiler -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/raven-debug-compiler, .gemini/skills/raven-debug-compiler, .github/skills/raven-debug-compiler and .opencode/skills/raven-debug-compiler in your project.

What does Raven Debug Compiler need to run?

Going by SKILL.md and its folder, Raven Debug Compiler needs the command-line tools its instructions call (dotnet).

Does Raven Debug Compiler access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Raven Debug Compiler safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Raven Debug Compiler use?

Raven Debug Compiler is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Raven Debug Compiler use?

About 1.6k tokens (SKILL.md is roughly 6.3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Raven Debug Compiler?

Skills that share tags, products or a category with Raven Debug Compiler: Dotnet Debugging (novotnyllc/dotnet-artisan, 233 stars), Okojo Node Ink Debug (akeit0/okojo, 160 stars), MSBuildLocator .NET Core Loader (microsoft/MSBuildLocator, 263 stars) and Nes Rom Debug (jonathanpeppers/dotnes, 780 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Raven Debug Compiler?

marinasundstrom (a GitHub user) maintains it in marinasundstrom/raven, which has 108 GitHub stars. The repository holds 5 skills in this directory. The repository was last updated on October 8, 2026.

Source: marinasundstrom/raven on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.