Human Itl¶
Bucket: Engineering ·
Slash command: /zsl:human-itl ·
Source: skills/engineering/human-itl/SKILL.md
User-invocable only
This skill is marked disable-model-invocation: true — Claude won't auto-trigger it, so you must invoke it explicitly with the slash command above.
What it does¶
Walk a human through the manual-action [HITL] sub-tasks of a parent (PRD) issue — the steps a coding agent physically cannot perform — recording each as an audit trail and marking them done so the dependent [AFK] slices unblock, then hand back to /tdd-parallel. Use when /tdd-parallel skipped HITL slices, when the user wants to clear manual steps before a fanout, or when the user invokes /human-itl directly.
/tdd-parallel fans out only the [AFK] slices of a PRD — the ones an
agent can run unattended. The [HITL] slices it skips need a human's
hands or authority. This skill is the serial, human-present counterpart:
it walks you through each manual-action slice, records what you did, and
marks it done so the [AFK] slices that were Blocked by it unblock.
It does not write code or run red-green-refactor — that's /tdd. A
[HITL] slice is a manual action, not a unit of TDD work.
What counts as HITL¶
A legitimate [HITL] slice requires a manual action a coding agent
physically cannot perform:
- Clicking through a third-party console (DNS registrar, cloud dashboard).
- Rotating or issuing a real credential / secret / certificate.
- Obtaining external sign-off (legal, security, a stakeholder).
- Running a one-off production migration or cut-over by hand.
It is not an architectural decision or a design review. Those must be
resolved upstream via /grill-with-docs and recorded as ADRs before
issues are cut, so slices fall out maximally AFK — see /to-issues.
Hard refuse decision slices. If a slice is really a decision in
disguise (Decide auth provider, Pick the cache strategy), do not
walk the user through it. Flag it as a process leak and stop on that
slice: tell the user to resolve it with /grill-with-docs + an ADR, then
relabel it and its dependents [AFK] and re-run the fanout. Continue with
the remaining genuine [HITL] slices.
If a "HITL" slice turns out to be implementable code, it's mislabeled —
say so and tell the user it belongs in the AFK fanout ([AFK]).
Usage¶
/zsl:human-itl <parent-issue> # clear all HITL slices of a PRD
/zsl:human-itl <hitl-issue> # clear one HITL slice
/zsl:human-itl # no arg → picker of open HITL slices
Process¶
1. Pre-flight¶
docs/agents/issue-tracker.mdexists (run/setup-zsl-superpowersif not).docs/agents/triage-labels.mdexists.- Resolve the input. A parent issue → its sub-issues. A single issue →
just that one. No argument → fetch open
[HITL]issues carrying the configuredready-for-agentlabel and present a numbered picker. - Refuse a container issue (one with open sub-issues that is itself
titled
[HITL]) the same way the other skills do.
2. Discover the slices¶
Using docs/agents/issue-tracker.md conventions, fetch the parent's
sub-issues. Keep only those that are:
- Open
- Title starts with
[HITL] - Carry the configured
ready-for-agentlabel - Not a container
Parse each slice's ## Blocked by section. A [HITL] slice may itself be
blocked by an [AFK] slice that a prior fanout already merged — process
slices in dependency order, skipping any whose blockers aren't satisfied
yet (report them as "still blocked").
3. Walk the slices¶
Show the user the buckets first — To clear (numbered), Still blocked (issue + unmet blockers), Refused — decision slice (issue + why) — and confirm before starting.
Then, for each slice in dependency order:
- Present the slice: title, the
## What to buildaction, and the## Acceptance criteria("Done when") checklist. - Pause. The user performs the manual action out of band.
- Ask the user for a one-line confirmation note (what they did; any
id/link/ticket as evidence). Post it as a comment on the issue per
docs/agents/issue-tracker.md— this is the audit trail. - If the action embodies a decision worth keeping (a chosen provider, a
negotiated limit), write or update an ADR — lazily, like
/grill-with-docs. Don't batch; capture it now. - Mark the issue done per the tracker convention (close it /
git mvintoissues/_done/for local-markdown). This is what unblocks the dependent[AFK]slices.
4. Finish¶
Print a summary: slices cleared (issue + note), slices still blocked, slices refused as decision leaks. Then stop with the explicit next step — do not chain:
Cleared N HITL slices. Run
/tdd-parallel <parent>to fan out the now-unblocked AFK work.
Not in scope¶
- Writing code or running red-green-refactor — that's
/tdd. - Resolving decisions — that's
/grill-with-docs+ an ADR, upstream. - Invoking
/tdd-parallelfor the user — this skill ends with the hint.