loop-execution
Use when executing an existing HOTL workflow file — reads steps, loops until success criteria met, auto-approves low-risk gates, pauses at high-risk gates.
Skill by yimwoo
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/yimwoo-loop-execution
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: productivity
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/loop-execution
What's inside
- Skill name
loop-execution- Description
- Use when executing an existing HOTL workflow file — reads steps, loops until success criteria met, auto-approves low-risk gates, pauses at high-risk gates.
- License
- MIT
- Instructions
- 402 lines in SKILL.md · view on GitHub
Agent Skills spec issues
- files: referenced but missing: scripts/document-lint.sh, scripts/finalize-codex-summary.sh, scripts/show-codex-current-step.sh
Files (1)
- SKILL.md
SKILL.md (first lines)
# HOTL Loop Execution
## Overview
Execute an existing HOTL workflow file autonomously. Canonical workflows live at `docs/plans/YYYY-MM-DD-<slug>-workflow.md`, with legacy root `hotl-workflow-<slug>.md` still accepted during migration. Loop on steps with success criteria. Auto-approve low-risk gates. Always pause for high-risk gates.
`governed-execution` is the preferred new router for host-native or fallback runs. This skill remains the canonical autonomous state machine and a supported explicit compatibility profile. When invoked through the router, use the selected driver for lifecycle calls and require a sufficient evidence receipt before completion.
**Announce:** "Starting HOTL loop execution. Looking for workflow file..."
## Workflow File Resolution
Resolve which workflow file to execute:
1. If the user specified a filename → use that file
2. Else, glob for canonical workflows in `docs/plans/*-workflow.md`:
- **One match** → use it automatically
- **Multiple matches** → if one is clearly the newest revision for the same semantic slug, prefer it; otherwise list them and ask the user to pick
3. If no canonical matches, glob for legacy `hotl-workflow*.md` in project root:
- **One match** → use it automatically
- **Multiple matches** → list them and ask the user to pick
4. **No matches** → see "What to Do If No Workflow Found" below
### Interrupted Run Detection
After resolving the workflow file, locate interrupted runs **before** Branch/Worktree Preflight. Use `scripts/hotl-locate-run.sh --workflow <workflow-file>` when available. This helper scans the current checkout, linked git worktrees, and HOTL's default `.hotl-worktrees/<repo>/` directory, so it can find state created inside an isolated execution worktree even when the new session starts from the authoring checkout.
If the helper is unavailable, manually scan these locations for `.hotl/state/*.json` and match `workflow_path` or `source_workflow_path` against the resolved workflow:
1. Current checkout
2. `git worktree list --porcelain` roots for the repo
3. `$(dirname <repo-root>)/.hotl-worktrees/$(basename <repo-root>)/*`
- **One interrupted run found** → ask: "Found an interrupted run (step N/M). Resume from step N, or start fresh?"
- **Multiple interrupted runs found** → list all with run_id, step progress, branch, age. Ask which to resume or start fresh. **Never silently choose.**
- **No interrupted runs** → proceed normally (new run)
If the user chooses resume, do not run Branch/Worktree Preflight again. Load the matched sidecar, change into its recorded `execution_root`, and follow `skills/resuming/SKILL.md` with the original `run_id`.
## Branch/Worktree Preflight
After 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:
• docs/plans/*-workflow.md (canonical workflow files)
• hotl-workflow-*.md (legacy workflow files)
• docs/designs/*.md (canonical design docs from brainstorming)
• docs/plans/*-design.md, docs/plans/*-plan.md (legacy design 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 the workflow filename
• Canonical: strip `YYYY-MM-DD-` prefix and `-workflow.md` suffix from `docs/plans/YYYY-MM-DD-<slug>-workflow.md`
• Legacy: strip `hotl-workflow-` prefix and `.md` suffix from `hotl-workflow-<slug>.md`
4. Capture authoring origin
- Record the current branch name (if any) and current `HEAD` commit as the workflow's authoring origin
- If the current branch is neither `main` nor `master`, and the workflow frontmatter does not already set `branch:` or `worktree:`, PAUSE and ask:
a. Continue on the current branch in this checkout
→ set `branch: <current-branch>` and `worktree: false`
b. Use HOTL's isolated execution branch/worktree (recommended)
→ leave `worktree: true` and let HOTL derive `hotl/<slug>` unless the user wants a custom branch name
c. Use a custom execution branch
→ set `branch: <user-branch>` and keep worktree isolation unless the user explicitly opts out
- Explain clearly: the authoring checkout and the execution checkout can differ. HOTL can execute in a separate worktree while leaving the current checkout untouched
5. Determine isolation mode
- If `worktree: host` in frontmatter → stay on the current checkout's current feature branch exactly as provided by the host tool; reject `main` and `master`
- If `worktree: false` in frontmatter → stay in the current checkout and use a dedicated branch there
- If the current checkout is already a named linked git worktree, and the workflow frontmatter does not set `branch:` or `worktree:`, use host mode automatically to avoid stacking another worktree
- Otherwise → use an isolated git worktree by default
6. Check if the target branch/worktree already exists locally
- Current helper behavior: existing branch/worktree collisions are a hard stop, not an interactive reuse/recreate flow
- If the helper reports an existing branch/worktree conflict, stop and ask the user whether to reuse manually, delete+recreate manually, or abort
- Does not exist → create (no prompt)
7. Resolve the execution root with `scripts/hotl-prepare-execution-root.sh <workflow-file> --executor-mode <mode>`
- The helper returns JSON with: `branch`, `repo_root`, `execution_root`, `workflow_path`, `source_workflow_path`, `source_branch`, `source_head`, `worktree_path`
- By default it creates a linked git worktree for the branch, copies the current workflow into that worktree, and returns that worktree as `execution_root`
- If `worktree: false` in frontmatter → create/switch to the dedicated branch in the current checkout and return the repo root as `execution_root`
- If `worktree: host` in frontmatter → keep the current branch and return the current checkout as `execution_root`; if `branch:` is set, it must match the current branch
- If `branch:` matches the currently checked-out branch while worktree isolation is still enabled, the helper must STOP with a clear message telling the user to set `worktree: false` or `worktree: host` for same-branch continuity
8. Change into `execution_root`
- Every later git command, runtime call, Codex helper call, and review command for this run MUST execute from that directory
```
**Rules:**
- No auto-stash. Hidden state mutation weakens governance.
- Existing branch/worktree collisions do not currently auto-prompt; treat them as a stop-and-ask condition until interactive reuse/recreate is implemented.
- Non-git repos skip entirely — HOTL works without git ceremony.
- Run HOTL structural lint (`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.
## HOTL Execution State Machine
This is the canonical HOTL execution state machine. Other execution modes (e.g., subagent-execution) reference this spec and define only their differences.
```
1. Resolve workflow file (see above)
2. Parse frontmatter: intent, risk_level, auto_approve, branch, worktree
3. Run Branch/Worktree Preflight (see above)
4. Capture preflight metadata and change into `execution_root`
5. Initialize and claim the run via runtime:
- Run: `hotl-rt init <workflow-file> --require-owner --executor-mode loop --repo-root <repo-root> --execution-root <execution-root> --source-workflow-path <source-workflow-path> --source-branch <source-branch|null> --source-head <source-head|null> --worktree-path <worktree-path|null> --branch <branch>`
- This parses the workflow, creates .hotl/state/<run-id>.json with all steps, and initializes .hotl/reports/<run-id>.mdFrom yimwoo/hotl-plugin, MIT.
More from yimwoo/hotl-plugin
- 0.559score
skill-authoring
yimwoo
Use when creating, editing, or reviewing HOTL skills, agents, command prompts, or other behavior-shaping instruction files.
SkillCFreshness: C★ 27Claude Code +9 - 0.559score
receiving-code-review
yimwoo
Use when review findings arrive — verify each claim against the codebase and HOTL contracts before making changes.
SkillCFreshness: C★ 27Claude Code +9 - 0.558score
dispatch-agents
yimwoo
Use when you have 2+ independent tasks with no shared state — dispatches parallel subagents for each task.
SkillCFreshness: C★ 27Claude Code +9 - 0.556score
pr-reviewing
yimwoo
Review a PR across multiple dimensions — description, code changes, code scan, unit tests — using parallel subagents.
SkillCFreshness: C★ 27Claude Code +9 - 0.556score
requesting-code-review
yimwoo
Use at executor review checkpoints to dispatch the code-reviewer agent with structured context — git range, workflow contracts, and verification evidence.
SkillCFreshness: C★ 27Claude Code +9 - 0.556score
subagent-execution
yimwoo
Delegated step runner over the HOTL execution state machine — delegates eligible steps to fresh subagents while the controller keeps governance, verification…
SkillCFreshness: C★ 27Claude Code +9 - 0.556score
verification-before-completion
yimwoo
Use before claiming any work is complete, fixed, or passing — runs verification commands and confirms output before making success claims.
SkillCFreshness: C★ 27Claude Code +9 - 0.556score
finishing-a-development-branch
yimwoo
Use after execution is complete or intentionally stopped — decide whether to merge back, publish a PR branch, keep the execution checkout, or discard it, and…
SkillCFreshness: C★ 27Claude Code +9 - 0.554score
governed-execution
yimwoo
Use when executing an accepted HOTL workflow through the best available host or fallback driver.
SkillCFreshness: C★ 27Claude Code +9 - 0.554score
executing-plans
yimwoo
Use when executing an implementation plan linearly with explicit human checkpoints between batches of tasks.
SkillCFreshness: C★ 27Claude Code +9 - 0.553score
code-review
yimwoo
Use after completing implementation steps and before merging — reviews against plan and HOTL contracts.
SkillCFreshness: C★ 27Claude Code +9 - 0.553score
tdd
yimwoo
Use before writing any implementation code — enforces RED-GREEN-REFACTOR cycle.
SkillCFreshness: C★ 27Claude Code +9
Signals
- Stars
- 27
- Forks
- 3
- Open issues
- 1
- Last commit (this folder)
- Jul 6, 2026 (3 months ago)
- Last release
- Jul 2, 2026 (3 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/yimwoo/hotl-plugin
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from yimwoo
- 0.559score
receiving-code-review
yimwoo
Use when review findings arrive — verify each claim against the codebase and HOTL contracts before making changes.
SkillCFreshness: C★ 27Claude Code +9 - 0.559score
skill-authoring
yimwoo
Use when creating, editing, or reviewing HOTL skills, agents, command prompts, or other behavior-shaping instruction files.
SkillCFreshness: C★ 27Claude Code +9 - 0.558score
dispatch-agents
yimwoo
Use when you have 2+ independent tasks with no shared state — dispatches parallel subagents for each task.
SkillCFreshness: C★ 27Claude Code +9 - 0.556score
pr-reviewing
yimwoo
Review a PR across multiple dimensions — description, code changes, code scan, unit tests — using parallel subagents.
SkillCFreshness: C★ 27Claude Code +9 - 0.556score
finishing-a-development-branch
yimwoo
Use after execution is complete or intentionally stopped — decide whether to merge back, publish a PR branch, keep the execution checkout, or discard it, and…
SkillCFreshness: C★ 27Claude Code +9 - 0.556score
requesting-code-review
yimwoo
Use at executor review checkpoints to dispatch the code-reviewer agent with structured context — git range, workflow contracts, and verification evidence.
SkillCFreshness: C★ 27Claude Code +9
Cite this page
loop-execution skill. Agent Mart. https://agentmart.dev/skills/yimwoo-loop-execution (last updated 2026-10-24)