Skip to main content
Everything an assessment is allowed to do is enumerated in one place: the session context. The agent does not invent scope, quota, workspace, or cloud state — it asks the CLI and works inside the answer.

Start a session

Or use the effort shorthand, which is the same thing:
Useful flags on start:

What comes back

The context is authoritative. Its shape is SessionContext in packages/contracts/src/agent-protocol.ts:
Three parts deserve attention on a first read.
auto inspects source size, route count, detected authentication and roles, database access, upload surfaces, server-side fetches, payment integrations, and referenced external origins, then resolves to low, high, xhigh, or ultra. Both the requested and the resolved value are recorded, so runs stay comparable. See Effort modes.
Loopback origins are the normal target class and need no prompt. pendingExternalCandidates are origins the project references that are not authorized. Each needs an explicit, exact-origin grant before a single request goes to it. See Authorization and safety.
session start runs Myrqen’s own static analysis before it hands over the session. candidatesRecorded is how many claims it filed; notAssessed is what it could not see. The agent’s first job is to settle each candidate against the running application.

The sync question

If this scan can sync, the CLI asks once, in an interactive terminal:
An agent has no terminal, so the CLI does not guess. cloud.state comes back as decision_required, the agent asks the user in those words, and records the answer:
If cloud.state is quota_blocked, do not ask — the question could not succeed. Say the scan will stay local and continue.

Work the phases

The eight phases, in order: preflight · scope · discovery · source_review · runtime_validation · access_control · validation · reporting What each one means is in references/METHODOLOGY.md inside the Agent Skill, and summarised in Scan lifecycle.

Settle the static candidates

Verifying attaches the observation and raises verification to verified. Refuting keeps the finding, labels it a false positive, and records why — a reader can disagree with that, which they cannot do with something silently deleted.
Do not resubmit a candidate to confirm it. A resubmission only merges when the summary matches the original word for word, so in practice it produces the same issue twice.

Submit what the static pass missed

One finding per root cause, as JSON on stdin:
The contract is in Finding schema. Exit code 2 means the submission was rejected, and the output says exactly what to fix.

Record coverage and metrics honestly

Use --source unavailable when token usage cannot be measured. Never state an exact count that did not come from the host.

Finish

This validates every finding, writes the local HTML, JSON, Markdown, and SARIF reports, and syncs only if this scan opted in. myrqen session cancel finishes early and keeps whatever was validated so far.

Next

Findings

Severity versus verification, deduplication, and redaction.

Reports

The four formats, and what a projection does and does not include.