Stage, commit, and push changes without opening a PR. Use when the user says "commit and push", "commit these to a new branch", "push this branch", "push everything", or wants a branch + commit summary but does not want PR creation. ALWAYS runs a pre-commit interview first — branch target, scope, mixed-agent changes, wiki housekeeping, skill gaps. Distinct from `yeet`, which owns commit + push + PR.
Handle "just get this committed and pushed" — but never blindly. Inspect the tree, ask Kevin the questions that matter, then stage, commit, and push.
If the user wants a PR too, use yeet instead.
When Kevin says "commit and push" (or similar), do not immediately git add and commit. First inspect, cluster the diff, surface what's ambiguous, and ask.
Skip the full interview only when all of these are true:
main, or a specific branch name)Otherwise: present a short pre-commit plan and wait for confirmation (or ask inline if Kevin already gave partial answers).
git status --short
git diff --stat
git diff --cached --stat
git log --oneline -6
git branch -vvAlso check:
? prefix)wiki/log.md, wiki/_index.md, or state.json are stale relative to wiki editsPresent findings as a structured plan, then ask. Adapt questions to what's actually in the diff — don't read a fixed script every time.
Ask explicitly when Kevin didn't say where to push:
Push to main, stay on current-branch, or create kevin/<slug>?
Do not assume:
main because Kevin said "everything"If Kevin named a branch, confirm it before pushing.
Cluster changed files by theme, not directory spam. Example clusters:
| Cluster | Example paths |
|---|---|
| Wiki ingest | wiki/concepts/, wiki/log.md, wiki/_index.md |
| Skills | skills/personal/, wiki/skills/ |
| Agent config | config/cursor/, .cursorrules |
| App code | ui/, scripts/ |
| Repo meta | README.md, state.json, AGENTS.md |
| Assets / artifacts | wiki/assets/, ffmpeg logs, screenshots |
When the tree mixes multiple conversations or agent sessions, say so plainly:
The diff spans [A], [B], and [C]. One commit or split? What's in / out?
Ask specifically:
Flag and propose excluding unless Kevin confirms:
.playwright-mcp/, browser screenshots/traces used only for verification*.mbtree, etc.).env, credentials)If any wiki/**, skills/**, or config/** files are in scope, check and ask:
| Check | Command / signal |
|---|---|
| Index current? | wiki/_index.md page counts match; or run npx tsx scripts/build-index.ts |
| Log entry? | wiki/log.md has an entry for this work |
| Skills synced? | bash scripts/sync-skills.sh --check |
| Search index? | qmd update && qmd embed after wiki writes |
| Doctor clean? | npx tsx scripts/doctor.ts when wiki/skills/config touched |
Ask:
Want me to run build-index / append log / sync-skills check / wiki-doctor before commit?
Do not silently skip these on wiki repos — either do them or Kevin explicitly waives them.
If the diff reveals recurring manual work (same script run twice, same checklist re-explained, new tool not in SKILL-RESOLVER), note it briefly:
This looks like something we'd hit again — want to codify into a skill or extend [existing-skill] after push?
Do not block the commit on skill creation unless Kevin asks. Surface it; let Kevin decide.
Propose the narrowest honest check for what's shipping:
npx tsx scripts/doctor.tsAsk if unclear: "Run [check] before commit?"
After Kevin confirms the plan:
git add <confirmed paths>
# or git add -A when Kevin confirmed literal everything-minus-exclusionsNever git add -A without explicit confirmation when the tree has mixed clusters or junk.
Match recent log style (conventional commits if that's what the branch uses).
git diff --cached --stat
git diff --cached # spot-check staged matches the agreed plan
git commit -m "$(cat <<'EOF'
type(scope): concise subject
Optional body — why, not file list.
EOF
)"If pre-commit hook modifies files, fix and new commit — never amend a failed hook.
git push -u origin "$(git branch --show-current)"Return:
Pre-commit plan — please confirm:
**Branch:** push to `main`? (currently on `kevin/foo`)
**Clusters in working tree:**
1. Wiki — npm supply chain page + assets (8 files)
2. Skills — diagram-to-html SKILL.md (new)
3. Junk — ffmpeg2pass-0.log.mbtree (propose exclude)
4. Submodule — last30days has local untracked content (propose skip)
**Proposed:** 1 commit with clusters 1+2, exclude 3+4
**Wiki housekeeping:** append log.md + build-index before commit?
**Skill note:** diagram-to-html is new — wiki/skills page already exists ✓
**Check:** run wiki-doctor before commit?.env, tokens, credentials.git checkout or git restore. For work on another branch, create an isolated worktree instead of switching the shared checkout.These are common follow-ups when shipping wiki work — propose them in the interview, don't silently run unless Kevin confirmed:
npx tsx scripts/build-index.ts
# append wiki/log.md
bash scripts/sync-skills.sh --check
qmd update && qmd embed
npx tsx scripts/doctor.tsSee AGENTS.md § Indexing and Logging and wiki/skills/wiki-doctor.md.
yeet — commit + push + PRskill-creator — codify recurring workflows surfaced during interviewwiki-doctor — validate wiki/skills/config before shipdoctor-enforcement — which doctors to run for which pathsproject-briefing — summarize what changed after the push