Skip to content

AnotherSava/claude-code-common

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Claude Code Skills

A collection of reusable Claude Code skills, hooks, and utility scripts for implementation planning, PR workflows, and architecture documentation.

Skills


Plan Implementation

Interactive design discussion that produces a structured plan document before any code is written.

Command: /plan-ralphex

Features:

  • Researches the codebase to understand current architecture and patterns
  • Asks clarifying questions and discusses design trade-offs
  • Iterates on the approach until you're satisfied
  • Outputs a plan in docs/plans/ with design decisions, file changes, and task breakdown

Create PR

Squashes a feature branch into a single Conventional Commit, pushes, and opens a PR to main.

Command: /pr-create

Features:

  • Reads the associated plan document and progress log for context
  • Drafts a commit message explaining motivation and key decisions
  • Asks for your approval before committing
  • Rebases onto main before pushing so pr-merge can fast-forward
  • Handles force-push when the branch was previously pushed with unsquashed commits

Merge PR

Merges a PR locally via fast-forward to preserve your GPG-signed commits.

Command: /pr-merge

Features:

  • Avoids GitHub's merge UI, which re-signs commits with GitHub's own key
  • Fast-forwards main to the PR branch (rebases as fallback if needed)
  • Stashes uncommitted changes and restores them after merge
  • Cleans up remote and local branches, prunes stale remote-tracking refs

Prepare PR

Analyzes plan-vs-implementation divergence before creating a PR.

Command: /pr-prepare

Features:

  • Compares the most recent completed plan against the progress log and unpushed commits
  • Surfaces unplanned additions, missing plan items, and design divergences
  • Identifies review-driven changes in commit history
  • Read-only analysis — does not modify files or create commits

Update PR

Soft-resets unpushed commits and delegates to /commit for clean atomic commits, then pushes to update an existing PR.

Command: /pr-update

Features:

  • Detects new changes since the last push (unpushed commits + uncommitted changes)
  • Soft-resets unpushed commits and delegates to /commit for re-grouping
  • Rebases onto main and force-pushes with lease
  • Appends an update summary to the PR description

Commit

Analyzes changes and generates atomic Conventional Commit messages.

Command: /commit

Features:

  • Reviews staged and unstaged changes, groups them into atomic commits
  • Drafts commit messages in imperative mood with type prefixes
  • Updates stale documentation and optimizes imports before committing
  • Presents a full plan for approval before executing any commits
  • GPG-signs all commits, never adds AI attribution

Deploy

Configures the deployment pipeline for a .NET project and runs it. On first use in a project, sets up the deploy bash function, creates a local scripts/deploy.sh wrapper, and updates .gitignore. Then builds, deploys to the install directory, and verifies the app starts.

Command: /deploy

Features:

  • Auto-configures deploy() bash function in ~/.bashrc if missing
  • Creates scripts/deploy.sh wrapper pointing to the global deploy script
  • Reads install path from config/deploy.env (asks on first run)
  • Runs the full pipeline: stop app → build → clean install dir → copy → launch → verify
  • After first /deploy, use ! deploy for instant deploys without LLM overhead

Release

Tags a new version, pushes to trigger CI, monitors the build, and updates the GitHub release with final notes.

Command: /release

Features:

  • Validates preconditions: clean tree, on main, in sync with remote
  • Auto-detects project name from .csproj and GitHub repo info
  • Recommends version bump based on commit history, asks for confirmation
  • Compiles release notes from commits with SmartScreen warning and download table
  • Pushes tag, monitors the GitHub Actions workflow until completion
  • Updates release notes with actual asset sizes after CI produces the artifacts

Document Data Flow

Generates or updates a data-flow architecture document (docs/data-flow.md).

Command: /document-data-flow

Features:

  • Discovers the project's architecture by exploring the codebase
  • Produces step-by-step flow diagrams with data transition annotations
  • Generates message/API protocol tables for all message types and endpoints
  • Follows strict formatting rules for consistency across updates

Review Summary

Summarizes a ralphex review — what was found, fixed, and dismissed.

Command: /review-summary

Features:

  • Reads the most recent progress log from .ralphex/progress/
  • Identifies committed but unpushed changes against origin/main
  • Produces a concise summary: confirmed fixes, unaddressed concerns, and false positives

Update Plannotator Plugin

Force-updates the plannotator plugin by clearing stale caches and reinstalling.

Command: /plannotator-update

Features:

  • Removes the marketplace cache (stale git clone that prevents updates)
  • Removes the plugin cache
  • Guides through reinstallation after restart

Hooks

Telegram Notification

Sends a Telegram message when Claude Code needs attention and the user hasn't interacted for 60 seconds. Distinguishes between notification types so you know whether to context-switch back.

Location: claude/hooks/notifications/telegram.py

Notification types:

  • Done — Claude finished the task (last assistant message is a statement). Includes a snippet of the original prompt for context.
  • Has a question — Claude finished but is waiting for your answer (last assistant message ends with ?). Includes a snippet of the original prompt.
  • Needs approval: <tool> — Claude needs permission to use a specific tool (e.g. Bash, Edit).
  • Fallback — plan approval or unknown notification types are forwarded as-is.

