Skip to content
Back to skills

Routine Report

ASecurity

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)

  • 2 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added October 2, 2026
ai-agentsgobash

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned October 2, 2026

npx -y skills add localoy-ai/localstack --skill routine-report --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Routine Report?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Routine Report
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/localoy-ai-routine-report/badge)](https://www.skillsdirectory.com/skills/localoy-ai-routine-report)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
# GENERATED from SKILL.md.tmpl — edit the .tmpl, then run scripts/build.sh.
name: routine-report
version: 0.1.0
publisher: localoy
capabilities: [files, schedule, messaging]
description: >-
  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)
author: localoy
license: MIT
platforms: [linux, macos, windows]
metadata:
  hermes:
    tags: [automation, report, routines, localstack]
    related_skills: [routine-setup]
allowed-tools:
  - Bash
  - Read
  - Write
  - AskUserQuestion
triggers:
  - what ran this week
  - routine report
  - did my automations work
  - what broke this week
  - check my routines
tags: [automation, reporting, monitoring]
---

## 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 `/site-fix` 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.

Files in this skill

  • SKILL.md5.7 KB
  • SKILL.md.tmpl3.9 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…