agentleFS
PorabuildPorabuild/Poracode/.agents/skills/commit/SKILL.md

commit

Skill121 starsChanged 4 days agoApache-2.0View on GitHub

Creates a Poracode commit with a Conventional Commits subject, a why-focused body, and deliberately staged paths. Use when asked to "commit", "commit this", "write a commit message", "stage and commit", or to start a branch for a change. Not for opening a pull request (use pull-request) or for the pre-push check gate (use verify).

  • Reads credentials
  • Deletes or force-pushes
  • Commits and pushes

188 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use validate-plan, act-on-feedback and 10 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • shawn-dumasSkill

    validate-plan

    Validate an orchestration plan after pre-flight certification. Runs adversarial review, deep review (verify prompt data against codebase), and PoC gate for risky approaches. Auto-invoked by orchestrate-* skills at Step 8.

    Also in 5 projects that use this

  • MicrosoftSkill

    act-on-feedback

    Act on user feedback attached to the current session. Use when the user submits feedback on the session's changes via the Submit Feedback button.

    Also in 3 projects that use this

  • decocmsSkill

    add-mcp-tools

    Guide for adding new MCP tools with consistent patterns for schemas, tool definitions, registry updates, and Better Auth integration

    Also in 3 projects that use this

  • MicrosoftSkill

    generate-run-commands

    Generate or modify run commands for the current session. Use when the user wants to set up or update run commands that appear in the session's Run button.

    Also in 3 projects that use this

  • mitsuhikoSkill

    oebb-scotty

    Austrian rail travel planner (ÖBB Scotty). Use when planning train journeys in Austria, checking departures/arrivals at stations, or looking for service disruptions. Covers ÖBB trains, S-Bahn, regional trains, and connections to neighboring countries.

    Also in 3 projects that use this

  • mitsuhikoSkill

    pi-share

    Load and parse session transcripts from shittycodingagent.ai/buildwithpi.ai/buildwithpi.com/pi.dev (pi-share) URLs. Fetches gists, decodes embedded session data, and extracts conversation history.

    Also in 3 projects that use this

The file

We split this skill into the rules it gives an agent

10 rules. 0 are common, 5 are distinctive, and 5 are very specific to this project.

  • 0

    Common

    Most of the 167 edited versions we read keep these.

  • 5

    Distinctive

    This author's own choices. Worth a look.

  • 5

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  • could be automatic: a setting could enforce it
  1. Very specific:

    Never commit to master. Keep the current worktree's existing branch and work.

    line 17
  2. Very specific:

    No issue: keep the branch the workspace already created (Poracode worktrees start on poracode/<name>).

    line 19
  3. Distinctive:

    Check git diff --cached --stat before committing.

    line 32
  4. Distinctive:

    If unrelated paths were already staged, resolve their ownership before committing.

    line 33
  5. Very specific:

    Do not add (#PR); GitHub appends it on squash merge.

    line 44
  6. Distinctive:

    Keep any co-author or attribution trailer the running agent harness supplies.

    line 50
  7. Very specific:

    Never use --no-verify. If the hook fails, fix the cause and commit again.

    line 58
  8. Distinctive:

    Do not amend, rebase, or force-push commits that are already pushed unless the user asks.

    line 63
  9. Very specific:

    If the user asks to rewrite pushed history, use git push --force-with-lease, never plain --force.

    line 64
  10. Distinctive:

    Do not use git stash in a shared worktree setup.

    line 65

“Common” is measured: kept by at least 6 in 10 of the 167 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Commit

Turn finished, reviewed work into one clean commit on the right branch. Commit only when the user asked; finished work is not consent to commit.

An invocation of finalize authorizes the commit and its subsequent push/PR/merge workflow. Prefer Poracode's git_status, git_stage with explicit paths, and git_commit when available. Resolve the current thread's projectId and exact worktreePath once and pass both; omitting the path targets the main checkout. Use CLI for missing operations and read back with git_status to synchronize the UI. Inspect live schemas on older hosts.

Branch

  • Never commit to master. Keep the current worktree's existing branch and work. For a new branch, fetch origin/master and branch from it without resetting existing changes.
  • Tied to a GitHub issue: name the branch <issue>-<short-slug>, e.g. 123-pending-worktree-identity.
  • No issue: keep the branch the workspace already created (Poracode worktrees start on poracode/<name>); otherwise use <type>/<short-slug>.

Stage

Stage explicit paths after reading git status --short and the diff: git add <path>.... Do not use git add -A or git add ., because parallel agents and local tooling leave unrelated files in the tree.

Never stage:

  • .env* files, credentials, tokens, or local config.
  • tmp/, .tmp/, screenshots, logs, or other scratch output.
  • bun.lock churn the change did not intend (a dependency change is the only reason it moves).
  • Unrelated edits that happen to be in the tree; leave them unstaged and mention them.

Check git diff --cached --stat before committing. If unrelated paths were already staged, resolve their ownership before committing; never silently include or unstage them.

Subject

Format: type(scope): subject

  • Types: feat, fix, refactor, perf, test, docs, build, ci, chore.
  • Scope is the area touched, as used in history: sidebar, chat, usage, devin, opencode2, i18n, remote, ios, ci. Omit the scope only when no single area fits.
  • Imperative mood, lowercase after the colon, no trailing period, 72 characters or fewer (including any issue prefix).
  • Describe the user-visible effect, not the mechanism: fix(sidebar): show worktree identity while creation is pending.
  • Tied to an issue: put the number first, #123 fix(sidebar): show worktree identity while pending. Never invent an issue number.
  • Do not add (#PR); GitHub appends it on squash merge.

Body

Explain why: the problem or goal and anything a reviewer cannot see in the diff (root cause, rejected alternatives, compatibility or migration impact). Wrap near 72 columns. Use bullets when the commit makes several distinct changes. Skip the body only for self-evident one-line changes.

Keep any co-author or attribution trailer the running agent harness supplies; do not invent one.

Pass the message with a heredoc or -F <file> so newlines and backticks survive the shell.

Hooks

.husky/pre-commit runs lint-staged (bun lint --type-aware --fix --deny-warnings and bun fmt on staged files, see lint-staged.config.js) and then bun run typecheck. It takes a while; let it finish.

  • Never use --no-verify. If the hook fails, fix the cause and commit again.
  • Hook auto-fixes are written to the working tree; re-stage the touched paths and check the diff before retrying.

History

  • Do not amend, rebase, or force-push commits that are already pushed unless the user asks; reviewers lose their place. Add a follow-up commit instead.
  • If the user asks to rewrite pushed history, use git push --force-with-lease, never plain --force.
  • Do not use git stash in a shared worktree setup; the stash stack is shared across worktrees. Use a temporary WIP commit to set work aside.

Done when

  • The commit exists on a non-master branch and contains only intended paths.
  • The subject matches the format above and git log -1 shows the full message as intended.
  • The pre-commit hook passed without being bypassed.
  • Report the branch, the commit SHA, and the subject. Push only if asked.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.