Ssh Connection Import
feigeCode/navop
A skill your agent uses when implementing or debugging onetcli SSH connection importers, including OpenSSH config, knownhosts, candidate file manifests, local composite installs, SSH authmethod JSON…
Debug the Wado optimizer with the WADOTRACE, WADODUMPPASSBEFORE/AFTER, WADOLISTPASSES, and WADOSKIPPASS env vars.
$ npx skills add wado-lang/wado --skill optimizer-debug -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install wado-lang/wado optimizer-debug --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/wado-lang/wado.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/optimizer-debug .claude/skills/optimizer-debug && rm -rf skills-srcUse ~/.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/
Install the "optimizer-debug" agent skill from https://github.com/wado-lang/wado/tree/main/.claude/skills/optimizer-debug into .claude/skills/optimizer-debug/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "optimizer-debug", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/wado-lang/wado/tree/main/.claude/skills/optimizer-debugType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add wado-lang/wado --skill optimizer-debug -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install wado-lang/wado optimizer-debug --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/wado-lang/wado.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/optimizer-debug .agents/skills/optimizer-debug && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "optimizer-debug" agent skill from https://github.com/wado-lang/wado/tree/main/.claude/skills/optimizer-debug into .agents/skills/optimizer-debug/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "optimizer-debug", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add wado-lang/wado --skill optimizer-debug -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install wado-lang/wado optimizer-debug --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/wado-lang/wado.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/optimizer-debug .cursor/skills/optimizer-debug && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "optimizer-debug" agent skill from https://github.com/wado-lang/wado/tree/main/.claude/skills/optimizer-debug into .cursor/skills/optimizer-debug/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "optimizer-debug", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/wado-lang/wado.git --path .claude/skills/optimizer-debug--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add wado-lang/wado --skill optimizer-debug -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install wado-lang/wado optimizer-debug --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/wado-lang/wado.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/optimizer-debug .gemini/skills/optimizer-debug && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "optimizer-debug" agent skill from https://github.com/wado-lang/wado/tree/main/.claude/skills/optimizer-debug into .gemini/skills/optimizer-debug/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "optimizer-debug", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install wado-lang/wado optimizer-debugInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add wado-lang/wado --skill optimizer-debug -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/wado-lang/wado.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/optimizer-debug .github/skills/optimizer-debug && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "optimizer-debug" agent skill from https://github.com/wado-lang/wado/tree/main/.claude/skills/optimizer-debug into .github/skills/optimizer-debug/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "optimizer-debug", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add wado-lang/wado --skill optimizer-debug -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install wado-lang/wado optimizer-debug --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/wado-lang/wado.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/optimizer-debug .opencode/skills/optimizer-debug && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "optimizer-debug" agent skill from https://github.com/wado-lang/wado/tree/main/.claude/skills/optimizer-debug into .opencode/skills/optimizer-debug/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "optimizer-debug", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
optimizer-debugDebug the Wado optimizer with the WADOTRACE, WADODUMPPASSBEFORE/AFTER, WADOLISTPASSES, and WADOSKIPPASS env vars.
Optimizer Debug is an agent skill from wado-lang/wado. Debug the Wado optimizer with the WADOTRACE, WADODUMPPASSBEFORE/AFTER, WADOLISTPASSES, and WADOSKIPPASS env vars. Use whenever a NIR/WIR pass is in question — wrong code, a WIR pipeline ICE, or just to see what a pass did to the IR. For guest-side slowness see wado-performance.
Its SKILL.md is about 2.5k 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 WebAssembly. The repository describes itself as: The Wado Programming Language. The licence is MIT.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 827e44b. It shows what the files ask for, not the result of running them.
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.
Shell commands in SKILL.md call:
cargoFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Optimizer Debug loads about 2.5k tokens when it runs. Until then it costs about 76 tokens; SKILL.md has 1,245 words of instructions outside code blocks.
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.
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.
The full file from wado-lang/wado at commit 827e44b, republished under its MIT licence (© wado-lang). 1,245 words, ~2,514 tokens.
.claude/skills/optimizer-debug/SKILL.md (or your agent's skills folder).The optimize.rs and wir_optimize.rs pipelines are big — many passes,
each rewriting the IR in place. When a pass is wrong, the symptom usually
shows up two passes later as "the WIR validates but produces the wrong
behaviour" or as "the codegen finds an invalid Wasm module" deep in the
final emitter. The debug hooks below let you diff the IR around any
single pass without sprinkling eprintln! through pass internals.
All three are env-var-driven so they work uniformly across wado compile,
wado test, wado run, and Kiln invocations from package-gale.
WADO_LIST_PASSES=1 cargo run --bin wado --quiet -- compile -O1 file.wado -o scratchpad/out.wasm 2>&1 | grep '\[pass\]'Prints every pass name in execution order. Lets you correlate the order
in source (optimize.rs and wir_optimize.rs) with what actually fires
under your -Ox choice.
WADO_DUMP_PASS_AFTER=wir/sroa_multi_value_returns \
cargo run --bin wado --quiet -- compile -O1 file.wado -o scratchpad/out.wasm 2>scratchpad/after.logscratchpad/after.log holds the full WIR (or NIR, depending on the pass) right
after the named pass, framed by === WIR after <name> === /
=== end WIR after <name> === (NIR passes use === NIR after <name> ===).
WADO_DUMP_PASS_BEFORE=wir/sroa_multi_value_returns \
cargo run --bin wado --quiet -- compile -O1 file.wado -o scratchpad/out.wasm 2>scratchpad/before.logSame framing, before the pass runs. diff the two logs to see exactly
what the pass rewrote.
The variables accept a comma-separated list:
WADO_DUMP_PASS_AFTER=nir/inline,wir/sroa_multi_value_returns \
cargo run --bin wado --quiet -- compile -O1 file.wado -o scratchpad/out.wasm 2>scratchpad/dump.logWADO_SKIP_PASS=nir/cse cargo run --bin wado --quiet -- compile -O3 file.wado -o scratchpad/out.wasmSame comma-separated list as WADO_DUMP_PASS_*, with one extra
convenience: a @N suffix targets the Nth invocation of a pass within
the fixed-point loop (1-based). WADO_SKIP_PASS=nir/cse@2 skips cse
only on the second iteration — invaluable for iteration-dependent bugs
whose failing test passes on the first iteration and only diverges once
the inliner expands an additional function on a later one.
Only standalone run_pass spans are skippable; confirm a name with
WADO_LIST_PASSES=1 first. Local rules folded into the peephole session
(ref_elim, elide_box_local, match_to_switch, value_copy_elide,
array_literal, …) are not individually addressable — target
nir/peephole to skip the whole session.
When a pass is the only one whose skipping makes the bug go away that
just narrows the participants in the buggy interaction — it does not
prove the pass is itself buggy. Pair the skip-bisection result with
WADO_DUMP_PASS_AFTER on the same pass to compare its output across
the working vs. broken configuration before concluding.
For developer-only messages from inside a pass. The crate denies eprintln!,
so use compiler_trace!, which writes to the sink the host installed:
WADO_TRACE=sroa_return cargo run --bin wado --quiet -- compile -O1 file.wado -o scratchpad/out.wasm 2>&1 | grep '\[sroa_return\]'Output is framed [target] message. Targets are passed verbatim to
compiler_trace!(target, ...) calls inside the compiler. Use
WADO_TRACE='*' to enable every target at once.
To add a new tracing call inside a pass:
use crate::compiler_trace;
// ...
compiler_trace!("sroa_return", "candidates = {}", candidates.len());
compiler_trace!("sroa_return", "rewriting return at {span:?}");The cost when the target is disabled is one OnceLock get + a linear
scan of the configured target list — fine for any rate that makes
sense in a compiler pass.
--log-level debug ends the NIR loop with either "converged after N
iteration(s)" or "hit the N-iteration cap without converging", the latter
naming the passes still reporting changes. From there:
WADO_TRACE=opt_loop lists, per iteration, every pass that reported a
change. The tail of that list is the culprit set.WADO_TRACE=const_fold names each function const_fold changed, so a
pass that keeps reporting a change points at the body it keeps rewriting.
WADO_TRACE=inline_sites names, per round, the callees spliced into each
caller: a late round splicing small helpers is a callee that only shrank
under the threshold once its own callees were spliced.WADO_DUMP_PASS_BEFORE/_AFTER=<pass> around a late round, diffed, says
which of three it is: nothing rewritten at all (the pass reports a change it
did not make), a rewrite a later pass deletes (two passes fighting), or real
work that tapers (the pass takes one step per round where its own fixed
point is one sweep away).-O3 emitting several times -O2's wasm is the inliner, not the loop —
check the iteration count first (WADO_TRACE=opt_loop) and stop suspecting
convergence once it is small.
--optimize-inline-threshold. A cliff rather than a curve means one
callee crossed the budget and is now copied at every call site.WADO_TRACE=inline reports, per round, the unit size and how many
candidates the threshold admitted only because the cold discount put
them under it — with what those are worth in growth. A handful of callees
accounting for most of a round's growth is that pattern.WADO_TRACE=cold_outline says why such a callee was not split: control
leaving the region, or a local the call cannot hand over.--optimize-inline-growth <pct> caps unit growth, and --log-level debug
then names what the cap turned down, with both of the callee's prices.A wir_expect that disappears when an unrelated knob moves is a precision hole
somewhere else: one pass reshaped the IR into a form the second pass does not
recognise, and the second pass is the one to fix.
--optimize-inline-threshold one step
at a time until the expectation flips. One step is one callee, so the
before/after dump --nir diff is small enough to read.WADO_TRACE=<pass> for the pass that stopped firing. const_object_globalization
names each function it walks and, per let, either the hoist or the check
that declined it.&x as a call argument versus &x bound
by a let — is the hole; the inliner just moved it from the first to the
second.The codegen-time validator catches type mismatches the optimizer introduced. The error always points at codegen, but the bug is upstream. Walk the pass pipeline like this:
Get the failing fixture compiling at -O0 first to confirm it is an
optimization-introduced bug (not a lower/codegen bug).
List the passes that run at the failing -Ox level:
WADO_LIST_PASSES=1 cargo run --bin wado --quiet -- compile -O1 fixture.wado -o scratchpad/out.wasm 2>&1 | grep '\[pass\]'Bisect: pick a pass roughly mid-pipeline, dump after it, and check whether the IR is already broken. If it is, the bug is at or before that pass; otherwise it is later.
Once you have the suspect pass, dump before AND after it and read the diff. The mismatch will be visible — usually a function whose signature was rewritten but whose return sites weren't (the canonical shape of the SROA / signature-rewrite class of bugs), or a struct layout that changed in one place but not at consumers.
Add compiler_trace!("<pass_name>", ...) calls at the suspect rewrite
site to confirm which subtrees the pass visits. The *_mut walkers
in wir_visitor.rs and WirInstr::for_each_boxed_child_mut cover
most rewrite needs.
| Prefix | Phase |
|---|---|
nir/<name> | NIR-level pass (optimize.rs) |
wir/<name> | WIR-level pass (wir_optimize.rs) |
A #![wasm_module] core module (the allocator, mem) runs the WIR list as a
package of its own, under wir/<module>:<name> — so wir/run_peephole stays
the main module's and wir/mem:run_peephole targets the allocator.
WADO_LIST_PASSES=1 is the source of truth — names there match exactly
the strings the env vars want.
debugger skill (rust-gdb) or read the WIR/Wasm directly.tracing calls in annotate.rs directly.wado dump --tir-resolved / --tir-monomorphized (TIR, before lowering)
or --nir-lowered (NIR, right after lowering) instead; those are exposed
as proper CLI flags.wado-compiler/src/trace.rs — compiler_trace! macro and filter
parsing (with unit tests).wado-compiler/src/optimize.rs — run_pass for NIR passes; defines
the env-var hook implementation in mod pass_dump.wado-compiler/src/wir_optimize.rs — wir_pass for WIR passes.© wado-lang, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .claude/skills/optimizer-debug of wado-lang/wado.
Open the folder on GitHubat commit 827e44b
Optimizer Debug 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Optimizer Debug this skillwado-lang/wado | 116 | — | ~2.5k | Automated safety check: Pass | MIT | |
| Ssh Connection ImportfeigeCode/navop | 1.8k | — | ~1.2k | Automated safety check: Warn | Custom licence | |
| Debugging Geometryandymai/brepjs | 114 | — | ~3.8k | Automated safety check: Pass | Apache-2.0 | |
| Chrome Devtools MCPmanagedcode/dotnet-skills | 486 | — | ~2.2k | Automated safety check: Pass | MIT | |
| Wasm Emscriptenmohitmishra786/low-level-dev-skills | 253 | — | ~1.7k | Automated safety check: Pass | MIT | |
| Create Featurezacharyfmarion/openscad-studio | 238 | — | ~1.5k | Automated safety check: Pass | GPL-2.0 |
feigeCode/navop
A skill your agent uses when implementing or debugging onetcli SSH connection importers, including OpenSSH config, knownhosts, candidate file manifests, local composite installs, SSH authmethod JSON…
andymai/brepjs
This skill should be used when debugging a geometry failure in brepjs — when a task says "boolean returned an invalid shape", "fuse/cut/intersect returned Err", "the result is empty", "measureVolume…
managedcode/dotnet-skills
Use Chrome DevTools MCP from .NET agents and .NET-focused repos to inspect, debug, and automate Chrome through an MCP client.
mohitmishra786/low-level-dev-skills
WebAssembly with Emscripten skill for C/C++ to WASM compilation.
zacharyfmarion/openscad-studio
A skill your agent uses when the user asks to take a feature or bug fix from prompt to implementation, especially prompts like "/create a new feature", "build this feature end-to-end", "take this…
Edwardvaneechoud/Flowfile
End-to-end runbook for adding or modifying a Flowfile node type across all four layers (flowfilecore settings/graph/template, flowfilefrontend UI registry, flowfileframe Python API, flowfilewasm…
wado-lang/wado
Profile the native Rust wado binary (compile/serve/run) for host-side bottlenecks — CPU with a sampling profiler, memory with the span trace's RSS and valgrind DHAT.
wado-lang/wado
Analyze and improve the runtime speed of a Wado program's compiled guest Wasm — profile hot functions, read the generated WIR for allocations and copies, reason about the WasmGC cost model, and…
wado-lang/wado
Investigate and improve code coverage for the wado-compiler crate.
wado-lang/wado
The only way to merge origin/main into a branch, conflicts or not.
wado-lang/wado
Transpile Wado Wasm components to JS with jco, then run, debug, and benchmark them on Node.
wado-lang/wado
Task-completion flow: /cr (a /code-review answered with /code-review-response, which ends with /distill), update docs (spec/cheatsheet/compiler/optimizer), then run mise run on-task-done (build…
Works with
Categories
Debug the Wado optimizer with the WADOTRACE, WADODUMPPASSBEFORE/AFTER, WADOLISTPASSES, and WADOSKIPPASS env vars. Optimizer Debug is an agent skill from wado-lang/wado. Debug the Wado optimizer with the WADOTRACE, WADODUMPPASSBEFORE/AFTER, WADOLISTPASSES, and WADOSKIPPASS env vars.
Optimizer Debug fits situations like: A NIR/WIR pass is in question — wrong code; A WIR pipeline ICE; just to see what a pass did to the IR.
Run `npx skills add wado-lang/wado --skill optimizer-debug -a claude-code`. Or copy the skill folder (.claude/skills/optimizer-debug in wado-lang/wado) into .claude/skills/optimizer-debug in your project. Claude Code loads it when a task matches its description.
Run `npx skills add wado-lang/wado --skill optimizer-debug -a codex`. Or copy the skill folder (.claude/skills/optimizer-debug in wado-lang/wado) into .agents/skills/optimizer-debug in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add wado-lang/wado --skill optimizer-debug -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/optimizer-debug, .gemini/skills/optimizer-debug, .github/skills/optimizer-debug and .opencode/skills/optimizer-debug in your project.
Going by SKILL.md and its folder, Optimizer Debug needs the command-line tools its instructions call (cargo).
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.
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.
Optimizer Debug is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.5k tokens (SKILL.md is roughly 10k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Optimizer Debug: Ssh Connection Import (feigeCode/navop, 1.8k stars), Debugging Geometry (andymai/brepjs, 114 stars), Chrome Devtools MCP (managedcode/dotnet-skills, 486 stars) and Wasm Emscripten (mohitmishra786/low-level-dev-skills, 253 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
wado-lang (a GitHub organization) maintains it in wado-lang/wado, which has 116 GitHub stars. The repository holds 14 skills in this directory. The repository was last updated on October 7, 2026.
Source: wado-lang/wado on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.