Build order

Governed Autonomy Journey

A PAA implementation begins with a bounded task under human control. You instrument the task, evaluate a worker alongside the existing process, and collect evidence. When that evidence supports a change, the task can move to a different level of oversight. Evaluation continues after every change.

The stages below walk through that process using one publishing task.

The executable quickstart uses a refund task, but follows the same governance sequence shown here. The refund approval quickstart runs propose, approve, and emergency demotion against a disposable store.

  1. Stage 1

    Declare the task

    State: none yet; the boundary is not yet declared.

    Before measuring performance, define exactly what work you are measuring. Name the input, the output, the real-world effect, and the work that remains outside the boundary.

    Our running example is bounded_publication. It accepts a draft_post and may produce a published_post for either a community or professional channel. Publishing anything outside those channels is excluded.

    PAA records this stable boundary in a task declaration. The declaration defines the work; it does not authorize the system to perform it.

    Artifact: declaration

    • Task bounded_publication, declaration version 1
    • Boundary: input draft_post, output published_post
    • initial_position: manual · deployment: disabled
    • scopes: publish:community , publish:professional

    deployment is disabled, required on every declaration, with no default, and set to disabled until Stage 2 instruments the existing manual effect.

    Top-level declaration fields →

    Invariant: An unbounded workflow cannot enter the spectrum: no typed boundary, no evidence, no gate.

  2. Stage 2

    Instrument the existing work

    State: position manual, deployment active for scope publish:community

    Capture the existing workflow before adding automation. Record each draft, the published result, and the human decision so later comparisons use observable executions rather than memory.

    A person still writes and publishes every post. PAA calls this manual, the first governed position: the task is active and observable, but the human performs the real-world effect.

    A minimal structural check confirms that each output was recorded. Its result is the first evidence record for the task.

    Artifact: evidence_records

    • Scope publish:community, subject kind case
    • output_recorded: technique deterministic, evaluation basis kind invariant, epistemic status ground_truth, authority blocking, version v1

    A minimal structural evaluator on the human-produced output, enough to satisfy the evidence-record contract while the real quality evaluators are still absent.

    Evidence Records contract →

    Invariant: Manual is the first on-spectrum position: the human performs the effect, and the effect is observable.

  3. Stage 3

    Run the worker in shadow

    State: position manual, deployment shadow for scope publish:community

    Now the candidate worker turns each draft post into a candidate publication, but its output never reaches a reader. The human continues to publish the real result.

    This production context reveals how the candidate behaves without giving it production authority. PAA calls this shadow operation.

    The system records the candidate output beside the human-controlled outcome so the next stage can compare them. Being evaluated in production context is not the same as having production authority.

    Artifact: evidence_records

    • Scope publish:community, subject kind case
    • publication_quality: technique llm_judge, evaluation basis kind rubric, epistemic status proxy, authority advisory, version v1
    • publication_quality: technique human, evaluation basis kind human_gold, epistemic status ground_truth, authority advisory, version v1

    Both evaluators share property publication_quality without sharing technique, evaluation basis, epistemic status, or authority. This is the multiple-evaluators-per-property case.

    Evidence Records contract →

    Invariant: A shadow deployment and an advisory verdict can each accumulate evidence, but neither can authorize the governed effect.

  4. Stage 4

    Evaluate and establish evidence

    State: position manual, deployment shadow for scope publish:community

    How do we know whether the worker performed correctly? A rubric-driven model and a human reviewer each judge publication_quality for the same candidate publications. Each judgment identifies what was measured, how it was produced, and which evaluator version produced it.

    Individual judgments are observations. PAA keeps them as evidence so performance can be assessed across many executions.

    Before governance uses that evidence, a declared policy checks which records qualify. PAA calls qualifying evidence admissible. A decision artifact freezes the 200-case window, records every inclusion and exclusion, and states whether the promotion conditions passed.

    Artifact: decision_artifact

    • Scope publish:community, decision kind promotion, outcome eligible
    • Window: cases: 200
    • Included 194, excluded 6

    Every excluded reference carries a reason. An admissibility snapshot without a reason for each exclusion is not a valid decision artifact.

    Decision Artifacts contract →

    Invariant: Recorded evidence is not automatically admissible evidence; admissibility is a declared, snapshotted decision.

  5. Stage 5

    Promotion eligibility

    State: position manual, deployment shadow for scope publish:community

    The accumulated evidence now satisfies the declared requirements for considering less oversight. PAA calls the task eligible for a different position.

    Eligibility changes nothing by itself. The worker still runs in shadow, both publishing scopes remain manual, and a governance decision is still required.

    Artifact: position_projection

    • deployment: shadow
    • Scope publish:community resolves to manual
    • Scope publish:professional resolves to manual

    Both declared scopes still resolve to manual. An eligible outcome on a decision artifact is not itself a position_changed event.

    Autonomy Events contract →

    Invariant: Eligibility is a decision-artifact outcome, not a position change. A motion must still be proposed and resolved.

  6. Stage 6

    Decide whether to change oversight

    State: position manual, deployment shadow for scope publish:community

    A proposal now asks governance to move publish:community from manual to human-in-the-loop review. PAA calls this proposal a motion and binds it to the decision artifact that contains the supporting evidence.

    operator:jordan_lee reviews that evidence and approves the motion. A rejection would end the proposal and leave oversight unchanged.

    Evidence justified considering the change. The governance decision, not the evidence, approves it.

    Artifact: motion_events

    • Scope publish:community: manual to hitl
    • motion_proposed: actor system:promotion_rule: promotion window (200 cases) admissible and eligible per decision artifact
    • motion_approved: actor operator:jordan_lee: evidence reviewed; publication_quality agreement across both evaluators clears the promotion bar

    Both rows share one motion_id and bind to the same evidence_ref and evidence_sha256 as the Stage 4 decision artifact.

    Autonomy Events contract →

    Invariant: A motion is proposed and resolved by a named actor or a system actor. It does not fire itself.

  7. Stage 7

    Apply the scoped change

    State: position hitl, deployment shadow for scope publish:community

    The approved motion changes one declared scope: publish:community moves from manual to human-in-the-loop review. PAA calls this level of oversight the task's position.

    The professional channel remains manual. Autonomy is scoped rather than global, so approval for one channel never changes its sibling.

    PAA records the change as an event. The ordered event history is the source used to reconstruct the current position.

    Artifact: motion_events

    • Scope publish:community: manual to hitl
    • position_changed: actor operator:jordan_lee: motion approved; committing publish:community from manual to hitl

    This row shares its motion_id with the motion_proposed and motion_approved rows from Stage 6: three rows, one motion, one scope.

    Autonomy Events contract →

    Invariant: position_changed is scoped to exactly one declared scope; no other scope is affected by the same motion.

  8. Stage 8

    Operate and keep evaluating

    State: position hitl, deployment active for scope publish:community

    The community worker now prepares each publication. Its blocking checks must pass, and a human still authorizes the final action. Low-confidence cases can route directly to the human without changing the position of the whole scope.

    Evaluation continues during active operation. When a validated classifier replaces the rubric judge, PAA creates a new declaration version and starts a new evidence partition. Historical records keep the worker and evaluator context that produced them; replacement never rewrites the past or silently inherits prior authority.

    Artifact: position_projection

    • deployment: active
    • Scope publish:community resolves to hitl
    • Scope publish:professional resolves to manual

    The active declaration is a new version. Its two scopes resolve independently: publish:community reaches hitl through a new exact-scope motion, while publish:professional remains manual.

    Autonomy Events contract →

    Invariant: Deployment and evaluator succession require new declaration versions; neither silently mutates a position or an evidence record already on file.

  9. Stage 9

    Demotion

    State: position manual, deployment active for scope publish:community

    Promotion did not end evaluation. After one confirmed publishing failure, the current evidence no longer supports human-in-the-loop operation for the community channel.

    operator:jordan_lee approves an immediate demotion, returning publish:community to manual. The professional channel is unaffected. The same governed path that reduced oversight now increases it again.

    Artifact: motion_events

    • Scope publish:community: hitl to manual
    • motion_proposed: actor operator:jordan_lee: confirmed publish_authorization failure on one case; demotion.window (1 case) satisfied
    • motion_approved: actor operator:jordan_lee: operator-initiated demotion, committed immediately
    • position_changed: actor operator:jordan_lee: committing publish:community from hitl back to manual

    All three rows share one motion_id and are committed in a single immediate operator action, for publish:community alone.

    Autonomy Events contract →

    Invariant: A policy failure or an operator can demote immediately, on a one-case window, for the affected scope only.