{
  "metadata": {
    "description": "Claude Code plugins by wow-look-at-my-code",
    "pluginRoot": "./plugins",
    "version": "1107"
  },
  "name": "wow-cc-marketplace",
  "owner": {
    "name": "wow-look-at-my-code"
  },
  "plugins": [
    {
      "author": {
        "name": "mhaynie"
      },
      "description": "Keeps CLAUDE.md and @-imported snippets inside the character budget every request pays for. Reports oversized files at session start, names a file the moment a session writes one -- through any tool, Bash included -- and refuses to end a turn that left one broken",
      "hooks": {
        "PostToolUse": [
          {
            "hooks": [
              {
                "command": "${CLAUDE_PLUGIN_ROOT}/build/claude-md-budget",
                "type": "command"
              }
            ],
            "matcher": "Bash|Write|Edit|MultiEdit|NotebookEdit"
          }
        ],
        "SessionStart": [
          {
            "hooks": [
              {
                "command": "${CLAUDE_PLUGIN_ROOT}/build/claude-md-budget",
                "type": "command"
              }
            ]
          }
        ],
        "Stop": [
          {
            "hooks": [
              {
                "command": "${CLAUDE_PLUGIN_ROOT}/build/claude-md-budget",
                "type": "command"
              }
            ]
          }
        ]
      },
      "keywords": [
        "claude-md",
        "context",
        "budget",
        "instructions",
        "hook",
        "enforcement",
        "stop"
      ],
      "name": "claude-md-budget",
      "source": {
        "ref": "claude-md-budget#1107",
        "source": "url",
        "url": "https://github.com/wow-look-at-my/cc-marketplace.git"
      },
      "version": "1107"
    },
    {
      "author": {
        "name": "mhaynie"
      },
      "category": "development",
      "description": "Parses Bash commands with shfmt's syntax tree: denies heredocs and any perl invocation, strips 2\u003e/dev/null everywhere plus trailing | head / | tail / | grep / || true / 2\u003e\u00261 from the final statement only, rewrites a final trailing \u003e file into | tee file, caps every sleep at 3 seconds, removes constant narration echo/printf entirely by rewriting it to the no-op : (seeing through command/builtin/backslash/quoting wrappers while keeping real printf formatting), ensures set -o pipefail, and never emits a rewrite that lost a statement",
      "hooks": {
        "PreToolUse": [
          {
            "hooks": [
              {
                "command": "${CLAUDE_PLUGIN_ROOT}/hook.sh",
                "type": "command"
              }
            ],
            "matcher": "Bash"
          }
        ]
      },
      "keywords": [
        "bash",
        "cleanup",
        "rewrite",
        "hook",
        "stderr",
        "devnull",
        "shfmt",
        "ast",
        "tee",
        "pipefail",
        "sleep",
        "echo",
        "printf",
        "perl",
        "narration"
      ],
      "name": "cleanup-bash-cmds",
      "source": {
        "ref": "cleanup-bash-cmds#1107",
        "source": "url",
        "url": "https://github.com/wow-look-at-my/cc-marketplace.git"
      },
      "version": "1107"
    },
    {
      "author": {
        "name": "wow-look-at-my-code"
      },
      "category": "development",
      "description": "Language server that flags identical CSS declaration blocks as diagnostics while you edit, so a rule copied under a new selector gets hoisted into the cascade instead of shipped",
      "keywords": [
        "css",
        "cascade",
        "duplication",
        "stylesheet",
        "refactor",
        "lsp",
        "diagnostics"
      ],
      "name": "css-duplication",
      "source": {
        "ref": "css-duplication#1107",
        "source": "url",
        "url": "https://github.com/wow-look-at-my/cc-marketplace.git"
      },
      "version": "1107"
    },
    {
      "author": {
        "name": "mhaynie"
      },
      "description": "Detects permission-seeking patterns in assistant messages and blocks the stop with a lecture about autonomy",
      "hooks": {
        "Stop": [
          {
            "hooks": [
              {
                "command": "${CLAUDE_PLUGIN_ROOT}/build/detect-permission-seeking",
                "type": "command"
              }
            ]
          }
        ]
      },
      "keywords": [
        "stop",
        "permission",
        "autonomy",
        "behavior",
        "hook"
      ],
      "name": "detect-permission-seeking",
      "source": {
        "ref": "detect-permission-seeking#1107",
        "source": "url",
        "url": "https://github.com/wow-look-at-my/cc-marketplace.git"
      },
      "version": "1107"
    },
    {
      "author": {
        "name": "wow-look-at-my-code"
      },
      "category": "development",
      "description": "Corrective reference notes the model loads before touching things it reliably gets wrong from stale training data",
      "keywords": [
        "docs",
        "reference",
        "dockerfile",
        "docker-compose",
        "docker-images",
        "skills"
      ],
      "name": "docs",
      "source": {
        "ref": "docs#1107",
        "source": "url",
        "url": "https://github.com/wow-look-at-my/cc-marketplace.git"
      },
      "version": "1107"
    },
    {
      "author": {
        "name": "mhaynie"
      },
      "description": "Auto-approve readonly git and gh commands using JSON-driven rules",
      "hooks": {
        "PermissionRequest": [
          {
            "hooks": [
              {
                "command": "${CLAUDE_PLUGIN_ROOT}/build/enhanced-auto-allow",
                "type": "command"
              }
            ],
            "matcher": "*"
          }
        ],
        "PreToolUse": [
          {
            "hooks": [
              {
                "command": "${CLAUDE_PLUGIN_ROOT}/build/enhanced-auto-allow",
                "type": "command"
              }
            ],
            "matcher": "*"
          }
        ]
      },
      "keywords": [
        "git",
        "github",
        "auto-allow",
        "permissions"
      ],
      "name": "enhanced-auto-allow",
      "source": {
        "ref": "enhanced-auto-allow#1107",
        "source": "url",
        "url": "https://github.com/wow-look-at-my/cc-marketplace.git"
      },
      "version": "1107"
    },
    {
      "author": {
        "name": "mhaynie"
      },
      "category": "development",
      "description": "Enforces the task list at both ends: a PreToolUse gate refuses every non-task tool until work the user just assigned is filed, and a Stop hook refuses to end the turn while any task is still pending or in progress. Reminders about the task list are demonstrably ignored; these are refusals",
      "hooks": {
        "PreToolUse": [
          {
            "hooks": [
              {
                "command": "${CLAUDE_PLUGIN_ROOT}/build/finish-your-todos",
                "timeout": 10,
                "type": "command"
              }
            ],
            "matcher": "*"
          }
        ],
        "Stop": [
          {
            "hooks": [
              {
                "command": "${CLAUDE_PLUGIN_ROOT}/build/finish-your-todos",
                "type": "command"
              }
            ]
          }
        ],
        "UserPromptSubmit": [
          {
            "hooks": [
              {
                "command": "${CLAUDE_PLUGIN_ROOT}/build/finish-your-todos",
                "timeout": 10,
                "type": "command"
              }
            ]
          }
        ]
      },
      "keywords": [
        "stop",
        "todo",
        "todowrite",
        "tasks",
        "taskcreate",
        "autonomy",
        "hook",
        "enforcement"
      ],
      "name": "finish-your-todos",
      "source": {
        "ref": "finish-your-todos#1107",
        "source": "url",
        "url": "https://github.com/wow-look-at-my/cc-marketplace.git"
      },
      "version": "1107"
    },
    {
      "author": {
        "name": "mhaynie"
      },
      "description": "When the user's message contains a question mark, blocks every tool call except read-only lookups (Read/Grep/Glob) until the assistant answers in plain text; a message that interrupts a running turn also makes the assistant resume the interrupted work instead of stopping after its reply",
      "hooks": {
        "PreToolUse": [
          {
            "hooks": [
              {
                "command": "${CLAUDE_PLUGIN_ROOT}/build/focus-please",
                "type": "command"
              }
            ],
            "matcher": "*"
          }
        ],
        "Stop": [
          {
            "hooks": [
              {
                "command": "${CLAUDE_PLUGIN_ROOT}/build/focus-please",
                "type": "command"
              }
            ]
          }
        ],
        "UserPromptSubmit": [
          {
            "hooks": [
              {
                "command": "${CLAUDE_PLUGIN_ROOT}/build/focus-please",
                "type": "command"
              }
            ]
          }
        ]
      },
      "keywords": [
        "focus",
        "question",
        "attention",
        "block",
        "tools",
        "hook",
        "userpromptsubmit",
        "pretooluse",
        "stop",
        "interrupt",
        "resume"
      ],
      "name": "focus-please",
      "source": {
        "ref": "focus-please#1107",
        "source": "url",
        "url": "https://github.com/wow-look-at-my/cc-marketplace.git"
      },
      "version": "1107"
    },
    {
      "author": {
        "name": "wow-look-at-my-code"
      },
      "category": "development",
      "description": "Restores the builtin Glob tool that Claude Code removed in 2.1.117: ripgrep-backed file pattern matching with byte-for-byte 2.1.116 behavior",
      "keywords": [
        "glob",
        "search",
        "files",
        "ripgrep",
        "mcp",
        "builtin"
      ],
      "mcpServers": "./.mcp.json",
      "name": "glob",
      "source": {
        "ref": "glob#1107",
        "source": "url",
        "url": "https://github.com/wow-look-at-my/cc-marketplace.git"
      },
      "version": "1107"
    },
    {
      "author": {
        "name": "wow-look-at-my-code"
      },
      "category": "development",
      "description": "Restores the builtin Grep tool that Claude Code removed in 2.1.117: ripgrep-backed content search mirroring 2.1.116 behavior, with a clearer output-mode set",
      "keywords": [
        "grep",
        "search",
        "content",
        "regex",
        "ripgrep",
        "mcp",
        "builtin"
      ],
      "mcpServers": "./.mcp.json",
      "name": "grep",
      "source": {
        "ref": "grep#1107",
        "source": "url",
        "url": "https://github.com/wow-look-at-my/cc-marketplace.git"
      },
      "version": "1107"
    },
    {
      "author": {
        "name": "wow-look-at-my-code"
      },
      "category": "development",
      "description": "Create organized, well-structured HTML demo pages with separate CSS and JS files",
      "keywords": [
        "html",
        "demo",
        "frontend",
        "prototype"
      ],
      "name": "html-demo",
      "source": {
        "ref": "html-demo#1107",
        "source": "url",
        "url": "https://github.com/wow-look-at-my/cc-marketplace.git"
      },
      "version": "1107"
    },
    {
      "author": {
        "name": "wow-look-at-my-code"
      },
      "category": "development",
      "description": "MCP server wrapping jq for JSON filtering, querying, and transforming without Bash permission prompts",
      "keywords": [
        "jq",
        "json",
        "filter",
        "query",
        "mcp"
      ],
      "mcpServers": "./.mcp.json",
      "name": "jq",
      "source": {
        "ref": "jq#1107",
        "source": "url",
        "url": "https://github.com/wow-look-at-my/cc-marketplace.git"
      },
      "version": "1107"
    },
    {
      "author": {
        "name": "mhaynie"
      },
      "category": "development",
      "description": "Refuses to end a turn whose closing message names a pull request number, a commit SHA, a branch, or a GitHub URL without a markdown link to it. Strips the message's markdown links and reports what is left, so a link given earlier earns no credit",
      "hooks": {
        "Stop": [
          {
            "hooks": [
              {
                "command": "${CLAUDE_PLUGIN_ROOT}/build/link-all-refs",
                "type": "command"
              }
            ]
          }
        ]
      },
      "keywords": [
        "link",
        "markdown",
        "pull-request",
        "commit",
        "sha",
        "branch",
        "url",
        "stop",
        "hook",
        "enforcement"
      ],
      "name": "link-all-refs",
      "source": {
        "ref": "link-all-refs#1107",
        "source": "url",
        "url": "https://github.com/wow-look-at-my/cc-marketplace.git"
      },
      "version": "1107"
    },
    {
      "author": {
        "name": "wow-look-at-my-code"
      },
      "description": "Assorted standalone skills with no theme in common, kept here instead of each getting its own plugin",
      "keywords": [
        "skills",
        "misc",
        "review",
        "refactor",
        "audit"
      ],
      "name": "misc-skills",
      "source": {
        "ref": "misc-skills#1107",
        "source": "url",
        "url": "https://github.com/wow-look-at-my/cc-marketplace.git"
      },
      "version": "1107"
    },
    {
      "author": {
        "name": "mhaynie"
      },
      "description": "Blocks the Write tool from overwriting existing files - forces use of Edit instead",
      "hooks": {
        "PreToolUse": [
          {
            "hooks": [
              {
                "command": "${CLAUDE_PLUGIN_ROOT}/hook.sh",
                "type": "command"
              }
            ],
            "matcher": "Write"
          }
        ]
      },
      "keywords": [
        "write",
        "edit",
        "overwrite",
        "guard",
        "hook"
      ],
      "name": "no-overwrites",
      "source": {
        "ref": "no-overwrites#1107",
        "source": "url",
        "url": "https://github.com/wow-look-at-my/cc-marketplace.git"
      },
      "version": "1107"
    },
    {
      "author": {
        "name": "mhaynie"
      },
      "description": "Refuses any Bash command that would destroy content existing only in the working tree - reset --hard, checkout/switch onto a dirty tree, clean, restore, stash drop/clear, force push, and rm/mv/tee/truncate/\u003e aimed at a modified or untracked file - after reading the repository's real state rather than trusting the command's shape",
      "hooks": {
        "PreToolUse": [
          {
            "hooks": [
              {
                "command": "${CLAUDE_PLUGIN_ROOT}/build/no-work-loss",
                "type": "command"
              }
            ],
            "matcher": "Bash"
          }
        ]
      },
      "keywords": [
        "git",
        "guard",
        "hook",
        "pretooluse",
        "uncommitted",
        "worktree",
        "reset",
        "checkout",
        "clean",
        "stash",
        "force-push",
        "data-loss"
      ],
      "name": "no-work-loss",
      "source": {
        "ref": "no-work-loss#1107",
        "source": "url",
        "url": "https://github.com/wow-look-at-my/cc-marketplace.git"
      },
      "version": "1107"
    },
    {
      "author": {
        "name": "mhaynie"
      },
      "description": "Fetch text content from URLs referenced with @https://... in prompts",
      "hooks": {
        "UserPromptSubmit": [
          {
            "hooks": [
              {
                "command": "${CLAUDE_PLUGIN_ROOT}/build/prompt-url-fetch",
                "type": "command"
              }
            ]
          }
        ]
      },
      "keywords": [
        "fetch",
        "url",
        "text",
        "content"
      ],
      "name": "prompt-url-fetch",
      "source": {
        "ref": "prompt-url-fetch#1107",
        "source": "url",
        "url": "https://github.com/wow-look-at-my/cc-marketplace.git"
      },
      "version": "1107"
    },
    {
      "author": {
        "name": "mhaynie"
      },
      "description": "Blocks direct go build/test commands - use go-toolchain instead",
      "hooks": {
        "PreToolUse": [
          {
            "hooks": [
              {
                "command": "${CLAUDE_PLUGIN_ROOT}/build/recommend-go-toolchain",
                "type": "command"
              }
            ],
            "matcher": "Bash"
          }
        ]
      },
      "keywords": [
        "go",
        "build",
        "test",
        "toolchain",
        "hook"
      ],
      "name": "recommend-go-toolchain",
      "source": {
        "ref": "recommend-go-toolchain#1107",
        "source": "url",
        "url": "https://github.com/wow-look-at-my/cc-marketplace.git"
      },
      "version": "1107"
    },
    {
      "author": {
        "name": "mhaynie"
      },
      "category": "development",
      "description": "Suggests the repository that already solves the job. Matches each prompt against an index built from the GitHub API -- names, topics, and each repository's own description -- and injects the link and description of each relevant one, at most once per session.",
      "hooks": {
        "UserPromptSubmit": [
          {
            "hooks": [
              {
                "command": "${CLAUDE_PLUGIN_ROOT}/build/repo-index",
                "type": "command"
              }
            ]
          }
        ]
      },
      "keywords": [
        "repo",
        "index",
        "discovery",
        "suggest",
        "hook",
        "userpromptsubmit",
        "context"
      ],
      "name": "repo-index",
      "source": {
        "ref": "repo-index#1107",
        "source": "url",
        "url": "https://github.com/wow-look-at-my/cc-marketplace.git"
      },
      "version": "1107"
    }
  ]
}