Skip to content
cccskills
FreePublished on GitHub

incremental-commits

Commit boundaries and messages on a task branch. Use when deciding where to cut a commit or how to word one while implementing.

The English summary is being prepared. Showing the original description.

See how to install

Files included (1)

  • SKILL.md3.6 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Incremental Commits

Overview

Work in bite-sized steps, not one large change. Small commits keep each step reversible and make revisions cheap to localize.

The Process

  1. Before coding, turn the task into a short ordered list of steps. Each step is ONE action worth 2–5 minutes:
    • "Write the failing test" — a step
    • "Run it and watch it fail" — a step
    • "Write minimal code to pass" — a step
    • "Run the tests, all green" — a step
    • "Commit" — a step
  2. Commit locally after each green step on your task branch: run_terminal with git add -A && git commit -m "<type>: <imperative summary>". Do not push, and do not call commit_task_changes mid-run — the system commits and pushes your run's final state and opens the pull request at hand-off; a mid-run commit of your own is never the one that ships.
  3. Each commit is one logical change: the test and the code that satisfies it belong together; unrelated changes never share a commit.
  4. Commit message: imperative summary line; explain WHY in the body when it is not obvious from the diff.

Rules of Thumb

  • Never accumulate a large uncommitted change — if the diff is hard to describe in one sentence, you missed a commit point.
  • A step should end with an independently verifiable state (test green, build passing).
  • Setup/scaffolding folds into the step whose deliverable needs it; don't commit empty skeletons.
  • If a step balloons mid-way, stop, commit what is green, and re-slice the rest.

Quick Reference

SituationCommit boundary
Test + code that satisfies itOne commit together
Two unrelated behaviorsTwo commits
Refactor + behavior changeSeparate commits (refactor first, while green)
Setup/scaffoldingFolded into the step that needs it — no empty-skeleton commits
Formatting-only changeIts own commit, never mixed with logic

Worked Example

Task: add a priority field to task creation. A good branch history:

feat: add priority column migration
test: expect create to persist priority
feat: persist priority in create handler
test: default priority to "medium" when omitted
feat: default omitted priority to medium

Five focused commits. When QA later reports "omitted priority crashes," the fix and the guard test land on top as commit six — nobody re-reads the migration. Compare to one feat: add priority blob, where the same fix forces a reviewer back through the entire change.

Why

  • Each green commit is a checkpoint, not a review unit. PRs here are squash-merged and the reviewer reads the whole PR diff at once, not your individual commits — so commit granularity is for YOU: git reset --hard to the last green commit when a step goes wrong instead of untangling a half-finished working tree.
  • When a revision comes back, small commits localize what to change even though the reviewer never saw them individually.
  • If an approach fails, you lose one step, not the whole task.

Red Flags

  • The diff is hard to describe in one sentence → you missed a commit point.
  • git status shows changes across five unrelated areas → you batched.
  • You are about to commit with message "wip" or "fixes" → the step wasn't a clean logical unit.
  • You are about to push or call commit_task_changes mid-run → that is the system's job at hand-off, not yours mid-task.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Use when writing acceptance criteria for a task - express each as an observable Given/When/Then that QA can execute, including negative cases

The English summary is being prepared. Showing the original description.

makifbaysal/tasktrooper118Updated Oct 21, 2026

Use when the diff adds or changes an endpoint, resolver, RPC, job or query that takes an object id, a role check, a request binding or a tenant filter - BOLA/IDOR, function-level authorization, mass assignment and tenant scoping

The English summary is being prepared. Showing the original description.

makifbaysal/tasktrooper118Updated Oct 21, 2026

Use on every UI change - semantic HTML, labels for controls, keyboard-navigable dialogs/menus, visible focus, and never color as the only signal

The English summary is being prepared. Showing the original description.

makifbaysal/tasktrooper118Updated Oct 21, 2026

Use when a task changes any screen, form, dialog, menu or control - Lighthouse/axe scan of the changed screens, a keyboard walk, and the thresholds that fail a task

The English summary is being prepared. Showing the original description.

makifbaysal/tasktrooper118Updated Oct 21, 2026

How to work a task returned with review, QA or UAT findings. Use when a task is in need_revision or PR review comments are in your context.

The English summary is being prepared. Showing the original description.

makifbaysal/tasktrooper118Updated Oct 21, 2026

Use when the repository keeps its alerting in code, or a person asks for alerts outside TaskTrooper - PrometheusRule YAML, a Cloud Monitoring alert policy in Terraform, a Datadog monitor, each routed to TaskTrooper's alert ingest URL so it opens an incident here

The English summary is being prepared. Showing the original description.

makifbaysal/tasktrooper118Updated Oct 21, 2026

See all skills by makifbaysal

Report a problem with this skill