Skip to content
Skills Library
AI & agents · Automation

agent-task-loop

/agent-task-loop

Works through a TASKS.md checklist one task at a time, runs the project's verify command after each task, logs progress in PROGRESS.md and stops a task that keeps failing the same way. Use when the user asks to work through a task list, a backlog or a multi-step plan unattended, or to resume such a list after an interruption.

Licence
MIT
Last repository change
27.10.2026

Assessment and security

100/ 100Class: good
Format25 / 25
Frontmatter with name and description, valid name, description up to 1,024 characters, name matching the folder.
Discoverability25 / 25
Description explains when to use the skill, has a reasonable length and uses third person.
Content35 / 35
At least 150 words and at most 500 lines, headings, step lists, examples or code.
Hygiene15 / 15
No placeholders such as TODO, no Windows paths, with a licence.
Riskno signals detected in the scan
Files in this package
5
Scripts
1
HTML comments
4
URLs in SKILL.md
0
Deprecation

No signals detected. Repository changed on 27.10.2026, without references to retired models or APIs.

Licence

MIT, open: use and modify while retaining author attribution.

What to check before installing
  • 1 scripts in this package. Review them before installing, as Claude may execute them.
  • SKILL.md zawiera komentarze HTML (4). Nie widać ich w podglądzie Markdown, a model je czyta.

Scripts: loop.py

What it does and when to use it

Works through a TASKS.md checklist one task at a time, runs the project's verify command after each task, logs progress in PROGRESS.md and stops a task that keeps failing the same way. Use when the user asks to work through a task list, a backlog or a multi-step plan unattended, or to resume such a list after an interruption.

Original author description

Works through a TASKS.md checklist one task at a time, runs the project's verify command after each task, logs progress in PROGRESS.md and stops a task that keeps failing the same way. Use when the user asks to work through a task list, a backlog or a multi-step plan unattended, or to resume such a list after an interruption.

How it works

  1. Rules (in priority order)
  2. Task list format
  3. Procedure
  4. Example
  5. Files
Original SKILL.md headings · 60 lines, 820 words
SKILL.md preview
---
name: agent-task-loop
description: Works through a TASKS.md checklist one task at a time, runs the project's verify command after each task, logs progress in PROGRESS.md and stops a task that keeps failing the same way. Use when the user asks to work through a task list, a backlog or a multi-step plan unattended, or to resume such a list after an interruption.
license: MIT
metadata:
  version: "0.3"
---

# Agent task loop

Long task lists fail in three ways: the agent declares "done" without checking, it loses track after an interruption, or it repeats a fix that already failed. This procedure prevents all three. The same method is automated by `loop.py` (see "Files" below); use this file when you work through the list yourself, inside a session.

## Rules (in priority order)

1. **Verification decides, not you.** A task is done only when its verify command exits 0 after your change. Reason: the agent's own "it should work" is the most common false "done".
2. **Never edit, delete or skip a test to make it pass.** If a test looks wrong, stop and report it. Reason: a green run obtained this way hides the bug.
3. **One task at a time, in file order.** Do not start the next task while the current one is red. Reason: mixed changes make failures impossible to attribute.
4. **Stop instead of looping.** Block the task (`- [!]`) and move on when any of these happens: the same failure appears twice in a row; you changed nothing in two attempts; three attempts failed. Reason: a fourth identical attempt almost never succeeds and burns time.
5. **Write down what happened** in PROGRESS.md after every attempt. Reason: it is the only memory that survives a restart.

If rules conflict, the lower number wins (for example rule 2 beats "finish the task").

## Task list format

```markdown
- [ ] Add the /health endpoint | verify: mvn -q test -Dtest=HealthTest
- [ ] Reject empty emails at signup | verify: python -m pytest -q tests/test_signup.py
- [x] Create the project skeleton
- [!] Migrate to Postgres 16 <!-- loop: the same verification failure happened twice in a row -->
```

- `- [ ]` to do, `- [x]` done, `- [!]` blocked (the reason goes in the `<!-- loop: ... -->` comment).
- `| verify: <command>` is the task's own check. A project-wide check (build, lint) may also be given by the user; when both exist, both must pass.
- The checks of tasks already done (`- [x]`) must stay green: run them again after each task. Do not re-run the checks of blocked tasks; they are expected to fail.
- No verify command at all: ask the user for one before starting. Do not invent "verified by reading the code".

## Procedure

