Saphan StudioDocs
Reference/Commands

saphan laws

Reads and signs the laws manifest: the root-signed list of the standing-rule documents an installation treats as ratified, each with its SHA-256.

Reads and signs the laws manifest: the root-signed list of the standing-rule documents an installation treats as ratified, each with its SHA-256. Use cat to read or check it and ratify to sign a new one.

saphan laws

saphan laws cat

With no argument, verifies the manifest's own root signature and lists its ratified entries; this does not re-check any file on disk. With a document path, verifies that one document's bytes against the manifest and its signing chain, as saphan verify --class law does. A missing, tampered or loosely-permissioned root public key is refused. Nothing is written either way.

saphan laws cat [path]
flagtypedefaultwhat it does
--manifeststringPath of the laws manifest; defaults to bridge/registry/LAWS_MANIFEST.md in the workspace.
--registrystringPath of the actor registry used to check signers; defaults to bridge/registry/ACTORS.md in the workspace.
--root-pubstringPath of the pinned root public key; defaults to ~/.saphan/trust/root.key.pub.

saphan laws ratify

Hashes the exact bytes of each given document and writes a new laws manifest signed with the root key, with a serial one higher than the previous one by default. ⚠ The new manifest replaces the old file and lists only the documents named on this command line: an earlier entry not named again is no longer ratified. Paths are recorded as you type them. It is an owner act: it needs the root private key, prints a one-time six-character code on the terminal and waits for it to be typed back, and is refused with no terminal (scripts, CI), inside the console's browser terminal (use the passkey there) and after five wrong codes. Which documents to ratify, and when, is the owner's decision.

saphan laws ratify <path>...
flagtypedefaultwhat it does
--actorstringThe actor name written into the signature envelope; defaults to SAPHAN_ACTOR, then identity.actor in your Saphan configuration. It is a label: the signature is always made with the root key.
--manifeststringWhere to write the manifest, replacing any file there; defaults to bridge/registry/LAWS_MANIFEST.md in the workspace.
--notestringA free-text note attached to every entry this ratification writes.
--root-keystringPath of the root private key; defaults to ~/.saphan/trust/root.key.
--serialint640The manifest's serial number; defaults to the previous manifest's serial plus one, or 1 if there is none or it cannot be parsed. ⚠ Any value is accepted, including one lower than the previous serial, and verification does not reject a lower serial.
--tsstringThe signing timestamp written into the manifest, in RFC 3339; defaults to now. It is neither validated nor checked against the clock.

Global options apply to every command — see Every command.

On this page