ops(tickets): redmine 490-499 fleshed; session artifacts tracked

This commit is contained in:
2026-08-29 05:24:34 -05:00
parent c01b3d6295
commit fab1f48fb8
44 changed files with 846 additions and 2 deletions
@@ -0,0 +1,89 @@
# 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.