From authoring
Guides creation of CLI tools, automation scripts, hook handlers, and abstractions for repeated agent workflows in Claude Code projects.
How this skill is triggered — by the user, by Claude, or both
Slash command
/authoring:scripts-and-toolingThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Scripts abstract away multi-step sequences, complex computation, and ceremony that the agent would otherwise do manually each time. Only the script's *output* enters context — complex logic costs zero tokens, and the script persists across sessions and context resets.
Scripts abstract away multi-step sequences, complex computation, and ceremony that the agent would otherwise do manually each time. Only the script's output enters context — complex logic costs zero tokens, and the script persists across sessions and context resets.
| Location | Mechanism | Use Case |
|---|---|---|
bin/ on PATH | Agent calls via Bash | General-purpose CLI tools |
scripts/ | Agent calls via Bash | Project-specific automation |
hooks/ scripts | Called by hooks.json | Lifecycle handlers (guards, formatters, loggers) |
skills/*/scripts/ | Bundled with SKILL.md | Deterministic computation a skill needs |
.mcp.json + MCP servers | Claude calls as native tools | API wrappers, database access |
Self-documenting for agents — --help must be comprehensive enough that an agent never needs to look elsewhere. It's the canonical source of truth, not external docs.
Every output is a prompt — the agent's next action depends on your script's output. Design both success and failure output to guide the agent forward, not just report status.
Familiar interfaces — model your CLI after tools the agent already knows (pytest, docker, kubectl). The agent can infer behavior from convention without reading docs.
No interactive input — agents can't respond to prompts. Use flags/args/env vars instead.
Script output is the primary interface between your tool and the agent. A silent success or cryptic error is a dead end.
Success output — confirm what happened, echo IDs/paths the agent needs next, suggest next steps:
# bad
OK
# good
Created deployment deploy-a1b2c3d4 (env: staging, 3 services)
Next:
Check status: deploy status deploy-a1b2c3d4
View logs: deploy logs deploy-a1b2c3d4
Roll back: deploy rollback deploy-a1b2c3d4
Error output — three parts: what went wrong, how to fix it, what to do next:
# bad
Error: connection refused
# good
ERROR: Cannot connect to database at localhost:5432 (connection refused)
Fix: Ensure postgres is running:
brew services start postgresql
# or: docker start postgres-dev
Then retry: ./migrate --target production
Structured output — emit JSON when the agent will consume the result programmatically. Raw human-readable text is fine for notification scripts or when the agent just needs to relay information to the user.
npx claudepluginhub crouton-labs/crouton-kit --plugin authoringCreates, modifies, and orchestrates Claude Code tools like skills, agents, and scripts. Triages requests via decision tree to select optimal type by token cost and context needs.
Guides design of gateway scripts as CLI entry points for agentic coding, with patterns for direct prompts, slash commands, composed workflows, and checklists for CLI, output, and error handling.
Quick-reference for editing Claude Code skills, agents, slash commands, hooks, plugins, and configs. Triggers on YAML frontmatter, .claude/ files, Task tools, hook debugging.