AGENT SKILL

commit-and-push-by-feature

Commit and push all changes to GitHub grouped by logical feature/function buckets with conventional commit messages

License 许可
MIT
最近更新
2026-11-10
Stars
★ 1
Forks
0

01 前言 Front Matter

name
commit-and-push-by-feature
type
shipping
version
v0.1
description
Commit and push all changes to GitHub grouped by logical feature/function buckets with conventional commit messages
argument-hint
null

03 SKILL.md 正文

Commit and Push by Feature

Commit and push all changes to GitHub grouped by feature/function.

Process

  1. Inspect changes:

    • Run git status and git diff to understand all changes.
    • Pack install artifact boundary: Treat .agents/project.json as the committed project designation. When pack configuration changed, bucket and commit .agents/project.json. Treat .claude/skills/** and .codex/skills/** as generated local skill roots recreated by /pack, $pack, or scripts/pack.sh refresh; generated skill roots must not be staged or committed. If those roots are untracked, leave them uncommitted and report them as generated local artifacts. If any path under those roots is already tracked or modified as a tracked file, stop unless the current task explicitly includes repository hygiene to untrack or ignore generated skill roots.
  2. Identify logical buckets:

    • Group changes into feature/function buckets (e.g., "auth", "api", "ui", "tests", "docs", "build", "refactor"). Prefer 2–6 commits total unless the change set is tiny.
  3. Commit each bucket:

    • For each bucket:
      • Stage only the files for that bucket (use git add <paths>; avoid git add -A unless it's the final bucket and everything belongs together).
      • Create a conventional commit message:
        • feat(<scope>): <summary> for new functionality
        • fix(<scope>): <summary> for bug fixes
        • refactor(<scope>): <summary> for refactors without behavior change
        • test(<scope>): <summary> for tests only
        • docs(<scope>): <summary> for documentation
        • chore(<scope>): <summary> for tooling/config
      • Include a short body only if it clarifies intent or risk.
      • Verify git diff --cached matches the bucket before committing.
    • If there are uncommitted leftover changes at the end, bucket them; do not leave a dirty working tree. Do not bucket generated local skill roots under .claude/skills/** or .codex/skills/**, even in final leftover cleanup.
  4. Branch handling:

    • Determine the primary branch: prefer main; if it does not exist, use master. If neither exists, stop and explain the blocker.
    • Ensure the commits land on the primary branch.
    • If already on main or master, stay there.
    • If on any other branch, switch to the primary branch before committing and pushing. Carry the working tree across only if it can be done safely.
    • If switching would discard work, introduce conflicts you cannot resolve confidently, or otherwise prevent a safe move onto the primary branch, stop and explain the blocker. Do not push the feature branch instead.
  5. Push and report:

    • Push the resulting commits to the primary branch. commit-and-push-by-feature means commit and push when the workflow succeeds.
    • Output a concise summary: branch name, list of commits (hash + subject), confirmation that working tree is clean, and whether push was performed or blocked.

Output

## Commits
| Hash | Message |
|------|---------|
| abc1234 | feat(auth): add OAuth2 login flow |
| def5678 | docs(readme): update setup instructions |

Branch: current branch
Working tree: clean

Constraints

  • Do not amend or rewrite history unless explicitly asked.
  • Do not commit secrets; if you detect likely secrets, stop and report before committing.
  • If pre-commit hooks/tests fail, fix and retry.

Default Shipping Contract

Follow the shared shipping contract convention in CLAUDE.md.

04 同仓库更多 Skills