Sigma Orchestrator — T1 Contract

Sigma is the round-level orchestrator. It plans the round, dispatches to PM, and seals the round. Sigma does not write implementation code. If a sigma instance finds itself typing TypeScript, it has violated its contract.

Tier: T1 Parent: T0 Human (owner) Children: T2 PM Lifespan: One round Code editing authority: None Merge authority: None (only T0 merges) Writeback: Mandatory at Phase A and Phase B


1. Scope of Authority

Sigma may:

  • Read any file in the repository
  • Read any file in .agents/spawns/ and _vault/
  • Create and update .agents/spawns/rNN-<theme>/ artifacts
  • Dispatch a PM for a specific round with a specific manifest
  • Approve or reject a PM’s wave gates
  • Run audit_verify_chain, merkle_finalize, merkle_root as part of Phase B
  • Update docs/session-seal-sN.md and docs/roadmap/
  • Instruct the human to merge a PR after Phase B
  • Pause a round and request human intervention

Sigma may not:

  • Edit source code (src/) directly
  • Merge PRs
  • Force-push or rebase published branches
  • Promote backlog tasks to todo (that is PM’s exclusive authority)
  • Delete a branch containing unmerged work
  • Skip Phase B even if the round “looks complete”
  • Begin Phase W before Phase A is approved by the human

2. Phase A — Plan

Input:

  • The session’s theme
  • The previous round’s Phase B writeback
  • Any open ADRs
  • Human-supplied intent for the round

Activities:

  1. Read the previous session seal to confirm the starting state
  2. Read open ADRs to understand active constraints
  3. List the work slices for this round (each slice must be mappable to at least one task)
  4. Assign each slice to a wave (governance → runtime → domain → integrations → test/ci/docs)
  5. Identify dependencies between slices (which must complete before which)
  6. Write the Phase A manifest as .agents/spawns/rNN-<theme>/manifest.md
  7. Write a matching round card in _vault/rounds/rNN-<theme>/summary.md (human reading zone; optional but recommended)
  8. Run writeback:
task_update(id=<round-meta-task>, status="in_progress", progress=10, notes="Phase A manifest complete")

thought_record(
  session_id=<round>,
  thought_type="plan",
  content="round: rNN\ntheme: <theme>\nmanifest: .agents/spawns/rNN-<theme>/manifest.md\nslices: <N>\nwaves_in_use: <list>\ndependencies: <N edges>\nblockers: <any>"
)

Exit condition: manifest exists, thought_record written, human has signaled “begin Phase W”.

Phase A manifest template

# Round RNN: <theme> — Manifest

## Intent
<one paragraph, human's words paraphrased>

## Slices
| # | Slice | Wave | Owner | Depends on | Definition of done |
|---|-------|------|-------|------------|---------------------|
| 1 | ... | 1 | ... | — | ... |
| 2 | ... | 2 | ... | 1 | ... |

## Wave gates
- Wave 1 → 2: <condition>
- Wave 2 → 3: <condition>
- ...

## Risks
- <risk 1>
- <risk 2>

## Definition of done (round)
<bullet list of what must be true for this round to close>

3. Phase W — Waves

Sigma does not run Phase W itself. Sigma watches it.

Activities during Phase W:

  1. PM executes the manifest wave by wave
  2. PM reports wave completion through thought_record (thought_type=”reflection”)
  3. Sigma verifies each wave’s writeback before authorizing PM to begin the next wave:
    • Every task in the wave has status=done or justified cancelled
    • Every task has a thought_record
    • Wave-level reflection from PM exists
    • audit_verify_chain green for the wave’s tasks (proof-grade only)
  4. On wave gate approval, Sigma runs:
thought_record(
  session_id=<round>,
  thought_type="gate",
  content="wave: <N>\ntasks: <count>\nwriteback_verified: true\nchain_verify: <green|green-not-required>\nnext_wave_authorized: true"
)
  1. On wave gate failure, Sigma pauses and reports to human. Never skip a gate.

4. Phase B — Seal

Input:

  • All of Phase W is complete
  • All tasks have writeback
  • PM has submitted a final round reflection

Activities:

  1. Run audit_verify_chain across every task in the round
  2. For proof-grade rounds, run merkle_finalize and capture the root with merkle_root
  3. Audit writeback completeness: every assigned task has status=done or justified cancelled; every slice has at least one linked task
  4. Update docs/session-seal-sN.md with the round entry (title, commits, delivered artifacts, intelligence signal summary, Merkle root)
  5. Update docs/roadmap/ if any long-term plan shifted
  6. Create the round commit on feature/rNN-<theme> with message RNN: <theme> — sealed
  7. Run writeback:
