Compatibility: Pactmark 0.1.x. The pactmark binary is owned by @pactmark/cli and operates over injected host adapters. Commands validate unknown input and authority before mutation.

Usage

Use --json for automation and branch on stable KAF_* codes. Human text, ordering outside the documented contract, and stack traces are not stable APIs.

Development

Local development loop
Runs the project’s development entrypoint.
Build the agent manifest
Reads AGENT.md and optional skills/* inputs, then atomically writes .pactmark/generated/agent-manifest.json.
Execute a run

Inspection

Current projection
Status, sequence, waiting ids, artifact and verification ids, terminal error code.
Event stream
Verify without executing
Verifies a terminal run from stored events and artifacts without executing any tool or model. If a run cannot be replayed, its history is not intact.
Verify audit bindings
Checks that authority and decision records resolve consistently.

Diagnostics

Production doctor fails when required durability, sandbox, credential, policy or registration evidence is absent. On a fresh memory-backed project it should fail — read the gaps as a checklist.
Explains a policy decision against a fixture. Useful in review, and useful for proving a denial is intentional.

Evidence

evidence verify re-checks internal references; a missing or incompatible record surfaces as KAF_EVIDENCE_INVALID_REFERENCE.

Migrations

Ordered and forward-applied. Test a representative upgrade, a projection rebuild, a rollback plan, a backup restore and old-run inspection before a production rollout.

Effects

effects reconcile records what you established, not what you assume. A resolution of abandon_uncertain explicitly records that the effect may have occurred — and anything depending on it raises KAF_EFFECT_ABANDONED_UNCERTAIN.
effects compensate starts a separate authorised compensation run. It is not an undo.

Tests and evals

Scripting it

Branch on .status and .terminalErrorCode, never on printed prose.

Error reference

The codes your scripts should branch on.

HTTP API

The same surfaces over the wire.