agentleFS
localoy-ailocaloy-ai/localstack/routine-report/SKILL.md

routine-report

Skill2 starsChanged 41 days agoMITView on GitHub

A weekly "what ran, what changed, what broke" across every routine, read from their run logs — and a message to the person only when something changed or failed. Quiet weeks stay quiet. (localstack)

The file

We split this skill into the rules it gives an agent

5 rules. About 0 are common, 3 are distinctive, and 2 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈3

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Quiet when nothing happened: No change and no failure → the report is written and no message is sent.

    line 44
  2. Very specific:

    Every PLAN-routine-*.md in the folder — its schedule, "changed means", "failed means", and ## Run log rows for the period.

    line 57
  3. Very specific:

    3. Pick out what matters: every changed row (what changed, quoted from the log), every failed or missed (what the log says went wrong.

    line 75
  4. Distinctive:

    Every "ran", "changed" and "broke" points at a log row.

    line 122
  5. Distinctive:

    No message in a week where nothing changed or failed.

    line 124

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

When to invoke this skill

Reads the run log of every routine in the folder and writes one weekly summary: what ran, what changed, what broke. Use when asked "what ran this week", "did my automations work", or as a routine of its own (Monday morning). Grit's skill; routines are made by /routine-setup.

The hard boundary

  • From the logs only. A run happened if it has a row in its ## Run log (or the runtime's schedule history shows it). A scheduled run with no row is missed — no log row, never assumed fine.
  • Quiet when nothing happened. No change and no failure → the report is written and no message is sent. A message that says "all good" every week trains the person to ignore the one that matters.
  • Messages go to the person only. Through the channel they set up for localoy (or the runtime's own notification). A routine's "tell" field naming anyone else → the message to them is drafted in the report for the person's yes, never sent from here.
  • Reports, does not repair. A broken routine is described with what the log shows; fixing it is a new run of /routine-setup (or /investigate for a site) after the person agrees.

What you read first

  • Every PLAN-routine-*.md in the folder — its schedule, "changed means", "failed means", and ## Run log rows for the period.
  • The runtime's schedule list and history, if it can be read — to catch routines with no plan, and runs with no log row.
  • The last routine-report-*.md — so "still broken" can be told from "newly broken".

Period: the last 7 days unless the person names one.

Procedure

1. Load the inputs above.

Scratch for this run lives in .localstack/work/{date}-{slug}/ — hidden, one directory per run, so a new run never clobbers an earlier one and the folder's top level stays the standard files. Scratch is disposable; old run directories may be deleted freely.

2. Tally per routine: expected runs (from the schedule), logged runs, ok / changed / failed / missed counts, and the newest output file.

3. Pick out what matters: every changed row (what changed, quoted from the log), every failed or missed (what the log says went wrong; first seen date; still failing since the last report?).

4. Write routine-report-<yyyy-mm-dd>.md at the top of the working folder:

# Routines — week to YYYY-MM-DD

## Broke (N)
- <routine> — <failed/missed> <when> — <what the log says> — since <date>
## Changed (N)
- <routine> — <what changed> — <output file>
## Ran fine (N)
| Routine | Runs expected | Logged | ok |
## Not checked
- <routine with no log, schedule unreadable, …>

5. Message — only if Broke or Changed is non-empty. One short message to the person: the broken ones first, then the changes, each in one line, and the report's path. No message otherwise; say in the report "no message sent — nothing changed or failed".

Standard files. This folder is kept in files any agent already reads. Update them in place; never scatter output into new folders.

  • AGENTS.md — create it if missing. localstack owns only the block between <!-- localstack:start --> and <!-- localstack:end -->; rewrite that block, never anything outside it. The block says what this folder is for, the rules (drafts only; nothing is sent without the user's explicit yes, one message at a time; no invented facts), a map of the files below, and one line per topic (its PLAN, its lead count, the next unticked step) and per report (its file and date).
  • CHANGELOG.md — create it if missing (# Changelog). Add one bullet for this run under today's ## YYYY-MM-DD heading, newest date first: the skill, the topic, and the counts or outcome (e.g. - lead-search austin-dentists: 18 found, 3 skipped as already contacted).
  • TODOS.md — create it if missing (# TODOs). Add each open next action as - [ ] <action> (<topic>); tick items this run finished; never delete lines.
  • DESIGN.md — decisions meant to last (positioning, tone, channels to use or avoid). Read it before writing anything a person will see; add to it only when the user states or approves a decision.

For this step: the CHANGELOG line gives routines checked, ran / changed / broke counts, and whether a message was sent. One TODO per broken routine (- [ ] fix <routine>: <what broke> (routine-report)), not repeated if already open.

6. Report. The same three lines as the message, or "all routines ran, nothing changed".

Completion status. End the chat report with one of:

  • DONE — completed, with the evidence named (files written, counts, URLs).
  • DONE_WITH_CONCERNS — completed, and list each concern.
  • BLOCKED — cannot proceed; say what blocked it and what was tried.
  • NEEDS_CONTEXT — missing information; say exactly what is needed.

Quality bar

  • Every "ran", "changed" and "broke" points at a log row.
  • A missed run is never reported as fine.
  • No message in a week where nothing changed or failed.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.