verify-stack
Skill2 starsChanged 23 days agoMITView on GitHub
Drive-and-prove check for a long-running agent stack. Proves that features actually reach the person who uses them (evidence level L5), not just that processes exist. Covers the chat send path, cron fire and delivery, the cockpit serving current code, and MCP servers. Use for /verify-stack, 'is it actually live', 'prove it works', after any daemon, cockpit, cron or MCP change, and before telling the operator something is LIVE.
In this repository57 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- llms.txtllms.txt
- advisorSkill
- agent-dispatchSkill
- arenaSkill
- audit-pypi-model-packageSkill
- branching-workflowSkill
- code-reviewSkill
- criticSkill
- cron-child-oauth-auditSkill
- daily-forestSkill
- deep-researchSkill
- diagnose-cron-timeoutSkill
- dreamingSkill
- eod-summarySkill
- filingSkill
- forest-synthesisSkill
- goalsSkill
- graph-hygieneSkill
- ideaSkill
- inline-tagsSkill
- intel-analyzerSkill
- longformSkill
- loop-experimentSkill
- loop-librarySkill
- meta-memory-reviewSkill
- office-hoursSkill
- open-loopsSkill
- plan-ceo-reviewSkill
- plan-design-reviewSkill
- prdSkill
- progressive-disclosureSkill
- reality-feedback-createSkill
- reality-review-weeklySkill
- recallSkill
- reconcile-extractionSkill
- redactSkill
- repo-auditSkill
- research-digestSkill
- review-gateSkill
- run-long-job-detachedSkill
- saveSkill
- scopeSkill
- self-auditSkill
- shadow-test-local-classifierSkill
- signal-scorerSkill
- skill-auditSkill
- skill-chainingSkill
- spawn-agent-in-tenantSkill
- spawn-tenantSkill
- split-log-rows-by-session-kindSkill
- subagent-delegationSkill
- telegram-dump-routerSkill
- telegram-reply-toolSkill
- wave-planSkill
- weekly-retroSkill
The file
We split this skill into the rules it gives an agent
7 rules. About 0 are common, 4 are distinctive, and 3 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈4
Distinctive · estimate
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 35
All at once: python3 scripts/eval/verify_stack.py all --nonce VS-xxxxxx (send the feature 1 message first).
- Very specific: line 37
If you publish something else people use (a public dashboard, a site), add it as a feature row: the public URL answering 200 is the proof, …
- Distinctive: line 41
Check the LIVE log, not a frozen one: If your stack ever moved its message log to a new database, a check against the old file passes on …
- Distinctive: line 43
The one outbound drive goes to the log topic only: Never drive to the operator's personal chat or another topic.
- Very specific: line 59
Update the table above and verify_stack.py.
- Distinctive: line 60
Run the new check once live and paste the result into the change note.
- Distinctive: line 63
Never weaken a check to make it pass.
≈ “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.
Files
verify-stack
Health checks and watchdogs answer "is it there, is it up" (L2 to L4). This skill answers "does the feature reach the person who uses it" (L5, knowledge/evidence-ladder.md). It exists because of two common misses: a dashboard called LIVE while the running process still held old code, and crons that exist but never deliver.
Helper: scripts/eval/verify_stack.py (read-only). Evidence: outputs/verify/<YYYY-MM-DD-HHMMSS>/<feature>.json.
Launch
Nothing to launch. The stack is long-running (scheduler daemon, cockpit, MCP servers spawned by the agent runtime). This skill NEVER starts, restarts or kills anything. A fix that needs a restart is reported, then done as a separate step (INFORM; CONFIRM if it touches the scheduler or settings).
Doctor (run first, and again after any surprising result)
python3 scripts/eval/verify_stack.py doctorPASS = the stack's own health checks pass, the scheduler daemon PID is alive, and an outgoing chat message was logged in the last 26 hours. On FAIL, stop: driving a broken stack proves nothing.
Feature map (v1)
| # | Feature (user's point of view) | Drive | Proof (end state) | Level |
| 1 | The agent's chat messages reach the operator | the agent sends ONE message to a dedicated log topic with a nonce VS-<6 digits>; then verify_stack.py tg-check --nonce VS-xxxxxx | the nonce is in the live outgoing-message log with a platform message id | L5 |
| 2 | Scheduled jobs fire AND deliver | verify_stack.py cron [--name <schedule>] | last run completed, under 26 hours old, and at least 1 outgoing message between start and completion + 120 s | L5 |
| 3 | The cockpit shows current data and code | verify_stack.py cockpit | the cockpit port answers 200, is bound to 127.0.0.1, AND the serving process started after the newest edit to scripts/cockpit/cockpit.py | L5 |
| 4 | MCP tools are callable | verify_stack.py mcp (wraps the MCP smoke test) | every stdio server handshakes and lists tools; HTTP servers answer; single-consumer servers (the chat bridge) are skipped by design | L4 |
All at once: python3 scripts/eval/verify_stack.py all --nonce VS-xxxxxx (send the feature 1 message first).
If you publish something else people use (a public dashboard, a site), add it as a feature row: the public URL answering 200 is the proof, and a local copy bound to 0.0.0.0 is a WARN.
Gotchas
- Check the LIVE log, not a frozen one. If your stack ever moved its message log to a new database, a check against the old file passes on stale data. Name the live store in the helper and nowhere else.
- Feature 1 proves the daemon send path, not the plugin reply path. A chat plugin's
replytool returns its own message id; that return value is its proof, and it may not write to the daemon's log. - The one outbound drive goes to the log topic only. Never drive to the operator's personal chat or another topic. One message per run.
- Cron proof is correlation by time window, not by job id. Another job sending in the same window can mask a silent cron. For a suspicious cron, read its
execution_log.outputtoo. - A smoke test's "failed" may be a count, not a list.
ok: nullmeans spawn-skipped, not failed.
Evidence
Every run writes one JSON per feature under outputs/verify/<ts>/: status, evidence level, the facts checked, the fix. The files hold ids and timestamps only, never message text or secrets. When reporting, cite the status, the level and the one fact that decided it (for example "cockpit FAIL L5: process started 10-03, cockpit.py edited 10-05").
Cleanup
Nothing to tear down (this skill starts nothing). The log-topic test message stays; it is the proof. Evidence folders older than 30 days can be pruned (INFORM): find outputs/verify -maxdepth 1 -type d -mtime +30 -exec rm -r {} +.
Maintenance
The feature map rots when the stack changes. When a feature is ADDED or moves (new port, new database, new delivery path), in the same change:
- Update the table above and
verify_stack.py. - Run the new check once live and paste the result into the change note.
- A behaviour the map describes that the stack no longer has is either map drift (fix the map) or a real regression (report it, never paper over it in the map).
Never weaken a check to make it pass. Run the negative controls once after any change to the helper: a bogus nonce and a bogus cron name must both FAIL.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
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.

