skills/forge-commit/SKILL.md
[writes] Generate terse conventional commit messages from staged changes. Use when you have staged files and want a well-structured commit message that follows Conventional Commits format. Analyzes diffs, infers type and scope, presents options.
npx skillsauth add quantumbitcz/dev-pipeline forge-commitInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Analyzes staged changes and generates a Conventional Commits message. Subject line <=50 chars, body explains why (not what). Never includes AI attribution.
See shared/skill-contract.md for the standard exit-code table.
git rev-parse --show-toplevel 2>/dev/null. If fails: "Not a git repository." STOP.git diff --cached --stat. If empty: "No staged changes. Stage files with git add first." STOP.git diff --cached --stat
git diff --cached
Identify:
auth, api, build, ci)Map changes to Conventional Commits types:
| Type | When |
|------|------|
| feat | New functionality visible to users or consumers |
| fix | Bug fix |
| refactor | Code restructuring without behavior change |
| test | Adding or updating tests only |
| docs | Documentation only |
| build | Build system or dependency changes |
| ci | CI/CD configuration |
| style | Formatting, whitespace, linting (no logic change) |
| perf | Performance improvement |
| chore | Maintenance tasks, version bumps |
If multiple types apply, use the most significant one (feat > fix > refactor > others).
Subject line rules:
type(scope): imperative descriptionBody rules (if needed):
NEVER include:
Use AskUserQuestion to present the generated commit:
Proposed commit:
type(scope): subject line here
Body explaining why (if applicable).
Options:
1. Commit as-is
2. Edit message (provide revised text)
3. Cancel
Based on user choice:
git commit -m "<message>" (or -m "<subject>" -m "<body>" if body present)After successful commit, report: Committed: <short-hash> <subject>
If .forge/caveman-mode exists and is not off, apply compression to all user-facing output:
lite: Drop filler, keep grammarfull: [type(scope)] subject. hash.ultra: type(scope): subject -> hashThe commit message itself is NEVER compressed -- only surrounding output.
| Condition | Action |
|-----------|--------|
| Not a git repo | Report error, STOP |
| No staged changes | Report error, suggest git add, STOP |
| Commit fails (pre-commit hook) | Report hook output, suggest fixes, STOP |
| Ambiguous change type | Default to chore, note uncertainty in options |
| Subject exceeds 50 chars | Shorten automatically, show original and shortened |
/forge-review -- review changed files before committing/forge-verify -- build + lint + test check/forge-compress output -- toggle terse output modedevelopment
[writes] Build, fix, deploy, review, or modify code in this project. Universal entry for the forge pipeline. Auto-bootstraps on first run; brainstorms before planning when given a feature description. Use when you want to take any productive action: implementing features, fixing bugs, reviewing branches, deploying, committing, running migrations.
tools
[writes] Manage forge state and configuration: recovery, abort, config edits, session handoff, automations, playbooks, output compression, knowledge graph maintenance. Use when you need to recover from broken pipeline state, edit settings, or manage long-lived state.
development
[writes] Create, list, show, resume, or search forge session handoffs. Use when context is getting heavy and you want to transfer a forge run or conversation into a fresh Claude Code session, or to resume from a prior handoff artefact. Subcommands - no args (write), list, show, resume, search.
development
[writes] Manage the Neo4j knowledge graph. Subcommands: init, rebuild (writes); status, query <cypher>, debug (read-only). Requires Docker. No default — an explicit subcommand is required. Use when setting up the graph for the first time, rebuilding after major refactors, checking graph health, or running ad-hoc Cypher diagnostics.