“Backups ran successfully for 3 weeks. Every tape was empty.”
status: process succeeded / artifact useless
Evidence, not verdicts
Output monitoring + AI investigation for scheduled jobs. Self-hosted. Calm, precise, and built for the failures heartbeat tools miss.
Exit code 0 is only the process talking. Night Watchman inspects the artifact: rows, schema, size, freshness, history, and logs.
The problem
The expensive failures are quiet. The job ran. The backup existed. The dashboard refreshed. The artifact was wrong.
“Backups ran successfully for 3 weeks. Every tape was empty.”
status: process succeeded / artifact useless
“A 0-byte dump, discovered at restore time.”
signal missed: output size
“A corrupted file auto-backed up for 2 weeks, overwriting every good copy.”
signal missed: history anomaly
How it works
Deterministic Python checks the artifact against declared expectations and history. No LLM in the detection layer.
GPT-5.6 receives a bounded evidence package and writes a dossier. Claims without source pointers are rejected.
Telegram buttons offer only bounded actions: rerun, or quarantine and rerun. Then Night Watchman re-inspects.
Not a verdict. Not a confident hallucination. A compact decision packet with sources, gaps, and bounded next actions.
suspected_area: external truncation or malformed append sources: - data/prices.csv:1 - logs/prices.log:42-57 - history.jsonl:last_7_runs not_checked: - upstream API response body human_decision: 1. quarantine_and_rerun 2. rerun_only
Demo
The demo truncates a CSV, the job continues to exit 0, and Night Watchman escalates the contradiction with evidence.
Honest limits
These constraints are intentional. Night Watchman is useful because it is narrow, inspectable, and honest about what it does not know.
Pricing
Monitoring reliability beats license enforcement. If the license server is unavailable, Night Watchman uses a cached result or safely falls back to the five-job free tier.
Install
The installer creates a local virtualenv, installs dependencies, and hands off to the setup wizard.
curl -fsSL https://raw.githubusercontent.com/ssddee-dev/code-batman/main/install.sh | bash cd ~/night-watchman .venv/bin/python -m watchman.setup
FAQ
Night Watchman monitors file-artifact cron jobs: scripts that produce CSVs, JSON, reports, dumps, logs, exports, or similar files.
No. Exit code 0 is one weak process signal. Night Watchman checks the output artifact for freshness, size, rows, schema, and history.
No. It sends evidence and bounded actions to a human operator for Telegram approval, then re-inspects after execution.
Night Watchman is free for up to 5 jobs. The early-bird license is $39 one-time for unlimited jobs through v1.x.
Learn
Definitions, comparison pages, and FAQ for search and answer engines.
The core failure mode: successful process, broken artifact.
Why process success is not output correctness.
A pattern for AI-written scripts that run unattended.
Cronitor, Healthchecks.io, and artifact validation.