Musketeer logo Musketeer

State on Disk

Musketeer uses a two-namespace state model. Canonical execution state is owned by the SMALL protocol and lives in .small/. Musketeer-owned execution state lives in .musketeer/.

SMALL-owned state (.small/)

These artifacts are defined and owned by the SMALL protocol. Musketeer reads from them but does not write to them.

workspace.small.yml

Workspace identity, replay ID, and metadata.

intent.small.yml

Owned by the Originator. Defines the goal and desired outcome.

constraints.small.yml

Owned by the Examiner. Sets scope boundaries, non-goals, and requirements.

plan.small.yml

Shared by Originator and Examiner. Defines the tasks to be performed.

progress.small.yml

Owned by the Executor. Records sequenced progress entries.

handoff.small.yml

Owned by the Executor. Records the structured handoff between roles.

Musketeer-owned state (.musketeer/)

These are Musketeer-specific execution artifacts.

musketeer.yml

Workspace configuration: role seats, adapters, and policy.

version: 1
workspace:
  state_dir: .musketeer
agents:
  originator:
    adapter: local
  cross_examiner:
    adapter: local
  executor:
    adapter: local
policy:
  executor_allowlist: []
  redaction:
    enabled: false
    patterns: []

verdicts/

Auditor verdict records, one per replay:

.musketeer/verdicts/<replayId>.verdict.yml
kind: musketeer_verdict
musketeer_version: "0.3.0"
replay_id: <uuid>
status: approve
gate: auditor
reason: "all checks passed"
timestamp: "2026-03-15T10:00:00Z"

runs/

Execution run directories containing execution logs:

.musketeer/runs/<replayId>/execution-log.yml

packets/

Role context packets assembled from SMALL canonical state.

Canonical workspace tree

.small/
  workspace.small.yml
  intent.small.yml
  constraints.small.yml
  plan.small.yml
  progress.small.yml
  handoff.small.yml

.musketeer/
  musketeer.yml
  packets/
  verdicts/
    <replayId>.verdict.yml
  runs/
    <replayId>/
      execution-log.yml

Legacy layout (deprecated)

Legacy workspaces stored all artifacts under .musketeer/runs/<uuid>/ using Musketeer-specific schemas. This layout is deprecated and exists only for migration purposes. Use musketeer migrate to convert to the SMALL-native layout shown above.

Querying state

musketeer run status                  # show all runs
musketeer run status --replay <id>    # show a specific run

See run status for details.