From dev-workflow
Use when the user says 'commit' or wants to save progress after completing a task. Analyzes uncommitted changes, groups them logically, and commits with conventional format messages.
npx claudepluginhub n0rvyn/indie-toolkit --plugin dev-workflowThis skill is limited to using the following tools:
Trigger this command when:
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Designs and optimizes AI agent action spaces, tool definitions, observation formats, error recovery, and context for higher task completion rates.
Trigger this command when:
On trigger:
git status and git diff --stat to understand current stateCheck git status
git status to see uncommitted filesgit diff --stat to see summary of changesAnalyze changes
git diff <file> to see exact changes if neededPre-commit audit
Before committing, scan git diff <file> for each file in the group. This is a blocking gate — groups with findings are held back. Only scan added lines (lines starting with + in diff output).
3a. Secrets & credentials
sk-[a-zA-Z0-9]{20,}, ghp_[a-zA-Z0-9]{20,}, gho_[a-zA-Z0-9]{20,}, AKIA[A-Z0-9]{16}, Bearer [a-zA-Z0-9._\-]{20,}password\s*=\s*["'], secret\s*=\s*["'], token\s*=\s*["'] (with non-empty literal values, not placeholders like <YOUR_TOKEN>)-----BEGIN (RSA |EC |OPENSSH )?PRIVATE KEY-----.env, .env.* file being committed (except .env.example)credentials.json, serviceAccountKey.json, *.pem, *.p123b. Debug residue
console.log(, debugger;, debugger .swift files only): standalone print( (not inside a function name like printSomething)breakpoint(), pdb.set_trace(), import pdbTODO, FIXME, HACK, XXX, #if DEBUG blocks3c. Large files
git diff --stat or file size in diff header.gitignoreAudit behavior:
⛔ BLOCKED: <file>:<line> — <reason>
⚠️ NOTE: <file>:<line> — <reason>
Create commit messages
type(scope): descriptionfeat, fix, docs, refactor, style, test, choresync, home, repository)Commit in logical order
CRITICAL: Execute add+commit per group, NOT batch add then batch commit
# CORRECT (per-group cycle):
git add <group1-files> && git commit -m "..."
git add <group2-files> && git commit -m "..."
git add <group3-files> && git commit -m "..."
# WRONG (batch add, then separate commits):
git add <all-files>
git commit -m "..." # <-- commits EVERYTHING staged
git commit -m "..." # <-- nothing left to commit!
Verify
git log --oneline -5 to show recent commitsgit status to confirm working tree is cleanXcode project files: *.xcodeproj directory contents (e.g., project.pbxproj) must always be staged and committed with related changes. Never skip, ignore, or exclude these files; Xcode Cloud relies on them to locate the project.
Merge commits: When merging branches, use default merge message. Do not re-split changes.
Fixup previous commit: If user says "add to last commit" or "amend":
git commit --amend only when explicitly requestedPartial staging: If user wants to commit only some files:
git add <file>Format:
type(scope): brief description
Optional body explaining:
- What changed
- Why it changed
Examples:
fix(sync): use healthKitWorkoutId for stable log bindingfeat(home): auto-refresh on sync successdocs(readme): add setup instructionsrefactor(repository): check persistentModelID before insertingGrouping Rules:
After completing commits, provide:
⛔ BLOCKED items (file, line, reason)⚠️ NOTE itemsgit status shows clean working tree (or only blocked/intentionally unstaged files)