From 131cfb26bbd3ab9407bfe56da17ac277acae604c Mon Sep 17 00:00:00 2001 From: AJ Isaacs Date: Mon, 23 Feb 2026 11:43:49 -0500 Subject: [PATCH] docs: add finish-up skill design document Co-Authored-By: Claude Opus 4.6 --- .../2026-02-23-finish-up-skill-design.md | 61 +++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 docs/plans/2026-02-23-finish-up-skill-design.md diff --git a/docs/plans/2026-02-23-finish-up-skill-design.md b/docs/plans/2026-02-23-finish-up-skill-design.md new file mode 100644 index 0000000..34ef2f0 --- /dev/null +++ b/docs/plans/2026-02-23-finish-up-skill-design.md @@ -0,0 +1,61 @@ +# /finish-up Skill Design + +**Date:** 2026-02-23 + +## Purpose + +A Claude Code slash command (`/finish-up`) that scans git projects for uncommitted changes and unpushed commits, reports findings, then autonomously commits and pushes selected projects via parallel subagents. + +## Behavior + +### Context Detection + +- If CWD is `C:\Users\aisaacs\Desktop\Projects` (or not inside a git repo), scan all subdirectories +- If CWD is inside a specific project, scan just that project + +### Phase 1 - Scan + +Run a `git-status-check.sh` script from the Projects directory that: +- Checks each git repo for uncommitted changes (`git status --porcelain`) +- Checks for unpushed commits (`git log @{u}..HEAD --oneline`) +- Outputs structured results (project name, has uncommitted, has unpushed, file count, commit count) + +This replaces the existing `check_uncommitted.py` with a bash script that also covers unpushed commits. + +### Phase 2 - Report + +Present findings as a summary: +- Projects with uncommitted changes (file counts) +- Projects with unpushed commits (commit counts) +- Clean projects (brief list) +- If everything clean, say so and exit + +### Phase 3 - Confirm + +Ask which projects to process (default: all that need attention). + +### Phase 4 - Parallel Subagents + +Spawn a Bash subagent per selected project. Each autonomously: +1. Stages all changes (`git add -A`) +2. Reviews the diff (`git diff --cached`) +3. Crafts a conventional commit message based on the changes +4. Commits +5. Pushes to remote (with retry for Gitea cold-start) + +### Phase 5 - Summary + +Report what was committed and pushed across all projects. + +## Files + +| File | Purpose | +|------|---------| +| `~/.claude/commands/finish-up.md` | Claude Code skill file | +| `~/Desktop/Projects/project-scripts/git-status-check.sh` | Scan script (replaces check_uncommitted.py) | + +## Commit Message Style + +Subagents craft conventional commit messages (feat/fix/chore/refactor/docs/etc.) with: +- Short summary line +- Co-Authored-By: Claude Opus 4.6