From quiver
Generate a Conventional Commits message, commit, and optionally push to remote.
npx claudepluginhub yagizdo/quiver --plugin quiverThis skill uses the workspace's default tool permissions.
```
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Checks Next.js compilation errors using a running Turbopack dev server after code edits. Fixes actionable issues before reporting complete. Replaces `next build`.
Guides code writing, review, and refactoring with Karpathy-inspired rules to avoid overcomplication, ensure simplicity, surgical changes, and verifiable success criteria.
Share bugs, ideas, or general feedback.
!`git rev-parse --is-inside-work-tree 2>/dev/null || echo "NO_GIT"`
!`git status --short 2>/dev/null || echo "NO_GIT"`
!`git diff --cached 2>/dev/null || echo "NO_GIT"`
!`git log --oneline -10 2>/dev/null || echo "NO_GIT"`
If any gather-context block above returned NO_GIT, this directory is not a git repository.
Print: > No git repository detected. /commit requires a git repo.
Stop here.
Silently determine which case applies — do not show the case label or decision logic to the user:
git status is empty → tell the user and stop.git diff --cached is empty but git status shows changes → tell the user to stage files and run /quiver:commit again, then stop.Analyze git diff --cached and the recent log. Generate a Conventional Commits message following these rules:
Type — Select one based on primary intent:
| Type | When to Use |
|---|---|
feat | New feature or capability visible to users |
fix | Bug fix |
docs | Documentation only (README, comments, JSDoc) |
style | Formatting, whitespace, semicolons — no logic change |
refactor | Code restructuring with no behavior change |
perf | Performance improvement |
test | Adding or fixing tests |
build | Build system or external dependencies (npm, Makefile) |
ci | CI/CD configuration (GitHub Actions, CircleCI) |
chore | Maintenance tasks (version bumps, tooling config) |
revert | Reverting a previous commit |
Scope — From file paths: single directory → its name, single file → domain name, cross-cutting → omit.
Breaking changes — If the change removes/renames public APIs, changes signatures, alters data formats, or removes CLI flags/commands, add ! after type/scope and a BREAKING CHANGE: footer.
Subject line — Imperative mood, lowercase after colon, no period, ≤72 chars total, describe what not how.
Body — Almost never. Only for breaking changes or when the subject alone would be misleading. Wrap at 72 chars. Never include file lists — git log --stat shows this.
Footers — BREAKING CHANGE: if applicable. Refs: #issue if relevant.
Important: Do NOT output the commit message as separate text. Embed it directly inside the AskUserQuestion tool call so the user always sees the message alongside the options.
Include a body or footers only for breaking changes or multi-type changes where the subject alone is genuinely ambiguous. Default to subject-only. Don't add Co-authored-by or attribution footers unless explicitly requested.
--pushIf $ARGUMENTS contains "push" (e.g., /quiver:commit --push), skip the AskUserQuestion step entirely. Instead, show the generated commit message, then immediately execute Commit & Push (commit + push to remote) without prompting.
Use the AskUserQuestion tool with the commit message embedded in the question field:
"\x1b[2mCommit Message:\x1b[0m\n\n{type}({scope}): {subject}\n\nProceed?"
If the message has a body, append body lines after the subject separated by newlines.
On commit or commit & push:
git commit -m "$(cat <<'EOF'
{full commit message}
EOF
)"
git log --oneline -1 and git status --short.If commit & push, also:
git branch --show-currentgit rev-parse --abbrev-ref @{upstream} 2>/dev/null succeeds → git push, otherwise → git push -u origin {branch}Output:
Committed:
{short hash}{subject} Branch:{branch name}Pushed to:origin/{branch}(only if pushed)
On edit: Ask what to change, revise, re-present, and ask again.
On cancel:
Commit cancelled. Staged changes are intact.
Stop here.
If git commit fails, show the error verbatim and suggest the user fix the issue and re-run /quiver:commit. Never retry automatically or use --no-verify.
Trigger: /commit or /commit --push (and /quiver:commit should also work)
Setup:
git diff --cached is non-empty).Expected behavior:
> No git repository detected. /commit requires a git repo. and stops.AskUserQuestion with Commit / Commit & Push / Edit / Cancel.--push argument, skill skips the prompt and runs commit then push (git push if upstream exists, git push -u origin <branch> otherwise).--no-verify.Verification checklist:
/commit.feat, fix, docs, etc.) and a subject ≤72 chars.Co-authored-by or AI-attribution footers appear in the commit.AskUserQuestion with the message embedded in the question, not plain text.--push path commits and pushes without prompting.Known gotchas:
\x1b[2m ANSI dim escape inside the question string assumes the user's terminal renders ANSI; non-ANSI terminals will see literal escape codes but the message remains readable.git push -u origin <branch>; do not silently fall back to git push when no upstream is configured.