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.ymlkind: 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.ymlpackets/
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.ymlLegacy 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 runSee run status for details.