Ab Testing
coreyhaines31/marketingskills
When the user wants to plan, design, or implement an A/B test or experiment, or build a growth experimentation program.
Add full builder API support (@tag, @parse, @split) for a TTIR op.
$ npx skills add tenstorrent/tt-mlir --skill add-ttir-builder-op -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install tenstorrent/tt-mlir add-ttir-builder-op --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/tenstorrent/tt-mlir.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/add-ttir-builder-op .claude/skills/add-ttir-builder-op && 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 "add-ttir-builder-op" agent skill from https://github.com/tenstorrent/tt-mlir/tree/main/.claude/skills/add-ttir-builder-op into .claude/skills/add-ttir-builder-op/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-ttir-builder-op", 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/tenstorrent/tt-mlir/tree/main/.claude/skills/add-ttir-builder-opType 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 tenstorrent/tt-mlir --skill add-ttir-builder-op -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install tenstorrent/tt-mlir add-ttir-builder-op --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/tenstorrent/tt-mlir.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/add-ttir-builder-op .agents/skills/add-ttir-builder-op && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "add-ttir-builder-op" agent skill from https://github.com/tenstorrent/tt-mlir/tree/main/.claude/skills/add-ttir-builder-op into .agents/skills/add-ttir-builder-op/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-ttir-builder-op", 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 tenstorrent/tt-mlir --skill add-ttir-builder-op -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install tenstorrent/tt-mlir add-ttir-builder-op --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/tenstorrent/tt-mlir.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/add-ttir-builder-op .cursor/skills/add-ttir-builder-op && 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 "add-ttir-builder-op" agent skill from https://github.com/tenstorrent/tt-mlir/tree/main/.claude/skills/add-ttir-builder-op into .cursor/skills/add-ttir-builder-op/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-ttir-builder-op", 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/tenstorrent/tt-mlir.git --path .claude/skills/add-ttir-builder-op--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 tenstorrent/tt-mlir --skill add-ttir-builder-op -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install tenstorrent/tt-mlir add-ttir-builder-op --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/tenstorrent/tt-mlir.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/add-ttir-builder-op .gemini/skills/add-ttir-builder-op && 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 "add-ttir-builder-op" agent skill from https://github.com/tenstorrent/tt-mlir/tree/main/.claude/skills/add-ttir-builder-op into .gemini/skills/add-ttir-builder-op/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-ttir-builder-op", 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 tenstorrent/tt-mlir add-ttir-builder-opInstalls 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 tenstorrent/tt-mlir --skill add-ttir-builder-op -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/tenstorrent/tt-mlir.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/add-ttir-builder-op .github/skills/add-ttir-builder-op && 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 "add-ttir-builder-op" agent skill from https://github.com/tenstorrent/tt-mlir/tree/main/.claude/skills/add-ttir-builder-op into .github/skills/add-ttir-builder-op/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-ttir-builder-op", 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 tenstorrent/tt-mlir --skill add-ttir-builder-op -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install tenstorrent/tt-mlir add-ttir-builder-op --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/tenstorrent/tt-mlir.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/add-ttir-builder-op .opencode/skills/add-ttir-builder-op && 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 "add-ttir-builder-op" agent skill from https://github.com/tenstorrent/tt-mlir/tree/main/.claude/skills/add-ttir-builder-op into .opencode/skills/add-ttir-builder-op/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-ttir-builder-op", 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.
add-ttir-builder-opAdd full builder API support (@tag, @parse, @split) for a TTIR op.
Add Ttir Builder Op is an agent skill from tenstorrent/tt-mlir. Add full builder API support (@tag, @parse, @split) for a TTIR op. Use this skill whenever the user wants to add builder support for a new TTIR op, upgrade an existing opproxy-based op to use @tag/@parse/@split decorators, or asks about how to add builder API for an op in ttirbuilder.py. Also trigger when the user mentions adding tag/parse/split for an op, or wants to make an op work with the parse/split test infrastructure.
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 Marketing & SEO, covering A/B testing. The repository describes itself as: Tenstorrent MLIR compiler. The licence is Apache-2.0.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 78b7044. 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:
cmakepytestFrom 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.
Add Ttir Builder Op loads about 1.6k tokens when it runs. Until then it costs about 113 tokens; SKILL.md has 660 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 tenstorrent/tt-mlir at commit 78b7044, republished under its Apache-2.0 licence (© tenstorrent). 660 words, ~1,615 tokens.
.claude/skills/add-ttir-builder-op/SKILL.md (or your agent's skills folder).This skill walks through adding full @tag, @parse, and @split builder support for a TTIR op. The process touches 3 files and creates 1 test file.
| File | Purpose |
|---|---|
tools/builder/ttir/ttir_builder.py | Builder methods (@tag, @parse, @split) |
tools/golden/mapping.py | Golden function mappings (torch reference implementations) |
test/python/golden/mlir_snippets/ttir/ttir_<op_name>.mlir | MLIR snippet for parse/split tests |
include/ttmlir/Dialect/TTIR/IR/TTIROps.td | Op definitions (read-only reference) |
Check include/ttmlir/Dialect/TTIR/IR/TTIROps.td for the op definition to understand its type (unary, binary, reduction, convolution, etc.) and any special attributes.
Then find an existing op of the same type that already has full @tag/@parse/@split support in tools/builder/ttir/ttir_builder.py. This is your reference implementation. Some examples:
sigmoid (~line 7591), cos (~line 2459)add (~line 7467), multiply (~line 7077)sort (~line 3689), rearrange (~line 1083)sum (~line 7325), reduce_and (~line 1208)max_pool2d_with_indices (~line 4224)conv2d (~line 11102), matmul (~line 12349)Search for @tag(ttir. in ttir_builder.py to find all ops with full support. Pick the closest match to your new op and use it as a template throughout the remaining steps.
Check tools/golden/mapping.py for the op's entry in the golden mapping dict.
The golden function MUST match how the @tag method calls it. The @tag method passes all input golden tensors followed by mlir_output_type as the last argument. If the mapping points directly to a bare torch function (e.g., torch.nn.functional.gelu), it will fail at runtime because those don't accept an output type parameter.
Look at how the reference op's golden function is defined in tools/golden/mapping.py and follow the same pattern. The wrapper calls the underlying torch function and converts the output dtype:
def ttir_<op_name>_golden(
input_tensor: GoldenMapTensor, ..., output_type_mlir: Type
) -> GoldenMapTensor:
output_dtype = mlir_type_to_torch_dtype(output_type_mlir)
return torch.<op_function>(input_tensor, ...).to(output_dtype)The number and type of parameters before output_type_mlir depends on the op — match your reference op's golden function signature.
Then update the mapping dict to point to the new wrapper.
If the golden function already has the correct signature, no changes are needed.
In tools/builder/ttir/ttir_builder.py, replace the existing _op_proxy method (if any) or add new methods. Follow your reference op's implementation closely, substituting:
SigmoidOp -> <OpName>Op)sigmoid -> <op_name>)sigmoid_module -> <op_name>_module)old_op.input, binary uses old_op.lhs/old_op.rhs — check your reference)Key points that apply to all op types:
@tag method must return OpResult (not OpView)get_opview_from_method, get_opview_from_parser, get_opview_from_split retrieve the MLIR op class from the decorator metadata_set_golden_tensor in all three methods_annotate_presharded_arg in all @split methods@split method creates an isolated Module with its own TTIRBuilder instanceCreate test/python/golden/mlir_snippets/ttir/ttir_<op_name>.mlir.
The test_parse_split_ops.py test auto-discovers all .mlir files in this directory — no test code changes needed.
Look at an existing snippet for a similar op to get the right format. The snippet should define a minimal module with a func.func that exercises the op. For example, find existing snippets with:
ls test/python/golden/mlir_snippets/ttir/Check the relevant test file (e.g., test/python/golden/ttir_ops/eltwise/test_ttir_unary.py for elementwise ops) for the existing test wrapper. Since output_type and loc are added as optional parameters, existing wrappers that call builder.<op_name>(in0, unit_attrs=unit_attrs) remain backward-compatible.
If no test wrapper exists yet, add one following the pattern of nearby ops in the same test file.
# Rebuild (copies source to build/python_packages/)
cmake --build build
# Test parse/split (auto-discovered from MLIR snippet)
pytest test/python/golden/test_parse_split_ops.py -k "ttir_<op_name>"
# Test builder (adjust test file path based on op type)
export SYSTEM_DESC_PATH=$(pwd)/ttrt-artifacts/system_desc.ttsys
pytest test/python/golden/ttir_ops/eltwise/test_ttir_unary.py -k "<op_name>"The rebuild step is essential because tests run against build/python_packages/, not the source files.
TTIROps.td — identified op type and found reference implementationtools/golden/mapping.py accepts output_type_mlir as last arg@tag method added in ttir_builder.py (returns OpResult, not OpView)@parse method added in ttir_builder.py@split method added in ttir_builder.pytest/python/golden/mlir_snippets/ttir/cmake --build build run to install changes© tenstorrent, 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 .claude/skills/add-ttir-builder-op of tenstorrent/tt-mlir.
Open the folder on GitHubat commit 78b7044
Add Ttir Builder Op 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 |
|---|---|---|---|---|---|---|
| Add Ttir Builder Op this skilltenstorrent/tt-mlir | 314 | — | ~1.6k | Automated safety check: Pass | Apache-2.0 | |
| Ab Testingcoreyhaines31/marketingskills | 54k | 3 repos | ~3.1k | Automated safety check: Pass | MIT | |
| AnalyticsNexus-JPF/note-companion | 870 | 7 repos | ~2.2k | Automated safety check: Pass | MIT | |
| Ad Test Designeraaron-he-zhu/aaron-marketing-skills | 2.9k | 2 repos | ~2.8k | Automated safety check: Pass | Apache-2.0 | |
| Ab Test Analyzeririnabuht12-oss/marketing-skills | 4.1k | — | ~1.4k | Automated safety check: Pass | None | |
| Ab Test Store Listingappeeky/aso-skills | 2.2k | — | ~1.8k | Automated safety check: Pass | MIT |
coreyhaines31/marketingskills
When the user wants to plan, design, or implement an A/B test or experiment, or build a growth experimentation program.
Nexus-JPF/note-companion
When the user wants to set up, improve, or audit analytics tracking and measurement.
aaron-he-zhu/aaron-marketing-skills
A skill your agent uses when the user asks to "design an A/B test", "set up a creative/landing test", "run an incrementality test", or "is this result statistically and practically material?"…
irinabuht12-oss/marketing-skills
Statistical significance calculator for A/B test results with sample size requirements, segment breakdowns, and hypothesis generation.
appeeky/aso-skills
When the user wants to A/B test App Store product page elements to improve conversion rate.
freekmurze/dotfiles
When the user wants to plan, design, or implement an A/B test or experiment.
tenstorrent/tt-mlir
How to add a new operation (op) to the tt-mlir compiler across all layers: TTIR/TTNN dialect definitions, StableHLO composite conversion, TTIR-to-TTNN conversion, EmitC/EmitPy conversions…
tenstorrent/tt-mlir
Compile and optionally execute every func.func in an ops.mlir-style snippet file (or every .mlir file in a directory) using runopsmlirsnippets.py.
tenstorrent/tt-mlir
Add a new composite op decomposition pattern to the TTMetal pipeline.
tenstorrent/tt-mlir
Uplift the TTSim version used by tt-mlir CI and refresh WH/BH simulator skips.
tenstorrent/tt-mlir
Validate a tt-mlir PR against tt-xla by creating a cherry-picked branch and triggering CI.
tenstorrent/tt-mlir
Triage a tt-metal uplift diff or digest of TTFATAL validation changes against what tt-mlir guarantees at each optimization level (0: workarounds only, 1: optimizer with DRAM-only fallback, 2: L1…
Categories
Add full builder API support (@tag, @parse, @split) for a TTIR op. Add Ttir Builder Op is an agent skill from tenstorrent/tt-mlir. Add full builder API support (@tag, @parse, @split) for a TTIR op.
Add Ttir Builder Op fits situations like: the user wants to add builder support for a new TTIR op; upgrade an existing opproxy-based op to use @tag/@parse/@split decorators; asks about how to add builder API for an op in ttirbuilder.py; the user mentions adding tag/parse/split for an op.
Run `npx skills add tenstorrent/tt-mlir --skill add-ttir-builder-op -a claude-code`. Or copy the skill folder (.claude/skills/add-ttir-builder-op in tenstorrent/tt-mlir) into .claude/skills/add-ttir-builder-op in your project. Claude Code loads it when a task matches its description.
Run `npx skills add tenstorrent/tt-mlir --skill add-ttir-builder-op -a codex`. Or copy the skill folder (.claude/skills/add-ttir-builder-op in tenstorrent/tt-mlir) into .agents/skills/add-ttir-builder-op 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 tenstorrent/tt-mlir --skill add-ttir-builder-op -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/add-ttir-builder-op, .gemini/skills/add-ttir-builder-op, .github/skills/add-ttir-builder-op and .opencode/skills/add-ttir-builder-op in your project.
Going by SKILL.md and its folder, Add Ttir Builder Op needs the command-line tools its instructions call (cmake and pytest). Our summary lists: Python 3.
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.
Add Ttir Builder Op 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.6k tokens (SKILL.md is roughly 6.5k 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 Add Ttir Builder Op: Ab Testing (coreyhaines31/marketingskills, 54k stars), Analytics (Nexus-JPF/note-companion, 870 stars), Ad Test Designer (aaron-he-zhu/aaron-marketing-skills, 2.9k stars) and Ab Test Analyzer (irinabuht12-oss/marketing-skills, 4.1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
tenstorrent (a GitHub organization) maintains it in tenstorrent/tt-mlir, which has 314 GitHub stars. The repository holds 9 skills in this directory. The repository was last updated on October 10, 2026.
Source: tenstorrent/tt-mlir on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.