From hotl
Executes implementation plans linearly task-by-task from workflow files, handles git branch/worktree preflight excluding HOTL artifacts, verifies steps, pauses every 3 tasks for human review.
npx claudepluginhub yimwoo/hotl-plugin --plugin hotlThis skill uses the workspace's default tool permissions.
Execute the plan task by task. Pause after every 3 tasks for human review.
Compares coding agents like Claude Code and Aider on custom YAML-defined codebase tasks using git worktrees, measuring pass rate, cost, time, and consistency.
Designs and optimizes AI agent action spaces, tool definitions, observation formats, error recovery, and context for higher task completion rates.
Designs, implements, and audits WCAG 2.2 AA accessible UIs for Web (ARIA/HTML5), iOS (SwiftUI traits), and Android (Compose semantics). Audits code for compliance gaps.
Execute the plan task by task. Pause after every 3 tasks for human review.
Resolve which workflow file to execute:
hotl-workflow*.md in project root:
docs/plans/*.md as fallbackAfter resolving the workflow file, run this preflight before executing any steps:
1. Is this a git repo with at least one commit?
- No → log "Skipping branch setup (no git history)" → proceed to step execution
- Yes → continue
2. Check for uncommitted changes
- First, exclude HOTL-owned transient artifacts from the dirty check:
• hotl-workflow-*.md (workflow plan files)
• docs/plans/*-design.md, docs/plans/*-plan.md (design/plan docs from brainstorming)
• .hotl/ (runtime state, reports, cache)
- If only HOTL artifacts are dirty → treat as clean, continue
- If non-HOTL dirty files exist:
• If dirty_worktree: allow in workflow frontmatter → proceed without prompting
• Otherwise → HARD-FAIL. Tell the user which non-HOTL files are dirty. Offer choices:
a. Clean up manually, then re-run
b. Stash manually, then re-run
c. Explicitly approve HOTL to stash and continue
- Clean → continue
3. Determine branch name
- If branch: field exists in workflow frontmatter → use it
- Otherwise → derive hotl/<slug> from hotl-workflow-<slug>.md
4. Check if branch already exists locally
- Exists, same HEAD → ask: reuse, delete+recreate, or abort
- Exists, different HEAD → ask: delete+recreate, or abort
- Does not exist → create (no prompt)
5. Create branch/worktree
- If worktree: true in frontmatter → create git worktree with the branch
- Otherwise → create branch and checkout in current directory
Rules:
scripts/document-lint.sh) automatically on the workflow file before any git mutation or step execution. If lint fails, STOP and show all errors. If lint passes, continue silently.The verify field supports 4 types. A scalar string is shorthand for type: shell. If verify is a list, ALL checks must pass.
hotl-rt step N verify returns a human review required: ... block reason and pauses the run; show the prompt, wait for approval, then persist it with hotl-rt gate N approved|rejected --mode human (never auto-approve)matches-glob, path must be the directory and value must be a filename glob only; values like src/* are invalid and should be authored as path: srcAll state persistence is handled by the hotl-rt shared runtime (runtime/hotl-rt). This executor calls hotl-rt for all state transitions:
hotl-rt init <workflow-file> — at run starthotl-rt step N start — before each stephotl-rt step N verify — after each step's actionhotl-rt step N retry / hotl-rt step N block --reason "..." — on failurehotl-rt gate N approved|rejected — at gate stepshotl-rt finalize --json — at run completionThe runtime owns .hotl/state/<run-id>.json and .hotl/reports/<run-id>.md. Agents do not manage these files directly. Runtime calls happen before the corresponding chat or progress UI update.
Use the same HOTL runtime and script path resolution order defined in skills/loop-execution/SKILL.md. Do not assume runtime/ or scripts/ exist in the user's project checkout.
To resume an interrupted executing-plans run, use the host tool's native resume entry point.
$hotl:resuming on the workflow file/hotl:resume <workflow-file>hotl-rt init <workflow-file> to initialize state and reporthotl-rt step N start before each stephotl-rt step N verify to run typed verificationhuman review required: ..., pause and do not continue until hotl-rt gate N approved|rejected --mode human succeedshotl-rt step N retry or hotl-rt step N block --reason "..."hotl-rt gate N approved|rejectedhotl:verification-before-completion, then hotl-rt finalize --json, render the final summary via scripts/render-execution-summary.shRecord git rev-parse HEAD as the review base before starting each batch.
After all steps in the batch have passed verification:
requesting-code-review to dispatch the code-reviewer agent
receiving-code-review
A final review is required unless the most recent review already covers all current changes and no code changed afterward.
requesting-code-review with review type: final
receiving-code-reviewReview happens after step verification, before verification-before-completion, before hotl-rt finalize.
Use this over loop-execution when you want explicit human checkpoints at every stage rather than auto-approve.
Execution report output must conform to docs/contracts/execution-report-output.md. This is the canonical reporting contract from skills/loop-execution/SKILL.md. Live step visibility follows the same rules as skills/loop-execution/SKILL.md — per-step chat logs on all platforms, deterministic renderer for final summary.