chisel
Skill5 starsChanged 7 days agoMITView on GitHub
Run Chisel test-impact analysis on any git project — which tests to run after a change, what's risky, what's untested. Use when the user asks to run chisel, find impacted tests, check risk or coverage gaps, or after a batch of code edits.
3 other projects use a version of this.
Adopted by
Most recently taken up by
- meowdiocre/meowpitheir own version, first seen Nov 1, 2026
- simota/agent-skillstheir own version, first seen Oct 23, 2026
- JacobStephens2/skillstheir own version, first seen Oct 17, 2026
Other versions3 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 3
- simota/agent-skills★ 96same name
- meowdiocre/meowpi★ 3same name
- JacobStephens2/skills★ 2same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
The file
We split this skill into the rules it gives an agent
2 rules. About 0 are common, 0 are distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈0
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 23
Prefer MCP when chisel-mcp is connected (26 tools).
- Very specific: line 25
Always pass --json on the CLI and branch on status before treating a payload as a list.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Chisel — Test Impact Analysis for Agents
The binary is chisel, built from src/ with cargo build --release. chisel-mcp is the same binary and starts stdio MCP. Oracle JSON is in tests/fixtures/oracle. Do not pip-install a package to get this binary.
Storage is the snapshot .chisel/store. chisel migrate copies test results from an old chisel.db. Other commands do not open it.
Core loop
chisel --json analyze .
chisel --json diff-impact
chisel --json suggest-tests src/calc.py
chisel --json triage
chisel --json update
chisel run -- pytest tests/Prefer MCP when chisel-mcp is connected (26 tools). The server speaks newline-delimited JSON and also Content-Length. HTTP chisel serve is GET /health, GET /tools, and POST /call only. It is not an MCP URL and it has no /mcp path.
Always pass --json on the CLI and branch on status before treating a payload as a list. no_data, stale_db, and no_changes exit 0. error and git_error exit 1.
Status values
| Status | What to do |
no_data | analyze |
stale_db | update, or call again with auto_update true |
no_changes | Nothing in the diff to impact |
no_edges | No test edges yet. Check that test filenames match the discovery patterns |
git_error | Git failed. Read error, cwd, and project_dir |
error | Missing required argument or unknown shard. Read message |
auto_queued | force analyze on more than 300 code files. Poll job_status with the returned job_id |
unsupported | That call is not available. Read message |
auto_update runs inline only when at most 50 files changed and no job is running. Otherwise the tool still returns and sets auto_update_skip_reason to too_many_changed_files or background_job_running.
Flags that change results
working_treetrue re-reads the worktree. Leave it false to use the snapshot.suggest_testsrequiresfile_path.impactrequiresfiles. A missing required argument isstatus: "error", not an empty list.CHISEL_PROJECT_DIRandCHISEL_STORAGE_DIRapply when the CLI flags are absent.CHISEL_INCLUDE_IGNORED=1scans ignored files. Non-git projects are unfiltered.- Shards:
CHISEL_SHARDSor.chisel/shards.toml. One snapshot per shard. Unscoped reads aggregate. Unknown shard isstatus: "error". Cross-shard test edges are overlaid from the parent snapshot.flakiness_trendis set when dated results span two of the last four weeks. - Function churn and blame come from one batched
git log -pstream; only files it cannot replay (dirty, untracked, diff-driver attributes) spawngit log -Lorgit blame. - Above 2000 code files, file-level churn still runs and per-function churn does not (
unit_churn_skipped). - A no-op
updatesetsedge_rebuild_skippedtrue and reads no history. risk_map/triagerows omit zero and empty fields. A refused lock returns the holder'spurposeand expiry.chisel runrecords pytest and Jest and forwards the test process exit code. One snapshot flush for the whole run.chisel watchpollsgit statusand runsupdatewhen the worktree changes.--intervalis seconds.--onceexits after one check.- A custom parser is an executable named by
CHISEL_EXTRACTOR, or by.chisel/extensions.tomlwhen the process starts with--allow-repo-extractororCHISEL_ALLOW_REPO_EXTRACTOR=1.CHISEL_DEP_EXTRACTORordep_extractorin that file supplies test dependencies. A tool argument cannot turn the repo file on. The path must stay inside the project. Its libraries stay outside this binary. statsreturns counts. It does not embed every historical result.- List tools apply a default limit and set
truncatedwhen the cap cuts the list. - Suggestion
sourceis one ofdirect,co_change,import_graph,static_require,hybrid,fallback,working_tree. - Locks are advisory rows in the snapshot.
When a repo is large
start_job with kind analyze or update returns queued and a real job_id before the work finishes. Poll job_status. cancel_job is observed between files. Do not wait on a synchronous analyze of a monorepo inside an MCP timeout.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

