write-a-commit

Write commit and release messages in this repository's prose style with gate paragraphs.

Updated Jul 28, 2026
One-click install
npx skills add https://github.com/oleg-vasilyev/FoolProof --skill write-a-commit-oleg-vasilyev
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: write-a-commit
Source: https://github.com/oleg-vasilyev/FoolProof/tree/main/.claude/skills/write-a-commit
Command: npx skills add https://github.com/oleg-vasilyev/FoolProof --skill write-a-commit-oleg-vasilyev

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Commit messages that repeat the diff, use conventional-commit prefixes, or omit the reasoning behind a change waste the reader's time and lose the project's history. This Skill enforces the repository's specific voice for working commits and npm release messages, including the fixed Gates paragraph that phase-final commits must carry. ## Core Features & Use Cases - Working commit format: One imperative title sentence about behavior, a prose body explaining why the previous shape was wrong, and the Co-Authored-By trailer. - Gates paragraph: Phase-final commits end with a fixed-shape paragraph covering tests, coverage, mutation score, e2e cases, copy, gallery, review, retro, and tag — pasted from check:phase output, never retyped. - Release messages: npm version -m commands where the title is Release X.Y.Z, the body names the bump (A minor:, A patch:), and gate numbers stay out of the release text. - Use Case: Before committing the final work of a development phase, use this Skill to produce a commit whose Gates paragraph lets a reader two months later compare phases and spot regressions. ## Quick Start Write the commit message for the staged changes following this repository's commit style, including the Gates paragraph if this is a phase-final commit.

Frequently Asked Questions about write-a-commit

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I write a good commit message for this repository?▼

Write one imperative title sentence about behavior the reader can understand without the diff, then a prose body explaining why the previous shape was wrong. Avoid conventional-commit prefixes, bullet changelogs, and file lists, and end with the Co-Authored-By trailer.

What is the Gates paragraph in a phase-final commit?▼

It is a fixed-shape paragraph ending phase-final commits, naming every gate even when skipped: tests, coverage in statements/branches/functions/lines order, mutation score, e2e cases, copy, gallery, review findings, retro counts, and tag. Paste the first line from check:phase output rather than retyping it.

How do I write a release message with npm version?▼

Run npm version with -m so the commit and tag share the message, with %s becoming the version. Title it Release X.Y.Z, open the body with A minor: or A patch:, and describe what the previous version's user gains, keeping gate numbers in the phase commits.

When should a phase not get a release tag?▼

Not every phase gets a release; finish-phase decides and gives the reason. When it says no, the phase still ends in a working commit, and the Tag: line of the Gates paragraph states which future tag will carry the work.

Should I use conventional commit prefixes like feat or fix?▼

No. This repository rejects conventional-commit prefixes, scopes, bullet-list changelogs, and file lists. The title must be an imperative sentence about what the bot now does differently, readable alone in git log --oneline.