Agent skill

Mulch Record From Evidence

by jayminwest in jayminwest/mulch

Turn the evidence of a finished work session — git commits, changed files, recently-touched seeds issues — into well-formed ml record invocations.

MITAuto-check passedDevelopment

Install Mulch Record From Evidence

skills CLI
$ npx skills add jayminwest/mulch --skill mulch-record-from-evidence -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install jayminwest/mulch mulch-record-from-evidence --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/jayminwest/mulch.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.factory/skills/mulch-record-from-evidence .claude/skills/mulch-record-from-evidence && rm -rf skills-src

Use ~/.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/

Facts

Skill name
mulch-record-from-evidence
GitHub stars
335
Token cost
~1.6k tokens
SKILL.md length
675 words
Files
1
Skills in repo
1
Repo updated
First seen
Licence
MIT

At a glance

Turn the evidence of a finished work session — git commits, changed files, recently-touched seeds issues — into well-formed ml record invocations.

  • Works in 4 steps: Gather the evidence → Classify each candidate → Emit the ml record calls → …
  • Tasks that involve Commit messages
  • SKILL.md covers When NOT to record, Pre-flight, Procedure and Acceptance, plus 2 more sections
  • Calls git

What it does

Mulch Record From Evidence is an agent skill from jayminwest/mulch. Turn the evidence of a finished work session — git commits, changed files, recently-touched seeds issues — into well-formed ml record invocations. Use at session close, when an agent has made changes worth preserving as mulch expertise but hasn't yet recorded them.

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 Development, covering Commit messages. The repository describes itself as: Growing Expertise for Coding Agents — structured expertise files that accumulate over time, live in git, work with any agent. The licence is MIT.

When your agent uses it

  • Tasks that involve Commit messages

Example prompts

  • “/mulch-record-from-evidence”

Workflow steps

4 steps, taken from the step headings in SKILL.md.

  1. Gather the evidence
  2. Classify each candidate
  3. Emit the ml record calls
  4. Verify and commit

What it can do on your machine

Read from SKILL.md and the folder at commit f0b9d75. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Shell commands in SKILL.md call:

    • git

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Mulch Record From Evidence loads about 1.6k tokens when it runs. Until then it costs about 74 tokens; SKILL.md has 675 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~74
When it runs · the whole SKILL.md, loaded when a task matches
~1.6k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from jayminwest/mulch at commit f0b9d75, republished under its MIT licence (© jayminwest). 675 words, ~1,591 tokens.

