Musketeer logo Musketeer

The trio model

Musketeer uses a three-role architecture - the trio - to enforce separation of duties during execution. Each role has a distinct responsibility and owns specific files on disk.

The trio

Originator

The Originator defines intent and plan. It is responsible for:

  • Declaring the goal and desired outcome
  • Defining the tasks to be executed
  • Owning intent.yml and plan.yml

The Originator decides what should happen. It does not execute.

Cross-Examiner

The Cross-Examiner challenges the plan and sets constraints. It is responsible for:

  • Reviewing the Originator’s intent and plan
  • Setting scope boundaries, non-goals, and allowlists
  • Owning constraints.yml
  • Writing review notes to plan.yml

The Cross-Examiner provides adversarial review. It does not execute.

Executor

The Executor applies changes and produces artifacts. It is responsible for:

  • Carrying out the tasks defined in the plan
  • Recording progress entries with sequence numbers
  • Writing to progress.yml and handoff.yml

The Executor may not modify intent.yml or constraints.yml. It works within the boundaries set by the other two roles.

Why three roles

This separation provides:

  1. Separation of duties - each role has a defined responsibility and owned files
  2. Accountability - progress entries record which role acted and when
  3. Auditability - all state is on disk in human-readable YAML
  4. Handoffs - transitions between roles are explicit and recorded

The triangle

        Originator
        /               /                /   intent        /    + plan        /                Cross-Examiner ------- Executor
   constraints      progress + handoff

Each vertex of the triangle owns specific files. Handoffs flow between roles through these files.

File ownership

Role Owns May not modify
Originator intent.yml, plan.yml constraints.yml
Cross-Examiner constraints.yml, plan.yml intent.yml
Executor progress.yml, handoff.yml intent.yml, constraints.yml

Note: File ownership is a design policy. The current CLI does not enforce write restrictions per role. Enforcement is planned.