Files
mopac-pmo/handoff/cto-state-20260828/.coordinate/PROTOCOL.md
T

5.0 KiB

TSGCTO .coordinate — agent-to-agent scratch channel

Both agents (TSGCTO-PMO, TSGCTO-Work) run as the TSGCTO user. This directory is LOCAL SCRATCH under $HOME: not git-tracked, not durable. It exists so routine agent-to-agent traffic costs a local file write instead of a network round trip. Safe to wipe and rebuild; agents should not treat anything here as permanent. Durable artifacts stay here until the founder attaches systems of record for this stack.

Layout:

  • inbox-work/ PMO writes, Work reads: TASK---.md, CANCEL-.md to drop a task.
  • inbox-pmo/ Work writes, PMO reads: REPORT-.md (done + evidence), QUESTION-.md (needs a PMO call), BLOCKED-*.md (stuck + why).
  • archive/ items fully handled get moved here; prune anything >30 days.
  • BOARD.md roster + standing state (roles, current focus).
  • log.md append-only journal, one line per event: date -Is | WHO | what happened
  • prompts/ standing prompt/intro files. logs/ worker output.

TASK file fields: Objective / Context (paths) / Constraints / Deliverable(s) / Priority (P1 first, then P2, P3).

Turn-start checklist (both agents, every turn): read BOARD.md, scan your inbox, tail log.md.

Rules:

  • PMO plans, prioritizes, writes TASKs, reports to the founder on drop-in.
  • Work executes inbox-work in priority order; one turn = do work, then reply in inbox-pmo and archive the TASK. Work never self-assigns scope (suggest via QUESTION instead).
  • Empty inbox when pinged: say so and stop. No watchers/polling loops.
  • No sudo for either agent; root needs go BLOCKED -> PMO -> founder.
  • NO repos, git remotes, or SSH on this account (founder policy): no clone/init/push, no SSH, no git network operations.
  • Shared account courtesy: never kill the other session screen, no long locks.

Activation: USR-Work sits idle between turns. After writing a TASK, PMO pings it (same account, no sudo): screen -S TSGCTO-Work -X stuff "New TASK in inbox-work - process per protocol now.$(printf '\r')" Never attach to its screen. Headless worker output goes to logs/.log.

Crossfeed (founder directive, 2026-08-28)

  • /home/_crossfeed/{bod,cto,cco,coo,founder}/ — cross-vertical awareness. Rules: /home/_crossfeed/README.md (authoritative).
  • PMO turn-start: also read peer STATUS.md files (incl. founder/ = RCEO vertical).
  • PMO turn-end (active turns): publish/update /home/_crossfeed/cto/STATUS.md (shape per README). Work does not touch crossfeed.
  • Ambient awareness ONLY; requests with teeth go founder or SoR.

Dispatch mechanics v2 (adopted from TSGCOO PATTERN-agent-orchestration.md, 2026-08-28; LIVE)

  • screen -X stuff is DOORBELL-ONLY: fixed short line, never task text. Doorbell to Work: "New TASK in inbox-work - process per protocol now." Doorbell to PMO (completion): scripts/ping-pmo.sh ("Work turn done...").
  • Dispatch = headless run with session continuity: screen -dmS work-turn- bash -c 'cd /home/TSGCTO && env HOME=/home/TSGCTO TERM=xterm-256color crush run --quiet --session "$(cat )" > ~/.coordinate/logs/.log 2>&1; ~/.coordinate/scripts/ping-pmo.sh' Prompt files live in prompts/ (preamble + TASK content); first dispatch omits --session; capture lineage id after via crush session last --json into BOARD.md.
  • Serialize: check screen -ls for live work-turn-* before dispatching.
  • Interactive TSGCTO-Work screen: RETIRED from dispatch duty (kept alive, idle). Monitor workers by reading logs/.log — never attach, no watchers.

Founder approve/release gate (founder directive, adopted 2026-08-28)

  • NO work-turn dispatch without explicit founder release ("go") for that batch.
  • PMO stages TASKs in inbox-work (queued, not dispatched) and presents the batch for approval. Exception: none. Interruption: kill at tool boundary, record lineage SID, reconcile from logs/TODO.md.

Shared tooling repos (org standard, 2026-08-28)

  • Canonical source: /home/_crossfeed/tooling/{agent-stack,credentials,integrations} (group users, setgid; commit via ../commit.sh ""; never secrets/ tokens/session pins/logs in git). NO founder-run scripts from /tmp ever again.
  • Fix wrappers/screens in agent-stack repo + reinstall (keep # source: stamps).
  • Offstage/COS flows: clone from tagged SHA; changes back via git bundle in /home/_crossfeed/outbox. Runtime secrets live in ~/.coordinate/secrets/ (700).

Dispatch v3 — quota-metered (2026-08-28, GOVERNANCE.md)

  • Work-turns launch ONLY via ~/.coordinate/scripts/dispatch-turn.sh inside screen -dmS work-turn-. Semaphore-gated (org cap; DEFER doorbell if full), FRESH session by default (small context; turns self-bootstrap from prompt), OK/FAIL doorbells automatic.
  • Long lineage sids: PMO conversations only, never work-turns.
  • Capture vs execution: ideas/backlog from reachableceo land as P3 TASKs or Redmine issues (zero quota); execution sequenced by PMO under the gate.
  • Grinder pattern: big bodies of work = chunk TASKs; each completion doorbell authorizes the next chunk dispatch. No daemons, no watchers.