BC loop-builder
Use this when the user wants you to BUILD a self-running agent loop — take a recurring chore and turn it into something that fires on its own (a schedule or event), does the work, checks the result against an OBJECTIVE pass/fail gate, records state to disk, and repeats until a real stopping condition — so it keeps working after they stop prompting. The tell is a judged outcome plus a trigger, not just a timer. Trigger on: "build me a loop / set up a loop", "automate this whole flow so it just runs every few hours", "turn my weekly/standup chore into something self-running", "keep fixing/triaging X and re-running until it's green, then stop", "check Y for me unattended", "every morning read yesterday's failures and write them up", "add the checker half that grades what my bot produces", or any background/recurring task they want to hand off. Covers CI triage, PR review/merge-checking, digests, lint/build loops, dependency bumps, doc refresh. Delivers the whole system — trigger, state file, procedure skill, hard-stop gate, command allowlist, supervised rollout. Skip for: one-off tasks done now, writing literal loop code (a Python while/for-loop or an infinite-render bug), and plain scheduling with no work-or-gate (a vercel.json cron, a GitHub Actions YAML).
Use this when the user wants you to BUILD a self-running agent loop — take a recurring chore and turn it into something that fires on its own (a schedule or…
As a process C 62/100 · Has gaps — weak spots: inputs and preconditions, consistency, running it twice
How to improve
- Shorten the description to 1024 characters.
- Your own cases (evals/evals.json, 4–6 real requests with expected answers): the full check would then run those instead of a model-drafted suite.
- A spec.yaml with trigger phrases and assertions — a behaviour contract for CI; `skilltest init` writes a template.
Guard findings · 0
✓ No critical or high findings
Files scanned: 2. Evidence is masked. Grey chips explain why severity was lowered.
Against the Agent Skills spec
- error
description-longdescription is 1276 chars, limit 1024
Process rating: all ten parameters 62/100
- 0Inputs and preconditions. Does not say what the process needs to start
- 30Running it twice. 13 mutating operations with no state check
- 40Consistency. Frontmatter name (loop-builder) differs from the folder (loop-creator)
- 55Failures and branches. 1 branches
- 60Tools and files. Uses tools (bash, web, git, node) that frontmatter does not declare
- 60Result and completion. Output format stated, no completion criterion
- 85Steps. 31 steps, 1 vague phrases
- 100When it triggers. States when to use and when not to
- 100Execution cost. Instruction body is 2393 tokens
- 100Progress reporting. Reports progress
- low The response is described with custom markup (4 tags): a typed call is more reliable
Everything here is measured from the skill text rather than judged by a model, so the numbers are checkable. A parameter weighs more when it is a more common reason for the process to stall.
Quality signals
- +4Description does not say when NOT to use the skill (false activations)
- +3Description length 1275: 120–800 characters recommended
- +4No input/output examples
- +1No license
- +2Single-language instructions
- +5Description quotes 7 example trigger phrases
- +4Structure: 12 headings
- +3Step-by-step instructions: 31 items
- +3Output format is stated explicitly
Quality base 70; lint remarks subtract, signals add up to 100. Result: 60.