How AutoSkillit runs a recipe end to end: orchestrator, kitchen gating, clone and worktree isolation, session model, and diagnostics.
AutoSkillit is a Claude Code plugin that orchestrates automated workflows using headless sessions. It provides 52 MCP tools and 133 bundled skills, organized into a gated visibility system.
YAML pipeline definitions that describe a sequence of steps. Each step invokes an MCP tool or a skill. Recipes define the flow; skills do the work.
Markdown instruction files (SKILL.md) that define what a headless Claude session should do. Skills are registered as /autoskillit:* slash commands. Each skill runs in its own context window, so pipelines can run for hours without hitting context limits.
When you run autoskillit order, Claude Code acts as a pipeline orchestrator. It reads the recipe, collects ingredients from you, and executes steps in sequence. The orchestrator never reads or writes code itself — it delegates all work through run_skill (headless sessions) and run_cmd (shell commands).
AutoSkillit uses a three-tier tool visibility model:
- Free-range (4 tools): Always visible —
open_kitchen,close_kitchen,disable_quota_guard,reload_session - Headless tools (1 tool): Revealed in headless sessions via
mcp.enable({'headless'})—test_check - Kitchen-tagged tools (37 tools total): Gated behind
open_kitchen—run_skill,run_cmd,run_python,merge_worktree,clone_repo,push_to_remote, and 31 more. One kitchen tool (test_check) also carries theheadlesstag and is additionally pre-enabled in headless sessions.
When you call open_kitchen (automatically done by order), all 37 kitchen-tagged tools become
available for that session. This keeps normal Claude Code sessions clean — no pipeline tools
cluttering the tool list.
Functional category subsets (github, ci, clone, telemetry) can be disabled in config;
those tools remain hidden even after open_kitchen.
See MCP Tool Access Control for the complete tool map.
All pipeline work happens in a cloned copy of your repository:
clone_repocreates a full clone at../autoskillit-runs/<run>-<timestamp>/- Your working tree and uncommitted changes are never touched
- The clone's
originremote is rewritten to prevent Claude Code from confusing the clone with your real project - After the pipeline, you choose whether to keep or delete the clone
Within the clone, implementation happens in git worktrees:
implement-worktree-no-mergecreates a worktree branched from the feature branch- Code changes are committed phase by phase inside the worktree
merge_worktreerebases the worktree onto the target branch, runs tests, and merges- The worktree is cleaned up after a successful merge
AutoSkillit supports four session modes with different tool and skill visibility:
-
$ claude(plugin, no kitchen): Regular Claude Code session with the AutoSkillit plugin loaded. Sees 4 Free Range MCP tools (open_kitchen,close_kitchen,disable_quota_guard,reload_session) and Tier 1 skills only (open-kitchen,close-kitchen). After calling/open-kitchen, all 37 kitchen-tagged MCP tools become available. -
$ autoskillit cook: Interactive development session. Sees all three skill tiers (Tier 1+2+3) via an ephemeral session directory. MCP tools are initially ungated (same as$ claude);/open-kitchenreveals kitchen tools. -
$ autoskillit order: Pipeline orchestrator session. Kitchen is pre-opened at startup — all 52 MCP tools are available immediately. All skill tiers are accessible. The orchestrator delegates work throughrun_skill(headless sessions) andrun_cmd(shell commands). -
run_skill(headless): Worker sessions launched by the orchestrator. Sees 4 Free Range tools +test_check(headless-tagged). Cannot callrun_skill,run_cmd, orrun_python— enforced by hooks and code guards. Has access to all native Claude Code tools (Read, Write, Bash, etc.) and all skill tiers via--add-dir skills_extended/.
This prevents recursive session nesting and keeps the orchestrator as a pure routing engine. See Skill Visibility for the full tier breakdown and configuration.
See Hooks for the complete safety system: protected branches, quota management, format validation, and session boundary enforcement.
Pipeline sessions are logged to ~/.local/share/autoskillit/logs/ (Linux) or ~/Library/Application Support/autoskillit/logs/ (macOS). Each session records token usage, timing, and process traces.
Query the index: jq 'select(.success == false)' ~/.local/share/autoskillit/logs/sessions.jsonl
See Session Diagnostics for details.