saphan knowledge
The seat knowledge bundle carried inside this binary: what it holds, and whether it is intact
saphan knowledge
The seat knowledge bundle carried inside this binary: what it holds, and whether it is intact
Read the fleet's SEAT KNOWLEDGE — role cards, skills, slash commands, subagents and the shared guard predicates — from the bundle embedded in THIS binary. Every subverb answers about the running artifact and nothing else: no workspace is read, no state is written, and no answer comes from a document about the bundle.
That is the point. The bundle exists because the guard layer previously reached exactly one machine's disk, so the question "does this seat have the knowledge floor" had to be answerable from the one thing that arrives everywhere — the binary.
Subcommands
| Subcommand | What it does |
|---|---|
saphan knowledge list | List every file the embedded bundle carries, with its sha256 |
saphan knowledge show | Print one bundle file's bytes, exactly as a seat receives them |
saphan knowledge verify | Check the embedded bundle against its own manifest, and refuse by name if it disagrees |
saphan knowledge list
List every file the embedded bundle carries, with its sha256
Walk the embedded bundle and print one row per file: path, sha256, size.
--role narrows to the files that role's delivery unit receives; --backend narrows to the files a seat on that BACKEND receives. The two are different questions: role keying decides WHICH skills and card, vendor keying decides which ROOT DOCUMENT and adapters — a claude-code seat receives CLAUDE.md and must not receive AGENTS.md, and the converse.
Options
| Option | Type | Default | Description |
|---|---|---|---|
--backend | string | unset | narrow to one backend's keyed slice (claude-code, codex) |
--role | string | unset | narrow to one role's delivery unit (master, executor, review, scribe, advisor) |
saphan knowledge show
Print one bundle file's bytes, exactly as a seat receives them
Print one file out of the embedded bundle, addressed bundle-relative
(roles/MASTER.md, skills/saphan-dispatch/SKILL.md, hooks/shared/saphan_guard.py).
The bytes are the ones a delivery unit writes to a seat, so this is the verb that answers "what does the seat actually read" without materializing anything and without trusting a copy on someone's disk.
saphan knowledge verify
Check the embedded bundle against its own manifest, and refuse by name if it disagrees
Validate the bundle compiled into this binary: every declared file exists and is non-empty, every digest is compared (not merely present), every file in the bundle is declared, the vendor keying holds in BOTH directions, and every capability cell carries a date and either a carrier or a named substitute.
THIS IS THE VERB THAT ANSWERS LAW #41's QUESTION. "If this stopped working silently now, which verb refuses?" — this one, exit 2, with the reason named. An empty bundle is refused explicitly rather than passing vacuously, because every check above is satisfiable by a bundle with nothing in it.