skills/git-workflow/SKILL.md
Enforces conventional commit format and a comprehensive PR workflow across all git repositories. Invoke this skill whenever the user wants to commit changes, create a pull request, push to a branch, or finish a feature for merging — even if they don't use those exact words. Triggers include: commit, create a PR, open a PR, push my changes, make a commit, commit and push, submit a PR, merge this, ready to merge, open a pull request. This skill handles conventional commit formatting, automatic breaking-change detection, doc and Makefile updates, and structured PR descriptions with honest test plans. Use it for every commit and PR action, no exceptions.
npx skillsauth add aldengolab/lorist git-workflowInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill governs how to commit code and create pull requests. The goal is consistency, clarity for collaborators, and honest documentation — especially around testing.
All commit messages and PR titles must use this format: <type>[(scope)][!]: <description>
| Type | When to use |
|------|-------------|
| feat | New feature |
| fix | Bug fix |
| docs | Documentation-only changes |
| style | Formatting, whitespace (no logic change) |
| refactor | Code restructuring without feature/fix |
| test | Adding or modifying tests |
| chore | Build process, dependency updates, tooling |
| ci / perf / build | CI changes / performance / build system |
Scope: Optional but recommended — module or file area affected. E.g. (auth), (api), (cli).
Description: Lowercase imperative mood ("add feature"), no trailing period, under 72 characters total.
Before writing any commit title or PR title, check whether the diff includes:
If any of these apply, mark it as breaking:
! after the type/scope in the title: feat(api)!: rename /users to /accountsBREAKING CHANGE: footer in the commit body explaining what changed and how to migrateWhen in doubt, flag it. False positives are cheap; missed breaking changes cause real pain downstream.
When a git MCP server is available (e.g., lorist-git or similar), prefer its tools over raw Bash git/gh commands. MCP git tools typically provide structured input/output, enforce conventional commit format automatically, and gate destructive operations behind a write flag.
Look for MCP tools that cover: status, diff, log, add, commit, push, branch, PR creation/viewing/editing, and review thread operations. If commit or PR creation tools accept structured parameters like commit_type, scope, and description, use them — they build the conventional commit message for you.
Fall back to Bash only when no MCP server is available or for operations it doesn't cover (e.g., git stash).
git branch --show-current (or the MCP equivalent). Confirm the current branch
matches the feature/fix you are working on. If the branch is wrong — e.g., you
are on main when you should be on a feature branch, or on a branch whose PR
has already been merged — create or switch to the correct branch before committing.
Never commit a fix to a branch that has already been merged or that doesn't match
the scope of the change.git status and git diff via Bash).make format-py, make fmt, make lint-fix). Stage any formatting changes. Then run the test suite (make test or equivalent). Fix any failures before proceeding.git add)breaking_change parameterPR Coherence: PRs are logical units. Before adding a commit to an existing branch, check whether it belongs there. If the changes are not logically related to the PR's existing scope, create a new branch and PR for them by default — do not bundle unrelated work into an existing PR unless the user explicitly asks you to.
Read the relevant reference file when needed:
Read skills/git-workflow/references/pr-workflow.mdRead skills/git-workflow/references/open-pr-updates.mdRead skills/git-workflow/references/test-plan-guide.mdRead skills/git-workflow/references/sensitive-content-prevention.mddevelopment
Build a UEFI Secure Boot PXE netboot server for Ubuntu autoinstall. Use when: designing or implementing network boot infrastructure for automated Ubuntu provisioning with Secure Boot enabled. Covers the complete chain: signed shim+GRUB selection, TFTP layout, kernel parameters, autoinstall config requirements, and post-install bootstrapping scripts. Also applicable when debugging an existing PXE setup that uses the wrong GRUB binary or config paths.
development
Design pattern for running a persistent PXE/TFTP server that safely coexists with already-installed nodes. Use when: building PXE infrastructure that should stay always-on, designing automated bare-metal provisioning in GitOps/Kubernetes environments, or any PXE setup where UEFI boot order has network boot first. Eliminates boot loops without requiring UEFI firmware changes.
development
This skill governs all prose output — Claude's own responses, documentation, PR descriptions, commit messages, README content, comments, and any text the user asks to draft or edit. It should also be used when the user asks to "review my writing", "edit this for clarity", "make this clearer", "simplify this text", "rewrite this", "check my prose", "tighten this up", or "make this more concise". Based on George Orwell's "Politics and the English Language" (1946).
development
Debug Kubernetes pods using hostNetwork: true that crash with "Address already in use" or "failed to create listening socket for port N". Use when: (1) a hostNetwork pod container is in CrashLoopBackOff and logs show a port bind failure, (2) the port works fine in non-hostNetwork pods but fails with hostNetwork, (3) you need to identify which host-level process holds a port from within Kubernetes (no SSH). Covers /proc/net/udp inspection and kubectl debug node with nsenter.