My personal collection of Claude Code extensions, distributed as a shadcn GitHub registry.
Items install into the current project under .claude/, so run the install command from your project root. (shadcn writes into the project you run it in; its ~ means "project root", not your home directory, so a skill lands in <project>/.claude/skills/<name>/.)
Most items are for software work. The thesis plugin is the exception: a full research lifecycle for a master's thesis or paper (research question, literature search, paper notes, verified citations, synthesis, methodology, statistics, writing, LaTeX and Word toolchains, an examiner-style reviewer, and progress tracking), built for computer-science students and usable by anyone who writes with a bibliography.
Skills, agents, commands, and hooks
If you are new to Claude Code extensions, here is what each kind is and when you would reach for it. They differ mainly in who or what sets them off.
- Skill. A reusable procedure Claude loads on its own when your request matches what the skill is for. You do not have to ask for it by name. Reach for a skill when you keep repeating the same multi-step task and want Claude to just know how to do it well (for example, writing a good commit or scanning for leaked secrets).
- Agent. A specialist Claude can hand a whole side task to, working in its own separate context and handing back just the result. Reach for an agent when a job would otherwise flood the main conversation with noise, like deep web research or a focused code review.
- Command. A shortcut you trigger yourself by typing
/name. Reach for a command when you want to kick something off deliberately, on your timing, rather than leaving it to Claude to decide.
- Hook. A script that runs automatically on an event in Claude Code, such as before a tool runs or when a session ends. Reach for a hook when you want something to happen every single time, with no model judgment involved, like logging or a safety check.
The table under What installs where shows where each one lands on disk and what triggers it.
Install
There are two ways to get these items: plugins (bundles, managed by Claude Code, hooks pre-wired), or the shadcn CLI (one item at a time, copied into your project).
As Claude Code plugins (recommended)
Add the marketplace once, then install any bundle:
/plugin marketplace add KhaledSaeed18/dotclaude
/plugin install security@dotclaude
A good starter set is engineering + git + security-hooks: the daily workflow skills, the branch lifecycle, and the deterministic guardrails. From a terminal you can install all three in one line (the CLI takes one plugin per call):
for p in engineering git security-hooks; do claude plugin install "$p@dotclaude"; done
Prefer browsing? After adding the marketplace, open /plugin and pick from the Discover tab: no typing needed.
Plugins update with the repo (/plugin marketplace update dotclaude), namespace their commands (/security:security-audit), and (unlike the shadcn route) hook plugins activate immediately, with no manual settings.json editing.
| Plugin | What you get | Install |
|---|
| engineering | Engineering workflow skills, review agents, and a /feature pipeline: orientation, planning, test-driven development, systematic debugging, refactoring, error handling, observability, containers, CI pipelines, dependency upgrades, migration planning, incident postmortems, code review, completion verification, and performance work. (22 skills, 7 agents, 2 commands) | /plugin install engineering@dotclaude |
| deploy | Ship a Next.js app or an Express and Prisma API to a VPS under Coolify, end to end: runtime-only images with health probes and fast shutdown, one GitHub Actions pipeline from pull request to production through GHCR, the Coolify application and API token, a host ops toolkit with alerting health checks and verified backups, server-side deploy verification, a zero-downtime domain cutover, and a read-only deployment reviewer. (9 skills, 1 agent, 3 commands) | /plugin install deploy@dotclaude |
| docs | Documentation that stays true to the code: architecture decision records with an /adr command, READMEs verified against the repository, developer guides in the four documentation types, and OpenAPI specifications kept in sync in CI. (4 skills, 1 command) | /plugin install docs@dotclaude |
| pr-toolkit | Pull-request review as a set of specialists: a read-only code explorer, a behaviour-preserving simplifier, hunters for silent failures and test gaps, a type-design reviewer, and a /review-pr command that runs them in parallel and merges one ranked review. (5 agents, 1 command) | /plugin install pr-toolkit@dotclaude |
| security | Security review toolkit: OWASP-aligned code review, dependency and secret auditing skills, a security-auditor agent, and a full-codebase /security-audit command. (3 skills, 1 agent, 1 command) | /plugin install security@dotclaude |
| security-hooks | Deterministic guardrails, active immediately after install: a compound-command deny list, sensitive-file protection, and prompt-injection screening. (3 hooks) | /plugin install security-hooks@dotclaude |
| git | Version-control skills for the whole branch lifecycle: committing, worktrees, merge conflicts, undo/recovery, PR descriptions, changelogs, releases, and branch cleanup. (9 skills, 3 commands) | /plugin install git@dotclaude |
The four create-* authoring skills are intentionally not in any plugin; they exist to author items for this repository and install via shadcn only.
With the shadcn CLI (single items)
Install any single item with the shadcn CLI:
npx shadcn@latest add KhaledSaeed18/dotclaude/<item>
For example, run this from your project root and the handoff skill lands in .claude/skills/handoff/:
npx shadcn@latest add KhaledSaeed18/dotclaude/handoff
What installs where
Each item installs under .claude/, by type:
| Type | Installs to | Triggered by |
|---|
| Skills | .claude/skills/<name>/ | Claude, automatically, when the description matches the task |
| Agents | .claude/agents/<name>.md | Claude delegating to the subagent, or you invoking it |
| Commands | .claude/commands/<name>.md | You, by typing /<name> |
| Hooks | .claude/hooks/<name>/ | A settings.json event you wire up (see below) |
Hooks need one extra step. shadcn copies the hook's script and its HOOK.md, but it can't edit your settings.json. After installing a hook, open its HOOK.md and add the documented block to .claude/settings.json to activate it.
Want an item available globally (in every project)? Install it into a project as above and copy it into your home config, folders for skills and hooks, single files for agents and commands:
cp -R .claude/skills/handoff ~/.claude/skills/ # skills & hooks: folders
cp .claude/agents/code-reviewer.md ~/.claude/agents/ # agents & commands: single files
Skills and hooks that bundle companion files install them in the same folder, and the cp -R above carries them across automatically.
Hook configuration
Hooks that take settings read one optional file, <project>/.claude/dotclaude.json, and fall back to sensible defaults when it is absent or unreadable. Each hook reads only its own key; a full example:
{
"gitGuard": { "protectedBranches": ["main", "master", "develop", "release/*"], "allowNoVerify": false },
"branchProtect": { "protectedBranches": ["main", "master", "develop"] },
"stopGate": { "command": "pnpm test", "timeoutMs": 120000, "onlyWhenDirty": true },
"typecheckOnEdit": { "enabled": true, "maxLines": 25 },
"sessionContext": { "commits": 3, "handoffFile": "HANDOFF.md" },
"subagentSummary": { "logFile": ".claude/subagents.log" },
"citationGuard": { "bibFile": "references.bib" }
}
Each hook's HOOK.md documents its keys.
Catalog
The catalog below lists every item in this repository, grouped by type and then category.
Skills
Academic
| Skill | Description | Install |
|---|
| academic-writing | Write or revise thesis and paper prose section by section (abstract, introduction, related work, method, results, discussion, conclusion) with the conventions of computer-science writing: claim-first paragraphs, tense and voice by section, hedging matched to evidence, signposting, defined terms, and figures and tables that carry their own argument. Works from the student's outline and notes and never invents a result or a citation. Use when drafting a chapter, when a supervisor says a section is unclear or unstructured, or when turning results into a discussion. | npx shadcn@latest add KhaledSaeed18/dotclaude/academic-writing |
| benchmark-reporting | Report computational benchmarks and experimental comparisons the way examiners and reviewers expect: fair baselines run under the same conditions, multiple seeds with variance, hardware and configuration disclosed, tables generated from result files with consistent precision and the best result marked by rule, ablations that isolate each component, and honest treatment of losses and failure cases. Use when writing the results chapter of a systems or ML thesis, when a comparison table needs to be built, or when a reviewer questions whether a comparison is fair. | npx shadcn@latest add KhaledSaeed18/dotclaude/benchmark-reporting |
| bibtex-manager | Maintain the thesis .bib file as a single source of truth: fetch verified BibTeX from a DOI, arXiv id, or title via CrossRef and arXiv, normalise citation keys (firstauthorYEARkeyword), deduplicate entries, fix fields BibTeX and biblatex care about, and export to Zotero-friendly form when the writing happens in Word. Use when adding references, cleaning a messy bibliography, resolving duplicate keys, or converting a reading list into a .bib. | npx shadcn@latest add KhaledSaeed18/dotclaude/bibtex-manager |
| citation-graph | Expand a set of key papers into the literature around them by walking the citation graph with the Semantic Scholar and OpenAlex APIs: backward (references), forward (citing works), and co-citation, scored by how many seeds connect to each candidate, so the papers a reviewer will expect are found even when keyword search misses them. Use after literature-search has found the first key papers, when a supervisor names one seminal paper, or when checking that a related-work chapter has not missed a line of work. |
Deployment
| Skill | Description | Install |
|---|
| coolify-image-app | Create and configure a Coolify application that runs a prebuilt image from a registry. Use when adding an app to Coolify, fixing its health check, domains, limits or environment, or wiring its API token for a pipeline. | npx shadcn@latest add KhaledSaeed18/dotclaude/coolify-image-app |
| coolify-vps-baseline | Prepare a Linux VPS to run production containers under Coolify. Use when setting up a new server, auditing an existing one, or connecting a registry, firewall, proxy and monitoring before the first deploy. | npx shadcn@latest add KhaledSaeed18/dotclaude/coolify-vps-baseline |
| deploy-verification | Prove a deployment from the server side. Use when a deploy finished and needs sign-off, when a rolling update may have dropped requests, or when a proxy, certificate, header or client address needs checking. | npx shadcn@latest add KhaledSaeed18/dotclaude/deploy-verification |
| express-prisma-coolify-image | Package an Express and Prisma API as a runtime-only image that migrates its Postgres database at start. Use when containerising a Node API with a database, or when migrations, readiness or shutdown misbehave in production. | npx shadcn@latest add KhaledSaeed18/dotclaude/express-prisma-coolify-image |
| ghcr-coolify-pipeline | Write the single GitHub Actions workflow that takes a repository from pull request to production through GHCR and Coolify. Use when adding deployment to a repo, replacing a CI-only workflow, or debugging a deploy job. | npx shadcn@latest add KhaledSaeed18/dotclaude/ghcr-coolify-pipeline |
|
Documentation
| Skill | Description | Install |
|---|
| adr-writing | Write Architecture Decision Records that a future engineer can act on: a numbered, immutable record with the context that forced the decision, the options weighed with real trade-offs, the decision in one sentence, and the consequences including what becomes harder. Covers when a decision deserves an ADR, how to supersede one, and how to keep an index. Use when a design choice has cross-cutting or long-lived effects, when reviewers keep asking why, or when onboarding depends on decisions nobody wrote down. | npx shadcn@latest add KhaledSaeed18/dotclaude/adr-writing |
| openapi-spec | Write, generate, or review an OpenAPI 3.1 specification for an HTTP API so that it is accurate to the implementation, complete for consumers (schemas, examples, errors, auth, pagination), and usable by tooling (validation, client generation, mock servers). Covers design-first and code-first workflows, linting with Spectral, and keeping the spec in sync in CI. Use when documenting an API, when a client generator or contract test needs a spec, or when the existing spec no longer matches the routes. | npx shadcn@latest add KhaledSaeed18/dotclaude/openapi-spec |
| readme-writing | Write or restructure a README that gets a reader from landing to first success in minutes: a one-line purpose, a working quick start verified against the actual code, then usage, configuration, and contribution pointers in the order a new user needs them, with nothing the code contradicts. Reads the repository first and never documents behaviour it has not confirmed. Use when a project has no README, when the README has drifted from the code, or before publishing a package or repository. | npx shadcn@latest add KhaledSaeed18/dotclaude/readme-writing |
| technical-writing | Write and edit developer documentation, guides, design notes, and engineering blog posts with a working writer's discipline: audience and purpose first, one idea per paragraph, examples before abstractions, precise verbs, consistent terms, and structure the reader can scan. Includes formats for how-to guides, reference pages, explanations, and tutorials, and an editing checklist. Use when writing docs, a design note, a release announcement, or a post, or when a draft is accurate but nobody can follow it. |
Engineering
| Skill | Description | Install |
|---|
| adversarial-reviewer | Review code through three hostile personas - the Saboteur, the New Hire, and the Security Auditor - each required to find at least one issue. Use when a standard review feels too comfortable, when code is going into a critical path, when a previous review missed bugs that later surfaced, or when you want coverage across correctness, clarity, and security in a single pass. | npx shadcn@latest add KhaledSaeed18/dotclaude/adversarial-reviewer |
| api-design-review | Review an API contract (REST or GraphQL) before or while it is implemented, checking resource naming, HTTP semantics, status codes, error shape, pagination, versioning, idempotency, and backward compatibility, and producing concrete revisions rather than abstract advice. Use when designing new endpoints, changing an existing API's surface, or reviewing a PR that adds or modifies API routes. | npx shadcn@latest add KhaledSaeed18/dotclaude/api-design-review |
| code-review-response | Process code-review feedback with technical rigour. Understand each point, check it against the actual codebase, and respond with reasoning or implementation rather than reflexive agreement. Use when you receive review comments (from a human, the code-reviewer agent, or any reviewer) and are about to act on them, especially if any feedback seems unclear or wrong. | npx shadcn@latest add KhaledSaeed18/dotclaude/code-review-response |
| create-agent | Author a new subagent for this repository end to end by scaffolding it with pnpm new, curating its tool allowlist, setting model, color, and memory in frontmatter, then writing a focused system prompt and regenerating the registry. Use when creating, scaffolding, or reviewing an agent or subagent in this repo. | npx shadcn@latest add KhaledSaeed18/dotclaude/create-agent |
| create-command |
Productivity
| Skill | Description | Install |
|---|
| brainstorming | Turn a rough idea into a fully formed, written design through collaborative dialogue, exploring intent, requirements, and trade-offs one question at a time, then proposing approaches and capturing the agreed design in a spec before any code is written. Use at the start of any creative or feature work, when the idea isn't yet concrete enough to plan or build. | npx shadcn@latest add KhaledSaeed18/dotclaude/brainstorming |
| decision-log | Keep a lightweight decision log for a project or a person: one dated line per decision with the choice, the reason, the alternatives, who decided, and a revisit trigger, in a single Markdown file that is grepped rather than browsed, so that why did we do that has an answer six months later. Lighter than an ADR; use for product, process, and scope decisions that do not warrant one. Use when a decision is made in chat or a meeting, when the same debate keeps recurring, or when onboarding someone into a project's history. | npx shadcn@latest add KhaledSaeed18/dotclaude/decision-log |
| grill-me | Relentlessly stress-test a plan, design, architecture, idea, or strategy until all critical decisions are resolved. Use when a plan, design, or decision needs adversarial stress-testing before committing to it. | npx shadcn@latest add KhaledSaeed18/dotclaude/grill-me |
| handoff | Compact the current conversation into a handoff document for another agent to pick up. Use when ending a session, switching agents, or preserving context before compaction. | npx shadcn@latest add KhaledSaeed18/dotclaude/handoff |
| issue-writer | Turn a rough bug report, idea, or complaint into an actionable issue by investigating the codebase first for reproduction steps, expected vs actual behaviour, suspected location, and acceptance criteria, then filing it with gh or emitting paste-ready markdown. Use when asked to file or write up an issue, or when a bug mentioned in passing should be tracked. |
Research
| Skill | Description | Install |
|---|
| business-name-check | Vet a candidate business or brand name across domains, social handles, commerce and listing platforms, company registers, and existing businesses, then report which candidate is actually claimable. Use when naming a company, product brand, store, studio, agency, or newsletter. For a package, library, or app name, use project-name-check instead. | npx shadcn@latest add KhaledSaeed18/dotclaude/business-name-check |
| project-name-check | Vet a candidate name for a software project across package registries, domains, app stores, code hosts, and existing projects, then report which candidate is actually free. Use when picking or clearing a name for a package, library, app, CLI, extension, or repository. For a company or brand name, use business-name-check instead. | npx shadcn@latest add KhaledSaeed18/dotclaude/project-name-check |
Security
| Skill | Description | Install |
|---|
| dependency-audit | Audit a project's dependencies for outdated and vulnerable packages and surface breaking-change notes for upgrades. Works with any ecosystem, including npm/pnpm/yarn, pip/Poetry/uv, Cargo, Go modules, Maven/Gradle, Bundler, Composer, and others. Use when checking a project's dependency health, planning upgrades, or responding to a vulnerability report. | npx shadcn@latest add KhaledSaeed18/dotclaude/dependency-audit |
| owasp-security | Review code being written or modified against the OWASP Top 10:2025 and ASVS secure-coding requirements, in any language or stack, catching vulnerability classes before they ship. Use when writing auth logic, handling user input, adding API endpoints, choosing cryptography, processing uploads, or touching any trust boundary. Complements secret-scan and dependency-audit with line-level review. | npx shadcn@latest add KhaledSaeed18/dotclaude/owasp-security |
| secret-scan | Scan code or a diff for hardcoded secrets (API keys, tokens, passwords, private keys, and other exposed credentials) before they get committed or shipped. Use before committing, during review, or when auditing a repository. | npx shadcn@latest add KhaledSaeed18/dotclaude/secret-scan |
Testing
| Skill | Description | Install |
|---|
| accessibility-audit | Audit UI code or a running page against WCAG 2.2 AA, covering semantics, keyboard access, focus, labels, contrast, ARIA misuse, and motion, using axe-core in a real browser when available and code review when not, with findings ranked by user impact. Use when building or reviewing UI components, before shipping user-facing pages, or when accessibility compliance is required. | npx shadcn@latest add KhaledSaeed18/dotclaude/accessibility-audit |
| webapp-testing | Verify a web application works in a real browser with Playwright, covering navigation, form submission, interactions, console errors, screenshots, and responsive layout. Use when a UI feature needs end-to-end confirmation, a form flow must complete, or a change needs regression checking. Requires Node.js and installs Playwright if absent. | npx shadcn@latest add KhaledSaeed18/dotclaude/webapp-testing |
Version Control
| Skill | Description | Install |
|---|
| changelog | Generate a changelog or release notes from Git history, grouped by change type, written in user-facing language, with issue/PR links and breaking changes called out. Conventional-Commits aware and Keep a Changelog formatted; respects any existing CHANGELOG or tooling. Use when preparing release notes or updating CHANGELOG.md. | npx shadcn@latest add KhaledSaeed18/dotclaude/changelog |
| finish-branch | Wrap up a completed development branch by verifying tests pass, detecting the workspace state, then presenting clear merge / PR / keep / discard options and executing the chosen one safely, including correct worktree and branch cleanup. Use when implementation is done, tests should be green, and you need to integrate or put away the work. | npx shadcn@latest add KhaledSaeed18/dotclaude/finish-branch |
| git-commit | Commit work the right way by gathering full repo state, respecting the project's commitlint/pre-commit/branch rules, staging only understood files, and writing a conventional-commit message whose body explains why. Use when committing, branching, or pushing changes. | npx shadcn@latest add KhaledSaeed18/dotclaude/git-commit |
| git-undo | Recover safely from Git mistakes such as discard, unstage, amend, reset, revert, restore lost commits via reflog, recover deleted branches, and fix bad rebases. Chooses the least-destructive fix and protects against data loss. Use when something in Git went wrong and needs undoing. | npx shadcn@latest add KhaledSaeed18/dotclaude/git-undo |
| git-worktrees | Set up an isolated workspace for feature work so the current branch and working tree stay untouched, detecting existing isolation first, preferring the platform's native worktree tooling, and falling back to git worktrees only when nothing native exists. Use before starting feature work that needs isolation, or before executing an implementation plan. |
Writing
| Skill | Description | Install |
|---|
| email-draft | Draft an email or message that gets the reply it needs: purpose in the first line, the ask made explicit with a date, context kept to what the reader needs, one request per message, a subject line that says the content, and a register matched to the relationship (supervisor, colleague, maintainer, support, recruiter). Never sends. Use when writing to a supervisor, a maintainer, a reviewer, a vendor, or a team, when a message is not getting answered, or when a difficult message needs the right tone. | npx shadcn@latest add KhaledSaeed18/dotclaude/email-draft |
| humanize | Rewrite prose that reads as machine-generated so it reads as the writer, without changing what it says or adding any fact: removes not-X-but-Y contrasts, one-line closers, staged openers, forced triads, dash overuse, stacked hedges, inflated significance, stock AI vocabulary, decorative bold and headings, and chatbot residue. Works on READMEs, PR descriptions, docs, thesis chapters, and emails. Use when editing or reviewing any text before it reaches a human reader, or when a draft was produced with AI assistance. | npx shadcn@latest add KhaledSaeed18/dotclaude/humanize |
| presentation-outline | Structure a talk, thesis defence, or project presentation as a slide-by-slide outline with one message per slide, an opening that states the point, evidence slides that carry a claim in the title, a timed run of show, anticipated questions with answers, and speaker notes, sized to the slot. Produces the outline and notes, not the slide design. Use when preparing a defence, a conference or team talk, a demo, or a status presentation, or when a deck has content but no argument. | npx shadcn@latest add KhaledSaeed18/dotclaude/presentation-outline |
Agents
Academic
| Agent | Description | Install |
|---|
| paper-critic | Use this agent to read one paper adversarially: it separates what the paper claims from what its evidence supports, finds methodological holes (weak baselines, unfair comparisons, leakage, missing variance, cherry-picked settings), checks whether the conclusions follow, and returns a critique the student can use to position their own work or to decide how much to trust the paper. Read-only. Use when a paper is central to the thesis, when its results look too good, or when preparing to argue against it in related work. | npx shadcn@latest add KhaledSaeed18/dotclaude/paper-critic |
| thesis-reviewer | Use this agent to get an examiner's read of a thesis chapter or full draft before the supervisor or committee sees it: it checks whether the research questions are answered by the evidence, whether the contribution is clear and honestly sized, whether the method supports the claims (validity threats, baselines, statistics), whether the related work covers what an examiner would expect, and what the hardest defence questions will be. Read-only; returns a ranked report with locations. Use before submitting a chapter, before the defence, or when a draft feels finished but has not been challenged. | npx shadcn@latest add KhaledSaeed18/dotclaude/thesis-reviewer |
Deployment
| Agent | Description | Install |
|---|
| deploy-reviewer | Use this agent to review a repository's deployment setup read-only. Use when a Dockerfile, pipeline, health probe or Coolify configuration needs a second pair of eyes before it ships. | npx shadcn@latest add KhaledSaeed18/dotclaude/deploy-reviewer |
Engineering
| Agent | Description | Install |
|---|
| architect-reviewer | Use this agent when you need a design-level architecture review of a module, a proposed change, or a whole codebase. Evaluates boundaries, coupling and cohesion, layering violations, scalability risk, and decisions that get expensive to undo, at the level of component shapes rather than individual functions (code-reviewer covers those). Use when designing a new service, refactoring a large module, or before a structural decision hardens. | npx shadcn@latest add KhaledSaeed18/dotclaude/architect-reviewer |
| code-reviewer | Expert reviewer for a code change (a diff, a staged set, a branch, or named files). Reviews for correctness, security, and maintainability across JavaScript/TypeScript stacks including React, Next.js, Node, Express, and NestJS. Use proactively after writing or modifying code, before opening a pull request, or when the user asks for a code review, a second pair of eyes, or feedback on a change. | npx shadcn@latest add KhaledSaeed18/dotclaude/code-reviewer |
| debugger | Use this agent when you need a bug, test failure, crash, or unexpected behaviour diagnosed through systematic root-cause analysis. Gathers evidence, tests hypotheses, and returns a confirmed cause with a targeted fix, never a speculative patch. Use when a fix attempt has failed, the bug is intermittent, a stack trace needs tracing end-to-end, or you want a second opinion before touching code. | npx shadcn@latest add KhaledSaeed18/dotclaude/debugger |
| docs-writer | Use this agent when you need documentation written or updated from the code itself, such as READMEs, API references, guides, architecture overviews, or upgrade notes. Reads the implementation before writing so the docs match what the code does, and flags doc-vs-code contradictions instead of papering over them. Use after a feature lands without docs, when a README has drifted, or when a public API changes. | npx shadcn@latest add KhaledSaeed18/dotclaude/docs-writer |
Research
| Agent | Description | Install |
|---|
| deep-research | In-depth research agent for topics that need multi-source investigation with citations. Use when the user asks to research a topic thoroughly, synthesize information from across the web, compare options, fact-check a claim against primary sources, or produce a sourced writeup or literature scan, for example "compare Postgres vs SQLite for an offline-first app, with sources". | npx shadcn@latest add KhaledSaeed18/dotclaude/deep-research |
Review
| Agent | Description | Install |
|---|
| code-explorer | Use this agent before changing code you do not fully know: given a feature, bug, or question, it maps the relevant files, entry points, data flow, and the tests and configs that touch them, and returns a compact orientation report with file:line anchors instead of a dump. Read-only. Use when starting a feature or fix in an unfamiliar area, when a bug's location is unknown, or when you need to know what a change will touch before planning it. | npx shadcn@latest add KhaledSaeed18/dotclaude/code-explorer |
| code-simplifier | Use this agent after a feature or fix works and before it is reviewed: it reduces the change to its simplest correct form by removing duplication, dead branches, needless abstraction, over-general parameters, and comments that restate code, while keeping behaviour and tests identical. Edits the working tree and reports each simplification with its reason. Use when a diff has grown during implementation, when a reviewer says it is more complex than it needs to be, or as the last step of executing a plan. | npx shadcn@latest add KhaledSaeed18/dotclaude/code-simplifier |
| silent-failure-hunter | Use this agent to find the places where a change can fail without anyone noticing: swallowed exceptions, empty catch blocks, ignored return values and promise results, error paths that log and continue, fallbacks that hide the real failure, and success responses sent on error. Read-only; reports each with file:line, the scenario that triggers it, and the fix. Use during code review, before shipping error-handling code, or when a bug report says something failed with no error. | npx shadcn@latest add KhaledSaeed18/dotclaude/silent-failure-hunter |
| test-gap-analyzer | Use this agent to find what a change does that no test checks: it lists each behaviour the diff adds or alters (branches, error paths, boundaries, contracts), maps existing tests onto them by reading the test files rather than trusting coverage numbers, and returns the gaps as concrete test names with the arrange, act, and assert for each. Read-only. Use during review, before merging a change with thin tests, or when coverage is high but bugs still ship. |
Security
| Agent | Description | Install |
|---|
| security-auditor | Use this agent when you need a comprehensive security audit of a codebase, module, API surface, or pull request. Covers OWASP Top 10:2025, auth logic, secret handling, input validation, dependency vulnerabilities, and supply-chain risk, reporting findings and remediation steps without modifying code. Use before a production release, after adding auth or payment flows, when onboarding a dependency, or when a review is required before merge. | npx shadcn@latest add KhaledSaeed18/dotclaude/security-auditor |
Commands
Academic
| Command | Description | Install |
|---|
| research-log | Append a dated entry to the thesis research log (RESEARCH_LOG.md) recording what was read, done, decided, and what comes next, pulling the day's evidence from git history, new reading notes, and the conversation, so progress is never reconstructed from memory before a supervisor meeting. Use at the end of a working session, after a decision, or when asked what happened this week. | npx shadcn@latest add KhaledSaeed18/dotclaude/research-log |
| thesis-chapter | Draft or revise one thesis chapter from the outline, the research question record, the reading notes, and the results, applying the academic-writing skill section by section and finishing with citation verification and a humanize pass, so a chapter arrives structured, traceable, and free of invented references. Use when a chapter is due, when starting a chapter from an approved outline, or when a draft chapter needs a full revision pass. | npx shadcn@latest add KhaledSaeed18/dotclaude/thesis-chapter |
| thesis-progress | Report where the thesis stands in numbers: word count per chapter against the plan, placeholders left ([[FILL]], [[CITE]], [[FIG]]), citation health (cited keys, undefined keys, unverifiable entries), notes read versus reading list, open items in the research log, and days to the next deadline. Use at the start of a working session, before a supervisor meeting, or whenever the answer to how far along am I is a guess. | npx shadcn@latest add KhaledSaeed18/dotclaude/thesis-progress |
Deployment
| Command | Description | Install |
|---|
| cutover | Drive a live domain migration step by step, with the owner doing DNS and the agent verifying each stage. Use when moving a production domain to a new host. | npx shadcn@latest add KhaledSaeed18/dotclaude/cutover |
| deploy-setup | Add container packaging and a GHCR to Coolify pipeline to the current repository, then list the owner actions left. Use when a project needs to go from code to automatic deploys on a VPS. | npx shadcn@latest add KhaledSaeed18/dotclaude/deploy-setup |
| deploy-verify | Run the server-side verification of a deployment and report pass or fail per check. Use when a deploy finished, after a cutover, or before closing a release. | npx shadcn@latest add KhaledSaeed18/dotclaude/deploy-verify |
Documentation
| Command | Description | Install |
|---|
| adr | Write an Architecture Decision Record from the current discussion or a stated decision: numbers it in sequence under docs/adr/, captures context, the options considered with their trade-offs, the decision, and its consequences, in the adr-writing skill's format and the repo's existing ADR style if one exists. Use when a design choice has just been made in conversation, when a reviewer asks why something was done this way, or when a decision needs to outlive the people who made it. | npx shadcn@latest add KhaledSaeed18/dotclaude/adr |
Engineering
| Command | Description | Install |
|---|
| explain-code | Walk through a file, function, class, or module and explain what it does, how it works, and why it is structured that way. Pass a file path or a symbol name as the argument. Use when onboarding onto unfamiliar code, understanding a complex algorithm, or preparing to modify something you have not read before. | npx shadcn@latest add KhaledSaeed18/dotclaude/explain-code |
| feature | Take a feature from a one-line description to a reviewed, tested change through a fixed pipeline: orient with the code-explorer agent, clarify requirements, write a task-by-task plan with the writing-plans skill, execute it with test-driven development, simplify with the code-simplifier agent, verify completion, and hand off ready for /pr. Each phase produces an artifact and stops for agreement at the plan. Use when starting any feature or non-trivial change, or when an implementation keeps drifting because it started without a plan. | npx shadcn@latest add KhaledSaeed18/dotclaude/feature |
Productivity
| Command | Description | Install |
|---|
| prime | Load project context into the session by reading key files and recent history. Primes the model with package metadata, architecture notes, recent commits, and directory structure so it can give better answers immediately. Use at the start of a session when switching to an unfamiliar repository or after a long break from a project. | npx shadcn@latest add KhaledSaeed18/dotclaude/prime |
| todo-triage | Inventory every TODO, FIXME, HACK, and XXX comment, enrich each with age and author from git blame, classify them (bug risk, missing feature, cleanup, obsolete), and produce a prioritized triage table with recommended dispositions. Pass a path to limit the scan. Use when technical-debt comments have accumulated and nobody knows which ones still matter. | npx shadcn@latest add KhaledSaeed18/dotclaude/todo-triage |
| weekly-review | Produce a weekly review from the evidence in the repository and the workspace: commits and pull requests merged or open, issues closed and opened, decisions logged, research log entries, action items done and overdue, and what stalled, then a short plan for next week; written to a dated file so reviews accumulate. Use at the end of a working week, before a one-on-one or a status update, or when the week felt busy and it is unclear what got done. | npx shadcn@latest add KhaledSaeed18/dotclaude/weekly-review |
Review
| Command | Description | Install |
|---|
| review-pr | Review a pull request or the current branch with four specialist agents in parallel (code-reviewer for correctness and security, silent-failure-hunter, test-gap-analyzer, type-design-reviewer), then merge their findings into one severity-ranked review with file:line anchors and no duplicates, optionally posted to the PR with gh. Use when a PR is ready for review, before requesting human review, or when a branch needs a thorough second opinion in one pass. | npx shadcn@latest add KhaledSaeed18/dotclaude/review-pr |
Security
| Command | Description | Install |
|---|
| security-audit | Run a full-codebase security audit covering OWASP Top 10:2025 vulnerability classes, auth logic, secret handling, input validation, dependency CVEs, and supply-chain risk, producing a findings report ranked by severity. Broader than the secret-scan skill, which scans a single diff. Pass a path to limit the audit. Use when a full-codebase or module-level security review is needed. | npx shadcn@latest add KhaledSaeed18/dotclaude/security-audit |
Testing
| Command | Description | Install |
|---|
| write-tests | Generate a focused, production-quality test suite for a source file, detecting the project's existing test runner and conventions. Use when a source file needs a test suite that matches the project's existing conventions. | npx shadcn@latest add KhaledSaeed18/dotclaude/write-tests |
Version Control
| Command | Description | Install |
|---|
| clean-branches | List local Git branches that are fully merged or stale and delete them safely after showing what would be removed, protecting main, master, develop, and the current branch. Pass --dry-run to preview. Unlike the finish-branch skill, which closes one active branch, this cleans up accumulated branches across the repository. Use when local branches have piled up and need safe cleanup. | npx shadcn@latest add KhaledSaeed18/dotclaude/clean-branches |
| commit | Create one well-formed commit from the current changes using the git-commit skill's rules: inspect the diff, honour the repo's commitlint and hooks, stage only understood files explicitly, write a conventional message whose body says why, and confirm before committing. Never pushes. Use when a piece of work is ready to be recorded in history, or when asked to commit. | npx shadcn@latest add KhaledSaeed18/dotclaude/commit |
| pr | Take the current branch from uncommitted work to an open pull request: commit outstanding changes with the git-commit rules if asked, push with upstream tracking, write the PR title and body with the pr-description skill from the full branch diff, link the issue, and open it with gh against the right base. Confirms before pushing and before creating. Use when a branch is ready for review or when asked to open a PR. | npx shadcn@latest add KhaledSaeed18/dotclaude/pr |
Hooks
Academic
| Hook | Description | Install |
|---|
| citation-guard | A PostToolUse hook that checks every cite key in a .tex or .md file Claude just edited against the project's .bib and reports the ones that do not exist, and after a .bib edit reports duplicate keys and entries with no DOI, arXiv id, or URL. Catches an invented citation in the same step it was written. Use when drafting a thesis, paper, or proposal with AI assistance, where a fabricated reference is the one unrecoverable error. | npx shadcn@latest add KhaledSaeed18/dotclaude/citation-guard |
Automation
| Hook | Description | Install |
|---|
| format-on-edit | A PostToolUse hook that runs the project's own formatter (Biome, Prettier, gofmt, rustfmt, or ruff) on each file Claude Code edits or writes, so every change lands already formatted. Detects the formatter from project config, uses only locally installed binaries, and does nothing when no formatter applies. Use to eliminate style drift and formatting-only diffs from agent sessions. | npx shadcn@latest add KhaledSaeed18/dotclaude/format-on-edit |
| notify | A Notification hook that turns Claude Code notifications into native desktop notifications (macOS osascript, Linux notify-send), so long-running sessions can be left in the background and still get your attention when Claude needs input. Message text is sanitized before reaching the OS tool. Use when you run long agent sessions and miss the moments they stop to ask something. | npx shadcn@latest add KhaledSaeed18/dotclaude/notify |
Context
| Hook | Description | Install |
|---|
| precompact-saver | A PreCompact hook that snapshots the full session transcript to .claude/compact-backups/ right before Claude Code compacts the context, so exact instructions, tool output, and decisions survive after the summary drops them. Keeps the newest ten snapshots and prunes the rest. Use when long sessions get compacted and you need a reliable record of what was said before the summary. | npx shadcn@latest add KhaledSaeed18/dotclaude/precompact-saver |
Observability
| Hook | Description | Install |
|---|
| tool-call-logger | A PreToolUse/PostToolUse hook that appends one JSON line per tool call (tool name, inputs, and response) to a local log file, with secret redaction and payload truncation. Use to audit, debug, or observe exactly what Claude Code did during a session. | npx shadcn@latest add KhaledSaeed18/dotclaude/tool-call-logger |
Security
| Hook | Description | Install |
|---|
| command-guard | A PreToolUse hook that blocks catastrophic Bash commands before they run (recursive force deletes of root or home, fork bombs, writing to raw disk devices, recursive chmod 777 on root, force-pushes to main or master) with a clear reason. Tests the command as one string; smart-approve is the superset that also decomposes compound chains and is the one bundled in the security-hooks plugin. Use when a minimal, auditable safety net is enough. | npx shadcn@latest add KhaledSaeed18/dotclaude/command-guard |
| injection-guard | A UserPromptSubmit hook that scans incoming prompts for prompt-injection and jailbreak patterns (instruction overrides, system-prompt extraction attempts, role reassignments, DAN/developer-mode activations) before Claude processes them. Use to add a deterministic pre-Claude safety layer against injection attacks. | npx shadcn@latest add KhaledSaeed18/dotclaude/injection-guard |
| sensitive-file-guard | A PreToolUse hook that blocks Read, Edit, Write, MultiEdit, and Bash operations that target sensitive files (.env, credentials, SSH private keys, certificates, secrets, AWS config, netrc, and similar). Use to prevent Claude from autonomously reading or exfiltrating credential files. | npx shadcn@latest add KhaledSaeed18/dotclaude/sensitive-file-guard |
| smart-approve | A PreToolUse hook that splits compound Bash commands (&&, ||, ;, |, $(), backticks, subshells) into their parts and checks each against the same deny list as command-guard, catching destructive operations hidden in substitutions or subshells that a full-string match misses. Use to upgrade command-guard with decomposition, or as the guard bundled in the security-hooks plugin. | npx shadcn@latest add KhaledSaeed18/dotclaude/smart-approve |
Workflow
| Hook | Description | Install |
|---|
| branch-protect | A UserPromptSubmit hook that, once per session, tells Claude the checkout is on a protected branch (main, master, develop, or a configured list) so it creates a feature branch before editing or committing. Advisory context only; it never blocks. Use alongside git-guard when work keeps landing directly on main because nobody branched first. | npx shadcn@latest add KhaledSaeed18/dotclaude/branch-protect |
| git-guard | A PreToolUse hook for Bash that blocks git operations which destroy work or bypass review, with a reason Claude can act on. Stops force-pushes and deletions of protected branches (main, master, develop, or a configured list with globs), commit --no-verify, git clean -f, stash drop and clear, and hard resets, checkouts, or restores that would discard uncommitted changes. Splits compound commands so nothing hides behind a prefix. Use when Claude has git access and a mistake would cost shared history or uncommitted work. | npx shadcn@latest add KhaledSaeed18/dotclaude/git-guard |
| session-context | A SessionStart hook that orients every new session before the first prompt by injecting the current branch, ahead/behind status, uncommitted files, the last few commits, and any HANDOFF.md left by a previous session as context. Reads only; writes nothing. Use when sessions keep starting cold, re-discovering repo state, or missing a handoff document that was written for them. | npx shadcn@latest add KhaledSaeed18/dotclaude/session-context |
| stop-gate | A Stop hook that runs the project's test command before Claude may end a turn with uncommitted changes, blocking the stop and returning the failure output when tests fail. Detects the command from package.json, Makefile, Cargo.toml, go.mod, or pytest config, or takes one from .claude/dotclaude.json. Never loops (respects stop_hook_active) and never runs on a clean tree. Use to make "done" mean the tests pass, mechanically, without relying on the model remembering to run them. |
Contributing
Contributions are welcome, new items, fixes to existing ones, or tooling improvements. Every item is scaffolded with pnpm new and validated in CI; see CONTRIBUTING.md for the layout, conventions, and dev workflow, and SECURITY.md for how to report a vulnerability privately.
License
MIT © Khaled Saeed
Attributions
Some items in this project were created from scratch, while others were inspired by, adapted from, or built upon work from the open-source community. Credit and thanks to the following resources:
| Source | Link | Items inspired by |
|---|
| Matt Pocock's Skills | mattpocock/skills | skills |
| Obra's Superpowers | obra/superpowers | skills |
| Anthropic's Skills | anthropics/skills | webapp-testing |
| Addy Osmani's Agent Skills | addyosmani/agent-skills | performance-optimization |
| Alirezarezvani's Claude Skills | alirezarezvani/claude-skills | adversarial-reviewer |
| Agamm's Claude Code OWASP | agamm/claude-code-owasp | owasp-security |
| QdHenry's Claude Command Suite | qdhenry/Claude-Command-Suite | prime, explain-code, security-audit, clean-branches |
| VoltAgent's Subagents | VoltAgent/awesome-claude-code-subagents | debugger, security-auditor, architect-reviewer, performance-engineer, error-detective |
| Wshobson's Agents | wshobson/agents | debugger, security-auditor, architect-reviewer, performance-engineer, error-detective |
| Disler's Hooks Mastery | disler/claude-code-hooks-mastery | sensitive-file-guard, injection-guard |