90 lines
5.0 KiB
Markdown
90 lines
5.0 KiB
Markdown
# 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-<yyyymmdd>-<HHMM>-<slug>.md,
|
|
CANCEL-<same-slug>.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/<slug>.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-<slug> bash -c 'cd /home/TSGCTO && env HOME=/home/TSGCTO
|
|
TERM=xterm-256color crush run --quiet --session <SID> "$(cat <prompt-file>)" >
|
|
~/.coordinate/logs/<slug>.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/<slug>.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 <repo> "<msg>"; 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
|
|
<slug> <prompt-file> inside screen -dmS work-turn-<slug>. 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.
|