Git Workflow (Maintenance Phase)¶
1. Preflight¶
Before starting a new task, run at least:
git status --short --branchconfirms whether the current directory is safe to edit.git fetch --prune origin,git worktree list,git branch -vv, andghchecks are optional and only needed when the task actually requires them.
2. Branches and worktrees¶
Maintenance-phase work in this solo repository can be committed and pushed directly. Use an extra branch or worktree only when you need isolation for risky or parallel work:
git checkout -b fix/<slug> # optional
# or: git worktree add ../fastq-tools-<slug> -b fix/<slug> master
- Recommended prefixes:
fix/<slug>,docs/<slug>,chore/<slug>. - One worktree should map to one task.
- Direct work on
masteris allowed if the change is small and well-controlled. - If multiple AI tools participate, keep only one primary editor for the active changes.
3. Development and lightweight validation¶
- Keep commits small and focused.
- Docs/rules changes should run at least
git diff --check. - Code changes should use the existing entry points:
./scripts/core/build,./scripts/core/test, and./scripts/core/lint. - If a change affects behavior, API, schema, architecture, toolchain, or compatibility, update
openspec/changes/before implementation.
4. Push and optional review¶
Useful commands:
- Before pushing, record baseline references, validation results, and whether the change is
no baseline delta. - If the change is risky, add an optional human or secondary-AI diff review.
- If you find proposal/baseline drift, update the docs first, then continue.
5. Cleaning up local worktrees and branches¶
After the change is safely committed or pushed and the worktree is no longer needed:
If remote branches were deleted, prune regularly:
Commit Format¶
Type Categories¶
| Type | Description |
|---|---|
feat |
New feature |
fix |
Bug fix |
docs |
Documentation changes |
style |
Code style (no functional impact) |
refactor |
Code refactoring |
perf |
Performance optimization |
test |
Add or modify tests |
build |
Build system or dependency changes |
ci |
CI/CD configuration changes |
chore |
Other maintenance changes |
Scope (Optional)¶
core: Core functionalitycli: Command line interfaceparser: Parserdevops: Operations relateddocs: Documentation related
Subject¶
- Use imperative mood, present tense
- Don't capitalize first letter
- No period at the end
Examples¶
feat(parser): add BAM file input support
fix(core): correct GC content calculation
docs(readme): update installation instructions
refactor(pipeline): simplify processing loop
perf(io): optimize buffer allocation
ci(github): add automated linting
Commit Message Template¶
# Repository template file: .gitmessage.txt
# Can execute locally: git config commit.template .gitmessage.txt
# Dev Container automatically sets this configuration.
feat(cli): add new filter option
fix(io): handle empty file case
docs: improve API documentation
refactor: extract common utility functions
Notes¶
- Commit messages should be concise and clear
- Each commit should do one thing
- Avoid overly broad descriptions
- Use English for commit messages