name: commit description: Use when asked to prepare, review, or create a git commit for this repository. Follow the local commit policy, keep commits scoped to the intended changes, run the fast required checks, and write Conventional Commits that work with release-please.
Commit
Overview
Use this skill when a user asks for a commit or asks how a commit should be written for Pocodex. The goal is to produce a clean, policy-compliant git commit that matches the actual diff and works with release-please.
Workflow
- Inspect the worktree with
git status --shortandgit diff --stat, then read the diff for the files that are actually part of the requested change. - Exclude unrelated user changes. Do not stage or commit files outside the requested scope.
- Run
pnpm run check:commitbefore committing. If it fails, fix the issues or report the blocker instead of committing a broken tree. - Stage only the intended files with
git add <path>.... - Write a Conventional Commit message that accurately describes the staged diff.
- Commit with
git commit. Prefer a single-msubject for small changes, or add a body when the why matters.
Commit Rules
- Use Conventional Commits because
release-pleasederives release notes and version bumps from merged commit history. - Preferred types in this repo:
feat,fix,refactor,docs,test,build,ci,chore. - Use an optional scope when it improves clarity, for example
feat(server): ...orfix(bootstrap): .... - Use the imperative mood in the subject line.
- Keep the subject specific to the staged diff. Do not write broad summaries that cover unstaged work.
- Mark breaking changes with
!in the header and include aBREAKING CHANGE:footer in the body. - Avoid placeholder types such as
update,misc, orchanges.
Message Shape
Use this shape:
type(scope): short summary
Optional explanatory body.
BREAKING CHANGE: required when behavior or API compatibility changes.
Choosing The Type
feat: user-visible behavior or capability addedfix: bug fix or regression fixrefactor: internal restructuring without intended behavior changedocs: README, CONTRIBUTING, skills, or other documentation-only changestest: test-only changesbuild: packaging, dependencies, or build toolingci: GitHub Actions or other automation pipeline changeschore: maintenance that does not fit the above and should not usually trigger a release note highlight
Examples
feat: add LAN URL fallback for remote browser sessionsfix(server): ignore malformed ipc payloadsbuild: add release-please automationdocs(commit): document conventional commit policyrefactor(app-server-bridge): inline typed event overloads
Guardrails
- Do not commit unrelated local edits just because they are present in the worktree.
- Do not bypass the
commit-msgorpre-commithooks unless the user explicitly asks. - If the diff contains multiple unrelated concerns, split them into separate commits instead of forcing one message to cover everything.
- If you are unsure whether a change is release-relevant, still use the most accurate Conventional Commit type.
release-pleasecan decide whether it should cut a release.
Command Pattern
For a normal commit flow in this repo:
git status --short
git diff --stat
pnpm run check:commit
git add <intended files>
git commit -m "type(scope): summary"
Run pnpm run check separately when you want the full validation pass, including tests. Add a second -m body when the rationale, migration notes, or breaking-change context matters.