From sapling
Discover and answer Sapling work items that are paused waiting for user input. Triggers on /sapling:human.
How this skill is triggered — by the user, by Claude, or both
Slash command
/sapling:humanThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Surface Sapling work items in the `awaiting_input` state and let the user answer them in-session. Answering flips the item back to `pending` so the runner re-claims it on the next tick.
Surface Sapling work items in the awaiting_input state and let the user answer them in-session. Answering flips the item back to pending so the runner re-claims it on the next tick.
This skill is the pull-based half of the human-in-the-loop flow. The runner-spawned planning agent transitions a stuck item to awaiting_input and exits; the user discovers it whenever they run this command. There is no proactive notification — pair with /loop if you want periodic check-ins.
/sapling:human — list every awaiting_input item with a one-line summary
/sapling:human <id> — show one item's pending questions and prompt for answers
mcp__sapling__list_work({ status: 'awaiting_input' }).Nothing waiting on you. and stop.pending_questions artifact via mcp__sapling__list_artifacts({ work_item_id: <id>, kind: 'pending_questions' }) (sort by id descending, take the first). If none exists for some reason, render the row with (no questions artifact found) so the user can spot the inconsistency.id — work item id (use #<n> form; this output never crosses into GitHub).app/title — <app_name>: <title> (or just <title> if no app).plan — plan #<plan_id> if set, blank otherwise.age — humanized time since the artifact's created_at (e.g. 12m, 3h, 2d).summary — first non-empty line of body_markdown, trimmed to 80 chars; if the body has more than one numbered question, append (+N more).Run /sapling:human <id> to answer.<id> arg — answer one itemmcp__sapling__get_work({ id }). If status is not awaiting_input, halt and tell the user: "Work # is <status>, not awaiting_input. Nothing to answer."plan_id is set, call mcp__sapling__get_plan({ id: plan_id }) and show the plan's title and status (one line) so the user has context.pending_questions artifact for the item (list_artifacts filtered by work_item_id and kind, take the most recent by id) and call mcp__sapling__get_artifact for its full body. Print the body verbatim in a fenced markdown block.mcp__sapling__provide_human_input({ work_id: <id>, answers_markdown: <user's reply> }).pending. The runner will pick it up on the next tick (or run /sapling:work to handle it now)."/loop 30m /sapling:human.pending_questions artifact by the agent that paused the item. If the questions seem wrong or stale, use /sapling:queue work <id> retry to re-queue the item for a fresh planning pass, or cancel it.#<n> form here is fine because this skill's output never crosses into GitHub — it's chat output and the answers_markdown body lives in a Sapling artifact. If you copy any of this into a PR, rewrite as Sapling work N.npx claudepluginhub cfarvidson/sapling --plugin saplingGuides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.