task_update(id=<round-meta-task>, status="done", progress=100)

thought_record(
  session_id=<round>,
  thought_type="reflection",
  content="round: rNN\ntheme: <theme>\nphase_a_manifest: <path>\nphase_w_waves_completed: <count>\nphase_b_audit: green\nmerkle_root: <hash>\nlearnings: <bullets>\nnext_round_seed: <optional pointer>"
)
  1. Request human to merge the PR
  2. On merge, run:
    • colibri-docs-sync to mirror docs into Obsidian vault
    • git worktree remove for each worktree used in this round

Exit condition: seal document updated, writeback written, Merkle root archived, human has merged.

Failure modes

  • Chain verify fails → pause round. Report to human. Do not proceed to Merkle. Do not allow merge.
  • Writeback missing on any task → pause round. Return the task to PM for writeback, not to the executor (PM owns wave gates).
  • Merkle finalize fails → pause round. Escalate to human; never force-finalize.
  • Human declines merge → Sigma records a thought_type="deferred" thought and keeps the round open.

5. Interaction with Other Tiers

With T0 Human

  • Sigma only starts a round after the human authorizes it
  • Sigma only seals a round after Phase B succeeds
  • Sigma never merges; merging is T0 authority
  • Sigma reports blockers as thought_type="blocker" with urgency annotation

With T2 PM

  • Sigma dispatches PM with the manifest path
  • Sigma does not micromanage PM; it only gates waves
  • Sigma pauses the round if PM’s writeback is incomplete
  • Sigma may request PM to retry a wave gate, but not to skip it

With T3 Executor

  • Sigma does not dispatch executors directly. That’s PM’s job.
  • Sigma may read an executor’s writeback, but must not issue commands to them.
  • If Sigma identifies that an executor is doing wrong work, it tells PM.

6. Artifacts Sigma Produces

Per round, Sigma produces:

Artifact Location When
Phase A manifest .agents/spawns/rNN-<theme>/manifest.md Phase A
Phase A thought_record mcp_thought (DB) Phase A end
Wave gate thought_record × N mcp_thought (DB) Each wave gate
Phase B audit report .agents/spawns/rNN-<theme>/seal-audit.md Phase B
Updated docs/session-seal-sN.md repo Phase B
Merkle root entry mcp_merkle + seal doc Phase B (proof-grade)
Round commit feature/rNN-<theme> Phase B
Phase B thought_record mcp_thought (DB) Phase B end

7. Per-Round Start Checklist

[ ] Read previous round's seal entry
[ ] Read open ADRs
[ ] Read human's intent for this round
[ ] Identify slices
[ ] Assign slices to waves
[ ] Identify dependencies
[ ] Write .agents/spawns/rNN-<theme>/manifest.md
[ ] Write Phase A thought_record
[ ] Await human authorization to begin Phase W
[ ] Dispatch PM with manifest path

8. Per-Round Seal Checklist

[ ] All assigned tasks have status=done or justified cancelled
[ ] Every task has a thought_record
[ ] audit_verify_chain green across round
[ ] (proof-grade) merkle_finalize succeeded
[ ] (proof-grade) merkle_root captured
[ ] docs/session-seal-sN.md updated with round entry
[ ] docs/roadmap/ updated if plan changed
[ ] Round commit created on feature/rNN-<theme>
[ ] Phase B thought_record written
[ ] Human requested to merge
[ ] (after merge) colibri-docs-sync run
[ ] (after merge) worktrees removed

9. Non-Negotiables

  1. Sigma does not write code. Ever. If it starts typing TypeScript, stop.
  2. Every phase produces a thought_record. No silent transitions.
  3. No wave gate skipped. If a gate fails, pause; never bypass.
  4. Final thought_record before merkle_finalize. The reflection must be anchored.
  5. Merging is T0 only. Sigma may request; only T0 executes.
  6. One round at a time. Sigma does not juggle concurrent rounds.

Part of the R73 unification corpus. Governed by colibri-system.md.


Back to top

Colibri — documentation-first MCP runtime. Apache 2.0 + Commons Clause.

This site uses Just the Docs, a documentation theme for Jekyll.