skills/greenfield/gf-create-git-commits/SKILL.md
Creates well-structured git commits from current changes. Analyzes staged or unstaged changes and splits them into coherent logical commits grouped by intention. Part of the gf (greenfield) skill family. Use when the user says /gf-create-git-commits, asks to commit their work, or wants to save progress as git commits during a long feature build.
npx skillsauth add ricky-yosh/agent-workflows gf-create-git-commitsInstall 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.
The commit message is a single -m string. One sentence. Nothing else.
No body. No bullet points. No trailers. No "Co-Authored-By". No heredocs.
git commit -m "Brief description of the change"
Examples:
git commit -m "Add project skeleton with Express server and folder structure"
git commit -m "Create user model with in-memory store and basic CRUD"
git commit -m "Wire up login endpoint to auth service"
Anti-examples — do NOT do this:
# WRONG: heredoc with trailer
git commit -m "$(cat <<'EOF'
Some change
Co-Authored-By: ...
EOF
)"
# WRONG: multi-line body
git commit -m "Some change
Added X, Y, and Z"
Split commits by intention — what the change is trying to accomplish, not just which files it touches. Read the diffs carefully to understand what each hunk does, then group hunks that serve the same purpose into one commit.
Think about it like telling a story: each commit is one sentence in the narrative of the feature. "First I set up the project, then I added the data model, then I wired up the API."
How to split: Use git add -p or git add <specific-files> to stage subsets, then commit each group separately. A single file can be split across commits if different hunks serve different intentions.
When NOT to split: If all changes serve the same intention and are tightly coupled, one commit is fine.
This skill creates commits directly — the user can always git reset if they don't like the result. Do not ask for confirmation. Do not push to any remote. Just commit locally.
git diff --staged for staged changes. If nothing is staged, check git diff for unstaged changes and work with those instead.git add or git add -p, then git commit -m "..."git log --oneline -n <N> to show the resultDo not add, stage, or commit files that aren't part of the user's changes (e.g., don't touch unrelated files). Do not run git push.
development
Write tests for a batch of tasks BEFORE implementation. Detects the project's test framework and language, then writes tests that cover happy paths, edge cases, and failure modes. All tests should fail initially since there is no implementation yet. Part of the gf (greenfield) skill family. Use when the user says /gf-write-tests or wants to write tests before implementing a feature or task batch.
testing
Generate readable testing notes after a feature is complete. Compares spec against implementation to produce a concise list of what was built, how to test it, and any scope gaps. Writes testing-notes.md to .aw/greenfield-progress/. Part of the gf (greenfield) skill family.
testing
Save current session work to .aw/greenfield-progress/progress.txt. Captures decisions (why, not just what) that git diff cannot show. Updates tasks.json to mark completed tasks. Part of the gf (greenfield) skill family.
testing
Gate the greenfield workflow on user verification after an implementation step. Reads the implementation digest, shows verification steps, and waits for the user to confirm before advancing. Part of the gf (greenfield) skill family.