agentleFS
IronAdamantIronAdamant/Chisel/skills/SKILL.md

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

  • Other versions3 projects use a version of this.

    Word for word · 0

    None found.

    Edited · 0

    None found.

    Wrote their own version · 3

    1. simota/agent-skills★ 96same name
    2. meowdiocre/meowpi★ 3same name
    3. 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.

  • In this repository2 other files it gives its agents.

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
  1. Very specific:

    Prefer MCP when chisel-mcp is connected (26 tools).

    line 23
  2. Very specific:

    Always pass --json on the CLI and branch on status before treating a payload as a list.

    line 25

≈ “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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

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

StatusWhat to do
no_dataanalyze
stale_dbupdate, or call again with auto_update true
no_changesNothing in the diff to impact
no_edgesNo test edges yet. Check that test filenames match the discovery patterns
git_errorGit failed. Read error, cwd, and project_dir
errorMissing required argument or unknown shard. Read message
auto_queuedforce analyze on more than 300 code files. Poll job_status with the returned job_id
unsupportedThat 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_tree true re-reads the worktree. Leave it false to use the snapshot.
  • suggest_tests requires file_path. impact requires files. A missing required argument is status: "error", not an empty list.
  • CHISEL_PROJECT_DIR and CHISEL_STORAGE_DIR apply when the CLI flags are absent.
  • CHISEL_INCLUDE_IGNORED=1 scans ignored files. Non-git projects are unfiltered.
  • Shards: CHISEL_SHARDS or .chisel/shards.toml. One snapshot per shard. Unscoped reads aggregate. Unknown shard is status: "error". Cross-shard test edges are overlaid from the parent snapshot. flakiness_trend is set when dated results span two of the last four weeks.
  • Function churn and blame come from one batched git log -p stream; only files it cannot replay (dirty, untracked, diff-driver attributes) spawn git log -L or git blame.
  • Above 2000 code files, file-level churn still runs and per-function churn does not (unit_churn_skipped).
  • A no-op update sets edge_rebuild_skipped true and reads no history.
  • risk_map/triage rows omit zero and empty fields. A refused lock returns the holder's purpose and expiry.
  • chisel run records pytest and Jest and forwards the test process exit code. One snapshot flush for the whole run.
  • chisel watch polls git status and runs update when the worktree changes. --interval is seconds. --once exits after one check.
  • A custom parser is an executable named by CHISEL_EXTRACTOR, or by .chisel/extensions.toml when the process starts with --allow-repo-extractor or CHISEL_ALLOW_REPO_EXTRACTOR=1. CHISEL_DEP_EXTRACTOR or dep_extractor in 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.
  • stats returns counts. It does not embed every historical result.
  • List tools apply a default limit and set truncated when the cap cuts the list.
  • Suggestion source is one of direct, 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.

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.