cluster: gh-egress exit-code band + unified python3 scan + Phase 2 rollout#256
Merged
Conversation
Wrapper-origin codes decouple from gh's native space: 10=privacy net, 11=mention net, 12=unscannable body-file, 13=attestation missing/invalid, 14=usage/malformed args. Invariant: the wrapper never exits <10 on its own; any rc<10 is gh's code flowing through exec — unattended callers can split "gate refusal -> fix content" from "gh failure -> fix auth" on $? alone. Tests re-anchored (26 assertions) + new gh-native-passthrough guard (stub gh exit 4 surfaces as 4, not confused with the band). tagging-collaborators.md literal synced. Refs #227
One python3 parser replaces the jq/no-jq dual path whose results diverged per machine (jq: projects-only; no-jq: whole-file wide — a secret path under mcpServers[].env dispatched on one machine, refused on the other). Taxonomy: projects keys + path-shaped string values under sensitive key names (key|token|secret|credential|password|auth|env); public tool paths stay un-flagged (#203 item 2 preserved). python3 absent / parse failure fails CLOSED to the bash-only wide net (over-refuses, never under-matches). Tests: env-secret case + no-fuzzy-match guard; de-jq'd conditionals. 57/57. Refs #225
…226) All executable comment/edit call sites in idd-comment (headline scenario), idd-diagnose, idd-implement, idd-verify (master/pointer/merged-findings), idd-close (closing summary capture) and idd-update now dispatch through scripts/gh-egress.sh with --scrub-attested (level per rules/privacy-scrubbing.md) and --mention-attested wiring where mentions occur — the #117 mention net + privacy nets are mechanically enforced on the comment channel, not just prose discipline. New drift-guard gh-egress-rollout (24 assertions): wrapper presence + verbatim refutes of every pre-rollout raw call line. Whitelist documented (gh issue close / gh api PATCH comment surgery are out of wrapper scope). Refs #226
This was referenced Jul 11, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Refs #227 #225 #226
Summary(cluster-PR — 三案同碰
gh-egress.sh,依拍板順序 2026-07-11)f2187f1):wrapper-origin 碼全數遷入專屬 refusal band ≥10(10=privacy net、11=mention net、12=unscannable body-file、13=attestation、14=usage)。不變式:wrapper 自身絕不 exit <10;任何 <10 = gh 原生碼經 exec 透傳 — unattended caller 憑$?即可分流「gate 拒絕→改內容」vs「gh 故障→修 auth」。新 passthrough guard(stub gh exit 4 原樣浮出)。f623d26):單一 python3 parser 取代 jq/no-jq 雙路徑(雙路徑對 mcpServers[].env secret path 給相反判定)。taxonomy = projects keys ∪ sensitive-key 下的 path-shaped values;公開 tool path 不誤傷([FOLLOWUP #202] Privacy-gate mechanical-net precision + wrapper hardening #203 item 2 保留);python3 缺席/parse 失敗 → fail-closed 寬網。dfda28f):6 個 skill 的可執行 comment/edit 呼叫點全數接線 gh-egress(idd-comment headline → diagnose/implement/verify/close → update)— [bug] AI-generated comment 中的 @mention 可能繞過 tagging-collaborators 5-step protocol (sister concern from #116) #117 mention net 與 privacy nets 在 comment channel 機械生效。Checklist
Generated by /idd-implement cluster mode. Do NOT add a GitHub close trailer — IDD discipline requires manual /idd-close after merge.