Reporting Progress
SkillCloud & infraThis skill teaches your AI to keep you informed while it works on tasks that take more than a few minutes. Instead of going silent, it shares useful progress updates and knows what a legitimate pause or blocker report looks like. It applies to long runs like migrations, sweeps, automations, and deploys.
Available today. Use it from your connected AI after setup.
No other account needed.
After adding it, your AI applies this guidance during any run over a few minutes and at the moments it would otherwise go quiet or stop to check in. You can also ask how a task is going at any point and get a useful answer.
Then ask your AI: use the Reporting Progress skill
What your AI can do with it
- Share useful progress updates while long work is still running
- Stay communicative during migrations, sweeps, automations, and deploys
- Answer a how's-it-going question with a meaningful status
- Report a blocker at the right moment instead of stopping unnecessarily
- Recognize when a mid-task stop is actually warranted
What this skill tells your AI
The instructions your AI receives, as published by builderio/agent-native in .agents/skills/reporting-progress/SKILL.md and read by ahel’s review.
Measured on 2026-08-12, "had to chase status on a long-running run" was the single most frequent correction in this repo — 86 in two weeks, more than false-done and collisions combined. Every one of them is the user asking a question the agent could have answered before being asked.
A turn ends in exactly one of two shapes
Done, with the artifact that proves it — a command's output, a sha, a URL,
a screenshot file. verifying-changes says which artifact per area. A sentence
describing a check you would run is not an artifact.
Blocked, on one line:
BLOCKED: <what is stopping you> — unblock: <one thing the user can do in under a minute>
Anything else is a stall. "I'm looking into it", "let me know how you want to proceed", and a status paragraph with no ask are all stalls.
Exhaust this before writing BLOCKED
In the measured cases, every single "blocked" was a step the agent could have taken:
- Run it locally instead of waiting on a deploy or CI.
- Drive the user's logged-in Chrome instead of asking them to click.
- Read production directly — the DB URLs are in the template
.envfiles. - Spawn a cheap subagent for the part you think you lack context for.
- Pick the reversible option and say which one you picked.
A missing credential, a genuinely destructive action, and a decision only the user can make are blockers. Nothing else on this list is.
While it runs
Post a delta, not a heartbeat. "Tick 14, still running" is noise; the user reads it as nothing happening — which, in the measured cases, it usually was.
- Every milestone, and at least every ~15 minutes: what changed since the last note, and the number that moved (rows copied, files swept, checks green).
- If the number has not moved in two consecutive notes, that is not a progress note — that is a stall. Say what is stuck and change the approach.
- If the user has to ask "still going?", that is a miss.
Never message another agent's thread to report your own progress, and never tell peer threads to pause. Their work is not yours to stop.
Signals
- GitHub stars
- 5k
- Forks
- 448
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
reporting-progress- Source
- github.com/builderio/agent-native