86 lines
3.9 KiB
Markdown
86 lines
3.9 KiB
Markdown
---
|
|
name: git-checkpoint-commit
|
|
description: Use when a coding task finishes a verified bug fix, key feature, risky refactor checkpoint, local backup commit, checkpoint commit, 提交备份, 本地提交, or when an active session has accumulated about five meaningful edit rounds and should create a scoped local git commit without pushing.
|
|
---
|
|
|
|
# Git Checkpoint Commit
|
|
|
|
## Overview
|
|
|
|
Use this skill to keep a local git backup loop during active development. The goal is to commit verified, task-scoped progress at meaningful checkpoints without mixing unrelated user changes or pushing remotely.
|
|
|
|
## Trigger Rules
|
|
|
|
Create a local checkpoint commit when any condition is true:
|
|
|
|
- A bug fix is implemented and the targeted regression check passes.
|
|
- A key feature slice is implemented and the smallest relevant verification passes.
|
|
- A risky refactor reaches a behavior-preserving checkpoint.
|
|
- The current session has reached about five meaningful edit rounds since the last commit.
|
|
- The user asks for `提交`, `本地提交`, `备份`, `checkpoint`, `commit`, or `形成提交循环`.
|
|
|
|
Do not use this skill when the user explicitly says not to commit, when the change is exploratory and unverified, or when the only available commit would include unrelated dirty files.
|
|
|
|
## Workflow
|
|
|
|
1. Inspect the working tree with `git status --short`.
|
|
2. Identify files or hunks owned by the current task.
|
|
3. Run the smallest relevant verification first.
|
|
- In X-Financial, run backend tests inside `x-financial-main` when backend code is involved.
|
|
- Use targeted frontend tests/builds for web-only changes.
|
|
4. Commit only the task-owned files.
|
|
5. Report the commit hash and verification evidence.
|
|
6. Reset the session edit counter to zero after a successful checkpoint.
|
|
|
|
## Safety Rules
|
|
|
|
- Never commit unrelated user changes just to make the tree clean.
|
|
- Never push as part of this skill.
|
|
- Never rewrite history, amend old commits, or run destructive git commands.
|
|
- If the same file contains unrelated hunks, split the staging carefully with `git add -p` or a narrower manual patch.
|
|
- If the index already contains staged changes, inspect them first; do not mix them into a checkpoint unless they belong to the same current task.
|
|
- If verification cannot run, say why in the commit body or final report and prefer a `chore(checkpoint)` message rather than a confident `fix` or `feat`.
|
|
|
|
## Commit Style
|
|
|
|
Use normal semantic messages for completed, verified work:
|
|
|
|
- `fix(workbench): keep application preview after draft save failure`
|
|
- `feat(reimbursements): add attachment association job polling`
|
|
- `refactor(claims): split draft flow serialization`
|
|
|
|
Use checkpoint messages for interim backup points:
|
|
|
|
- `chore(checkpoint): backup attachment association flow`
|
|
- `chore(checkpoint): backup after five edit rounds`
|
|
|
|
Keep the subject concise. Add body lines only when the verification state or scope needs clarity.
|
|
|
|
## Helper Script
|
|
|
|
Use `scripts/checkpoint_commit.py` when a path-scoped local commit is enough:
|
|
|
|
```bash
|
|
python3 .codex/skills/git-checkpoint-commit/scripts/checkpoint_commit.py \
|
|
--message "chore(checkpoint): backup workbench AI flow" \
|
|
web/src/composables/workbenchAiMode/useWorkbenchAiExpenseFlow.js \
|
|
web/tests/workbench-ai-mode-switch.test.mjs
|
|
```
|
|
|
|
Preview before committing:
|
|
|
|
```bash
|
|
python3 .codex/skills/git-checkpoint-commit/scripts/checkpoint_commit.py \
|
|
--dry-run \
|
|
web/src/utils/expenseApplicationPreview.js
|
|
```
|
|
|
|
The script refuses to commit the whole tree unless `--allow-all` is passed. Use `--allow-all` only when the current task truly owns every dirty file.
|
|
|
|
## Common Mistakes
|
|
|
|
- Mistaking backup for verification. Verify first, then commit.
|
|
- Staging `.` in a dirty worktree. Stage explicit paths or hunks.
|
|
- Combining documentation cleanup, feature work, and unrelated local edits in one checkpoint.
|
|
- Continuing indefinitely after multiple verified slices. Commit once the counter reaches five meaningful edit rounds.
|