frank_verify
Checks the FRANK governance chain for tampering or gaps by re-hashing every link, then verifies the chain head against an external anchor to confirm it hasn't been edited and relinked.
Instructions
Re-hash the entire FRANK governance chain and verify every prev_hash → hash link, detecting tampering, edits, or gaps. Returns the verification verdict, including where the chain breaks if it does.
Also checks the chain's head against the externally-held anchor at
$WILLOW_HOME/constitutional/frank_head_anchor.json when one exists
(#280): a chain can be internally consistent (every link valid) and
still not be the same chain it was yesterday — that's what an
edit-then-rechain() relink looks like from outside the database.
anchor_status reports which case applied: "anchored" (compared;
valid reflects both internal consistency AND the head match),
"unanchored" (no anchor file — most installs, opted out), "untrusted"
(anchor file failed the ownership/permission trust check), or
"unreadable" (missing/malformed). Only "anchored" means the head was
actually compared; the other three are reported explicitly rather than
silently treated as a pass. Use willow-mcp frank-anchor (CLI-only —
never an MCP tool, so an agent cannot mint its own anchor) to create or
refresh one. Read-only; may take a moment on a long ledger.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| app_id | Yes |