npx claudepluginhub george-popescu/bee-dev --plugin beeThis skill uses the workspace's default tool permissions.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Compares coding agents like Claude Code and Aider on custom YAML-defined codebase tasks using git worktrees, measuring pass rate, cost, time, and consistency.
These standards apply when the project stack is claude-code-plugin. All agents and implementations must follow these conventions. This stack governs the development of Claude Code plugins -- collections of commands, agents, skills, hooks, and scripts that extend the Claude Code CLI.
A Claude Code plugin is a directory-based package with a well-defined structure. The plugin manifest at .claude-plugin/plugin.json declares metadata (name, version, description, author, repository). The functional components are organized into five categories:
commands/*.md): User-facing slash commands. Each file defines one command. Commands orchestrate workflows by spawning agents, reading state files, and coordinating multi-step pipelines. Commands are the conductors -- they make decisions, interact with the user, and delegate work to agents.agents/*.md): Specialized workers spawned by commands via the Task tool. Each agent has a single responsibility (research, implement, review, fix). Agents receive context packets from the conductor and return structured output. Some agents are read-only (reviewers, detectors) and some are write-capable (implementer, fixer).skills/**/*.md): Knowledge documents loaded into agent context via the skills: frontmatter list. Skills define conventions, patterns, and standards. They are organized into core/, standards/, stacks/, context7/, and review/ directories.hooks/hooks.json): Event-driven automation. Hooks fire on lifecycle events (SessionStart, SubagentStart, SubagentStop, PreToolUse, PostToolUse, Stop, PreCompact, SessionEnd). Each hook entry has a matcher (regex pattern matching agent names or tool names) and an array of hook actions (command scripts or prompt injections).scripts/*.sh, scripts/*.js): Shell and Node.js scripts invoked by hooks or commands. Scripts handle tasks that need filesystem access, JSON processing, or external tool integration (linting, memory injection, statusline updates).State is tracked on disk in the .bee/ directory within the user's project:
STATE.md -- current spec, phase progress, decisions log, last actionTASKS.md -- per-phase execution contract with tasks, waves, acceptance criteria, research notes, agent notesconfig.json -- project configuration (stacks, linter, test runner, CI, review settings)memory/ -- per-agent persistent knowledge filesPROJECT.md -- auto-generated codebase indexCommands are Markdown files in commands/ with YAML frontmatter and prose instructions.
description: -- one-line summary of what the command does (required)argument-hint: -- usage hint shown in autocomplete, e.g. "[phase-number]" or "[--loop]" (optional)/bee:commit.--- rule) capture rationale for the conductor but are not displayed to the user.Agents are Markdown files in agents/ with YAML frontmatter and structured instructions.
name: -- agent identifier, kebab-case (required)description: -- one-line summary (required)tools: -- comma-separated list of tools the agent can use (required)color: -- terminal color for the agent's output (required)model: -- always inherit (the conductor overrides at spawn time) (required)skills: -- YAML block sequence of skill names to load (required)Read-only agents (bug-detector, pattern-reviewer, stack-reviewer, plan-compliance-reviewer, finding-validator, integrity-auditor, test-auditor, plan-reviewer, project-reviewer) only have Read, Glob, Grep and optionally MCP tools. They analyze code but never create or modify files. Their output is structured findings in a defined format.
Write-capable agents (implementer, fixer, researcher, spec-writer, phase-planner, spec-shaper, test-planner) have Read, Write, Edit, Bash, Grep, Glob and produce file changes or state updates.
.bee/memory/{agent-name}.md.skills: list uses YAML block sequence format with each skill on its own line prefixed by -.Skills are Markdown files in skills/ subdirectories with YAML frontmatter. They provide domain knowledge to agents.
name: -- skill identifier, kebab-case (required)description: -- one-line summary (required)core/SKILL.md -- workflow rules, file format references, TDD mandate, agent memory systemcore/templates/ -- Markdown and JSON templates for state files, reports, task listsstandards/global/SKILL.md -- universal coding standards (naming, DRY, KISS, error handling, git)standards/testing/SKILL.md -- TDD standards, test naming, mocking strategy, gap analysisstandards/backend/SKILL.md -- backend-specific standardsstandards/frontend/SKILL.md -- frontend-specific standardsstacks/{stack-name}/SKILL.md -- framework-specific conventions for each supported stackcontext7/SKILL.md -- Context7 MCP usage patterns and library ID lookup tablereview/SKILL.md -- review pipeline knowledge for review agentsskills/stacks/{stack-name}/SKILL.md and adding the stack identifier to the init command's detection table.git commit or git add automatically. The user controls commits exclusively via /bee:commit.hooks/hooks.json (so inject-memory.sh fires for it) and the case statement in scripts/inject-memory.sh (so it receives memory context).skills/stacks/{stack}/SKILL.md). Agents read the stack skill at runtime based on config.json. This keeps agents stack-agnostic and reusable.description: and argument-hint:. Agents use name:, description:, tools:, color:, model:, skills:. Skills use name:, description:.assert(condition, name) function, a pass/fail counter, and process.exit(failed > 0 ? 1 : 0).--- at the bottom of commands). These notes explain why the pipeline works the way it does without cluttering the user-facing instructions.model: "sonnet". Code-writing and deep reasoning work inherits the parent model. This balances cost and quality.agents/, the matcher regex in the SubagentStart hook entry must be updated to include the new agent name. If omitted, inject-memory.sh will not fire and the agent will not receive project memory.needs: field points to Wave N tasks. If research notes reference a file that a dependency task is expected to create but the dependency failed, the implementer will encounter missing files.scripts/tests/ and are plain Node.js scripts. Placing them elsewhere (e.g., a __tests__/ directory) means the existing test patterns will not find them.exit 0 at the end of hook scripts. SubagentStart hooks must always exit 0 -- a non-zero exit code blocks subagent creation. Even when a script has nothing to output, it must exit cleanly.case statement in inject-memory.sh AND the SubagentStart matcher in hooks.json when adding a new agent. Both must be updated; updating only one leaves the agent partially registered.skills: frontmatter list.bug-detector.md, inject-memory.sh, execute-phase.md, project-config.json. Exceptions: SKILL.md (convention for skill entry points), STATE.md, TASKS.md, REVIEW.md, PROJECT.md (all-caps state files).skills: list in agent frontmatter. Each skill is on its own indented line prefixed with - :
skills:
- core
- testing
- context7
model: inherit -- the conductor decides the model at spawn time based on work complexity. Never hardcode a specific model in agent frontmatter.${CLAUDE_PLUGIN_ROOT} for plugin-relative paths. Never hardcode absolute paths to plugin files in hooks.json..md extension for tracking files (STATE.md, TASKS.md, REVIEW.md), lowercase kebab-case for config (config.json, false-positives.md).This stack does not use external framework libraries that require Context7 documentation lookups. The Claude Code plugin is a self-contained system of Markdown files, shell scripts, and Node.js scripts.
If Context7 is enabled in the project config, it can be used for:
nodejs/node -- for fs, path, child_process, and other built-in module usage in hook scriptsSince the plugin primarily consists of Markdown prose and simple scripts, Context7 lookups are rarely needed. Prefer reading existing plugin files as pattern references over querying external documentation.