Opus finding
Status page leaks no secrets — but instruction relies on LLM discipline only
- skills/heartbeat/SKILL.md:128-130
Sensitive data exclusion is enforced only by a natural-language rule directed at the LLM running the skill. Since `last_error` text from cron-state.json is included in the rendered status page (per P0 and skill table), and `last_error` is populated by arbitrary skill failures, a skill whose error message embeds an API key, request URL with token, or stack trace fragment would be published verbatim on a public page. There's no scrubber.
Recommendation
Either (a) explicitly forbid rendering `last_error` on the public page (keep it only in private logs), or (b) add a sanitizer that strips URLs/tokens/long hex strings from error signatures before they hit docs/status.md.