From b7e25adee83ed41cde72f62d79a0a76c7b91b35d Mon Sep 17 00:00:00 2001 From: 404-Page-Found <139850808+404-Page-Found@users.noreply.github.com> Date: Mon, 21 Sep 2026 19:03:15 +1000 Subject: [PATCH 01/80] chore(skills): duplicate checkout-branch skill for Claude Code --- .claude/skills/checkout-branch/SKILL.md | 85 +++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 .claude/skills/checkout-branch/SKILL.md diff --git a/.claude/skills/checkout-branch/SKILL.md b/.claude/skills/checkout-branch/SKILL.md new file mode 100644 index 0000000..0d0f43f --- /dev/null +++ b/.claude/skills/checkout-branch/SKILL.md @@ -0,0 +1,85 @@ +--- +name: checkout-branch +description: 'Create and switch to a new branch. Accepts a branch name or GitHub issue number. Derives branch name from issue title when an issue number is given. USE FOR: starting new work, branching from an issue, creating feature/bugfix branches. DO NOT USE FOR: committing, pushing, or managing PRs.' +user-invocable: true +argument-hint: '' +--- + +# Checkout Branch + +Create a new Git branch and switch to it. Supports two input modes: + +1. **Issue number** (e.g., `42`) — fetches the issue title and derives a branch name like `feature/42-fix-login-error` +2. **Branch name** (e.g., `feature/my-feature`) — uses the name as-is + +## Procedure + +### 1. Determine Input Type + +- If the argument is a **pure number** → treat as an issue number, go to Step 2a +- Otherwise → treat as an explicit branch name, go to Step 2b + +### 2a. Issue Number Flow + +1. Fetch the issue from the current GitHub repository using the provided issue number + - Extract the issue title + - Derive a slug: lowercase the title, replace spaces with hyphens, strip special characters, truncate to 50 chars + - Choose a prefix based on issue labels (if available): + - `bug`, `bugfix`, `defect` → `bugfix/-` + - `enhancement`, `feature` → `feature/-` + - No matching label → `issue/-` + - Confirm the derived branch name with the user before proceeding +2. Go to Step 3 + +### 2b. Explicit Name Flow + +1. Use the provided name exactly +2. Validate it is a valid Git branch name (no spaces, no `..`, no `~^:?*[\`, not `@{`, not `-`) +3. If invalid, suggest a sanitized version and ask the user to confirm +4. Go to Step 3 + +### 3. Create and Switch + +Run the following steps: + +```bash +# Fetch latest remote refs +git fetch origin + +# Create branch from default branch (usually main or master) +# Determine the default branch first: +git remote show origin | grep "HEAD branch" +``` + +Then create and switch: + +```bash +git checkout -b origin/ +``` + +If the branch already exists locally, ask the user whether to: +- **Switch** to the existing branch (`git checkout `) +- **Reset** it to the latest origin (`git checkout -B origin/`) +- **Choose a different name** + +### 4. Verify + +After switching: + +- Confirm the current branch with `git branch --show-current` +- Show a short summary: branch name, base branch, and tracking status + +## Example Interactions + +| User says | Action | +|-----------|--------| +| `/checkout-branch 42` | Fetch issue #42, derive `feature/42-fix-login`, create & switch | +| `/checkout-branch feature/auth-refactor` | Create & switch to `feature/auth-refactor` | +| `/checkout-branch bugfix/15-memory-leak` | Create & switch to `bugfix/15-memory-leak` | + +## Edge Cases + +- **Branch already exists locally**: Offer switch, reset, or rename. +- **Issue not found**: Report the error and ask the user to provide a branch name manually. +- **Detached HEAD state**: Warn the user and suggest creating a new branch from their current commit. +- **Dirty working tree**: Warn the user that uncommitted changes will be carried over; suggest stashing first if they prefer. From 501d585a248f48956066645a642cacb4bee6b84b Mon Sep 17 00:00:00 2001 From: 404-Page-Found <139850808+404-Page-Found@users.noreply.github.com> Date: Mon, 21 Sep 2026 19:03:19 +1000 Subject: [PATCH 02/80] chore(skills): duplicate commit skill for Claude Code --- .claude/skills/commit/SKILL.md | 110 +++++++++++++++++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 .claude/skills/commit/SKILL.md diff --git a/.claude/skills/commit/SKILL.md b/.claude/skills/commit/SKILL.md new file mode 100644 index 0000000..eb20bc3 --- /dev/null +++ b/.claude/skills/commit/SKILL.md @@ -0,0 +1,110 @@ +--- +name: commit +description: "**WORKFLOW SKILL** — Stage changes, write clear commit messages, and commit following best practices. USE FOR: committing code changes; writing conventional commit messages; staging files before commits; amending previous commits; creating atomic commits; generating commit messages from diffs. DO NOT USE FOR: pushing to remote (use git push); resolving merge conflicts; branching or rebasing." +user-invocable: true +--- + +# Commit Workflow + +## Overview + +This skill guides a structured commit workflow: analyze changes, stage appropriately, write a clear commit message, and commit. + +## Workflow Steps + +### 1. Analyze Changes + +Review what has changed before committing: + +- **Check status**: Understand which files are modified, added, or deleted +- **Review diffs**: Understand *what* and *why* each change was made +- **Group related changes**: Identify logical units of work that belong together + +### 2. Stage Changes + +Stage files intentionally — avoid `git add .` unless all changes are part of one commit: + +- **Atomic commits**: Each commit should represent one logical change +- **Partial staging**: Use `git add -p` for interactive staging when a file contains multiple unrelated changes +- **Review before staging**: Confirm no debug code, secrets, or unrelated files are included + +### 3. Write Commit Message + +Follow this structure: + +``` +(): + + + +