Vercel Composition Patterns
supabase/supabase
React composition patterns that scale. An agent skill from supabase/supabase.
Augments a bazel run CLI command for heir-opt with additional flags that dump the IR before each compiler pass, allowing the agent to inspect intermediate IR during compilation, identify a…
$ npx skills add google/heir --skill dump-intermediate-ir -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install google/heir dump-intermediate-ir --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/google/heir.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/dump_intermediate_ir .claude/skills/dump-intermediate-ir && 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 "dump-intermediate-ir" agent skill from https://github.com/google/heir/tree/main/.agents/skills/dump_intermediate_ir into .claude/skills/dump-intermediate-ir/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dump-intermediate-ir", 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/google/heir/tree/main/.agents/skills/dump_intermediate_irType 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 google/heir --skill dump-intermediate-ir -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install google/heir dump-intermediate-ir --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/google/heir.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/dump_intermediate_ir .agents/skills/dump-intermediate-ir && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "dump-intermediate-ir" agent skill from https://github.com/google/heir/tree/main/.agents/skills/dump_intermediate_ir into .agents/skills/dump-intermediate-ir/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dump-intermediate-ir", 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 google/heir --skill dump-intermediate-ir -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install google/heir dump-intermediate-ir --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/google/heir.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/dump_intermediate_ir .cursor/skills/dump-intermediate-ir && 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 "dump-intermediate-ir" agent skill from https://github.com/google/heir/tree/main/.agents/skills/dump_intermediate_ir into .cursor/skills/dump-intermediate-ir/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dump-intermediate-ir", 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/google/heir.git --path .agents/skills/dump_intermediate_ir--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 google/heir --skill dump-intermediate-ir -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install google/heir dump-intermediate-ir --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/google/heir.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/dump_intermediate_ir .gemini/skills/dump-intermediate-ir && 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 "dump-intermediate-ir" agent skill from https://github.com/google/heir/tree/main/.agents/skills/dump_intermediate_ir into .gemini/skills/dump-intermediate-ir/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dump-intermediate-ir", 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 google/heir dump-intermediate-irInstalls 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 google/heir --skill dump-intermediate-ir -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/google/heir.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/dump_intermediate_ir .github/skills/dump-intermediate-ir && 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 "dump-intermediate-ir" agent skill from https://github.com/google/heir/tree/main/.agents/skills/dump_intermediate_ir into .github/skills/dump-intermediate-ir/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dump-intermediate-ir", 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 google/heir --skill dump-intermediate-ir -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install google/heir dump-intermediate-ir --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/google/heir.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/dump_intermediate_ir .opencode/skills/dump-intermediate-ir && 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 "dump-intermediate-ir" agent skill from https://github.com/google/heir/tree/main/.agents/skills/dump_intermediate_ir into .opencode/skills/dump-intermediate-ir/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dump-intermediate-ir", 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.
dump-intermediate-irAugments a bazel run CLI command for heir-opt with additional flags that dump the IR before each compiler pass, allowing the agent to inspect intermediate IR during compilation, identify a…
Dump Intermediate Ir is an agent skill from google/heir, published by the product's own GitHub organization. Augments a bazel run CLI command for heir-opt with additional flags that dump the IR before each compiler pass, allowing the agent to inspect intermediate IR during compilation, identify a particular pass at which the pipeline fails, or extract the corresponding IR input to a particular pass for further debugging.
Its SKILL.md is about 1.4k 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. The repository describes itself as: The compiler for homomorphic encryption. The licence is Apache-2.0.
Read from SKILL.md and the folder at commit 4721d8d. 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:
bazelFrom 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.
Dump Intermediate Ir loads about 1.4k tokens when it runs. Until then it costs about 85 tokens; SKILL.md has 460 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 google/heir at commit 4721d8d, republished under its Apache-2.0 licence (© google). 460 words, ~1,436 tokens.
.claude/skills/dump-intermediate-ir/SKILL.md (or your agent's skills folder).This skill guides the agent in adding flags to the heir-opt tool to dump the
compiled IR after each compiler pass to a series of files. These files can then
be inspected to identify the failing pass as well as the IR input to the failing
pass.
bazel run commandTo convert a bazel run command, add the flags --mlir-print-ir-before-all and
--mlir-print-ir-tree-dir=<PATH>, where <PATH> is a path to a temporary
directory.
For example, given the following input command (which can be produced by the
lit-to-bazel skill),
bazel run //tools:heir-opt -- --mlir-to-ckks='ciphertext-degree=8' --scheme-to-openfhe='entry-function=dot_product' /path/to/fileThe agent should produce the following (again where <PATH> is chosen
appropriately)
bazel run //tools:heir-opt -- --mlir-to-ckks='ciphertext-degree=8' --scheme-to-openfhe='entry-function=dot_product' --mlir-print-ir-before-all --mlir-print-ir-tree-dir=<PATH> /path/to/file--mlir-print-ir-tree-dir nests the dumped IR in a tree structure that matches
the nesting structure of the pass pipeline. In particular, by default all passes
will be nested under a builtin_module_no-symbol-name/ folder, and any passes
in the pipeline that are anchored on nested operations like func.func will be
placed in subdirectories based on the name, such as
func_func_matvec__decrypt__result0 for a pass anchored on func.func when the
IR contains a function called matvec__decrypt__result0.
For example, if the flag --mlir-print-ir-tree-dir=/tmp/mlir is used, then the
dumped files might look like:
/tmp/mlir/
└── builtin_module_no-symbol-name
├── 0_annotate-module.mlir
├── 10_compare-to-sign-rewrite.mlir
├── 11_canonicalize.mlir
├── 12_cse.mlir
├── 13_apply-folders.mlir
├── 14_canonicalize.mlir
├── 15_insert-rotate.mlir
├── 16_cse.mlir
├── 17_canonicalize.mlir
├── 18_cse.mlir
├── 19_collapse-insertion-chains.mlir
├── 1_debug-validate-names.mlir
├── 20_sccp.mlir
├── 21_canonicalize.mlir
...
├── func_func__assign_layout_9911323688340753831
│ ├── 47_0_affine-expand-index-ops.mlir
│ ├── 47_1_affine-simplify-structures.mlir
│ ├── 47_2_affine-loop-normalize.mlir
│ └── 47_3_forward-insert-slice-to-extract-slice.mlir
├── func_func_matvec
│ ├── 47_0_affine-expand-index-ops.mlir
│ ├── 47_1_affine-simplify-structures.mlir
│ ├── 47_2_affine-loop-normalize.mlir
│ └── 47_3_forward-insert-slice-to-extract-slice.mlir
├── func_func_matvec__decrypt__result0
│ ├── 47_0_affine-expand-index-ops.mlir
│ ├── 47_1_affine-simplify-structures.mlir
│ ├── 47_2_affine-loop-normalize.mlir
│ └── 47_3_forward-insert-slice-to-extract-slice.mlir
└── func_func_matvec__encrypt__arg0
├── 47_0_affine-expand-index-ops.mlir
├── 47_1_affine-simplify-structures.mlir
├── 47_2_affine-loop-normalize.mlir
└── 47_3_forward-insert-slice-to-extract-slice.mlirAt the top of each file, a comment is printed indicating how the file was
generated, containing e.g., IR Dump Before CSEPass (cse). This will say
whether the IR was dumped before or after a pass, as well as whether (in the
case of --mlir-print-ir-after-failure) the pass failed.
Below the comment, the MLIR is printed in textual format.
--mlir-print-ir-tree-dir does not delete existing files, so
if the command is re-run, be sure to remove the existing temporary files
first.--mlir-print-ir-before-all prints the IR before a
pass runs, which is required to extract the IR if a pass has a hard error like
a segfault. To dump the IR after each pass, use --mlir-print-ir-after-all.--mlir-print-ir-after-failure to dump the IR at failure time, which can
provide additional debugging information. One notable example is when dialect
conversion fails, the IR dumped by --mlir-print-ir-after-failure includes
the partially-converted IR including any unrealized_conversion_cast ops that
failed to be removed.--mlir-print-ir-after-change, which only prints the IR if the compiler pass
changed it. There is no "before change" analogue.--mlir-print-ir-before=<pass_name>, which only prints the IR before the
target pass. Since a pass can be run multiple times in a pipeline, this may
still produce many files if, for example, the pass is a common one like cse.Copy this checklist and track progress:
- [ ] Step 1: Identify the command to convert, perhaps with `lit-to-bazel`
- [ ] Step 2: Add the relevant flags, defaulting to `--mlir-print-ir-before-all` and `--mlir-print-ir-tree-dir` if there is no specific reason to use the more specific flags.
- [ ] Step 3: Inspect the generated command and run it.
- [ ] Step 4: Inspect the dumped files for information.<!-- mdformat global-off -->
© google, Apache-2.0. 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 .agents/skills/dump_intermediate_ir of google/heir.
Open the folder on GitHubat commit 4721d8d
Dump Intermediate Ir 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 |
|---|---|---|---|---|---|---|
| Dump Intermediate Ir this skillgoogle/heir | 929 | — | ~1.4k | Automated safety check: Pass | Apache-2.0 | |
| Vercel Composition Patternssupabase/supabase | 111k | 59 repos | ~726 | Automated safety check: Pass | MIT | |
| Finishing a Development Branchobra/superpowers | 296k | 5 repos | ~1.9k | Automated safety check: Pass | MIT | |
| Typescript Advanced Typesrolling-scopes/rsschool-app | 10k | 25 repos | ~4.2k | Automated safety check: Pass | MPL-2.0 | |
| PR Babysitteropeninterpreter/openinterpreter | 69k | 3 repos | ~4.2k | Automated safety check: Pass | Apache-2.0 | |
| Code Review ChecklistshareAI-lab/learn-claude-code | 78k | 5 repos | ~1.1k | Automated safety check: Pass | MIT |
supabase/supabase
React composition patterns that scale. An agent skill from supabase/supabase.
obra/superpowers
Walks the last step of a branch: confirm tests pass, detect the git environment, ask how to integrate, carry out your choice and clean up the worktree.
rolling-scopes/rsschool-app
Master TypeScript's advanced type system including generics, conditional types, mapped types, template literals, and utility types for building type-safe applications.
openinterpreter/openinterpreter
Watches an open GitHub pull request until it merges, handling review comments, diagnosing CI failures and retrying flaky checks along the way.
shareAI-lab/learn-claude-code
Reviews code against a five-part checklist covering security, correctness, performance, maintainability and testing, and reports findings in a fixed format.
onyx-dot-app/onyx
Iteratively improves a PR (GitHub), MR (GitLab), or shelved changelist (Perforce) until Greptile gives it a 5/5 confidence score with zero unresolved comments.
google/heir
Converts MLIR lit test files to bazel run commands. An agent skill from google/heir.
google/heir
Converts end-to-end (e2e) test targets or paths to bazel run commands for heir-opt.
google/heir
Describes a decision tree of steps and skills to utilize when, starting from a test failure or the failure of bazel run command using heir-opt, you would like to produce a reproducing input IR that…
Categories
Augments a bazel run CLI command for heir-opt with additional flags that dump the IR before each compiler pass, allowing the agent to inspect intermediate IR during compilation, identify a…. Dump Intermediate Ir is an agent skill from google/heir, published by the product's own GitHub organization. Augments a bazel run CLI command for heir-opt with additional flags that dump the IR before each compiler pass, allowing the agent to inspect intermediate IR during compilation, identify a particular pass at which the pipeline fails, or extract the corresponding IR input to a particular pass for further debugging.
Dump Intermediate Ir fits situations like: development work in your project.
Run `npx skills add google/heir --skill dump-intermediate-ir -a claude-code`. Or copy the skill folder (.agents/skills/dump_intermediate_ir in google/heir) into .claude/skills/dump-intermediate-ir in your project. Claude Code loads it when a task matches its description.
Run `npx skills add google/heir --skill dump-intermediate-ir -a codex`. Or copy the skill folder (.agents/skills/dump_intermediate_ir in google/heir) into .agents/skills/dump-intermediate-ir 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 google/heir --skill dump-intermediate-ir -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/dump-intermediate-ir, .gemini/skills/dump-intermediate-ir, .github/skills/dump-intermediate-ir and .opencode/skills/dump-intermediate-ir in your project.
Going by SKILL.md and its folder, Dump Intermediate Ir needs the command-line tools its instructions call (bazel).
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.
Dump Intermediate Ir is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.4k tokens (SKILL.md is roughly 5.7k 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 Dump Intermediate Ir: Vercel Composition Patterns (supabase/supabase, 111k stars), Finishing a Development Branch (obra/superpowers, 296k stars), Typescript Advanced Types (rolling-scopes/rsschool-app, 10k stars) and PR Babysitter (openinterpreter/openinterpreter, 69k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
google (a GitHub organization, an official publisher) maintains it in google/heir, which has 929 GitHub stars. The repository holds 4 skills in this directory. The repository was last updated on October 8, 2026.
Source: google/heir on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.