git-commit
Use before you commit and directly after, when you write a commit message or a pull request title and description, when you squash, when the diff against…
Skill by futex-ai
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/futex-ai-git-commit
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: documents, testing, writing
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Shell scripts
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/git-commit
What's inside
- Skill name
git-commit- Description
- Use before you commit and directly after, when you write a commit message or a pull request title and description, when you squash, when the diff against origin/main deletes or renames a file, feature, test, fixture, or command, when you find dead code, an unused item, or a path that the product never runs, when you are not sure whether a plan or doc passage is live content or history, and when a link check fails on a link in history content.
- License
- MIT
- Instructions
- 159 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Files (2)
- SKILL.md
- audit-deletions.sh · scripts/
SKILL.md (first lines)
# Git commit Do not delete or override functionality already on `origin/main` without explicit user approval. Functionality includes live code, its tests, APIs, docs, mockups, plans, migrations, and schema. Dead code needs no approval. The section "Dead code" below says when code is dead. Merges and rebases have their own procedure in the `git-merge` skill. ## Before and after each commit Run `scripts/audit-deletions.sh`, which prints: ```sh git diff --name-status origin/main git diff --diff-filter=D --name-status origin/main git diff --name-status origin/main..HEAD # after the commit ``` Stop unless each deletion is dead code under the section below or has the user's explicit approval. A feature-wide reduction is functionality. Record every removal and its related cleanup in the commit or PR description. For dead code, record the search that proved it dead. For functionality, record the approval. Run `git add -A` before you commit so that newly created files are tracked and included in the commit, the push, and the review diff. Do not commit scratch output; it lives under the git-ignored `.context/`. ## Dead code Dead code is code that the product never runs. Deleting it needs no approval. Code is dead only when all of these hold: 1. No product code, test of live code, script, configuration, build file, or generated artifact references it. Search the repository for its name. An unused-item warning from the compiler or the linter proves this for a private item. The warning counts only when the build compiles every feature, platform, and test target. 2. No indirect path reaches it: no route table, registry, plugin loader, file-name convention, string key, dynamic import, or reflection names it. Search for each string that could name it. 3. No consumer outside the code reaches it. An entry point is functionality: a command, a script, a migration, or an export of a published package. The package manifest says whether a package is published. 4. Nothing keeps it on purpose: no annotation such as `#[expect(dead_code)]`, no feature flag, no open plan TODO, and no protocol doc that requires it. Everything else is functionality, also when the product runs it rarely: - An error path, a fallback, the off branch of a feature flag, or a platform branch. - An entry point. - A helper, a fixture, or a mock that a test of live code uses. Test code is not product code, but a test of live code is functionality. Deleting or overriding functionality needs explicit user approval. When a condition is in doubt, the code is functionality. Ask. Example: a change deleted a backend, and a shell path that only that backend set stayed behind. No live code sets the path, so the path is dead. Delete the path and the tests that cover only it. Move the older tests that reach live behaviour through the path to the live path, with the same assertions. When you delete dead code: - Delete the dead code that your change touches or leaves unused. Report other dead code that you find, for a separate branch. - The tests that cover only the dead code are dead code. Delete them. - A test that reaches live behaviour only through the dead code moves to the live path. Keep every assertion. - Apply the conditions to each item that the deletion leaves unused. Delete each item that meets them: imports, helpers, types, styles, fixtures, and files. - Save the search commands and their output under `.context/`. Record each deletion and the search that showed it dead in the commit or PR description. - Update the stale references, as the next section says. ## Removals and renames When a change removes or renames a feature, test, fixture, scenario, command, or file, search `docs/`, `plans/`, and every `README.md` for its name. Update each stale reference in live content in the same change. Record each plan edit in the commit or PR description. ## Live and history - `docs/` and every `README.md` are live content. - In an active plan, completed milestones and checked TODOs are history; all other content is live. - In a completed plan, open review findings and unchecked post-merge follow-ups are live; all other content is history. - Do not change the words of history. - When the repository's link check fails on a link inside history content, replace the link with a GitHub permalink at a commit where the target still matches the text. Start with the commit that wrote the link. For a squash-merged PR, look for that commit in `refs/pull/<number>/head`. For a line in a Markdown file, put `?plain=1` before `#L<number>`. ## Message format Every commit message and pull request title uses the Conventional Commits format: `<type>(<optional scope>): <description>`, a blank line, then the body. The format enables automated changelogs and readable history. - Pull request titles and their squash commit titles use at most 72 Unicode code points. - The body has no strict length limit. Always include a body that explains what changed and why, not only a title. - A commit may hold multiple entries when it has distinct change types. Separate entries with a blank line. Order them by type priority: `feat`, `fix`, `perf`, `refactor`, `build`, `ci`, `test`, `docs`, `style`, `chore`. - Record in the commit or PR description: - every removal and its related cleanup, with the search that proved
From futex-ai/skills, MIT.
More from futex-ai/skills
- 0.592score
writing-skills
futex-ai
Use when you create or edit a skill, write or change a skill description, or when an agent skipped a rule, did not load a skill, or loaded the wrong one.
SkillAFreshness: A★ 1Claude Code +9 - 0.592score
deterministic-tests
futex-ai
Use when a test fails and then passes on a rerun, when a test is flaky or timing-dependent, when a test would assert elapsed time, a timeout, or performance…
SkillAFreshness: A★ 1Claude Code +9 - 0.592score
implementation-review
futex-ai
Use after you push a branch and the work needs a review, before you run a review or apply its findings, when a plan's review TODO is reached, when the user…
SkillAFreshness: A★ 1Claude Code +9 - 0.592score
rust
futex-ai
Use before you write or change Rust code, add a crate or a dependency to a Cargo workspace, write or move a Rust test, define or map an error type, or add a…
SkillAFreshness: A★ 1Claude Code +9 - 0.592score
shared-types
futex-ai
Use when a Rust backend and a TypeScript or JavaScript frontend exchange data, before you add or change a request, response, query, event, message, or error…
SkillAFreshness: A★ 1Claude Code +9 - 0.589score
git-merge
futex-ai
Use before you merge or rebase a branch, when origin/main has moved ahead of your branch, when you resolve merge conflicts, directly after you commit a merge…
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
mockups
futex-ai
Use before you create or change a mockup under docs/mockups, a screen component, a user flow, or a Mokly entry, component, or configuration, when a plan has a…
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
product-ui
futex-ai
Use before you implement or change a screen, a component, a view, or a mockup, when you write or edit user-facing text such as a status, helper, label, or…
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
decisions-and-findings
futex-ai
Use before you send a message that asks the user for a decision, presents review findings or review items, or gives a final report, when the user asks for…
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
documentation
futex-ai
Use before you edit a README.md, a crate README, anything under docs/, an architecture doc, or a protocol doc, when a behaviour change could leave a doc…
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
typescript
futex-ai
Use before you write or change TypeScript or JavaScript, add an npm dependency, set up a new package, or write a frontend file, a Node script, or a test file…
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
databases
futex-ai
Use before you add, edit, or name a database migration or a seed migration, when you touch a schema, Diesel code, a migration lock, or a crate named…
SkillAFreshness: A★ 1Claude Code +9
Signals
- Stars
- 1
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Oct 20, 2026 (8 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/futex-ai/skills
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from futex-ai
- 0.592score
writing-skills
futex-ai
Use when you create or edit a skill, write or change a skill description, or when an agent skipped a rule, did not load a skill, or loaded the wrong one.
SkillAFreshness: A★ 1Claude Code +9 - 0.592score
deterministic-tests
futex-ai
Use when a test fails and then passes on a rerun, when a test is flaky or timing-dependent, when a test would assert elapsed time, a timeout, or performance…
SkillAFreshness: A★ 1Claude Code +9 - 0.592score
shared-types
futex-ai
Use when a Rust backend and a TypeScript or JavaScript frontend exchange data, before you add or change a request, response, query, event, message, or error…
SkillAFreshness: A★ 1Claude Code +9 - 0.592score
implementation-review
futex-ai
Use after you push a branch and the work needs a review, before you run a review or apply its findings, when a plan's review TODO is reached, when the user…
SkillAFreshness: A★ 1Claude Code +9 - 0.592score
rust
futex-ai
Use before you write or change Rust code, add a crate or a dependency to a Cargo workspace, write or move a Rust test, define or map an error type, or add a…
SkillAFreshness: A★ 1Claude Code +9 - 0.589score
git-merge
futex-ai
Use before you merge or rebase a branch, when origin/main has moved ahead of your branch, when you resolve merge conflicts, directly after you commit a merge…
SkillAFreshness: A★ 1Claude Code +9
Cite this page
git-commit skill. Agent Mart. https://agentmart.dev/skills/futex-ai-git-commit (last updated 2026-10-24)