Macro-2 Channel Decision Ballot — R2-B2 (2026-06-19)
Macro-2 Channel Decision Ballot — R2-B2 (R2-D2)
Date: 2026-06-19 · Workstream: R2-B2-MACRO-2-OWNER-DECISION-PREREQ-CLOSURE-READINESS-2026-06-19 (Deliverable 6 of 45) · Editorial revision: rev1
Class: channel decision ballot / decision-prep · READ-ONLY · NON-ENACTING · NON-AUTHORIZING · RECOMMENDATION_ONLY — NOT AUTHORITY · NO channel selected · NO write performed.
Metadata convention. Editorial revision (rev1) only. AgentData storage revision/
content_lengthauthoritative at read time; not pinned here.
Channel-authority lock. This ballot lists the candidate/risky/rejected channels for an eventual Owner decision. It selects, wires, installs, promotes nothing.
RECOMMENDATION_ONLY — NOT AUTHORITY — OWNER_GATE_REQUIRED — FUTURE_TECHNICAL_DESIGN_REQUIRED. Any wording that reads as a selection isCHANNEL_AUTHORITY_DRIFT→ HOLD.
0. Status and non-authorization
STATUS: PASS — engineering / decision-prep. A five-channel ballot with dispositions, recommendation-only. It selects no channel.
Engineering PASS ≠ authority PASS. Default disposition: HOLD. No channel selected/wired/installed/promoted; no pg_cron install; no contract promotion; no worker enable; no DB write/DDL/DML; no TD; no blocker resolved; v0.1 not overwritten; v0.2 not authority.
Evidence basis — FRESH_READONLY_EVIDENCE (2026-06-19 RQ-4/13/14/16/17) + INHERITED_KB_EVIDENCE. Reading discipline: main process, no reader-agents.
1. Purpose
Answer macro question 2/3 — is Path 2 (channel decision) the best next path, and can host cron or agent-api be recommended more strongly without becoming authority? — as a ballot. The channel is an internal of B2 (B2-AC-7); reading its substrate does not select it.
2. Sources / evidence read
The inspect-producer TD-prep §11 channel matrix; the Mega-Gate R2-D2 channel-authority recommendation + host-cron-vs-agent-api brief + channel proof obligations; the 30-file channel evidence (substrate summary, host-cron, agent-api, pg_cron, queue, liveness-gap); the fresh RQ-ledger. Read directly, main process.
3. Accepted baseline (carried)
5-channel classification (recommendation-only): host cron = candidate; agent-api executor = candidate; pg_cron = risky/future-gated; job_queue worker = risky/future-gated; manual one-shot = rejected as standing channel. Substrate fail-closed.
4. Evidence / analysis (FRESH 2026-06-19)
- host cron:
wf_host_crontab_snapshot54 entries, 0 birth, 1 nrm-lifecycle (RQ-14). Readable, unwired — read-only first obligation met. - agent-api executor: Up 2 weeks healthy
:8090(RQ-17); 2 contractsDOT_KG_EXPLAIN(DRY_RUN/endpoint_bound) +DOT_KG_EXPLAIN_VERIFY(VERIFY_ONLY/contract_ready), 0 birth-bound (RQ-16); switches OFF (RQ-13). - pg_cron: absent (RQ-4) — install is a write.
- job_queue worker:
queue.worker.enabled=false,queue.job_substrate.enabled=false(RQ-13);event_outbox215,607 undrained (RQ-8). - manual one-shot: the 2026-03-21 SSH+
docker execpattern — structurally unfit as a standing channel.
5. Channel ballot
| Channel | Disposition | Authority status | Reason (fresh) |
|---|---|---|---|
| host cron | candidate | NOT selected | lowest blast radius; proven sibling-scanner channel; readable & unwired (RQ-14) |
| agent-api executor | candidate | NOT selected | governance-aligned (contract-bound, observable); healthy :8090 but 0 birth-bound, switches OFF (RQ-16/17/13) |
| pg_cron | risky / future-gated | NOT selected | extension absent (RQ-4); install = infra write |
| job_queue worker | risky / future-gated | NOT selected | substrate disabled/idle; outbox 215,607 undrained (RQ-8/13) |
| manual one-shot | rejected as standing channel | NOT a channel | violates Điều 32 §2.1; the only legit residual one-shot is B5 (separate) |
Result (RECOMMENDATION_ONLY — NOT AUTHORITY): host cron and agent-api remain candidates; pg_cron and job_queue remain future-gated; manual one-shot remains rejected. No channel is selected. The stronger candidate framing (Deliverables 7–9) is a comparison for the Owner, not a selection.
6. Owner-gated future work
| Future work | Gate | Forbidden now? |
|---|---|---|
| Select a channel | Owner decision (recommendation-only inputs in D7/D8/D9) | Yes |
| Wire host cron / bind+promote agent-api / install pg_cron / enable worker | Điều 32 (+ per-channel) | Yes |
7. What remains unresolved
- Channel not selected (
CHANNEL_AUTHORITY_DRIFTguarded); substrate fail-closed. - Liveness for a birth channel is unprovable until one is wired (write-gated).
- Blockers — all OPEN.
8. Ready for GPT/Codex review
Yes — as a channel ballot.
Core rule: host cron + agent-api candidates; pg_cron + job_queue future-gated; manual one-shot rejected; no channel selected as authority.
Default disposition: HOLD. Engineering PASS ≠ authority PASS. All blockers remain OPEN.