How it works:

  • Notification hook fires when Claude stops, waits 60 seconds, then checks the session log mtime to detect any user interaction (prompts, tool approvals, etc.) — if idle, formats the notification based on the notification_type field in the hook payload
  • For idle_prompt notifications, reads the last assistant message from the session transcript to determine if Claude finished (statement) or is asking a question (?)
  • UserPromptSubmit hook saves the prompt text (for display in notifications) and auto-deletes all pending notifications when the user returns

Setup: Create claude/hooks/notifications/.env with:

TELEGRAM_BOT_TOKEN=...
TELEGRAM_CHAT_ID=...

Git Hooks

Pre-Push Validation

File: git/hooks/pre-push

Prevents pushing commits that are Claude-attributed or not GPG-signed. Every new commit in the push is checked for:

  • Author or committer name/email containing "claude" or "anthropic"
  • Co-Authored-By trailers mentioning Claude or Anthropic
  • Missing good GPG signature (only G status passes)

Global installation is covered in the Global Installation section below.


Learnings

Domain-specific knowledge files in claude/learnings/ are available globally via the ~/.claude/learnings/ symlink. To use them in a project, add a line to that project's CLAUDE.md:

Read `~/.claude/learnings/chrome-extension.md` for domain-specific patterns.
File Domain
chrome-extension.md Chrome extensions (Manifest V3, Vite, side panel, service workers)
dotnet-tray-app.md .NET Windows tray apps (WinForms/WPF, config, overlay, CI/CD)

Scripts

Scripts in this section are written in AutoHotkey v2 (Windows-only). To run a script, install AutoHotkey v2 and double-click the .ahk file. To auto-start a script with Windows, place a shortcut to it in your Startup folder — press Win+R, type shell:startup, and drop the shortcut there.


Monosnap Watcher

File: scripts/monosnap-watcher.ahk (AutoHotkey v2)

Claude Code can't receive pasted images — it needs a file path. Monosnap (a screenshot tool) can auto-save captures to a folder, but doesn't copy the file path to the clipboard. This script bridges the gap: it watches the Monosnap output folder and copies the path of each new screenshot to the clipboard, so you can paste it straight into Claude Code.

Setup: Set the MONOSNAP_DIR environment variable to your Monosnap auto-save folder (e.g. C:\Users\OlegS\Monosnap).


Global Installation

Global files live in claude/ (symlinked to ~/.claude/) and git/ (hooks, gitignore, gitattributes — each symlinked to ~/). Project-local config stays in .claude/.

If any of these already exist in ~/.claude/ or ~/.git-hooks/, move them into the repo first (or remove them) before creating the symlink.

Windows

Run from the project root as Administrator:

New-Item -ItemType SymbolicLink -Path "$env:USERPROFILE\.claude\CLAUDE.md" -Target "$PWD\claude\CLAUDE.md"
New-Item -ItemType SymbolicLink -Path "$env:USERPROFILE\.claude\skills" -Target "$PWD\claude\skills"
New-Item -ItemType SymbolicLink -Path "$env:USERPROFILE\.claude\hooks" -Target "$PWD\claude\hooks"
New-Item -ItemType SymbolicLink -Path "$env:USERPROFILE\.claude\settings.json" -Target "$PWD\claude\settings.json"
New-Item -ItemType SymbolicLink -Path "$env:USERPROFILE\.claude\learnings" -Target "$PWD\claude\learnings"
New-Item -ItemType SymbolicLink -Path "$env:USERPROFILE\.git-hooks" -Target "$PWD\git\hooks"
New-Item -ItemType SymbolicLink -Path "$env:USERPROFILE\.gitignore" -Target "$PWD\git\gitignore"
New-Item -ItemType SymbolicLink -Path "$env:USERPROFILE\.gitattributes" -Target "$PWD\git\gitattributes"
git config --global core.hooksPath "$env:USERPROFILE\.git-hooks"
git config --global core.excludesFile "~/.gitignore"
git config --global core.attributesFile "~/.gitattributes"

Linux / macOS

Run from the project root:

ln -s "$(pwd)/claude/CLAUDE.md" ~/.claude/CLAUDE.md
ln -s "$(pwd)/claude/skills" ~/.claude/skills
ln -s "$(pwd)/claude/hooks" ~/.claude/hooks
ln -s "$(pwd)/claude/settings.json" ~/.claude/settings.json
ln -s "$(pwd)/claude/learnings" ~/.claude/learnings
ln -s "$(pwd)/git/hooks" ~/.git-hooks
ln -s "$(pwd)/git/gitignore" ~/.gitignore
ln -s "$(pwd)/git/gitattributes" ~/.gitattributes
git config --global core.hooksPath ~/.git-hooks
git config --global core.excludesFile "~/.gitignore"
git config --global core.attributesFile "~/.gitattributes"

License

GPL-3.0

About

Reusable Claude Code skills for implementation planning, PR workflows, commits, and architecture documentation

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors