CRITICAL — Never open an interactive editor
This applies to ALL git operations, not just commits.
Any git command that opens an editor will hang the agent forever. Always prevent this:
| Command |
Safe version |
git commit |
git commit -m "message" |
git rebase --continue |
GIT_EDITOR=true git rebase --continue |
git merge --continue |
GIT_EDITOR=true git merge --continue |
git cherry-pick --continue |
GIT_EDITOR=true git cherry-pick --continue |
git revert --continue |
GIT_EDITOR=true git revert --continue |
git rebase -i |
Never use — use non-interactive rebase only |
Any --continue after conflict resolution |
Always prefix with GIT_EDITOR=true |
Rule: Every --continue gets GIT_EDITOR=true. No exceptions.
Commit format
Create commits using Conventional Commits: <type>(<scope>): <summary>
type REQUIRED. Use feat for new features, fix for bug fixes. Other common types: docs, refactor, chore, test, perf.
scope OPTIONAL. Short noun in parentheses for the affected area (e.g., api, parser, ui).
summary REQUIRED. Short, imperative, <= 72 chars, no trailing period.
Notes
- Never use
--no-gpg-sign. Commits must be signed. The user has 1Password SSH signing configured — a Touch ID prompt will appear when you commit. Let it happen. If signing fails, tell the user rather than bypassing it.
- Body is strongly encouraged — always include one unless the change is trivially obvious (e.g., fixing a typo). The body should explain what changed, why it changed, the approach taken, and any notable decisions. A reader of
git log should understand the change without looking at the diff.
- Do NOT include breaking-change markers or footers.
- Do NOT add sign-offs (no
Signed-off-by).
- Only commit; do NOT push.
- If it is unclear whether a file should be included, ask the user which files to commit.
- Treat any caller-provided arguments as additional commit guidance. Common patterns:
- Freeform instructions should influence scope, summary, and body.
- File paths or globs should limit which files to commit. If files are specified, only stage/commit those unless the user explicitly asks otherwise.
- If arguments combine files and instructions, honor both.
Steps
- Infer from the prompt if the user provided specific file paths/globs and/or additional instructions.
- Review
git status and git diff to understand the current changes (limit to argument-specified files if provided).
- (Optional) Run
git log -n 50 --pretty=format:%s to see commonly used scopes.
- If there are ambiguous extra files, ask the user for clarification before committing.
- Stage only the intended files (all changes if no files specified).
- Run
git commit -m "<subject>" (and -m "<body>" if needed).
Converted and distributed by TomeVault — claim your Tome and manage your conversions.
1---2name: commit-523description: Read this skill before making git commits, rebases, merges, cherry-picks, or any git operation Use when this capability is needed.4---56## CRITICAL — Never open an interactive editor78**This applies to ALL git operations, not just commits.**910Any git command that opens an editor will hang the agent forever. Always prevent this:1112| Command | Safe version |13|---------|-------------|14| `git commit` | `git commit -m "message"` |15| `git rebase --continue` | `GIT_EDITOR=true git rebase --continue` |16| `git merge --continue` | `GIT_EDITOR=true git merge --continue` |17| `git cherry-pick --continue` | `GIT_EDITOR=true git cherry-pick --continue` |18| `git revert --continue` | `GIT_EDITOR=true git revert --continue` |19| `git rebase -i` | **Never use** — use non-interactive rebase only |20| Any `--continue` after conflict resolution | Always prefix with `GIT_EDITOR=true` |2122**Rule: Every `--continue` gets `GIT_EDITOR=true`. No exceptions.**2324---2526## Commit format2728Create commits using Conventional Commits: `<type>(<scope>): <summary>`2930- `type` REQUIRED. Use `feat` for new features, `fix` for bug fixes. Other common types: `docs`, `refactor`, `chore`, `test`, `perf`.31- `scope` OPTIONAL. Short noun in parentheses for the affected area (e.g., `api`, `parser`, `ui`).32- `summary` REQUIRED. Short, imperative, <= 72 chars, no trailing period.3334## Notes3536- **Never use `--no-gpg-sign`.** Commits must be signed. The user has 1Password SSH signing configured — a Touch ID prompt will appear when you commit. Let it happen. If signing fails, tell the user rather than bypassing it.37- Body is **strongly encouraged** — always include one unless the change is trivially obvious (e.g., fixing a typo). The body should explain **what** changed, **why** it changed, the approach taken, and any notable decisions. A reader of `git log` should understand the change without looking at the diff.38- Do NOT include breaking-change markers or footers.39- Do NOT add sign-offs (no `Signed-off-by`).40- Only commit; do NOT push.41- If it is unclear whether a file should be included, ask the user which files to commit.42- Treat any caller-provided arguments as additional commit guidance. Common patterns:43 - Freeform instructions should influence scope, summary, and body.44 - File paths or globs should limit which files to commit. If files are specified, only stage/commit those unless the user explicitly asks otherwise.45 - If arguments combine files and instructions, honor both.4647## Steps48491. Infer from the prompt if the user provided specific file paths/globs and/or additional instructions.502. Review `git status` and `git diff` to understand the current changes (limit to argument-specified files if provided).513. (Optional) Run `git log -n 50 --pretty=format:%s` to see commonly used scopes.524. If there are ambiguous extra files, ask the user for clarification before committing.535. Stage only the intended files (all changes if no files specified).546. Run `git commit -m "<subject>"` (and `-m "<body>"` if needed).5556---57> Converted and distributed by [TomeVault](https://tomevault.io/claim/bruno-garcia) — claim your Tome and manage your conversions.58<!-- tomevault:4.0:skill_md:2026-04-13 -->