mcpbeat

Commit

pedrohcgs/commit

Stage, commit, push, open a PR, and merge to main. Use ONLY on explicit commit intent — user says "commit", "ship it", "push this", "open a PR", "merge to main", "let's commit this", or prefixes with `/commit`. Do NOT auto-invoke on vague end-of-task phrases ("we're done", "wrap up") — those require explicit confirmation first. Runs the standard commit-PR-merge cycle; never force-pushes or skips hooks.

914 tokens
context cost
the whole folder, loaded on every use
1
files
instructions only
0
copies elsewhere
how many repositories repackaged it
1440
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/pedrohcgs/claude-code-my-workflow --skill commit

What it tells the agent to use

found in the instruction text
Task spawns other agents

The instruction itself

12 sections, as written by the author

Commit, PR, and Merge

Stage changes, verify quality gates, commit with a descriptive message, create a PR, and merge to main.

Steps

Step 0: Quality Gate (Pre-Commit)

Run before branching. For every changed .qmd, .tex, or .R file that has quality rubrics, run:

python3 scripts/quality_score.py <changed-file-paths>
  • If any file scores below 80, halt and report the findings. The user must either fix the issues or explicitly override with phrases like *"commit anyway"* or *"skip quality gate"*.
  • If all files score 80+, continue.

Spawn the verifier agent (via Task with subagent_type=verifier) to run compilation/render checks on the changed files. Report pass/fail before committing.

Step 0b: Surface-Sync Gate (Pre-Commit)

Runs unconditionally. Enforces that count claims ("14 agents, 28 skills, 24 rules, 6 hooks" and siblings) across README.md, CLAUDE.md, the guide source + rendered HTML, the landing page, and the skill template all agree with the on-disk counts of .claude/{skills,agents,rules,hooks}:

./scripts/check-surface-sync.sh
  • Exit 0: all counts consistent — continue.
  • Exit 1: drift detected — print the diff and halt. Fix the stale counts, then re-run. Do NOT proceed past this gate on drift, even with "commit anyway" — the purpose is to catch the exact class of issue that produced PRs #70, #76, and #78.
  • Exit 2: script error (missing surface file, unreadable directory) — investigate before proceeding.

Step 1: Check current state

git status
git diff --stat
git log --oneline -5

Step 2: Create a branch

git checkout -b <short-descriptive-branch-name>

Step 3: Stage files

Add specific files (never use git add -A):

git add <file1> <file2> ...

Do NOT stage .claude/settings.local.json or any files containing secrets.

Step 4: Commit with a descriptive message

If $ARGUMENTS is provided, use it as the commit message. Otherwise, analyze the staged changes and write a message that explains *why*, not just *what*.

git commit -m "$(cat <<'EOF'
<commit message here>
EOF
)"

Step 5: Push and create PR

git push -u origin <branch-name>
gh pr create --title "<short title>" --body "$(cat <<'EOF'
## Summary
<1-3 bullet points>

## Test plan
<checklist>

🤖 Generated with [Claude Code](https://claude.com/claude-code)
EOF
)"

Step 6: Merge and clean up

gh pr merge <pr-number> --merge --delete-branch
git checkout main
git pull

Step 7: Report

Report the PR URL and what was merged.

Important

  • Never skip Step 0. Quality gates catch broken compilation, bad citations, and hardcoded paths before they reach main. If the user insists on skipping, record their override reason in the commit message.
  • Always create a NEW branch — never commit directly to main.
  • Exclude settings.local.json and sensitive files from staging.
  • Use --merge (not --squash or --rebase) unless asked otherwise.
  • If the commit message from $ARGUMENTS is provided, use it exactly.

How to use it

Copy the folder

Take pedrohcgs/commit from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.