saphan checks
Deterministic checks that run as ordinary processes, never as a model turn, so they cost nothing in model usage and give the same answer every time.
Deterministic checks that run as ordinary processes, never as a model turn, so they cost nothing in model usage and give the same answer every time. The catalog covers build, test, lint, import checks and plugin compilation for a stream; other subcommands check channel files, commit authorship, container runs and the built-in user interface.
saphan checks bridge-author
Counts the commits in a bridge repository (the workspace's shared git record of governance and decisions) per day and per kind of author: a seat identity, the legacy identity pair from the configuration, the gateway's own identity, or anyone else. It reads author strings only and rewrites nothing. With --staged it becomes a pre-commit check that compares the author git is about to record with the committing seat: it warns until the owner has signed the identity cut-over record, and refuses afterwards.
| flag | type | default | what it does |
|---|---|---|---|
--range | string | HEAD | The revision or range to read, for example origin/main; defaults to HEAD. |
--repo | string | The bridge repository to read; required for the count, and defaults to the current directory with --staged. | |
--since | string | The first day counted, as YYYY-MM-DD, compared with each commit's author date; required for the count. | |
--staged | bool | false | Run the pre-commit check instead of the count: compare the author git would record with the committing seat, warning before the owner's cut-over record exists and refusing after it. |
saphan checks channel-lint
Checks a worktree's channel files (_MASTER_ORDER.md, _EXEC_STATUS.md, _REVIEW_STATUS.md, whichever are present) with the same parser Saphan Studio uses to read them, and exits 2 on any malformed file, unknown state, misplaced heading or mismatched stream. A worktree with none of the three files is also a finding. Run it before reporting work as finished, or before accepting a returned stream.
| flag | type | default | what it does |
|---|---|---|---|
--worktree | string | Absolute path of the worktree whose channel files are checked (required). |
saphan checks container-contradictions
Checks every recorded run that claims to have run in a container, and refuses any whose exact machine and image were not confirmed by a fresh container-capability probe before the run started. It prints ok when no run contradicts its record.
saphan checks declare
Declares that a stream is ready for its deterministic checks, and records the declaration so saphan checks outcomes can tell a check that never ran from one that was never asked for.
| flag | type | default | what it does |
|---|---|---|---|
--actor | string | The id of the person or agent making the declaration (required); it is recorded, not authenticated. | |
--class | stringArray | A catalog class to declare ready: build, test, lint, importcheck or plugin-compile. Repeat for several; defaults to the whole catalog. | |
--round | string | A free-form label for the round this declaration belongs to; empty means unnumbered. | |
--stream | string | The stream declaring readiness (required). |
saphan checks landing-author
Refuses a branch carrying a merge commit whose author or committer is not the identity the configuration declares, starting from the point where the engine began setting that identity. Used when developing Saphan Studio; not needed to operate an installation.
| flag | type | default | what it does |
|---|---|---|---|
--known | string | A range of already-known commits to report without failing, inclusive at both ends. | |
--range | string | The revision range to read, for example origin/main; replaces the default range entirely. | |
--repo | string | The repository to check (required). | |
--since | string | The commit from which merge commits are judged; replaces the default starting point. |
saphan checks list
Prints the check catalog as the exact saphan run --backend proc commands that would run each check for a stream, with each check's time limit.
| flag | type | default | what it does |
|---|---|---|---|
--actor | string | The id of the person or agent the composed runs belong to (required). | |
--stream | string | The stream the composed runs belong to (required). | |
--workdir | string | The repository root the checks run against (required). |
saphan checks log-lint
Checks the engine's server and daemon source code for logging that bypasses its own logging package, and refuses any it finds. The packages to scan, the logging libraries to flag and the list of tolerated existing sites are plain files, and the tolerated list may only shrink compared with its copy on the baseline branch. Test files are not scanned.
| flag | type | default | what it does |
|---|---|---|---|
--baseline-ref | string | develop | The git ref whose copy of the tolerated list is the ceiling the current list may not exceed; defaults to develop. |
--libraries | string | The file listing the logging libraries whose import counts as a violation; defaults to the one in the repository. | |
--manifest | string | The file listing the tolerated existing sites; defaults to the one in the repository. | |
--packages | string | The file listing the packages to scan; defaults to the one in the repository. | |
--root | string | The module root; defaults to the nearest parent directory that holds go.mod. |
saphan checks outcomes
Prints one row for every check class a stream declared for a round, with its outcome: green, red or unrun. A declared check with no run reads unrun with the reason "declared, never run"; unrun describes the machine or the vendor, never the code. This command refuses nothing; by default it also stores the reading in the record (see --record).
| flag | type | default | what it does |
|---|---|---|---|
--record | bool | true | Store the result as a timestamped reading in the record; on by default, so pass --record=false for a read-only look. |
--round | string | The round label whose results are shown; empty means unnumbered. | |
--stream | string | The stream whose results are shown (required). |
saphan checks ui-assets
Checks that every screen in the user interface built into this binary has its text in both language catalogs, prints the counts, and exits 2 naming each missing key. Useful as a CI step, since the same warning is otherwise printed only by the commands that serve those screens.
saphan checks vendor-attribution
Refuses a branch whose commits since its merge base carry a Co-authored-by trailer with an e-mail address that is not already a commit author's in the repository, which is how attribution to an AI vendor is detected. An address that has ever authored a commit there passes. Only the trailer is read, never the commit message text. The trailer has to be removed before the branch passes its gate.
| flag | type | default | what it does |
|---|---|---|---|
--base | string | The base branch to compare against, for example origin/main (required). | |
--branch | string | HEAD | The branch to check; defaults to HEAD. |
--repo | string | The repository to check (required). |
Global options apply to every command — see Every command.
saphan channel
Inspects and repairs the channel documents of a stream: the orders, status reports and review notes exchanged between Saphan Studio and the agents working on it, kept in the channel store.
saphan claim
Takes an exclusive claim on a stream (one unit of work) for one actor, so two people or agents cannot pick up the same work at once.