workloop-audit
Read-only health check of Workloop runs. Counts what each run's records show about its reviews, rework and delivery, and flags what the workflow's rules expect but the records contradict. Use at a run
SKILL.mdskills/workloop-audit/SKILL.md
GitHubWorkloop audit
Workloop's rules are partly enforced by its script and partly followed by agents. This skill reads the records a run leaves — state.json, events.jsonl, reviews, messages, reports and Git — and reports facts, so whether a rule held is checked rather than remembered. It never writes to a run, a repository or the requirement ledger, and the workflow runs the same without it.
AUDIT below means node <this skill's directory>/scripts/audit.mjs. It needs the paseo-workloop skill beside it, whose parsers it uses to read reports exactly as the gates do. Runs live under $WORKLOOP_ROOT (default ~/.workloop).
One run: at retro
The retro skill starts a run's assessment with AUDIT run <project>/<feature>. It prints:
- Counts: tickets, reviews, rework rounds, rounds past the cap, final review rounds, waivers by kind, failed and conflicting integrations, retries, takeovers, how long the integration checks took, and the ledger's sync state when the project keeps a ledger.
- Every blocking finding of every re-review, by where it lands:
carried— the previous review blocked on the same ID: the fix fell short.in-change— it names a line the change since the previous review touched: the fix broke something nearby, which the re-review method allows.late— it names tracked code the change left alone. A re-review may block there only on a failing command; otherwise it went beyond its method.outside-repo— it names only files outside the repository, such as run-directory evidence, so where it lands cannot be checked.unplaced/unverifiable— its location names no file, or a commit is gone.out— outside the review boundary: a suggestion, which gates nothing.
- Flags. A
checkflag is a contradiction to explain: alatefinding, a rework report without its## Findingssection, a retro skipped despite signals, a ledger that missed async, a run directory still over 200 MB after archive, or ascratch/that archive did not delete. Aninfoflag is context: a finding blocked again, a new finding where the previous round already blocked, rounds past the cap, an override, the orchestrator reworking a candidate itself.
Answer each check flag in the retro with its cause or why it was expected. A flag is a question, not a verdict: open the report it names before concluding.
Across runs: when the user asks
When the user asks how the workflow is doing, run the check in a session that did not orchestrate the runs it judges — a separate agent, so no orchestrator grades its own work.
AUDIT allfor the counts across runs, the change since the last saved check, and everycheckflag. Add--project <name>to narrow it.- Verify before concluding. Read the reports behind each
checkflag and a sample of each category. Alatefinding may be a failing command the method allows. Acarriedfinding from a review written before IDs were unique may be a different finding under a reused ID: compare the two rows. Say how many you checked and how many held. - Write the result for the user: what the counts show against the last check and against
$WORKLOOP_ROOT/.workloop-audit/baseline.mdif it exists, which rules held and which did not, and suggested changes with their evidence. Suggestions are the user's to decide; change nothing. - When the user accepts the result,
AUDIT all --savekeeps it as the point the next check compares against.
AUDIT run prints a reminder once three or more runs have finished since the last saved check. Retro passes it to the user; it is a suggestion, not a schedule.
Limits
- Where a finding lands is read from its
Locationcell. A vague location isunplaced, and a finding about run-directory evidence isoutside-repo; neither is guessed. - IDs identify a finding across rounds only in reviews whose brief asked for unique IDs. Older
carriedcounts include reused IDs, and the output says how many. - A rework report's
## Findingssection shows the method was reported, not how well it was followed. Judge that from the report and the next review.