From 00023211314de13c94e004627a269d519a9ffd5f Mon Sep 17 00:00:00 2001 From: randypanding Date: Thu, 27 Aug 2026 03:29:42 +0800 Subject: [PATCH] =?UTF-8?q?scope:=20specs/**=20=E8=B7=AF=E5=BE=84=E7=A7=BB?= =?UTF-8?q?=E5=87=BA=E6=9C=AC=E6=AC=A1=E6=B8=85=E6=89=AB=EF=BC=88.pyc=20?= =?UTF-8?q?=E4=BF=9D=E7=95=99=E5=9C=A8=E5=BA=93=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit adversary-gate(ADR-0067/0082)对 specs/** 任意变更(含缓存删除) fail-closed 要求 survived 审计。本卡为技术债清扫而非 spec 套件变更, 按保守原则不触发该审计面:specs/*/suite/__pycache__/*.pyc 暂留库, 作为已申报债务记录于 issue #392 与 PR 描述。 Card: Cloudbird-Software/.github#392 refactor: 构建产物出库 + 死代码移除(行为保持;近一周 PR 技债清扫) 来源 PR 复查发现物(#176..#390 全量复查): - 误提交 .pyc 出库:scripts/__pycache__(#230 引入)、 specs/IR-0004/suite/__pycache__(#338)、specs/ISSUE-263/suite/__pycache__(#336); 附 .gitignore(__pycache__/、*.pyc)防复发 - governance/metrics.py:移除恒未读局部 val(#253 引入,ADR-0073 计算库) - governance/dashboard-update.py:TemporaryDirectory with 块内 isdir 恒真检查删除 - scripts/sli-report.sh:X if False else 死分支简化 + die 后不可达 OR 链残串清理 (#184/#197-203/#357 落位文件,ADR-0059 口径零改动) 不改动:gate/verdict/drift 语义、workflow YAML、REPOS.yaml/治理数据、pinned SHA。 验证:python -m compileall(除既有 escalate-test-issue.py 语法错, 见 issue 392 另报);bash -n 全绿;governance/tests/test-*.sh 10 套全过; sli-report --self-test PASS=8 FAIL=0;yaml 解析 OK。 Card: Cloudbird-Software/.github#392 ADR: ADR-0059(SLI 口径保持)、ADR-0073(metrics/dashboard 纯函数契约保持) (注:specs/*/suite/__pycache__/*.pyc 经重估移出本 PR——adversary-gate 对 specs/** 变更类 fail-closed 要求 survived 审计;作为已申报债务留档 issue #392 与 PR 描述。) --- .gitignore | 3 +++ governance/dashboard-update.py | 2 -- governance/metrics.py | 1 - .../__pycache__/adr_index_map.cpython-311.pyc | Bin 3669 -> 0 bytes scripts/sli-report.sh | 4 ++-- 5 files changed, 5 insertions(+), 5 deletions(-) create mode 100644 .gitignore delete mode 100644 scripts/__pycache__/adr_index_map.cpython-311.pyc diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c1a5619 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +# Python 编译产物(构建缓存不入库——.#230/#336/#338 曾误提交) +__pycache__/ +*.pyc diff --git a/governance/dashboard-update.py b/governance/dashboard-update.py index 10523de..88f22ff 100644 --- a/governance/dashboard-update.py +++ b/governance/dashboard-update.py @@ -558,8 +558,6 @@ def _metering_tokens(): except Exception as e: print(f"WARN cost: metering 账本拉取失败 {e}——token 指标 pending") return None - if not os.path.isdir(td): - return None since = NOW.strftime("%Y-%m-01") try: r = subprocess.run([sys.executable, os.path.join(td, "metering.py"), "aggregate", diff --git a/governance/metrics.py b/governance/metrics.py index 206ece3..6aaf916 100644 --- a/governance/metrics.py +++ b/governance/metrics.py @@ -59,7 +59,6 @@ def _guard_status(name, inp, policy): if not isinstance(inp, dict) or "current" not in inp or "previous" not in inp: return "pending", "数据源未接入" cur, prev = inp["current"], inp["previous"] - val = {"current": cur, "previous": prev} if cur > 0 and prev > 0: return "red", f"逃逸持续:上一窗 {prev} + 本窗 {cur}([auto-revert]+post-merge P0)" return "green", f"双窗逃逸:上一窗 {prev} · 本窗 {cur}" diff --git a/scripts/__pycache__/adr_index_map.cpython-311.pyc b/scripts/__pycache__/adr_index_map.cpython-311.pyc deleted file mode 100644 index 66015911f6429ef341bb344011c671a125b51289..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3669 zcmbsrTWk|o_D*K}e#C*MgwWCv-c$74t= zM=}(sfe;J?;wFJLlxKM)l+X<%6k36_pEj~oYotgBJbrwUihdxz_S~_Z*a1FPd*{xX zd+(fkp7)${FY0t^1g*ExyJM~jp{IC~X|mLSc-{?zUc{gV#1KrLm1xat$RqHWw2}=Z zd?_o{Dr=CX*W?ZIX2i(O5)BGQ%c%EK4N6wUXuin9^f)>XvE&YkE1ttl33Ck|<92~S z=nA~4mOBIbWWDs3>6~jRgv<pLlwp)8g6V@v}$c!)L{@6ZDh) z$7pfiP4V!V*bm;s@a=ft-ss4=#J>k){(v~N_t}{D?^Wfis_2Sl3*X}0URt%ZnvUK% z7ajG}OP-A#crnMFs&F19{fQa~9U|Y^)zBzS2rRT1t!8PbY>i#R6xN-*v?fTo!Mf zi0`=#5{SO;_~voo_ z%$B)wO4yixaGJ@JJ=ei5Y30+qmdxT`{F^N(%60yyud5_-5?TF|0-Re(}in zV*hFJ%oQy7k-^uA8NE9Y9k~-bIVA4C8NYTi`s1nCVGyKix|h}J*ulFouP-`!T-?7e zv9}LQknnURPo1WB*|{&8toB_r{;|7^AHJvHM?Qe*k3pJhirjE^nk4Jn>vu z@VWH+Tpu_wI{Ixquv;A;y%;-ikKSVZ>pD6r=H!}=Po*OFn;GAxKs_qq9fnYaFRdWh<*_Se&}la%Au5IU@Xv292f$e#NY{FAP(N9t@tEJrTH?PU37+MhF_S&1O$o z-mxC$)Ta=NWu$8+W;>;z6x1%m8Y1q1Sb)3b|%%ZP#tFG!VK;66| z)lU3}KyC$iR|kGmbeX4NYurk}&#?&L%hUMst_~GG0q{(xY15RVD&(Mc<+YPr&@O^N zTYwYP+y4n0I4RP4yqhfVq5W0frZD3Q-F@fA%T;<>Q+Cu9c_W_q#&H3&X_=e<`khR9rpM94xL5 z6|W8#uMTO}gf(kCwUPXpUYC#iML+kEey+bGq%RBW%YypKOB+3FBD0EuRFS97yLMcq z^S1cOKyy%45mHrzRTUFRE1NSkZ(M8ey&E7eH3zjzL)xWb?a~Pnengfnj}#P5Ahl|a z1iZ$Gp`cfGOy;wN4D-W=`LHnatqDZvW=9M~K@b)?4MMf%Ek9oSAic^5+WU$F()G2aB{Yc~C>uE>}HRPU7)O0+0WQ#}D;X-3-OU zLIR+mG{G(1Vl$b_C@DTTT(UR?1~`%+78NEFV{bH>1hvW35{Jv^Is8K0LI5w7AGg{Wr diff --git a/scripts/sli-report.sh b/scripts/sli-report.sh index f7dd9fc..a43fc14 100644 --- a/scripts/sli-report.sh +++ b/scripts/sli-report.sh @@ -152,7 +152,7 @@ except Exception: pass esc = f"{(rev+p0)/len(merged):.3f}" if merged else "N/A" # 抽样:seed = ISO 周(可复现) isoweek = now.isocalendar() -seed = int(f"{isoweek[0]}-W{isoweek[1]}".replace("-W","") ) if False else hash(f"{isoweek[0]}-W{isoweek[1]}") & 0xffffffff +seed = hash(f"{isoweek[0]}-W{isoweek[1]}") & 0xffffffff # 注意:str hash 进程级加盐,非跨进程可复现(历史行为保留;换稳定 seed 是行为变更,另行评审) sample = random.Random(seed).sample(agent_merged, min(k, len(agent_merged))) if agent_merged else [] print(f"auto_merge_rate={rate} ({len(agent_merged)}/{len(merged)})") print(f"escape_rate={esc} (reverts={rev}+p0={p0} / merged={len(merged)}, drills_excluded={drills_excluded})") @@ -197,7 +197,7 @@ $REPORT BOD gh issue create --repo "$GOV_REPO" --title "SLI 周报 $WEEK(自动合并门禁自身指标)" \ - --body-file "$TMP/body.md" || die "周报 issue 创建失败" \n || gh issue create --repo "$GOV_REPO" --title "SLI 周报 $WEEK(自动合并门禁自身指标)" --body-file "$TMP/body.md" + --body-file "$TMP/body.md" || die "周报 issue 创建失败" # 抽样审计 issue SAMPLES=$(grep '^SAMPLE=' "$TMP/metrics.txt" || true)