# Changelog

## 2026-08-18

- Split the `.dogcats` rule in two, because the old blanket "never run git
  operations on it" also banned the staging the tracker needs. Git may never
  *change* tracker content — no `checkout`, `restore`, `stash`, `reset --hard`,
  no hand-edited JSONL — but `git add .dogcats` after every `dcat` write is now
  required, so the status a commit records is the status that commit produced.
- Made steps 1 and 6 check `git status --short .dogcats`, since a `dcat` write
  between them leaves an `MM` line with one hunk staged and one not. `dcat diff
  --staged` now runs as its own shell call: chained, its exit code is hidden and
  an unquoted `===` separator aborts the line under zsh.

## 2026-08-10

- Stopped assuming the default branch is `main`. The skill reads it from
  `git symbolic-ref --short refs/remotes/origin/HEAD`, falls back to the current
  branch, and rebases against `$DEFAULT_BRANCH`.

## 2026-07-03

- Added the direct-to-`main` rule: this repo commits to its default branch by
  design, no branches.
- Handled a failing or file-modifying pre-commit hook — show the output,
  re-stage, retry once — and allowed `git commit --amend` only before a push.
- Fixed the venv line to `source $PROJECT_FOLDER/.venv/bin/activate &&`.

## 2026-05-28

- Dropped the co-author trailer. The commit carries no `Co-Authored-By` and no
  other attribution.

## 2026-04-12

- Rewrote the skill from a persona ("expert Git practitioner and technical
  writer") into a numbered workflow, and folded the edge cases into the steps
  that hit them. Added a verify step, `git log --oneline -1`, and said why open
  issues stay out of the message: a grep for the ID would read the commit as the
  one that resolved it.

## 2026-02-16

- Added the skill: one `SKILL.md` that reads `git diff --staged`, drafts a plain
  English message, asks before committing, then rebases onto `origin/main`.