Download SKILL.mdSave it as .claude/skills/mulch-record-from-evidence/SKILL.md (or your agent's skills folder).
name
mulch-record-from-evidence
description
Turn the evidence of a finished work session — git commits, changed files, recently-touched seeds issues — into well-formed `ml record` invocations. Use at session close, when an agent has made changes worth preserving as mulch expertise but hasn't yet recorded them.
tools
bun, git, ml
inputs
a finished (or nearly finished) unit of work in the mulch repo, optionally, a specific commit range or seeds issue id to scope the evidence
outputs
one or more validated records appended to `.mulch/expertise/<domain>.jsonl`, a committed `.mulch/` change via `ml sync`

mulch-record-from-evidence

Use this skill when you have just finished a chunk of work in the mulch repo and need to preserve the durable insights as mulch expertise. It converts concrete evidence — what you changed, why, and what broke along the way — into precise ml record calls, instead of inventing ritual filler records. Unrecorded learnings are lost; vague records are noise. The goal is a small number of high-signal records, each backed by real evidence.

When NOT to record

Skip recording entirely if the session produced no durable insight: a trivial typo fix, a dependency bump with no behavioral change, or a revert. A record that just restates the diff is noise. Only record a convention, pattern, decision, or failure that a future agent would benefit from knowing before touching the same area.

Pre-flight

Confirm you are at the mulch repo root and the store is healthy:

bash
ml status                         # per-domain health + record counts
ml doctor                         # exits 0 when records are intact

If ml doctor reports problems, fix the store first (see RUNBOOK.md §4) — do not record on top of a corrupt JSONL.

Procedure

1. Gather the evidence

Let mulch tell you what changed and which domains are implicated:

bash
ml learn                          # changed files + suggested domains
git status                        # uncommitted work
git diff --stat HEAD~1            # what the last commit touched
git log --oneline -5              # recent commit subjects

If the work maps to a tracker, pull its context too:

bash
sd show <issue-id>                # the seeds issue you were working

Write down, for each insight candidate: what you learned, which file or subsystem it concerns, and what evidence supports it (a commit sha, a changed file, a failing test you fixed).

2. Classify each candidate

For every insight worth keeping, decide:

  • Domain — which .mulch/expertise/<domain>.jsonl it belongs to. Run ml status to see existing domains; match the subsystem you touched (e.g. CLI behavior → cli, test infra → testing, type conventions → typescript). Respect the project's per-domain allowed_types rules printed at the top of ml prime — a domain may only accept certain types.
  • Type — convention (a rule to follow), pattern (a reusable approach that worked), decision (a choice made and its rationale), failure (something that broke and how it was resolved), reference (an external fact/link), or guide (a procedure). Custom project types (e.g. flake_symptom, release_decision) carry extra required fields — ml record will tell you which.
  • Classification — foundational (permanent truth), tactical (relevant ~14 days), observational (relevant ~30 days). Default to the shortest shelf life that fits; only mark foundational when the insight is a lasting invariant.
Show full SKILL.md (310 more words)Show less
3. Emit the ml record calls

Run one ml record per insight. Evidence auto-populates from the current git commit and changed files; link explicitly when you can:

bash
ml record cli --type convention \
  --description "ml ready/prime/compact reject non-integer --limit/--budget with exit 1; each command inlines its own parseStrictPositiveInt rather than sharing a util" \
  --evidence-seeds <issue-id>

Useful evidence flags:

  • --evidence-seeds <id> / --evidence-gh <id> — link a tracker.
  • --evidence-commit <sha> — pin a specific commit.
  • --relates-to <mx-id> — link a related mulch record.

Naming a record (a stable identity) makes a re-record merge outcomes into the existing entry instead of appending a duplicate — prefer this when you are refining an insight you recorded before. If validation fails, mulch prints a copy-paste retry hint with the missing required fields pre-filled; fill them in and re-run.

4. Verify and commit
bash
ml validate                       # confirm every new record is well-formed
ml prime <domain>                 # eyeball that the new record reads cleanly
ml sync                           # validate, stage, and commit .mulch/

Do not git push unless the user asks — leave the commit local.

Acceptance

The skill is complete when all hold:

  • Each durable insight from the session is captured by exactly one record (no duplicates, no filler).
  • ml validate exits 0.
  • ml prime <domain> shows the new record(s) with sensible domain/type/classification.
  • ml sync has committed the .mulch/ change; git status is clean.

Failure modes

SymptomLikely causeRemedy
ml record rejects --type for a domainThe domain's allowed_types doesn't permit that type.Pick an allowed type (check the contract at the top of ml prime), or record under a different domain.
Validation error about a missing fieldA custom type requires extra fields.Re-run with the fields from the printed retry hint.
Two near-identical records appearRecorded anonymously twice instead of naming the record.Name the record so re-records merge; remove the duplicate with ml delete <id>.
ml sync reports an unknown typeConfig declaring the custom type hasn't merged yet.Wait for config to land, or re-run after merging; sync intentionally ignores --allow-unknown-types.

Further reading

  • AGENTS.md — repo-wide conventions and the agent workflow.
  • CLAUDE.md — record types, classifications, and the registry layer.
  • CONFIG.md — .mulch/mulch.config.yaml reference (domains, custom types, hooks).
  • RUNBOOK.md — operational procedures, including debugging a broken store.

© jayminwest, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .factory/skills/mulch-record-from-evidence of jayminwest/mulch.

Open the folder on GitHubat commit f0b9d75

Compare with similar skills

Mulch Record From Evidence 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.

Mulch Record From Evidence compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Mulch Record From Evidence this skilljayminwest/mulch335—~1.6kAutomated safety check: PassMIT
Contextual Commit Messagesyamadashy/repomix29k1 repos~2.7kAutomated safety check: PassMIT
React Router Release Notes Prepremix-run/react-router57k—~1.1kAutomated safety check: PassMIT
Caveman Commitvishiri/fantasia-archive40913 repos~642Automated safety check: PassGPL-3.0
PR Finalize Reviewmicrosoft/garnet12k—~3.1kAutomated safety check: PassMIT
ToolJet Multi-Repo CommitToolJet/ToolJet41k—~1.3kAutomated safety check: PassAGPL-3.0

Similar skills

  • Writes Conventional Commits whose bodies carry action lines recording the intent, decisions and constraints behind a change, not only what changed.

    29k GitHub starsUsed in 1 repo~2.7k tokens
    DevelopmentAuto-check passed
  • React Router Release Notes Prep

    remix-run/react-router

    Polishes pending React Router change files before the versioning scripts run, and decides whether a long-form What's Changed section is warranted.

    57k GitHub stars~1.1k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Caveman Commit

    vishiri/fantasia-archive

    Ultra-compressed commit message generator. An agent skill from vishiri/fantasia-archive.

    409 GitHub starsUsed in 13 repos~642 tokens
    DevelopmentAuto-check passed
  • PR Finalize Review

    microsoft/garnet

    Official

    Checks that a pull request's title and description match its implementation and reviews the code for Garnet best practices, reporting findings without posting them.

    12k GitHub stars~3.1k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Commits changes across ToolJet's root repo and its server/ee and frontend/ee submodules, writing messages from the diffs and updating submodule pointers in order.

    41k GitHub stars~1.3k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Git Workflow and Versioning

    addyosmani/agent-skills

    Sets git habits for every change: short-lived branches, atomic commits with descriptive messages, clean pull requests, plus versioning, tagging and changelogs for releases.

    105k GitHub starsUsed in 2 repos~3.5k tokens
    DevelopmentAuto-check: notes

Categories

Questions about Mulch Record From Evidence

What does Mulch Record From Evidence do?

Turn the evidence of a finished work session — git commits, changed files, recently-touched seeds issues — into well-formed ml record invocations. Mulch Record From Evidence is an agent skill from jayminwest/mulch. Turn the evidence of a finished work session — git commits, changed files, recently-touched seeds issues — into well-formed ml record invocations.

When should I use Mulch Record From Evidence?

Mulch Record From Evidence fits situations like: tasks that involve Commit messages.

How do I install Mulch Record From Evidence in Claude Code?

Run `npx skills add jayminwest/mulch --skill mulch-record-from-evidence -a claude-code`. Or copy the skill folder (.factory/skills/mulch-record-from-evidence in jayminwest/mulch) into .claude/skills/mulch-record-from-evidence in your project. Claude Code loads it when a task matches its description.

How do I install Mulch Record From Evidence in Codex?

Run `npx skills add jayminwest/mulch --skill mulch-record-from-evidence -a codex`. Or copy the skill folder (.factory/skills/mulch-record-from-evidence in jayminwest/mulch) into .agents/skills/mulch-record-from-evidence in your project. Codex loads it when a task matches its description.

Can I use Mulch Record From Evidence in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add jayminwest/mulch --skill mulch-record-from-evidence -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/mulch-record-from-evidence, .gemini/skills/mulch-record-from-evidence, .github/skills/mulch-record-from-evidence and .opencode/skills/mulch-record-from-evidence in your project.

What does Mulch Record From Evidence need to run?

Going by SKILL.md and its folder, Mulch Record From Evidence needs the command-line tools its instructions call (git).

Does Mulch Record From Evidence access the network?

SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Mulch Record From Evidence safe to install?

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.

What licence does Mulch Record From Evidence use?

Mulch Record From Evidence is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Mulch Record From Evidence use?

About 1.6k tokens (SKILL.md is roughly 6.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Mulch Record From Evidence?

Skills that share tags, products or a category with Mulch Record From Evidence: Contextual Commit Messages (yamadashy/repomix, 29k stars), React Router Release Notes Prep (remix-run/react-router, 57k stars), Caveman Commit (vishiri/fantasia-archive, 409 stars) and PR Finalize Review (microsoft/garnet, 12k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Mulch Record From Evidence?

jayminwest (a GitHub user) maintains it in jayminwest/mulch, which has 335 GitHub stars. The repository was last updated on September 29, 2026.

Source: jayminwest/mulch on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.