1. **Resume first.** Read PROGRESS.md (last 10 lines) and TASKS.md. Continue with the first `- [ ]` task; never redo a `- [x]` task.
2. **Run the verify command(s) once before changing anything.** Already green: an earlier task did this work; mark it done and log `DONE: <task> (attempt 1, already satisfied: verify green with no change)`. Otherwise **do the task** with the smallest correct change.
3. **Run the verify command(s)** exactly as written, from the project root, then the checks of the tasks already done.
4. **Green:** change `- [ ]` to `- [x]`, append `- <date time> DONE: <task> (attempt N)` to PROGRESS.md, and commit if the project uses git (`agent-task-loop: <task>`).
5. **Red:** append `- <date time> FAILED attempt N: <task> (verify exit <code>)`. Read the end of the output, find the root cause, then retry with a different approach. Do not repeat a change that already failed.
6. **Block** when rule 4 applies: write `- [!] <task> <!-- loop: <reason> -->`, append `BLOCKED: <task> - <reason>` to PROGRESS.md, tell the user in one line, and continue with the next task.
7. **End:** append `LOOP END: <n> done, <n> blocked, <n> left` and give the user the same summary, with the blocked tasks and their reasons.

## Example

<example>
Task: "- [ ] Add VAT to invoice totals | verify: python -m pytest -q tests/test_invoice.py"
Attempt 1: totals multiplied by 1.2 → test fails "expected 120.00, got 120.0000001".
Attempt 2 (different approach, root cause = float rounding): use Decimal with 2 places → test passes.
TASKS.md: "- [x] Add VAT to invoice totals | verify: ..."; PROGRESS.md: "FAILED attempt 1 ...", "DONE: Add VAT to invoice totals (attempt 2)".
</example>

<example>
Task: "- [ ] Make slug tests pass | verify: python -m pytest -q tests/test_slug.py"
Two tests expect "hello-world" and "hello_world" for the same title: no change can satisfy both.
Do not edit either test. Block: "- [!] Make slug tests pass <!-- loop: tests contradict each other (hyphen vs underscore) -->", and tell the user which decision is needed.
</example>

## Files

- `loop.py`: runs any command-line agent through TASKS.md with the same rules, without a human (state in `.loop/`, notifications). Read its `--help` only when the user wants unattended runs.
- `templates/TASKS.md`, `templates/loop.config.json`: starting points for Java, Python and .NET projects. Read them when the user has no task list or config yet.
- `README.md`: installation, agent commands, limits and measured results. Read it when the user asks how to install or what has been tested.
Files in this package (5)
  • .gitignore 1 KB
  • LICENSE 1 KB
  • README.md 6 KB
  • SKILL.md 5 KB
  • loop.py 17 KB

Versions

The database has no other skills named agent-task-loop.

Database snapshot: 13.11.2026 · package version e6431b6c2c33 (SHA-256 digest of the entire package)

Downloads in the last 30 days: 0 · ranking

Report a problem with this skill: harmful content, incorrect descriptions or an author’s removal request.

Similar skills

  • 100tasks
    Claude Code task framework for reusable workflows. Use when user asks about "/task:run", "/task:list", "/task:new", "create a task", "global tasks", "local tasks", or needs to run structured multi-step workflows. Triggers on task-related questions or when creating reusable automation.
  • 100app-task-loop
    Implement an app task by task from doc/dev-progress.md - one task per single-line Conventional Commit, tools/check.sh (lint, tests, build, localization) must exit 0 before every commit, decisions and problems logged in doc/decisions.md, milestones reviewed with screenshots and a…
  • 100progress-panel
    Keep the Progress pane current — the pane beside every Claude Code session on this machine that shows each session's "now", what needs the user, and its tasks. Use the progress_update tool from the FIRST step of any multi-step task (now + the task list), on every status change,…
  • 100task-workflow
    This skill should be used when an AI agent needs to "add a task", "create a task", "update a task", "modify a task", "complete a task", "mark task done", "close a task", "start working on a task", "annotate a task with notes", "add context to a task", "log progress on a task",…
  • 100agent-task-checklist
    Use this skill when the user says 'track progress', 'task.md', 'keep a checklist', 'break this into steps', 'show me what is done', or when an agent executes a long multi-step task that should remain transparent and resumable. It maintains a granular, frequently updated…
  • 100st-plan-loop
    Write a numbered plan with an acceptance check for each step, critique it once in a fresh pass, revise it, then execute one step at a time. Use when a task touches more than one file, has unclear scope, or failed before because steps were missed. Invoke as /st-plan-loop.

Feedback and reports

Your message goes to Bartosz Sokoliński. An email address is needed only for a reply. See the privacy policy.