Give every acq sandbox (sbx, msb, future ppp) ONE consistent, deny-by-default egress surface via a neutral network.tier vocabulary, with a curated shared balanced baseline. Design in ADR 0002 (isolation) — patterns PR #299. Approved 3/3 (consensus + tradeoff panel); default set to balanced for sbx/msb backend consistency.
Design (see ADR 0002 / PR #299)
network.tier = strict | balanced | open; all tiers deny-by-default.
balanced = deny-by-default + curated SHA-pinned IN-REPO baseline ∪ per-kit caps.network.allow.
- No runtime threat-feed; reputation feed = CI-time check on proposed additions.
- Default
balanced (maintainer decision 2026-08-07) — matches sbx baseline + quickstart ADR-0018 msb default-on. strict/open explicitly selectable; GFE SHOULD pin strict.
Existing implementation to adopt (do NOT re-implement)
Bret's feat/msb-balanced-egress (quickstart, ADR-0018) already ships the msb half, default-on:
- Vendored
acq.backends/msb-balanced-hosts.txt (verbatim sbx-balanced mirror).
_acq_msb_balanced_rules_into emitter: --net-default deny + translated --net-rule allow@…, DNS grant, crl*→*.digicert.com widening (logged), SI-10 input hardening, ACQ_MSB_BALANCED_EGRESS toggle.
The follow-up work should adopt this emitter + host-list under the neutral network.tier contract and decide the canonical baseline location (ADR-0018 anticipates migrating the vendored file into a patterns kit).
Sub-issues
Governance
What belongs on the federally-shipped balanced allowlist is a human/CODEOWNERS + security-review decision. Agents propose (with the CI reputation signal); never self-approve.
Sequencing
ADR #299 → schema #300 → baseline #301 + CI #302 (parallel) → quickstart adapter #294 (depends on #300/#301; converge with feat/msb-balanced-egress).
AI-assisted (OpenCode); consensus-reviewed (3/3). Requires human review.
Give every acq sandbox (sbx, msb, future ppp) ONE consistent, deny-by-default egress surface via a neutral
network.tiervocabulary, with a curated sharedbalancedbaseline. Design in ADR 0002 (isolation) — patterns PR #299. Approved 3/3 (consensus + tradeoff panel); default set tobalancedfor sbx/msb backend consistency.Design (see ADR 0002 / PR #299)
network.tier= strict | balanced | open; all tiers deny-by-default.balanced= deny-by-default + curated SHA-pinned IN-REPO baseline ∪ per-kitcaps.network.allow.balanced(maintainer decision 2026-08-07) — matches sbx baseline + quickstart ADR-0018 msb default-on.strict/openexplicitly selectable; GFE SHOULD pinstrict.Existing implementation to adopt (do NOT re-implement)
Bret's
feat/msb-balanced-egress(quickstart, ADR-0018) already ships the msb half, default-on:acq.backends/msb-balanced-hosts.txt(verbatim sbx-balancedmirror)._acq_msb_balanced_rules_intoemitter:--net-default deny+ translated--net-rule allow@…, DNS grant,crl*→*.digicert.comwidening (logged), SI-10 input hardening,ACQ_MSB_BALANCED_EGRESStoggle.The follow-up work should adopt this emitter + host-list under the neutral
network.tiercontract and decide the canonical baseline location (ADR-0018 anticipates migrating the vendored file into a patterns kit).Sub-issues
network.tiervocab (default balanced)balancedbaseline data file (seed from ADR-0018's vendored host list)Governance
What belongs on the federally-shipped
balancedallowlist is a human/CODEOWNERS + security-review decision. Agents propose (with the CI reputation signal); never self-approve.Sequencing
ADR #299 → schema #300 → baseline #301 + CI #302 (parallel) → quickstart adapter #294 (depends on #300/#301; converge with
feat/msb-balanced-egress).AI-assisted (OpenCode); consensus-reviewed (3/3). Requires human review.