commit-intent

A tool that records why staged code changes were made in a Markdown document inside docs/intents/.

In plain words
What is it for?
Previewing matching chats, generating and staging an intent document, checking transcript access, and running the tool's self-test.
Why use it?
It preserves the user's original intent and key decisions from coding-agent conversations alongside the commit, making later review easier.

Skill for Claude CodeCodex

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add skills/olddustysocksunderthecouch/commit-intent/skill
Any agent
npx skills add olddustysocksunderthecouch/commit-intent --skill skill
Clone the repo
git clone --depth 1 https://github.com/olddustysocksunderthecouch/commit-intent

Made for: Claude Code, Codex.

Per session 67 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 779 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00067 $0.00779
Opus 5 $0.00034 $0.00390
Sonnet 5 $0.00013 $0.00156
Haiku 4.5 $0.00007 $0.00078

Measured 2d ago against content hash 04178f45289d, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

commit-intent scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.

The scan reads SKILL.md. This mod also ships 3 executable files (scripts/collect.mjs, scripts/generate.mjs, scripts/generate.sh), listed below but not scanned — reading those needs a real analyzer, not pattern matching.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

payload/skill/SKILL.md · 48 lines

How it starts

The opening of the file, as written. The whole thing — 48 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Commit intent docs

Every commit in this repo should carry a doc in docs/intents/ recording why the change exists: the user's intent distilled from the AI chats that produced the staged code (primary), key decisions, and a skim of what was built. Generation runs automatically from the repo's pre-commit hook (wired by the commit-intent installer, fail-open) and the doc is staged into the same commit. This skill is the manual entry point to the same engine.

This directory is managed by the commit-intent installer — improvements belong in the commit-intent repo, not here.

Commands

All via Bash, from the repo root:

# Preview: which chats match the currently staged files (no LLM call, no writes)
sh .claude/skills/commit-intent/scripts/generate.sh --dry-run

# Generate for real: writes docs/intents/<local-time>_<slug>.md and stages it
sh .claude/skills/commit-intent/scripts/generate.sh

# Source health check: are Claude Code transcripts and the Cursor DB readable?
sh .claude/skills/commit-intent/scripts/generate.sh --self-test

# Test with simulated staged files (bypasses the index; doc written but NOT staged)
sh .claude/skills/commit-intent/scripts/generate.sh --files=src/foo.ts,src/bar.ts

Environment knobs

  • INTENT_MODEL — model for the extraction call (default sonnet)
  • INTENT_SKIP=1 — skip generation for one commit (or use git commit --no-verify)
  • INTENT_TIMEOUT_MS — LLM call timeout (default 90000)
  • INTENT_CLAUDE_BIN — path to the claude binary (default ~/.local/bin/claude, then PATH)
  • INTENT_DEBUG=1 — verbose matching/scan diagnostics on stderr

How it works

scripts/collect.mjs deterministically finds candidate chats — Claude Code session transcripts under ~/.claude/projects/ (matched by Edit/Write tool calls touching staged files, plus filename mentions) and Cursor composers in its global SQLite store (matched by filename mentions) — within a 14-day window. It builds a redacted, size-capped evidence bundle. scripts/generate.mjs then makes one headless claude -p call (no tools) to distill the doc, writes it with script-owned frontmatter (including staged_diff_sha, the dedupe key), and stages it.

Read the full file on GitHub · 48 lines

Files

What ships with it

4 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 2d ago First seen · 48 lines · 67 tokens per session scan A 04178f45289d

Subscribe to this mod's changes

commit-intent is a skill published in the GitHub repository olddustysocksunderthecouch/commit-intent (11 stars, last pushed 1mo ago), licensed MIT. It adds 67 tokens to every session and 779 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories

systematic-debugging

Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes.

obra/superpowers · 21 tokens

next-cache-components-adoption

Turn on Cache Components in a Next.js app and resolve the blocking routes it surfaces. Use when the user wants to enable, adopt, or migrate to Cache Components, flip the cacheComponents flag, work through a flood of blocking-prerender / instant validation errors, run the cache-components-instant-false codemod, or…

vercel/next.js · 95 tokens

babysit-pr

Babysit a GitHub pull request after creation by continuously polling review comments, CI checks/workflow runs, and mergeability state until the PR is merged/closed or user help is required. Diagnose failures, retry likely flaky failures up to 3 times, auto-fix/push branch-related issues when appropriate, and keep…

openai/codex · 114 tokens

imagegen

Generate or edit raster images when the task benefits from AI-created bitmap visuals such as photos, illustrations, textures, sprites, mockups, or transparent-background cutouts. Use when Codex should create a brand-new image, transform an existing image, or derive visual variants from references, and the output…

openai/codex · 113 tokens

cpu-profile-analysis

Analyze V8/Chrome CPU profiles (.cpuprofile) and DevTools trace files (Trace-.json). Use when: profiling performance, investigating slow functions, comparing code paths, finding bottlenecks, analyzing timeToRequest, understanding call trees from sampling profiler data, analyzing layout/paint/rendering, investigating…

microsoft/vscode · 71 tokens

next-cache-components-optimizer

Drive a Next.js route to instant navigation by setting up an agentic loop, under Cache Components / PPR, on initial load (hard navigation) and client-side navigation (soft navigation). Encode the goal as a failing @next/playwright instant() e2e and work it to green, one verified route at a time; the shipped test then…

vercel/next.js · 170 tokens