Saphan StudioDocs
Reference/Command reference

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

saphan knowledge

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

SubcommandWhat it does
saphan knowledge listList every file the embedded bundle carries, with its sha256
saphan knowledge showPrint one bundle file's bytes, exactly as a seat receives them
saphan knowledge verifyCheck 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

saphan knowledge list [flags]

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

OptionTypeDefaultDescription
--backendstringunsetnarrow to one backend's keyed slice (claude-code, codex)
--rolestringunsetnarrow 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

saphan knowledge show <bundle-relative-path>

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

saphan knowledge verify

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.

On this page