{
  "version": "2.0.0",
  "repository": "plagemes/claude-mods",
  "marketplace": "claude-mods",
  "categories": [
    {
      "id": "core",
      "title": "Core",
      "tagline": "The mod store and essentials.",
      "count": 3
    },
    {
      "id": "security",
      "title": "Security & Guardrails",
      "tagline": "Stop dangerous actions before they happen.",
      "count": 11
    },
    {
      "id": "git",
      "title": "Git & Versioning",
      "tagline": "Branches, commits and PRs without friction.",
      "count": 10
    },
    {
      "id": "cost",
      "title": "Cost, Tokens & Context",
      "tagline": "Know what every turn costs and keep context lean.",
      "count": 11
    },
    {
      "id": "productivity",
      "title": "Productivity",
      "tagline": "Shortcuts, panes and timers for a faster flow.",
      "count": 11
    },
    {
      "id": "quality",
      "title": "Code Quality & Tests",
      "tagline": "Formatting, linting and tests on autopilot.",
      "count": 10
    },
    {
      "id": "observability",
      "title": "Panes & Dashboards",
      "tagline": "See what Claude is doing, live.",
      "count": 11
    },
    {
      "id": "prompting",
      "title": "Prompt & System Prompt",
      "tagline": "Shape how Claude thinks and answers.",
      "count": 10
    },
    {
      "id": "notifications",
      "title": "Notifications & Audio",
      "tagline": "Know when it is done, wherever you are.",
      "count": 14
    },
    {
      "id": "memory",
      "title": "Memory & Knowledge",
      "tagline": "Remember decisions, notes and context across sessions.",
      "count": 11
    },
    {
      "id": "team",
      "title": "Team & Docs",
      "tagline": "Changelogs, standups, reviews and handoffs.",
      "count": 13
    },
    {
      "id": "stacks",
      "title": "Languages & Frameworks",
      "tagline": "Guardrails that know your stack.",
      "count": 10
    },
    {
      "id": "devops",
      "title": "DevOps & Cloud",
      "tagline": "Containers, CI, infra and deploys without surprises.",
      "count": 10
    },
    {
      "id": "data",
      "title": "Databases & Data",
      "tagline": "Safer queries, schemas and test data.",
      "count": 10
    },
    {
      "id": "frontend",
      "title": "Frontend & Accessibility",
      "tagline": "Pixels, bundles and a11y, checked as you go.",
      "count": 10
    },
    {
      "id": "api",
      "title": "APIs & Network",
      "tagline": "Talk to the web on your terms.",
      "count": 10
    },
    {
      "id": "agents",
      "title": "Agents & Orchestration",
      "tagline": "Scope, queue and supervise Claude's work.",
      "count": 14
    },
    {
      "id": "learning",
      "title": "Learning & Onboarding",
      "tagline": "Understand the code, not just ship it.",
      "count": 10
    },
    {
      "id": "compliance",
      "title": "Privacy & Compliance",
      "tagline": "Licenses, personal data and audit trails.",
      "count": 10
    },
    {
      "id": "performance",
      "title": "Performance & Reliability",
      "tagline": "Fast, stable and regression-free.",
      "count": 10
    },
    {
      "id": "ecosystem",
      "title": "Mod Ecosystem",
      "tagline": "Make, manage and personalise your mods.",
      "count": 10
    }
  ],
  "packs": [
    {
      "id": "essentials",
      "title": "Essentials",
      "tagline": "The best general mods: guards, git, cost and flow. Start here.",
      "mods": [
        "mod-store",
        "mods-hub",
        "mod-advisor",
        "guardian",
        "secret-shield",
        "env-guard",
        "rm-rf-guard",
        "force-push-guard",
        "git-status-line",
        "auto-checkpoint",
        "main-branch-warn",
        "commit-composer",
        "cost-meter",
        "context-gauge",
        "smart-router",
        "stack-detector",
        "todo-pane",
        "prompt-history",
        "resume-brief",
        "done-chime",
        "permission-ping",
        "loop-breaker"
      ]
    },
    {
      "id": "web",
      "title": "Web & Frontend",
      "tagline": "React, Next.js, accessibility, bundles and formatting.",
      "mods": [
        "react-doctor",
        "next-guard",
        "a11y-guard",
        "screenshot-check",
        "bundle-size-watch",
        "css-token-guard",
        "lighthouse-run",
        "heavy-asset-warn",
        "storybook-nudge",
        "contrast-checker",
        "dark-mode-check",
        "component-catalog",
        "dev-server-pane",
        "node-version-check",
        "i18n-guard",
        "auto-format",
        "lint-on-save",
        "typecheck-gate",
        "no-any"
      ]
    },
    {
      "id": "backend",
      "title": "Backend & DB",
      "tagline": "Safer queries, migrations, schemas and APIs.",
      "mods": [
        "sql-safety",
        "query-explain",
        "seed-guard",
        "schema-pane",
        "n-plus-one-hint",
        "migration-namer",
        "migration-guard",
        "query-result-cap",
        "backup-before-migrate",
        "schema-sync",
        "openapi-sync",
        "mock-server",
        "http-client",
        "jwt-decode",
        "graphql-context",
        "rate-limit-guard",
        "env-example-sync",
        "venv-guard",
        "django-migrate-watch",
        "go-mod-tidy",
        "docker-lint",
        "log-tail"
      ]
    },
    {
      "id": "git",
      "title": "Git & Review",
      "tagline": "Commits, branches, PRs and reviews without friction.",
      "mods": [
        "git-status-line",
        "auto-checkpoint",
        "commit-composer",
        "branch-namer",
        "main-branch-warn",
        "diff-pane",
        "pr-describer",
        "conflict-helper",
        "co-author-stamp",
        "gitignore-guard",
        "force-push-guard",
        "review-agent",
        "explain-diff",
        "changelog-keeper",
        "codeowners-hint",
        "ci-watch",
        "second-opinion"
      ]
    },
    {
      "id": "security",
      "title": "Security & Guard",
      "tagline": "Every guard: secrets, deletes, prod, paths, dependencies and data.",
      "mods": [
        "guardian",
        "secret-shield",
        "env-guard",
        "rm-rf-guard",
        "force-push-guard",
        "prod-guard",
        "redactor",
        "path-jail",
        "curl-pipe-guard",
        "dependency-sentinel",
        "lockfile-guard",
        "url-allowlist",
        "no-upload",
        "pii-in-logs",
        "crypto-guard",
        "vuln-scan",
        "scope-lock",
        "audit-trail"
      ]
    },
    {
      "id": "team",
      "title": "Team & Comms",
      "tagline": "Bridges to your chat apps, the team hub, standups and handoffs.",
      "mods": [
        "team-hub",
        "slack-bridge",
        "telegram-bridge",
        "discord-bridge",
        "whatsapp-bridge",
        "email-digest",
        "calendar-sync",
        "standup",
        "handoff",
        "issue-drafter",
        "webhook-notify",
        "desktop-notify",
        "session-sync"
      ]
    },
    {
      "id": "automation",
      "title": "Automation",
      "tagline": "Autopilot, workflows, routing and issue-to-PR runs.",
      "mods": [
        "autopilot",
        "workflow-studio",
        "smart-router",
        "issue-pilot",
        "task-queue",
        "night-shift",
        "mission-control",
        "parallel-explore",
        "agent-presets",
        "subagent-monitor",
        "self-check"
      ]
    },
    {
      "id": "insights",
      "title": "Insights & Cost",
      "tagline": "What every turn costs, where the context goes, how you work.",
      "mods": [
        "cost-meter",
        "token-budget",
        "context-gauge",
        "cache-hit-meter",
        "turn-timer",
        "daily-spend",
        "model-advisor",
        "compact-coach",
        "context-optimizer",
        "session-stats",
        "token-sparkline",
        "activity-heatmap",
        "tool-timeline",
        "skill-tracker",
        "output-trimmer",
        "big-read-guard"
      ]
    }
  ],
  "mods": [
    {
      "name": "mod-store",
      "category": "core",
      "tier": "complex",
      "description": "An in-terminal app store: browse, search, install and update every Claude Mod from GitHub.",
      "version": "1.4.3",
      "keywords": [
        "claude-mods",
        "core",
        "store",
        "marketplace"
      ],
      "commands": [
        "/mods"
      ],
      "since": "1.0.0",
      "signals": {
        "intents": [
          "mod store",
          "install mod",
          "browse mods",
          "update all mods",
          "uninstall mod",
          "claude mods"
        ],
        "always": true
      }
    },
    {
      "name": "mods-hub",
      "category": "core",
      "tier": "complex",
      "description": "The shared core that lets mods talk to each other: one event bus, one side panel with tabs, one place that routes notifications to your channels.",
      "version": "1.1.3",
      "keywords": [
        "claude-mods",
        "core",
        "event-bus",
        "notifications",
        "panel"
      ],
      "commands": [
        "/hub"
      ],
      "since": "2.0.0",
      "signals": {
        "always": true
      }
    },
    {
      "name": "secret-shield",
      "category": "security",
      "tier": "simple",
      "description": "Blocks edits and writes that would commit API keys, tokens or private keys.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "security",
        "secrets",
        "guard"
      ],
      "commands": [],
      "since": "1.0.0",
      "signals": {
        "intents": [
          "api key",
          "hardcoded secret",
          "credentials",
          "private key",
          "leaked key",
          "access token"
        ],
        "always": true
      }
    },
    {
      "name": "env-guard",
      "category": "security",
      "tier": "simple",
      "description": "Protects .env files, SSH keys and credential stores from being read or modified.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "security",
        "secrets",
        "guard"
      ],
      "commands": [],
      "since": "1.0.0",
      "signals": {
        "files": [
          ".env",
          ".env.*",
          "*.pem",
          ".npmrc"
        ],
        "intents": [
          "env file",
          "ssh key",
          "credentials file",
          "protect secrets",
          "keep secrets out",
          "file env"
        ],
        "always": true
      }
    },
    {
      "name": "rm-rf-guard",
      "category": "security",
      "tier": "simple",
      "description": "Blocks catastrophic shell commands like rm -rf /, mkfs, dd to disks and chmod -R 777.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "security",
        "shell",
        "guard"
      ],
      "commands": [],
      "since": "1.0.0",
      "signals": {
        "intents": [
          "rm -rf",
          "destructive command",
          "delete directory",
          "wipe disk",
          "chmod 777",
          "git reset --hard"
        ],
        "always": true
      }
    },
    {
      "name": "force-push-guard",
      "category": "security",
      "tier": "simple",
      "description": "Forbids force-pushing to protected branches and suggests --force-with-lease.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "security",
        "git",
        "guard"
      ],
      "commands": [],
      "since": "1.0.0",
      "signals": {
        "intents": [
          "force push",
          "force-push",
          "push --force",
          "force with lease",
          "rewrite history",
          "protected branch"
        ]
      }
    },
    {
      "name": "prod-guard",
      "category": "security",
      "tier": "simple",
      "description": "Stops production-affecting commands (terraform apply, kubectl on prod, DROP TABLE) unless explicitly allowed.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "security",
        "infrastructure",
        "guard"
      ],
      "commands": [],
      "since": "1.0.0",
      "signals": {
        "files": [
          "*.tf",
          "**/*.tf",
          "k8s/**",
          "kubernetes/**",
          "**/Chart.yaml",
          "Pulumi.yaml",
          "terragrunt.hcl"
        ],
        "intents": [
          "production",
          "terraform apply",
          "kubectl on prod",
          "drop database in prod",
          "deploy to prod",
          "production database"
        ]
      }
    },
    {
      "name": "redactor",
      "category": "security",
      "tier": "complex",
      "description": "Masks secrets and personal data in tool results before the model ever reads them.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "security",
        "privacy",
        "redaction",
        "secrets"
      ],
      "commands": [],
      "since": "1.0.0",
      "signals": {
        "intents": [
          "redact secrets",
          "mask sensitive data",
          "hide secrets from claude",
          "mask emails",
          "credit card numbers",
          "dati sensibili"
        ]
      }
    },
    {
      "name": "path-jail",
      "category": "security",
      "tier": "complex",
      "description": "Allows writes only inside the project root, resolving symlinks and .. tricks.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "security",
        "sandbox",
        "filesystem"
      ],
      "commands": [
        "/jail"
      ],
      "since": "1.0.0",
      "signals": {
        "intents": [
          "write outside project",
          "outside the project",
          "path traversal",
          "sandbox writes",
          "restrict writes",
          "stay in project folder"
        ]
      }
    },
    {
      "name": "curl-pipe-guard",
      "category": "security",
      "tier": "simple",
      "description": "Blocks piping downloaded scripts straight into a shell.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "security",
        "shell",
        "guard"
      ],
      "commands": [],
      "since": "1.0.0",
      "signals": {
        "intents": [
          "curl | sh",
          "curl pipe bash",
          "pipe to shell",
          "install script",
          "remote script",
          "wget | bash"
        ]
      }
    },
    {
      "name": "dependency-sentinel",
      "category": "security",
      "tier": "complex",
      "description": "Flags typosquatted or brand-new packages before npm, pip or cargo installs them.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "security",
        "supply-chain",
        "npm",
        "pip"
      ],
      "commands": [],
      "since": "1.0.0",
      "signals": {
        "files": [
          "package.json",
          "requirements.txt",
          "pyproject.toml",
          "Cargo.toml",
          "go.mod",
          "Gemfile",
          "composer.json"
        ],
        "intents": [
          "typosquatting",
          "malicious package",
          "supply chain",
          "hallucinated package",
          "suspicious dependency",
          "new dependency"
        ]
      }
    },
    {
      "name": "lockfile-guard",
      "category": "security",
      "tier": "simple",
      "description": "Prevents hand-editing lockfiles; they must change through the package manager.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "security",
        "dependencies",
        "guard"
      ],
      "commands": [],
      "since": "1.0.0",
      "signals": {
        "files": [
          "package-lock.json",
          "pnpm-lock.yaml",
          "yarn.lock",
          "bun.lockb",
          "Cargo.lock",
          "poetry.lock",
          "uv.lock",
          "Gemfile.lock",
          "composer.lock",
          "go.sum"
        ],
        "intents": [
          "lockfile",
          "lock file",
          "package-lock",
          "yarn.lock",
          "pnpm-lock",
          "regenerate lockfile"
        ]
      }
    },
    {
      "name": "git-status-line",
      "category": "git",
      "tier": "simple",
      "description": "Shows the current branch, ahead/behind and dirty file count in the status line.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "git",
        "status-line",
        "branch"
      ],
      "commands": [],
      "since": "1.0.0",
      "signals": {
        "intents": [
          "git status",
          "current branch",
          "which branch am i on",
          "ahead behind",
          "dirty files",
          "uncommitted changes"
        ],
        "always": true
      }
    },
    {
      "name": "auto-checkpoint",
      "category": "git",
      "tier": "complex",
      "description": "Snapshots your work tree before every editing turn and lets you /rollback to any checkpoint.",
      "version": "1.1.2",
      "keywords": [
        "claude-mods",
        "git",
        "checkpoint",
        "undo"
      ],
      "commands": [
        "/checkpoints",
        "/rollback"
      ],
      "since": "1.0.0",
      "signals": {
        "intents": [
          "checkpoint",
          "rollback",
          "undo changes",
          "revert last turn",
          "restore previous state",
          "snapshot"
        ],
        "always": true
      }
    },
    {
      "name": "commit-composer",
      "category": "git",
      "tier": "complex",
      "description": "/commit writes a Conventional Commit message from your staged diff and commits it.",
      "version": "1.1.2",
      "keywords": [
        "claude-mods",
        "git",
        "commit",
        "conventional-commits"
      ],
      "commands": [
        "/commit"
      ],
      "since": "1.0.0",
      "signals": {
        "files": [
          "commitlint.config.*",
          ".commitlintrc*"
        ],
        "deps": [
          "@commitlint/cli",
          "@commitlint/config-conventional",
          "commitlint"
        ],
        "intents": [
          "commit message",
          "conventional commit",
          "conventional commits",
          "write a commit",
          "commit changes",
          "staged diff"
        ]
      }
    },
    {
      "name": "branch-namer",
      "category": "git",
      "tier": "simple",
      "description": "/git-branch creates a well-named git branch from a short task description.",
      "version": "1.0.1",
      "keywords": [
        "claude-mods",
        "git",
        "branch",
        "command"
      ],
      "commands": [
        "/git-branch"
      ],
      "since": "1.0.0",
      "signals": {
        "intents": [
          "new branch",
          "create branch",
          "branch name",
          "name a branch",
          "git switch -c",
          "feature branch"
        ]
      }
    },
    {
      "name": "main-branch-warn",
      "category": "git",
      "tier": "simple",
      "description": "Warns you the moment Claude starts editing files directly on main or master.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "git",
        "branch",
        "guard"
      ],
      "commands": [],
      "since": "1.0.0",
      "signals": {
        "intents": [
          "editing on main",
          "work on main",
          "protect main",
          "main branch",
          "master branch",
          "commit to main"
        ]
      }
    },
    {
      "name": "diff-pane",
      "category": "git",
      "tier": "complex",
      "description": "A live pane listing changed files with +/- line counts, updated after every edit.",
      "version": "1.1.2",
      "keywords": [
        "claude-mods",
        "git",
        "diff",
        "pane"
      ],
      "commands": [
        "/changes"
      ],
      "since": "1.0.0",
      "signals": {
        "intents": [
          "changed files",
          "live diff",
          "git diff",
          "diff stat",
          "lines added",
          "uncommitted diff"
        ]
      }
    },
    {
      "name": "pr-describer",
      "category": "git",
      "tier": "complex",
      "description": "/pr-desc drafts a pull request title and description from your branch diff.",
      "version": "1.1.2",
      "keywords": [
        "claude-mods",
        "git",
        "pull-request",
        "github"
      ],
      "commands": [
        "/pr-desc"
      ],
      "since": "1.0.0",
      "signals": {
        "files": [
          ".github/pull_request_template.md",
          ".github/PULL_REQUEST_TEMPLATE.md",
          ".github/PULL_REQUEST_TEMPLATE/*"
        ],
        "intents": [
          "pull request",
          "pr description",
          "pr title",
          "open a pr",
          "describe pr",
          "write pr"
        ]
      }
    },
    {
      "name": "conflict-helper",
      "category": "git",
      "tier": "complex",
      "description": "Detects merge-conflict markers and walks you through resolving each one.",
      "version": "1.1.2",
      "keywords": [
        "claude-mods",
        "git",
        "merge",
        "conflicts"
      ],
      "commands": [
        "/conflicts"
      ],
      "since": "1.0.0",
      "signals": {
        "intents": [
          "merge conflict",
          "resolve conflicts",
          "conflict markers",
          "rebase conflict",
          "cherry-pick conflict",
          "conflitto di merge"
        ]
      }
    },
    {
      "name": "co-author-stamp",
      "category": "git",
      "tier": "simple",
      "description": "Adds configurable Co-authored-by trailers to commits Claude makes.",
      "version": "1.0.0",
      "keywords": [
        "claude-mods",
        "git",
        "commit",
        "attribution"
      ],
      "commands": [],
      "since": "1.0.0",
      "signals": {
        "intents": [
          "co-authored-by",
          "co-author",
          "coauthor trailer",
          "pair programming credit",
          "commit trailer",
          "coautore nel commit"
        ]
      }
    },
    {
      "name": "gitignore-guard",
      "category": "git",
      "tier": "simple",
      "description": "Warns before node_modules, build output, OS junk or huge files get staged.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "git",
        "gitignore",
        "guard"
      ],
      "commands": [],
      "since": "1.0.0",
      "signals": {
        "files": [
          ".gitignore"
        ],
        "intents": [
          "gitignore",
          "git add -a",
          "staged node_modules",
          "untracked files",
          "ignore build output",
          "large files in git"
        ]
      }
    },
    {
      "name": "cost-meter",
      "category": "cost",
      "tier": "simple",
      "description": "Live session cost estimate in the status line, from real token usage.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "cost",
        "tokens",
        "status-line"
      ],
      "commands": [
        "/cost-reset"
      ],
      "since": "1.0.0",
      "signals": {
        "intents": [
          "session cost",
          "how much spent",
          "token cost",
          "api cost",
          "cost estimate",
          "price of this session"
        ],
        "always": true
      }
    },
    {
      "name": "token-budget",
      "category": "cost",
      "tier": "complex",
      "description": "Set a token or dollar budget per session; get warned at 80% and stopped at 100%.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "cost",
        "budget",
        "tokens",
        "guard"
      ],
      "commands": [
        "/budget"
      ],
      "since": "1.0.0",
      "signals": {
        "intents": [
          "token budget",
          "budget limit",
          "spending limit",
          "dollar budget",
          "stop at budget",
          "limit spend"
        ]
      }
    },
    {
      "name": "context-gauge",
      "category": "cost",
      "tier": "simple",
      "description": "A slim band above the prompt showing how full the context window is.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "cost",
        "band",
        "context",
        "status"
      ],
      "commands": [
        "/context-gauge"
      ],
      "since": "1.0.0",
      "signals": {
        "intents": [
          "context window",
          "context usage",
          "context full",
          "how full is the context",
          "context limit",
          "context left"
        ],
        "always": true
      }
    },
    {
      "name": "cache-hit-meter",
      "category": "cost",
      "tier": "simple",
      "description": "Shows what share of input tokens came from the prompt cache.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "cost",
        "cache",
        "tokens",
        "status"
      ],
      "commands": [],
      "since": "1.0.0",
      "signals": {
        "intents": [
          "prompt cache",
          "cache hit",
          "cache hit rate",
          "cached tokens",
          "cache miss",
          "prompt caching"
        ]
      }
    },
    {
      "name": "turn-timer",
      "category": "cost",
      "tier": "simple",
      "description": "Times every turn and tells you when one runs long.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "cost",
        "timer",
        "status",
        "toast"
      ],
      "commands": [],
      "since": "1.0.0",
      "signals": {
        "intents": [
          "turn duration",
          "time per turn",
          "slow turn",
          "long running turn",
          "response time",
          "durata del turno"
        ]
      }
    },
    {
      "name": "big-read-guard",
      "category": "cost",
      "tier": "simple",
      "description": "Stops full reads of huge files and nudges toward offset/limit or grep.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "cost",
        "guard",
        "read",
        "tokens"
      ],
      "commands": [],
      "since": "1.0.0",
      "signals": {
        "intents": [
          "huge file",
          "large file",
          "big file",
          "minified bundle",
          "read a slice",
          "offset and limit"
        ]
      }
    },
    {
      "name": "output-trimmer",
      "category": "cost",
      "tier": "complex",
      "description": "Trims huge command outputs to head, tail and error lines before they flood the context.",
      "version": "1.0.0",
      "keywords": [
        "claude-mods",
        "cost",
        "context",
        "bash"
      ],
      "commands": [],
      "since": "1.0.0",
      "signals": {
        "intents": [
          "long output",
          "huge output",
          "command output",
          "flooding context",
          "truncate output",
          "noisy logs"
        ]
      }
    },
    {
      "name": "daily-spend",
      "category": "cost",
      "tier": "complex",
      "description": "Tracks spend per day and week across sessions with a /spend report.",
      "version": "1.1.2",
      "keywords": [
        "claude-mods",
        "cost",
        "pane",
        "report"
      ],
      "commands": [
        "/spend"
      ],
      "since": "1.0.0",
      "signals": {
        "intents": [
          "daily spend",
          "weekly spend",
          "spend report",
          "usage report",
          "cost per day",
          "how much this week"
        ]
      }
    },
    {
      "name": "model-advisor",
      "category": "cost",
      "tier": "complex",
      "description": "Suggests a cheaper model when your prompt is simple, and a stronger one when it is hard.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "cost",
        "model",
        "hint"
      ],
      "commands": [
        "/model-advisor"
      ],
      "since": "1.0.0",
      "signals": {
        "intents": [
          "which model",
          "cheaper model",
          "switch model",
          "model choice",
          "quale modello",
          "modello più economico"
        ]
      }
    },
    {
      "name": "compact-coach",
      "category": "cost",
      "tier": "simple",
      "description": "Suggests /compact at natural breakpoints, before the context gets tight.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "cost",
        "context",
        "compact",
        "toast"
      ],
      "commands": [],
      "since": "1.0.0",
      "signals": {
        "intents": [
          "/compact",
          "compact context",
          "context getting full",
          "compaction",
          "context too long",
          "clear context"
        ]
      }
    },
    {
      "name": "quote-selection",
      "category": "productivity",
      "tier": "simple",
      "description": "/quote pastes your mouse selection into the prompt as a Markdown quote.",
      "version": "1.0.1",
      "keywords": [
        "claude-mods",
        "productivity",
        "quote",
        "selection",
        "prompt"
      ],
      "commands": [
        "/quote",
        "/quote-code"
      ],
      "since": "1.0.0",
      "signals": {
        "intents": [
          "quote selection",
          "quote this",
          "paste selection",
          "markdown quote",
          "blockquote",
          "quote text"
        ]
      }
    },
    {
      "name": "prompt-snippets",
      "category": "productivity",
      "tier": "simple",
      "description": "Type :review:, :tests: or your own shortcodes and they expand into full prompts.",
      "version": "1.0.1",
      "keywords": [
        "claude-mods",
        "productivity",
        "snippets",
        "shortcodes",
        "prompt"
      ],
      "commands": [
        "/snippets",
        "/snippet-add",
        "/snippet-remove"
      ],
      "since": "1.0.0",
      "signals": {
        "intents": [
          "prompt snippets",
          "prompt shortcut",
          "shortcode",
          "prompt template",
          "reusable prompt",
          "expand shortcut"
        ]
      }
    },
    {
      "name": "todo-pane",
      "category": "productivity",
      "tier": "complex",
      "description": "A live pane of Claude's current task list with progress.",
      "version": "1.1.2",
      "keywords": [
        "claude-mods",
        "productivity",
        "pane",
        "todos"
      ],
      "commands": [
        "/todos"
      ],
      "since": "1.0.0",
      "signals": {
        "intents": [
          "task list",
          "todo list",
          "task progress",
          "todowrite",
          "what is claude doing",
          "show the plan"
        ]
      }
    },
    {
      "name": "focus-timer",
      "category": "productivity",
      "tier": "complex",
      "description": "A Pomodoro timer in the status line with focus and break cycles.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "productivity",
        "timer",
        "status-line"
      ],
      "commands": [
        "/pomodoro"
      ],
      "since": "1.0.0",
      "signals": {
        "intents": [
          "pomodoro",
          "focus timer",
          "focus session",
          "break timer",
          "deep work",
          "timer pomodoro"
        ]
      }
    },
    {
      "name": "scratchpad",
      "category": "productivity",
      "tier": "complex",
      "description": "A persistent per-project notes pane you can type into without leaving Claude Code.",
      "version": "1.1.2",
      "keywords": [
        "claude-mods",
        "productivity",
        "notes",
        "pane"
      ],
      "commands": [
        "/notes",
        "/note"
      ],
      "since": "1.0.0",
      "signals": {
        "intents": [
          "scratchpad",
          "take notes",
          "jot down",
          "project notes",
          "note del progetto"
        ]
      }
    },
    {
      "name": "recent-files",
      "category": "productivity",
      "tier": "simple",
      "description": "/recent lists the files read and edited in this session, newest first.",
      "version": "1.0.1",
      "keywords": [
        "claude-mods",
        "productivity",
        "files",
        "session",
        "history"
      ],
      "commands": [
        "/recent"
      ],
      "since": "1.0.0",
      "signals": {
        "intents": [
          "recent files",
          "last edited",
          "recently opened",
          "list recent",
          "newest first",
          "file recenti"
        ]
      }
    },
    {
      "name": "copy-last",
      "category": "productivity",
      "tier": "simple",
      "description": "/copy-last copies Claude's last answer (or its last code block) to the clipboard.",
      "version": "1.0.1",
      "keywords": [
        "claude-mods",
        "productivity",
        "clipboard",
        "copy",
        "answer"
      ],
      "commands": [
        "/copy-last",
        "/copy-code"
      ],
      "since": "1.0.0",
      "signals": {
        "intents": [
          "copy answer",
          "copy last answer",
          "copy code block",
          "clipboard",
          "copy to clipboard",
          "copia la risposta"
        ]
      }
    },
    {
      "name": "prompt-history",
      "category": "productivity",
      "tier": "complex",
      "description": "/history searches every prompt you have sent across sessions and reuses one.",
      "version": "1.0.2",
      "keywords": [
        "claude-mods",
        "productivity",
        "history",
        "pane"
      ],
      "commands": [
        "/history"
      ],
      "since": "1.0.0",
      "signals": {
        "intents": [
          "prompt history",
          "previous prompts",
          "search past prompts",
          "reuse prompt",
          "old prompt",
          "cronologia dei prompt"
        ]
      }
    },
    {
      "name": "quick-commands",
      "category": "productivity",
      "tier": "simple",
      "description": "Short aliases like /t, /l and /b that run your test, lint and build commands.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "productivity",
        "shortcuts",
        "test",
        "lint"
      ],
      "commands": [
        "/t",
        "/l",
        "/b",
        "/tc"
      ],
      "since": "1.0.0",
      "signals": {
        "intents": [
          "quick command",
          "test shortcut",
          "lint shortcut",
          "build shortcut",
          "run lint and tests",
          "short alias"
        ]
      }
    },
    {
      "name": "idle-nudge",
      "category": "productivity",
      "tier": "simple",
      "description": "Reminds you about uncommitted changes after a stretch of inactivity.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "productivity",
        "git",
        "reminder",
        "toast"
      ],
      "commands": [],
      "since": "1.0.0",
      "signals": {
        "intents": [
          "uncommitted work",
          "forgot to commit",
          "step away",
          "reminder to commit",
          "modifiche non committate",
          "promemoria commit"
        ]
      }
    },
    {
      "name": "auto-format",
      "category": "quality",
      "tier": "complex",
      "description": "Formats every file Claude edits with the right formatter for its language.",
      "version": "1.0.0",
      "keywords": [
        "claude-mods",
        "quality",
        "formatter",
        "prettier"
      ],
      "commands": [],
      "since": "1.0.0",
      "signals": {
        "files": [
          ".prettierrc",
          ".prettierrc.*",
          "prettier.config.*",
          "biome.json",
          "biome.jsonc",
          "ruff.toml",
          ".clang-format",
          ".php-cs-fixer.php",
          ".editorconfig"
        ],
        "deps": [
          "prettier",
          "@biomejs/biome",
          "black",
          "ruff"
        ],
        "intents": [
          "auto format",
          "formatter",
          "prettier",
          "format on save",
          "formattazione",
          "formattare"
        ]
      }
    },
    {
      "name": "lint-on-save",
      "category": "quality",
      "tier": "complex",
      "description": "Runs the linter on each edited file and hands the errors straight back to Claude.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "quality",
        "linter",
        "eslint"
      ],
      "commands": [],
      "since": "1.0.0",
      "signals": {
        "files": [
          ".eslintrc*",
          "eslint.config.*",
          "ruff.toml",
          ".golangci.yml",
          ".golangci.yaml"
        ],
        "deps": [
          "eslint",
          "ruff"
        ],
        "intents": [
          "lint errors",
          "shellcheck",
          "errori di lint",
          "analisi statica"
        ]
      }
    },
    {
      "name": "test-watch",
      "category": "quality",
      "tier": "complex",
      "description": "Runs the tests related to what changed and shows pass/fail in the status line.",
      "version": "1.1.2",
      "keywords": [
        "claude-mods",
        "quality",
        "tests",
        "watch"
      ],
      "commands": [
        "/tests-last"
      ],
      "since": "1.0.0",
      "signals": {
        "files": [
          "vitest.config.*",
          "jest.config.*",
          "pytest.ini",
          "conftest.py"
        ],
        "deps": [
          "vitest",
          "jest",
          "pytest"
        ],
        "intents": [
          "run tests",
          "related tests",
          "test watcher",
          "tests on change",
          "test status",
          "esegui i test"
        ]
      }
    },
    {
      "name": "typecheck-gate",
      "category": "quality",
      "tier": "complex",
      "description": "Type-checks the project at the end of every editing turn so errors never slip by.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "quality",
        "typescript",
        "typecheck"
      ],
      "commands": [
        "/typecheck"
      ],
      "since": "1.0.0",
      "signals": {
        "files": [
          "tsconfig.json",
          "pyrightconfig.json",
          "mypy.ini"
        ],
        "deps": [
          "typescript",
          "pyright",
          "mypy"
        ],
        "intents": [
          "type check",
          "typecheck",
          "type errors",
          "tsc --noemit",
          "typescript errors",
          "errori di tipo"
        ]
      }
    },
    {
      "name": "no-skip-tests",
      "category": "quality",
      "tier": "simple",
      "description": "Blocks Claude from silencing tests with .skip, .only, xit or skip markers.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "quality",
        "guard",
        "tests",
        "skip"
      ],
      "commands": [],
      "since": "1.0.0",
      "signals": {
        "deps": [
          "jest",
          "vitest",
          "mocha",
          "pytest"
        ],
        "intents": [
          "skip test",
          "skipped tests",
          "test.skip",
          "disable failing test",
          "silence a test",
          "comment out test"
        ]
      }
    },
    {
      "name": "todo-tracker",
      "category": "quality",
      "tier": "simple",
      "description": "Notices every TODO, FIXME and HACK Claude adds and lists them at turn end.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "quality",
        "todo",
        "fixme",
        "turn"
      ],
      "commands": [
        "/todos-added"
      ],
      "since": "1.0.0",
      "signals": {
        "intents": [
          "todo comments",
          "hack comments",
          "left todos",
          "unfinished stubs",
          "commenti todo",
          "cose lasciate da fare"
        ]
      }
    },
    {
      "name": "debug-catcher",
      "category": "quality",
      "tier": "simple",
      "description": "Warns when console.log, print, debugger or dbg! statements are left in code.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "quality",
        "debugging",
        "cleanup"
      ],
      "commands": [],
      "since": "1.0.0",
      "signals": {
        "intents": [
          "console.log",
          "leftover debug",
          "debugger statement",
          "print statements",
          "remove debug",
          "breakpoint()"
        ]
      }
    },
    {
      "name": "no-any",
      "category": "quality",
      "tier": "simple",
      "description": "Flags new any types, @ts-ignore and eslint-disable comments as Claude writes them.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "quality",
        "typescript",
        "types"
      ],
      "commands": [],
      "since": "1.0.0",
      "signals": {
        "files": [
          "tsconfig.json"
        ],
        "deps": [
          "typescript"
        ],
        "intents": [
          "any type",
          "typescript any",
          "ts-ignore",
          "@ts-ignore",
          "eslint-disable",
          "strict typescript"
        ]
      }
    },
    {
      "name": "file-size-watch",
      "category": "quality",
      "tier": "simple",
      "description": "Warns when an edited file grows past a size that hurts readability.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "quality",
        "readability",
        "refactoring"
      ],
      "commands": [],
      "since": "1.0.0",
      "signals": {
        "intents": [
          "file too long",
          "split into modules",
          "long file",
          "god file",
          "file keeps growing",
          "lines per file"
        ]
      }
    },
    {
      "name": "test-first",
      "category": "quality",
      "tier": "complex",
      "description": "A TDD mode: no production code changes until a test has been written or changed.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "quality",
        "tdd",
        "guard"
      ],
      "commands": [
        "/tdd"
      ],
      "since": "1.0.0",
      "signals": {
        "intents": [
          "test driven",
          "test-driven development",
          "red green refactor",
          "write tests first",
          "test first",
          "sviluppo guidato dai test"
        ]
      }
    },
    {
      "name": "tool-timeline",
      "category": "observability",
      "tier": "complex",
      "description": "A timeline pane of every tool call with duration, status and input summary.",
      "version": "1.1.2",
      "keywords": [
        "claude-mods",
        "observability",
        "pane",
        "tools"
      ],
      "commands": [
        "/timeline"
      ],
      "since": "1.0.0",
      "signals": {
        "intents": [
          "tool calls",
          "tool timeline",
          "slow tool",
          "tool duration",
          "what tools ran",
          "timeline of calls"
        ]
      }
    },
    {
      "name": "files-touched",
      "category": "observability",
      "tier": "complex",
      "description": "A pane of every file read, edited or created in the session, with counts.",
      "version": "1.1.2",
      "keywords": [
        "claude-mods",
        "observability",
        "pane",
        "files"
      ],
      "commands": [
        "/files"
      ],
      "since": "1.0.0",
      "signals": {
        "intents": [
          "files touched",
          "files read and edited",
          "which files changed",
          "file counts",
          "touched files",
          "file toccati"
        ]
      }
    },
    {
      "name": "session-stats",
      "category": "observability",
      "tier": "complex",
      "description": "/session-stats shows a dashboard of turns, tools, tokens, cost, duration and files.",
      "version": "1.1.2",
      "keywords": [
        "claude-mods",
        "observability",
        "dashboard",
        "tokens"
      ],
      "commands": [
        "/session-stats"
      ],
      "since": "1.0.0",
      "signals": {
        "intents": [
          "session stats",
          "session statistics",
          "session summary",
          "usage dashboard",
          "turns and tokens",
          "statistiche della sessione"
        ]
      }
    },
    {
      "name": "subagent-monitor",
      "category": "observability",
      "tier": "complex",
      "description": "Watch running subagents live: type, status, duration and last activity.",
      "version": "1.1.2",
      "keywords": [
        "claude-mods",
        "observability",
        "subagents",
        "pane"
      ],
      "commands": [
        "/agents-live"
      ],
      "since": "1.0.0",
      "signals": {
        "intents": [
          "subagents",
          "monitor agents",
          "running agents",
          "agent status",
          "parallel agent progress",
          "watch agents"
        ]
      }
    },
    {
      "name": "error-feed",
      "category": "observability",
      "tier": "complex",
      "description": "Collects every failed command and tool error in one pane.",
      "version": "1.1.2",
      "keywords": [
        "claude-mods",
        "observability",
        "errors",
        "pane"
      ],
      "commands": [
        "/errors"
      ],
      "since": "1.0.0",
      "signals": {
        "intents": [
          "failed commands",
          "tool errors",
          "error feed",
          "what failed",
          "list of errors",
          "command failed"
        ]
      }
    },
    {
      "name": "activity-heatmap",
      "category": "observability",
      "tier": "complex",
      "description": "A heat map of when you use Claude Code, by hour and weekday.",
      "version": "1.0.2",
      "keywords": [
        "claude-mods",
        "observability",
        "heatmap",
        "statistics"
      ],
      "commands": [
        "/heatmap"
      ],
      "since": "1.0.0",
      "signals": {
        "intents": [
          "heat map",
          "when do i work",
          "usage by hour",
          "work habits",
          "mappa di calore",
          "quando lavoro"
        ]
      }
    },
    {
      "name": "bash-history",
      "category": "observability",
      "tier": "simple",
      "description": "/bash-history lists recent shell commands Claude ran, with exit status and duration.",
      "version": "1.0.1",
      "keywords": [
        "claude-mods",
        "observability",
        "shell",
        "history"
      ],
      "commands": [
        "/bash-history"
      ],
      "since": "1.0.0",
      "signals": {
        "intents": [
          "bash history",
          "commands claude ran",
          "shell history",
          "command log",
          "commands executed",
          "cronologia comandi"
        ]
      }
    },
    {
      "name": "web-trail",
      "category": "observability",
      "tier": "simple",
      "description": "/sources lists every page Claude fetched or searched this session.",
      "version": "1.0.1",
      "keywords": [
        "claude-mods",
        "observability",
        "web",
        "sources"
      ],
      "commands": [
        "/sources"
      ],
      "since": "1.0.0",
      "signals": {
        "intents": [
          "web sources",
          "pages fetched",
          "where did this come from",
          "webfetch history",
          "websearch",
          "citations"
        ]
      }
    },
    {
      "name": "permission-log",
      "category": "observability",
      "tier": "simple",
      "description": "Keeps a log of every tool call that was denied, and why.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "observability",
        "permissions",
        "audit"
      ],
      "commands": [
        "/denied"
      ],
      "since": "1.0.0",
      "signals": {
        "intents": [
          "permission denied",
          "blocked tool calls",
          "permissions log",
          "why was it blocked",
          "denied tool calls",
          "permessi negati"
        ]
      }
    },
    {
      "name": "token-sparkline",
      "category": "observability",
      "tier": "complex",
      "description": "A sparkline of tokens per turn right above the prompt.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "observability",
        "tokens",
        "sparkline"
      ],
      "commands": [
        "/sparkline"
      ],
      "since": "1.0.0",
      "signals": {
        "intents": [
          "tokens per turn",
          "token usage",
          "sparkline",
          "token chart",
          "token spike",
          "consumo di token"
        ]
      }
    },
    {
      "name": "house-style",
      "category": "prompting",
      "tier": "complex",
      "description": "Injects your team's style guide (STYLE.md) into the system prompt automatically.",
      "version": "1.0.1",
      "keywords": [
        "claude-mods",
        "prompting",
        "style-guide",
        "system-prompt"
      ],
      "commands": [
        "/style"
      ],
      "since": "1.0.0",
      "signals": {
        "files": [
          "STYLE.md",
          ".claude/style.md",
          "docs/STYLE.md",
          "CONTRIBUTING.md"
        ],
        "intents": [
          "style guide",
          "house style",
          "coding conventions",
          "team conventions",
          "coding standards",
          "style.md"
        ]
      }
    },
    {
      "name": "language-lock",
      "category": "prompting",
      "tier": "simple",
      "description": "Makes Claude always answer in your language while keeping code in English.",
      "version": "1.0.0",
      "keywords": [
        "claude-mods",
        "prompting",
        "language",
        "i18n"
      ],
      "commands": [],
      "since": "1.0.0",
      "signals": {
        "intents": [
          "answer in italian",
          "reply in my language",
          "respond in english",
          "always reply in",
          "rispondi in italiano",
          "rispondi nella mia lingua"
        ]
      }
    },
    {
      "name": "concise-mode",
      "category": "prompting",
      "tier": "simple",
      "description": "/concise toggles short, to-the-point answers.",
      "version": "1.0.1",
      "keywords": [
        "claude-mods",
        "prompting",
        "brevity",
        "style"
      ],
      "commands": [
        "/concise"
      ],
      "since": "1.0.0",
      "signals": {
        "intents": [
          "short answers",
          "be brief",
          "brief answers",
          "less verbose",
          "no preamble",
          "risposte brevi"
        ]
      }
    },
    {
      "name": "prompt-enhancer",
      "category": "prompting",
      "tier": "complex",
      "description": "/enhance rewrites your draft prompt into a precise, well-scoped request.",
      "version": "1.0.2",
      "keywords": [
        "claude-mods",
        "prompting",
        "rewrite",
        "pane"
      ],
      "commands": [
        "/enhance"
      ],
      "since": "1.0.0",
      "signals": {
        "intents": [
          "improve my prompt",
          "rewrite prompt",
          "better prompt",
          "enhance prompt",
          "prompt engineering",
          "clarify request"
        ]
      }
    },
    {
      "name": "ticket-linker",
      "category": "prompting",
      "tier": "simple",
      "description": "Turns ticket references like ABC-123 or #42 into links and context for Claude.",
      "version": "1.0.0",
      "keywords": [
        "claude-mods",
        "prompting",
        "jira",
        "github"
      ],
      "commands": [],
      "since": "1.0.0",
      "signals": {
        "intents": [
          "issue number",
          "linear ticket",
          "github issue #",
          "ticket link",
          "riferimento al ticket"
        ]
      }
    },
    {
      "name": "date-context",
      "category": "prompting",
      "tier": "simple",
      "description": "Gives Claude the current date, time zone, branch and OS on every prompt.",
      "version": "1.0.0",
      "keywords": [
        "claude-mods",
        "prompting",
        "context",
        "date"
      ],
      "commands": [],
      "since": "1.0.0",
      "signals": {
        "intents": [
          "current date",
          "today's date",
          "what time is it",
          "timezone",
          "what day is it",
          "data di oggi"
        ]
      }
    },
    {
      "name": "persona-switch",
      "category": "prompting",
      "tier": "complex",
      "description": "/persona switches Claude between reviewer, architect, teacher and other roles.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "prompting",
        "persona",
        "system-prompt"
      ],
      "commands": [
        "/persona",
        "/personas"
      ],
      "since": "1.0.0",
      "signals": {
        "intents": [
          "act as a reviewer",
          "act as an architect",
          "act as a teacher",
          "switch role",
          "play the role of",
          "agisci come"
        ]
      }
    },
    {
      "name": "explain-level",
      "category": "prompting",
      "tier": "simple",
      "description": "/eli5, /normal and /expert set how deep Claude's explanations go.",
      "version": "1.0.1",
      "keywords": [
        "claude-mods",
        "prompting",
        "explanations",
        "learning"
      ],
      "commands": [
        "/eli5",
        "/normal",
        "/expert"
      ],
      "since": "1.0.0",
      "signals": {
        "intents": [
          "explain like i'm five",
          "explain simply",
          "expert level",
          "explain in depth",
          "beginner explanation",
          "spiegami come se avessi 5 anni"
        ]
      }
    },
    {
      "name": "stack-detector",
      "category": "prompting",
      "tier": "complex",
      "description": "Detects your stack and gives Claude the right conventions for it.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "prompting",
        "conventions",
        "frameworks"
      ],
      "commands": [
        "/stack"
      ],
      "since": "1.0.0",
      "signals": {
        "files": [
          "package.json",
          "pyproject.toml",
          "go.mod",
          "Cargo.toml",
          "Gemfile",
          "composer.json",
          "pom.xml",
          "build.gradle"
        ],
        "intents": [
          "detect stack",
          "project conventions",
          "framework conventions",
          "what stack",
          "which framework",
          "tech stack"
        ]
      }
    },
    {
      "name": "prompt-lint",
      "category": "prompting",
      "tier": "simple",
      "description": "Gently flags vague prompts like 'fix it' and suggests what to add.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "prompting",
        "lint",
        "tips"
      ],
      "commands": [],
      "since": "1.0.0",
      "signals": {
        "intents": [
          "vague prompt",
          "prompt quality",
          "unclear request",
          "write better prompts",
          "prompt tips",
          "too vague"
        ]
      }
    },
    {
      "name": "done-chime",
      "category": "notifications",
      "tier": "simple",
      "description": "Plays a chime when a long turn finishes.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "notifications",
        "audio",
        "chime"
      ],
      "commands": [],
      "since": "1.0.0",
      "signals": {
        "intents": [
          "notify when done",
          "sound when finished",
          "alert when done",
          "turn finished",
          "play a sound",
          "avvisami quando finisce"
        ]
      }
    },
    {
      "name": "speak-summary",
      "category": "notifications",
      "tier": "complex",
      "description": "Reads a one-line summary of what Claude did out loud when a turn ends.",
      "version": "1.1.2",
      "keywords": [
        "claude-mods",
        "notifications",
        "audio",
        "text-to-speech"
      ],
      "commands": [
        "/speak"
      ],
      "since": "1.0.0",
      "signals": {
        "intents": [
          "read aloud",
          "text to speech",
          "spoken summary",
          "say the summary",
          "leggi ad alta voce",
          "riassunto vocale"
        ]
      }
    },
    {
      "name": "permission-ping",
      "category": "notifications",
      "tier": "simple",
      "description": "Pings you with a sound and toast when Claude is waiting on your approval.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "notifications",
        "permissions",
        "sound"
      ],
      "commands": [],
      "since": "1.0.0",
      "signals": {
        "intents": [
          "permission prompt",
          "waiting for approval",
          "approval needed",
          "ping me",
          "notify on permission",
          "need my approval"
        ]
      }
    },
    {
      "name": "error-buzz",
      "category": "notifications",
      "tier": "simple",
      "description": "A short buzz when a command or test run fails.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "notifications",
        "sound",
        "tests"
      ],
      "commands": [],
      "since": "1.0.0",
      "signals": {
        "intents": [
          "buzz on error",
          "sound on failure",
          "test failed alert",
          "failure sound",
          "error sound",
          "alert on failure"
        ]
      }
    },
    {
      "name": "webhook-notify",
      "category": "notifications",
      "tier": "complex",
      "description": "Posts to Slack, Discord, Teams or ntfy when a long task finishes.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "notifications",
        "webhook",
        "slack"
      ],
      "commands": [
        "/notify-test"
      ],
      "since": "1.0.0",
      "signals": {
        "intents": [
          "slack notification",
          "discord notification",
          "teams notification",
          "notify my phone",
          "push notification",
          "notifica slack"
        ]
      }
    },
    {
      "name": "desktop-notify",
      "category": "notifications",
      "tier": "simple",
      "description": "Native desktop notifications when Claude finishes or needs you.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "notifications",
        "desktop",
        "toast"
      ],
      "commands": [],
      "since": "1.0.0",
      "signals": {
        "intents": [
          "desktop notification",
          "native notification",
          "notify me",
          "system notification",
          "os notification",
          "notifica desktop"
        ]
      }
    },
    {
      "name": "long-run-alert",
      "category": "notifications",
      "tier": "simple",
      "description": "Alerts you when a single command has been running too long.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "notifications",
        "bash",
        "timer"
      ],
      "commands": [],
      "since": "1.0.0",
      "signals": {
        "intents": [
          "long running command",
          "command taking too long",
          "still running",
          "slow command",
          "hung command",
          "alert on long command"
        ]
      }
    },
    {
      "name": "ci-watch",
      "category": "notifications",
      "tier": "complex",
      "description": "/ci-watch follows your GitHub Actions run and tells you the moment it passes or fails.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "notifications",
        "github-actions",
        "ci"
      ],
      "commands": [
        "/ci-watch"
      ],
      "since": "1.0.0",
      "signals": {
        "files": [
          ".github/workflows/*.yml",
          ".github/workflows/*.yaml"
        ],
        "intents": [
          "ci status",
          "workflow run",
          "watch ci",
          "ci passed",
          "ci failed",
          "pipeline status"
        ]
      }
    },
    {
      "name": "break-reminder",
      "category": "notifications",
      "tier": "simple",
      "description": "Reminds you to stand up and stretch every 50 minutes of active work.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "notifications",
        "wellbeing",
        "timer"
      ],
      "commands": [],
      "since": "1.0.0",
      "signals": {
        "intents": [
          "take a break",
          "rest reminder",
          "stand up",
          "eye strain",
          "promemoria pausa"
        ]
      }
    },
    {
      "name": "celebrate",
      "category": "notifications",
      "tier": "simple",
      "description": "Celebrates when failing tests go green again.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "notifications",
        "tests",
        "sound"
      ],
      "commands": [],
      "since": "1.0.0",
      "signals": {
        "intents": [
          "tests green",
          "all green",
          "celebrate",
          "tests pass again",
          "confetti",
          "test verdi"
        ]
      }
    },
    {
      "name": "decision-log",
      "category": "memory",
      "tier": "complex",
      "description": "/decide records an Architecture Decision Record in docs/decisions.",
      "version": "1.1.2",
      "keywords": [
        "claude-mods",
        "memory",
        "adr",
        "documentation"
      ],
      "commands": [
        "/decide",
        "/decisions"
      ],
      "since": "1.0.0",
      "signals": {
        "files": [
          "docs/decisions/**",
          "docs/adr/**",
          "adr/**"
        ],
        "intents": [
          "architecture decision record",
          "decision record",
          "document a decision",
          "record a decision",
          "why we chose",
          "decision log"
        ]
      }
    },
    {
      "name": "session-journal",
      "category": "memory",
      "tier": "complex",
      "description": "Writes a dated journal entry of what was done when the session ends.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "memory",
        "journal",
        "worklog"
      ],
      "commands": [
        "/journal"
      ],
      "since": "1.0.0",
      "signals": {
        "files": [
          ".claude/journal/**"
        ],
        "intents": [
          "session journal",
          "daily log",
          "work log",
          "what did i do",
          "dev diary",
          "diario di lavoro"
        ]
      }
    },
    {
      "name": "glossary",
      "category": "memory",
      "tier": "complex",
      "description": "Teaches Claude your project's vocabulary and injects definitions when you use the terms.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "memory",
        "glossary",
        "context"
      ],
      "commands": [
        "/define",
        "/glossary"
      ],
      "since": "1.0.0",
      "signals": {
        "files": [
          "GLOSSARY.md",
          "glossary.md",
          "docs/glossary.md"
        ],
        "intents": [
          "glossary",
          "domain terms",
          "project vocabulary",
          "terminology",
          "define terms",
          "domain language"
        ]
      }
    },
    {
      "name": "bookmark",
      "category": "memory",
      "tier": "simple",
      "description": "/bookmark saves the last answer; /bookmarks lists and reuses them.",
      "version": "1.0.1",
      "keywords": [
        "claude-mods",
        "memory",
        "bookmarks",
        "notes"
      ],
      "commands": [
        "/bookmark",
        "/bookmarks",
        "/bookmark-insert",
        "/bookmark-delete"
      ],
      "since": "1.0.0",
      "signals": {
        "intents": [
          "bookmark",
          "save answer",
          "save this answer",
          "keep this answer",
          "bookmarks",
          "favorite answers"
        ]
      }
    },
    {
      "name": "resume-brief",
      "category": "memory",
      "tier": "complex",
      "description": "Shows what you were working on last time when a new session starts.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "memory",
        "continuity",
        "band"
      ],
      "commands": [
        "/resume-brief"
      ],
      "since": "1.0.0",
      "signals": {
        "intents": [
          "resume work",
          "continue where we left off",
          "last session",
          "previous session",
          "pick up where",
          "what was i doing"
        ]
      }
    },
    {
      "name": "lessons-learned",
      "category": "memory",
      "tier": "complex",
      "description": "When Claude fixes a mistake, offers to save the lesson to CLAUDE.md.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "memory",
        "claude-md",
        "debugging"
      ],
      "commands": [],
      "since": "1.0.0",
      "signals": {
        "files": [
          "CLAUDE.md"
        ],
        "intents": [
          "lessons learned",
          "save a lesson",
          "claude.md",
          "remember this mistake",
          "avoid the same mistake",
          "update claude.md"
        ]
      }
    },
    {
      "name": "codebase-map",
      "category": "memory",
      "tier": "complex",
      "description": "/map builds a compact map of your repository and gives it to Claude.",
      "version": "1.1.2",
      "keywords": [
        "claude-mods",
        "memory",
        "context",
        "repository-map"
      ],
      "commands": [
        "/map"
      ],
      "since": "1.0.0",
      "signals": {
        "intents": [
          "codebase map",
          "repo map",
          "repository overview",
          "project structure",
          "where things live",
          "map the repo"
        ]
      }
    },
    {
      "name": "snippet-vault",
      "category": "memory",
      "tier": "simple",
      "description": "Save and reuse code snippets across projects with /save-snippet and /snippet.",
      "version": "1.0.1",
      "keywords": [
        "claude-mods",
        "memory",
        "snippets",
        "code"
      ],
      "commands": [
        "/save-snippet",
        "/snippet",
        "/vault",
        "/delete-snippet"
      ],
      "since": "1.0.0",
      "signals": {
        "intents": [
          "save snippet",
          "code snippet library",
          "snippet vault",
          "reuse snippet",
          "store snippet",
          "libreria di snippet"
        ]
      }
    },
    {
      "name": "link-vault",
      "category": "memory",
      "tier": "simple",
      "description": "Collects every URL from the conversation into one list.",
      "version": "1.0.1",
      "keywords": [
        "claude-mods",
        "memory",
        "links",
        "urls"
      ],
      "commands": [
        "/links",
        "/links-copy"
      ],
      "since": "1.0.0",
      "signals": {
        "intents": [
          "links from the conversation",
          "collect urls",
          "list links",
          "all urls",
          "urls mentioned",
          "link list"
        ]
      }
    },
    {
      "name": "recall",
      "category": "memory",
      "tier": "complex",
      "description": "Gives Claude a recall tool to search your saved notes, decisions and journal.",
      "version": "1.1.3",
      "keywords": [
        "claude-mods",
        "memory",
        "search",
        "notes"
      ],
      "commands": [
        "/remember",
        "/recall"
      ],
      "since": "1.0.0",
      "signals": {
        "files": [
          ".claude/journal/**",
          "docs/decisions/**",
          "docs/adr/**",
          "CLAUDE.md"
        ],
        "intents": [
          "search notes",
          "remember",
          "search my notes",
          "what did we decide",
          "search journal",
          "search decisions"
        ]
      }
    },
    {
      "name": "changelog-keeper",
      "category": "team",
      "tier": "complex",
      "description": "Keeps CHANGELOG.md's Unreleased section up to date as you commit.",
      "version": "1.1.2",
      "keywords": [
        "claude-mods",
        "team",
        "changelog",
        "conventional-commits"
      ],
      "commands": [
        "/changelog"
      ],
      "since": "1.0.0",
      "signals": {
        "files": [
          "CHANGELOG.md",
          "CHANGES.md",
          "HISTORY.md"
        ],
        "intents": [
          "changelog",
          "release notes",
          "unreleased",
          "keep a changelog",
          "update the changelog",
          "conventional commits changelog"
        ]
      }
    },
    {
      "name": "readme-sync",
      "category": "team",
      "tier": "complex",
      "description": "Warns when public APIs, CLI flags or env vars change but the docs do not.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "team",
        "docs",
        "readme"
      ],
      "commands": [],
      "since": "1.0.0",
      "signals": {
        "files": [
          "README.md",
          "docs/**/*.md"
        ],
        "intents": [
          "update the readme",
          "docs out of date",
          "document the api",
          "stale docs",
          "keep docs in sync",
          "documentazione obsoleta"
        ]
      }
    },
    {
      "name": "standup",
      "category": "team",
      "tier": "complex",
      "description": "/standup summarises what you did yesterday, from git history, ready to paste.",
      "version": "1.1.2",
      "keywords": [
        "claude-mods",
        "team",
        "standup",
        "git"
      ],
      "commands": [
        "/standup"
      ],
      "since": "1.0.0",
      "signals": {
        "intents": [
          "stand-up",
          "daily standup",
          "what did i do yesterday",
          "yesterday today blockers",
          "daily scrum",
          "standup giornaliero"
        ]
      }
    },
    {
      "name": "review-agent",
      "category": "team",
      "tier": "complex",
      "description": "Adds a dedicated code-reviewer subagent and a /review command.",
      "version": "1.1.3",
      "keywords": [
        "claude-mods",
        "team",
        "code-review",
        "subagent"
      ],
      "commands": [
        "/review"
      ],
      "since": "1.0.0",
      "signals": {
        "intents": [
          "code review",
          "review my changes",
          "review the diff",
          "reviewer",
          "review pr",
          "review this branch"
        ]
      }
    },
    {
      "name": "license-header",
      "category": "team",
      "tier": "simple",
      "description": "Adds your license header to every new source file Claude creates.",
      "version": "1.0.0",
      "keywords": [
        "claude-mods",
        "team",
        "license",
        "spdx"
      ],
      "commands": [],
      "since": "1.0.0",
      "signals": {
        "files": [
          "LICENSE",
          "LICENSE.md",
          "LICENSE.txt"
        ],
        "intents": [
          "license header",
          "spdx header",
          "copyright header",
          "add license",
          "licence header",
          "source header"
        ]
      }
    },
    {
      "name": "issue-drafter",
      "category": "team",
      "tier": "complex",
      "description": "/issue turns the current conversation into a well-structured GitHub issue.",
      "version": "1.1.2",
      "keywords": [
        "claude-mods",
        "team",
        "github",
        "issues"
      ],
      "commands": [
        "/issue"
      ],
      "since": "1.0.0",
      "signals": {
        "intents": [
          "github issue",
          "create an issue",
          "bug report",
          "draft an issue",
          "file an issue",
          "open an issue"
        ]
      }
    },
    {
      "name": "handoff",
      "category": "team",
      "tier": "complex",
      "description": "/handoff writes a handoff note so a teammate can pick up exactly where you left off.",
      "version": "1.1.2",
      "keywords": [
        "claude-mods",
        "team",
        "handoff",
        "notes"
      ],
      "commands": [
        "/handoff"
      ],
      "since": "1.0.0",
      "signals": {
        "files": [
          ".claude/handoff/**"
        ],
        "intents": [
          "hand off",
          "handover",
          "pass to teammate",
          "pick up where i left",
          "transfer work",
          "passaggio di consegne"
        ]
      }
    },
    {
      "name": "i18n-guard",
      "category": "team",
      "tier": "simple",
      "description": "Flags hard-coded user-facing strings in UI components.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "team",
        "i18n",
        "lint"
      ],
      "commands": [],
      "since": "1.0.0",
      "signals": {
        "files": [
          "i18n/**",
          "locales/**",
          "**/locales/*.json",
          "public/locales/**",
          "messages/*.json",
          "i18next.config.*",
          "lingui.config.*"
        ],
        "deps": [
          "i18next",
          "react-i18next",
          "next-i18next",
          "next-intl",
          "react-intl",
          "vue-i18n",
          "svelte-i18n",
          "@lingui/core"
        ],
        "intents": [
          "translation",
          "hard-coded strings",
          "localization",
          "localisation",
          "translate ui",
          "internationalization"
        ]
      }
    },
    {
      "name": "migration-guard",
      "category": "team",
      "tier": "simple",
      "description": "Prevents editing database migrations that already exist; write a new one instead.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "team",
        "database",
        "migrations",
        "guardrail"
      ],
      "commands": [],
      "since": "1.0.0",
      "signals": {
        "files": [
          "**/migrations/**",
          "db/migrate/**",
          "prisma/migrations/**",
          "alembic/versions/**"
        ],
        "deps": [
          "prisma",
          "django",
          "alembic",
          "knex",
          "typeorm",
          "sequelize",
          "drizzle-kit"
        ],
        "intents": [
          "edit a migration",
          "existing migration",
          "migration history",
          "modify migration",
          "database migration",
          "change old migration"
        ]
      }
    },
    {
      "name": "codeowners-hint",
      "category": "team",
      "tier": "simple",
      "description": "Shows who owns a file (from CODEOWNERS) as Claude edits it.",
      "version": "1.0.1",
      "keywords": [
        "claude-mods",
        "team",
        "codeowners",
        "ownership"
      ],
      "commands": [
        "/owners"
      ],
      "since": "1.0.0",
      "signals": {
        "files": [
          "CODEOWNERS",
          ".github/CODEOWNERS",
          "docs/CODEOWNERS"
        ],
        "intents": [
          "codeowners",
          "who owns",
          "file owner",
          "code owner",
          "owners of the file",
          "responsabile del file"
        ]
      }
    },
    {
      "name": "react-doctor",
      "category": "stacks",
      "tier": "complex",
      "description": "Catches React hook mistakes as Claude writes them: missing effect deps, setState in render, conditional hooks.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "stacks",
        "react",
        "hooks"
      ],
      "commands": [],
      "since": "2.0.0",
      "signals": {
        "files": [
          "**/*.tsx",
          "**/*.jsx"
        ],
        "deps": [
          "react",
          "react-dom",
          "react-native"
        ],
        "intents": [
          "react hooks",
          "useeffect",
          "usestate",
          "missing dependency",
          "exhaustive deps",
          "react bug"
        ]
      }
    },
    {
      "name": "next-guard",
      "category": "stacks",
      "tier": "simple",
      "description": "Flags missing or needless \"use client\" and server-only imports leaking into client components in Next.js.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "stacks",
        "nextjs",
        "react"
      ],
      "commands": [],
      "since": "2.0.0",
      "signals": {
        "files": [
          "next.config.js",
          "next.config.mjs",
          "next.config.ts",
          "app/**/page.tsx",
          "src/app/**/page.tsx"
        ],
        "deps": [
          "next"
        ],
        "intents": [
          "use client",
          "server component",
          "server components",
          "client component",
          "app router",
          "next/headers"
        ]
      }
    },
    {
      "name": "venv-guard",
      "category": "stacks",
      "tier": "simple",
      "description": "Blocks pip install outside an active virtualenv so system Python stays clean.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "stacks",
        "python",
        "guard"
      ],
      "commands": [],
      "since": "2.0.0",
      "signals": {
        "files": [
          "requirements*.txt",
          "pyproject.toml",
          "setup.py",
          "Pipfile"
        ],
        "intents": [
          "pip install",
          "virtualenv",
          "python environment",
          "system python",
          "pip --user",
          "externally managed"
        ]
      }
    },
    {
      "name": "node-version-check",
      "category": "stacks",
      "tier": "simple",
      "description": "Warns when your Node version doesn't match .nvmrc, .node-version or package.json engines.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "stacks",
        "node",
        "nvm"
      ],
      "commands": [],
      "since": "2.0.0",
      "signals": {
        "files": [
          ".nvmrc",
          ".node-version",
          ".tool-versions"
        ],
        "intents": [
          "node version",
          "wrong node version",
          "node engines",
          "node mismatch",
          "versione di node",
          "versione errata di node"
        ]
      }
    },
    {
      "name": "django-migrate-watch",
      "category": "stacks",
      "tier": "complex",
      "description": "After Django model changes, checks for missing migrations and offers to create them.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "stacks",
        "django",
        "migrations"
      ],
      "commands": [],
      "since": "2.0.0",
      "signals": {
        "files": [
          "manage.py",
          "**/migrations/*.py"
        ],
        "deps": [
          "django"
        ],
        "intents": [
          "makemigrations",
          "django migrations",
          "models.py",
          "django model",
          "missing migration",
          "manage.py"
        ]
      }
    },
    {
      "name": "go-mod-tidy",
      "category": "stacks",
      "tier": "simple",
      "description": "Runs go mod tidy when Claude changes Go imports, so go.mod and go.sum stay in sync.",
      "version": "1.0.0",
      "keywords": [
        "claude-mods",
        "stacks",
        "go",
        "modules"
      ],
      "commands": [],
      "since": "2.0.0",
      "signals": {
        "files": [
          "go.mod",
          "go.work"
        ],
        "intents": [
          "go mod tidy",
          "go modules",
          "go dependencies",
          "go imports",
          "go.sum out of sync",
          "dipendenze go"
        ]
      }
    },
    {
      "name": "strict-types",
      "category": "stacks",
      "tier": "simple",
      "description": "Adds declare(strict_types=1) to new PHP files and from __future__ import annotations to new Python files.",
      "version": "1.0.0",
      "keywords": [
        "claude-mods",
        "stacks",
        "php",
        "python"
      ],
      "commands": [],
      "since": "2.0.0",
      "signals": {
        "files": [
          "composer.json",
          "requirements.txt",
          "pyproject.toml",
          "setup.py"
        ],
        "intents": [
          "strict types",
          "strict_types",
          "php strict types",
          "future annotations",
          "type hints python",
          "new php file"
        ]
      }
    },
    {
      "name": "schema-sync",
      "category": "stacks",
      "tier": "complex",
      "description": "After Prisma or Drizzle schema edits, regenerates the client and warns when a migration is missing.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "stacks",
        "prisma",
        "drizzle"
      ],
      "commands": [],
      "since": "2.0.0",
      "signals": {
        "files": [
          "prisma/schema.prisma",
          "**/*.prisma",
          "drizzle.config.ts",
          "drizzle.config.js",
          "drizzle.config.mjs"
        ],
        "deps": [
          "prisma",
          "@prisma/client",
          "drizzle-orm",
          "drizzle-kit"
        ],
        "intents": [
          "schema change",
          "prisma generate",
          "orm schema",
          "migration missing",
          "update prisma schema",
          "modifica allo schema"
        ]
      }
    },
    {
      "name": "env-example-sync",
      "category": "stacks",
      "tier": "simple",
      "description": "Keeps .env.example in sync with the environment variables your code actually reads.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "stacks",
        "env",
        "dotenv"
      ],
      "commands": [],
      "since": "2.0.0",
      "signals": {
        "files": [
          ".env.example",
          ".env.sample",
          ".env.template"
        ],
        "deps": [
          "dotenv",
          "python-dotenv"
        ],
        "intents": [
          ".env.example",
          "env example",
          "environment variables",
          "new env var",
          "missing env var",
          "sync env"
        ]
      }
    },
    {
      "name": "monorepo-scope",
      "category": "stacks",
      "tier": "complex",
      "description": "Detects which monorepo package you're in and scopes test, lint and build commands to it.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "stacks",
        "monorepo",
        "workspaces"
      ],
      "commands": [
        "/scope-pkg"
      ],
      "since": "2.0.0",
      "signals": {
        "files": [
          "pnpm-workspace.yaml",
          "turbo.json",
          "nx.json",
          "lerna.json",
          "rush.json"
        ],
        "deps": [
          "turbo",
          "nx",
          "lerna",
          "@nx/workspace"
        ],
        "intents": [
          "monorepo",
          "workspace",
          "turborepo",
          "pnpm workspace",
          "run tests in one package",
          "scope to package"
        ]
      }
    },
    {
      "name": "docker-lint",
      "category": "devops",
      "tier": "simple",
      "description": "Flags Dockerfile smells: :latest tags, running as root, apt without cleanup, ADD instead of COPY.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "devops",
        "docker",
        "lint"
      ],
      "commands": [],
      "since": "2.0.0",
      "signals": {
        "files": [
          "Dockerfile",
          "Dockerfile.*",
          "**/Dockerfile",
          "**/Dockerfile.*",
          "*.dockerfile",
          "Containerfile"
        ],
        "intents": [
          "dockerfile",
          "docker image",
          "container image",
          "dockerize",
          "lint dockerfile",
          "hadolint"
        ]
      }
    },
    {
      "name": "k8s-dry-run",
      "category": "devops",
      "tier": "complex",
      "description": "Turns kubectl apply into a server-side dry run with a diff you approve first.",
      "version": "1.1.2",
      "keywords": [
        "claude-mods",
        "devops",
        "kubernetes",
        "kubectl"
      ],
      "commands": [
        "/k8s-approve",
        "/k8s-diff"
      ],
      "since": "2.0.0",
      "signals": {
        "files": [
          "k8s/**",
          "kubernetes/**",
          "manifests/**",
          "**/Chart.yaml",
          "**/kustomization.yaml",
          "skaffold.yaml",
          "helmfile.yaml"
        ],
        "intents": [
          "kubernetes",
          "kubectl apply",
          "dry run",
          "manifests",
          "apply manifests",
          "manifest kubernetes"
        ]
      }
    },
    {
      "name": "terraform-plan-pane",
      "category": "devops",
      "tier": "complex",
      "description": "Shows terraform plan as a clear pane of resources to create, change and destroy.",
      "version": "1.1.2",
      "keywords": [
        "claude-mods",
        "devops",
        "terraform",
        "opentofu"
      ],
      "commands": [
        "/tfplan"
      ],
      "since": "2.0.0",
      "signals": {
        "files": [
          "*.tf",
          "**/*.tf",
          "*.tfvars",
          "terragrunt.hcl",
          ".terraform.lock.hcl"
        ],
        "intents": [
          "terraform",
          "terraform plan",
          "opentofu",
          "infrastructure as code",
          "resources destroyed",
          "plan output"
        ]
      }
    },
    {
      "name": "ci-yaml-check",
      "category": "devops",
      "tier": "simple",
      "description": "Checks edited GitHub Actions workflows and warns about actions not pinned to a version.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "devops",
        "github-actions",
        "ci"
      ],
      "commands": [],
      "since": "2.0.0",
      "signals": {
        "files": [
          ".github/workflows/*.yml",
          ".github/workflows/*.yaml"
        ],
        "intents": [
          "github actions",
          "github workflow",
          "pin action versions",
          "ci pipeline",
          "pull_request_target",
          "actions permissions"
        ]
      }
    },
    {
      "name": "port-check",
      "category": "devops",
      "tier": "simple",
      "description": "Before a dev server starts, tells you if the port is already taken and by which process.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "devops",
        "ports",
        "dev-server"
      ],
      "commands": [],
      "since": "2.0.0",
      "signals": {
        "intents": [
          "port already in use",
          "address already in use",
          "eaddrinuse",
          "port 3000",
          "which process is using",
          "dev server port"
        ]
      }
    },
    {
      "name": "dev-server-pane",
      "category": "devops",
      "tier": "complex",
      "description": "Starts your dev server in the background and shows its errors in a live pane.",
      "version": "1.1.2",
      "keywords": [
        "claude-mods",
        "devops",
        "dev-server",
        "pane"
      ],
      "commands": [
        "/dev"
      ],
      "since": "2.0.0",
      "signals": {
        "files": [
          "manage.py",
          "bin/dev",
          "artisan",
          "mix.exs",
          "Procfile",
          "vite.config.*"
        ],
        "deps": [
          "vite",
          "next",
          "nuxt",
          "astro",
          "webpack-dev-server",
          "flask",
          "uvicorn",
          "django"
        ],
        "intents": [
          "dev server",
          "run the dev server",
          "start dev server",
          "localhost",
          "npm run dev",
          "runserver"
        ]
      }
    },
    {
      "name": "cloud-cost-warn",
      "category": "devops",
      "tier": "simple",
      "description": "Warns before commands that create expensive cloud resources like GPU instances or large databases.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "devops",
        "cloud",
        "cost"
      ],
      "commands": [],
      "since": "2.0.0",
      "signals": {
        "files": [
          "cdk.json",
          "Pulumi.yaml",
          "serverless.yml",
          "serverless.yaml",
          "samconfig.toml"
        ],
        "deps": [
          "aws-cdk-lib",
          "aws-cdk",
          "@pulumi/pulumi",
          "boto3"
        ],
        "intents": [
          "cloud cost",
          "aws cost",
          "gpu instance",
          "ec2 instance",
          "rds database",
          "eks cluster"
        ]
      }
    },
    {
      "name": "log-tail",
      "category": "devops",
      "tier": "complex",
      "description": "/tail follows a log file or container in a live pane, with an errors-only filter.",
      "version": "1.0.2",
      "keywords": [
        "claude-mods",
        "devops",
        "logs",
        "docker"
      ],
      "commands": [
        "/tail"
      ],
      "since": "2.0.0",
      "signals": {
        "files": [
          "docker-compose*.yml",
          "docker-compose*.yaml",
          "compose.yml",
          "compose.yaml",
          "logs/**",
          "*.log"
        ],
        "intents": [
          "tail logs",
          "follow logs",
          "docker logs",
          "tail -f",
          "container logs",
          "log file"
        ]
      }
    },
    {
      "name": "docker-prune-guard",
      "category": "devops",
      "tier": "simple",
      "description": "Blocks docker system prune -a --volumes and volume deletion that can wipe local databases.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "devops",
        "docker",
        "guard"
      ],
      "commands": [],
      "since": "2.0.0",
      "signals": {
        "files": [
          "docker-compose*.yml",
          "docker-compose*.yaml",
          "compose.yml",
          "compose.yaml",
          "Dockerfile"
        ],
        "intents": [
          "docker prune",
          "docker system prune",
          "docker volume",
          "compose down -v",
          "delete volumes",
          "docker cleanup"
        ]
      }
    },
    {
      "name": "deploy-checklist",
      "category": "devops",
      "tier": "complex",
      "description": "Shows a pre-deploy checklist (tests, branch, changelog) and asks you to confirm before deploying.",
      "version": "1.1.2",
      "keywords": [
        "claude-mods",
        "devops",
        "deploy",
        "guard"
      ],
      "commands": [
        "/deploy-checklist"
      ],
      "since": "2.0.0",
      "signals": {
        "files": [
          "vercel.json",
          "netlify.toml",
          "fly.toml",
          "firebase.json",
          "app.yaml",
          "wrangler.toml",
          "wrangler.jsonc",
          "railway.json",
          "render.yaml",
          "Procfile"
        ],
        "deps": [
          "vercel",
          "netlify-cli",
          "firebase-tools",
          "wrangler"
        ],
        "intents": [
          "deployment",
          "go live",
          "publish to npm",
          "npm publish",
          "pre-deploy",
          "rilascio"
        ]
      }
    },
    {
      "name": "sql-safety",
      "category": "data",
      "tier": "simple",
      "description": "Flags UPDATE and DELETE without WHERE in .sql files and in queries inside your code.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "data",
        "sql",
        "guard"
      ],
      "commands": [],
      "since": "2.0.0",
      "signals": {
        "files": [
          "*.sql",
          "**/*.sql"
        ],
        "deps": [
          "pg",
          "mysql2",
          "better-sqlite3",
          "psycopg2",
          "psycopg",
          "sqlalchemy",
          "knex"
        ],
        "intents": [
          "update without where",
          "delete without where",
          "drop table",
          "truncate",
          "raw sql",
          "sql injection"
        ]
      }
    },
    {
      "name": "query-explain",
      "category": "data",
      "tier": "complex",
      "description": "/explain-query runs EXPLAIN on your local database and explains the plan in plain words.",
      "version": "1.0.2",
      "keywords": [
        "claude-mods",
        "data",
        "database",
        "performance"
      ],
      "commands": [
        "/explain-query"
      ],
      "since": "2.0.0",
      "signals": {
        "deps": [
          "pg",
          "postgres",
          "mysql2",
          "better-sqlite3",
          "psycopg2",
          "psycopg",
          "sqlalchemy"
        ],
        "intents": [
          "slow query",
          "explain query",
          "explain analyze",
          "query plan",
          "missing index",
          "create index"
        ]
      }
    },
    {
      "name": "seed-guard",
      "category": "data",
      "tier": "simple",
      "description": "Blocks database seed, reset and drop commands unless DATABASE_URL points at your own machine.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "data",
        "database",
        "guard"
      ],
      "commands": [],
      "since": "2.0.0",
      "signals": {
        "files": [
          "prisma/seed.ts",
          "prisma/seed.js",
          "db/seeds.rb",
          "database/seeders/**",
          "seeds/**",
          "knexfile.*"
        ],
        "deps": [
          "prisma",
          "@prisma/client",
          "knex",
          "sequelize"
        ],
        "intents": [
          "seed database",
          "db seed",
          "reset database",
          "drop database",
          "migrate reset",
          "wipe database"
        ]
      }
    },
    {
      "name": "schema-pane",
      "category": "data",
      "tier": "complex",
      "description": "A pane of your local database's tables and columns, ready to hand to Claude as context.",
      "version": "1.0.2",
      "keywords": [
        "claude-mods",
        "data",
        "database",
        "schema"
      ],
      "commands": [
        "/schema"
      ],
      "since": "2.0.0",
      "signals": {
        "files": [
          "prisma/schema.prisma",
          "db/schema.rb",
          "schema.sql",
          "*.sqlite",
          "*.db"
        ],
        "deps": [
          "prisma",
          "drizzle-orm",
          "sqlalchemy",
          "typeorm",
          "sequelize",
          "pg",
          "mysql2"
        ],
        "intents": [
          "database",
          "database schema",
          "table columns",
          "db schema",
          "list tables",
          "what tables"
        ]
      }
    },
    {
      "name": "n-plus-one-hint",
      "category": "data",
      "tier": "simple",
      "description": "Spots database queries inside loops, the classic N+1 problem, as Claude writes them.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "data",
        "orm",
        "performance"
      ],
      "commands": [],
      "since": "2.0.0",
      "signals": {
        "deps": [
          "prisma",
          "@prisma/client",
          "sequelize",
          "typeorm",
          "django",
          "sqlalchemy",
          "mongoose",
          "rails",
          "drizzle-orm"
        ],
        "intents": [
          "n+1 query",
          "n plus one",
          "queries in a loop",
          "slow endpoint",
          "eager loading",
          "select_related"
        ]
      }
    },
    {
      "name": "migration-namer",
      "category": "data",
      "tier": "simple",
      "description": "Gives new migrations consistent, descriptive, timestamped names.",
      "version": "1.0.1",
      "keywords": [
        "claude-mods",
        "data",
        "migrations",
        "naming",
        "guard"
      ],
      "commands": [
        "/migration-name"
      ],
      "since": "2.0.0",
      "signals": {
        "files": [
          "**/migrations/**",
          "db/migrate/**",
          "prisma/migrations/**",
          "alembic/versions/**",
          "migrations/**"
        ],
        "deps": [
          "prisma",
          "alembic",
          "knex",
          "django",
          "typeorm",
          "sequelize"
        ],
        "intents": [
          "name a migration",
          "migration name",
          "new migration",
          "create migration",
          "migration file",
          "timestamped migration"
        ]
      }
    },
    {
      "name": "query-result-cap",
      "category": "data",
      "tier": "simple",
      "description": "Adds a LIMIT to ad-hoc SELECTs Claude runs in psql, mysql or sqlite so results don't flood the context.",
      "version": "1.0.0",
      "keywords": [
        "claude-mods",
        "data",
        "sql",
        "tokens",
        "guard"
      ],
      "commands": [],
      "since": "2.0.0",
      "signals": {
        "deps": [
          "pg",
          "psycopg2",
          "mysql2",
          "better-sqlite3"
        ],
        "intents": [
          "select *",
          "query the database",
          "limit rows",
          "huge result set",
          "table with millions of rows",
          "limit query"
        ]
      }
    },
    {
      "name": "backup-before-migrate",
      "category": "data",
      "tier": "complex",
      "description": "Dumps your local database before every migration so a bad one is one command away from undo.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "data",
        "database",
        "backup"
      ],
      "commands": [
        "/db-backups",
        "/db-restore"
      ],
      "since": "2.0.0",
      "signals": {
        "files": [
          "prisma/schema.prisma",
          "alembic.ini",
          "manage.py",
          "db/migrate/**",
          "knexfile.*",
          "drizzle.config.*",
          "flyway.conf"
        ],
        "deps": [
          "prisma",
          "alembic",
          "knex",
          "typeorm",
          "drizzle-kit",
          "sequelize",
          "django"
        ],
        "intents": [
          "database backup",
          "backup database",
          "mysqldump",
          "run a migration",
          "undo a migration",
          "before migrating"
        ]
      }
    },
    {
      "name": "csv-peek",
      "category": "data",
      "tier": "simple",
      "description": "/peek shows a CSV or JSONL file's columns, sample rows and inferred types without reading the whole file.",
      "version": "1.0.1",
      "keywords": [
        "claude-mods",
        "data",
        "csv",
        "jsonl",
        "tokens"
      ],
      "commands": [
        "/peek"
      ],
      "since": "2.0.0",
      "signals": {
        "files": [
          "*.csv",
          "**/*.csv",
          "**/*.tsv",
          "**/*.jsonl"
        ],
        "intents": [
          "csv columns",
          "preview csv",
          "large dataset",
          "inferred types",
          "dataset enorme",
          "anteprima csv"
        ]
      }
    },
    {
      "name": "fixture-factory",
      "category": "data",
      "tier": "complex",
      "description": "/fixtures generates realistic test data that matches your schema or types.",
      "version": "1.0.2",
      "keywords": [
        "claude-mods",
        "data",
        "testing",
        "fixtures"
      ],
      "commands": [
        "/fixtures"
      ],
      "since": "2.0.0",
      "signals": {
        "files": [
          "fixtures/**",
          "**/fixtures/**",
          "factories/**"
        ],
        "deps": [
          "@faker-js/faker",
          "faker",
          "factory_boy",
          "factory-bot",
          "fishery"
        ],
        "intents": [
          "fixtures",
          "test data",
          "fake data",
          "mock data",
          "seed data",
          "generate records"
        ]
      }
    },
    {
      "name": "a11y-guard",
      "category": "frontend",
      "tier": "simple",
      "description": "Flags accessibility misses as Claude writes UI: images without alt, unlabeled buttons, clickable divs.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "frontend",
        "accessibility",
        "a11y",
        "guard"
      ],
      "commands": [],
      "since": "2.0.0",
      "signals": {
        "files": [
          "**/*.tsx",
          "**/*.jsx",
          "**/*.vue",
          "**/*.svelte",
          "**/*.astro"
        ],
        "deps": [
          "react",
          "vue",
          "svelte",
          "@angular/core",
          "astro",
          "axe-core",
          "eslint-plugin-jsx-a11y"
        ],
        "intents": [
          "accessibility",
          "alt text",
          "aria label",
          "screen reader",
          "keyboard navigation",
          "accessible button"
        ]
      }
    },
    {
      "name": "screenshot-check",
      "category": "frontend",
      "tier": "complex",
      "description": "After UI edits, takes a Playwright screenshot of the page and shows it to Claude.",
      "version": "1.1.2",
      "keywords": [
        "claude-mods",
        "frontend",
        "playwright",
        "screenshot"
      ],
      "commands": [
        "/screenshot"
      ],
      "since": "2.0.0",
      "signals": {
        "files": [
          "playwright.config.*"
        ],
        "deps": [
          "playwright",
          "@playwright/test",
          "puppeteer"
        ],
        "intents": [
          "screenshot",
          "visual check",
          "how does it look",
          "see the page",
          "playwright",
          "ui screenshot"
        ]
      }
    },
    {
      "name": "bundle-size-watch",
      "category": "frontend",
      "tier": "simple",
      "description": "Compares bundle size after each build and warns when it grows.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "frontend",
        "bundle",
        "performance",
        "build"
      ],
      "commands": [],
      "since": "2.0.0",
      "signals": {
        "files": [
          "vite.config.*",
          "webpack.config.*",
          "rollup.config.*",
          "next.config.*",
          "esbuild.config.*",
          "tsup.config.*"
        ],
        "deps": [
          "vite",
          "webpack",
          "rollup",
          "esbuild",
          "next",
          "parcel",
          "tsup"
        ],
        "intents": [
          "bundle size",
          "build size",
          "webpack bundle",
          "tree shaking",
          "code splitting",
          "bundle grew"
        ]
      }
    },
    {
      "name": "css-token-guard",
      "category": "frontend",
      "tier": "simple",
      "description": "Flags hard-coded hex colors and pixel values where your design tokens should be used.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "frontend",
        "css",
        "design-tokens",
        "guard"
      ],
      "commands": [],
      "since": "2.0.0",
      "signals": {
        "files": [
          "tokens.json",
          "design-tokens.json",
          "**/tokens.css",
          "**/tokens.ts",
          "tailwind.config.*",
          "style-dictionary.config.*"
        ],
        "deps": [
          "style-dictionary",
          "tailwindcss",
          "@vanilla-extract/css",
          "@pandacss/dev"
        ],
        "intents": [
          "design tokens",
          "hard-coded color",
          "hex color",
          "css variables",
          "design system",
          "spacing tokens"
        ]
      }
    },
    {
      "name": "lighthouse-run",
      "category": "frontend",
      "tier": "complex",
      "description": "/lighthouse runs Lighthouse on a URL and shows performance, a11y, SEO and best-practice scores in a pane.",
      "version": "1.1.2",
      "keywords": [
        "claude-mods",
        "frontend",
        "performance",
        "lighthouse"
      ],
      "commands": [
        "/lighthouse"
      ],
      "since": "2.0.0",
      "signals": {
        "files": [
          "lighthouserc.*",
          ".lighthouserc.*"
        ],
        "deps": [
          "lighthouse",
          "@lhci/cli"
        ],
        "intents": [
          "lighthouse",
          "page speed",
          "core web vitals",
          "performance score",
          "seo score",
          "web vitals"
        ]
      }
    },
    {
      "name": "heavy-asset-warn",
      "category": "frontend",
      "tier": "simple",
      "description": "Warns when large images, videos or fonts are added to the project.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "frontend",
        "assets",
        "performance",
        "images"
      ],
      "commands": [],
      "since": "2.0.0",
      "signals": {
        "files": [
          "public/**",
          "static/**",
          "assets/**"
        ],
        "intents": [
          "large image",
          "heavy image",
          "image size",
          "optimize images",
          "compress video",
          "immagine pesante"
        ]
      }
    },
    {
      "name": "storybook-nudge",
      "category": "frontend",
      "tier": "simple",
      "description": "Reminds you to add a story when Claude creates a new component without one.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "frontend",
        "storybook",
        "components",
        "reminder"
      ],
      "commands": [],
      "since": "2.0.0",
      "signals": {
        "files": [
          ".storybook/**",
          "**/*.stories.*"
        ],
        "deps": [
          "storybook",
          "@storybook/react",
          "@storybook/vue3",
          "@storybook/svelte",
          "@storybook/addon-essentials"
        ],
        "intents": [
          "storybook",
          "story for component",
          "component story",
          "*.stories",
          "visual testing components",
          "component docs"
        ]
      }
    },
    {
      "name": "contrast-checker",
      "category": "frontend",
      "tier": "complex",
      "description": "Checks that the colors Claude changes in CSS meet WCAG AA contrast.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "frontend",
        "accessibility",
        "css"
      ],
      "commands": [],
      "since": "2.0.0",
      "signals": {
        "files": [
          "**/*.css",
          "**/*.scss",
          "tailwind.config.*"
        ],
        "deps": [
          "tailwindcss",
          "sass"
        ],
        "intents": [
          "contrast",
          "color contrast",
          "wcag contrast",
          "text readability",
          "low contrast",
          "contrast ratio"
        ]
      }
    },
    {
      "name": "dark-mode-check",
      "category": "frontend",
      "tier": "simple",
      "description": "Flags colors added without a dark-mode variant in projects that support a dark theme.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "frontend",
        "dark-mode",
        "tailwind",
        "css"
      ],
      "commands": [],
      "since": "2.0.0",
      "signals": {
        "files": [
          "tailwind.config.*"
        ],
        "deps": [
          "tailwindcss",
          "next-themes"
        ],
        "intents": [
          "dark mode",
          "dark theme",
          "dark: variant",
          "dark variant",
          "light and dark",
          "prefers-color-scheme"
        ]
      }
    },
    {
      "name": "component-catalog",
      "category": "frontend",
      "tier": "complex",
      "description": "/components lists your existing UI components so Claude reuses them instead of creating duplicates.",
      "version": "1.1.2",
      "keywords": [
        "claude-mods",
        "frontend",
        "components",
        "react",
        "reuse"
      ],
      "commands": [
        "/components"
      ],
      "since": "2.0.0",
      "signals": {
        "files": [
          "components/**",
          "src/components/**"
        ],
        "deps": [
          "react",
          "vue",
          "svelte",
          "@angular/core"
        ],
        "intents": [
          "existing components",
          "reuse component",
          "duplicate component",
          "component list",
          "ui components",
          "which component"
        ]
      }
    },
    {
      "name": "http-client",
      "category": "api",
      "tier": "complex",
      "description": "/http sends a request and shows the formatted response in a pane, like a tiny Postman in your terminal.",
      "version": "1.0.2",
      "keywords": [
        "claude-mods",
        "api",
        "http",
        "rest",
        "curl"
      ],
      "commands": [
        "/http"
      ],
      "since": "2.0.0",
      "signals": {
        "intents": [
          "send a request",
          "http request",
          "post request",
          "api request",
          "test an endpoint",
          "call the api"
        ]
      }
    },
    {
      "name": "openapi-sync",
      "category": "api",
      "tier": "complex",
      "description": "Warns when your API routes change but openapi.yaml doesn't.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "api",
        "openapi",
        "swagger",
        "docs"
      ],
      "commands": [],
      "since": "2.0.0",
      "signals": {
        "files": [
          "openapi.yaml",
          "openapi.yml",
          "openapi.json",
          "swagger.json",
          "swagger.yaml"
        ],
        "deps": [
          "swagger-ui-express",
          "swagger-jsdoc",
          "@nestjs/swagger",
          "fastapi",
          "drf-spectacular"
        ],
        "intents": [
          "api spec",
          "api docs",
          "api routes",
          "spec out of date",
          "update openapi",
          "rest api documentation"
        ]
      }
    },
    {
      "name": "url-allowlist",
      "category": "api",
      "tier": "simple",
      "description": "Restricts WebFetch to the domains you allow.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "api",
        "network",
        "allowlist",
        "guard"
      ],
      "commands": [
        "/allow-host"
      ],
      "since": "2.0.0",
      "signals": {
        "intents": [
          "webfetch",
          "allowlist",
          "allowed domains",
          "restrict fetch",
          "block domains",
          "which sites can claude"
        ]
      }
    },
    {
      "name": "offline-mode",
      "category": "api",
      "tier": "simple",
      "description": "/offline blocks every network call — fetches, curl, installs, git push — until you turn it back on.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "api",
        "network",
        "offline",
        "guard"
      ],
      "commands": [
        "/offline"
      ],
      "since": "2.0.0",
      "signals": {
        "intents": [
          "no network",
          "airplane mode",
          "metered connection",
          "block network",
          "disable internet",
          "senza rete"
        ]
      }
    },
    {
      "name": "mock-server",
      "category": "api",
      "tier": "complex",
      "description": "/mock starts a fake API server from your OpenAPI spec so you can build the frontend before the backend.",
      "version": "1.0.2",
      "keywords": [
        "claude-mods",
        "api",
        "openapi",
        "mock",
        "prism"
      ],
      "commands": [
        "/mock"
      ],
      "since": "2.0.0",
      "signals": {
        "files": [
          "openapi.yaml",
          "openapi.yml",
          "openapi.json",
          "swagger.json",
          "swagger.yaml"
        ],
        "deps": [
          "@stoplight/prism-cli",
          "json-server",
          "msw"
        ],
        "intents": [
          "mock server",
          "mock api",
          "fake api",
          "stub api",
          "backend not ready",
          "mock backend"
        ]
      }
    },
    {
      "name": "rate-limit-guard",
      "category": "api",
      "tier": "simple",
      "description": "Stops Claude from hammering external APIs with curl loops.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "api",
        "rate-limit",
        "curl",
        "guard"
      ],
      "commands": [],
      "since": "2.0.0",
      "signals": {
        "intents": [
          "rate limit",
          "rate limiting",
          "too many requests",
          "hammering api",
          "curl loop",
          "api throttling"
        ]
      }
    },
    {
      "name": "jwt-decode",
      "category": "api",
      "tier": "simple",
      "description": "/jwt decodes a JSON Web Token locally — header, claims, expiry — without sending it anywhere.",
      "version": "1.0.1",
      "keywords": [
        "claude-mods",
        "api",
        "jwt",
        "security",
        "decode"
      ],
      "commands": [
        "/jwt"
      ],
      "since": "2.0.0",
      "signals": {
        "deps": [
          "jsonwebtoken",
          "jose",
          "pyjwt",
          "passport-jwt",
          "jwt-decode",
          "@nestjs/jwt",
          "djangorestframework-simplejwt"
        ],
        "intents": [
          "json web token",
          "decode token",
          "token expiry",
          "jwt claims",
          "bearer token",
          "expired token"
        ]
      }
    },
    {
      "name": "status-check",
      "category": "api",
      "tier": "simple",
      "description": "/service-status checks whether GitHub, npm, PyPI or the Anthropic API are having an outage before you blame your code.",
      "version": "1.0.1",
      "keywords": [
        "claude-mods",
        "api",
        "status",
        "outage",
        "network"
      ],
      "commands": [
        "/service-status"
      ],
      "since": "2.0.0",
      "signals": {
        "intents": [
          "is github down",
          "npm down",
          "service status",
          "status page",
          "pypi down",
          "anthropic status"
        ]
      }
    },
    {
      "name": "graphql-context",
      "category": "api",
      "tier": "complex",
      "description": "Gives Claude a compact summary of your GraphQL schema when you work on queries and resolvers.",
      "version": "1.0.2",
      "keywords": [
        "claude-mods",
        "api",
        "graphql",
        "schema",
        "context"
      ],
      "commands": [
        "/gql-schema"
      ],
      "since": "2.0.0",
      "signals": {
        "files": [
          "**/*.graphql",
          "**/*.gql",
          "schema.graphql",
          "codegen.yml",
          ".graphqlrc*",
          "graphql.config.*"
        ],
        "deps": [
          "graphql",
          "@apollo/server",
          "@apollo/client",
          "graphql-yoga",
          "type-graphql",
          "strawberry-graphql",
          "graphene",
          "urql"
        ],
        "intents": [
          "resolver",
          "resolvers",
          "graphql schema",
          "graphql query",
          "graphql mutation",
          "schema graphql"
        ]
      }
    },
    {
      "name": "curl-to-code",
      "category": "api",
      "tier": "simple",
      "description": "/curl2code turns a curl command into fetch, axios, Python requests or Go code.",
      "version": "1.0.1",
      "keywords": [
        "claude-mods",
        "api",
        "curl",
        "codegen"
      ],
      "commands": [
        "/curl2code"
      ],
      "since": "2.0.0",
      "signals": {
        "intents": [
          "curl command",
          "curl to fetch",
          "convert curl",
          "curl to python",
          "curl to axios",
          "curl to go"
        ]
      }
    },
    {
      "name": "scope-lock",
      "category": "agents",
      "tier": "complex",
      "description": "/scope locks Claude to the files you name; edits outside the scope are blocked.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "agents",
        "scope",
        "guard",
        "glob"
      ],
      "commands": [
        "/scope"
      ],
      "since": "2.0.0",
      "signals": {
        "intents": [
          "only touch",
          "limit scope",
          "stay in scope",
          "restrict edits",
          "lock to folder",
          "don't touch other files"
        ]
      }
    },
    {
      "name": "second-opinion",
      "category": "agents",
      "tier": "complex",
      "description": "/second-opinion has a different model critique Claude's last answer or plan.",
      "version": "1.1.2",
      "keywords": [
        "claude-mods",
        "agents",
        "review",
        "models",
        "critique"
      ],
      "commands": [
        "/second-opinion"
      ],
      "since": "2.0.0",
      "signals": {
        "intents": [
          "second opinion",
          "another model",
          "critique",
          "challenge this",
          "devil's advocate",
          "sanity check my plan"
        ]
      }
    },
    {
      "name": "parallel-explore",
      "category": "agents",
      "tier": "complex",
      "description": "/explore sends three subagents to investigate different parts of the codebase and merges their findings.",
      "version": "1.1.3",
      "keywords": [
        "claude-mods",
        "agents",
        "subagents",
        "explore",
        "parallel"
      ],
      "commands": [
        "/explore"
      ],
      "since": "2.0.0",
      "signals": {
        "intents": [
          "explore the codebase",
          "parallel exploration",
          "understand architecture",
          "how is this implemented",
          "trace the flow",
          "research the repo"
        ]
      }
    },
    {
      "name": "subagent-cap",
      "category": "agents",
      "tier": "simple",
      "description": "Caps how many subagents can run at the same time.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "agents",
        "subagents",
        "limit"
      ],
      "commands": [],
      "since": "2.0.0",
      "signals": {
        "intents": [
          "too many agents",
          "limit subagents",
          "max agents",
          "agent concurrency",
          "rate limit agents",
          "cap parallel agents"
        ]
      }
    },
    {
      "name": "task-queue",
      "category": "agents",
      "tier": "complex",
      "description": "/queue lines up prompts that run one after another whenever Claude is free.",
      "version": "1.1.2",
      "keywords": [
        "claude-mods",
        "agents",
        "queue",
        "automation"
      ],
      "commands": [
        "/queue"
      ],
      "since": "2.0.0",
      "signals": {
        "intents": [
          "queue prompts",
          "task queue",
          "line up tasks",
          "run one after another",
          "batch of tasks",
          "coda di task"
        ]
      }
    },
    {
      "name": "night-shift",
      "category": "agents",
      "tier": "complex",
      "description": "Runs your queued tasks at a scheduled time, like overnight, and leaves you a report.",
      "version": "1.1.2",
      "keywords": [
        "claude-mods",
        "agents",
        "scheduler",
        "automation"
      ],
      "commands": [
        "/night-shift"
      ],
      "since": "2.0.0",
      "signals": {
        "intents": [
          "overnight",
          "run overnight",
          "schedule tasks",
          "night shift",
          "while i sleep",
          "scheduled run"
        ]
      }
    },
    {
      "name": "loop-breaker",
      "category": "agents",
      "tier": "simple",
      "description": "Stops Claude when it repeats the same failing command three times and suggests a different approach.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "agents",
        "loop",
        "guard"
      ],
      "commands": [],
      "since": "2.0.0",
      "signals": {
        "intents": [
          "stuck in a loop",
          "repeating the same command",
          "infinite loop",
          "keeps failing",
          "same error again",
          "going in circles"
        ]
      }
    },
    {
      "name": "self-check",
      "category": "agents",
      "tier": "complex",
      "description": "At the end of each editing turn, has the model double-check it actually did what you asked.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "agents",
        "verification",
        "quality"
      ],
      "commands": [],
      "since": "2.0.0",
      "signals": {
        "intents": [
          "verify work",
          "did it do what i asked",
          "double check work",
          "half-done",
          "incomplete work",
          "check requirements"
        ]
      }
    },
    {
      "name": "edit-limit",
      "category": "agents",
      "tier": "simple",
      "description": "Asks for confirmation when a single turn tries to modify more than N files.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "agents",
        "guard",
        "edits"
      ],
      "commands": [
        "/edit-limit"
      ],
      "since": "2.0.0",
      "signals": {
        "intents": [
          "too many files",
          "limit edits",
          "runaway refactor",
          "big refactor",
          "mass edit",
          "confirm before editing many files"
        ]
      }
    },
    {
      "name": "agent-presets",
      "category": "agents",
      "tier": "complex",
      "description": "Ready-made subagents for focused jobs: debugger, test writer, doc writer and migrator.",
      "version": "1.0.2",
      "keywords": [
        "claude-mods",
        "agents",
        "subagents",
        "presets"
      ],
      "commands": [
        "/presets"
      ],
      "since": "2.0.0",
      "signals": {
        "intents": [
          "debugger agent",
          "test writer",
          "doc writer",
          "migrator agent",
          "subagent presets",
          "delegate to agent"
        ]
      }
    },
    {
      "name": "explain-diff",
      "category": "learning",
      "tier": "complex",
      "description": "/explain-diff explains in plain words what changed in the last turn and why.",
      "version": "1.0.2",
      "keywords": [
        "claude-mods",
        "learning",
        "diff",
        "code-review"
      ],
      "commands": [
        "/explain-diff"
      ],
      "since": "2.0.0",
      "signals": {
        "intents": [
          "explain the diff",
          "explain the changes",
          "what did you change",
          "why did you change",
          "explain this change",
          "walk me through the changes"
        ]
      }
    },
    {
      "name": "quiz-me",
      "category": "learning",
      "tier": "complex",
      "description": "/quiz asks you questions about the code Claude just wrote, to check you really understand it.",
      "version": "1.0.2",
      "keywords": [
        "claude-mods",
        "learning",
        "quiz",
        "understanding"
      ],
      "commands": [
        "/quiz"
      ],
      "since": "2.0.0",
      "signals": {
        "intents": [
          "quiz me",
          "test my understanding",
          "check my understanding",
          "learn the code",
          "do i understand",
          "interrogami"
        ]
      }
    },
    {
      "name": "learning-mode",
      "category": "learning",
      "tier": "simple",
      "description": "Claude explains the why behind each change and leaves small TODOs for you to complete yourself.",
      "version": "1.0.1",
      "keywords": [
        "claude-mods",
        "learning",
        "teaching",
        "todo"
      ],
      "commands": [
        "/learning"
      ],
      "since": "2.0.0",
      "signals": {
        "intents": [
          "learning mode",
          "teach me",
          "explain why",
          "i want to learn",
          "learn by doing",
          "todo for me"
        ]
      }
    },
    {
      "name": "onboarding-tour",
      "category": "learning",
      "tier": "complex",
      "description": "/tour walks a newcomer through the repository step by step.",
      "version": "1.0.2",
      "keywords": [
        "claude-mods",
        "learning",
        "onboarding",
        "codebase"
      ],
      "commands": [
        "/tour"
      ],
      "since": "2.0.0",
      "signals": {
        "intents": [
          "onboarding",
          "tour of the repo",
          "new to this repo",
          "new team member",
          "walk me through the project",
          "project tour"
        ]
      }
    },
    {
      "name": "command-coach",
      "category": "learning",
      "tier": "simple",
      "description": "Suggests Claude Code commands and mods that fit the way you work.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "learning",
        "coach",
        "tips"
      ],
      "commands": [
        "/coach"
      ],
      "since": "2.0.0",
      "signals": {
        "intents": [
          "claude code tips",
          "slash commands",
          "best practices",
          "how to use claude code",
          "coach me",
          "command suggestions"
        ]
      }
    },
    {
      "name": "shortcut-tips",
      "category": "learning",
      "tier": "simple",
      "description": "One tip a day about Claude Code shortcuts and features you might not know.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "learning",
        "tips",
        "shortcuts"
      ],
      "commands": [
        "/tip"
      ],
      "since": "2.0.0",
      "signals": {
        "intents": [
          "keyboard shortcuts",
          "shortcuts",
          "tip of the day",
          "daily tip",
          "claude code shortcuts",
          "hidden features"
        ]
      }
    },
    {
      "name": "why-log",
      "category": "learning",
      "tier": "complex",
      "description": "Records why each file was changed; /why shows the reasoning behind any file's edits.",
      "version": "1.0.1",
      "keywords": [
        "claude-mods",
        "learning",
        "history",
        "rationale"
      ],
      "commands": [
        "/why"
      ],
      "since": "2.0.0",
      "signals": {
        "intents": [
          "why was this changed",
          "history of changes",
          "reasoning behind an edit",
          "change rationale",
          "why log",
          "perché è stato modificato"
        ]
      }
    },
    {
      "name": "cheatsheet",
      "category": "learning",
      "tier": "simple",
      "description": "/cheat shows a quick reference for git, docker, regex, tmux and more, offline.",
      "version": "1.0.1",
      "keywords": [
        "claude-mods",
        "learning",
        "cheatsheet",
        "reference"
      ],
      "commands": [
        "/cheat"
      ],
      "since": "2.0.0",
      "signals": {
        "intents": [
          "cheatsheet",
          "cheat sheet",
          "quick reference",
          "git commands",
          "docker commands",
          "comandi git"
        ]
      }
    },
    {
      "name": "pair-mode",
      "category": "learning",
      "tier": "complex",
      "description": "Claude proposes, you type: edits become diffs you apply yourself, for deliberate practice.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "learning",
        "pair-programming",
        "practice"
      ],
      "commands": [
        "/pair"
      ],
      "since": "2.0.0",
      "signals": {
        "intents": [
          "pair programming",
          "pair mode",
          "i will type",
          "show me the diff",
          "practice coding",
          "don't edit files"
        ]
      }
    },
    {
      "name": "skill-tracker",
      "category": "learning",
      "tier": "simple",
      "description": "Tracks which languages and tools you've worked with each week.",
      "version": "1.0.1",
      "keywords": [
        "claude-mods",
        "learning",
        "stats",
        "languages"
      ],
      "commands": [
        "/my-skills"
      ],
      "since": "2.0.0",
      "signals": {
        "intents": [
          "skill tracker",
          "languages worked with",
          "weekly language stats",
          "tools used this week",
          "what have i worked with",
          "tech usage"
        ]
      }
    },
    {
      "name": "license-checker",
      "category": "compliance",
      "tier": "simple",
      "description": "Warns when a dependency with a copyleft license (GPL, AGPL) lands in a permissively licensed project.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "compliance",
        "license",
        "dependencies"
      ],
      "commands": [],
      "since": "2.0.0",
      "signals": {
        "files": [
          "LICENSE",
          "LICENSE.md",
          "LICENSE.txt"
        ],
        "deps": [
          "license-checker",
          "pip-licenses"
        ],
        "intents": [
          "copyleft",
          "dependency license",
          "open source license",
          "license compatibility",
          "licenza gpl",
          "compatibilità delle licenze"
        ]
      }
    },
    {
      "name": "pii-in-logs",
      "category": "compliance",
      "tier": "simple",
      "description": "Flags log statements that print emails, passwords, tokens or other personal data.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "compliance",
        "privacy",
        "logging"
      ],
      "commands": [],
      "since": "2.0.0",
      "signals": {
        "deps": [
          "winston",
          "pino",
          "bunyan",
          "loguru",
          "structlog",
          "log4js"
        ],
        "intents": [
          "logging passwords",
          "log sensitive data",
          "personal data in logs",
          "logging email",
          "console.log password",
          "gdpr logs"
        ]
      }
    },
    {
      "name": "data-map",
      "category": "compliance",
      "tier": "complex",
      "description": "/data-map lists where your code collects, stores and sends personal data — a head start for GDPR.",
      "version": "1.0.2",
      "keywords": [
        "claude-mods",
        "compliance",
        "gdpr",
        "privacy"
      ],
      "commands": [
        "/data-map"
      ],
      "since": "2.0.0",
      "signals": {
        "intents": [
          "data map",
          "personal data",
          "privacy audit",
          "data protection",
          "data inventory",
          "where is personal data"
        ]
      }
    },
    {
      "name": "tracker-guard",
      "category": "compliance",
      "tier": "simple",
      "description": "Blocks adding analytics and tracking SDKs that haven't been approved.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "compliance",
        "privacy",
        "analytics"
      ],
      "commands": [],
      "since": "2.0.0",
      "signals": {
        "deps": [
          "react-ga4",
          "@segment/analytics-next",
          "mixpanel-browser",
          "posthog-js",
          "@amplitude/analytics-browser",
          "@vercel/analytics",
          "@sentry/browser",
          "@sentry/react"
        ],
        "intents": [
          "analytics",
          "tracking",
          "tracking sdk",
          "google analytics",
          "telemetry",
          "mixpanel"
        ]
      }
    },
    {
      "name": "no-upload",
      "category": "compliance",
      "tier": "simple",
      "description": "Blocks commands that upload files to external services like pastebins and file-sharing sites.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "compliance",
        "privacy",
        "exfiltration"
      ],
      "commands": [],
      "since": "2.0.0",
      "signals": {
        "intents": [
          "pastebin",
          "file sharing",
          "exfiltration",
          "data leak",
          "gh gist",
          "transfer.sh"
        ]
      }
    },
    {
      "name": "crypto-guard",
      "category": "compliance",
      "tier": "simple",
      "description": "Flags weak cryptography: MD5 or SHA1 for passwords, Math.random for tokens, ECB mode, hard-coded IVs.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "compliance",
        "security",
        "cryptography"
      ],
      "commands": [],
      "since": "2.0.0",
      "signals": {
        "deps": [
          "bcrypt",
          "bcryptjs",
          "argon2",
          "crypto-js",
          "cryptography",
          "pycryptodome",
          "passlib",
          "node-forge",
          "jsonwebtoken"
        ],
        "intents": [
          "cryptography",
          "encryption",
          "password hashing",
          "weak hash",
          "random token",
          "crittografia"
        ]
      }
    },
    {
      "name": "sbom",
      "category": "compliance",
      "tier": "complex",
      "description": "/sbom generates a software bill of materials with every dependency and its license.",
      "version": "1.0.2",
      "keywords": [
        "claude-mods",
        "compliance",
        "sbom",
        "licenses"
      ],
      "commands": [
        "/sbom"
      ],
      "since": "2.0.0",
      "signals": {
        "files": [
          "package-lock.json",
          "pnpm-lock.yaml",
          "yarn.lock",
          "poetry.lock",
          "uv.lock",
          "Cargo.lock",
          "Gemfile.lock",
          "go.sum",
          "requirements.txt"
        ],
        "deps": [
          "@cyclonedx/cyclonedx-npm",
          "cyclonedx-bom"
        ],
        "intents": [
          "software bill of materials",
          "bill of materials",
          "cyclonedx",
          "list dependencies",
          "dependency inventory",
          "supply chain compliance"
        ]
      }
    },
    {
      "name": "audit-trail",
      "category": "compliance",
      "tier": "simple",
      "description": "Writes every action Claude takes to an append-only JSONL audit log.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "compliance",
        "audit",
        "log"
      ],
      "commands": [
        "/audit"
      ],
      "since": "2.0.0",
      "signals": {
        "intents": [
          "audit log",
          "audit trail",
          "compliance log",
          "record everything claude does",
          "jsonl log",
          "traceability"
        ]
      }
    },
    {
      "name": "vuln-scan",
      "category": "compliance",
      "tier": "complex",
      "description": "After installs, runs npm audit or pip-audit and shows any vulnerabilities in a pane.",
      "version": "1.1.2",
      "keywords": [
        "claude-mods",
        "compliance",
        "security",
        "dependencies"
      ],
      "commands": [
        "/vulns"
      ],
      "since": "2.0.0",
      "signals": {
        "files": [
          "package-lock.json",
          "pnpm-lock.yaml",
          "yarn.lock",
          "poetry.lock",
          "uv.lock",
          "Cargo.lock",
          "Gemfile.lock",
          "go.sum",
          "requirements.txt"
        ],
        "intents": [
          "vulnerability",
          "vulnerabilities",
          "npm audit",
          "pip-audit",
          "security advisory",
          "cargo audit"
        ]
      }
    },
    {
      "name": "copyright-guard",
      "category": "compliance",
      "tier": "simple",
      "description": "Flags pasted code that carries someone else's license or copyright header.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "compliance",
        "license",
        "copyright"
      ],
      "commands": [],
      "since": "2.0.0",
      "signals": {
        "files": [
          "LICENSE",
          "LICENSE.md",
          "LICENSE.txt"
        ],
        "intents": [
          "copyright",
          "copied code",
          "pasted code license",
          "stack overflow code",
          "license header found",
          "copyright notice"
        ]
      }
    },
    {
      "name": "benchmark-compare",
      "category": "performance",
      "tier": "complex",
      "description": "/bench runs your benchmarks before and after a change and compares the numbers.",
      "version": "1.1.2",
      "keywords": [
        "claude-mods",
        "performance",
        "benchmarks",
        "regressions"
      ],
      "commands": [
        "/bench"
      ],
      "since": "2.0.0",
      "signals": {
        "files": [
          "bench/**",
          "benchmarks/**",
          "**/*.bench.*"
        ],
        "deps": [
          "benchmark",
          "tinybench",
          "mitata",
          "pytest-benchmark",
          "criterion"
        ],
        "intents": [
          "benchmark",
          "benchmarks",
          "performance regression",
          "before and after",
          "faster or slower",
          "micro-benchmark"
        ]
      }
    },
    {
      "name": "slow-test-flag",
      "category": "performance",
      "tier": "simple",
      "description": "Points out your slowest tests after each test run.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "performance",
        "tests",
        "timing"
      ],
      "commands": [
        "/slow-tests"
      ],
      "since": "2.0.0",
      "signals": {
        "deps": [
          "jest",
          "vitest",
          "mocha",
          "pytest"
        ],
        "intents": [
          "slow tests",
          "slowest tests",
          "test duration",
          "tests take too long",
          "speed up tests",
          "test performance"
        ]
      }
    },
    {
      "name": "flaky-detector",
      "category": "performance",
      "tier": "complex",
      "description": "Detects tests that pass and fail at random and keeps a list of the suspects.",
      "version": "1.1.2",
      "keywords": [
        "claude-mods",
        "performance",
        "tests",
        "flaky"
      ],
      "commands": [
        "/flaky"
      ],
      "since": "2.0.0",
      "signals": {
        "deps": [
          "jest",
          "vitest",
          "pytest",
          "rspec"
        ],
        "intents": [
          "flaky test",
          "flaky tests",
          "intermittent failure",
          "passes sometimes",
          "random test failure",
          "nondeterministic"
        ]
      }
    },
    {
      "name": "leak-hint",
      "category": "performance",
      "tier": "simple",
      "description": "Flags event listeners, intervals and subscriptions created without cleanup.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "performance",
        "memory-leak",
        "react"
      ],
      "commands": [],
      "since": "2.0.0",
      "signals": {
        "intents": [
          "memory leak",
          "event listener leak",
          "useeffect cleanup",
          "setinterval",
          "unsubscribe",
          "cleanup function"
        ]
      }
    },
    {
      "name": "outdated-deps",
      "category": "performance",
      "tier": "complex",
      "description": "/outdated shows stale dependencies and how risky each upgrade is.",
      "version": "1.0.2",
      "keywords": [
        "claude-mods",
        "performance",
        "dependencies",
        "upgrades"
      ],
      "commands": [
        "/outdated"
      ],
      "since": "2.0.0",
      "signals": {
        "files": [
          "package.json",
          "pyproject.toml",
          "requirements.txt",
          "Cargo.toml",
          "go.mod"
        ],
        "intents": [
          "outdated dependencies",
          "outdated packages",
          "upgrade dependencies",
          "update packages",
          "major upgrade",
          "npm outdated"
        ]
      }
    },
    {
      "name": "profile-run",
      "category": "performance",
      "tier": "complex",
      "description": "/profile runs a command under a profiler and shows the hottest functions.",
      "version": "1.1.2",
      "keywords": [
        "claude-mods",
        "performance",
        "profiling",
        "cpu"
      ],
      "commands": [
        "/profile"
      ],
      "since": "2.0.0",
      "signals": {
        "intents": [
          "profiler",
          "cpu profile",
          "hot functions",
          "flame graph",
          "flamegraph",
          "why is it slow"
        ]
      }
    },
    {
      "name": "net-retry",
      "category": "performance",
      "tier": "simple",
      "description": "Automatically retries commands that failed because of a temporary network error.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "performance",
        "network",
        "retry"
      ],
      "commands": [],
      "since": "2.0.0",
      "signals": {
        "intents": [
          "network error",
          "etimedout",
          "econnreset",
          "flaky network",
          "retry on failure",
          "could not resolve host"
        ]
      }
    },
    {
      "name": "disk-guard",
      "category": "performance",
      "tier": "simple",
      "description": "Warns when the disk is nearly full before builds, installs and docker pulls.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "performance",
        "disk",
        "guard"
      ],
      "commands": [],
      "since": "2.0.0",
      "signals": {
        "intents": [
          "disk space",
          "no space left on device",
          "disk full",
          "out of space",
          "low disk",
          "free space"
        ]
      }
    },
    {
      "name": "regression-guard",
      "category": "performance",
      "tier": "complex",
      "description": "Remembers which tests passed at the start of the session and warns if any of them now fail.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "performance",
        "tests",
        "regressions"
      ],
      "commands": [
        "/baseline"
      ],
      "since": "2.0.0",
      "signals": {
        "deps": [
          "jest",
          "vitest",
          "pytest"
        ],
        "intents": [
          "regression",
          "tests broke",
          "previously passing",
          "test regression",
          "broke something",
          "passing tests now fail"
        ]
      }
    },
    {
      "name": "watch-mode-guard",
      "category": "performance",
      "tier": "simple",
      "description": "Blocks watch-mode and never-ending commands run in the foreground, where they'd hang the turn.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "performance",
        "guard",
        "watch-mode"
      ],
      "commands": [],
      "since": "2.0.0",
      "signals": {
        "intents": [
          "watch mode",
          "jest --watch",
          "vitest watch",
          "hanging command",
          "never exits",
          "command hangs"
        ]
      }
    },
    {
      "name": "mod-maker",
      "category": "ecosystem",
      "tier": "complex",
      "description": "/new-mod scaffolds a new Claude Code mod with manifest, hooks, test and README, ready to fill in.",
      "version": "1.0.0",
      "keywords": [
        "claude-mods",
        "ecosystem",
        "scaffold",
        "authoring"
      ],
      "commands": [
        "/new-mod"
      ],
      "since": "2.0.0",
      "signals": {
        "intents": [
          "create a mod",
          "new mod",
          "write a mod",
          "scaffold a mod",
          "make a plugin",
          "build a mod"
        ]
      }
    },
    {
      "name": "mod-doctor",
      "category": "ecosystem",
      "tier": "complex",
      "description": "/mod-doctor checks your installed mods for outdated versions, conflicts and load errors.",
      "version": "1.1.2",
      "keywords": [
        "claude-mods",
        "ecosystem",
        "diagnostics",
        "plugins"
      ],
      "commands": [
        "/mod-doctor"
      ],
      "since": "2.0.0",
      "signals": {
        "intents": [
          "mod conflict",
          "mods broken",
          "mod not loading",
          "check mods",
          "outdated mods",
          "plugin error"
        ]
      }
    },
    {
      "name": "mod-profiles",
      "category": "ecosystem",
      "tier": "complex",
      "description": "Switch between sets of mods — work, personal, demo — with one command.",
      "version": "1.1.2",
      "keywords": [
        "claude-mods",
        "ecosystem",
        "profiles",
        "plugins"
      ],
      "commands": [
        "/profile-mods"
      ],
      "since": "2.0.0",
      "signals": {
        "intents": [
          "mod profile",
          "switch mods",
          "work profile",
          "enable mods",
          "disable mods",
          "mod set"
        ]
      }
    },
    {
      "name": "settings-sync",
      "category": "ecosystem",
      "tier": "simple",
      "description": "Exports and imports your mods' configuration so you can move it between machines.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "ecosystem",
        "settings",
        "backup"
      ],
      "commands": [
        "/mods-export",
        "/mods-import"
      ],
      "since": "2.0.0",
      "signals": {
        "intents": [
          "export settings",
          "import settings",
          "sync settings",
          "move mods to another machine",
          "backup mod config",
          "new laptop"
        ]
      }
    },
    {
      "name": "quiet-mode",
      "category": "ecosystem",
      "tier": "simple",
      "description": "/quiet silences toasts and sounds from every mod while you focus.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "ecosystem",
        "focus",
        "notifications"
      ],
      "commands": [
        "/quiet"
      ],
      "since": "2.0.0",
      "signals": {
        "intents": [
          "silence notifications",
          "do not disturb",
          "focus mode",
          "too many toasts",
          "no sounds",
          "silenzia"
        ]
      }
    },
    {
      "name": "achievements",
      "category": "ecosystem",
      "tier": "complex",
      "description": "Unlock achievements as you work: first commit, 100 green test runs, a week-long streak and more.",
      "version": "1.1.2",
      "keywords": [
        "claude-mods",
        "ecosystem",
        "gamification",
        "streaks"
      ],
      "commands": [
        "/achievements"
      ],
      "since": "2.0.0",
      "signals": {
        "intents": [
          "achievements",
          "gamification",
          "trophies",
          "progress badges",
          "traguardi",
          "obiettivi sbloccati"
        ]
      }
    },
    {
      "name": "streaks",
      "category": "ecosystem",
      "tier": "simple",
      "description": "Shows your consecutive days of coding with Claude in the status line.",
      "version": "1.0.1",
      "keywords": [
        "claude-mods",
        "ecosystem",
        "streak",
        "habit"
      ],
      "commands": [
        "/streak"
      ],
      "since": "2.0.0",
      "signals": {
        "intents": [
          "coding streak",
          "daily streak",
          "consecutive days",
          "habit tracker",
          "serie di giorni",
          "giorni consecutivi"
        ]
      }
    },
    {
      "name": "soundpack",
      "category": "ecosystem",
      "tier": "simple",
      "description": "Sound packs for Claude Code events: minimal, retro or nature.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "ecosystem",
        "sound",
        "audio"
      ],
      "commands": [
        "/soundpack"
      ],
      "since": "2.0.0",
      "signals": {
        "intents": [
          "sound pack",
          "retro sounds",
          "8-bit sounds",
          "change sounds",
          "notification sounds",
          "audio theme"
        ]
      }
    },
    {
      "name": "daily-goal",
      "category": "ecosystem",
      "tier": "complex",
      "description": "/daily-goal sets today's goal, keeps it in view above the prompt and asks at day's end if you got there.",
      "version": "1.1.1",
      "keywords": [
        "claude-mods",
        "ecosystem",
        "focus",
        "band"
      ],
      "commands": [
        "/daily-goal"
      ],
      "since": "2.0.0",
      "signals": {
        "intents": [
          "daily goal",
          "today's goal",
          "goal for today",
          "set a goal",
          "end of day",
          "obiettivo del giorno"
        ]
      }
    },
    {
      "name": "session-replay",
      "category": "ecosystem",
      "tier": "complex",
      "description": "/replay steps through the session — prompts, tool calls, edits — in a pane, like a video timeline.",
      "version": "1.0.2",
      "keywords": [
        "claude-mods",
        "ecosystem",
        "timeline",
        "pane"
      ],
      "commands": [
        "/replay"
      ],
      "since": "2.0.0",
      "signals": {
        "intents": [
          "replay session",
          "session timeline",
          "step through session",
          "export session",
          "session transcript",
          "review session"
        ]
      }
    },
    {
      "name": "mod-advisor",
      "category": "core",
      "tier": "complex",
      "description": "Recommends the right mods for your project and for what you're asking, with the commands to type, and installs them in one click.",
      "version": "1.0.2",
      "keywords": [
        "claude-mods",
        "core",
        "recommendations",
        "discovery"
      ],
      "commands": [
        "/mods-advisor"
      ],
      "since": "2.0.0",
      "signals": {
        "intents": [
          "recommend mods",
          "which mod",
          "suggest mods",
          "what mods should i",
          "mod for my project",
          "best mods for"
        ],
        "always": true
      }
    },
    {
      "name": "smart-router",
      "category": "agents",
      "tier": "complex",
      "description": "Routes every subagent to the right model for the task's difficulty, runs independent work in parallel and starts workflows when a job needs one.",
      "version": "1.0.3",
      "keywords": [
        "claude-mods",
        "agents",
        "routing",
        "subagents",
        "cost"
      ],
      "commands": [
        "/route",
        "/router"
      ],
      "since": "2.0.0",
      "signals": {
        "intents": [
          "subagent model",
          "model routing",
          "route subagents",
          "run in parallel",
          "parallel agents",
          "orchestrate agents"
        ],
        "always": true
      }
    },
    {
      "name": "whatsapp-bridge",
      "category": "notifications",
      "tier": "complex",
      "description": "Lets Claude keep you posted on WhatsApp — progress, problems, reports, questions — and lets you steer every session from your phone, through one self-hosted OpenWA number.",
      "version": "1.2.3",
      "keywords": [
        "claude-mods",
        "notifications",
        "whatsapp",
        "remote-control",
        "openwa"
      ],
      "commands": [
        "/wa"
      ],
      "since": "2.0.0",
      "signals": {
        "intents": [
          "whatsapp",
          "notify me",
          "avvisami",
          "telefono",
          "remote control",
          "update me"
        ]
      }
    },
    {
      "name": "autopilot",
      "category": "agents",
      "tier": "complex",
      "description": "Give it a goal and success criteria; it plans, delegates, verifies and retries until the criteria pass or it needs you.",
      "version": "1.0.2",
      "keywords": [
        "claude-mods",
        "agents",
        "automation",
        "verification"
      ],
      "commands": [
        "/autopilot"
      ],
      "since": "2.0.0",
      "signals": {
        "intents": [
          "autopilot",
          "pilota automatico",
          "until tests pass",
          "run unattended"
        ]
      }
    },
    {
      "name": "project-brain",
      "category": "memory",
      "tier": "complex",
      "description": "A self-organising project memory that learns which decisions, conventions and fixes matter and recalls them like a neural network.",
      "version": "1.0.3",
      "keywords": [
        "claude-mods",
        "memory",
        "knowledge-graph",
        "recall",
        "learning"
      ],
      "commands": [
        "/brain"
      ],
      "since": "2.0.0",
      "signals": {
        "intents": [
          "remember",
          "why did we",
          "convention",
          "convenzione",
          "decision"
        ]
      }
    },
    {
      "name": "context-optimizer",
      "category": "cost",
      "tier": "complex",
      "description": "Keeps the context lean automatically: trims noise, picks the right moment to compact and shows the tokens it saved.",
      "version": "1.0.2",
      "keywords": [
        "claude-mods",
        "cost",
        "context",
        "compact"
      ],
      "commands": [
        "/ctx"
      ],
      "since": "2.0.0",
      "signals": {
        "intents": [
          "contesto",
          "too long",
          "context window"
        ]
      }
    },
    {
      "name": "workflow-studio",
      "category": "agents",
      "tier": "complex",
      "description": "Build, save and share reusable workflows — release, dependency update, security audit — and run them with one command.",
      "version": "1.0.2",
      "keywords": [
        "claude-mods",
        "agents",
        "workflows",
        "automation"
      ],
      "commands": [
        "/recipe"
      ],
      "since": "2.0.0",
      "signals": {
        "intents": [
          "workflow",
          "automate",
          "automatizza",
          "pipeline",
          "release process"
        ]
      }
    },
    {
      "name": "mission-control",
      "category": "observability",
      "tier": "complex",
      "description": "One dashboard for every Claude session on your machine: what each is doing, cost, blockers, with pause and priorities.",
      "version": "1.0.2",
      "keywords": [
        "claude-mods",
        "observability",
        "sessions",
        "dashboard"
      ],
      "commands": [
        "/mission"
      ],
      "since": "2.0.0",
      "signals": {
        "intents": [
          "sessions",
          "sessioni",
          "dashboard",
          "all sessions",
          "tutte le sessioni",
          "what is running"
        ]
      }
    },
    {
      "name": "session-sync",
      "category": "agents",
      "tier": "complex",
      "description": "Coordinates sessions working on the same repo: file leases against conflicts, overlap warnings and hand-offs.",
      "version": "1.0.2",
      "keywords": [
        "claude-mods",
        "agents",
        "sessions",
        "conflicts"
      ],
      "commands": [
        "/sync",
        "/handoff-to"
      ],
      "since": "2.0.0",
      "signals": {
        "intents": [
          "conflict",
          "conflitto",
          "two sessions",
          "due sessioni",
          "parallel sessions",
          "same repo"
        ]
      }
    },
    {
      "name": "team-hub",
      "category": "team",
      "tier": "simple",
      "description": "A shared panel of team conventions, recommended mods, budgets and rules, synced through the repo.",
      "version": "1.0.2",
      "keywords": [
        "claude-mods",
        "team",
        "conventions",
        "onboarding",
        "policy"
      ],
      "commands": [
        "/team"
      ],
      "since": "2.0.0",
      "signals": {
        "intents": [
          "onboarding",
          "conventions",
          "shared rules",
          "regole comuni"
        ]
      }
    },
    {
      "name": "telegram-bridge",
      "category": "notifications",
      "tier": "simple",
      "description": "Progress, questions and remote control over a Telegram bot, through the mods-hub channel system.",
      "version": "1.0.3",
      "keywords": [
        "claude-mods",
        "notifications",
        "telegram",
        "remote-control"
      ],
      "commands": [
        "/telegram"
      ],
      "since": "2.0.0",
      "signals": {
        "intents": [
          "telegram",
          "notify me",
          "avvisami"
        ]
      }
    },
    {
      "name": "slack-bridge",
      "category": "notifications",
      "tier": "simple",
      "description": "Posts progress and reports to Slack and takes questions and commands from a channel, through the mods-hub channel system.",
      "version": "1.0.3",
      "keywords": [
        "claude-mods",
        "notifications",
        "slack",
        "team",
        "remote-control"
      ],
      "commands": [
        "/slack"
      ],
      "since": "2.0.0",
      "signals": {
        "intents": [
          "notify team",
          "canale slack"
        ]
      }
    },
    {
      "name": "discord-bridge",
      "category": "notifications",
      "tier": "simple",
      "description": "Posts progress and reports to Discord and takes questions and commands from a channel, through the mods-hub channel system.",
      "version": "1.0.3",
      "keywords": [
        "claude-mods",
        "notifications",
        "discord",
        "team",
        "remote-control"
      ],
      "commands": [
        "/discord"
      ],
      "since": "2.0.0",
      "signals": {
        "intents": [
          "server discord",
          "notify team"
        ]
      }
    },
    {
      "name": "calendar-sync",
      "category": "productivity",
      "tier": "simple",
      "description": "Reads your calendar (private iCal link) so notifications and questions respect meetings and time off, and suggests slots for long jobs.",
      "version": "1.0.2",
      "keywords": [
        "claude-mods",
        "productivity",
        "calendar",
        "ical",
        "presence"
      ],
      "commands": [
        "/calendar"
      ],
      "since": "2.0.0",
      "signals": {
        "intents": [
          "calendar",
          "calendario",
          "riunione",
          "vacation"
        ]
      }
    },
    {
      "name": "email-digest",
      "category": "team",
      "tier": "simple",
      "description": "Daily or weekly email summaries in plain language for clients and managers who don't live in chat.",
      "version": "1.0.2",
      "keywords": [
        "claude-mods",
        "team",
        "email",
        "digest",
        "report"
      ],
      "commands": [
        "/digest"
      ],
      "since": "2.0.0",
      "signals": {
        "intents": [
          "resoconto",
          "weekly summary"
        ]
      }
    },
    {
      "name": "issue-pilot",
      "category": "team",
      "tier": "complex",
      "description": "Picks up a GitHub, Jira or Linear issue, sizes it with smart-router, works it in a dedicated session and opens the PR.",
      "version": "1.0.2",
      "keywords": [
        "claude-mods",
        "team",
        "issues",
        "github",
        "jira",
        "linear"
      ],
      "commands": [
        "/issues"
      ],
      "since": "2.0.0",
      "signals": {
        "intents": [
          "github issue",
          "work on issue"
        ]
      }
    },
    {
      "name": "guardian",
      "category": "security",
      "tier": "complex",
      "description": "One security policy for every guard mod — permissive, standard or strict — plus a project safety score.",
      "version": "1.0.2",
      "keywords": [
        "claude-mods",
        "security",
        "policy",
        "guard"
      ],
      "commands": [
        "/guardian"
      ],
      "since": "2.0.0",
      "signals": {
        "intents": [
          "security",
          "sicurezza",
          "safety score",
          "strict mode"
        ]
      }
    }
  ]
}
