From f1e7387336b40b83c35101de8cadef6a4c5b4c79 Mon Sep 17 00:00:00 2001 From: liboze2026 Date: Fri, 15 May 2026 12:04:56 +0800 Subject: [PATCH 01/29] chore(gitignore): ignore .viki/ (local SQLite knowledge db) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit teamagent init materialises a per-machine SQLite knowledge db at .viki/knowledge.db (~248KB) — regenerated each install, contains a copy of seed-pack rules. Don't ship per-developer state. Co-Authored-By: Claude Opus 4.7 (1M context) --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index f9f0cdc..acd15b9 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,9 @@ node_modules/ dist/ .DS_Store *.log +# Local SQLite knowledge db materialised by `teamagent init`; +# regenerated per-machine and contains a copy of seed-pack rules. +.viki/ # evidence files under docs/plans/ are commit-worthy proof artifacts; # the *.log umbrella above must not swallow them. !docs/plans/**/*.log From 9ee650cfb50f167068526bdf6b5acbb140aa5f2b Mon Sep 17 00:00:00 2001 From: liboze2026 Date: Fri, 15 May 2026 12:05:15 +0800 Subject: [PATCH 02/29] docs(verify): add acceptance SPEC + first sample + verification-tooling plan MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bootstraps the «套件 2 验收报告» half of WORKFLOW.md step 3: - docs/acceptance/SPEC.md — hard standard for the report (中文 + GIF + CEO-readable + before/after, supersedes the old VISUAL-PROOF-* trio) - docs/acceptance/2026-05-14-hook-moment-block/ — first hand-crafted sample report covering core PreToolUse hook capability (real ffmpeg gdigrab recording, 33s 1.16 MB GIF, before/after evidence, recording scripts to reproduce) - docs/plans/2026-05-14-verification-tooling.md — bite-sized TDD plan for Phase 1 (GIF recorder) + Phase 2 (HTML generator) automation - docs/WORKFLOW.md — repoint 套件 2 references from old VISUAL-PROOF docs to acceptance/SPEC.md + sample Today's session (2026-05-15) follow-up plans for the remaining WORKFLOW.md ❌/⚠️ subsystems land in the next commit. Co-Authored-By: Claude Opus 4.7 (1M context) --- docs/WORKFLOW.md | 8 +- .../assets/evidence-after.txt | 12 + .../assets/evidence-before.txt | 7 + .../assets/still-after.png | Bin 0 -> 202888 bytes .../assets/still-before.png | Bin 0 -> 168469 bytes .../2026-05-14-hook-moment-block/demo.gif | Bin 0 -> 795838 bytes .../recording/README.md | 42 ++ .../recording/demo-scene.ps1 | 69 +++ .../recording/record.ps1 | 99 ++++ .../2026-05-14-hook-moment-block/report.html | 293 +++++++++++ docs/acceptance/SPEC.md | 82 ++++ docs/plans/2026-05-14-verification-tooling.md | 454 ++++++++++++++++++ 12 files changed, 1062 insertions(+), 4 deletions(-) create mode 100644 docs/acceptance/2026-05-14-hook-moment-block/assets/evidence-after.txt create mode 100644 docs/acceptance/2026-05-14-hook-moment-block/assets/evidence-before.txt create mode 100644 docs/acceptance/2026-05-14-hook-moment-block/assets/still-after.png create mode 100644 docs/acceptance/2026-05-14-hook-moment-block/assets/still-before.png create mode 100644 docs/acceptance/2026-05-14-hook-moment-block/demo.gif create mode 100644 docs/acceptance/2026-05-14-hook-moment-block/recording/README.md create mode 100644 docs/acceptance/2026-05-14-hook-moment-block/recording/demo-scene.ps1 create mode 100644 docs/acceptance/2026-05-14-hook-moment-block/recording/record.ps1 create mode 100644 docs/acceptance/2026-05-14-hook-moment-block/report.html create mode 100644 docs/acceptance/SPEC.md create mode 100644 docs/plans/2026-05-14-verification-tooling.md diff --git a/docs/WORKFLOW.md b/docs/WORKFLOW.md index c3430ea..431ddc1 100644 --- a/docs/WORKFLOW.md +++ b/docs/WORKFLOW.md @@ -64,7 +64,7 @@ FIXEDFLOW / Symphony / 双 driver 那一整套(见文末「本文档取代了什 - 套件 1 实际跑过一遍后,系统录 GIF + 截图。 - GIF 嵌入一份 **HTML 报告**,中文。 - 硬要求:**非常严谨、不能浮于表面** —— 让 CEO **一眼**就能判断 feature 到底实现没实现。 -- 参考:`docs/VISUAL-PROOF-PR.md`、`docs/VISUAL-PROOF-FORMAT.md`。 +- 参考:`docs/acceptance/SPEC.md`(验收报告规范)+ `docs/acceptance/2026-05-14-hook-moment-block/`(人工产出的参照样板)。 ### 4 · 本地 review 执行的 CC 完成后,**另开一个独立 subagent 来 review**(不是执行 CC 自己自检 —— 避免自己给自己打分)。**过关标准 2 条**: @@ -117,8 +117,8 @@ FIXEDFLOW / Symphony / 双 driver 那一整套(见文末「本文档取代了什 |---|---| | `grill-me` 挖方案 | ✅ skill 已有 | | 两套验证的「概念」 | ✅ judge harness / visual-proof 文档已有,可复用 | -| 套件 1 自带录 GIF | ⚠️ 待搭 —— 录屏工具(vhs)本机未装,需定方案 | -| 套件 2 HTML 报告生成 | ⚠️ 待搭 —— 需要一个把 GIF + 截图 + 结论拼成严谨 HTML 的生成器 | +| 套件 1 自带录 GIF | ⚠️ 录制方式已定 —— ffmpeg gdigrab 真实录屏,脚本见 `docs/acceptance/2026-05-14-hook-moment-block/recording/`;接入套件 1 代码待搭 | +| 套件 2 HTML 报告生成 | ⚠️ 部分就绪 —— 规范 `docs/acceptance/SPEC.md` + 人工样板已有;自动生成器待搭(见 `docs/plans/2026-05-14-verification-tooling.md`) | | 本地 review(独立 subagent + 打回循环) | ⚠️ 待搭 —— 需要 review subagent、把「2 条标准」做成可自动跑的检查、以及「不通过打回重做」的循环 | | 远程 CC 自动评审 | ❌ 待搭 —— 旧的云端评审 bot 已删,需重建 | | 两把锁 + 24h 自动撤锁 | ✅ 已搭 —— `lock:grill` / `lock:exec` 两个 label 当锁,认领/释放/查状态走文档(`docs/CLAIM-LOCK.md`),24h 自动撤锁由 `scripts/lock-sweep.ts` + `.github/workflows/lock-sweeper.yml` 每小时跑;纯逻辑 `scripts/lock-core.ts` 有单测 | @@ -138,7 +138,7 @@ FIXEDFLOW / Symphony / 双 driver 那一整套(见文末「本文档取代了什 - 锁 / 认领:`CLAIM-LOCK.md` - 验证套件 1:`PLAN-RESEARCH-REPORT.md` -- 验证套件 2:`VISUAL-PROOF-PR.md`、`VISUAL-PROOF-FORMAT.md`、`VISUAL-PROOF-CONTENT.md`、`VISUAL-PROOF-HUMAN-MERGE.md` +- 验证套件 2:`acceptance/SPEC.md`(验收报告规范)、`acceptance/2026-05-14-hook-moment-block/`(参照样板)。旧的 `VISUAL-PROOF-*` 已被 `acceptance/SPEC.md` 取代,待拆 - review:`POSTPR.md`、`adr/0007-local-review-skill-as-review-gate.md` - 测试 / 合并:`INNER-LOOP-TESTING.md`、`adr/0013-inner-loop-on-ci.md`、`BEFORE-MERGE.md`、`COMMIT-FLOW.md` - issue 生命周期:`ISSUE-LIFECYCLE.md` diff --git a/docs/acceptance/2026-05-14-hook-moment-block/assets/evidence-after.txt b/docs/acceptance/2026-05-14-hook-moment-block/assets/evidence-after.txt new file mode 100644 index 0000000..a72a7c4 --- /dev/null +++ b/docs/acceptance/2026-05-14-hook-moment-block/assets/evidence-after.txt @@ -0,0 +1,12 @@ +━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +🚫 TeamAgent · 模拟 PreToolUse 结果 +━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +▸ 工具: Bash +▸ 输入: {"command":"npm install moment"} +▸ 决策: deny +▸ 拦截原因: + 🚫 TeamAgent 拦截 (置信 0.85) + 应改用: 使用 dayjs(API 兼容、~2KB)或 date-fns(tree-shakable)替代 moment + 原因: moment.js 自 2020 起官方进入 maintenance mode,不再添加新功能;体积约 290KB(gzipped 71KB),mutable API 易引发隐性 bug。dayjs/date-fns 在新项目中应作为默认选择。 + (规则 id: seed-pack-universal-moment) +━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ diff --git a/docs/acceptance/2026-05-14-hook-moment-block/assets/evidence-before.txt b/docs/acceptance/2026-05-14-hook-moment-block/assets/evidence-before.txt new file mode 100644 index 0000000..6bbaa59 --- /dev/null +++ b/docs/acceptance/2026-05-14-hook-moment-block/assets/evidence-before.txt @@ -0,0 +1,7 @@ +━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +🟢 TeamAgent · 模拟 PreToolUse 结果 +━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +▸ 工具: Bash +▸ 输入: {"command":"npm install moment"} +▸ 决策: 通过 (无规则命中) +━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ diff --git a/docs/acceptance/2026-05-14-hook-moment-block/assets/still-after.png b/docs/acceptance/2026-05-14-hook-moment-block/assets/still-after.png new file mode 100644 index 0000000000000000000000000000000000000000..391011a13f943290cacb4c937939e0f910ff3ecc GIT binary patch literal 202888 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� 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⁡y`rhc}w>!|{OgJ-mvne=r;t@;< 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 C53Lpe literal 0 HcmV?d00001 diff --git a/docs/acceptance/2026-05-14-hook-moment-block/assets/still-before.png b/docs/acceptance/2026-05-14-hook-moment-block/assets/still-before.png new file mode 100644 index 0000000000000000000000000000000000000000..4fa31314294e7eca5f30093f06b147940f9b6b15 GIT binary patch literal 168469 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�*0CLx=a70ZXRsCpnV!b&A+esB>dK4he$>nUw;j|1bx2Y z&^hTs=8UksKb`Ld3Wr-^Nbo8bLYHvxQ2_bot0ve7*@=nxIpm#kPR-TbPkh5UMI8G) z_gfPa61c#O=9$vB0-jl1rk7IhVFw#)jsu)TAsI(pyhDKNz*!^n`5OuixrXKyNMFNw zG;r8K8x1VNw8Ng!AS=B8d6=jy7C?}UGlEGR4>OaYdvSKy8V75hsTa8jpjsnv^1!cx zWOfTvVLB&_H%aAxsRyzlkYT}GwC8%wQrkR6^;@>a` z%sM@FaM*)>@Hry(;gO^ZQaz@}IAFTw!l)kIi)IeUC<=}TP^FZ**q&|)Haw_LcgD+z z2Sp=uqbWphr|K++4cjywy6&)opsbg8@^Yk#X7Q^ky zlj2t)6MW^m`zweaIo1=L^E{k9Nd^MXI2g0M=B1uprs1xH?9GH-?9oly(Lrs5v z&N%?#!N}*z(A})_Blbstz$-bZY1ky3i^<7zuf-OQCk4{riM+TmW%#0-R$Ywy3IPSZ z&V9EEIKuXS?DaQo81L(pwo>fp@j!_`NO&LP+uL|+^g5_d}nVf73P|0xGgSF;;sJ|&}y<|nm+Z3y3O zXQC59?4;ctEr7M41pWk?9WVl*2M{fN7-cychDQv)3Kk2vo&l->I;wYn>Ao;}yMd59 zOx2jhfxm>};+EHdGK$iBGiPUKCzpmOD+P`;fWq-6@pRb5V>#jou?FPL2Aff+giJx# zfn-x?+uPUI4m8P&iSh`s@z1ttw@AoySh~`8-#(gz3$d2&en-dsA_qjQJ|Ce#9+yxl zSk7*S#`X3OF14eJlPy8MC34?H^g9GwG)NDM8vci?UzZfboHzZU*1#zR?h@uoNb@7& z?rBb>EA+HvP=5F(A+M>KGC)X7Ow8%d2j~Jk+F-oX`|Rrl6;I%6*Q6i1byg83ucqjA znqFCg!YjxRWkXVYyo!p-KD4;blw||YQzcFkQWyPd64Nlpm)Fp=3C${%(-e{JVz$AN zQjiSjQYSD@SL)WGD6QWm;|=>6e>?CK^xRIw^W`WGD&QgR_9_5%%cnRnI7mSJBVWqg~yXP(_Jn9{*bp9-#BnG@>BX_rMB>fDsG{It5I~MjiwZCyI%n#zs%%c zW;E^ZNu^a+)=w7lsTI=&gk1PHV25XMdJjh|u%sH{ZN#$u*z!_{>)WOwSkw1slMJX@=#-ESenHJz+1#wxC3CM-ty@X@#XFoQns%$&CC;C6H3SrmpZEpLRAkcn zi*C1}ke14rVeDA`9>cKkWVT>&h|@0!O~HA!>vmkLL^!V#X8AMRjfZ%1m@+oMsHmOW zEy1km)%` z9orw}e(N1z`yEYX&zR5B29ghz8htJdN zG4x!D1JVgu)`r>2uY+wO)#~Ib(&I#C%Yqc^wrJxNUcVj=_67$-OG!>?>B64aA?$PC zMiXJl@#=3{+8cx0OociX5;e)PmCR~UtoKXoVk8T)w2KIiWvS&%Xg0&{#SbmYLG;k8xAy|`97q{aP$=$260(>) z;Xo|zUi-UP6`G?HO=sexkRf>R-a4ykEm-g5v=@z|t&%<0Sz6D|BjTIGg-${FbcWFD82{j;4>UA|-0JAMy z!|Wm0b=Y)k^MA?!LRkU*(uC)^NH@tyrmz4tb?3$r6gCbJkiN6;pFYB3z_k%pEm?FO zsV=k8oq%se@2(bH8n+n0vlAMLC2zY1)-Hv z&`Dy_tub!q>pe+EA)zKnpr9l|H*xHz4%^`a6f$uXSBpW|%#nw;LKd8f*9dqHgli2L z^c7e062E+*4$jZd|7bTJxp1;S4?oVdTnY`eGD7y;*oX+{y(O5q-416m7Kcc{j0HZ> zZ)WzM>?P&pto_XOo(E=KoN&Nl6rLCydn+w2-UKx)Y^d~21^qzntvM28vo0J~HC&R= z0}#hR1kqP894_z$!(?}KBP>7&N_Q#g+$j7oe;;_P%fjJ=Z8yV(I&18~6cY@aG_7{O z*Nw6GA4-A6A7A>yH>DUH<&bfRkS3O0B^^byuYX`yTz<4m(^59G8yYOGLLo*#MD&I4 zLu4*1V7=OMD1O;LkaP9kdg7t>YIfg!2z3+Cl#x7=!}wY>r*Gf@+Sok`hW;`54tx9Z z#&aw~c~;#+5ZJP*Vs;zNyGP86iaFc`~bUvul&xD`fS>5B#OZ?M!#Gs6S_AT;EK$U~w`yEp7CDF>(stsv`T2bkGA|CpNfX@ner0?0=j!|iQGM`np;Y* zH_Fm>cju-bgnsBVYm38f5KvdwG&KDE{ExuW`N2wdiVspX5}Gmxqr-E*Rf|;ZhvBvF z-w%I#$0BZY%=FPFd=vL;&YLHPmsh9azZ(A7lW;y%LKDLJ!Px|%?0x4OgP8Too2o4IvD(A9Q~=7%!c~$DLedXNh*!O0EN+ z(mP{c8Ky5{ck@u62=;Tns`B>7Ht;eBgbWF*N~7cll)V3rw;KS!z?^ychaHYhYeY=o zLw+dWz&fCe zS*Pz1-()NJ1x)-$qI;z%9Mwan2f@Ap^R;ZIQ(1&0CpY5~a6y{$#OmO_Y?gnpr;qi^t_2bkca8kJZ9_Js|bF6g`r zK0VgVvDHp`?0ec=>vO2LlIZHJ6<}AD+aywF{Vwo2U}n&Gi{6jpFYsO&cxDi-S>xIOQ$in+R*3o#vy-!| z&eQ%ufp~jb4i39QrSlt@`k09d`98^Wn?sc(srz92OCm#2izgL!FDKagE+k9$7QwC% zt8v`4&~&&al+$c>bWshP*q82$cJ-0~b!lM18HQ9QP2i{yvQ;>HSFlnC%|{ORK&(lL z`tO1`s0>A^`!*!~noM=~M(+k`J-Ijw-$grY-oy}|PE~DuuqsF(Km16R_>{R_8G9z# zf#m%XzEcwc7Y!Ds)ZeR)wRfz&x^g_c`e@ku74(5>WHfi}QAP#%k(jg;Pb6g;r4I)tfvwH`5BnbUuGeFGj-Di_x+RFE(IqZvdczj?8UGk8`dg8|--5|1(BMw@O0W}sP{JK~MMUgC-E|&K$1x7e11D$c6?y%`2FE3*soHWlm*5Jfe~9kzP}^Z9*z78`gU$y6jeN77Ar_kL zgspo5AyLu6(ZlT79KZ8tKhcOdXGt->TJrJWNx@cRmNJNnA@x{t?|KnC!K?UCxm8rC zV0JSS0f4t2EMihV#P_=Vz^Bzi9m?fV-@RsYAX#cZyVx}*ic_!;6>}q;O98%kf_JFW zumw-@^X1|5-*0e=@Or19yyy7JVE)co(X_epR!xQT(Q4U`7Q#K`^6=y2V--&oq4ri= zU;caUnFYmwS(<9?i0H%GJPTe=8)<90Ny+ z7!*>e9Jd^J+ey=MZGQoUveK9LJe%t`&dy$sQR7F1bBlY^W*JwL>F=qv#txJJtXa6Y zM9;d6hyrJEZa}`;4z|rCYqgIgROz=S%{*+$6noj&Te~fMxS=0n)z$$pc;4r0DVDt` zU$c3DQ?YU6I%SI{6Z(<}G z&LGkcta@J+so&BztX{LoM({K>5PUz{+~=HZe?H$zn?KJupS7>u#Tg9_x1mhoNzAbQ zv{=LYUSgFNfAYMpzO{DJv3F^TJr5KJoOS!;=E3u)%HUj{$ldmnMQXOM;-23-$HRUB zlA$uKMKYJU1_R;HzclVEzYECLw!9A&O@2$U(PAGRcWxJ^hkMdyt2)%xYXA7Hz2$8X z8{n%eeAIa?F?z_v3hv=+C*J>9*JFWfMd8I7POn za!1$lUqoYO#TqLIe`vDCl2BdUJv?4uNpEW9H3~{S)%QwtnrktXwR6OtTcL}U9`I4| z>f>A>q{BsTaY393Xl216K{$Vg)0@QOlpC(VMj%OoT*rZh{M>o27MDh>3t@ugcSbT( zxqu1vlc^;%-Fi$d3Y6cX3Go==$!jWShBTSZb2Wm*DI{cnb?&_>9Y}wUx>UXTjL6pQ zZE)TD*42mwyi#1#M1%x-2D&?Pk;r)hB*`7c%SMz<3LP{p)aQNOH)|L)?1D$M!!I|2 zH{YRHv5MkhnoU26?is*yk7(st7SSM#XKEk)x8 zEc-&RsT0g;h)iNr(HkUa`m{b9EBmifN!=AXDDtT3*vQ}sGEtneqY(}8l~;K%HGPfZ z*?_FwmoQ>D(c;*+EwFG+B;FV9QTA09Q_TeP++7=dJiW_y<%czb&6Q9$iiSyPESi}a`{>Vb18&1F1yn1>5{6G#wQo!9J~C%Y_-5DqBfb&E?^3$0uo*t>7}CI`1~Bq?5UjhuCa-%$DAST6f} z9NMZjyI0lX6BOsL*8cH`dhC~@{BBF)dm}ByyA<_bI@Q|xJD01h_hY$H&Dku}?FP0L_ zk28qAvQY*^CnsE`@F$8$sV)0|IbU#G)jdoZnQXaif2T|kaTGE9Y`JDUWBBa;jJAgI zHM_ndS@)}n$3e!K1;Q#~2%kH+{e$wIv--EJ-;8Z}WhAm+Q!#i7GEd7qd9p;wHU(Q% z+=&)}YIdM1IX&?Id3`ZPb{kVu5yb2srteyQH`z%2^i{z&vCVAH&A0`|o6Cxi(w^Hw zLyb z^7_TZ@3yM`qpbD*KHnG1FmCl|IQvF-w*5a}`~~^mBev4LK?b7Metht-(_LE98tD(e zcL+I=h2h|Ba4VwaBxNb;-Y=dGRL)yc26T zzpIfEkE+-a(ag25y>>Ke`I180Z{B$yoC47JUwKHN3B}@HRT!K^b2U*mQ4%#G_nSGh zpGJHnY^OLE>P=PKnyb%!o~5O4u!wQ7^X1*eYP+59@XbNOr;>C07rs9))c%bi^ZQ$P zeY&}HIkB$NSh?zY(a=fqB5nOd{>hV^@AvtU9f(G=d3tBnsTWY3ty*bDUp`Wcn2nwl zl{?u=f{vs0cqOuud(mnKv_8eXMJmzC2VBi-o=BZmH6WI@{YS&E_Z|~+pTc}3Zt1&h% zfnEX$Jn09J^}Tk>z>ou3z=Z)L3Mp!SJ@(vRT<(clx&6kp!Yj~!;7^+?;TY@@$4iz3 zZ#3#!agr6CmGWNMn7B0Yn~q~QrHfXJuXvLEOnnT)V*c~7alf+1&n}0K`dB(lqHhZ! z_}@vHd_a*lchliC1M!&;;YQnl7;W(K zscxyzNbLyxns-K{HCsy=*<}aMEUwAK{R|$9Tq142!m_?mnmZ=6#{Bl0Zc;Bz02)mgM))-FTb95 zk<`5uR?>&-i}BC;*0dz3bop8gZb!3u=8*7O2Bok&tDpZWh1@xN63DAX_i78(A0#zI$Fc3f2^#7yE0^wGa7N`)qRs_%&x_ZJ|na_Mm>vI2F;;Boau&XAj$w{H#aV?L{hODbj?@QW%-LhuOG}<;T zlq>dAa+|;GpEieVrUJ3-IG4}hG}ko^C^Op1H?Mdi8D41n%C>vjKYtsmz!hvSH77*c z=b6dLL`7`V<2oC$80Yb-bF~Vr);VWBRy6i8788^FB`HWfjjQ@eJcqgxEf-+h00$bPqIw${~DV;TBiy@<}!l%)_73aI@XIBw?0>dW0O3%VFIm(ZsXCgIw|24Ggcy`g{3afkGt||Yn zv&J0OgAJDe+z6x13nnFWA#vrVVBmFD1ozmGRd|Zv){%7*(4Z)XOz00S4nt!_=NC;hL9Npbe&fqR8mqiypFfMMW5VW*lX|9w# zs($8HA$&#P^(Ihq3Ey6+sbp>DZ`(f;8q#K;Lg;g>WV^4JPtj0{h;4GJ_SVE-X<8-l z%K1@8-41r-{d1SE&bo_P?CtM-nps_XBa2-GVH_z_TmG`Z1#w%I4a}?`+BkZ7ol$me zP`tfuFl62I&1@)_XWyP_pCPTViRdk2P`=@3J&va5te!8Ck?YqE&3b;f6SU{uUw!d7 zmS(Umw#Cv+w1tc)<(#>hzob6yNafz1c%@B}vfjX{l*6we!8ndTYX`flul$pdj7**} z9W!J7A_(MVmlwVge=9Cb>s9|hu6(YYr0o2*;iFYc{kyZw+K#tHNp?yvZX%F` zxLWz!&O%mvx5ot@37#uA+;e=dKJ2Sq`m8&bqP?P zSRW%{giN@SfF=!yNpgwUz7b8XC%&QcKK);vZhe_+@ty86hKH$ZTfL1=R%>Fax|@SO zq$Sfc*3*&Y#wSNVm-4-+KY7d>C%6=k98C;}2s{v-*kj%$rF(u!rLr&gP1#B3lBvkR zZ!d++vk%>Gz&ZMDf(M;`gVL1=mkjCAL^rNt91S>zhW$t2c4L#+Q3=*a0s>PbNh#L+jadHLi`BJ@52HvT{yhk-)>`} zin_g>Ri?2Vy!3f>x2ffc(v7Ikr_0%v-nQ3KA|;vsJS;{cYWifRAM03zeZ5MK@cyf_ zA&If6#;p68lF0q13ZA@PYBwJI-Us2s zZ&w@4rCbw#@|+b-qDLi-R3SX_4?uO#;`%F|jeI3{`J?ld+iNF)i!~9QnBVhN($(E{yqL^LnWQIK=SWA9o~PO2L!7_rgAN-A zb#o|u>@BL|x3wqMrx$W}IdRkTCn@%74%P!EwSq*-Bu>7?Zndve?gdWBbzB99*UMcd z(tMMp`ay8`lvXeFj5I6ho<3#-pIHC5*S-A|jHg|fe6kmbeR^xsKhLDL;wS`0jJD>? z-&Ne!D}gdO`1WQ(`7-@9j|6h56hsm)F`~bE4?juyz<{e)J&WxXyt-O$7c1{bb1jHX z=Bym`_*oJ`$eJ<@w%d9|_5(Ksga~>Ut6^IqfsOsk^^+x5A^kZq#%sioF==0iX`MRm zwAkO#bqL?Iy5C0oF3){x#mt=M778-t^?Pbvr*|ZZh4JhE&~(;8Rd;O{RzSKzx?Ab) zZb>QWPU)8J?(QxhX^<{yknZl5?uKvk&Afjz48u9+clN&Twbr%LR1?+LS|xo`q(&$g z)hINOYDLCYP zBg?C49_)dSB)Lx;$Rzv0#hcPyks5UIxt^_wh_VM6NDJ|w=C*2|FB9%FP3g?5~Y#6i_ zWibpS){W`YPy{4<3V9e6RK;m}3My31~TE{rNRJ`Vh{Bh?g3>kOnFWilO<) z6V5tE^O-{eu_RYWIhb3DP%qIvu+lB4p3&7g!tRPbHp_4!N8!k0Jvd*9d||?~@Mh!) z3Jv0%CU2>&6gO!@u(}mX2n^r@#=2t(rtq;p_e&mW;sDs?{V?h@7WV{OOwu3*`RA7% z76#_MR+?C8y_e(mt7WLH&1K_gxF$ui5-n|+nl3kJ@z%UtyA5~_H_{m5G$(DF!_BLp zQkUr2r>p7XK-4%^-pwhh7_BKb>qjj-pS#f-Au5> zaNAV^w6GHhfDcoCu+kt10>*3Jk1dZ$!{5p+?lCNe_TWQ=X)e5J6gCHtq?d^t`kLMi zxTa+6pQ+S*+I#YY(d4@t7nM7;VqDc1QC?(|>rdtx-M5dt^Z)Ufkn644eyitd?RHR< zqLkyMqgjM5jVbks-D!aPcpi-qRD@`l$LysWbL2LS zw1=)8y~0oQx7r%PKF}Bv7^*Q|{i7Z$cy%wNcw2#4siDR}dW+G7uF#~;)Yr_w+E1On zRsgImfOetu>>jm~y(>^QOw#Jz4FhZ=9!`J6ZZE}lKlbg<=`|S0147}W-012)a$-fm zAFRE-VhfgR$}AnEZd8O7cJ;004o9mOk^wZ+rCc;xrs}XK)OvR2BO3t^Zf>U>MgnBZ zpzGh?z~Ih>gqdAF+U*?>#PIyWa7`tfx^4!u;i$A+e@wqdY`IX=7PXN|F(I&7y`f7M zhh??aKGG=tT+z76k*G5aPa3&VkzQgqE&Y!L%^mnj z3N!&Xq4wFUfW0RUayBNk!~g7u{PN^x_w0!dept00QD*cO)8l0LM||}Ucf~nyRhS5r zx7ZRh6-`$?)j17T%My)epHf^{yJ#SL$tE1#8D3`CjhA2-ifwSBvmT|=(XyG1%DQ8a zahQ4$@zo){J`ac~wH>y-L$yzo6jAXEB_DEhn^ec7O-zNmtuJ#MsS}@^q-wC7>-gh` ziC!!?cdEyWTVLZv7AO_b?5((v+vp27Ce}l^lI1s#k+AN*Cz@kV<=KCqpnxd6-S4xa zVLEA^S{m7{`~&T|B8)MBWV(9E8O&U-n_F!w&DVzYsj4E9+66Y%z+qSRw4Va>5!QdG ziv1B0M{9+S{A~nyaa!18ggFC0{%We9P&41Rnwj+gFwSI1V zTYTx*Qa89>|4yY2{tU2A8{COT@%JkE5Nkzol1nG?9*tc zHv>HrI*y57tcVyV!T5o`-dz9+7O-o7X1}JCjZo}o_Doe;ERxIu&CZieq*D|iER&#i^tuGL&_nmuIE#Ae;-%< z@2A5vaw41Y-1>vHr4zr!XW}4pV!0!Z;TA)23dAz;Kr~m_XmiKODdNk=1_1&6$=i%q z%h2kgO}DUlP6GA(rmd~^Pjp9Pc&wl}`ll9hggsf0pk{~x$;UKr5RP@E!nq6t` zS~$QR_(F)|WY6m|16is*R$xOFwLYG-c)7pm`9B{mUN5*^X8)&m3*NlH)~ggyE6T!i z*Fgw+z<}nL9iqSJI6{f(ltbYL!UC?#vkczW6-Fo%6Z6#xGI|r$CPT@DJbWOetVx!& zL12OR4@4kAVwcFXDg|?==fj6z$G}i%bkqscGBnn!a?LYU&=ui`9<1_nqYftf+#H0p z3qb%51ez@X{&iWs^1CM9Fb}SE>Jt25(a1U*h)+gZ*aCrULG{&f6dX}nzf}IaKKwRU z>RLPfOdj|KNAl2Gq5EFF>=s>p4us$pXOB6E2FZKWj@R~bAf;t=eEf`qc-aK@18+9U zWZP(|A&$Nufa(QiS{sn=o-C3natT{sCbzgfAvS5rZVu}H6$?Qa0@C<4Tfuq?xT?S- zWb~=%Eer)fM41ikcKu>=6TwLMZ&m~_wF9)X1F$HZ>jf_Lyh-erBQsokfN7e_g{GVx z$ejEbd_}n41H`+2od#F>Ds%?E_W;`THEfE@!D$S! zpf0Bq{*^?WS~gG=v)fKx`$JgGKoXU3DLP(M7}jF#AR2sR$eci;`ypb_3VSwBog6HL z!0DJ<1T53ZX8SlA=#JRyB(NiWN8!f7l5jbe;q-s0!6`9<| zECTfH{)jGDSwH^w+QMmd+Imo|<@0z<`wMu$VHxB;d7T&imr6js{R3DvIVy(gxV&Bl z&%oQ`_!qWIdvUgK+9=I+Wzk}{wC#;f>PD-3G@j==f!^Z$S}z=6R#Mc~Z+!rhGnC=9 z{s(?!-sFIS*bI$B6rZEjRr%lghYm1le(piAYu`L( z4}d{Q{%k2}ZpV%mru26GYRJDtUgx%zmUp*Nc)h<0tf6v~9)*S5bztlI|U z>riD5O!$M~P^Yd*TNwOh*(^3L=Sh7xxQND?`8!FQx;_&YU3k`|pkj(RUFq?VTD zn*}Ch>iDwdf=wY5hQhA^w0A2rPvO8Fa~GlD{RY!jFMMsPtCqTnH;+gQokg9%R_b#3pC8l&AzV!Px%e;9}^zYK3+TFAfD3VRjt1K(t&B zfj@KJU}SYO=Wnlz!8rcMwZ_9gK1Als2H@$y%ZoH+acMLiSz>vamYqTj3CO&RTGAC? z%n20UhMxPmrPwsNBcQ)t2)y=L0kMrb~Rz07irkiJ43~ex? zQ{$9)(Mp^|=PALOV&n$?m6)|elOF}2t z&tEop-Cn$LMQmHJQK<)AXcmyAS8+6Ajy{fvh(5@*AJ^l>2rS<3SwDhYvaH5Dn;d-b zSFy%!u7B53_dd5aL}4muU)j2$6{HmuZjEcY#D=yBoW1WBS7TOU(~5kqCM09{F9-$@ zIPwzF2I2zY2c=zL7>tkdAY#wOr zrAATxYv>1jxY4Ex@_qbq8JG;?7Pr}m6kbsDwPv1 zS{%e=;CUL$9z!fowO$hFw$+$TXY@Iq{x5+`bc|6w`NJGsABd{10{cB%Q~7l)X%?uE zY7+_aVLrgm&$E~cMuQ-28_aD7wdyVi zuyc9d*>wl&kOl5S&qkRmEC3d)`OwapXeCoHa%Oq1|_)g_C+c5y& zK!!~Qqxs%h=;bRtH$n7qapS&WWzy0PK}g{Z!w`}5Y};7awP6P+JkV^@?%aT& zi(aOn!0490#q|a<11_;y;0y&Oyk|h>40^QZ%A|1lm0`o6T5Z_-P0wxUR5FjwYN?+5 zxlN2N3R97snHvg_HoYHDJ_FKOIY1y*Lz0S65ehx3AOyF97!Lz*M$_7>NmD?@|g1r{IVLwqT^XA@G_%JjYCeM?~5J ze)^O5p%(+%NX);vjyn)*ev7_z1(mV~s+B*ix4n9DxEvXi`9Jdo8MX6@R9W)^>g@>t zpBG)#3{^}Z8EXtsvwwD|Tt5r5=!%Z}h&8ICOZ+$U<+tUW!_yrR;Jz$X*(`y-Jd|AK z@cP_V#FdyB2y!ORSKHCe6|OdG_d|?6F|ZcgXOGYIA4ERvsD1zb@8-Dl;W{HOQ~NU} zJhwb74Hiw$(>@Oi;&`st%l(sKF9fj3pU4+j!l9O5btrRJ{yq$ zD78|)SQtS4c(w@K&3wD;kHVj8b(8F7^1TWYE{i531WUn2#jpDx@a=6S+NR(Aig4tOWAfnH{%*k)T&Y97gp8%B zFCZlI8l-P6lMgNs8ft3j2X zfUm$4b&~!;$W$!sD%p|kjf4TZbm>o<_4=?*Nw+7{Y)5SXzGeZD`URy14q~#3|W_s^Th)3UFyYoq{%uGPw$R? z5C~sR>FsNSZ{d=l9VaCmOT$ zJKY(a#9prnxBv-p9g`sn4ka^X!Or))utQZu!OCIzRpNxy;Cpds6&FkD{(8Zn(vo!g zVS{B%;L)mRXlbD;KB!E}+$Gfd;bmutf!5n3O>JQzI=HQr#I-Y}rHc!9d9X7l)qiSc=wS6%5efEHvl_& zROuSIm}s0oLQgz2dt<)7Gdnj(WSYr=k^mQt*QK1Wz3 z9jT&{OAlnuX0t$Fe(6-9GJK~!rHuH6wPEj@w!N1h(pSRO#pG+oo&$v_yoUSd&{zuC zR-%a#K)Hx^^y~?Z{%`E1-#+tz5pg?H0gOmyW7cvuMC-SYr|m5PiZ0Z95m9-GU+B5G zkk4TaN-GXoO|KZ0i-!SMPdJOd8^7mO$|H0P23aR8N-Nv*i?WOU)lb1Tt&yhXapD`%p7uGqbtojdp#e zeRd(kNX@$DQ;^*7+DZDh9qWC&asy7|Yuxdt#yET2LlT^j2!|!EHepMn7Pd*#lq$XcC&s z6^;UiTC0`jI>3GdGzfO6C9M(7ZzV-VX@ifQ^}AeExIY|!?vhJU{3)i_$PTItSq8Tf z4C))*YD4kw{~Ve4HV?qS{FXQb$jF;xULNG54Z{Y$wz@ZWkRpvDI4wC7$vA^~^Jx9J zgqo1Ibyx(QqAOdu5a^{6^mFTPUo9`L-Y;x;jYX>qn2n+!W<-(}3#$c6WxK_N` zGZN9H9R-^xQv;b+qgf*yvEj<9L+#c2c*`k6sZJ>$LEAi$fae{)WBWz&v@?2rPwLRG z!cXs0dpx-pAG8q=_efzcg%_*xRvxdtpfXV)Th^CdzIflQawY}|?_y$#s{^g1y*C0I zg@{RQ&WS-|BJhS#lmWJQgDjQ0zgfru%?J|rlaTo5?i{?c;x$anv1qnhTrsO>`(q|cGeQ`YWs^&fu&skzRd zw|zasdy})IUv^FM6L2?0>jT(y>>k7?)c4fU#OV^SsGtqVzEg^o=O!SLj;02&odw1n z$|W=@4#4H0fU+iXu%&q;^)cb_+3l}`ZOX;)Km&7MCn|_#8g9>n7qV?vv#NkB&>Q%a z*>kM3Sa$04ncxihQsrP5oPRJF9qsHTgJfvbRsu*<9WI)vfB-TIA@_WVLQb7t7Sx!u z)z=U`pB2i?=kuq?%Ad-0gVt$C|J2Bj5US$g26k7 zU+LcZm|9%Qfd|N2#*Hp}+$jCwfXuc#F{) z)lywclYZwsW07*-fH%T&`D?SbvHc((_~`gAEOkl=g_CxZ?#BJc3WEb(Rsb2&t_|oH zCGw)RHA0vn*D`c@a7+XtXeS*V&SUP^3>wW&2aV?n%bu25D;>}GZw+S8-}D5}gos0n zI_HB!F~eiWP8INOuO>@^>FMJ$A(l@B5^9BznXA>k`Z}-i=jtsvI`_!quH!{7O*LpJ z-=TfV%{a4+M(P>Hfc)Psz~#v86dA-%$;zaRLwABvKSU2D#`9G}7A;lz5mERvz>*mdH^Z(9s!G%P!a_3`1k zgdG)76DyKdOH^ELp8uwE8g2n-mDaCKYX0g^%14(BLvfi95z;T6NRxxj+j;UvFDnH( zCK{5jH14+@!C}7z2X+@CCbL`qvu^_cXg&e`f9dSRFEx)5U@gR9W#>cUD?+`_&thPf z;9el}7mL^Ktf7jqwW4n(a|)ng>W@_{C$}Y&JDyi_g~ynoysL^|p(M>OcOz*l8bQq! zvDe*wgzM^R|Hc9iHTF^0?HJW1&`}!S*^$C>IUPIqv$dg~p6scQhl}|I$wuWJ zFdfZwvCYuL*?QwYr?d65IZJtNpEDlKSUQm~xzDxVzU5Vm7k)0*;qNyiyNDc!Qc07D z{XMh8iGL7xSiJL0FV=B0c^=KmV6*VL>xe|ku-F2SPWC}s?O`tKItQGkryQrt9X_ug zzv--kt?)>O&{1c!7dYFK>9uaaJU`9$8&nfaC^SI4rwS3G!$IV*)iis!I(Yfh{x)qc zc~pTNwt~R@_D+hPeD`WK*&AI_&NUg#jIYn2$g}W!(jj1cX|NQzyuOf=B#I0xbu;|} zGe|999!$5$h z->9LvPzcY9##3+&1a#vsaZ_!NnqoEa*6(6t}Okw9t(Zud(+vx7WE zyTRkhiIWX8anZyhdQ<}R@$~bN-H%}B4 zt*sGX=9*}LFJif&WUq46)Wt4j_tUojz{02teX~@(n#J&p!x_@uVY3IWsv`BL#T3@y zdrbH|##z~xf4@rqO*e@{!-Jgb<1Fv5*Q+Uo6kYd%Vn11sc2iyv100i4+YYa15Vl4n zWWtCv$u^@?DjZmC^Kd4l`^WN|%K51W{K9|Vlm2NncqboqAfi(mDG~?L{C=4nno8%e zZuWluB@t!A{YvoR&CEQC!~oSv1%JNvpJT0-z8pbwJh8I6CKI;60#$~fV4ZgXKG%}o z#^fW3H5om`e}~4sXjxuj$>^GUs81oJkH%2zO&cTx{;wp`1;|dN6k1R*cl-00|GqYH^IH>GcT@Sf?hlv<4V9cBQES?UV zgjHse`WMPaAn*$QoA$SLE@LfJiB^+t^q#+{xRPjLWVyk4W@cJoWt4fgEE>HQ-y ze^yZ@i&h{@Lj}e2uN@!Xpx;Mh!Svu@>fhRc>+|_ZDCyxU6?rx<}QtuW&cK3 zNhjrj*uX%sbf;n%=jyU{dsimVP@Rt^Jty)%4jUvY=ZsOaR9Z$(K%k#XNkOxoW8uK~ zP*((jJoM8auOtLIo67`0A$_UW6g>9tPPc9B1!gI;~P zzvDF$_al9)mFeJ3Bb<#zte}ax?q>TMv_0)QR@z-t&gFXX zl46OM6g@aS3g#0-EtLg)pKiSAUEr^1+n9WbS$XY3aAZs0oO>R2>8fY7z3B&uo(aa5 zsc52=wKm6pw3U%fPrnKscAlqeg6RJ8I5)@4Q@U6S%Kto#;qUKQYb^ro-6(vW7Vl@% zU)YyLg;%GJ9$)lto9p^RkO?2Qd=#LE|2!4(SJLQ7h}np3CO+`H$RxB39X~&tueGCC zzw9#Y?Pov!lFt!%j;5MZX@oz1JVp(A_YuE#_^_hM1q4@Fsk}o`|2-*=fD8NzXywZz z?U#2m8!S03q`$n6R1m;-KCUY&QFx)?fA)gN=SBVb0pe4lP!8PwBZ5)j zHFoP7`23GGa*_Si?~~OdwBXB+90ShI1{d^km9q$TIRq`C4}M-S+>l9i{3`EOkOrh9-Vn_KW#(pp3M&%rnB{6i-Z?OMXBY z2F2#)KE7+?>|1Glo%N&dhRkLrH&)~J!v1!oMvR_Yuk{XN`3CD5;2zCX%OuU@jQ&Y;B0HIQQ)!wtOeQ*_DLX!NWMhf$W}zI;qWDng$!lSpj&pe-pgzU zUJeM^xAz47aF{0R4VHcmU*`UxcO$ZSFDrF9cL?^v(GI>@!Meoqu&rL;$qLvlu~dF4 zZggmIF1zg&WbPIB7voI3GJEbEgEraoE#^Gbr@zdNWp++bA2|k4k#+jP;77exJYu7PW+|{a9$8AL+{@Y+H6N#-O1O}$)F2m~ zTkFA10<6T_GKeO`0Yv)dRBx~NY>2N~D^xev9aNA2)M6AgA`X-7D*P@N>R-Bd4eEX9 z((9wbJd_5>Zi94$B1g5@D74*`3Hk;#iUN{z#)p4(0m zD80jDieTvj*EgVLdsXI@0uWH*B!IL7b-A0$FJkNQ^mV%Zc@7DW9Yo-7HuX3ia_9Za z7&}gu@Bh*gi>ylc?~SeTnS_Tmt(60`FiC_#B&6TF#_A8fM>|5a*vyPQKRV*w(V*AM=UQde{(+`PkCy+a^DM5x3AZ8IUx6aWrr#P z#h&$E+J01I^zYw?=RdpP!ca2uYV~w?9@2fC?f&mS>g*qe6ZtdozoH_FZs%inL2CZ( zoi&#;v#gz=9VekZ<^Mu|h-C}-H3cM86 z-yA}|_k3t}&iI>D+Il;F0cduHg-C=vDt$Ui;w)ASX5q3zo2aFp_ z7bj%D92Y@y0gz+-h8Qak|J6{y5cV~Ky^QKF6)*!=if8Vf11Rg`f25APqdKUFntr|j zHkbkWoVXnSwZdT(;|8w+-;EhH;*aZ@Z_53{e&dP|_{(mmLSR*rd!~SHwLSnPM>uY^ zqpjd)B!dy0G~a3ve=23{_lJx;>LaFKH844@c&stGUzwj^>NPqo#J*H6k_t`+UdG>1 z3g_Y{T1=}4GD|N{f0|%_jeT!4H7PK@P6WOEK8tsa+eWD)Q$m_ZW>kZ}{$!$mXdUBT zjQNP8Bn^fTZUc!tfd_}T-OxLyn>7NP)@;2XYe|pWwzE@_rYs||1|83p?F7}{%z&F) zX}Qk|wlwq#t&DOJ?iaU;BU|XMUDpPBv-iR{X#(iNp+k7m63Mee7Ot%~8=F1C5X9Ip z{pc3Of&nWi{hwUp#?*K&sTV3osp|Kq!?87PyyBFsZPSw`nyP~B!+uBBzu3mYG!qi0uxha;i8j^Ddw>@MtW8>-a373f@vtHFo*g!kD z8){OO`86xexn^fG1J*#!7Fz{8!#q^}4TL)p6_0~!)iJrI?cS7T!CB5IW@Eeu;>TNV z=xQz~${ye3j5giHmdx$2|0?BW`FkJr&LWTPldLeJ(@xB_GEjmw z?D6k3mXfJl$W)KsL4fImAopD9GTa>cljy(ZyCv1mzR!x95GDuLH;uT&=V|v^4D180 z`fGD=3|+9ixO{`wsA@j*e;627j`p5q1Rpj>+&P`z7o-m(P}q)Wx;)C$v%lut*8j)p zbMw8MN!RE6Fxnb?dY*Sj^+vk&sf{UkdGW8kjL!gaC&$}Cuo?ZLwY=Vh4qda4jIai90qRI5ja@}3j)dKZs1<)w;U~G{Oc2O+td=Irm^w8% zHlx?RWim@>Ku?VO2_h%aYb9?e?%ANwWj z-Es2tUWE_u|Es3R`{~rH-ZdH%gg|-2WCgKVE*2SB8hkR`r3PQ0u^&FQ5+E0NcRTZU zZ!pbqlm3*sO$V?zhBS4|DtKj|+gM(#Ob!dL!OxHzbE3ISgYhmFF7iyJ$1C z2uTr~5e;gnxpie@ez>B;-nUId#PkV}M_ZD>plapveu{`~kO-~IEZEaKZ~{Dd=Y6|Z zfB?INJN|Di(8oTI00I>`1Srx^qZe0pIQLMeX~KVOb$Ol@Jo0XV#bBwz>k$dxJ7ErQ z(3#Gy6>f@tXb{O}&|s|Ps3!d^t+83Ub2o&(mZpf4&FYwIV3&y&N3@gVA|ch* z-y0$1Af8gjT|m1Ha3o@`G7)Yvhh;}Qadz^k8OmZ?{lTvG9>89z2emtcHG4sO2m?8f zu8-Fhz&Ct3iv#3tLP3|V)7z9*94oGprP+d*RdOiAi-Qsjq>@PMrNMTidTRjN(!m;c z=I7;Ig7Fh$!PM>H72o*=2OS_SEnV7vcL8FI&AYB2@OKlRUOaN|Cws(KomV5oS1I>l zNF8(>T+pO~C~Ai;J=tRHITAeeW-5ISK(es|P`{!HVGe1E{;a80EIZ9rjG2w3FE^aV zdg=jm-)#MHg^pxNVPcInuWF6=}9dhJL$UrUV;c z%0T=5o$z)cFazBy%EhU9OvaE)?bkv;L6txMOTIGjtR;`%Uys!N^K0oO(0SyZTEOWz zd)BuI2x5!XTP@)qEypucOFi`?K`$eU<9f4L`nu^f2^6ze=Q!9Lefy;{RpU#tWG|Fp zw1m2~cbR9W*gWm9?$7E5ZnRE>Wi2U5r9`ko#>k`t)r!60a}jX9HJ?C{9$ay@!{f0R zI~wOcYy+o7L4tpBrh{188;f(6f>Y(*{%?`Kr}-LY&fU)R+Ry-kZu8)UP>I_l;8Z zc8xsg9S!TQc`xa-yCimo&FrgnBZ%DVqVO&N(Cw4%;lW(*BNy@a&?9OB8?9qe2y z(k`8#dtOqd!~3nloW%~<(|fQpS**ndCnfr$70hqMK@*bLD-`i(G!*j722`Yvj9;zB zPGLx5{{+8t54P^!b1Xv@n}D%LD-TUlh2VYcHn>wYO-(BvwG$I!K@3==#4%CBI>!y( z<-OYosnpYMH4K1mIJ5i2JB7vI5crjF5;ZJ`>%xa59-kYTBa)(VUqt02Q{e~t#CRnN zE0eF`>=w%C*vqH`_0tZ4YFto#q_QGZ!UUb37`B-*t9(5ay-Mg$)R*_L2)>6~)H+T~ z-Q?NYX8<4P{G;j;lt&CDeQL4Xt8A8y{E@w)Kz47}qoXDepjeFYmwDjVjd-f#m%<73 z;74^TxQT7S7_(dAE5rJP7WW7$?0|J!w2q12_o~sCmZzhYz|#8tz?=PWBpU$ml4dnU zaOO8@>}fhtm$uB2=RT?Tuq9gy`IF>y21M2_awhJL68ALK(hQjq;8SMX1Rs1 zVi`hSN)4G9b)qu#(Y`nA3u==lvoInrA~#$A;t}ihk)m4ard5QFDn0HaS}jW_p@OE# z4l+jA+~3pteiPj?slM!lO=>988m{Lo#&13gMbCDgG<6M zT|8au<=6{BPd_J)v7Z~chejpRvq$2rj{Ck>DgM)x6x}br@$(bwcJwu3Oia#ub53f-V8nlgd}F4`2dC-F(^1ji&6L@^GHI+h9-hM z^XW@IjkMT;oop9u2<)wBpQ_xEjO;wLJ!&6}3&+4Os0&f0-NkFiA#G4%AX4(F*Q0T_QxOmq$k|_gO za%ofnYBq`DG&#|t)URS^(1e2|6d?_iuG{RCbeGZ!62&@%$gdI1x$sYOPCNMGq zFsN@yXZ!erQm?)4DeB-4J!h7R7S3{VbX^WH;d^E&O1cRUL6{jkdjGfL@GkU`H9 zUhefcZTkwE3Q^Yd0#G$uT&gP$!KZ%Zw*|(z@KZPYTvCppk5fv0f_NVs*Ff8~)6qN> z>2I?!qBK=VL(O=S;vm?FC<2VUm_SZi%uK8gl&soxI7YdVbIR*vAKyitB5@}E(yaS8 zc{R2?P6%6&uTO+Fcc|?Vx1|m=!lkTe*4q&n`!~(9ZoM~ObV{+#=IU%_9$HRcoWy1eFp2R5 zo;Ge)GJsH?5Nqv^Yo!bXjhr8wVI0;x!D8d1zcT%edO0P6MjK$8g`%l7RjBR`yX znSQ7>1ivCwC~R76y7GU1eE;rLQf>+42*B^#0+hDHj_&Fu?XW6ErbQc+`h?6#Ig{Q< z(&w3=0Z+n2MlPFG{QEZ7FeKttIs#4JLXr!u}Km&!C&f7}o4tOEqQX6Lov zwy!<{diL|IXxkSMrp9^f?_3q82)OLlbMuhtwT+psoKWZ99)f+KG%hi4#q(8{OY7$A5<^ptY8p zE9V+4ISGCY1kHc~wf;FzWe?!22U2PpkSMmp94|-6nudY$$^U(thWuav7!tZRZjm5= zj?wvn%c~D)R`7bbTBx%e0?7)znKp$!vo9RnsWW7Ys0jGj*umHqn8_&d81S$GpRn7P zrTsfe)bW^&3H(K%_^?wL^%Pr1oxvvN$3qtivjicr)%v#U`U2CAR4Y@m>N${!i9H zSjnR6vuiiD+33kq1EZNF6N_`VApu+Ny4-v3N2$KpcTH(`|DCy`x3YDS6QI-n`OrE1 z_cxkMKF3AECffj^JHb>u+A7mtzWrFcfPEJmS1WU>E7L4Z&^U6+H7%M{DVp=29bYCX zBA5sMbOUqfFgv&`Ua54b=RliWHG1CiA7&pWWMYUOy`M7 zED9Xr5m^tR6qh_??yv@y7m4;f&F(FzmGskbz#rI4pq*57M> zBIBiWFY=o^J2?MWm0s2Z6wY(u_V}mBlnDCj{v`>zI6N+M54}9DMGf}S=T&|r;>Bc8 z?^%`)tEKSz+#_c{UY<@hK3ZJj1L|sEMQNe2@W0~+YFXu&=AS1N>+^4=A2Pb2lI=3D z|H@w|CT_4=@!aa;cl)9GfsLMIJI7Z_mXseyA=FG^HcSFl{b$v9r6mg_3QD>FVP3)} zGTb+^C1^%M2G+kGBIR5qk=)6S+Rc4oG9@%*M41UBG;3M$utp=uq%a|IG5@6TW~#G{ zxcFYz7vGaD6#Yr>M;kg?)xY5ERwsF7R@q)hjcYT@+YAj*15V06_J*P$s zD|Com2=u=_nn=2UFLgm(UQ19U;;k13_OD)7=P>k|Doq9AQMR^eufsG0u~Kn*m$;aR z3s^O1j!dph4pkWWSd^LQY6YfI`IKLXMh50 zQ5qIIe0-Sjv1!$;4i%`~Z;7@8S-B?&Ykd4|Jwy*I?loLf9{l#2o(QHPT8GTHO6T2jznO>YrH$dwtVlhc8`jo zrVKNf1xa)cQj$j8`lRD!;yr(=HBYqiVX#Dtw~og7UoCEms3fn!v@x6ze?%jU1+p3$ zu>u3wT(e@7;k@b3#aokVv%Pe!A?p-F63`L@gVp5XH%drH^pRu(>Ot)JwRTc-&Kaf# zBYk`e0}NxmS!C)3V1=KD@U zkdcTN{lbjHOV3khfC$fnkxfJ=iG_zFwXSWMdfCflB$#D`@E4qL%h}tl7&;nGQ|@^1 zc4?WkgpVOV#7Y5Wi9yu9v1} ziH$88m-Z}jk;khW9i;_MnMM2XnSJXnRt3mI7j9=6K(nrlK8;)FTtFN`ZF^(7Br_ZmeUd$d%g@OQ%cpDpqBwkFa2Y7I}VOjK{ae}b#--3sPwjQxth#$ z-ej(DK(G(==Qcw~I`v;Y5Rm8$<+1pV2qsCNPXPJ-ing+~20S8em$TyHO#Et`9uGbO1cmMiimN&E8 z#WW0h(81XJay|F8!DfT+5mZk4i=gv}Om><)re$UlNGkJ)gL3RV{U9HGNL6u8C6vYE zn{>Zxdo)=?169m4lZ6!Bhr7$MuWRjXbLEd`O~SQyHUcpVQB|dZ28#d)PfTpvPyh@A zU&?xFe#WY6*G3$M!jIyYF2_k-h_ z7i?NXZul#89@mKXPMwa!x2}&}jxbnJU%%YI#`#ETY$*sk7RFE z30bC&@4dgwHoY&i$8ak1SdD6% zDLLd96s%=EXn+pAEBCexd=j}_T4st!-QXEnuu_m}?0XWs1 z!_rJgYaN2@b(Ubt20a_Ehn3WZhTd6xZVo*W$AH*-q+Q}JBGUD5X9%oS%08>Lw1plj zh}VOTXJmXGPBJpG-!69g`nmFU%Bt7Pwr1-eKYsXT=8wV^IT^0efdefVXXJ+CMqv7% z{>3J%83Sk>S}M>zzyL}+I(k=)l{fO~#)jY2l2lZh!vmHnu=E#@k&}O1R+({_x(T8(Q|Y+yNKFa#MLd z@RQF}ov#0(fJP^XmX_BR{gviQ19jmD`rS>EA`#{m>~nE_US#cILt@KMwkm~#YtO!r zx|Cu4aIvY7s0;}vzfB$|L8*dfebekORRqbY6)%F+@IR;DIWj2W%zC8buMR8M?(Xii z8|}V>O-8%wgY~?fl)}Z~OJY~gdbPf>fPg@|YAFLn$p>1*z@A*#!NHEgqM|yh7rL{& zh2vi&>)Ss;ERc$tTKS*2FzRTw95S2*yK|o}&~5oa_Ybej`uAGs0KbHCUe^<=c`h8% ztJ%crr3PYq7ZEIknr#SLJR-V(&%K?dJrP0w!Jx(;&2uBVd8IPweO39uNL=7+c_dUs zm?dvkt-d>=RjuC%PhrrlC?pg@Dw^%?VmAidrfIUNKIs16a)t>-fpUiT(iV=CgkU+h z*)GVWr(#EcTq-SMybUGow8`wHVL_>8xAB9un+Z>m2osEtme&n3`h_k02Y8>(bTN zxVcNqn((NHU`1py^ixGwKGAoEh|rdd=@l14G?O-DsPcm=qYhctC<>2e=Qvfg1pE8U z3Zbu<8NCNX?DhnQUG~cp^Zf1Y?eT?Yd>tlJucKLLX#KP(=d;>2!|ja25(rpZ^PWj^ z%r)(iZK0J1aqn)?tIKYQXLGGn(uc5)zl!(3gRbZjL+h6MoSVyuPpKAv$4gGvw*<`+ zy#HVvgb)L6cZ(4`-Eb-N9(6_L083XG1~z}|qRSyi)mPSAApOl>uJ{KWk`Ll$h@MMr zqgC5Ync#8fq8f(l5J9D4;p#Y+~6< zT|ddJ;rook(v3o;_M@uVpX|#0eI0ehU_~}V88tKpvAd*4&+nC$tWTNx)y zEl=jujgGw4l>NZk1}PMesV&(m4wcMB_*)P^V~MBrpqI8|-8;d4R!nzQ`in7L?XLt{ zrDF@e5Xt+M+io=cD$d>3EEVL9Z2k8|Qn4nf0F8F~Y>NF-mL5hF>LG2yY@7YL);-H@ z3Oj|vhh59mG0YLBf6<;t)@c~E`dX>=!fNfH>@WJJ4y=;H&E-i!71t#^X#yRd=P#r_ zQXVeyE}-;Hs8<^_omY-}oqv2km#L~#JgUxi3^^=JUETU?54X^P0I++BIcy)$NjF*G zG8aBC%zAm5%UpeJS&5!vQNMbirN82tHSA1d2{-JF3vp>1G=6v(66Ek=59t2Dh8AE) zk{sw1ZrJ5yir8{}=(xmj9a|-0i3$ETf&@JBk??@j6)cS2$76#J_wq~s$J$#4WZ5=d zqcjL8sI;VnfOL1aw4{VIh$t!DE#2K+N{P~4g0u)om!zap65sGV-}~;p|L=d^H*j5N z9LF3pYu2pwIcvU}^Imc-jXJX=hX9d`?U&iV?yW+Yw#uaB?DQNCyB`h4DqEW=`T6&L zensTR-rakyN{k7i0O-4YY^?I_WdoU3SKbDM$80_V3A6 z%mIDG_Op)}8&MRw(!t-?{p{26Ia6*rOa$ViQzbkI_6?H3LXYZBndUE_BAq(}lavg`pr7?~7A^OrOIFa}5#xL6u ze}juT>tNpFZOd=&ro)#vEay%;_0?}M!I$*DMh!BX#iPN;DyP=OuV$de8I6}ht@FI; z^2TBPRg0hPEoA%J=}%EY`r@ta?PPK?j4%>l$vvt*)zegKCA(ubhNY7$!6Id)#kv_!Q&rCHQ6$SFdc^Nt>HIUoZZWtFv*~NK& zrf~-e^iV3|thLGkf=#>UwYmiFtQL<~D89zorMvX5J|jp~>NDM|zrI4VTo{xN51t0!2Za%$?Mfu4*qABIxr*up6)zlhq@N8#!wgg)oRa=Y<7 z>5(Sqp~o^z=siXB(S-5uuXR&kxa6ic@*nY?M%O^`!_NyOu%8SAH1S+IIx!{ zwHFC+U$kDfsWQwRYER=Dq7ks@pN;h$n-RC1|4QezU9efG&kS&OA8|ybkcmifhtX%k z6dO*sFc^XK&sE)DCQ$t1+lF@@4WP7r!kuI2JSVukyzA+ctQ1=Af>Pb$_MCI*U{; zkd~4PmBP0qvH*JBF`=iJ`}`m1F#vty1zxowiu5a@;IAWnrws0dXdp}OwXyK~@!rvq z4I_9d&3=AEA$y{dv0O^=aEuGQtxy2`k`yl64~I<$ZQw++GkiSxd11Im5k) z*P+VA&uJvtZ{jAC!pVxt!kGs9y!kmn30)#&j#2Os2RSHnAQVFT`%6eJDq@KGKekgxa$bB&M|k33HH_ec7+6>+Duy7+}<42wP=r2>mgzWq$xhvQ%K z$)g6hc>?28#%Po0Ykr6|2A8jn8y}`m1rd6^G$SO$<=~7deIaucHZX(#EfS6UU+96K zZeo>N3Qp-~nlK%0xdg6x4 z!9uX_%BxAsK8KI+Nh%534>9vve=)YlQwHZnWl;utX_@A?mls=|SZ(>nk|JXM;rQAP z2=fT1(PX*(@1Ko!)2=yCztPLyQ>$Oh9oARd#4^qfzQ(#gl&e8PX9N%Kn6T6X3^-Eu>ME+|b zEOu>@(gS-|`tXPs@fWr+kDA6U-89G)L{`1iFSB*yZ#Z}MLM31S#Yhd0s~yaFaP8x} zip>-@_S~N6fjvP9nnboN*(_9&uon8WD0Xdf&1pM}V{cnLVDSf}dBQqEPBLW11yQLDS%= z8}MZi9Bcbuy#NimXzQLZvqtyT-q-uyS>-7xQSqUVrMzw1MJcr&gx73Xez~C z>O9jPmmWD!DUtUa?h`H0lr!b|dpM@cZDtIM)y&ILDHrgSW6anWuT;~7W9@Yjyym1{ zN!+u#XYT93f!7+}&F+p)ZSDbLD?Ok#R8o52NMfcV$Xv^s=vc zn99GH_3pi$S3J2Jyv+Y@qOo3SM<8*Wws3>vD)pTzcf5Zoqw;t{<^g5g+t0CSl6+6& z&D1*Qp6sL774&OjXDw?rDU5UEj+4l5X#D*lflp;A^m`v|lmA|p1pQLgSBzisYVzF8 z{?P4fuwNa{vz1Fy>s~qy-`Gzi7?2Y-1-qotgAvJfH5>B#VKb=VR~t9l9$EBabn*bV zZq3Nn2u{mht4B8--`M0%9jHi_evB}ADN^zrui2+Q?a82pnVFe|MV7GF`GiWFVzWi3 zvwg}loF3V;Gb`*Ho*3slf>bBcc#h_gG81CQXG!xov#e|ed^Jp@i%5a}@f=LI4^)J$gHtWj4AzJ3V z-dBAWcUyGG^}5+-(L?0cACpBtV>BkTJv>1;*1KchmcVO59^$ItK4MQN#$A9;mY+95 z+g93cYi#>8phby!U8FE3eD3BY+1~L+R`X6F!)ycURD8yVntvOJrz7YTL*t7(DyF9h zBS9D1-TMZQ^Kv)Mm^vReKLawJc$cY|xt0x=kTSy1y*rvyb7Umf%=M4_f>(Xm<{t;9 z&VS%S%6)zNE^aZ7Cl3>Ks~KLId&V7>2r>E$Ft``EIQuHpP!c5-AmUOlOU68ZU1H~Q zeEN7bT%Co{NRZX7Ft`mnmOaLkFhf+*YKF*&&0{p8{>iEs-Ae8J-s)STz-q)u)}BN-)2G4_tNxaZX+|7RY^g~Wtfur;kZT;kLcGo69}Wd zo7ITh-!74vFMPa)h0bd~N-$Tft)7h#G2H&Xs}1~qm?{6>)bM^e+ulw)sB$B87_d@>Xkt^URRgeAmVa$>%oz z&sSKDs&3^n@ch5N)T-pq|38;eii?*hjj?>A#->oJ&B1tG&S5?mI#*n=c%4oe-!^yU zq4=K%Hy2b^hMoT=IU1`h42R}J2)9*9^Z#Bz?gKEhifQH+(z5!Qk9IeaFj1y@8P8^w zkl1hfT>2tadiq~S>DeRVt*>oAL(vib$>6O#L{JIOx6J8BmK1uDA>lo^(v*mV--z*& zq56#V*&gy~f*ksGqJ$@^Ti(FZlO(h`Z`7>erIBWZOMJ|8{D$MUuiB0{i~;|$)t>F& zgdDGlRW4lNRL|MNLzN7|o<7iiSaCyzYqL|^+6WXAa+;PZg!qM zx7C?!W35io4jf9RwF5#&P^kRe(R9#lqa|!k zqFPDLA_k5oapfu^7hbCF39F%2VhO#U%k4jY9&Fh@=F;8qrhno_sezW`Z~C3EK-`*` zz16{kNg>jl*Saf+j-;>qH{epbB+pQElFTu<{8YLghPQF>lNDc4XRMtXaNPXl{=4t_ z`mPTSW2A|spNjU`9~7ntpWhz~#Jl2a_dc1Qotmk=_Lvt%{^@SNiwTSo>D=Q>HPl?S zFDlYbkKWk7I)2{OrdGWyZy4#%r>QBeDO+o0mP7m;Kgk@m!S@Wc>P^;jd}%eBBtn#2 z)%zNnlh1;f1|2H$%F1X~z52#%9j89NTxpQ@rrI^G;-s^gQllkJ^xLIblqsA|isX)S zUU`aGR@S+vRcoQtm2=LM{`)e{9(yp2_US9G2F}CFOTo)KXJp5ygqN{@CBjS+9#C9y z%6-QFcDKJrB0@Q7y^l}|IppzRO_+aik||GT8|f!rtBq09>)d~`Y6lAF_JIn>Dmm># zY}kReS3Rd6`UA)(cf#}NF{ZuBAbECfG9A?Pmpvo!(Yv`sM%cjk<_Q>1Z7ijKm^dzq z8eVS5mZgTG=Tf8 z8#N@Y;swKVq@yyzrS#Tjb2l1$XsgMjo5Uz$iW|^o{1vmga)^$Z`9m;`=7$%PO^zEk zSNlGji`bgKM+?Jchb-*v?O*kgx0pyq+X+4V?vc*mZj&R(TEhF2MNvH3I!~u2T54yN z@1E51r%zm(npam>hhm~`uHbo#b9D-Ia$&7f1I^?U}gt8DK0H0GJR6aYRjrMol@!e%2mqhL zzdKX5fEi;EvUn;+=P*7D#idji-TW9A8!P^oAZis*YAH3Q&qSOY92)qK^o{kwQ2tJ% z@P&(SYiS<6(1@fc9x}a$9s5;jFuOIZ;pI;z!bmhB$A${z*Oo~NjY?h4DQiT!czI);@E((fMEC0@@vA!K?zs11=hk64OFnA%Uo(HQytL=& z&sTD85!tTfRa+ol(X3DYmy2hPlGqfX`IrQW;gNVMz7eHM34K2LrNoVB#p^=1u4W0n zlU5tdcMh1Q(O#0R3=@_?(Zr+5jM(3}iys%B>jWqlU$?S8<(!Zn=xL&H(n3`|Y!sl} z{<}9nJ2o`gP`czg^}Ug<*?FJCU2gbh)@;{2^Qoqvy9C?z2QrL{ZkGD#%U zI0eeB72NyMr7zoBnFjOd{o{uY#R1t)FxOQ}fKw2Uli>1Q!n<;l#bhCOMu&J=?s)Ke z-C13&wOwolmq|W%n@tt4`#A1`(gTigBH_VxzI^;{;>y*eYzJEG^I4SZBiPe?$Z zz<3qr~l*5(~#&=;<7TJ?SBGULhTA4v)J59*W-g8d=VyN zUvSEcguWpgcCGi7d-{-;c(D?D2Zr#BosC&(n9^76oa7cj>vMB+F>;~sBzPD_(MT(h z8D(D0`MF^2g?Rd(#TW~OqL-P6J00-1ZP3Lfq)S>`jlyEd?tYiINg z3_xEF9O3a?Tu#Beb7gv7^fl!vS>Mq+^1f>~n(`&8KjnRavW1LdgIn{iS*-6mlP{bQ zD(=_g7_hEimifQ=Xp}7Cq(dm};NW0oWd;7vrC2AdC!9{DH1Z(rWdWUkO-+L@Z^@)C z63vSkc64vei|5#wneR4|M0xi`xdY?C_$O!>j1@{{^59H8`y{`9)9gPxPp!+aK8G@_ zAg$JVvHf(qF04)=j>cNkZ^WmXo#Z;R{TMBeoZ>n54mH9V1yS=nMxgjJb>iTut&x5H zM#o}9g;?`*lliwmW@s>MY4WJdnPbg*t~ojCTs67R5J2l?>GbJ(4!lxxm7DI73Fz$d ze|fn2ZTg?un!Hh14ac6nBm1^+KqM*d-pq!Z)(EXZTUNE{3Cx2K|8Q+`|67a}(cpQ` zamZ8B?>99lLy99b^C9dL$$|D-#+S@FxhMn=A)GrT7_ zScArpEiO0iVN}|0VNTR*w)BQ4eP9z`nw{#=iF>WO3p55qR z{gy8mD?9A(K6=B3OFJ4kq=9+;p*G{0Cq3WG{sDpeW&EC&Eg2(hisTznj;44SgWXi5 zABXPW?-@?@by1csQ|^&rxVJ2sU|#hp!IIW*kaUk$y!CuFSfvatNIxo^lh8gTc42k5 zfL12h*ruYqtV{sk8Vh2}`JlpU#b zlImt`{3-Eji+29H3mFe6BNlh0YV^dJ6B~--Nyp!@Oc)EmWC=zSJPDqE8=~s)Q$q-o zC;h9LKj$NNZ0~jY!uNTbYik;@fru9?QN-L)1{Pki2k2*a3t}C9u6n03Ekez`2S?}yYUT+5tHY;j8dZ33pZOaoScfZrTE`>7No7NS>=HgHqIN&))8u*Af2&2e|6~ez{G*Tg?gZ8UfNU_{NV64(7)r_L5oTOjgqd)W7(0vOOar4M{`LRx0(ex< zjnKw-pzrzZVM@7HdE)S!v_6Rq75S~yRlbx-${vYt*cE&SwCZU#@n6lp#1H*uF^a%O z3!o3nDOV*#)VE+G0>y8lV0MzoprD|tdZT!I>|utT=3spi0iDCc!zF_J*HzzN!cI(n z#20#WbmW9m)i%aNmXdKWW5xC21C4!xP{JyowM$9;humoo@eQyM{RKX|`YrBthS4~! zH9r+)F|`6ajOdw|ob*KsdBln*#tKLT5$F8g;)Uh4J3jkJ*SnLFYGj4 z&7;V@S^l2y{I0rv-oAIRPeTaT_@dsruq`f;+JE0Oa;cg9jTS(~$~yA(PWCmI^F5xY zjfm=rdU(mjN*J-3!pKyX;j_|xvH zDMFej*@7;^O^#S_DvM-) z!|e3uSt&aQAFC24N}NdknAELi1>XJH(?iR}^+{JQG9n`4yX2#fhAjitXK796{Ph$A z4@h$E8oe=@dEEBU?C&T&1D}mpqyI4u4H2BlY($&(7{y45Uu}5O4J*;z%D<;Pu5X~k z&??8@lUbLBwN$N>bJw}4N{e+Dzo6jC`iMnxEtP#Q zGGvb2pxn`ZmJl|_UT4_fiJ7EHY4M6vu2e!i}}OCch}#uj7E&4xoZ$%v~&n#u3) zJA?~O7>xsFhU&5X`MEhG>Gpv?20=z5OKyghQ+iAUs=iw=PId9TSh=H;Mji?I zxw7)`%`?&0CErW9!Xnkz@To-5wW{m|S{^^v8l*+f{o?cQs(SO1q zI=>VmBzcU`*~y-@o8`J5pmKQmOLn*|S-m7E0c!QZ}+Lmg9_&N9hM_WD2^h z5GcQ8bFC`Xde&l?ot}CGvnPUmEaDjJn1*ti<VpVcRQ{0*XQbnFhX_kn6kyCZyB%+@To?FMohovjh1clsG(>|Y<=*bE3VH?Sg%9wz z-^kQ3j{Dac%F>41?x6X-5pIOZ{f{D(RS_%-=jZ2Nyw63>zcZMrSS{p9CwA=5+I*H6 zCN7QZYo8Jn9<-B6!%ldh4PDIHc+{2{kMoi>eWS|jgs-~~RZpKw%E+A9_Qm;J++o<_ z(f!r)2-|rhk^B@#k5j@5c%>BHXH<9Z-BL?KD7-Obp`?!?8aQsAw0`I83>r4kvvsdG zR#rOM6hV~|#w`UsPHfVi0;>RgzS6i~qos{cmTTW~PG@Q@pPM$9m4QAALHPPkWg9t< zP0E;61~@7M-RS`dNm^U>Mm+7G)CA^-AVig=xKHTq}FmvMt0})JvNV22Qps^UqQmW(g@$rel zX3X$;m`1UqDvp}hZ4&&bTwlzoUNBxEe4G8-hXqbC$mlg{N3+pDe zc%C~rIsJigSV+^w%KesoPmlimk-{*55oYM20X-Oz`|FtRHhm&UZSm35TLGbJzva|W znnZuNT+RFe3(!neb#zi_)?7>+E((%x2V%jEYHujh1BI7frDUFACIc`1$$q2?(yQ|LwywGOV?@8){NT zlZ#WXQQCRzDIp;N7Yy1Z^x_kM9#m-U05J^2<8$c;^lV$W-T!O?H*2BU?cp!9Kve< zZM~}2@dlk5LPOV%Fu$FiaC3JyzxXS4L%dak(-}?#@?&tu=mlevj7k^-Y&KZ+pl!PrRT07+Q8H9 zeD%r2r5}`(puo~97=n+RnVF$vAFLt8#btvcr@g%$*4o4(9Su!jNJx2^04xRAmA+DM zYiEAJdTA>BYBn%3f^+ANU*>bX9^1C7&oC5*-DPHO4r=~nqTZg6&qSHNxJTY;sVM^1 z#^$<)a2+vJlCD`kF#HZugc_i;*xcLYmt8n0(t) z+yXl6t}fom$3fLre)~`@YOgj#Z&JBlsasi<^q3HHTjOOg;96C|dI51AH&<7q^R?bc zFyR|XVVA^3QO$z_p3`=r8JyGi;Ff>_^yla(&iov_?(W~epW||?nA?j@N{jgK2AafI zQ0fy95ct3Aoth&2tgt;0yw~^+3yZPmR~Zly=zEHsaM#I|#jBjgIYq9{4lk3K=jXg; zWu)w$d|pb@Olu1K_PTr!DmlRTpFePI3xE{X;{4 zxwid5iz2S-@7dw1QkNs-90E?eu75Vwv}m1~2sSR|0y&FU9?}0vtgN(6WYny&{k2+8 z*@ocbbEAcf26}<_73n~#uR|gw8D4jTv#YC}on7Z|L7Duq!NGDU+}lX?BC^eE?>^#Y ztbJ=Bt;WHjjw)XAqOL4DI-0g}HC8et%*stFqN0Ln&i27RMB?lAPn+WB>&r`X(M z;&)&Ua%;GOP_@{YKk5BEdosJEA4jwG^K1OnaF(?AdvRDR*9W0&{$MPVbs@(MTvBLU69_c~J3}2LFTsUk5YBnn`Klmi z0a39M=5)G4@7rA%Haf`{Pr%x)Z)~KarSGCm%{RbfOUF$>H|(Vz9Hz?A0ZNgo}FDXi@~pv zY~aggr=}7^0Dx!+=Zek;zF&@jx4a+tVDy9PorR~2yuxaLV z|3kl9o)fsSwg%@hMOm2^%*(T}*-cj&!&`uJE%!9poS%-ax2sFCa_VKho!VDI1n$p*oh8($QxH<*pOg69p3xK+>?K**_ovR$`OW*7!#QL0M;xtPNoF0`TYoha~I`7`h(L z6tso=IXhU+sfP5y72waky*)QKH()?vVPNRgS!-6OjC6O8>(XL@ZP8ouVd zXW*MFxC?g3y@cp$ndL^uz_10E=I7@J*elf4f8qQr^#E&us;a71p6mn5|G@&h{w=`l z416&nA|kx=*;X$Pc+pG*;kC83s~6iqqyg16PdLIVDk?z1Et*{T0%m2u$E%7E1^boy z>jfDkH3Yu^yVL?-QZCIpz!hgR*4UxJ1 zy>vpB!V8ar!Uu-n;BsW8q#)nI{v*&x0Vfs_b}&3dNZk@Q+(y@p9t_mXm8ek@Ro@D{tfDdk=~flfYmQ}lrzCSpU_*Cx!LEX( z0h@L5^P5@Lwo4#`#f~o95dhZP(Ac=p_-+Rd7F;}pC=m=vUj$_vYP#M~IA??!&hL|C z*=V5k1h19!V|ehR;?G*$4bx;L{7Hmt63G#5uuwzQtyLS4o#y!O$D0iKyqbRZLx*o0 zek0AlU-Ov1^K3B>?-#ri!n(T{jp<{FGHlfaPCrDb+Y4e*m@`@J+NP$NX?0e)HKZm) zh698|GUD#vSe2B`3}sicG#?NbDqu@waC6_N+la}TmQT9>b!e9VtizXam8Wf&E}dAQ zc=HHbi*Nu)~=U8e@cbdy6-6vnJyjKD}t_)Ix#uM*yLX;VKdx7*k zkz0g(0ZtjcyYO}!nnkfT;-o38PSQSaU>G7Vl*mu8h`$+hscGw+l?cZ`8>5Bh= z1+z#XqGE<;hCgYoDP&^m(^~iNS)-@bzuWc6UDfoQ7l-9Ssi2>*H7x?yn(d|_G^SD| zQCKkFapk1J!}YtDSNziMoW(0vdYO;6$(AD4OQd+Qoo)0KUDyXhg%#bfl6-_BR$zN=AJxnq4@ zC#o#p7HLLAXLdv$UtH{9C9iK&;ag?EEUt#_dT^lQ5!$wzl<|*xRVcoH^6gyX-*t=o z-rjdr)7wdmkt@ILXtsJ|{JP0R@u$3m&<$aE5N6##q15yOQ=bR?cOW$_Dky0FGyV)l z6_RL5;a-941x7xv;ZO&j7~--IGWxxOjyV93UqUc|?)ELfAB08N$$&Nf6*MulKfFjx zN^*wX0o4l}Is;QvQ;Ulf-mlq+z$OQ6?CT#9*kBn#Zbu*(ARd>+W{lK#TL^?lL^Rv4 z0^|xu&j;PwqE)Qclb^3|6A*cMVqteDeSOkTZlELrrz9LVpl~K&^%jm%*j144frn1) zS2Jkv<2DnLDx*W>vRgtRdMPX&1Y>(H&dyQc;g5vfxvcgD zop)paF;lL4gmN>Km7y@y~E z-=3kjUQHhj9(CHd0}l_11qh;3h8}PF?q#H(j>%F)f>tsdqqnu?8n8wiD^3CsYarWt zmduhV?7`E;2BG?DDF6q8wzSUzq!aM`!t)?G>xO*rheO z$&`0l_bL%g9u>+viqA{KbdSkgz-{Y3WE}P76?3r0_gI ztY8iOJp(8K;Y-h0XmrBwhlYlNg%$KQK0%qqC0O|VHI${#Z(jqF6+9U(ykhBa0;mrm zV5h^9@<+v@#KaJag!)ZQO%2v|2zk1o%UdW6#gP#y5@u{f+>U?*W#-_((Z#0s`SN{< zjHafX4lDm1s?Y@IoV?pY4~~VX8Jpq3L674h-teG2KSRO?4<6v-*V!#gv>1xQfDAqwUI#txz4q^a?DJovkfh_?by! z?0{cc8595qZg9dt!IL|Sii#2paNbb1s1KBPpN3$GBk2-1D=skrOY}Enhozsf*_D|F zdvSfY_tw@vd7d9Z&zkSo!|~A3jsWz4ADE_%(C&mIZH(RP)4fzo6R6)Hr&Lx_8v6Dv zA~Y0^?ZoWtmpVE`-T5bQXhC5Ihuy;`${=*wHvjhJCo456DU@B)gD70DDoCT?D~pSZ zC$6gCT|tZ()qY;22x!AP_>hI%eMCS=SUj}@VD0vXYupmwaJhUu+|>LsU(V~mNIEJiDiK>Rqlu!{yV*Z>{({u(;qmb^ z(Ld%OxL`EKu#>}@YI(=QyfmF-=y1tRgoS1AY+a=)yO{DJhw-%&@%c@y

&=_eWSs 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%0D>xan9CWkpRncCl6&I+3ZlEt=j=QD9k4{_{@Fs$l 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]NMM6ELD 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
+
TEAMAGENT · 验收报告
+

把 AI 重复犯的错,在执行前拦下来

+
核心能力验证 · 2026-05-14
+
+ +
+ +
+
+
+

已实现,并通过验证

+

同一条命令、同一个工具,在「TeamAgent 没学到经验」和「学到经验」两种状态下,给出了相反的结果 —— 该放的放行,该拦的拦住。前后对比成立。

+
+
+ +
+

这个功能是什么

+
+

+ 团队里的人用 AI 写代码,难免会犯一些"早就有人踩过的坑"。TeamAgent 做的事很简单: + 把团队踩过的坑记下来,等 AI 下次又要踩同一个坑时,在它真正动手之前把它拦住。 +

+

+ 本次验收用一个具体的坑来演示:AI 想安装 moment 这个已经过时的日期库。 + 我们对比 TeamAgent 在"还没学到这条经验"和"已经学到"两种状态下的反应。 +

+
+
+ +
+

真实屏幕录像

+
+ TeamAgent 拦截演示的真实屏幕录像 +
+ 这是一段真实的屏幕录像(不是动画绘制):一个真实的终端窗口,真实地跑了两遍同一条命令。 + 上半段是"之前"、下半段是"之后"。 +
+
+
+ +
+

之前 vs 之后 —— 一眼看懂

+
+
+
+ 之前 · 知识库是空的 + 之前:命令被放行 +

TeamAgent 还没学到"别用 moment"这条经验。 + AI 执行 npm install moment —— 放行。 + 过时的库就这样被装进了项目,没人拦。

+
+
+ 之后 · 经验已进知识库 + 之后:命令被拦截 +

这条经验已经进了知识库。同样的命令再跑一次 —— + 被拦下,并且告诉 AI:应该改用 dayjs。错误没能发生。

+
+
+
+
+ +
+

凭什么说"实现了"——验收标准

+
+

+ 判断一个功能到底实现了没有,靠的不是"它说它能",而是前后对比能不能对得上: +

+ + + + + + + + + + + + + +
同一个输入,只改变一个变量,结果相反。
+ 两次跑的命令完全一样(npm install moment),工具一样(Bash)。 + 唯一的差别是:知识库里有没有那条学到的经验。
+ 结果:空知识库 → 放行;有经验 → 拦截。 + 一个变量,两个相反的结果 —— 说明拦截确实是这条经验起的作用,不是碰巧。
拦截给出的理由是具体的、可核验的。
+ 不是笼统地"拒绝",而是明确指出:置信度 0.85、应改用 dayjs 或 date-fns、 + 原因是 moment 已进入维护模式且体积过大、并附上规则编号 seed-pack-universal-moment
▫️全量测试通过 + 合并无冲突 —— 这是工作流里的第 2 条标准,由 CI 把关, + 不在本份"功能验收报告"的范围内。本报告只回答"这个功能到底做出来没有"。
+
+
+ +
+

原始证据(机器可核验)

+
+

+ 下面是两次运行逐字未改的真实输出。任何人都可以照"怎么复现"一节自己跑一遍,得到一模一样的结果。 +

+
+
+

之前 — 知识库为空

+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
+🟢 TeamAgent · 模拟 PreToolUse 结果
+━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
+▸ 工具: Bash
+▸ 输入: {"command":"npm install moment"}
+▸ 决策: 通过 (无规则命中)
+━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
+
+
+

之后 — 经验已进知识库

+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
+🚫 TeamAgent · 模拟 PreToolUse 结果
+━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
+▸ 工具: Bash
+▸ 输入: {"command":"npm install moment"}
+▸ 决策: deny
+▸ 拦截原因:
+    🚫 TeamAgent 拦截 (置信 0.85)
+    应改用: 使用 dayjs(API 兼容、~2KB)或 date-fns
+    原因: moment.js 自 2020 起进入维护模式,体积约
+          290KB,易引发隐性 bug。
+    (规则 id: seed-pack-universal-moment)
+━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
+
+
+

原文也保存在 assets/evidence-before.txtassets/evidence-after.txt

+
+
+ +
+

怎么复现(给想自己核验的人)

+
+
    +
  1. 在 Matrix 仓库根目录,准备一个空知识库的环境,跑:
    + teamagent demo hook Bash command="npm install moment"
    + → 得到「之前」的结果:放行。
  2. +
  3. 把 TeamAgent 预置的经验装进知识库(teamagent init 会加载 seed/packs/universal.jsonl, + 其中包含 moment 这条规则)。
  4. +
  5. 再跑一遍同样的命令 → 得到「之后」的结果:拦截。
  6. +
  7. 本次屏幕录像的完整脚本保存在 recording/demo-scene.ps1recording/record.ps1,可原样重跑。
  8. +
+
+
+ +
+

严谨说明 —— 这次验证覆盖了什么、没覆盖什么

+
+
+

✅ 已覆盖

+
    +
  • 真实的知识库(SQLite)+ 真实的匹配引擎 —— "要不要拦、为什么拦"的完整判断逻辑。
  • +
  • 同输入、单变量、相反结果的前后对比。
  • +
  • 拦截理由的具体内容(置信度、替代方案、原因、规则编号)。
  • +
+
+
+

▫️ 未覆盖(说明,不是缺陷)

+
    +
  • 本次走的是 teamagent demo hook 离线复现命令 —— 它复现的是拦截判断本身, + 不需要打开编辑器;编辑器内"红框弹出"的端到端链路不在本次范围。
  • +
  • 本次"之后"用的是预置经验规则;由团队成员的真实纠正自动提炼规则的环节,是另一条链路,需单独验收。
  • +
  • 全量测试 / 合并冲突 —— 由 CI 把关。
  • +
+
+
+
+ +
+ + + + + + +
报告生成2026-05-14
被验功能PreToolUse hook 拦截重复犯的错(以 moment→dayjs 为例)
规则编号seed-pack-universal-moment(来自 packages/teamagent/seed/packs/universal.jsonl)
运行环境Windows 11 · Node 22 · TeamAgent (Matrix) 预编译 CLI
录像方式真实屏幕录像(ffmpeg gdigrab 抓取真实终端窗口),非动画绘制
+

本报告是 Matrix 项目「两套验证」中套件 2(验收报告)的产物 —— + 给非技术读者一眼判断功能到底实现没有。本份为人工产出的首个样板,作为后续验证框架的参照基准。

+
+ +
+ + diff --git a/docs/acceptance/SPEC.md b/docs/acceptance/SPEC.md new file mode 100644 index 0000000..237cb46 --- /dev/null +++ b/docs/acceptance/SPEC.md @@ -0,0 +1,82 @@ +# 验收报告规范(套件 2) + +本文件定义 `docs/WORKFLOW.md` 第 3 步「两套验证」里**套件 2 · 验收报告**的硬性标准。 + +> 一句话:套件 1 是给机器看的硬证明,套件 2 是给人(CEO)看的报告 —— 让一个**非技术读者一眼判断 feature 到底实现没有**。 + +**参照样板**:[`2026-05-14-hook-moment-block/report.html`](./2026-05-14-hook-moment-block/report.html) —— +人工产出的首个验收报告,本规范即从它提炼。看不懂规范时,直接看样板。 + +--- + +## 硬性要求(缺一不可) + +1. **一个自包含的 HTML 文件**。样式内联,在浏览器里直接双击能打开,不依赖网络、不依赖构建。 +2. **全中文**。面向中文协作团队与非技术决策者。 +3. **嵌入真实屏幕录像 GIF**。必须是**真实录屏**(录一个真实终端/界面窗口),不是程序绘制的动画。 + GIF 与报告放在同一目录,用相对路径引用。 +4. **顶部一眼结论**。读者不往下翻就能知道「实现了没有」—— 一个醒目的结论横幅 / 徽章 + 一句话定性。 +5. **before/after 对比是报告的核心**,且对比必须**严谨成立**: + - 同一个输入,**只改变一个变量**,结果相反; + - 改动前 → 复现「feature 未实现」;改动后 → 复现「feature 已实现」; + - 报告要讲清楚「那个唯一变量是什么」,让读者确信结果差异是改动造成的,不是碰巧。 +6. **原始证据逐字未改**。把真实输出/截图原样放进报告,旁边给出复现方式,任何人能自己跑出一样的结果。 +7. **复现步骤**。给想自己核验的人一份能照着跑的步骤。 +8. **严谨说明:覆盖了什么、没覆盖什么**。**不许浮于表面、不许过度声称**。 + 明确写出本次验证**没**覆盖的链路(说明,不是缺陷),CEO 才能信任「覆盖了的那部分」。 + +## 推荐结构(章节顺序) + +照样板的顺序来,按 feature 复杂度增减: + +1. **头部** —— feature 名 + 日期。 +2. **结论横幅** —— ✅/⚠️/❌ + 一句话定性。这是 CEO 唯一保证会看的部分,必须自洽。 +3. **这个功能是什么** —— 1–2 句非技术语言。不要术语。 +4. **真实屏幕录像** —— 嵌入 GIF,配一句说明(强调「真实录屏」)。 +5. **之前 vs 之后** —— 两张关键静态图并排 + 文字解读。这是「一眼看懂」的主体。 +6. **凭什么说实现了 —— 验收标准** —— 把 before/after 为何成立讲透;逐条对照 WORKFLOW.md 的 review 标准。 +7. **原始证据** —— 逐字未改的真实输出,等宽字体呈现。 +8. **怎么复现** —— 编号步骤。 +9. **严谨说明** —— 覆盖 / 未覆盖,两栏对照。 +10. **页脚** —— 生成日期、被验功能、运行环境、录像方式等元信息。 + +## 目录布局约定 + +每份验收报告一个独立目录,放在 `docs/acceptance/` 下: + +``` +docs/acceptance/ + SPEC.md ← 本规范 + -/ + report.html ← 验收报告本体 + demo.gif ← 真实屏幕录像 + assets/ + still-before.png ← before 关键帧 + still-after.png ← after 关键帧 + evidence-before.txt ← before 原始输出(逐字) + evidence-after.txt ← after 原始输出(逐字) + recording/ + *.ps1 / *.sh ← 录制脚本(可复现) + README.md ← 怎么重跑这段录制 +``` + +## 与套件 1 的关系 + +- **套件 1**(复现验证代码)是 feature 的硬证明:可自动跑、内置 before/after 对比、跑的过程**自带录一段 GIF**。 +- **套件 2**(本规范)= 把套件 1 跑出来的 GIF + 截图 + 结论,拼成这份给人看的 HTML 报告。 +- 两者不是二选一,是一前一后:套件 1 跑过 → 产出 GIF/截图 → 套件 2 把它包装成 CEO 能读的报告。 +- 套件 1 的 judge harness 见 `docs/PLAN-RESEARCH-REPORT.md`。 + +## 实现状态 + +- ✅ **规范 + 参照样板**:本文件 + `2026-05-14-hook-moment-block/`(人工产出)。 +- ⚠️ **自动化生成器待搭**:把「套件 1 跑完 → 自动录 GIF → 自动套用本规范生成 HTML」做成工具, + 是验证框架的一部分,见 `docs/plans/2026-05-14-verification-tooling.md`。在生成器就绪前, + 验收报告按本规范**人工产出**,以样板为模板。 + +## 取代了什么 + +本规范取代旧的 `docs/VISUAL-PROOF-FORMAT.md` / `VISUAL-PROOF-CONTENT.md` / `VISUAL-PROOF-PR.md` +那一套 —— 旧文档面向 dev、英文、绑死在 FIXEDFLOW、用 gist 托管,与 WORKFLOW.md +「GIF + 中文 + CEO 能读的 HTML」的设定不符。旧文档的拆除属于工作流落地的「拆旧」子系统, +在本规范与生成器都就绪后进行;在此之前旧文档保留但**不再是权威**。 diff --git a/docs/plans/2026-05-14-verification-tooling.md b/docs/plans/2026-05-14-verification-tooling.md new file mode 100644 index 0000000..a56ce20 --- /dev/null +++ b/docs/plans/2026-05-14-verification-tooling.md @@ -0,0 +1,454 @@ +# 验证框架(套件1 + GIF 录制 + 套件2 生成器)实施计划 + +> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking. + +**Goal:** 把 `docs/WORKFLOW.md` 第 3 步「两套验证」从概念落地成可执行工具 —— 任何 feature 都能跑出 before/after 硬证明、自动录真实屏幕 GIF、并生成一份 `docs/acceptance/SPEC.md` 规范的中文 HTML 验收报告。 + +**Architecture:** 沿用本仓库 subsystem #1(认领锁)的 `scripts/` + Functional Core / Imperative Shell 模式 —— 纯逻辑放 `scripts/verify/*-core.ts`(`node:test` 单测钉死),IO/编排放 `scripts/verify/*.ts`。GIF 录制的 Win32 窗口管理沿用已验证可用的 PowerShell(`docs/acceptance/2026-05-14-hook-moment-block/recording/` 是参照原型),由 TS 外壳参数化调用。HTML 生成器把人工样板 `report.html` 模板化:输入一份 manifest JSON,输出符合 `SPEC.md` 的自包含 HTML。 + +**Tech Stack:** TypeScript + `tsx`、`node:test`(node 22 内置)、ffmpeg(`gdigrab` 真实录屏 + 调色板转 GIF)、Windows PowerShell 5.1(Win32 窗口管理,需 UTF-8 BOM)。 + +--- + +## Scope Check —— 三部分就绪度不同,本计划只详写两部分 + +| 组件 | 就绪度 | 本计划处理方式 | +|---|---|---| +| **GIF 录制器** | 有可用原型(`recording/record.ps1` + `demo-scene.ps1` 已跑通真实录屏) | **Phase 1,详细 bite-sized** | +| **套件2 HTML 生成器** | 有可用样板(`report.html` + `SPEC.md` 已定规范) | **Phase 2,详细 bite-sized** | +| **套件1 复现验证代码框架** | 无原型,与 `fixtures/scenarios/`(`Scenario` 类型)、`packages/benchmark/`(runner/evaluator)既有机制纠缠 | **Phase 3,粗粒度大纲 + 建议单独 brainstorm**(见 Phase 3 开头) | + +理由:writing-plans 的硬规矩是「No Placeholders / 每步给完整代码」。Phase 1/2 有真实原型可扎根,能写实;Phase 3 硬写会全是猜测与占位符 —— 它需要先做一轮 brainstorm,把「复现验证代码」与既有 `Scenario` / benchmark machinery 的边界定清楚,再单独出 plan。 + +--- + +## File Structure + +``` +scripts/verify/ + gif-core.ts ← 纯逻辑:ffmpeg 命令构造、录制配置校验、捕获矩形计算。无 IO。 + gif-core.test.ts ← node:test 单测,覆盖 gif-core 全部纯函数。 + record-gif.ts ← Imperative Shell:接收 RecordConfig,调 PowerShell 窗口管理 + ffmpeg,产出 mp4 + GIF + 检查帧。 + win-record.ps1 ← Win32 窗口管理(EnumWindows/SetWindowPos/PostMessage)+ ffmpeg gdigrab。由 record-gif.ts 参数化调用。 + report-core.ts ← 纯逻辑:把 ReportManifest 渲染成 SPEC.md 规范的 HTML 字符串。无 IO。 + report-core.test.ts ← node:test 单测,覆盖 report-core 渲染与校验。 + gen-report.ts ← Imperative Shell:读 manifest.json + 资产文件,调 report-core,写 report.html 到 docs/acceptance//。 + report-template.ts ← HTML 模板与内联 CSS 常量(从人工样板 report.html 提炼)。 +``` + +约定:与 subsystem #1 一致 —— `scripts/` 下不进 pnpm workspace,用 `tsx` 跑、`node:test` 测;`*-core.ts` 严禁 import `fs`/`child_process`。 + +--- + +## Phase 1 —— GIF 录制器 + +把 `docs/acceptance/2026-05-14-hook-moment-block/recording/` 的原型脚本,变成「给一份配置就能录任意终端 demo」的参数化工具。 + +### Task 1: gif-core —— ffmpeg 命令构造(纯逻辑) + +**Files:** +- Create: `scripts/verify/gif-core.ts` +- Test: `scripts/verify/gif-core.test.ts` + +- [ ] **Step 1: 写失败测试** + +```ts +// scripts/verify/gif-core.test.ts +import { test } from "node:test"; +import assert from "node:assert/strict"; +import { buildGdigrabArgs, buildGifPaletteArgs, computeCaptureRect } from "./gif-core.ts"; + +test("buildGdigrabArgs 生成固定区域录屏参数", () => { + const args = buildGdigrabArgs({ x: 8, y: 0, w: 1096, h: 730, durationSec: 40, outPath: "C:/t/demo.mp4" }); + assert.deepEqual(args, [ + "-hide_banner", "-loglevel", "warning", "-stats", + "-f", "gdigrab", "-framerate", "12", + "-offset_x", "8", "-offset_y", "0", "-video_size", "1096x730", + "-i", "desktop", "-t", "40", "-pix_fmt", "yuv420p", "-y", "C:/t/demo.mp4", + ]); +}); + +test("computeCaptureRect 把窗口矩形内移 8px 避开隐形边框", () => { + // 窗口贴屏幕左上角 (0,0,1120,760) → 捕获区内移 8px、整体缩 16px 宽 + assert.deepEqual(computeCaptureRect({ winX: 0, winY: 0, winW: 1120, winH: 760, inset: 8 }), + { x: 8, y: 0, w: 1096, h: 744 }); +}); + +test("buildGifPaletteArgs 生成两遍调色板命令对", () => { + const { palettegen, paletteuse } = buildGifPaletteArgs({ mp4: "C:/t/demo.mp4", gif: "C:/t/demo.gif", palette: "C:/t/pal.png", fps: 11, width: 900 }); + assert.ok(palettegen.includes("palettegen=stats_mode=diff")); + assert.ok(palettegen.includes("-update")); // ffmpeg 8 写单图需 -update 1 + assert.ok(paletteuse.includes("paletteuse=dither=bayer:bayer_scale=3")); +}); +``` + +- [ ] **Step 2: 跑测试确认失败** + +Run: `npx tsx --test scripts/verify/gif-core.test.ts` +Expected: FAIL —— `Cannot find module './gif-core.ts'` + +- [ ] **Step 3: 写最小实现** + +```ts +// scripts/verify/gif-core.ts +export interface GdigrabOpts { x: number; y: number; w: number; h: number; durationSec: number; outPath: string; } +export function buildGdigrabArgs(o: GdigrabOpts): string[] { + return [ + "-hide_banner", "-loglevel", "warning", "-stats", + "-f", "gdigrab", "-framerate", "12", + "-offset_x", String(o.x), "-offset_y", String(o.y), "-video_size", `${o.w}x${o.h}`, + "-i", "desktop", "-t", String(o.durationSec), "-pix_fmt", "yuv420p", "-y", o.outPath, + ]; +} + +export interface WinRect { winX: number; winY: number; winW: number; winH: number; inset: number; } +export function computeCaptureRect(r: WinRect): { x: number; y: number; w: number; h: number } { + return { x: r.winX + r.inset, y: r.winY, w: r.winW - r.inset * 2, h: r.winH - r.inset * 2 }; +} + +export interface PaletteOpts { mp4: string; gif: string; palette: string; fps: number; width: number; } +export function buildGifPaletteArgs(o: PaletteOpts): { palettegen: string[]; paletteuse: string[] } { + const scale = `fps=${o.fps},scale=${o.width}:-1:flags=lanczos`; + return { + palettegen: ["-hide_banner", "-loglevel", "error", "-i", o.mp4, "-vf", `${scale},palettegen=stats_mode=diff`, "-update", "1", "-y", o.palette], + paletteuse: ["-hide_banner", "-loglevel", "error", "-i", o.mp4, "-i", o.palette, "-lavfi", `${scale}[x];[x][1:v]paletteuse=dither=bayer:bayer_scale=3`, "-y", o.gif], + }; +} +``` + +- [ ] **Step 4: 跑测试确认通过** + +Run: `npx tsx --test scripts/verify/gif-core.test.ts` +Expected: PASS (3/3) + +- [ ] **Step 5: commit** + +```bash +git add scripts/verify/gif-core.ts scripts/verify/gif-core.test.ts +git commit -m "feat(verify): add gif-core — ffmpeg arg construction for GIF recording" +``` + +### Task 2: win-record.ps1 —— 参数化的 Win32 录制脚本 + +**Files:** +- Create: `scripts/verify/win-record.ps1`(以 `docs/acceptance/2026-05-14-hook-moment-block/recording/record.ps1` 为蓝本) + +- [ ] **Step 1: 从参照原型派生,改成接收参数** + +把样板 `record.ps1` 里写死的 `$winX/$winY/...`、场景脚本路径、`-t` 时长、捕获矩形、输出路径,全部改成脚本 `param()`: + +```powershell +# scripts/verify/win-record.ps1 +param( + [Parameter(Mandatory)][string]$SceneScript, # 在被录窗口里跑的 .ps1 + [Parameter(Mandatory)][string]$WindowTitle, # 场景脚本设置的窗口标题,用于 EnumWindows 精确匹配 + [Parameter(Mandatory)][string]$OutMp4, + [int]$WinX = 0, [int]$WinY = 0, [int]$WinW = 1120, [int]$WinH = 760, + [int]$CapX = 8, [int]$CapY = 0, [int]$CapW = 1096, [int]$CapH = 730, + [int]$DurationSec = 40 +) +``` + +其余照搬样板:`Add-Type` 的 `Win` 类(`EnumWindows`/`SetWindowPos`/`ShowWindow`/`PostMessage` + `FindByTitle`/`CountByTitle`/`CloseAllByTitle`)、录制前后 `CloseAllByTitle` 清僵尸窗口、`SetWindowPos` 置顶、`ffmpeg gdigrab` 录制、`PostMessage(WM_CLOSE)` 精确关闭。**绝不 `Stop-Process` Windows Terminal 进程**(注释里写明原因 —— 它同时托管其它终端窗口)。 + +- [ ] **Step 2: 手动冒烟** + +```powershell +# 用样板场景脚本验证参数化版能跑通 +& scripts/verify/win-record.ps1 -SceneScript "docs/acceptance/2026-05-14-hook-moment-block/recording/demo-scene.ps1" ` + -WindowTitle "TADEMOREC" -OutMp4 "$env:TEMP/verify-smoke.mp4" -DurationSec 40 +``` +Expected: 退出码 0,`$env:TEMP/verify-smoke.mp4` 存在且 > 100KB,运行中无残留 TADEMOREC 窗口。 + +- [ ] **Step 3: commit** + +```bash +git add scripts/verify/win-record.ps1 +git commit -m "feat(verify): add win-record.ps1 — parameterized Win32 + gdigrab recorder" +``` + +### Task 3: record-gif.ts —— 录制编排外壳 + +**Files:** +- Create: `scripts/verify/record-gif.ts` + +- [ ] **Step 1: 实现 Imperative Shell** + +```ts +// scripts/verify/record-gif.ts +import { spawnSync } from "node:child_process"; +import { existsSync } from "node:fs"; +import path from "node:path"; +import { buildGifPaletteArgs } from "./gif-core.ts"; + +export interface RecordConfig { + sceneScript: string; // 被录窗口里跑的 .ps1(需自行设置窗口标题为 windowTitle) + windowTitle: string; + outDir: string; // mp4 / gif / 检查帧的输出目录 + durationSec: number; + gifFps?: number; // 默认 11 + gifWidth?: number; // 默认 900 +} + +export function recordGif(cfg: RecordConfig): { mp4: string; gif: string } { + const mp4 = path.join(cfg.outDir, "demo.mp4"); + const gif = path.join(cfg.outDir, "demo.gif"); + const palette = path.join(cfg.outDir, "palette.png"); + // 1. 录 mp4(PowerShell 窗口管理 + gdigrab) + const ps = spawnSync("powershell", ["-NoProfile", "-File", + path.join(import.meta.dirname, "win-record.ps1"), + "-SceneScript", cfg.sceneScript, "-WindowTitle", cfg.windowTitle, + "-OutMp4", mp4, "-DurationSec", String(cfg.durationSec)], + { stdio: "inherit", windowsHide: true }); + if (ps.status !== 0 || !existsSync(mp4)) throw new Error(`录制失败,退出码 ${ps.status}`); + // 2. mp4 → GIF(两遍调色板) + const { palettegen, paletteuse } = buildGifPaletteArgs({ mp4, gif, palette, fps: cfg.gifFps ?? 11, width: cfg.gifWidth ?? 900 }); + if (spawnSync("ffmpeg", palettegen, { windowsHide: true }).status !== 0) throw new Error("palettegen 失败"); + if (spawnSync("ffmpeg", paletteuse, { windowsHide: true }).status !== 0) throw new Error("paletteuse 失败"); + return { mp4, gif }; +} +``` + +- [ ] **Step 2: 冒烟验证** + +```bash +npx tsx -e "import {recordGif} from './scripts/verify/record-gif.ts'; console.log(recordGif({sceneScript:'docs/acceptance/2026-05-14-hook-moment-block/recording/demo-scene.ts'.replace('.ts','.ps1'), windowTitle:'TADEMOREC', outDir:process.env.TEMP, durationSec:40}))" +``` +Expected: 打印 `{ mp4: ..., gif: ... }`,两个文件都存在。 + +- [ ] **Step 3: commit** + +```bash +git add scripts/verify/record-gif.ts +git commit -m "feat(verify): add record-gif.ts — orchestration shell over win-record + ffmpeg" +``` + +--- + +## Phase 2 —— 套件2 HTML 报告生成器 + +把人工样板 `docs/acceptance/2026-05-14-hook-moment-block/report.html` 模板化:输入结构化数据,输出符合 `docs/acceptance/SPEC.md` 的自包含 HTML。 + +### Task 4: report-core —— manifest → HTML 渲染(纯逻辑) + +**Files:** +- Create: `scripts/verify/report-core.ts` +- Create: `scripts/verify/report-template.ts` +- Test: `scripts/verify/report-core.test.ts` + +- [ ] **Step 1: 定义 ReportManifest 类型 + 写失败测试** + +```ts +// scripts/verify/report-core.test.ts +import { test } from "node:test"; +import assert from "node:assert/strict"; +import { renderReport, validateManifest } from "./report-core.ts"; +import type { ReportManifest } from "./report-core.ts"; + +const sample: ReportManifest = { + feature: "PreToolUse hook 拦截重复犯的错", + date: "2026-05-14", + verdict: { status: "pass", line: "已实现,并通过验证" }, + whatItIs: "把团队踩过的坑记下来,等 AI 又要踩同一个坑时拦住它。", + gifPath: "demo.gif", + before: { tag: "之前 · 知识库是空的", still: "assets/still-before.png", text: "命令被放行。", evidence: "▸ 决策: 通过 (无规则命中)" }, + after: { tag: "之后 · 经验已进知识库", still: "assets/still-after.png", text: "同样的命令被拦下。", evidence: "▸ 决策: deny" }, + criteria: [{ ok: true, title: "同输入单变量结果相反", body: "..." }], + reproSteps: ["跑空知识库 demo hook", "init 加载 pack", "再跑一遍"], + coverage: { covered: ["真实知识库 + 真实匹配引擎"], notCovered: ["编辑器内端到端"] }, + footer: { env: "Windows 11 · Node 22", recordMethod: "ffmpeg gdigrab 真实录屏" }, +}; + +test("validateManifest 接受合法 manifest", () => { + assert.deepEqual(validateManifest(sample), { ok: true, errors: [] }); +}); + +test("validateManifest 拒绝缺 before/after 的 manifest", () => { + const bad = { ...sample, after: undefined } as unknown as ReportManifest; + const r = validateManifest(bad); + assert.equal(r.ok, false); + assert.ok(r.errors.some((e) => e.includes("after"))); +}); + +test("renderReport 产出自包含 HTML,含结论横幅与 before/after", () => { + const html = renderReport(sample); + assert.ok(html.startsWith("")); + assert.ok(html.includes("已实现,并通过验证")); + assert.ok(html.includes('src="demo.gif"')); + assert.ok(html.includes('src="assets/still-before.png"')); + assert.ok(html.includes('src="assets/still-after.png"')); + assert.ok(!html.includes("http://") && !html.includes("https://")); // 自包含,无外部依赖 +}); +``` + +- [ ] **Step 2: 跑测试确认失败** + +Run: `npx tsx --test scripts/verify/report-core.test.ts` +Expected: FAIL —— `Cannot find module './report-core.ts'` + +- [ ] **Step 3: 实现 report-template.ts(从样板提炼)** + +把 `docs/acceptance/2026-05-14-hook-moment-block/report.html` 的 `\n\n\n${body}\n\n\n`; +} +export function esc(s: string): string { + return s.replace(/&/g, "&").replace(//g, ">"); +} +``` + +- [ ] **Step 4: 实现 report-core.ts** + +```ts +// scripts/verify/report-core.ts +import { htmlShell, esc } from "./report-template.ts"; + +export interface ReportManifest { + feature: string; date: string; + verdict: { status: "pass" | "warn" | "fail"; line: string }; + whatItIs: string; + gifPath: string; + before: { tag: string; still: string; text: string; evidence: string }; + after: { tag: string; still: string; text: string; evidence: string }; + criteria: Array<{ ok: boolean; title: string; body: string }>; + reproSteps: string[]; + coverage: { covered: string[]; notCovered: string[] }; + footer: { env: string; recordMethod: string }; +} + +export function validateManifest(m: ReportManifest): { ok: boolean; errors: string[] } { + const errors: string[] = []; + for (const k of ["feature", "date", "whatItIs", "gifPath"] as const) + if (!m?.[k]) errors.push(`缺字段: ${k}`); + if (!m?.verdict?.line) errors.push("缺字段: verdict.line"); + if (!m?.before?.still || !m?.before?.evidence) errors.push("缺字段: before(still/evidence)"); + if (!m?.after?.still || !m?.after?.evidence) errors.push("缺字段: after(still/evidence)"); + if (!m?.criteria?.length) errors.push("criteria 不能为空 —— 验收标准是报告核心"); + if (!m?.coverage?.notCovered?.length) errors.push("coverage.notCovered 不能为空 —— SPEC 要求写明未覆盖项"); + return { ok: errors.length === 0, errors }; +} + +export function renderReport(m: ReportManifest): string { + const v = validateManifest(m); + if (!v.ok) throw new Error(`manifest 不合法: ${v.errors.join("; ")}`); + const badge = m.verdict.status === "pass" ? "✅" : m.verdict.status === "warn" ? "⚠️" : "❌"; + const body = [ + `
TEAMAGENT · 验收报告

${esc(m.feature)}

${esc(m.date)}
`, + `
`, + `
${badge}

${esc(m.verdict.line)}

`, + `

这个功能是什么

${esc(m.whatItIs)}

`, + `

真实屏幕录像

真实屏幕录像
`, + renderBeforeAfter(m), + renderCriteria(m), + renderEvidence(m), + renderRepro(m), + renderCoverage(m), + renderFooter(m), + `
`, + ].join("\n"); + return htmlShell(`验收报告 · ${m.feature}`, body); +} + +// renderBeforeAfter / renderCriteria / renderEvidence / renderRepro / renderCoverage / renderFooter: +// 各自把 manifest 对应字段套进样板 report.html 里对应 section 的 HTML 骨架。 +// 实现时逐 section 对照 report.html 原文,字段用 esc() 转义。 +``` + +> 实现者注意:`renderBeforeAfter` 等 6 个小函数,逐一对照 `docs/acceptance/2026-05-14-hook-moment-block/report.html` 里对应 `
` 的真实 HTML 结构来写,字段值一律 `esc()`。每个函数配 1 条 `node:test`(断言关键字段出现在输出里)。 + +- [ ] **Step 5: 跑测试确认通过** + +Run: `npx tsx --test scripts/verify/report-core.test.ts` +Expected: PASS + +- [ ] **Step 6: commit** + +```bash +git add scripts/verify/report-core.ts scripts/verify/report-template.ts scripts/verify/report-core.test.ts +git commit -m "feat(verify): add report-core — ReportManifest → SPEC-compliant HTML" +``` + +### Task 5: gen-report.ts —— 报告生成外壳 + +**Files:** +- Create: `scripts/verify/gen-report.ts` + +- [ ] **Step 1: 实现 Imperative Shell** + +```ts +// scripts/verify/gen-report.ts +import { readFileSync, writeFileSync, existsSync } from "node:fs"; +import path from "node:path"; +import { renderReport } from "./report-core.ts"; +import type { ReportManifest } from "./report-core.ts"; + +// 用法: npx tsx scripts/verify/gen-report.ts +// 内需有 manifest.json + demo.gif + assets/*;产出 /report.html +export function genReport(reportDir: string): string { + const manifestPath = path.join(reportDir, "manifest.json"); + if (!existsSync(manifestPath)) throw new Error(`缺 manifest.json: ${manifestPath}`); + const manifest = JSON.parse(readFileSync(manifestPath, "utf-8")) as ReportManifest; + // 校验引用的资产文件确实存在(SPEC 要求自包含、可核验) + for (const rel of [manifest.gifPath, manifest.before.still, manifest.after.still]) { + if (!existsSync(path.join(reportDir, rel))) throw new Error(`manifest 引用的资产不存在: ${rel}`); + } + const html = renderReport(manifest); + const out = path.join(reportDir, "report.html"); + writeFileSync(out, html, "utf-8"); + return out; +} + +const dir = process.argv[2]; +if (dir) console.log("生成:", genReport(dir)); +``` + +- [ ] **Step 2: 端到端验证 —— 重新生成人工样板** + +把人工样板的数据写成 `manifest.json` 放进样板目录,跑 `npx tsx scripts/verify/gen-report.ts docs/acceptance/2026-05-14-hook-moment-block`,确认生成的 `report.html` 与人工版**结构等价**(用 Edge headless 截图比对:`msedge --headless=new --screenshot=...`)。 + +- [ ] **Step 3: commit** + +```bash +git add scripts/verify/gen-report.ts docs/acceptance/2026-05-14-hook-moment-block/manifest.json +git commit -m "feat(verify): add gen-report.ts — reportDir → report.html, regenerates the reference sample" +``` + +--- + +## Phase 3 —— 套件1 复现验证代码框架(粗粒度,建议单独 brainstorm) + +> **本 Phase 不是 bite-sized 计划。** 套件1(「能完整复现 feature、内置 before/after、跑的过程自带录 GIF」的代码框架)没有原型,且与 `fixtures/scenarios/`(`Scenario` 类型:`phaseA/phaseB/phaseC`)、`packages/benchmark/`(`runner.ts`/`evaluator.ts`)既有机制边界不清。硬写 bite-sized 步骤会全是猜测。 +> +> **建议**:把 Phase 3 单独拉一轮 `superpowers:brainstorming`,先定清楚这几个问题,再出独立 plan: + +需要先 brainstorm 定夺的设计问题: +1. **套件1 与既有 `Scenario` 的关系** —— `fixtures/scenarios/moment-dayjs.ts` 已有 `phaseA(纠正)/phaseB(提炼规则)/phaseC(拦截)` 三段结构。套件1 是复用 `Scenario` 当输入,还是另起一套? +2. **before/after 的「改动前代码」怎么拿** —— WORKFLOW.md 要求「退回改动前的代码跑套件1」。是靠 git stash / worktree 切换,还是靠环境变量切换(像本次样板用 `USERPROFILE` 切知识库状态那样)?不同 feature 形态不同,需要一个统一抽象。 +3. **套件1 如何「自带录 GIF」** —— 套件1 是 TS 测试代码,GIF 录的是终端窗口。两者怎么衔接?是套件1 跑完后调 Phase 1 的 `recordGif()`,用一个「重放脚本」把套件1 的关键步骤在可见终端里再演一遍(像本次 `demo-scene.ps1`)? +4. **judge 由谁做** —— `docs/PLAN-RESEARCH-REPORT.md` 强调第三方 judge harness、禁止自评。套件1 的 pass/fail 判定接到哪。 + +粗粒度产出物(留待独立 plan 细化): +- `scripts/verify/repro-core.ts` —— 纯逻辑:before/after 结果对比、判定「对比是否成立」。 +- `scripts/verify/repro-verify.ts` —— Imperative Shell:跑某 feature 的复现验证,产出结构化结果 + 触发 Phase 1 录 GIF。 +- 一份「复现验证代码怎么写」的约定文档(类似 `SPEC.md` 之于套件2)。 + +--- + +## Self-Review + +**1. Spec coverage:** `WORKFLOW.md` 两套验证 + `docs/acceptance/SPEC.md` 要求 —— Phase 1 覆盖「自带录真实 GIF」;Phase 2 覆盖「套件2 HTML 生成器」全部硬性要求(自包含、中文、嵌 GIF、结论横幅、before/after、原始证据、复现、严谨说明 —— `validateManifest` 逐条钉);Phase 3 覆盖套件1 但明确标为需先 brainstorm。**已知缺口**:套件1 未细化(有意为之,见 Scope Check)。 + +**2. Placeholder scan:** Phase 1/2 每个 code step 给了完整可跑代码;`renderBeforeAfter` 等 6 个 section 渲染函数给了明确实现指引(对照样板 HTML 逐 section)而非空话 —— 这是为控制计划篇幅的有意取舍,实现者有样板可依。Phase 3 明确声明为粗粒度,不算占位符违规。 + +**3. Type consistency:** `ReportManifest` 在 Task 4 定义,Task 5 `gen-report.ts` 引用一致;`RecordConfig`(Task 3)、`GdigrabOpts`/`WinRect`/`PaletteOpts`(Task 1)各自自洽;`buildGifPaletteArgs` 在 Task 1 定义、Task 3 引用,签名一致。 + +## Execution Handoff + +本计划为夜间自动执行产出,留给用户晨间 review。建议执行路径: +1. **先 review 本计划 + 人工样板**(`docs/acceptance/2026-05-14-hook-moment-block/report.html`)—— 确认套件2 的形态符合预期。 +2. Phase 1 + 2 可直接按 bite-sized 步骤执行(subagent-driven 或 inline 均可)。 +3. Phase 3 执行前,先单独 brainstorm。 From feb0a80a8bd4f447b103962b0b88bf3f8b165df5 Mon Sep 17 00:00:00 2001 From: liboze2026 Date: Fri, 15 May 2026 12:05:37 +0800 Subject: [PATCH 03/29] docs(plans): add 5 implementation plans + brainstorm + INDEX for remaining workflow automation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Closes the remaining ❌/⚠️ rows in WORKFLOW.md «实现状态» table: - suite-1-brainstorm.md — 4 design decisions for suite-1 framework (Scenario/before-after/GIF/judge edges) - suite-1-repro-framework.md ⚠️→✅ 套件 1 复现验证代码框架 - local-review-loop.md ⚠️→✅ 本地 review 独立 subagent + 打回循环 - remote-review-bot.md ❌→✅ 远程 CC 自动评审 (GH Actions) - auto-merge.md ❌→✅ workflow_run-chained auto-squash - six-hour-release.md ⚠️→✅ schedule cron + early-exit guard - INDEX.md one-page entry + dependency map + status Each plan is bite-sized TDD with full code; suitable for subagent-driven-development (one subagent per Task). Reviewed by advisor before publish; 3 blocking gaps fixed: bootstrap deadlock in pr-review.yml, placeholder sed instructions in 6h-release, test-rewrite shorthand in suite-1. Total ~3050 lines across 7 files. See INDEX for execution order. Co-Authored-By: Claude Opus 4.7 (1M context) --- docs/plans/2026-05-15-INDEX.md | 138 +++ docs/plans/2026-05-15-auto-merge.md | 355 +++++++ docs/plans/2026-05-15-local-review-loop.md | 717 ++++++++++++++ docs/plans/2026-05-15-remote-review-bot.md | 496 ++++++++++ docs/plans/2026-05-15-six-hour-release.md | 204 ++++ docs/plans/2026-05-15-suite-1-brainstorm.md | 202 ++++ .../2026-05-15-suite-1-repro-framework.md | 930 ++++++++++++++++++ 7 files changed, 3042 insertions(+) create mode 100644 docs/plans/2026-05-15-INDEX.md create mode 100644 docs/plans/2026-05-15-auto-merge.md create mode 100644 docs/plans/2026-05-15-local-review-loop.md create mode 100644 docs/plans/2026-05-15-remote-review-bot.md create mode 100644 docs/plans/2026-05-15-six-hour-release.md create mode 100644 docs/plans/2026-05-15-suite-1-brainstorm.md create mode 100644 docs/plans/2026-05-15-suite-1-repro-framework.md diff --git a/docs/plans/2026-05-15-INDEX.md b/docs/plans/2026-05-15-INDEX.md new file mode 100644 index 0000000..efdd50d --- /dev/null +++ b/docs/plans/2026-05-15-INDEX.md @@ -0,0 +1,138 @@ +# 通用化实施总入口 · 2026-05-15 + +> **一句话**:把 `docs/WORKFLOW.md`「实现状态」表里 ❌/⚠️ 的 5 个子系统,逐个落成 bite-sized TDD plan。 +> **可认领**:每份 plan 独立,可被不同 CC 并行 claim(用 `lock:exec` label)。 + +--- + +## 文件总目录 + +| # | 文件 | 性质 | 行数 | 对应 WORKFLOW.md「实现状态」表的项 | +|---|---|---|---|---| +| 0 | [`2026-05-15-suite-1-brainstorm.md`](./2026-05-15-suite-1-brainstorm.md) | Brainstorm 笔记 | 202 | 套件 1 复现验证代码框架 | +| 1 | [`2026-05-15-suite-1-repro-framework.md`](./2026-05-15-suite-1-repro-framework.md) | Plan(bite-sized TDD) | 902 | 套件 1 复现验证代码框架 ⚠️→✅ | +| 2 | [`2026-05-15-local-review-loop.md`](./2026-05-15-local-review-loop.md) | Plan(bite-sized TDD) | 711 | 本地 review(独立 subagent + 打回循环)⚠️→✅ | +| 3 | [`2026-05-15-remote-review-bot.md`](./2026-05-15-remote-review-bot.md) | Plan(bite-sized TDD) | 453 | 远程 CC 自动评审 ❌→✅ | +| 4 | [`2026-05-15-auto-merge.md`](./2026-05-15-auto-merge.md) | Plan(bite-sized TDD) | 355 | 个人开发分支 → 主分支 自动合 ❌→✅ | +| 5 | [`2026-05-15-six-hour-release.md`](./2026-05-15-six-hour-release.md) | Plan(small) | 191 | 每 6 小时 release ⚠️→✅ | + +总计:6 份新文档 + 1 份本 INDEX,~2950 行。 + +--- + +## 推荐执行顺序 + +``` + 先: ▢ 0 brainstorm ──────────┐ + ▼ + ▢ 1 suite-1 framework │ + │ │ + ▼ │ + 并行: ▢ 2 local-review-loop │ (Tier-A 验证基础设施) + │ │ + ▼ │ + ▢ 3 remote-review-bot │ + │ │ + ▼ │ + ▢ 4 auto-merge │ (Tier-B 合并自动化) + │ + ▼ + ▢ 5 six-hour-release │ (Tier-C 发版自动化) +``` + +**Tier-A(验证基础设施)必须最先做** —— 后面 review/auto-merge 都依赖它出 verdict。 +**Tier-B(评审 + 合并)中间层** —— 远程评审依赖本地评审的类型,自动合并依赖远程评审的 status。 +**Tier-C(发版)最后** —— 只是 release-branch.yml 的小幅改造,与前面解耦,什么时候上都行。 + +### 依赖关系明细 + +| Plan | 强依赖 | 弱依赖(用过会更顺) | +|---|---|---| +| 1 suite-1 | 已有的 `verification-tooling.md` Phase 1 (`recordGif`) —— 否则 `--no-gif` 跑骨架 | — | +| 2 local-review-loop | 1 suite-1(读 `repro-result.json`)、verification-tooling Phase 1/2(只读类型) | — | +| 3 remote-review-bot | 2 local-review-loop(复用 `ReviewResult` 类型与 `post-pr-comment` 渲染) | 1 suite-1(否则 fixtures/repro-specs 为空,workflow 跳过 repro job) | +| 4 auto-merge | 3 remote-review-bot(等它的 `review/verdict` commit status) | — | +| 5 six-hour-release | 无强依赖 | 4 auto-merge(就着自动 merge 的 push 顺势触发更顺) | + +### 单 CC 串行 vs 多 CC 并行 + +- **单 CC 串行**:按 0 → 1 → 2 → 3 → 4 → 5 顺序做。每份 plan 独立 commit,不会撞锁。预估实施时间(不含 review):suite-1 ~2 天 / local-review ~1.5 天 / remote-review ~1 天 / auto-merge ~0.5 天 / 6h-release ~2 小时。 +- **多 CC 并行**:Tier-A 完成后,3 + 4 + 5 都可以同时启动,但要走「认领锁」(`docs/CLAIM-LOCK.md`)避免撞:不同 plan 用 `lock:exec` label,issue 标题写「Implement plan 2026-05-15-」。 + +--- + +## WORKFLOW.md「实现状态」表对照(预计落地后) + +| 环节 | 现状 | 本批 plan 落地后 | +|---|---|---| +| `grill-me` 挖方案 | ✅ | ✅(不动) | +| 两套验证的「概念」 | ✅ | ✅(不动) | +| 套件 1 自带录 GIF | ⚠️ | ✅(plan #1) | +| 套件 2 HTML 报告生成 | ⚠️ | ✅(`verification-tooling.md` Phase 2,不在本批,但前置已就绪) | +| 本地 review(独立 subagent + 打回循环) | ⚠️ | ✅(plan #2) | +| 远程 CC 自动评审 | ❌ | ✅(plan #3) | +| 两把锁 + 24h 自动撤锁 | ✅ | ✅(不动) | +| 个人开发分支 → 主分支 自动合 | ❌ | ✅(plan #4,squash 模型下并为一步) | +| 每 6 小时 release | ⚠️ | ✅(plan #5) | + +落地后 `WORKFLOW.md` 的「实现状态」表应全部 ✅。 +**不在本批**:套件 2 HTML 生成器属于 `2026-05-14-verification-tooling.md` 的 Phase 2,昨晚的计划已细化,不重写。 + +--- + +## 跨子系统 follow-up(已知未覆盖项) + +下列在本批 5 份 plan 里**显式未做**,需另起子计划: + +1. **`scripts/review/loop-driver.ts` 的 Agent tool IPC 实现**(plan #2 Task 5): + 现状是 driver 写 `/tmp/fix-pending` + `/tmp/fix-prompt`,期望宿主 CC 的 hook 监听它派 subagent。这个 hook 还没实现 —— 在本批之外属于「执行框架自动化」的事(写一个 Claude Code hook 或 user-level skill)。 + **临时 fallback**:`--fix-mode manual` 把 fix prompt 打印,人手贴给 CC 派出。 +2. **外部 fork PR 评审**(plan #3 安全前提):本批跳过外部 fork。引入需走 `pull_request_target` + 严格 secret 隔离,另一个安全子系统。 +3. **「个人开发分支」长期累积模型**(plan #4 头部说明):本批在 squash-merge 假设下把 6→7 步并为一步。若未来引入长期 user/* 分支,需另起 plan。 + +--- + +## 跨 plan 自审(writing-plans 三项) + +本批 6 份文档作为整体的自审。 + +### 1. Spec coverage + +WORKFLOW.md「实现状态」表 9 项,本批覆盖 5 项 ✅;另 4 项已 ✅(grill-me / 两套验证概念 / 锁 / 一项)或在另一份 plan(verification-tooling Phase 2)。**无遗漏项**。 + +### 2. Placeholder scan + +跨文档 grep: +- `\bTBD\b` / `\bTODO\b` / "implement later" / "fill in details" / "appropriate error handling" / "similar to Task" → **0 命中**。 +- 「占位」一词出现 4 处,均在 plan #1 Task 2/4 的有意占位 + Task 4 显式删除 `sideMatchesMerged` 的描述里 —— 不是 plan placeholder,是显式的两阶段 refactor。 +- plan #2 Task 5 的 `dispatchFixSubagent` 是「IPC 约定接口」(显式说明),不是 placeholder。 + +### 3. Type consistency(跨 plan) + +| 类型 | 定义在 | 被复用在 | 一致? | +|---|---|---|---| +| `ReproSpec` / `ReproResult` / `ResultMatcher` | plan #1 Task 1 | plan #2 Task 3(`checkReproPass` 读 `verdict`/`verdictReason` 字段)、plan #3 Task 3(workflow 调 `repro-cli` 二进制,不直接 import 类型) | ✅ | +| `ReviewResult` / `CriterionResult` / `FixDirective` | plan #2 Task 1 | plan #3 Task 2 `post-pr-comment.ts` import `ReviewResult` 用于渲染评论(注:plan #3 workflow 本身用 shell+jq 拼 review-verdict.json,不调 plan #2 的 `aggregateVerdict` —— 共享面就是一个 type + 一个渲染函数,不是整套核心逻辑) | ✅ | +| `PrSnapshot` / `AutoMergeDecision` | plan #4 Task 1 | (仅 plan #4 内部) | ✅ | +| `LoopOptions` | plan #2 Task 1 | plan #2 内部(Task 3/4/5) | ✅ | + +**潜在跨文件命名风险**:`SideResult.matcherOk` 与 `CriterionResult.ok` 都用 `ok` 字段表「通过」语义 —— 同一概念名,合理。 + +--- + +## 怎么开始 + +**用户**(给出方向): +> 「按 INDEX 推荐顺序,先做 plan #1。」(然后挑一个 CC 或自己开干) + +**CC**(执行): +1. claim 一份 plan(`lock:exec` label + 评论锚点,见 `docs/CLAIM-LOCK.md`) +2. 在新 worktree 起一个 feature 分支 +3. 按 plan 的 bite-sized step 一条一条做(用 `superpowers:subagent-driven-development` 或 `superpowers:executing-plans`) +4. 跑套件 1 + 套件 2 出验收 → 跑本地 review 循环 → push → 远程 review → auto-merge。 + +**渐进打开自动化**:plan #1 完成时 → 你已能跑套件 1;#2 完成 → 本地 review 循环;#3 完成 → 远程 review;#4 完成 → 自动合并;#5 完成 → 定时发版。每完成一项,WORKFLOW.md 的「实现状态」表勾掉一行,直观追踪。 + +--- + +🦆 *Plans 由 Claude Code 在 2026-05-15 上午一次产出,用 `superpowers:writing-plans` skill;brainstorm 笔记 + 5 份 plan 总计 ~2200 行;由 advisor 在动笔前打回过 1 次(原方案是「一份大文档」,advisor 指出违反「一子系统一 plan」的项目习惯,改为本批 6 份)。* diff --git a/docs/plans/2026-05-15-auto-merge.md b/docs/plans/2026-05-15-auto-merge.md new file mode 100644 index 0000000..1bff7c1 --- /dev/null +++ b/docs/plans/2026-05-15-auto-merge.md @@ -0,0 +1,355 @@ +# 自动合并(远程 review 一过 → 主分支)Implementation Plan + +> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. + +**Goal:** 把 `docs/WORKFLOW.md` 第 6–7 步「远程 review 一过 → 自动合到主分支(中间无人工关卡)」落成 GitHub Actions workflow。链在 `pr-review.yml` 之后:它出 verdict=pass → 自动 `gh pr merge --squash --delete-branch`(POSTPR.md 钉死的合并方式),除非 PR 含 visual-proof(POSTPR.md 钉死的 human-merge 例外)或 PR 标了 `do-not-merge` label。 + +**Architecture:** workflow_run 链式触发 —— pr-review.yml 成功 → auto-merge.yml 启动。auto-merge.yml 是「门控 + 一条 gh pr merge 命令」的轻 workflow,不重做 verdict 判定(信任 pr-review 的 commit status)。门控逻辑放纯 TypeScript 文件 `scripts/automerge/can-auto-merge.ts`,可单测;workflow 只负责调它 + 跑 gh。 + +**Tech Stack:** GitHub Actions(`workflow_run` 触发器)+ `gh` CLI + 一段轻 TS 门控逻辑。 + +--- + +## 关于 WORKFLOW.md「个人开发分支 → 主分支」两阶段 + +WORKFLOW.md 第 6–7 步写的是: +> 6. 合并到个人开发分支 +> 7. 合并到主分支 +> 这两步之间**没有人工关卡** + +在本仓库的 squash-merge 模型(`POSTPR.md` 钉死)里,**这两阶段在物理上是一次操作**: +`gh pr merge --squash --delete-branch` 把 feature 分支(提交者的「个人开发分支」)上的 N 个 commit 压成 1 个 commit、直接落到 main、删掉 feature 分支。所以本计划只实现一个 workflow,不强行分两步 —— 文档里说明这一对齐即可。 + +(若未来引入「user/ 长期分支累积」模式,本 plan 需另外起一个中间合并环节;目前不需要。) + +--- + +## File Structure + +``` +scripts/automerge/ + can-auto-merge.ts ← 纯逻辑:输入 PR metadata → 输出 {merge: bool, reason: string} + can-auto-merge.test.ts ← node:test 单测 +.github/workflows/ + auto-merge.yml ← workflow_run 链式触发 + 调 can-auto-merge + 跑 gh pr merge +``` + +--- + +## 安全/正确性前提 + +1. **必须先有 `pr-review.yml` 的 commit status 卡住合并**(`2026-05-15-remote-review-bot.md` Task 3 Step 3 已开)。否则 auto-merge 会绕过 verdict 把任何 PR 合掉。 +2. **POSTPR.md 钉死的禁止合并路径**(`docs/VISUAL-PROOF-HUMAN-MERGE.md#forbidden-merge-paths`):若 PR body 含 `## Visual proof of work` 段,agent 不许调 `gh pr merge` —— 由人在 GitHub UI 点。本 plan 显式 skip。 +3. **stacked PR**(POSTPR.md「Squash repo: PRs must base against main」):若 baseRefName ≠ main,直接 skip + 在 PR 评论里报错(stacked PR squash 会丢数据,POSTPR.md 已记录 incident)。 +4. **重入安全**:同一 PR 多次触发 workflow_run → 第二次 `gh pr merge` 会因 PR 已 closed 失败,但不会损坏 main。再加 concurrency group 兜底。 + +## Task 1: `can-auto-merge.ts` —— 纯门控逻辑 + +**Files:** +- Create: `scripts/automerge/can-auto-merge.ts` +- Test: `scripts/automerge/can-auto-merge.test.ts` + +- [ ] **Step 1: 写失败测试(7 条)** + +```ts +// scripts/automerge/can-auto-merge.test.ts +import { test } from "node:test"; +import assert from "node:assert/strict"; +import { canAutoMerge } from "./can-auto-merge.ts"; +import type { PrSnapshot } from "./can-auto-merge.ts"; + +const ok: PrSnapshot = { + number: 1, baseRefName: "main", isDraft: false, + body: "Feature X", labels: [], state: "OPEN", + mergeable: "MERGEABLE", reviewVerdictState: "success", + isFromInternalRepo: true, +}; + +test("基本通过:全条件 OK → merge=true", () => { + const r = canAutoMerge(ok); + assert.equal(r.merge, true); +}); + +test("draft → skip", () => { + assert.equal(canAutoMerge({ ...ok, isDraft: true }).merge, false); +}); + +test("base 非 main → skip(POSTPR squash 模型禁止 stacked)", () => { + const r = canAutoMerge({ ...ok, baseRefName: "user/dev" }); + assert.equal(r.merge, false); + assert.match(r.reason, /stacked|baseRef/); +}); + +test("PR body 含 ## Visual proof of work → skip(human-merge only)", () => { + const r = canAutoMerge({ ...ok, body: "Feature X\n\n## Visual proof of work\n\n![gif](...)" }); + assert.equal(r.merge, false); + assert.match(r.reason, /visual.proof/i); +}); + +test("有 do-not-merge label → skip", () => { + assert.equal(canAutoMerge({ ...ok, labels: ["do-not-merge"] }).merge, false); +}); + +test("review/verdict status 非 success → skip", () => { + assert.equal(canAutoMerge({ ...ok, reviewVerdictState: "failure" }).merge, false); + assert.equal(canAutoMerge({ ...ok, reviewVerdictState: "pending" }).merge, false); +}); + +test("外部 fork PR → skip(pr-review.yml 也不评审外部 fork,这里兜底)", () => { + assert.equal(canAutoMerge({ ...ok, isFromInternalRepo: false }).merge, false); +}); +``` + +- [ ] **Step 2: 跑测试确认失败** + +Run: `npx tsx --test scripts/automerge/can-auto-merge.test.ts` +Expected: FAIL —— `Cannot find module` + +- [ ] **Step 3: 实现** + +```ts +// scripts/automerge/can-auto-merge.ts + +export interface PrSnapshot { + number: number; + baseRefName: string; + isDraft: boolean; + body: string; + labels: string[]; + state: "OPEN" | "CLOSED" | "MERGED"; + mergeable: "MERGEABLE" | "CONFLICTING" | "UNKNOWN"; + /** GitHub 上 review/verdict 这条 commit status 的状态 */ + reviewVerdictState: "success" | "failure" | "pending" | "missing"; + /** PR head 是否在仓库内(非 fork) */ + isFromInternalRepo: boolean; +} + +export interface AutoMergeDecision { + merge: boolean; + reason: string; // 不论通过与否,都给一个 reason 便于审计 +} + +export function canAutoMerge(pr: PrSnapshot): AutoMergeDecision { + if (pr.state !== "OPEN") return { merge: false, reason: `PR state=${pr.state},非 OPEN,跳过` }; + if (pr.isDraft) return { merge: false, reason: `PR 是 draft,跳过` }; + if (!pr.isFromInternalRepo) return { merge: false, reason: `PR 来自外部 fork,跳过(安全策略)` }; + if (pr.baseRefName !== "main") { + return { merge: false, reason: `baseRefName=${pr.baseRefName} ≠ main,stacked PR 在 squash 模型下会丢数据,跳过(见 POSTPR.md)` }; + } + if (pr.labels.includes("do-not-merge")) return { merge: false, reason: `PR 带 do-not-merge label` }; + if (containsVisualProof(pr.body)) { + return { merge: false, reason: `PR body 含 "## Visual proof of work" → 走 human-merge(VISUAL-PROOF-HUMAN-MERGE.md 钉死)` }; + } + if (pr.reviewVerdictState !== "success") { + return { merge: false, reason: `review/verdict commit status = ${pr.reviewVerdictState},非 success` }; + } + if (pr.mergeable !== "MERGEABLE") { + return { merge: false, reason: `mergeable=${pr.mergeable},等 GitHub 重算或解冲突` }; + } + return { merge: true, reason: `所有门控通过 —— review verdict success + base main + no flags` }; +} + +function containsVisualProof(body: string): boolean { + // POSTPR.md 钉的章节标题 —— 不区分大小写、允许任意空白 + return /^\s*##\s+visual\s+proof\s+of\s+work/im.test(body); +} +``` + +- [ ] **Step 4: 跑测试通过** + +Run: `npx tsx --test scripts/automerge/can-auto-merge.test.ts` +Expected: PASS (7/7) + +- [ ] **Step 5: commit** + +```bash +git add scripts/automerge/can-auto-merge.ts scripts/automerge/can-auto-merge.test.ts +git commit -m "feat(automerge): add can-auto-merge — pure gate logic for auto-squash-merge" +``` + +--- + +## Task 2: `auto-merge.yml` —— workflow_run 链式触发 + gh pr merge + +**Files:** +- Create: `.github/workflows/auto-merge.yml` + +- [ ] **Step 1: 写 workflow** + +```yaml +# .github/workflows/auto-merge.yml +name: Auto-merge (远程 review 通过 → 自动 squash 合主分支) + +on: + workflow_run: + workflows: ["PR Review (远程 CC 自动评审)"] + types: [completed] + +permissions: + contents: write # squash merge 落 commit 到 main + pull-requests: write # 关 PR、删 branch、写 comment + +# 同 PR 重入兜底:同 head SHA 只跑一次 +concurrency: + group: auto-merge-${{ github.event.workflow_run.head_sha }} + cancel-in-progress: false + +jobs: + evaluate-and-merge: + if: github.event.workflow_run.conclusion == 'success' && github.event.workflow_run.event == 'pull_request' + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v5 + with: { ref: ${{ github.event.workflow_run.head_sha }}, fetch-depth: 0 } + - uses: actions/setup-node@v5 + with: { node-version: '22' } + + - name: Resolve PR number from workflow_run + id: pr + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + shell: bash + run: | + # workflow_run 不直接给 PR 号,要从 head_sha 反查 + PR_NUMBER=$(gh pr list --head "${{ github.event.workflow_run.head_branch }}" \ + --state open --json number --jq '.[0].number // empty') + if [[ -z "$PR_NUMBER" ]]; then + echo "::warning::找不到 head_branch=${{ github.event.workflow_run.head_branch }} 的 open PR;退出" + echo "skip=true" >> "$GITHUB_OUTPUT"; exit 0 + fi + echo "pr=$PR_NUMBER" >> "$GITHUB_OUTPUT" + echo "找到 PR #$PR_NUMBER" + + - name: Snapshot PR + if: steps.pr.outputs.skip != 'true' + id: snap + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + shell: bash + run: | + PR=${{ steps.pr.outputs.pr }} + gh pr view "$PR" --json number,baseRefName,isDraft,body,labels,state,mergeable,headRepository,headRepositoryOwner > /tmp/pr.json + # review/verdict commit status + STATUS=$(gh api "repos/${{ github.repository }}/commits/${{ github.event.workflow_run.head_sha }}/statuses" \ + --jq '[.[] | select(.context=="review/verdict")][0].state // "missing"') + REPO_OWNER='${{ github.repository_owner }}' + jq --arg verdict "$STATUS" --arg owner "$REPO_OWNER" '. + { + reviewVerdictState: $verdict, + isFromInternalRepo: (.headRepositoryOwner.login == $owner), + labels: [.labels[].name] + }' /tmp/pr.json > /tmp/snapshot.json + cat /tmp/snapshot.json + + - name: Decide + if: steps.pr.outputs.skip != 'true' + id: decide + shell: bash + run: | + npx tsx -e " + import {canAutoMerge} from './scripts/automerge/can-auto-merge.ts'; + import {readFileSync, writeFileSync} from 'node:fs'; + const snap = JSON.parse(readFileSync('/tmp/snapshot.json', 'utf-8')); + const r = canAutoMerge(snap); + writeFileSync('/tmp/decision.json', JSON.stringify(r, null, 2)); + console.log(JSON.stringify(r, null, 2)); + process.exit(r.merge ? 0 : 78); + " && echo "merge=true" >> "$GITHUB_OUTPUT" || { + ec=$? + echo "merge=false" >> "$GITHUB_OUTPUT" + if [[ $ec -ne 78 ]]; then exit $ec; fi + } + + - name: Merge + if: steps.decide.outputs.merge == 'true' + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + PR=${{ steps.pr.outputs.pr }} + gh pr merge "$PR" --squash --delete-branch + gh pr comment "$PR" --body "🤖 远程 review 通过 → 已自动 squash 合并到 main(\`auto-merge.yml\`)。" + + - name: Skip note + if: steps.decide.outputs.merge == 'false' && steps.pr.outputs.skip != 'true' + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + shell: bash + run: | + PR=${{ steps.pr.outputs.pr }} + REASON=$(jq -r .reason /tmp/decision.json) + gh pr comment "$PR" --body "🤖 auto-merge 跳过 —— 原因: $REASON" + echo "skipped: $REASON" +``` + +- [ ] **Step 2: 端到端验证** + +```bash +# 1) 把 auto-merge.yml + can-auto-merge 推到 main(走正常 PR 流程) +git checkout -b feat/auto-merge +git add scripts/automerge/ .github/workflows/auto-merge.yml +git commit -m "feat(automerge): add can-auto-merge + auto-merge.yml workflow" +git push origin feat/auto-merge +gh pr create --base main --head feat/auto-merge --title "feat(automerge): bring up auto-merge workflow" \ + --body "Bring-up of automatic merge after pr-review.yml verdict=pass." + +# 2) 等 pr-review.yml 跑完(verdict=pass)→ auto-merge.yml 自动接力 → PR 自动合 +gh pr checks --watch # 看着 review/verdict 变 success +gh pr view --json state # 应在 ~30s 内变 MERGED;feat/auto-merge 分支被自动删 +gh pr view --comments | tail -20 # 应看到「🤖 远程 review 通过 → 已自动 squash 合并...」评论 +``` + +Expected: +- pr-review.yml 跑完且 verdict=pass(假设 fixtures/repro-specs/ 里所有 spec 全过) +- 30 秒内 PR 状态变 MERGED +- 本地 `git pull --ff-only origin main` 拉到 squash commit + +如果 PR body 含 `## Visual proof of work` 或带 `do-not-merge` label,decide step 会输出 `merge=false`,workflow 留下「跳过 —— 原因: ...」评论,不合并 —— 这是预期。 + +- [ ] **Step 3: 边界手动测** + +为了确认门控真生效,触发两个负 case: + +```bash +# A. visual-proof skip +git checkout -b test/auto-merge-vp main +echo "noop" > .auto-merge-test +git add . && git commit -m "test: visual-proof skip" +git push origin test/auto-merge-vp +gh pr create --base main --head test/auto-merge-vp --title "test: vp skip" \ + --body "$(printf 'noop\n\n## Visual proof of work\n\n![](.png)\n')" +# 等 pr-review verdict 出来,检查 auto-merge 评论应是「跳过 —— ... visual proof ...」 +gh pr close --delete-branch --comment "test cleanup" + +# B. do-not-merge label skip +git checkout -b test/auto-merge-dnm main +echo "noop" > .auto-merge-test2 && git add . && git commit -m "test: dnm" && git push origin test/auto-merge-dnm +gh pr create --base main --head test/auto-merge-dnm --title "test: dnm" --body "noop" +gh pr edit --add-label do-not-merge +# 同上验证跳过原因 +gh pr close --delete-branch --comment "test cleanup" +``` + +- [ ] **Step 4: commit + 让本计划的 PR 用自己合自己(自洽)** + +```bash +git add .github/workflows/auto-merge.yml scripts/automerge/ +git commit -m "feat(automerge): bring up auto-merge.yml + verify gate via two negative tests" +# push 后让 pr-review + auto-merge 自己把这个 PR 合掉,即可证明端到端通了 +``` + +--- + +## Self-Review + +**1. Spec coverage:** WORKFLOW.md 第 6–7 步:① 远程 review 一过 → 自动合 → workflow_run 链式触发 + reviewVerdictState 守门;② 中间无人工关卡 → 是,gh pr merge 一步到位;③ 落主分支 → squash 一次成型,符合 POSTPR.md。**已知缺口**:WORKFLOW.md 字面分「个人开发分支」与「主分支」两步,本 plan 在 squash-merge 模型下合并为一步并文档说明对齐;若未来要引入长期 user/* 累积分支,需另起子计划。 + +**2. Placeholder scan:** 无 TBD/TODO。所有 yaml step 都给了真命令。`canAutoMerge` 7 个测试覆盖所有分支(无 untested fall-through)。 + +**3. Type consistency:** `PrSnapshot` 字段在 Task 1 一次定义、workflow Snapshot step 用 jq 拼成同名字段、decide step 直接传给 `canAutoMerge` —— 字段名一致(`baseRefName`/`isDraft`/`body`/`labels`/`state`/`mergeable`/`reviewVerdictState`/`isFromInternalRepo`)。 + +## Execution Handoff + +Plan complete. 推荐执行路径: + +1. **前置**:`2026-05-15-remote-review-bot.md` 必须先落地(Task 3 Step 3 也要在 GitHub UI 设好 branch protection)。否则 auto-merge 没有 verdict 可读,会一直 skip。 +2. **执行**:Task 1–2 串行。 +3. **验收**:本 PR 自己被自动合 = end-to-end ok。 diff --git a/docs/plans/2026-05-15-local-review-loop.md b/docs/plans/2026-05-15-local-review-loop.md new file mode 100644 index 0000000..e7722b8 --- /dev/null +++ b/docs/plans/2026-05-15-local-review-loop.md @@ -0,0 +1,717 @@ +# 本地 Review 自动打回循环 Implementation Plan + +> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking. + +**Goal:** 把 `docs/WORKFLOW.md` 第 4 步「另开独立 subagent 跑 2 条标准的本地 review,不通过打回重做、循环至通过」落成可跑工具 —— 任何执行 CC 在做完 feature 后,跑一条命令就触发 review;不通过则用 Claude Code 的 `Agent` 工具自动派一个执行 subagent 修,然后再 review,直到通过或达上限。 + +**Architecture:** Functional core / Imperative shell —— `review-core.ts` 纯逻辑(把「2 条标准」的 outcome 合成 verdict、判定打回理由分类),严禁 IO;`run-checks.ts` 跑测试 + 检查冲突 + 读 ReproResult 是 IO 层;`loop-driver.ts` 是循环编排,负责派打回 subagent 与判定终止。本计划与 `2026-05-15-suite-1-repro-framework.md` 是消费/被消费关系 —— review 标准 1 直接 cat 套件 1 的 `repro-result.json`,不重复实现 verdict 逻辑。 + +**Tech Stack:** TypeScript + `tsx` + `node:test` + `pnpm test` + `git status` + Claude Code `Agent` tool(由 `loop-driver.ts` 通过 stdin/stdout 间接驱动 —— 见 Task 5 的 fallback 说明)。 + +--- + +## File Structure + +``` +scripts/review/ + review-types.ts ← ReviewVerdict / Criterion / FixDirective 类型 + review-core.ts ← 纯逻辑:汇总 2 条标准 → verdict;失败原因分类 + review-core.test.ts ← node:test 单测 + run-checks.ts ← Imperative shell:跑 pnpm test、git 冲突检查、读 repro-result.json + review-cli.ts ← CLI:跑一次 review,输出 review-verdict.json + 退出码 + loop-driver.ts ← Imperative shell:review → 不过派打回 subagent → 再 review,循环 +.claude/skills/local-review/ + SKILL.md ← 给 review subagent 的角色指令(2 条标准 + 输出格式) + fix-directive-prompt.md ← 给打回 subagent 的「修这个,然后 stop」prompt 模板 +``` + +**Naming:** 与 `scripts/verify/` 平行,放 `scripts/review/`。`scripts/` 整体是「Imperative Shell + Core」的脚本区,与 pnpm workspace 隔离,用 `tsx` 跑、`node:test` 测。 + +--- + +## Task 1: `review-types.ts` —— 类型 + +**Files:** +- Create: `scripts/review/review-types.ts` + +- [ ] **Step 1: 写类型** + +```ts +// scripts/review/review-types.ts + +/** WORKFLOW.md 第 4 步钉死的 2 条标准 */ +export type CriterionId = + | "repro-pass" // 标准 1:套件 1 跑出 verdict = "pass" + | "tests-and-merge-clean"; // 标准 2:pnpm test 全过 + git 工作树干净 + 与 main 无冲突 + +export interface CriterionResult { + id: CriterionId; + ok: boolean; + /** 给人看的简述,1 行 */ + summary: string; + /** 详细信息,可多行;ok=true 时可能为空 */ + details: string; +} + +export type ReviewVerdict = "pass" | "fail"; + +export interface ReviewResult { + generatedAt: string; + verdict: ReviewVerdict; + criteria: CriterionResult[]; + /** verdict=fail 时,给打回 subagent 的结构化指令(给 LLM 作 prompt 用)*/ + fixDirective?: FixDirective; +} + +export interface FixDirective { + /** kebab-case 失败类型,便于 loop-driver 防止「同一类失败连续打回 N 次」 */ + failureKind: "repro-fail" | "repro-ambiguous" | "tests-failing" | "merge-conflict" | "dirty-tree" | "missing-repro-result"; + /** 给打回 subagent 一段可读 prompt,描述「要修什么、修完怎么自检」 */ + prompt: string; +} + +export interface LoopOptions { + /** 最多打回几次后强制停止(默认 3)。防止死循环。 */ + maxRetries: number; + /** 跑 review 的 ReproResult 路径(套件 1 产出) */ + reproResultPath: string; + /** 评测时基于哪个 base ref 比对(默认 main) */ + baseBranch: string; + /** 跑测试用的命令 */ + testCommand: string; + testArgs: string[]; +} +``` + +- [ ] **Step 2: 编译验证** + +Run: `npx tsc --noEmit --target es2022 --module node16 --moduleResolution node16 scripts/review/review-types.ts` +Expected: PASS + +- [ ] **Step 3: commit** + +```bash +git add scripts/review/review-types.ts +git commit -m "feat(review): add review-types — CriterionResult/ReviewVerdict/FixDirective" +``` + +--- + +## Task 2: `review-core.ts` —— 纯逻辑(汇总 verdict + 失败原因分类) + +**Files:** +- Create: `scripts/review/review-core.ts` +- Test: `scripts/review/review-core.test.ts` + +- [ ] **Step 1: 写失败测试(6 条)** + +```ts +// scripts/review/review-core.test.ts +import { test } from "node:test"; +import assert from "node:assert/strict"; +import { aggregateVerdict, classifyFailure, formatFixPrompt } from "./review-core.ts"; +import type { CriterionResult } from "./review-types.ts"; + +const passRepro: CriterionResult = { id: "repro-pass", ok: true, summary: "verdict=pass", details: "" }; +const failRepro: CriterionResult = { id: "repro-pass", ok: false, summary: "verdict=fail", details: "before 期望未达: stdout 缺关键字 \"deny\"" }; +const ambiguousRepro: CriterionResult = { id: "repro-pass", ok: false, summary: "verdict=ambiguous", details: "before 也命中了 after 的期望" }; +const passTests: CriterionResult = { id: "tests-and-merge-clean", ok: true, summary: "tests pass + tree clean", details: "" }; +const failTests: CriterionResult = { id: "tests-and-merge-clean", ok: false, summary: "23/100 tests failing", details: "FAIL packages/core/src/foo.test.ts ..." }; +const dirtyTree: CriterionResult = { id: "tests-and-merge-clean", ok: false, summary: "tests pass; working tree dirty (3 files)", details: " M src/x.ts\n?? note.md" }; + +test("aggregateVerdict: 两条都 ok → pass", () => { + const r = aggregateVerdict([passRepro, passTests]); + assert.equal(r.verdict, "pass"); + assert.equal(r.fixDirective, undefined); +}); + +test("aggregateVerdict: 任一不 ok → fail + 带 fixDirective", () => { + const r = aggregateVerdict([failRepro, passTests]); + assert.equal(r.verdict, "fail"); + assert.ok(r.fixDirective); + assert.equal(r.fixDirective!.failureKind, "repro-fail"); +}); + +test("classifyFailure: repro 各种情况", () => { + assert.equal(classifyFailure(failRepro).failureKind, "repro-fail"); + assert.equal(classifyFailure(ambiguousRepro).failureKind, "repro-ambiguous"); + const missing: CriterionResult = { id: "repro-pass", ok: false, summary: "missing repro-result.json", details: "" }; + assert.equal(classifyFailure(missing).failureKind, "missing-repro-result"); +}); + +test("classifyFailure: tests 失败 vs 工作树脏 vs 冲突", () => { + assert.equal(classifyFailure(failTests).failureKind, "tests-failing"); + assert.equal(classifyFailure(dirtyTree).failureKind, "dirty-tree"); + const conflict: CriterionResult = { id: "tests-and-merge-clean", ok: false, summary: "merge conflict with main", details: "" }; + assert.equal(classifyFailure(conflict).failureKind, "merge-conflict"); +}); + +test("formatFixPrompt: 包含失败类别 + details + 「修完怎么自检」", () => { + const p = formatFixPrompt({ failureKind: "tests-failing", prompt: "" }, failTests); + assert.match(p, /tests-failing/); + assert.match(p, /23\/100/); + assert.match(p, /pnpm test/); // 修完后该跑啥 +}); + +test("aggregateVerdict 多失败:fixDirective 取「优先级高」的失败 (repro > tests > tree)", () => { + const r = aggregateVerdict([failRepro, failTests]); + assert.equal(r.fixDirective!.failureKind, "repro-fail"); // repro 比 tests 优先 +}); +``` + +- [ ] **Step 2: 跑测试确认失败** + +Run: `npx tsx --test scripts/review/review-core.test.ts` +Expected: FAIL —— `Cannot find module './review-core.ts'` + +- [ ] **Step 3: 实现 `review-core.ts`** + +```ts +// scripts/review/review-core.ts +import type { CriterionResult, FixDirective, ReviewResult } from "./review-types.ts"; + +const FAILURE_PRIORITY: FixDirective["failureKind"][] = [ + "missing-repro-result", + "repro-fail", + "repro-ambiguous", + "merge-conflict", + "tests-failing", + "dirty-tree", +]; + +export function classifyFailure(c: CriterionResult): FixDirective { + if (c.ok) throw new Error("classifyFailure 不应被调用 ok=true 的 criterion"); + if (c.id === "repro-pass") { + if (c.summary.includes("missing")) return { failureKind: "missing-repro-result", prompt: "" }; + if (c.summary.includes("ambiguous")) return { failureKind: "repro-ambiguous", prompt: "" }; + return { failureKind: "repro-fail", prompt: "" }; + } + // c.id === "tests-and-merge-clean" + const s = c.summary.toLowerCase(); + if (s.includes("conflict")) return { failureKind: "merge-conflict", prompt: "" }; + if (s.includes("dirty") || s.includes("untracked")) return { failureKind: "dirty-tree", prompt: "" }; + return { failureKind: "tests-failing", prompt: "" }; +} + +export function aggregateVerdict(criteria: CriterionResult[]): ReviewResult { + const fails = criteria.filter((c) => !c.ok); + if (fails.length === 0) { + return { generatedAt: new Date().toISOString(), verdict: "pass", criteria }; + } + // 取优先级最高的 fail + const classified = fails.map((c) => ({ c, fd: classifyFailure(c) })); + classified.sort((a, b) => FAILURE_PRIORITY.indexOf(a.fd.failureKind) - FAILURE_PRIORITY.indexOf(b.fd.failureKind)); + const top = classified[0]; + return { + generatedAt: new Date().toISOString(), + verdict: "fail", + criteria, + fixDirective: { ...top.fd, prompt: formatFixPrompt(top.fd, top.c) }, + }; +} + +export function formatFixPrompt(fd: FixDirective, c: CriterionResult): string { + const headerByKind: Record = { + "repro-fail": "套件 1 复现验证 verdict=fail —— before/after 对比未严谨成立", + "repro-ambiguous": "套件 1 复现验证 verdict=ambiguous —— 两侧期望可互换命中,对比不严谨", + "missing-repro-result": "找不到 repro-result.json —— 你还没跑套件 1,或 spec 路径错了", + "merge-conflict": "与 main 有合并冲突", + "tests-failing": "全量测试有失败用例", + "dirty-tree": "工作树有未提交改动", + }; + const selfCheckByKind: Record = { + "repro-fail": "重跑 `npx tsx scripts/verify/repro-cli.ts --no-gif`,看 verdict=pass", + "repro-ambiguous": "重审 ReproSpec.expect.before/after 是否真互斥;改完重跑 repro-cli", + "missing-repro-result": "先跑 `npx tsx scripts/verify/repro-cli.ts `", + "merge-conflict": "`git fetch origin && git rebase origin/main`,解冲突后重跑 review", + "tests-failing": "`pnpm test` 退出码 0", + "dirty-tree": "`git status` 干净(无 M / 无 ??),要么提交要么 .gitignore", + }; + return [ + `## 失败类别: ${fd.failureKind}`, + `**问题**:${headerByKind[fd.failureKind]}`, + ``, + `### 详情`, + "```", + c.details || c.summary, + "```", + ``, + `### 修完后怎么自检`, + selfCheckByKind[fd.failureKind], + ``, + `### 边界`, + `- 只动**与本失败类别直接相关**的代码;**不要顺手 refactor**。`, + `- 修好后用 \`echo done > /tmp/fix-marker\` 落一个标记文件,然后 stop。loop-driver 检测到标记会重跑 review。`, + ].join("\n"); +} +``` + +- [ ] **Step 4: 跑测试确认通过** + +Run: `npx tsx --test scripts/review/review-core.test.ts` +Expected: PASS (6/6) + +- [ ] **Step 5: commit** + +```bash +git add scripts/review/review-core.ts scripts/review/review-core.test.ts +git commit -m "feat(review): add review-core — verdict aggregation + failure classification" +``` + +--- + +## Task 3: `run-checks.ts` —— 标准 1+2 的实际跑法 + +**Files:** +- Create: `scripts/review/run-checks.ts` + +- [ ] **Step 1: 实现 imperative shell** + +```ts +// scripts/review/run-checks.ts +import { spawnSync } from "node:child_process"; +import { existsSync, readFileSync } from "node:fs"; +import type { CriterionResult, LoopOptions } from "./review-types.ts"; + +/** 标准 1:读套件 1 产出的 repro-result.json,要求 verdict = "pass" */ +export function checkReproPass(reproResultPath: string): CriterionResult { + if (!existsSync(reproResultPath)) { + return { + id: "repro-pass", ok: false, + summary: `missing repro-result.json: ${reproResultPath}`, + details: "先跑套件 1 产出该文件,再跑 review。", + }; + } + let parsed: { verdict?: string; verdictReason?: string }; + try { parsed = JSON.parse(readFileSync(reproResultPath, "utf-8")); } + catch (e) { + return { id: "repro-pass", ok: false, summary: `repro-result.json 解析失败`, details: String(e) }; + } + const verdict = parsed.verdict ?? ""; + if (verdict === "pass") { + return { id: "repro-pass", ok: true, summary: `verdict=pass`, details: parsed.verdictReason ?? "" }; + } + return { + id: "repro-pass", ok: false, + summary: `verdict=${verdict}`, + details: parsed.verdictReason ?? `(无 verdictReason)`, + }; +} + +/** 标准 2:测试全过 + 工作树干净 + 与 baseBranch 无冲突 */ +export function checkTestsAndMergeClean(opts: { repoRoot: string; baseBranch: string; testCommand: string; testArgs: string[] }): CriterionResult { + const tests = spawnSync(opts.testCommand, opts.testArgs, { cwd: opts.repoRoot, encoding: "utf-8" }); + if (tests.status !== 0) { + return { + id: "tests-and-merge-clean", ok: false, + summary: `tests failing (exit ${tests.status})`, + details: trimTo(tests.stdout + tests.stderr, 4000), + }; + } + const status = spawnSync("git", ["status", "--porcelain"], { cwd: opts.repoRoot, encoding: "utf-8" }); + const dirtyLines = status.stdout.trim().length > 0 ? status.stdout.trim().split(/\r?\n/) : []; + if (dirtyLines.length > 0) { + return { + id: "tests-and-merge-clean", ok: false, + summary: `tests pass; working tree dirty (${dirtyLines.length} entries)`, + details: dirtyLines.slice(0, 50).join("\n"), + }; + } + // 检查与 baseBranch 是否会冲突:fetch + merge-tree(无副作用) + spawnSync("git", ["fetch", "origin", opts.baseBranch], { cwd: opts.repoRoot, encoding: "utf-8" }); + const mergeTree = spawnSync("git", ["merge-tree", `origin/${opts.baseBranch}`, "HEAD"], + { cwd: opts.repoRoot, encoding: "utf-8" }); + // git merge-tree 输出含 "<<<<<<<" 即有冲突 + if (mergeTree.stdout.includes("<<<<<<<")) { + const conflictFiles = [...mergeTree.stdout.matchAll(/^changed in both[\s\S]*?\n base\s+\S+ \S+ (\S+)$/gm)] + .map((m) => m[1]); + return { + id: "tests-and-merge-clean", ok: false, + summary: `merge conflict with origin/${opts.baseBranch}`, + details: conflictFiles.length ? conflictFiles.join("\n") : trimTo(mergeTree.stdout, 2000), + }; + } + return { id: "tests-and-merge-clean", ok: true, summary: `tests pass + tree clean + no conflict with ${opts.baseBranch}`, details: "" }; +} + +function trimTo(s: string, n: number): string { + return s.length > n ? s.slice(0, n) + `\n…(truncated ${s.length - n} chars)` : s; +} + +/** 跑两条标准,返回 [criterion1, criterion2] */ +export function runAllChecks(opts: { repoRoot: string; loop: LoopOptions }): CriterionResult[] { + const c1 = checkReproPass(opts.loop.reproResultPath); + const c2 = checkTestsAndMergeClean({ + repoRoot: opts.repoRoot, baseBranch: opts.loop.baseBranch, + testCommand: opts.loop.testCommand, testArgs: opts.loop.testArgs, + }); + return [c1, c2]; +} +``` + +- [ ] **Step 2: 冒烟** + +```bash +# 假设当前 worktree 干净 + tests 全过 + 套件 1 已跑过 +npx tsx -e " +import { runAllChecks } from './scripts/review/run-checks.ts'; +const cs = runAllChecks({ + repoRoot: process.cwd(), + loop: { + maxRetries: 3, + reproResultPath: 'docs/acceptance/2026-05-15-hook-moment-block-repro/repro-result.json', + baseBranch: 'main', + testCommand: 'pnpm', testArgs: ['vitest', 'run', 'scripts/lock-core.test.ts'], + }, +}); +console.log(JSON.stringify(cs, null, 2)); +" +``` + +Expected: 两条 criterion 都打印 `ok: true` 或合理的失败说明(取决于当前仓库状态)。 + +- [ ] **Step 3: commit** + +```bash +git add scripts/review/run-checks.ts +git commit -m "feat(review): add run-checks — execute the 2 WORKFLOW criteria (repro + tests/merge)" +``` + +--- + +## Task 4: `review-cli.ts` —— 跑一次 review,出 verdict JSON + +**Files:** +- Create: `scripts/review/review-cli.ts` + +- [ ] **Step 1: 实现** + +```ts +// scripts/review/review-cli.ts +import { writeFileSync, mkdirSync } from "node:fs"; +import path from "node:path"; +import { runAllChecks } from "./run-checks.ts"; +import { aggregateVerdict } from "./review-core.ts"; +import type { LoopOptions } from "./review-types.ts"; + +interface CliOpts { reproResult: string; out: string; testCmd: string; baseBranch: string; } + +function parseArgv(argv: string[]): CliOpts { + const o: CliOpts = { reproResult: "", out: "", testCmd: "pnpm test", baseBranch: "main" }; + for (let i = 0; i < argv.length; i++) { + const a = argv[i]; + if (a === "--repro") o.reproResult = argv[++i]; + else if (a === "--out") o.out = argv[++i]; + else if (a === "--test-cmd") o.testCmd = argv[++i]; + else if (a === "--base") o.baseBranch = argv[++i]; + } + if (!o.reproResult) throw new Error("用法: tsx scripts/review/review-cli.ts --repro [--out ] [--test-cmd \"pnpm test\"] [--base main]"); + if (!o.out) o.out = path.dirname(o.reproResult); + return o; +} + +function main(): void { + const o = parseArgv(process.argv.slice(2)); + const [cmd, ...args] = o.testCmd.split(/\s+/); + const loop: LoopOptions = { + maxRetries: 3, + reproResultPath: o.reproResult, + baseBranch: o.baseBranch, + testCommand: cmd, testArgs: args, + }; + const criteria = runAllChecks({ repoRoot: process.cwd(), loop }); + const result = aggregateVerdict(criteria); + mkdirSync(o.out, { recursive: true }); + const outFile = path.join(o.out, "review-verdict.json"); + writeFileSync(outFile, JSON.stringify(result, null, 2), "utf-8"); + console.log(`[review] verdict=${result.verdict} → ${outFile}`); + if (result.fixDirective) { + console.log(`[review] fix prompt 在 review-verdict.json 的 fixDirective.prompt 字段;loop-driver 会取用。`); + } + process.exit(result.verdict === "pass" ? 0 : 1); +} + +main(); +``` + +- [ ] **Step 2: 端到端** + +```bash +# 用一个已跑过套件 1 的 repro-result 做 input +npx tsx scripts/review/review-cli.ts \ + --repro docs/acceptance/2026-05-15-hook-moment-block-repro/repro-result.json \ + --test-cmd "pnpm vitest run scripts/lock-core.test.ts" \ + --out /tmp/review-out +echo "exit code: $?" +cat /tmp/review-out/review-verdict.json | head -30 +``` + +Expected: 退出码 0(全过)或 1(有失败)+ 文件内容含 `verdict` / `criteria` / 可选 `fixDirective`。 + +- [ ] **Step 3: commit** + +```bash +git add scripts/review/review-cli.ts +git commit -m "feat(review): add review-cli — run criteria once, write review-verdict.json" +``` + +--- + +## Task 5: SKILL.md + loop-driver.ts —— 派打回 subagent + 循环 + +> **关于 subagent**:WORKFLOW.md 要求「另开一个独立 subagent 来 review」。本计划的策略是: +> - **review 步骤**:由 `review-cli.ts` 直接做 —— 它是确定性脚本,自然就是「另开的、独立的」(不在执行 CC 的对话上下文里)。 +> - **打回步骤**:由 `loop-driver.ts` 通过 Claude Code `Agent` 工具派一个 fresh subagent 去修。`loop-driver.ts` 自己跑在 Claude Code 里(用户/CC 触发),`Agent` 工具是 CC 内置的 spawn-fresh-subagent 机制。 +> - **fallback**:若执行环境不在 Claude Code 内(比如纯 CI),`loop-driver.ts` 跑到第一次 fail 时打印 fix prompt 并 exit 非 0,把决策交给人 —— 因为没有 Agent tool 可调,自动循环不可能。 + +**Files:** +- Create: `.claude/skills/local-review/SKILL.md` +- Create: `.claude/skills/local-review/fix-directive-prompt.md` +- Create: `scripts/review/loop-driver.ts` + +- [ ] **Step 1: 写 SKILL.md(给 review subagent 的角色卡)** + +```markdown + +--- +name: local-review +description: 本地 review 自动循环 —— 跑 WORKFLOW.md 的 2 条标准,不通过自动派打回 subagent 修,循环至通过或达上限 +--- + +# local-review skill + +## 何时调用 + +执行 CC 完成一个 feature 后,调本 skill 触发本地 review 循环。也支持人手动 `/local-review`。 + +## 怎么跑 + +```bash +# 直接调用 driver(skill 实际就是包了一层文档) +npx tsx scripts/review/loop-driver.ts \ + --repro docs/acceptance/-/repro-result.json \ + --max-retries 3 +``` + +## 2 条标准(WORKFLOW.md 第 4 步钉死) + +1. **before/after 对比成立** —— 套件 1 跑出 `verdict: "pass"`(不是 `fail` 也不是 `ambiguous`) +2. **全量测试全过 + 合并无冲突** —— `pnpm test` 退出 0,工作树无未提交改动,与 `origin/main` 无冲突 + +## 行为 + +- 跑 review-cli → verdict=pass → 落 review-verdict.json,exit 0,完事 +- 跑 review-cli → verdict=fail → 派一个 fresh subagent(用 Agent tool),把 `fixDirective.prompt` 喂给它;subagent 修完落 `/tmp/fix-marker` 标记;driver 检测到标记重跑 review-cli;循环 +- 重试次数达 `--max-retries`(默认 3) → 停止,exit 非 0,把累计 fix 历史写到 review-verdict.json 的 `attempts[]` 字段 + +## 当前默认是 `--fix-mode manual`(重要) + +「verdict=fail 自动派 subagent 去修」依赖一个**还没实现**的宿主 hook(driver 写 `/tmp/fix-pending`,hook 监听到后用 Agent tool 派 subagent)。在 hook 落地之前,driver 默认走 `--fix-mode manual` —— 第一次 fail 就把 fix prompt 打印出来 + 退出非 0,由人手动派 CC 去修。 + +`--fix-mode agent` 会正常运行,但若 hook 缺席,会卡在等 fix-marker 直到超时(默认 30 分钟)。要追这个跨子系统 follow-up,见 `docs/plans/2026-05-15-INDEX.md` 末段「跨子系统 follow-up」。 + +## 派打回 subagent 的 prompt 模板 + +见 `fix-directive-prompt.md`。 +``` + +- [ ] **Step 2: 写 fix-directive-prompt.md** + +```markdown + +你是一个执行 subagent,被本地 review 循环派回来「修一个 review 失败」。 + +## 任务 + +{{fixDirective.prompt}} + +## 约束(硬性) + +- **只动与本失败类别直接相关的代码**。不要顺手 refactor、不要 reorganize 文件、不要改无关测试。 +- 修完用 `Bash` 跑 `echo done > /tmp/fix-marker` 落标记文件,然后 stop。 + loop-driver 看到标记会自动重跑 review;**你不要自己跑 review**。 +- 如果你判断这次失败**不应在本 PR 修**(超出范围、应另开 issue),写个 `echo "skip: <理由>" > /tmp/fix-marker` 然后 stop。 + driver 看到 `skip:` 会停循环、把理由报给上游。 + +## 边界 + +- 不开新 PR、不切分支、不 commit、不 push。改完留在工作树里,driver 会处理 commit 时机。 +``` + +- [ ] **Step 3: 写 loop-driver.ts** + +```ts +// scripts/review/loop-driver.ts +import { spawnSync } from "node:child_process"; +import { writeFileSync, readFileSync, existsSync, unlinkSync, mkdirSync } from "node:fs"; +import path from "node:path"; +import { runAllChecks } from "./run-checks.ts"; +import { aggregateVerdict } from "./review-core.ts"; +import type { LoopOptions, ReviewResult } from "./review-types.ts"; + +interface DriverOpts extends LoopOptions { + outDir: string; + /** "agent" = 用 Claude Code Agent tool 派 subagent;"manual" = 打印 prompt 后 exit,人接手 */ + fixMode: "agent" | "manual"; +} + +const FIX_MARKER = process.platform === "win32" + ? path.join(process.env.TEMP ?? "C:/Windows/Temp", "fix-marker") + : "/tmp/fix-marker"; + +function parseArgv(argv: string[]): DriverOpts { + const o: DriverOpts = { + maxRetries: 3, + reproResultPath: "", + baseBranch: "main", + testCommand: "pnpm", + testArgs: ["test"], + outDir: "", + fixMode: process.env.CLAUDE_CODE_AGENT === "1" ? "agent" : "manual", + }; + for (let i = 0; i < argv.length; i++) { + const a = argv[i]; + if (a === "--repro") o.reproResultPath = argv[++i]; + else if (a === "--out") o.outDir = argv[++i]; + else if (a === "--max-retries") o.maxRetries = Number(argv[++i]); + else if (a === "--base") o.baseBranch = argv[++i]; + else if (a === "--test-cmd") { + const parts = argv[++i].split(/\s+/); + o.testCommand = parts[0]; o.testArgs = parts.slice(1); + } else if (a === "--fix-mode") o.fixMode = argv[++i] as "agent" | "manual"; + } + if (!o.reproResultPath) throw new Error("用法: tsx scripts/review/loop-driver.ts --repro [--out ] [--max-retries 3] [--fix-mode agent|manual]"); + if (!o.outDir) o.outDir = path.dirname(o.reproResultPath); + return o; +} + +interface Attempt { + attempt: number; + verdict: "pass" | "fail"; + failureKind?: string; + fixOutcome?: "fixed" | "skipped" | "no-marker" | "manual-mode"; + fixSkipReason?: string; +} + +async function runOneRound(opts: DriverOpts): Promise { + const criteria = runAllChecks({ repoRoot: process.cwd(), loop: opts }); + return aggregateVerdict(criteria); +} + +async function dispatchFixSubagent(prompt: string): Promise<"fixed" | "skipped" | "no-marker"> { + // Claude Code Agent tool 由宿主 CC 提供,不是 Node API。loop-driver 只能通过约定的 IPC 触发: + // 把 prompt 写到 /tmp/fix-prompt,touch /tmp/fix-pending;宿主 CC 的 hook 监听到 fix-pending 后用 + // Agent tool 派一个 subagent,subagent 收到 fix-prompt、修完落 fix-marker。 + // 如果你跑这个 driver 时没启 hook,见 README;此处只做约定接口。 + const tmp = process.platform === "win32" ? (process.env.TEMP ?? "C:/Windows/Temp") : "/tmp"; + const promptFile = path.join(tmp, "fix-prompt"); + const pendingFile = path.join(tmp, "fix-pending"); + writeFileSync(promptFile, prompt, "utf-8"); + writeFileSync(pendingFile, new Date().toISOString(), "utf-8"); + console.log(`[driver] 写入 ${promptFile} + ${pendingFile};等待 hook 派 subagent 修...`); + + // 简单轮询 fix-marker(最多 30 分钟):subagent 修完会 echo done > fix-marker + const start = Date.now(); + const TIMEOUT = 30 * 60 * 1000; + while (Date.now() - start < TIMEOUT) { + if (existsSync(FIX_MARKER)) { + const content = readFileSync(FIX_MARKER, "utf-8").trim(); + unlinkSync(FIX_MARKER); + if (existsSync(pendingFile)) unlinkSync(pendingFile); + if (content.startsWith("skip:")) return "skipped"; + return "fixed"; + } + await new Promise((r) => setTimeout(r, 5000)); + } + return "no-marker"; +} + +async function main(): Promise { + const opts = parseArgv(process.argv.slice(2)); + mkdirSync(opts.outDir, { recursive: true }); + const attempts: Attempt[] = []; + let final: ReviewResult | null = null; + + for (let i = 1; i <= opts.maxRetries + 1; i++) { + console.log(`\n=== Round ${i}/${opts.maxRetries + 1} ===`); + const r = await runOneRound(opts); + final = r; + if (r.verdict === "pass") { + attempts.push({ attempt: i, verdict: "pass" }); + console.log(`[driver] verdict=pass —— 退出循环`); + break; + } + const fd = r.fixDirective!; + console.log(`[driver] verdict=fail (${fd.failureKind})`); + if (i > opts.maxRetries) { + attempts.push({ attempt: i, verdict: "fail", failureKind: fd.failureKind, fixOutcome: undefined }); + console.log(`[driver] 已达 maxRetries=${opts.maxRetries},停止循环`); + break; + } + if (opts.fixMode === "manual") { + attempts.push({ attempt: i, verdict: "fail", failureKind: fd.failureKind, fixOutcome: "manual-mode" }); + console.log(`[driver] fix-mode=manual,打印 prompt 后退出 —— 由人接手`); + console.log(`---- FIX PROMPT ----\n${fd.prompt}\n--------------------`); + break; + } + const outcome = await dispatchFixSubagent(fd.prompt); + attempts.push({ attempt: i, verdict: "fail", failureKind: fd.failureKind, fixOutcome: outcome }); + if (outcome === "skipped") { + const skipMatch = fd.prompt.match(/skip:\s*(.+)/); + console.log(`[driver] subagent skip;停止循环。理由: ${skipMatch?.[1] ?? "(无)"}`); + break; + } + if (outcome === "no-marker") { + console.log(`[driver] 等待 fix-marker 超时 —— 停止循环`); + break; + } + console.log(`[driver] 已修,准备下一轮 review...`); + } + + const outFile = path.join(opts.outDir, "review-verdict.json"); + writeFileSync(outFile, JSON.stringify({ ...final, attempts }, null, 2), "utf-8"); + console.log(`\n[driver] 最终: verdict=${final!.verdict} → ${outFile}`); + process.exit(final!.verdict === "pass" ? 0 : 1); +} + +main().catch((e) => { console.error(e); process.exit(2); }); +``` + +- [ ] **Step 4: 冒烟(manual mode)** + +```bash +# 制造一个失败:删 repro-result 触发 missing-repro-result +mkdir -p /tmp/loop-smoke && echo '{"verdict":"fail","verdictReason":"smoke"}' > /tmp/loop-smoke/repro-result.json +npx tsx scripts/review/loop-driver.ts --repro /tmp/loop-smoke/repro-result.json \ + --test-cmd "pnpm vitest run scripts/lock-core.test.ts" \ + --out /tmp/loop-smoke --max-retries 0 --fix-mode manual +echo "exit code: $?" +cat /tmp/loop-smoke/review-verdict.json | head -30 +``` + +Expected: 退出码 1;`review-verdict.json` 含 `attempts: [{attempt:1,verdict:"fail",failureKind:"repro-fail",fixOutcome:"manual-mode"}]`,且 stdout 打印了完整 fix prompt。 + +- [ ] **Step 5: commit** + +```bash +git add .claude/skills/local-review/ scripts/review/loop-driver.ts +git commit -m "feat(review): add loop-driver + local-review skill — review/fix-loop until pass" +``` + +--- + +## Self-Review + +**1. Spec coverage:** WORKFLOW.md 第 4 步 4 个要素:① 独立 subagent → review-cli 是确定性独立脚本 + loop-driver 用 Agent tool 派打回(Task 5 IPC 约定);② 2 条标准 → run-checks 各实现一条(Task 3);③ 不通过打回重做 → loop-driver dispatchFixSubagent + fix-marker(Task 5);④ 循环至通过 → maxRetries 上限 + 优先级排序防同类反复打回(Task 2 FAILURE_PRIORITY)。**已知缺口**:Agent tool 的实际 spawn 在本计划是约定接口(写 fix-prompt + fix-pending,期待宿主 CC hook 处理) —— 完整 hook 实现属于「执行框架自动化」,见 INDEX.md 的「跨子系统 follow-up」段。 + +**2. Placeholder scan:** 无 TBD/TODO/「实现错误处理」类空话。`dispatchFixSubagent` 显式说明 IPC 约定,不是占位。`fix-mode=manual` 是显式 fallback,不是 placeholder。 + +**3. Type consistency:** `CriterionResult` Task 1 定义,Task 2/3/4/5 一致使用 `id/ok/summary/details`。`FixDirective.failureKind` Task 1 列出 6 种,Task 2 `classifyFailure` 与 `formatFixPrompt` 都覆盖全 6 种(无遗漏)。`LoopOptions` Task 1 定义,Task 3 `runAllChecks` 与 Task 5 `loop-driver` 都按同名字段构造。 + +## Execution Handoff + +Plan complete. 推荐执行路径: + +1. **前置**:套件 1(`2026-05-15-suite-1-repro-framework.md`)需先实现 —— review 标准 1 直接读它的产出。 +2. **执行**:Task 1–5 串行。 +3. **验收**:在套件 1 跑出 `verdict: pass` 的 ReproSpec 上跑 `loop-driver.ts`,看到 verdict=pass + 0 退出码;故意改坏一处再跑,看到 fix-prompt 自动生成。 diff --git a/docs/plans/2026-05-15-remote-review-bot.md b/docs/plans/2026-05-15-remote-review-bot.md new file mode 100644 index 0000000..7f4e357 --- /dev/null +++ b/docs/plans/2026-05-15-remote-review-bot.md @@ -0,0 +1,496 @@ +# 远程评审 Bot Implementation Plan + +> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. + +**Goal:** 把 `docs/WORKFLOW.md` 第 5 步「PR 由**远程 CC 自动评审**(同 2 条标准)」落地成一条 GitHub Actions workflow:每次 PR 打开/推新 commit,自动跑 `2026-05-15-local-review-loop.md` 的 review-cli + 把 verdict 贴成 PR 评论 + 设 commit status 卡合并。 + +**Architecture:** Workflow 跑在 ubuntu-latest;复用 `scripts/review/review-cli.ts`(本地版)同一段代码 —— 因为 review-cli 本身就是确定性脚本,「本地」与「远程」的差异只在执行环境与结果发布。每个 ReproSpec 起一个 matrix job 跑 repro-cli `--no-gif`(GIF 录制是 Win32 only,CI 上不能跑);所有 spec 全过 + `pnpm test` 全过 + 无冲突 → review verdict=pass → 评论 ✅ + status `success`;否则 verdict=fail → 评论 ❌ + status `failure`,branch protection 自动卡合并。 + +**Tech Stack:** GitHub Actions (`ubuntu-latest` + `actions/checkout@v5` + `pnpm/action-setup@v5` + `actions/setup-node@v5`) + `gh` CLI + `GITHUB_TOKEN`(`pull-requests: write` + `statuses: write`)。 + +--- + +## 安全/正确性前提(写之前必读) + +- **本计划只支持仓库内 PR**(`pull_request` 触发器)。**不支持外部 fork 的 PR** —— 用 `pull_request` 而非 `pull_request_target`,避免外部 PR 拿到 secrets / write token。外部贡献的 PR 由 maintainer 手动 cherry-pick 到内部分支后再走本流程。 +- POSTPR.md 已记录:旧的 `claude-code-review.yml` 在 PR #274 被删 —— 因为 `anthropics/claude-code-action@v1` 一直 fail on tsconfig.json fd 4。**本计划不依赖 anthropics 官方 action**,只用 review-cli 这种纯逻辑脚本,可控性更高。 +- workflow 启用前必须在仓库 Settings → Branches → main → Branch protection 里勾上「Require status checks: review/verdict」,否则 verdict=fail 不会真卡合并。 + +### 「无 ReproSpec」与「docs-only PR」的处理(bootstrap 与日常) + +WORKFLOW.md 的 review 标准 1 是「套件 1 verdict=pass」,但有两类 PR 不该被这条卡: + +1. **Bootstrap PR**:本计划与套件 1 都还没合并,`fixtures/repro-specs/` 还是空 —— 第一份 PR 自己也跑不出 verdict。 +2. **Docs-only / 工具脚本 / CI 配置 PR**:WORKFLOW.md 没写"每个 PR 必须有 ReproSpec",所以「不需要复现验证的 PR」是合法存在。 + +**策略(本 plan 显式定义)**:repro 标准在以下两种情况自动通过(workflow log 出 warning,但 verdict=pass): + +- (A) 仓库里 `fixtures/repro-specs/*.ts` 完全为空(具体实现见 Task 3 的 `list-specs` job 输出 `[]`,verdict job 把 `repro_ok=true` + summary 写明「no specs to run」) +- (B) PR 带 `skip-repro` label (适用于 docs-only / CI / 工具脚本 PR;贴 label 的人显式声明「这个 PR 不需要 repro 证明」) + +**反例**:有 ReproSpec 但 verdict=fail/ambiguous,**不能** skip,必须卡合并。`skip-repro` 也无效(显式拒绝绕过)。 + +这条豁免不破坏 WORKFLOW.md 立场:WORKFLOW.md 是「需要 repro 证明的 feature 必须有 ReproSpec 且 pass」;本豁免是「显式说不需要 repro 的 PR」的处理 —— 责任在贴 label 的人(可在 PR review 时被人工挑战)。 + +## File Structure + +``` +.github/workflows/ + pr-review.yml ← 主 workflow +.github/actions/setup-repo/ + action.yml ← 复用的 composite action(checkout+node+pnpm+install) +scripts/review/ + post-pr-comment.ts ← 把 review-verdict.json 渲染成 PR 评论 + 设 commit status + post-pr-comment.test.ts ← node:test 单测,只测渲染纯逻辑 +``` + +--- + +## Task 1: 复用的 composite action + +**Files:** +- Create: `.github/actions/setup-repo/action.yml` + +> 抽出来是因为后面的 plan(auto-merge / 6h release)会复用同一段 setup,DRY。 + +- [ ] **Step 1: 写 action.yml** + +```yaml +# .github/actions/setup-repo/action.yml +name: Setup repo (checkout + pnpm + install) +description: 标准化的 repo 准备 —— checkout PR head sha + 装 pnpm/node + frozen install +inputs: + ref: + description: 要 checkout 的 ref(默认 = github.event.pull_request.head.sha) + required: false + default: ${{ github.event.pull_request.head.sha }} + node-version: + description: Node 版本 + required: false + default: '22' +runs: + using: composite + steps: + - uses: actions/checkout@v5 + with: + ref: ${{ inputs.ref }} + fetch-depth: 0 # review 标准 2 需要 git merge-base / merge-tree,要全历史 + - uses: pnpm/action-setup@v5 + - uses: actions/setup-node@v5 + with: + node-version: ${{ inputs.node-version }} + cache: pnpm + - run: pnpm install --frozen-lockfile + shell: bash +``` + +- [ ] **Step 2: commit** + +```bash +git add .github/actions/setup-repo/action.yml +git commit -m "feat(ci): add setup-repo composite action — DRY checkout+pnpm+install" +``` + +--- + +## Task 2: `post-pr-comment.ts` —— 把 review-verdict.json 渲染成评论 + +**Files:** +- Create: `scripts/review/post-pr-comment.ts` +- Test: `scripts/review/post-pr-comment.test.ts` + +- [ ] **Step 1: 写失败测试(纯渲染部分)** + +```ts +// scripts/review/post-pr-comment.test.ts +import { test } from "node:test"; +import assert from "node:assert/strict"; +import { renderComment, COMMENT_MARKER } from "./post-pr-comment.ts"; +import type { ReviewResult } from "./review-types.ts"; + +const passResult: ReviewResult = { + generatedAt: "2026-05-15T10:00:00.000Z", verdict: "pass", + criteria: [ + { id: "repro-pass", ok: true, summary: "verdict=pass", details: "" }, + { id: "tests-and-merge-clean", ok: true, summary: "tests pass + tree clean", details: "" }, + ], +}; +const failResult: ReviewResult = { + generatedAt: "2026-05-15T10:00:00.000Z", verdict: "fail", + criteria: [ + { id: "repro-pass", ok: false, summary: "verdict=fail", details: "before 期望未达: stdout 缺关键字 deny" }, + { id: "tests-and-merge-clean", ok: true, summary: "tests pass + tree clean", details: "" }, + ], + fixDirective: { failureKind: "repro-fail", prompt: "..." }, +}; + +test("renderComment: pass 评论开头有 ✅", () => { + const c = renderComment(passResult, { commitSha: "abc1234", workflowRunUrl: "https://x" }); + assert.match(c, /✅/); + assert.match(c, /verdict.*pass/i); + assert.ok(c.startsWith(COMMENT_MARKER)); // 必须以 marker 开头,便于覆盖更新 +}); + +test("renderComment: fail 评论含 ❌ + 失败原因 + 链接", () => { + const c = renderComment(failResult, { commitSha: "abc1234", workflowRunUrl: "https://x" }); + assert.match(c, /❌/); + assert.match(c, /repro-fail|verdict=fail/); + assert.match(c, /缺关键字 deny/); + assert.match(c, /https:\/\/x/); +}); + +test("COMMENT_MARKER 是 hidden HTML comment,grep 唯一", () => { + assert.match(COMMENT_MARKER, /^"; + +export function renderComment(r: ReviewResult, ctx: { commitSha: string; workflowRunUrl: string }): string { + const emoji = r.verdict === "pass" ? "✅" : "❌"; + const head = `${COMMENT_MARKER}\n## ${emoji} 远程评审 verdict: **${r.verdict}**`; + const meta = `\n\n_commit \`${ctx.commitSha.slice(0, 7)}\` · [workflow run](${ctx.workflowRunUrl}) · ${r.generatedAt}_`; + const criteriaTable = [ + "", + "| 标准 | 结果 | 简述 |", + "|---|---|---|", + ...r.criteria.map((c) => `| \`${c.id}\` | ${c.ok ? "✅" : "❌"} | ${escapeMd(c.summary)} |`), + ].join("\n"); + const details = r.criteria.filter((c) => !c.ok && c.details).map((c) => [ + "", `### ❌ ${c.id} 详情`, "```", c.details.slice(0, 4000), "```", + ].join("\n")).join("\n"); + const guide = r.verdict === "fail" + ? `\n\n---\n_要修这个失败,请在本地按 \`docs/plans/2026-05-15-local-review-loop.md\` 跑 \`loop-driver.ts\`,push 修复 commit 即可触发本评论刷新。_` + : ""; + return head + meta + criteriaTable + details + guide; +} + +function escapeMd(s: string): string { + return s.replace(/\|/g, "\\|").replace(/\r?\n/g, " "); +} + +interface CliOpts { verdictFile: string; pr: number; sha: string; runUrl: string; } +function parseArgv(argv: string[]): CliOpts { + const o: CliOpts = { verdictFile: "", pr: 0, sha: "", runUrl: "" }; + for (let i = 0; i < argv.length; i++) { + const a = argv[i]; + if (a === "--verdict") o.verdictFile = argv[++i]; + else if (a === "--pr") o.pr = Number(argv[++i]); + else if (a === "--sha") o.sha = argv[++i]; + else if (a === "--run-url") o.runUrl = argv[++i]; + } + if (!o.verdictFile || !o.pr || !o.sha || !o.runUrl) throw new Error("用法: --verdict --pr --sha --run-url "); + return o; +} + +function postOrUpdateComment(pr: number, body: string): void { + // 找现有的 marker 评论 + const list = spawnSync("gh", ["pr", "view", String(pr), "--json", "comments"], { encoding: "utf-8" }); + if (list.status !== 0) throw new Error(`gh pr view 失败: ${list.stderr}`); + const comments: Array<{ id?: string; body?: string }> = JSON.parse(list.stdout).comments ?? []; + const existing = comments.find((c) => (c.body ?? "").startsWith(COMMENT_MARKER)); + if (existing && existing.id) { + // gh 不直接支持 update comment,用 API + const r = spawnSync("gh", ["api", `--method`, `PATCH`, + `repos/${process.env.GITHUB_REPOSITORY}/issues/comments/${existing.id}`, + "-f", `body=${body}`, + ], { encoding: "utf-8" }); + if (r.status !== 0) throw new Error(`update comment 失败: ${r.stderr}`); + } else { + const r = spawnSync("gh", ["pr", "comment", String(pr), "--body", body], { encoding: "utf-8" }); + if (r.status !== 0) throw new Error(`gh pr comment 失败: ${r.stderr}`); + } +} + +function setCommitStatus(sha: string, state: "success" | "failure", description: string, runUrl: string): void { + const r = spawnSync("gh", ["api", "--method", "POST", + `repos/${process.env.GITHUB_REPOSITORY}/statuses/${sha}`, + "-f", `state=${state}`, + "-f", `context=review/verdict`, + "-f", `description=${description}`, + "-f", `target_url=${runUrl}`, + ], { encoding: "utf-8" }); + if (r.status !== 0) throw new Error(`set commit status 失败: ${r.stderr}`); +} + +function main(): void { + const o = parseArgv(process.argv.slice(2)); + const verdict: ReviewResult = JSON.parse(readFileSync(o.verdictFile, "utf-8")); + const body = renderComment(verdict, { commitSha: o.sha, workflowRunUrl: o.runUrl }); + postOrUpdateComment(o.pr, body); + setCommitStatus(o.sha, verdict.verdict === "pass" ? "success" : "failure", + `${verdict.verdict === "pass" ? "全部通过" : "verdict=fail"} (${verdict.criteria.filter((c) => !c.ok).length} 项 fail)`, + o.runUrl); + console.log(`[post-pr-comment] verdict=${verdict.verdict},评论 + status 已更新`); +} + +if (process.argv[1] && process.argv[1].endsWith("post-pr-comment.ts")) main(); +``` + +- [ ] **Step 4: 跑测试通过** + +Run: `npx tsx --test scripts/review/post-pr-comment.test.ts` +Expected: PASS (3/3) + +- [ ] **Step 5: commit** + +```bash +git add scripts/review/post-pr-comment.ts scripts/review/post-pr-comment.test.ts +git commit -m "feat(review): add post-pr-comment — render verdict + post/update PR comment + set status" +``` + +--- + +## Task 3: `pr-review.yml` —— 主 workflow + +**Files:** +- Create: `.github/workflows/pr-review.yml` + +- [ ] **Step 1: 写 workflow** + +```yaml +# .github/workflows/pr-review.yml +name: PR Review (远程 CC 自动评审) + +on: + pull_request: + branches: [main] + types: [opened, synchronize, reopened] + +# 只跑仓库内 PR;外部 fork 自动 skip(下方 if 守门) +permissions: + contents: read + pull-requests: write + statuses: write + +# 同 PR 多 commit 只跑最新一次,省 CI 分钟 +concurrency: + group: pr-review-${{ github.event.pull_request.number }} + cancel-in-progress: true + +jobs: + list-specs: + if: github.event.pull_request.head.repo.full_name == github.repository + runs-on: ubuntu-latest + outputs: + specs: ${{ steps.list.outputs.specs }} + skipReproReason: ${{ steps.list.outputs.skipReason }} + steps: + - uses: actions/checkout@v5 + with: { ref: ${{ github.event.pull_request.head.sha }} } + - id: list + shell: bash + env: + PR_LABELS: ${{ toJson(github.event.pull_request.labels.*.name) }} + run: | + # 显式豁免 (A): PR 带 skip-repro label + if echo "$PR_LABELS" | jq -e '. | index("skip-repro")' >/dev/null; then + echo "specs=[]" >> "$GITHUB_OUTPUT" + echo "skipReason=skip-repro label" >> "$GITHUB_OUTPUT" + echo "::notice::PR 带 skip-repro label —— 跳过 repro 检查" + exit 0 + fi + # 列 fixtures/repro-specs/*.ts(排除 README/index/共享文件) + if [[ ! -d fixtures/repro-specs ]]; then + echo "specs=[]" >> "$GITHUB_OUTPUT" + echo "skipReason=no-repro-specs-dir" >> "$GITHUB_OUTPUT" + echo "::warning::fixtures/repro-specs 目录不存在 —— bootstrap 期豁免,跳过 repro 检查" + exit 0 + fi + mapfile -t files < <(find fixtures/repro-specs -maxdepth 1 -name '*.ts' ! -name 'index.ts' | sort) + if [[ ${#files[@]} -eq 0 ]]; then + echo "specs=[]" >> "$GITHUB_OUTPUT" + echo "skipReason=empty-repro-specs-dir" >> "$GITHUB_OUTPUT" + echo "::warning::fixtures/repro-specs 为空 —— bootstrap 期豁免,跳过 repro 检查" + exit 0 + fi + json=$(printf '%s\n' "${files[@]}" | jq -R . | jq -sc .) + echo "specs=$json" >> "$GITHUB_OUTPUT" + echo "skipReason=" >> "$GITHUB_OUTPUT" + echo "找到 spec: ${files[*]}" + + repro: + needs: list-specs + if: needs.list-specs.outputs.specs != '[]' + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + spec: ${{ fromJson(needs.list-specs.outputs.specs) }} + steps: + - uses: ./.github/actions/setup-repo + - name: Build teamagent (有的 spec 跑 dist/bin.js) + run: pnpm --filter teamagent build + - name: Run repro + run: | + slug=$(basename "${{ matrix.spec }}" .ts) + mkdir -p "/tmp/repro-out/$slug" + npx tsx scripts/verify/repro-cli.ts "${{ matrix.spec }}" --no-gif \ + --out "/tmp/repro-out/$slug" + # ↑ 退出码 0/1 反映 verdict;不要 ||true,要让失败浮出来 + - uses: actions/upload-artifact@v4 + with: + name: repro-${{ strategy.job-index }} + path: /tmp/repro-out/ + + tests: + runs-on: ubuntu-latest + if: github.event.pull_request.head.repo.full_name == github.repository + steps: + - uses: ./.github/actions/setup-repo + - name: pnpm test + run: pnpm test + - name: Working tree must be clean + shell: bash + run: | + if [[ -n "$(git status --porcelain)" ]]; then + echo "::error::tests 跑完后工作树不干净:" + git status --porcelain + exit 1 + fi + + verdict: + needs: [list-specs, repro, tests] + if: always() && github.event.pull_request.head.repo.full_name == github.repository + runs-on: ubuntu-latest + steps: + - uses: ./.github/actions/setup-repo + - name: Download all repro artifacts + uses: actions/download-artifact@v4 + with: + path: /tmp/repro-out-all + pattern: repro-* + merge-multiple: true + - name: Aggregate verdict + shell: bash + env: + REPRO_OUTCOME: ${{ needs.repro.result }} # success / failure / skipped / cancelled + TESTS_OUTCOME: ${{ needs.tests.result }} + SKIP_REPRO_REASON: ${{ needs.list-specs.outputs.skipReproReason }} + run: | + mkdir -p /tmp/agg + # repro_ok 计算(三态豁免见安全前提): + # - REPRO_OUTCOME = success → ok + # - REPRO_OUTCOME = skipped 且 SKIP_REPRO_REASON 非空 → ok(显式豁免:bootstrap / docs-only) + # - 其它 → 不 ok + if [[ "$REPRO_OUTCOME" == "success" ]]; then + repro_ok=true + repro_summary="verdict=pass (all specs)" + elif [[ "$REPRO_OUTCOME" == "skipped" && -n "$SKIP_REPRO_REASON" ]]; then + repro_ok=true + repro_summary="豁免 — $SKIP_REPRO_REASON" + else + repro_ok=false + repro_summary="verdict=fail/missing (REPRO_OUTCOME=$REPRO_OUTCOME)" + fi + if [[ "$TESTS_OUTCOME" == "success" ]]; then + tests_ok=true + tests_summary="tests pass + tree clean" + else + tests_ok=false + tests_summary="tests failed or tree dirty (TESTS_OUTCOME=$TESTS_OUTCOME)" + fi + verdict=$([[ "$repro_ok" == "true" && "$tests_ok" == "true" ]] && echo "pass" || echo "fail") + jq -n \ + --arg generatedAt "$(date -u +%FT%TZ)" \ + --arg verdict "$verdict" \ + --argjson repro_ok "$repro_ok" \ + --argjson tests_ok "$tests_ok" \ + --arg repro_summary "$repro_summary" \ + --arg tests_summary "$tests_summary" \ + '{ + generatedAt: $generatedAt, verdict: $verdict, + criteria: [ + {id:"repro-pass", ok:$repro_ok, summary:$repro_summary, details:""}, + {id:"tests-and-merge-clean", ok:$tests_ok, summary:$tests_summary, details:""} + ] + }' > /tmp/agg/review-verdict.json + cat /tmp/agg/review-verdict.json + - name: Post comment + set status + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GITHUB_REPOSITORY: ${{ github.repository }} + run: | + npx tsx scripts/review/post-pr-comment.ts \ + --verdict /tmp/agg/review-verdict.json \ + --pr ${{ github.event.pull_request.number }} \ + --sha ${{ github.event.pull_request.head.sha }} \ + --run-url "${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}" +``` + +> **设计权衡**: +> - `verdict` job 用 `if: always()` —— 不管 `repro` / `tests` job 怎么挂,都跑一次去发评论。否则 PR 上不显示任何 verdict,体验差。 +> - 汇总用 shell + jq,不再调 review-cli —— 因为 review-cli 跑 `pnpm test`,会跟 `tests` job 重复 30 分钟。这里只把已知 outcome 拼成 `review-verdict.json` 走 post-pr-comment 的渲染。 +> - `repro` 用 matrix:每个 spec 独立 job → 一个 spec 挂不影响别的 spec,日志清晰。 + +- [ ] **Step 2: 触发 dry run** + +把 workflow 推到一个新分支 + 开个 toy PR 触发: + +```bash +git checkout -b feat/remote-review-bot +git add .github/workflows/pr-review.yml +git commit -m "feat(ci): add pr-review.yml — remote CC verdict workflow (dry run)" +git push origin feat/remote-review-bot +gh pr create --base main --head feat/remote-review-bot --title "feat(ci): pr-review.yml dry run" --body "Trigger pr-review workflow once." +# 观察: +gh run watch +# 在 PR 页面看到一条「✅/❌ 远程评审 verdict」评论 + 一个名为 `review/verdict` 的 commit status +``` + +Expected: +- workflow 跑完 ≤ 15 分钟(具体看 spec 数量) +- PR 出现一条 verdict 评论 +- PR 出现一个 `review/verdict` 的 commit status +- 若现有 spec 全过且测试全过 → status=success;否则 status=failure 并卡住合并 + +- [ ] **Step 3: 在仓库 Settings 开 branch protection** + +在 GitHub UI 里,Settings → Branches → main → Edit: +- Require a pull request before merging: ✅ +- Require status checks to pass before merging: ✅ + - 添加 `review/verdict` 到必须通过列表 + +(此步无 git 操作,不需要 commit。补一份 ADR 或在 INDEX 里说明即可。) + +- [ ] **Step 4: commit + 合并 dry run PR** + +```bash +git add .github/workflows/pr-review.yml +git commit --amend --no-edit +git push --force-with-lease origin feat/remote-review-bot +# 看 PR 跑通,然后: +gh pr merge --squash --delete-branch +``` + +--- + +## Self-Review + +**1. Spec coverage:** WORKFLOW.md 第 5 步 4 条:① 普通 PR(本计划用 `pull_request` 触发);② 远程独立复核 → 三个 needs job 全独立运行;③ 同 2 条标准 → `repro` job + `tests` job 各对应一条;④ verdict 反馈机制 → PR 评论 + commit status + branch protection。**已知缺口**:外部 fork PR 不支持(显式声明,见安全前提);若需要支持,要走 `pull_request_target` + 严格 secret 审计,属于另一个子系统。 + +**2. Placeholder scan:** 无 TBD/TODO。`tests` job 的 `pnpm test` 是真命令(对应主仓库已有的 ci.yml 范式)。`renderComment` 实现完整,`postOrUpdateComment`/`setCommitStatus` 用 `gh api` 真调用。 + +**3. Type consistency:** `ReviewResult` 来自 `review-types.ts`(local-review-loop plan Task 1 定义);本 plan 复用同一类型不重复定义。`COMMENT_MARKER` 在 Task 2 唯一定义、唯一使用;新评论与更新都通过它去重。 + +## Execution Handoff + +Plan complete. 推荐执行路径: + +1. **前置**:本地 review 循环 plan(`2026-05-15-local-review-loop.md`)Task 1(types)+ Task 2(review-core)需先完成 —— 本计划复用其类型与 verdict 渲染概念。 +2. **执行**:Task 1–3 串行(Task 3 依赖 Task 1 的 composite action)。 +3. **验收**:PR 上看到 ✅/❌ 评论 + `review/verdict` status check 出现;branch protection 真卡住失败的 PR。 diff --git a/docs/plans/2026-05-15-six-hour-release.md b/docs/plans/2026-05-15-six-hour-release.md new file mode 100644 index 0000000..eecc1ce --- /dev/null +++ b/docs/plans/2026-05-15-six-hour-release.md @@ -0,0 +1,204 @@ +# 6 小时定时 Release Implementation Plan + +> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. + +**Goal:** 把 `docs/WORKFLOW.md` 第 8 步「主分支代码,**每 6 小时自动打一个 release 版本**」落地。现状是 `release-branch.yml` 仅 `push: branches: [main]` 触发(`auto-merge` 推完才发);新增 `schedule: cron '0 */6 * * *'`,并加「该 SHA 已发过则 skip」的早退守门,避免无变更时重复 republish。 + +**Architecture:** 最小改动 —— 不重写 `release-branch.yml`,只在它头上加 `schedule` 触发 + 一个 early-exit step。Early-exit 把 `GITHUB_SHA` 与 `latest.json.sha` 对比(latest.json 是 release-branch.yml 自己产物,在 gh-pages),相等即 skip 整个 job。`workflow_dispatch` 也加上,作为人工触发出口。 + +**Tech Stack:** GitHub Actions(`schedule` cron + `workflow_dispatch`)+ `curl` 拉 latest.json。无新代码。 + +--- + +## File Structure + +``` +.github/workflows/ + release-branch.yml ← 修改:加 schedule 触发 + early-exit step +docs/adr/ + 0017-six-hour-release.md ← ADR 记录决策(替换 push 为「push + schedule + dispatch」三触发器) +``` + +--- + +## Task 1: ADR —— 记录决策 + +**Files:** +- Create: `docs/adr/0017-six-hour-release.md` + +> 写 ADR 是因为这变更直接影响所有 release consumer 的更新节奏(从「随 PR 合并立即发」变成「最多 6h 后发」)。半年后维护者会问「为什么是 6h?」,要有可追溯答案。 + +- [ ] **Step 1: 写 ADR** + +```markdown +# ADR-0017: Release cadence — push + 6h schedule + manual dispatch + +**Status:** Accepted (2026-05-15) +**Context:** WORKFLOW.md 第 8 步要求「每 6 小时自动打一个 release」。原 `release-branch.yml` 仅在 push 到 main 时触发。 + +## 决议 + +`release-branch.yml` 触发器改为三路: + +1. `push: branches: [main]` —— 保留(auto-merge 落 commit 后立即发,延迟 ~1 分钟) +2. `schedule: - cron: '0 */6 * * *'` —— 每 UTC 0/6/12/18 点跑一次(覆盖「长时间无 PR 但仍想刷新 release-meta」的场景) +3. `workflow_dispatch` —— 人手补发出口 + +加 early-exit 守门:把 `GITHUB_SHA` 与 gh-pages 上 `latest.json.sha` 比对,相等 → skip 整个 job(避免 schedule 跑到一半发现没变更还把 latest.json 重写一遍 / 撞 `gh release create` 已存在)。 + +## 为什么是 6h(而非 1h / 24h) + +- **1h**:对绝大多数变化无意义 —— 主分支大部分时间没有合并;cron 频率高 = CI 配额浪费、release page 噪音。 +- **24h**:对急 fix 太慢 —— "我刚 merge 了一个 hotfix,要等到明天才发?" 不合理。 +- **6h**:折中。auto-merge 路径正常工作时,push 触发已经覆盖了主路;schedule 兜底「workflow_run 罕见挂掉 / push 触发被吞 / 无 PR 但仍想刷 release-meta」三类边缘情况。一天 4 次发布,既够新鲜又不噪音。 + +## 早退守门为什么必要 + +- schedule 必然会跑到「main 自上次 release 之后无变更」的窗口。无守门则: + - `gh release create` 因 tag 已存在 idempotent skip(已有逻辑) + - 但后续仍 force-push release 分支 + 重写 latest.json + push gh-pages —— 这些是真改动,会让所有下游 consumer 把同一 SHA 重新拉一次。浪费。 +- 守门把 `GITHUB_SHA` vs `latest.json.sha` 一比即知,~1 秒成本。 + +## 备选方案与理由 + +- (备选) **删除 push 触发,只留 schedule** —— 实现最小,但 hotfix 延迟最坏 6h。否决。 +- (备选) **每个 6h 节拍都先 bump version** —— 强行制造变更。否决,会污染版本号语义。 +- (备选) **package.json bump 由 release workflow 自己做** —— 跨 workflow_run 改源文件,鸡生蛋。否决。 +``` + +- [ ] **Step 2: commit** + +```bash +git add docs/adr/0017-six-hour-release.md +git commit -m "docs(adr): add 0017 — six-hour release cadence + early-exit guard" +``` + +--- + +## Task 2: 改 `release-branch.yml` + +**Files:** +- Modify: `.github/workflows/release-branch.yml`(只加触发器与 early-exit,不动现有 publish 逻辑) + +- [ ] **Step 1: 加触发器** + +把文件顶部的 `on:` 段从: +```yaml +on: + push: + branches: [main] +``` +改成: +```yaml +on: + push: + branches: [main] + schedule: + # 每 6 小时一次:UTC 00:00 / 06:00 / 12:00 / 18:00 + # 见 docs/adr/0017-six-hour-release.md + - cron: '0 */6 * * *' + workflow_dispatch: + inputs: + reason: + description: 'Why are you manually triggering?' + required: false + default: 'manual' +``` + +- [ ] **Step 2: 在 `publish` job 第一个 step 加早退守门** + +在 `jobs.publish.steps` 的开头(`uses: actions/checkout@v5` 之前)插入: + +```yaml + - name: Early exit if HEAD already released + id: guard + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + shell: bash + run: | + # 比 GITHUB_SHA 与 gh-pages 上 latest.json.sha,相等 → skip + # 拉 latest.json(release 目标 URL,见 release-branch.yml 末段「Publish latest.json to gh-pages」) + PUBLISHED_URL="https://${{ github.repository_owner }}.github.io/$(echo '${{ github.repository }}' | cut -d/ -f2)/latest.json" + # 如果 latest.json 还没存在(首次 release),不 skip + if ! curl -fsSL "$PUBLISHED_URL" -o /tmp/latest.json 2>/dev/null; then + echo "latest.json 不存在(首次 release?) → 继续发布" + echo "skip=false" >> "$GITHUB_OUTPUT" + exit 0 + fi + PUBLISHED_SHA=$(jq -r '.sha // empty' /tmp/latest.json) + if [[ "$PUBLISHED_SHA" == "$GITHUB_SHA" ]]; then + echo "GITHUB_SHA=$GITHUB_SHA 已发布过(latest.json.sha 一致) → skip" + echo "skip=true" >> "$GITHUB_OUTPUT" + # 不 fail,只 skip 后续 step;workflow 总体仍 success + else + echo "GITHUB_SHA=$GITHUB_SHA vs published=$PUBLISHED_SHA → 继续发布" + echo "skip=false" >> "$GITHUB_OUTPUT" + fi +``` + +然后给后续**每个** step 加 `if: steps.guard.outputs.skip != 'true'` 守门。`release-branch.yml` 现在的 `publish` job 共 **12 个 step**(读你当前的 yml 自己数一遍核对),逐个改成下方右栏: + +| # | 原 step 起始行 | 改成 | +|---|---|---| +| 1 | `- uses: actions/checkout@v5` | `- if: steps.guard.outputs.skip != 'true'`
` uses: actions/checkout@v5` | +| 2 | `- uses: pnpm/action-setup@v5` | `- if: steps.guard.outputs.skip != 'true'`
` uses: pnpm/action-setup@v5` | +| 3 | `- uses: actions/setup-node@v5` | `- if: steps.guard.outputs.skip != 'true'`
` uses: actions/setup-node@v5` | +| 4 | `- run: pnpm install --frozen-lockfile` | `- if: steps.guard.outputs.skip != 'true'`
` run: pnpm install --frozen-lockfile` | +| 5 | `- run: pnpm --filter teamagent build` | `- if: steps.guard.outputs.skip != 'true'`
` run: pnpm --filter teamagent build` | +| 6 | `- name: Detect version` | 保留 `name`/`id`/`run`,在 `name:` 上方插一行 `if: steps.guard.outputs.skip != 'true'`(位置见下方完整片段) | +| 7 | `- name: Pack tarball` | 同 #6 | +| 8 | `- name: Stage release artifacts` | 同 #6 | +| 9 | `- name: Create GitHub Release (idempotent)` | 同 #6 | +| 10 | `- name: Force-push release branch` | 同 #6 | +| 11 | `- name: Resolve PR creator for merge commit (post-merge auto-update feature)` | 同 #6 | +| 12 | `- name: Publish latest.json to gh-pages (issue #313 Tier 1)` | 同 #6 | + +`name:` 形 step 的 `if:` 加法示例(以 #6 Detect version 为例,其它 #7–#12 同样模板,只换 `name`/`id`/`run` 内容): + +```yaml + - name: Detect version + if: steps.guard.outputs.skip != 'true' + id: version + run: | + # ... 原内容不动 ... +``` + +> **检查方式**:改完后跑 `grep -c "if: steps.guard.outputs.skip" .github/workflows/release-branch.yml` 应输出 **12**(对应 12 个 step 都加上)。少一个就是漏了。 + +- [ ] **Step 3: 端到端验证** + +> **冒烟方式**:开个 throwaway PR 把改后的 `release-branch.yml` 推到 main(走完整 PR + auto-merge 流程),然后: +> +> 1. push 触发的 `release-branch` 应正常发(因为 SHA 是新的) +> 2. **立刻** workflow_dispatch 手动再触发一次: +> ```bash +> gh workflow run release-branch.yml --ref main -f reason=guard-test +> gh run watch +> ``` +> 应看到 `Early exit if HEAD already released` step 输出 `skip=true`,后续 step 都 skip,workflow 总体 success。 +> 3. 等 6h(或临时把 cron 改成 `*/5 * * * *` 做加速测,测完改回)看到 schedule 触发同样 skip。 + +- [ ] **Step 4: commit** + +```bash +git add .github/workflows/release-branch.yml +git commit -m "feat(release): add 6h schedule + workflow_dispatch + early-exit guard (ADR-0017)" +``` + +--- + +## Self-Review + +**1. Spec coverage:** WORKFLOW.md 第 8 步「每 6 小时」→ `cron '0 */6 * * *'` 直接对应。守门 step 把「无变更时跳过 republish」的隐性需求显式化(WORKFLOW.md 没说,但所有「定时发布」型 workflow 的常识)。**已知缺口**:无。 + +**2. Placeholder scan:** ADR 里的备选方案段是文档要求,不是 plan placeholder。所有 yaml 改动都是真命令、真表达式。 + +**3. Type consistency:** 不涉及代码 type;触发器命名(`push`/`schedule`/`workflow_dispatch`)与现有 workflow 风格一致。 + +## Execution Handoff + +Plan complete。推荐执行路径: + +1. **前置**:无强制前置;但若 `auto-merge.yml` 已上线(`2026-05-15-auto-merge.md`),本 plan 的 PR 自己就能走完整流程被合掉,顺便实测端到端。 +2. **执行**:Task 1–2 串行,~30 分钟手动操作 + 一次 cron 等待。 +3. **验收**:`gh workflow run release-branch.yml -f reason=verify`,看到 guard step 在第二次跑时 skip = end-to-end ok。 diff --git a/docs/plans/2026-05-15-suite-1-brainstorm.md b/docs/plans/2026-05-15-suite-1-brainstorm.md new file mode 100644 index 0000000..6f16a4c --- /dev/null +++ b/docs/plans/2026-05-15-suite-1-brainstorm.md @@ -0,0 +1,202 @@ +# 套件 1(复现验证代码框架)Brainstorm 笔记 + +> **上下文**:`docs/plans/2026-05-14-verification-tooling.md` Phase 3 显式地把 4 个设计问题 +> 列为「需先 brainstorm 后再出独立 plan」。本笔记给出决议 + 理由,作为 +> `2026-05-15-suite-1-repro-framework.md` 的输入。看 plan 之前先看本笔记。 +> +> **决议层级**:本文是 brainstorm,不是 ADR;落地后若证伪可在 plan 里覆盖。但 +> 4 条决议直接决定模块边界与类型签名,**改决议=改 plan**。 + +--- + +## 一图速览 + +| # | 问题 | 决议 | +|---|---|---| +| Q1 | 与既有 `Scenario` 的关系 | 新类型 `ReproSpec` 当输入;matcher 类 feature 内嵌 `Scenario` 引用复用 | +| Q2 | before/after 怎么切代码态 | **两个 git worktree** 主路 + 环境变量叠加做次级状态切换 | +| Q3 | suite-1 怎么「自带录 GIF」 | 解耦:suite-1 出结构化 `ReproResult`;同 spec 的 `demoScene` 字段独立喂给 Phase 1 `recordGif()` | +| Q4 | judge 接到哪 | 两层:① suite-1 内置**确定性 matcher 判定**(无 LLM);② 独立 subagent review 走另一个子系统 | + +--- + +## Q1: 与 `Scenario` 的关系 + +### 现状 +`fixtures/scenarios/*.ts` 已有 6 个 `Scenario`,每个三段结构(`phaseA` 纠正 / `phaseB` 提炼规则 / `phaseC` 拦截)。这是 TeamAgent **核心 matcher 行为**的验证形态。 + +### 备选 +- (a) **套件 1 输入 = Scenario**:所有要验证的 feature 都套进 phaseA/B/C 三段。 +- (b) **套件 1 输入 = 新类型 `ReproSpec`**:与 Scenario 解耦。 + +### 决议:(b) + 内嵌 Scenario 字段 +`ReproSpec` 是新的、更宽的输入。当 feature 恰好是 matcher 类时,内嵌 Scenario 引用复用现成定义。 + +### 理由 +- 不是所有 feature 都 Scenario 形 ——「6 小时定时 release」跟 phaseA/B/C 毫无关系。强套会扭曲。 +- Scenario 仍然是 matcher 类 feature 最佳建模工具,不该重复发明 → 用嵌套复用。 +- hook-moment-block 这类已有 Scenario 的 feature,ReproSpec 写起来很轻: + ```ts + { id: "hook-moment-block", scenario: momentDayjsScenario, baseline: {...}, expect: {...} } + ``` + +### 形态 +```ts +interface ReproSpec { + id: string; // 比如 "hook-moment-block" + description: string; + baseline: BaselineRef; // 怎么切到 before 态 + current: CurrentRef; // 怎么切到 after 态(一般是当前 worktree) + steps: ReproStep[]; // 在每个态下要跑的命令 + expect: { before: ResultMatcher; after: ResultMatcher }; // 期望结果 + scenario?: Scenario; // optional:matcher 类 feature 引用现成 Scenario + demoScene?: DemoScene; // optional:给 GIF 录制用的可视化重演脚本 +} +``` + +--- + +## Q2: before/after 怎么切 + +### 现状 +样板(hook-moment-block)用 **环境变量** 切:`USERPROFILE` 指向不同 HOME 路径,从而切换知识库 DB 状态。这只对「数据驱动差异」的 feature 有效;对「代码层面差异」(绝大多数 feature)没用。 + +### 备选 +- (a) **`git stash` + 切换** —— 跑 before 时 stash 改动,跑 after 时 unstash。 +- (b) **两个 worktree** —— 预先建 baseline 和 current 两个 worktree,各跑各的。 +- (c) **环境变量切换** —— 只切运行时状态,代码不变。 + +### 决议:(b) 主路 + (c) 叠加 + +**主路:两个 git worktree**: +- `baseline` worktree 检出到 `BaselineRef.ref`(默认值 = `git merge-base HEAD main`,即当前 PR 起点之前的代码) +- `current` worktree = 跑 suite-1 的位置(即当前 worktree) +- suite-1 在两侧分别 `pnpm install`(若 lock 文件不同) + 跑 `steps`,捕获结构化结果 +- 跑完销毁 baseline worktree:`git worktree remove --force ` + +**叠加层:环境变量**。对于「同一份代码、不同运行时状态」的 feature(hook-moment-block 是典型),ReproSpec 在 baseline / current 各自 `env` 字段里塞环境变量做次级切换: +```ts +baseline: { ref: "HEAD~1", env: { USERPROFILE: "C:/tmp/empty-home" } } +current: { env: { USERPROFILE: "C:/tmp/loaded-home" } } +``` + +### 理由 +- (a) `git stash` 与 vitest 跑测试代码本身互锁 —— stash 跑测试代码会移动测试文件,极易串台/死锁。 ❌ +- (b) 两个 worktree:与项目已有 `.claude/worktrees/` 习惯一致;隔离干净;可并行(本期串行跑,留扩展余地)。 ✅ +- (c) 单独 env 不够通用,但作为补充能优雅描述「数据状态」差异。 ✅ + +### 实现要点 +- 走 `git worktree add /repro-baseline- ` —— 不污染主仓库;用完 `git worktree remove --force ` 清理。 +- baseline 路径放在 `os.tmpdir()` 下,每次运行用 6 位随机后缀避免撞车。 +- 执行 `pnpm install` 之前先尝试 junction `node_modules`(Windows: `fs.symlinkSync(target, path, "junction")`) 大幅省时;若两侧 `package.json`/`pnpm-lock.yaml` hash 不一致则放弃 junction、老实重装。 +- baseline worktree 不能 reuse `current` 的 `node_modules` 目录(可能含 current 引入的新包);用 junction 不算 reuse 内容,只是省 IO,所以 hash 一致才安全。 + +--- + +## Q3: suite-1 怎么「自带录 GIF」 + +### 现状 +WORKFLOW.md 套件 1 第 4 条硬要求写明:「跑的过程**自带录制一段验收 GIF**」。字面读起来像「suite-1 跑的同时启动录屏」,但实际两件事**应该解耦**: +- suite-1 跑在 CI / 后台,无 GUI、无可见窗口 +- GIF 录的是真实终端窗口里发生的事(Phase 1 的 `gdigrab` 是 Win32 GUI 强依赖) + +### 决议:解耦 + 共享 `ReproSpec.demoScene` +- **suite-1 的产出是结构化结果**(`ReproResult`):before/after 各跑一次的命令输出 + 退出码 + matcher 判定。 +- **GIF 录制是一个并行的、可选的步骤**:用同一份 `ReproSpec.demoScene`,调 Phase 1 `recordGif()` 在可见终端里重演 before→after。 +- 「自带」语义体现在 **suite-1 CLI 入口默认会触发录 GIF**(除非 `--no-gif` 或检测到无 Win32 环境)。这样「跑 suite-1 就有 GIF」对调用者是真的,实现上是「runner 之后立即调 recorder」。 + +``` +suite-1 CLI 入口 + ├─ runRepro(spec) → ReproResult (结构化, CI/本地都跑) + └─ 若 spec.demoScene 且 Win32 且 !--no-gif: + recordGif(spec.demoScene) → demo.gif (可选可视化) +``` + +### 理由 +- 让 suite-1 强制在录屏环境里跑 → CI 上没桌面,跑不了。 +- 让 recorder 「内嵌 suite-1 跑两遍」 → 录屏过程慢、易碎,suite-1 不该被它拖垮。 +- 解耦后:suite-1 在 CI 里照样跑(出 verdict);GIF 在本地或专用录屏 runner 上跑(出可视化证据);各自独立、各自重试。 + +### `DemoScene` 形态 +```ts +interface DemoScene { + sceneScript: string; // 在被录窗口里跑的 .ps1(脚本自行设置 windowTitle) + windowTitle: string; + durationSec: number; +} +``` + +样板 `hook-moment-block/recording/demo-scene.ps1` 已经是这个形态,迁移成本几乎为零。 + +--- + +## Q4: judge 接到哪 + +### 现状 +- `docs/PLAN-RESEARCH-REPORT.md` 强调:第三方 judge harness、**禁止自评**。 +- `packages/benchmark/evaluator.ts` 是**正则模式匹配**(`compiledWrongRegex` / `compiledCorrectRegex`),用于 benchmark **群组对比**(PRR 计算),不是通用「feature 是否实现」判官。 +- `.claude/skills/visual-proof-pr/judge-harness.md` 是**视觉化产出存在性检查**(`finalized.html` 是否在、PR body 是否提到 visual proof),跟 feature implementation verdict 也无关。 +- 所以**没有现成 judge harness 可直接复用**。 + +### 决议:两层 judge,互不重叠 + +**Layer A —— suite-1 内置确定性 matcher 判定(无 LLM)** +- ReproSpec 包含 `expect: { before: ResultMatcher; after: ResultMatcher }` +- `ResultMatcher` 是结构化断言:`{ exitCode?, stdoutContains?, stdoutNotContains?, stderrContains?, stderrNotContains? }` +- suite-1 跑完后自动比对实际输出与 matcher → `verdict: "pass" | "fail" | "ambiguous"` +- 这是 WORKFLOW.md 说的「给机器看的硬证明」。 + +**Layer B —— 独立 subagent review(不在套件 1 范围)** +- 跑完套件 1 + 套件 2 之后,由另一个独立 subagent 审「verdict 真不真、对比真严不严、有无浮于表面」。 +- 这是「**本地 review 循环**」子系统的工作,详见 `2026-05-15-local-review-loop.md`。 + +### 为什么 Layer A 必须无 LLM +- WORKFLOW.md 套件 1 第 1 条硬要求:「**给机器看的硬证明,是代码不是文档,可自动跑**」。LLM 判定**不是「硬」**(同输入两次结果可能不同,无法 reproducible)。 +- 「判断力」全在 ReproSpec 作者手里:作者怎么定义 matcher,就是怎么定义「feature 实现」。这把"什么算 feature 实现"的责任明确放在**写 ReproSpec 的人**身上 —— 这是健康的。 +- LLM 该用在 Layer B(评审报告整体是否严谨),而非 Layer A(feature 是否触发)。 + +### `ResultMatcher` 形态 +```ts +interface ResultMatcher { + exitCode?: number; + stdoutContains?: string[]; + stdoutNotContains?: string[]; + stderrContains?: string[]; + stderrNotContains?: string[]; + // 后续可扩展(本期不做): customAssertion?: (r: StepResult) => { ok: boolean; reason: string }; +} +function evalMatcher(actual: StepResult, m: ResultMatcher): { ok: boolean; reasons: string[] }; +``` + +`ambiguous` verdict 的产生:before 命中 after 的 matcher,或 after 命中 before 的 matcher,说明对比未严谨成立 —— suite-1 不擅自二选一,标 ambiguous 让 Layer B 看。 + +--- + +## 决议对 plan 形态的影响(模块边界落锤) + +`2026-05-15-suite-1-repro-framework.md` 的文件结构由上面 4 个决议直接推出来: + +``` +scripts/verify/ + repro-types.ts ← ReproSpec / ReproResult / ResultMatcher / DemoScene 类型 + repro-core.ts ← 纯逻辑:matcher 求值、verdict 计算、worktree 命令构造 + repro-core.test.ts ← node:test 单测 + worktree-shell.ts ← Imperative shell:git worktree 增删 + node_modules junction + repro-runner.ts ← Imperative shell:在 baseline + current 两侧跑 steps、收集 StepResult + repro-cli.ts ← CLI 入口:read spec → run → 可选 recordGif → 写 ReproResult JSON +fixtures/repro-specs/ + hook-moment-block.ts ← 第一份 ReproSpec 样板(把 hook-moment-block 验收改写为可执行) + README.md ← 怎么写一份 ReproSpec +``` + +文件结构与 Phase 1/2 的 `scripts/verify/gif-*.ts` / `report-*.ts` 平行,沿用同一套 functional-core / imperative-shell 模式。 + +--- + +## 验证清单(写 plan 时勾) + +- [ ] 4 条决议都被 plan 的某个 Task 落地 +- [ ] `repro-types.ts` 类型签名与本文 Q1/Q2/Q3/Q4 描述一致 +- [ ] `repro-core.test.ts` 至少覆盖:① matcher 求值;② verdict 计算(pass/fail/ambiguous 三态都有);③ worktree 命令构造 +- [ ] `repro-cli.ts` 默认行为与 Q3 决议一致(自动调 recordGif,可关) +- [ ] hook-moment-block ReproSpec 样板能 end-to-end 跑出 `verdict: "pass"` diff --git a/docs/plans/2026-05-15-suite-1-repro-framework.md b/docs/plans/2026-05-15-suite-1-repro-framework.md new file mode 100644 index 0000000..b8c187a --- /dev/null +++ b/docs/plans/2026-05-15-suite-1-repro-framework.md @@ -0,0 +1,930 @@ +# 套件 1 · 复现验证代码框架 Implementation Plan + +> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking. +> +> **Prereq:** 先读 `docs/plans/2026-05-15-suite-1-brainstorm.md` —— 4 条决议是本 plan 的输入。 + +**Goal:** 把 `docs/WORKFLOW.md` 第 3 步「两套验证 · 套件 1」从概念落地成可跑工具。任何 feature 写一份 `ReproSpec`,就能跑出**结构化 verdict (pass/fail/ambiguous)** + **可选 GIF**;CI 与本地都能跑。 + +**Architecture:** Functional core / Imperative shell —— `repro-core.ts` 纯逻辑(matcher 求值、verdict 计算、worktree 命令构造),严禁 import `node:fs`/`node:child_process`;`worktree-shell.ts`、`repro-runner.ts`、`repro-cli.ts` 是 IO/编排层。两个 git worktree(baseline + current)切代码态;ReproSpec 的 `env` 字段叠加切运行时状态。GIF 录制复用 `verification-tooling.md` Phase 1 的 `recordGif()`,在 CLI 里默认调一次。 + +**Tech Stack:** TypeScript + `tsx` + `node:test`(node 22 内置)+ `git worktree` + `node:child_process` + (可选) Phase 1 ffmpeg gdigrab。Windows 上 junction 用 `fs.symlinkSync(target, path, "junction")`。 + +--- + +## File Structure + +``` +scripts/verify/ + repro-types.ts ← ReproSpec / ReproResult / ResultMatcher / DemoScene / StepResult / Verdict + repro-core.ts ← 纯逻辑:evalMatcher / computeVerdict / buildWorktreeAddArgs / makeBaselineDir + repro-core.test.ts ← node:test 单测,覆盖 repro-core 全部纯函数 + worktree-shell.ts ← Imperative shell:git worktree add/remove + node_modules junction + repro-runner.ts ← Imperative shell:在 baseline + current 两侧跑 steps、收集 StepResult + repro-cli.ts ← CLI 入口:read spec → run → 可选 recordGif → 写 ReproResult JSON + 退出码 +fixtures/repro-specs/ + hook-moment-block.ts ← 第一份 ReproSpec 样板(把 hook-moment-block 验收改写为可执行) + README.md ← 「怎么写一份 ReproSpec」约定 +``` + +**Naming:** 与 `verification-tooling.md` Phase 1/2 的 `gif-*.ts`/`report-*.ts` 平行,均放 `scripts/verify/`,不进 pnpm workspace,用 `tsx` 跑、`node:test` 测。 + +--- + +## Task 1: `repro-types.ts` —— 类型定义 + +**Files:** +- Create: `scripts/verify/repro-types.ts` + +- [ ] **Step 1: 写类型(无运行时代码,仅 type 导出)** + +```ts +// scripts/verify/repro-types.ts +import type { Scenario } from "../../packages/core/src/index.js"; + +/** 一个 step 是 baseline / current 两侧都要执行的一条命令。 */ +export interface ReproStep { + /** 给人看的 step 名,出现在 ReproResult 与 GIF 字幕里 */ + name: string; + /** 可执行命令 + 参数。直接 spawn,不走 shell。 */ + command: string; + args: string[]; + /** 在 step 级追加的环境变量(优先级高于 ReproSpec.baseline/current.env)。 */ + env?: Record; + /** 默认 30s;超时即标 step 失败、verdict ambiguous。 */ + timeoutMs?: number; + /** 默认 cwd = repro 当前侧的 worktree 根目录。 */ + cwd?: string; +} + +/** baseline (改动前) 怎么切。`ref` 缺省 = `git merge-base HEAD ` */ +export interface BaselineRef { + ref?: string; // git ref;default 见 makeBaselineRef + baseBranch?: string; // default "main" + env?: Record; // 该侧统一附加 env(被 ReproStep.env 覆写) +} + +/** current (改动后) 怎么切。本期固定 = 跑 suite-1 的当前 worktree。 */ +export interface CurrentRef { + env?: Record; +} + +export interface DemoScene { + /** 在被录窗口里跑的 .ps1(脚本自行设置 windowTitle 与运行 ReproSpec.steps 的等价命令) */ + sceneScript: string; + windowTitle: string; + durationSec: number; +} + +export interface ResultMatcher { + exitCode?: number; + stdoutContains?: string[]; + stdoutNotContains?: string[]; + stderrContains?: string[]; + stderrNotContains?: string[]; +} + +export interface ReproSpec { + id: string; // kebab-case,比如 "hook-moment-block" + description: string; + baseline: BaselineRef; + current: CurrentRef; + steps: ReproStep[]; // 至少 1 条 + /** 期望:把所有 steps 的合并输出送进 matcher。 */ + expect: { before: ResultMatcher; after: ResultMatcher }; + /** matcher 类 feature 可引用现成 Scenario 复用其 phaseA/B/C 元数据 */ + scenario?: Scenario; + /** 给 GIF 录制用的可视化重演脚本。无此字段则 CLI 不录 GIF。 */ + demoScene?: DemoScene; +} + +/** 单个 step 的实际执行结果(baseline + current 各自一份)。 */ +export interface StepResult { + stepName: string; + exitCode: number | null; // null = timeout + stdout: string; + stderr: string; + durationMs: number; + timedOut: boolean; +} + +export type Verdict = "pass" | "fail" | "ambiguous"; + +export interface SideResult { + side: "before" | "after"; + steps: StepResult[]; + /** 该侧 matcher 的判定:matcher 全部命中 = ok */ + matcherOk: boolean; + matcherReasons: string[]; +} + +export interface ReproResult { + specId: string; + generatedAt: string; // ISO + before: SideResult; + after: SideResult; + /** 顶层 verdict:pass=before 期望成立 + after 期望成立 + 两侧期望确实不同; + * fail=有一侧期望未达;ambiguous=两侧期望"看起来都成立"或"都不成立" → 对比未严谨。 */ + verdict: Verdict; + verdictReason: string; +} +``` + +- [ ] **Step 2: 编译验证** + +Run: `npx tsc --noEmit --target es2022 --moduleResolution node16 --module node16 scripts/verify/repro-types.ts` +Expected: PASS (no errors). 如果报 `Scenario` 解析失败,改 import 路径为 packages/core 的实际入口(本仓库现状 `packages/core/src/index.js`)。 + +- [ ] **Step 3: commit** + +```bash +git add scripts/verify/repro-types.ts +git commit -m "feat(verify): add repro-types — ReproSpec/ReproResult/ResultMatcher types for suite-1" +``` + +--- + +## Task 2: `repro-core.ts` —— 纯逻辑(matcher / verdict / worktree 命令构造) + +**Files:** +- Create: `scripts/verify/repro-core.ts` +- Test: `scripts/verify/repro-core.test.ts` + +- [ ] **Step 1: 写失败测试(8 条)** + +```ts +// scripts/verify/repro-core.test.ts +import { test } from "node:test"; +import assert from "node:assert/strict"; +import { + evalMatcher, + computeVerdict, + buildWorktreeAddArgs, + buildWorktreeRemoveArgs, + mergeStepOutputs, +} from "./repro-core.ts"; +import type { ReproStep, ResultMatcher, SideResult, StepResult } from "./repro-types.ts"; + +const okStep = (over: Partial = {}): StepResult => ({ + stepName: "demo", exitCode: 0, stdout: "", stderr: "", durationMs: 1, timedOut: false, ...over, +}); + +test("evalMatcher: 无字段的 matcher 默认通过", () => { + const r = evalMatcher(okStep(), {}); + assert.deepEqual(r, { ok: true, reasons: [] }); +}); + +test("evalMatcher: exitCode 不匹配 → fail", () => { + const r = evalMatcher(okStep({ exitCode: 1 }), { exitCode: 0 }); + assert.equal(r.ok, false); + assert.match(r.reasons[0], /exitCode/); +}); + +test("evalMatcher: stdoutContains 全部命中才通过", () => { + const s = okStep({ stdout: "决策: deny\n应改用: dayjs" }); + assert.equal(evalMatcher(s, { stdoutContains: ["deny", "dayjs"] }).ok, true); + assert.equal(evalMatcher(s, { stdoutContains: ["deny", "missing-token"] }).ok, false); +}); + +test("evalMatcher: stdoutNotContains 任一命中即 fail", () => { + const s = okStep({ stdout: "决策: 通过 (无规则命中)" }); + assert.equal(evalMatcher(s, { stdoutNotContains: ["deny"] }).ok, true); + assert.equal(evalMatcher(s, { stdoutNotContains: ["通过"] }).ok, false); +}); + +test("mergeStepOutputs: 把多个 step 拼成单个 StepResult,exitCode 取最后一个非 0(或最后一个 0)", () => { + const merged = mergeStepOutputs([ + okStep({ stdout: "a", exitCode: 0 }), + okStep({ stdout: "b", exitCode: 1 }), + okStep({ stdout: "c", exitCode: 0 }), + ]); + assert.equal(merged.exitCode, 1); // 最近的非 0 优先 + assert.equal(merged.stdout, "a\nb\nc"); +}); + +test("computeVerdict: before 期望成立 + after 期望成立 + 两侧期望不同 → pass", () => { + const before: SideResult = { side: "before", steps: [], matcherOk: true, matcherReasons: [] }; + const after: SideResult = { side: "after", steps: [], matcherOk: true, matcherReasons: [] }; + const r = computeVerdict(before, after, + { stdoutContains: ["通过"] }, { stdoutContains: ["deny"] }); + assert.equal(r.verdict, "pass"); +}); + +test("computeVerdict: 任一侧 matcherOk 为 false → fail", () => { + const before: SideResult = { side: "before", steps: [], matcherOk: false, matcherReasons: ["缺 通过"] }; + const after: SideResult = { side: "after", steps: [], matcherOk: true, matcherReasons: [] }; + const r = computeVerdict(before, after, {}, {}); + assert.equal(r.verdict, "fail"); +}); + +test("buildWorktreeAddArgs / buildWorktreeRemoveArgs: 命令拼装", () => { + assert.deepEqual( + buildWorktreeAddArgs("/tmp/repro-baseline-abc123", "deadbeef"), + ["worktree", "add", "--detach", "/tmp/repro-baseline-abc123", "deadbeef"], + ); + assert.deepEqual( + buildWorktreeRemoveArgs("/tmp/repro-baseline-abc123"), + ["worktree", "remove", "--force", "/tmp/repro-baseline-abc123"], + ); +}); +``` + +- [ ] **Step 2: 跑测试确认失败** + +Run: `npx tsx --test scripts/verify/repro-core.test.ts` +Expected: FAIL —— `Cannot find module './repro-core.ts'` + +- [ ] **Step 3: 实现 `repro-core.ts`** + +```ts +// scripts/verify/repro-core.ts +import type { ResultMatcher, SideResult, StepResult, Verdict } from "./repro-types.ts"; + +export function evalMatcher(actual: StepResult, m: ResultMatcher): { ok: boolean; reasons: string[] } { + const reasons: string[] = []; + if (m.exitCode !== undefined && actual.exitCode !== m.exitCode) { + reasons.push(`exitCode 期望 ${m.exitCode},实际 ${actual.exitCode}`); + } + for (const needle of m.stdoutContains ?? []) { + if (!actual.stdout.includes(needle)) reasons.push(`stdout 缺关键字: ${JSON.stringify(needle)}`); + } + for (const needle of m.stdoutNotContains ?? []) { + if (actual.stdout.includes(needle)) reasons.push(`stdout 不应含: ${JSON.stringify(needle)}`); + } + for (const needle of m.stderrContains ?? []) { + if (!actual.stderr.includes(needle)) reasons.push(`stderr 缺关键字: ${JSON.stringify(needle)}`); + } + for (const needle of m.stderrNotContains ?? []) { + if (actual.stderr.includes(needle)) reasons.push(`stderr 不应含: ${JSON.stringify(needle)}`); + } + return { ok: reasons.length === 0, reasons }; +} + +/** 把多个 step 的 stdout/stderr 拼成单个 StepResult(用于喂给 matcher)。 + * exitCode 规则:任一非 0 → 取最近的非 0;否则取最后一个(0)。 + * 这样既能复现「中途某步失败」,又不会被无关 0 退出码淹没真问题。 */ +export function mergeStepOutputs(steps: StepResult[]): StepResult { + if (steps.length === 0) { + return { stepName: "", exitCode: 0, stdout: "", stderr: "", durationMs: 0, timedOut: false }; + } + const stdout = steps.map((s) => s.stdout).join("\n"); + const stderr = steps.map((s) => s.stderr).join("\n"); + const durationMs = steps.reduce((sum, s) => sum + s.durationMs, 0); + const timedOut = steps.some((s) => s.timedOut); + const lastNonZero = [...steps].reverse().find((s) => s.exitCode !== 0 && s.exitCode !== null); + const exitCode = lastNonZero?.exitCode ?? steps[steps.length - 1].exitCode; + return { stepName: "", exitCode, stdout, stderr, durationMs, timedOut }; +} + +export function computeVerdict( + before: SideResult, + after: SideResult, + beforeMatcher: ResultMatcher, + afterMatcher: ResultMatcher, +): { verdict: Verdict; verdictReason: string } { + if (!before.matcherOk || !after.matcherOk) { + const why: string[] = []; + if (!before.matcherOk) why.push(`before 期望未达: ${before.matcherReasons.join("; ")}`); + if (!after.matcherOk) why.push(`after 期望未达: ${after.matcherReasons.join("; ")}`); + return { verdict: "fail", verdictReason: why.join(" | ") }; + } + // 两侧 matcherOk 都为 true,但要进一步 sanity:对换 matcher 结果应该 fail, + // 否则说明两侧输出几乎一样 → 对比未严谨成立,标 ambiguous。 + const beforeMergedAfter = sideMatchesMerged(before, afterMatcher); + const afterMergedBefore = sideMatchesMerged(after, beforeMatcher); + if (beforeMergedAfter && afterMergedBefore) { + return { verdict: "ambiguous", verdictReason: "before 也命中了 after 的期望,且 after 也命中了 before 的期望 —— 对比未严谨成立" }; + } + return { verdict: "pass", verdictReason: "before 与 after 期望均成立,且对比严谨" }; +} + +function sideMatchesMerged(side: SideResult, m: ResultMatcher): boolean { + // 简化:在 SideResult 没有保留 mergedStep 的情况下,这里近似看 matcherReasons 数组。 + // 真正的"互换 matcher" sanity check 由 repro-runner 在 SideResult 上额外存一份 mergedStep。 + // 本函数为占位 —— Step 4 中 runner 会把 mergedStep 通过另一个签名的 computeVerdict 传入。 + void side; void m; + return false; +} + +export function buildWorktreeAddArgs(path: string, ref: string): string[] { + return ["worktree", "add", "--detach", path, ref]; +} + +export function buildWorktreeRemoveArgs(path: string): string[] { + return ["worktree", "remove", "--force", path]; +} + +export function makeBaselineDir(tmpDir: string, specId: string, rand6: string): string { + // 路径段全部 ASCII;Windows 下 git worktree 对 unicode 路径偶有问题 + return `${tmpDir.replace(/[\\/]+$/, "")}/repro-baseline-${specId}-${rand6}`; +} +``` + +> 注:`sideMatchesMerged` 在本 task 是占位返回 false(测试只覆盖 pass / fail,不测 ambiguous)。Task 4 重构 `computeVerdict` 接收 `mergedBefore: StepResult, mergedAfter: StepResult` 直接做互换 sanity,占位函数届时删除。这是有意分两步,避免 core 单测依赖 runner 才有的数据结构。 + +- [ ] **Step 4: 跑测试确认通过** + +Run: `npx tsx --test scripts/verify/repro-core.test.ts` +Expected: PASS (8/8) + +- [ ] **Step 5: commit** + +```bash +git add scripts/verify/repro-core.ts scripts/verify/repro-core.test.ts +git commit -m "feat(verify): add repro-core — pure matcher eval + verdict + worktree cmd construction" +``` + +--- + +## Task 3: `worktree-shell.ts` —— git worktree 编排 + node_modules junction + +**Files:** +- Create: `scripts/verify/worktree-shell.ts` + +- [ ] **Step 1: 实现 Imperative Shell** + +```ts +// scripts/verify/worktree-shell.ts +import { spawnSync } from "node:child_process"; +import { mkdtempSync, symlinkSync, existsSync, statSync, readFileSync } from "node:fs"; +import { tmpdir } from "node:os"; +import path from "node:path"; +import { createHash } from "node:crypto"; +import { buildWorktreeAddArgs, buildWorktreeRemoveArgs, makeBaselineDir } from "./repro-core.ts"; + +export interface BaselinePrep { + /** baseline worktree 的绝对路径 */ + dir: string; + /** baseline 检出的 ref(实际值,resolveBaselineRef 之后) */ + ref: string; + /** 调它清理 baseline worktree(只在调用方 finally 里跑) */ + cleanup: () => void; +} + +/** 解析 BaselineRef.ref:有就用、没有就 git merge-base HEAD (默认 main)。 */ +export function resolveBaselineRef(repoRoot: string, ref: string | undefined, baseBranch: string | undefined): string { + if (ref && ref.length > 0) return ref; + const branch = baseBranch ?? "main"; + const r = spawnSync("git", ["merge-base", "HEAD", branch], { cwd: repoRoot, encoding: "utf-8" }); + if (r.status !== 0) throw new Error(`git merge-base HEAD ${branch} 失败: ${r.stderr.trim()}`); + return r.stdout.trim(); +} + +/** 在 os.tmpdir() 下建一个 baseline worktree,返回路径与 cleanup。 */ +export function prepareBaselineWorktree(opts: { repoRoot: string; specId: string; ref: string }): BaselinePrep { + const rand6 = createHash("sha256").update(`${Date.now()}-${Math.random()}`).digest("hex").slice(0, 6); + const dir = makeBaselineDir(tmpdir(), opts.specId, rand6); + const r = spawnSync("git", buildWorktreeAddArgs(dir, opts.ref), { cwd: opts.repoRoot, encoding: "utf-8" }); + if (r.status !== 0) throw new Error(`git worktree add 失败: ${r.stderr.trim()}`); + const cleanup = () => { + const rm = spawnSync("git", buildWorktreeRemoveArgs(dir), { cwd: opts.repoRoot, encoding: "utf-8" }); + if (rm.status !== 0) { + // 不抛 —— 清理失败不该掩盖原始错误;但要打印 + process.stderr.write(`[warn] git worktree remove 失败: ${rm.stderr.trim()}\n`); + } + }; + return { dir, ref: opts.ref, cleanup }; +} + +/** 若两侧 package.json + pnpm-lock.yaml hash 一致,把 current 的 node_modules 以 junction 方式挂到 baseline,省去 install。 + * 返回 true 表示成功 junction;false 表示 hash 不一致或 junction 失败,调用方应跑 `pnpm install`。 */ +export function tryJunctionNodeModules(currentDir: string, baselineDir: string): boolean { + const currentLock = path.join(currentDir, "pnpm-lock.yaml"); + const baselineLock = path.join(baselineDir, "pnpm-lock.yaml"); + const currentPkg = path.join(currentDir, "package.json"); + const baselinePkg = path.join(baselineDir, "package.json"); + if (!existsSync(currentLock) || !existsSync(baselineLock)) return false; + const lockSame = sha(readFileSync(currentLock)) === sha(readFileSync(baselineLock)); + const pkgSame = sha(readFileSync(currentPkg)) === sha(readFileSync(baselinePkg)); + if (!(lockSame && pkgSame)) return false; + const currentNm = path.join(currentDir, "node_modules"); + const baselineNm = path.join(baselineDir, "node_modules"); + if (!existsSync(currentNm) || !statSync(currentNm).isDirectory()) return false; + if (existsSync(baselineNm)) return false; // 已存在 → 不覆盖 + try { + // Windows: junction;其它平台: dir symlink + const type = process.platform === "win32" ? "junction" : "dir"; + symlinkSync(currentNm, baselineNm, type); + return true; + } catch { + return false; + } +} + +function sha(buf: Buffer): string { + return createHash("sha256").update(buf).digest("hex"); +} + +/** 测试钩子:让 unit/smoke 能注入临时 mkdtemp 路径 */ +export function _internalMkdtemp(prefix: string): string { + return mkdtempSync(path.join(tmpdir(), prefix)); +} +``` + +- [ ] **Step 2: 手动冒烟** + +```bash +npx tsx -e " +import { resolveBaselineRef, prepareBaselineWorktree, tryJunctionNodeModules } from './scripts/verify/worktree-shell.ts'; +const root = process.cwd(); +const ref = resolveBaselineRef(root, undefined, 'main'); +console.log('baseline ref =', ref); +const prep = prepareBaselineWorktree({ repoRoot: root, specId: 'smoke', ref }); +console.log('baseline dir =', prep.dir); +const j = tryJunctionNodeModules(root, prep.dir); +console.log('junction node_modules =', j); +prep.cleanup(); +console.log('cleanup ok'); +" +``` + +Expected: +``` +baseline ref = +baseline dir = /repro-baseline-smoke-<6hex> +junction node_modules = true # 当 baseline 与 current package.json/lock 一致时 +cleanup ok +``` + +- [ ] **Step 3: commit** + +```bash +git add scripts/verify/worktree-shell.ts +git commit -m "feat(verify): add worktree-shell — git worktree + node_modules junction for baseline prep" +``` + +--- + +## Task 4: `repro-runner.ts` —— 在两侧跑 steps + 计算 verdict + +**Files:** +- Create: `scripts/verify/repro-runner.ts` +- Modify: `scripts/verify/repro-core.ts:1-200`(把 `computeVerdict` 改成接收 `mergedBefore/mergedAfter` 双参版,删掉 Task 2 的 `sideMatchesMerged` 占位) +- Modify: `scripts/verify/repro-core.test.ts`(同步 `computeVerdict` 调用签名;新增 1 个 ambiguous 测试) + +- [ ] **Step 1: 重构 `computeVerdict`(删占位、接 mergedStep)** + +```ts +// scripts/verify/repro-core.ts —— 仅替换 computeVerdict + 删除 sideMatchesMerged +export function computeVerdict( + before: SideResult, + after: SideResult, + mergedBefore: StepResult, + mergedAfter: StepResult, + beforeMatcher: ResultMatcher, + afterMatcher: ResultMatcher, +): { verdict: Verdict; verdictReason: string } { + if (!before.matcherOk || !after.matcherOk) { + const why: string[] = []; + if (!before.matcherOk) why.push(`before 期望未达: ${before.matcherReasons.join("; ")}`); + if (!after.matcherOk) why.push(`after 期望未达: ${after.matcherReasons.join("; ")}`); + return { verdict: "fail", verdictReason: why.join(" | ") }; + } + // 互换 matcher sanity + const beforeUnderAfter = evalMatcher(mergedBefore, afterMatcher); + const afterUnderBefore = evalMatcher(mergedAfter, beforeMatcher); + if (beforeUnderAfter.ok && afterUnderBefore.ok) { + return { verdict: "ambiguous", verdictReason: "before 也命中了 after 的期望,且 after 也命中了 before 的期望 —— 对比未严谨" }; + } + return { verdict: "pass", verdictReason: "before 与 after 期望均成立,且互换 matcher 后对比仍区分两侧" }; +} +``` + +- [ ] **Step 2: 改 `repro-core.test.ts`(更新签名 + 加 ambiguous 测试)** + +Task 2 的 8 个测试里只有 2 个调 `computeVerdict`(测试编号 #6 + #7),其它 6 个不动。逐字替换那 2 个为新签名,并在末尾追加 ambiguous 测试: + +```ts +// === 替换 Task 2 第 #6 个测试(原 "computeVerdict: 两条都 ok → pass") === +test("computeVerdict: before 期望成立 + after 期望成立 + 互换 matcher 区分两侧 → pass", () => { + const before: SideResult = { side: "before", steps: [], matcherOk: true, matcherReasons: [] }; + const after: SideResult = { side: "after", steps: [], matcherOk: true, matcherReasons: [] }; + const mergedBefore = okStep({ stdout: "通过 (无规则命中)" }); + const mergedAfter = okStep({ stdout: "决策: deny 应改用: dayjs" }); + const r = computeVerdict( + before, after, mergedBefore, mergedAfter, + { stdoutContains: ["通过"] }, { stdoutContains: ["deny"] }, + ); + assert.equal(r.verdict, "pass"); +}); + +// === 替换 Task 2 第 #7 个测试(原 "computeVerdict: 任一侧 matcherOk false → fail") === +test("computeVerdict: 任一侧 matcherOk 为 false → fail", () => { + const before: SideResult = { side: "before", steps: [], matcherOk: false, matcherReasons: ["缺 通过"] }; + const after: SideResult = { side: "after", steps: [], matcherOk: true, matcherReasons: [] }; + const mergedBefore = okStep(); + const mergedAfter = okStep(); + const r = computeVerdict(before, after, mergedBefore, mergedAfter, {}, {}); + assert.equal(r.verdict, "fail"); +}); + +// === 新增第 9 个测试 === +test("computeVerdict: 互换 matcher 双方都命中 → ambiguous", () => { + const before: SideResult = { side: "before", steps: [], matcherOk: true, matcherReasons: [] }; + const after: SideResult = { side: "after", steps: [], matcherOk: true, matcherReasons: [] }; + const sameOutput = okStep({ stdout: "X" }); + const r = computeVerdict( + before, after, sameOutput, sameOutput, + { stdoutContains: ["X"] }, { stdoutContains: ["X"] }, + ); + assert.equal(r.verdict, "ambiguous"); +}); +``` + +其它 6 个测试(`evalMatcher` × 4 + `mergeStepOutputs` × 1 + `buildWorktreeAddArgs/Remove` × 1)**不调用 computeVerdict,无需改动**。 + +- [ ] **Step 3: 跑测试确认通过(9/9)** + +Run: `npx tsx --test scripts/verify/repro-core.test.ts` +Expected: PASS (9/9) + +- [ ] **Step 4: 实现 `repro-runner.ts`** + +```ts +// scripts/verify/repro-runner.ts +import { spawn } from "node:child_process"; +import { evalMatcher, mergeStepOutputs, computeVerdict } from "./repro-core.ts"; +import type { + ReproSpec, ReproResult, ReproStep, SideResult, StepResult, +} from "./repro-types.ts"; + +interface RunSideOpts { + side: "before" | "after"; + cwd: string; // 该侧的 worktree 根目录 + baselineEnv: Record; // ReproSpec.baseline.env / current.env + steps: ReproStep[]; +} + +async function runStep(step: ReproStep, defaultCwd: string, sideEnv: Record): Promise { + const start = Date.now(); + const env = { ...process.env, ...sideEnv, ...(step.env ?? {}) }; + const timeoutMs = step.timeoutMs ?? 30_000; + return new Promise((resolve) => { + const child = spawn(step.command, step.args, { + cwd: step.cwd ?? defaultCwd, env, windowsHide: true, shell: false, + }); + let stdout = ""; let stderr = ""; let timedOut = false; + child.stdout.on("data", (b) => { stdout += b.toString(); }); + child.stderr.on("data", (b) => { stderr += b.toString(); }); + const timer = setTimeout(() => { timedOut = true; child.kill("SIGKILL"); }, timeoutMs); + child.on("close", (code) => { + clearTimeout(timer); + resolve({ + stepName: step.name, + exitCode: timedOut ? null : code, + stdout, stderr, + durationMs: Date.now() - start, + timedOut, + }); + }); + child.on("error", (e) => { + clearTimeout(timer); + resolve({ + stepName: step.name, exitCode: null, stdout, stderr: stderr + `\n[spawn error] ${e.message}`, + durationMs: Date.now() - start, timedOut: false, + }); + }); + }); +} + +async function runSide(opts: RunSideOpts, matcher: import("./repro-types.ts").ResultMatcher): Promise<{ side: SideResult; merged: StepResult }> { + const stepResults: StepResult[] = []; + for (const step of opts.steps) { + stepResults.push(await runStep(step, opts.cwd, opts.baselineEnv)); + } + const merged = mergeStepOutputs(stepResults); + const m = evalMatcher(merged, matcher); + const side: SideResult = { side: opts.side, steps: stepResults, matcherOk: m.ok, matcherReasons: m.reasons }; + return { side, merged }; +} + +export interface RunReproOpts { + spec: ReproSpec; + currentDir: string; // 一般 = process.cwd() + baselineDir: string; // 由 worktree-shell.prepareBaselineWorktree 提供 +} + +export async function runRepro(opts: RunReproOpts): Promise { + const { spec, currentDir, baselineDir } = opts; + const before = await runSide({ + side: "before", cwd: baselineDir, + baselineEnv: spec.baseline.env ?? {}, steps: spec.steps, + }, spec.expect.before); + const after = await runSide({ + side: "after", cwd: currentDir, + baselineEnv: spec.current.env ?? {}, steps: spec.steps, + }, spec.expect.after); + const v = computeVerdict( + before.side, after.side, + before.merged, after.merged, + spec.expect.before, spec.expect.after, + ); + return { + specId: spec.id, + generatedAt: new Date().toISOString(), + before: before.side, + after: after.side, + verdict: v.verdict, + verdictReason: v.verdictReason, + }; +} +``` + +- [ ] **Step 5: commit** + +```bash +git add scripts/verify/repro-runner.ts scripts/verify/repro-core.ts scripts/verify/repro-core.test.ts +git commit -m "feat(verify): add repro-runner — run steps on baseline+current sides, compute verdict" +``` + +--- + +## Task 5: `repro-cli.ts` —— CLI 入口(读 spec → 跑 → 可选录 GIF → 写 JSON) + +**Files:** +- Create: `scripts/verify/repro-cli.ts` + +> **依赖**:本 task 默认调用 `recordGif()` —— 它在 `verification-tooling.md` Phase 1 Task 3 产出。如果 Phase 1 还没实现,把第 4 步的 `import { recordGif } from "./record-gif.ts"` 改成 `const recordGif = (..._args: unknown[]) => { throw new Error("recordGif 未实现 —— 见 verification-tooling.md Phase 1"); };`,并跑 `npx tsx scripts/verify/repro-cli.ts --no-gif` 跑通骨架。 + +- [ ] **Step 1: 实现 CLI** + +```ts +// scripts/verify/repro-cli.ts +import { writeFileSync, mkdirSync } from "node:fs"; +import path from "node:path"; +import { resolveBaselineRef, prepareBaselineWorktree, tryJunctionNodeModules } from "./worktree-shell.ts"; +import { runRepro } from "./repro-runner.ts"; +import type { ReproSpec, ReproResult } from "./repro-types.ts"; +import { recordGif } from "./record-gif.ts"; // 见上方 Phase 1 依赖说明 + +interface CliOpts { specPath: string; outDir: string; noGif: boolean; } + +function parseArgv(argv: string[]): CliOpts { + const opts: CliOpts = { specPath: "", outDir: "", noGif: false }; + for (let i = 0; i < argv.length; i++) { + const a = argv[i]; + if (a === "--no-gif") opts.noGif = true; + else if (a === "--out") opts.outDir = argv[++i]; + else if (!opts.specPath) opts.specPath = a; + } + if (!opts.specPath) throw new Error("用法: tsx scripts/verify/repro-cli.ts [--out ] [--no-gif]"); + if (!opts.outDir) opts.outDir = path.join("docs/acceptance", path.basename(opts.specPath, path.extname(opts.specPath))); + return opts; +} + +async function main(): Promise { + const opts = parseArgv(process.argv.slice(2)); + const repoRoot = process.cwd(); + // 1. 动态加载 ReproSpec + const mod = await import(path.resolve(opts.specPath)); + const spec: ReproSpec = mod.default ?? mod.spec; + if (!spec || typeof spec.id !== "string") throw new Error(`${opts.specPath} 必须 export default 或 export const spec: ReproSpec`); + mkdirSync(opts.outDir, { recursive: true }); + + // 2. 准备 baseline worktree + const ref = resolveBaselineRef(repoRoot, spec.baseline.ref, spec.baseline.baseBranch); + const prep = prepareBaselineWorktree({ repoRoot, specId: spec.id, ref }); + console.log(`[baseline] ref=${ref} dir=${prep.dir}`); + const junctioned = tryJunctionNodeModules(repoRoot, prep.dir); + console.log(`[baseline] node_modules junction=${junctioned}${junctioned ? "" : " (若 spec 跑命令需 deps,请手动到 baseline 跑 pnpm install,或在 spec.steps 里加 install step)"}`); + + let result: ReproResult; + try { + // 3. 跑 suite-1 + result = await runRepro({ spec, currentDir: repoRoot, baselineDir: prep.dir }); + } finally { + prep.cleanup(); + } + const jsonPath = path.join(opts.outDir, "repro-result.json"); + writeFileSync(jsonPath, JSON.stringify(result, null, 2), "utf-8"); + console.log(`[result] verdict=${result.verdict} → ${jsonPath}`); + + // 4. 可选录 GIF + const winRecordable = process.platform === "win32"; + if (spec.demoScene && !opts.noGif && winRecordable) { + console.log(`[gif] recording demoScene → ${opts.outDir}`); + const { gif, mp4 } = recordGif({ + sceneScript: spec.demoScene.sceneScript, + windowTitle: spec.demoScene.windowTitle, + durationSec: spec.demoScene.durationSec, + outDir: opts.outDir, + }); + console.log(`[gif] mp4=${mp4} gif=${gif}`); + } else if (spec.demoScene && opts.noGif) { + console.log(`[gif] skipped (--no-gif)`); + } else if (spec.demoScene && !winRecordable) { + console.log(`[gif] skipped (platform ${process.platform} 不支持 gdigrab)`); + } + + // 5. 退出码:pass=0 fail/ambiguous=非 0 + process.exit(result.verdict === "pass" ? 0 : 1); +} + +main().catch((e) => { console.error(e); process.exit(2); }); +``` + +- [ ] **Step 2: 用临时空 spec 冒烟** + +先建一个最小化空 spec(steps 只跑 `node -e "console.log('after')"`,baseline 输出会一样 → 期望是 fail/ambiguous,验证退出码非 0): + +```bash +cat > /tmp/empty-spec.ts <<'TS' +import type { ReproSpec } from "C:/bzli/Matrix/scripts/verify/repro-types.ts"; +const spec: ReproSpec = { + id: "smoke-empty", + description: "smoke test —— 两侧跑同样的命令,期望 ambiguous", + baseline: {}, + current: {}, + steps: [{ name: "echo", command: process.execPath, args: ["-e", "console.log('hello')"] }], + expect: { + before: { stdoutContains: ["hello"] }, + after: { stdoutContains: ["hello"] }, + }, +}; +export default spec; +TS +npx tsx scripts/verify/repro-cli.ts /tmp/empty-spec.ts --no-gif --out /tmp/smoke-out +echo "exit code: $?" +cat /tmp/smoke-out/repro-result.json | grep verdict +``` + +Expected: +- 退出码 = 1 +- `repro-result.json` 里 `"verdict": "ambiguous"`(两侧输出一样,互换 matcher 双方都命中) + +- [ ] **Step 3: commit** + +```bash +git add scripts/verify/repro-cli.ts +git commit -m "feat(verify): add repro-cli — orchestrates baseline prep + run + optional GIF" +``` + +--- + +## Task 6: `fixtures/repro-specs/hook-moment-block.ts` —— 第一份真实样板 + +**Files:** +- Create: `fixtures/repro-specs/hook-moment-block.ts` +- Create: `fixtures/repro-specs/README.md` + +> **背景**:把 `docs/acceptance/2026-05-14-hook-moment-block/` 的人工验收改写为可执行 ReproSpec。要 reproduce 现有样板的两屏: +> - before:`USERPROFILE=` 跑 `teamagent demo hook Bash command="npm install moment"` → 输出含 `通过 (无规则命中)` +> - after:`USERPROFILE=` 跑同命令 → 输出含 `决策: deny` + `应改用` + `dayjs` +> 两侧代码都跑 **当前 worktree 的 dist/bin.js**(本 feature 跟代码无关,仅靠 env 切运行时状态)—— 因此 baseline.ref 用 HEAD,本质是「同代码、不同 env」。 + +- [ ] **Step 1: 写 spec** + +```ts +// fixtures/repro-specs/hook-moment-block.ts +import path from "node:path"; +import { momentDayjsScenario } from "../scenarios/moment-dayjs.ts"; +import type { ReproSpec } from "../../scripts/verify/repro-types.ts"; + +// 注:本 feature 是「数据驱动」差异 —— 同代码、不同知识库状态,所以 baseline.ref = HEAD。 +// stage 目录由调用方在 spec 跑之前预备(或手动按 docs/acceptance/2026-05-14-hook-moment-block/recording/README.md 准备)。 +const stage = process.env.TA_DEMO_STAGE ?? "C:/Users/tianhaoxuan/ta-demo-stage"; + +const spec: ReproSpec = { + id: "hook-moment-block", + description: "PreToolUse hook 在「学到经验后」拦截 npm install moment,建议 dayjs", + baseline: { + ref: "HEAD", // 同代码;差异在 env 切的知识库 home + env: { USERPROFILE: `${stage}/home-empty`, HOME: `${stage}/home-empty` }, + }, + current: { + env: { USERPROFILE: `${stage}/home-loaded`, HOME: `${stage}/home-loaded` }, + }, + steps: [ + { + name: "demo-hook-npm-install-moment", + command: process.execPath, // node + args: [ + path.resolve("packages/teamagent/dist/bin.js"), + "demo", "hook", "Bash", `command=npm install moment`, + ], + timeoutMs: 30_000, + }, + ], + expect: { + before: { + exitCode: 0, + stdoutContains: ["通过 (无规则命中)"], + stdoutNotContains: ["deny", "应改用"], + }, + after: { + exitCode: 0, + stdoutContains: ["决策: deny", "应改用", "dayjs"], + stdoutNotContains: ["通过 (无规则命中)"], + }, + }, + scenario: momentDayjsScenario, // 复用现成 Scenario 元数据 + demoScene: { + sceneScript: path.resolve("docs/acceptance/2026-05-14-hook-moment-block/recording/demo-scene.ps1"), + windowTitle: "TADEMOREC", + durationSec: 40, + }, +}; + +export default spec; +``` + +- [ ] **Step 2: 跑端到端** + +> **前置**:`$stage/home-empty` 与 `$stage/home-loaded` 两个目录已按 `docs/acceptance/2026-05-14-hook-moment-block/recording/README.md` 备好(后者含 init 后的 `.viki/knowledge.db`)。若没备,先跑那份 README 的步骤,或 `set TA_DEMO_STAGE=` 指向已备好的目录。 + +```bash +npx tsx scripts/verify/repro-cli.ts fixtures/repro-specs/hook-moment-block.ts --no-gif \ + --out docs/acceptance/2026-05-15-hook-moment-block-repro +``` + +Expected: +- 退出码 = 0 +- `docs/acceptance/2026-05-15-hook-moment-block-repro/repro-result.json` 存在,`"verdict": "pass"`,`"verdictReason"` 含 "互换 matcher 后对比仍区分" + +- [ ] **Step 3: 写 README(怎么写一份 ReproSpec)** + +```markdown + +# 怎么写一份 ReproSpec + +ReproSpec 是套件 1(复现验证代码框架)的输入。一份 spec ≈ 「这个 feature 是否实现」的可执行定义。 +设计决议见 `docs/plans/2026-05-15-suite-1-brainstorm.md`,实现见 `scripts/verify/repro-*.ts`。 + +## 最小骨架 + +\`\`\`ts +import type { ReproSpec } from "../../scripts/verify/repro-types.ts"; + +const spec: ReproSpec = { + id: "kebab-case-id", // 建议与 docs/acceptance/-/ 一致 + description: "一句话说明这个 feature", + baseline: { /* 怎么切到 before 态 */ }, + current: { /* 一般留空,默认 = 当前 worktree */ }, + steps: [{ + name: "step-name", + command: process.execPath, + args: ["..."], + }], + expect: { + before: { /* before 应满足的 ResultMatcher */ }, + after: { /* after 应满足的 ResultMatcher */ }, + }, +}; +export default spec; +\`\`\` + +## 三种典型 feature 的写法 + +### 1. 数据驱动差异(同代码、不同状态) +`baseline.ref = "HEAD"` + `baseline.env` / `current.env` 切运行时状态。样板: +[`hook-moment-block.ts`](./hook-moment-block.ts)。 + +### 2. 代码驱动差异(改了代码) +`baseline.ref` 留空 → CLI 自动算 `git merge-base HEAD main`。两侧分别在两个 worktree 跑同命令,期望产出不同。 + +### 3. 既改代码又依赖运行时状态 +两侧都用 `env` 字段,`baseline.ref` 保持「PR 起点」即可。 + +## 怎么写好 `expect` + +- **`stdoutContains` 写「后果」、不要写「过程」**。比如「拦截 moment」就写 `["deny", "应改用", "dayjs"]`(后果), + 不要写「调用 matcher」(过程)。 +- **同时给 `stdoutNotContains`**。两侧应**互斥**才算严谨对比;否则 verdict 会是 `ambiguous`。 +- **exitCode 谨慎用**。很多 CLI 即使逻辑失败也返回 0(把信息写在 stdout)。除非命令明确以 exitCode 区分两态,否则别钉 exitCode。 + +## 怎么 run + +```bash +# 跑 spec(默认录 GIF;CI 上加 --no-gif) +npx tsx scripts/verify/repro-cli.ts fixtures/repro-specs/.ts \ + --out docs/acceptance/- + +# 看 verdict +cat docs/acceptance/-/repro-result.json | jq .verdict +``` +``` + +- [ ] **Step 4: commit** + +```bash +git add fixtures/repro-specs/hook-moment-block.ts fixtures/repro-specs/README.md docs/acceptance/2026-05-15-hook-moment-block-repro/ +git commit -m "feat(verify): add hook-moment-block ReproSpec sample + README — first real suite-1 spec" +``` + +--- + +## Self-Review + +**1. Spec coverage:** 4 条 brainstorm 决议:① Q1 ReproSpec 内嵌 Scenario → Task 1 类型;② Q2 两 worktree + env → Task 3 worktree-shell + Task 4 runner 双侧;③ Q3 解耦录 GIF → Task 5 CLI 末段;④ Q4 确定性 matcher → Task 2 evalMatcher + computeVerdict。`hook-moment-block` 样板覆盖 Q2 的「数据驱动差异」典型 + 复用 `momentDayjsScenario` 验证 Q1 的内嵌路径。**已知缺口**:Layer B(独立 subagent review)在另一份 plan(`2026-05-15-local-review-loop.md`)。 + +**2. Placeholder scan:** Task 2 `sideMatchesMerged` 是有意占位,Task 4 显式删除并替换 —— 在文档里说明而非偷偷留下。Task 5 对 `recordGif` 的依赖在 task 开头明确给了 fallback。无 "TBD" / "实现错误处理" 等空话。 + +**3. Type consistency:** `ReproSpec` 字段 `id/description/baseline/current/steps/expect/scenario/demoScene` 在 Task 1 定义,Task 5 CLI 使用 `spec.id/spec.baseline.ref/spec.demoScene`,Task 6 样板 export 的 `spec` 用同名字段。`StepResult` 字段在 Task 1 定义,Task 2 `mergeStepOutputs` 与 Task 4 `runStep` 都按同名字段构造。`computeVerdict` 签名 Task 2 → Task 4 显式重构(写在 Task 4 Step 1),不是隐式改动。 + +## Execution Handoff + +Plan complete. 推荐执行路径: + +1. **先确认前置**:Phase 1 `recordGif()`(`verification-tooling.md` Task 3)是否已实现?未实现也能跑本 plan 主体(Task 5 提供了 fallback);要跑 hook-moment-block 端到端 GIF 需先做 Phase 1。 +2. **执行**:Task 1–6 串行(Task 4 重构 Task 2 的函数签名 → 不能跳序)。建议 subagent-driven,每 Task 一个独立 subagent。 +3. **验收**:跑 `fixtures/repro-specs/hook-moment-block.ts` 端到端,看到 `verdict: "pass"` 即套件 1 落地。 From 52afd0b0856730734d429f118b8894e97fa8a65c Mon Sep 17 00:00:00 2001 From: liboze2026 Date: Fri, 15 May 2026 12:10:43 +0800 Subject: [PATCH 04/29] =?UTF-8?q?feat(verify):=20add=20repro-types=20?= =?UTF-8?q?=E2=80=94=20ReproSpec/ReproResult/ResultMatcher=20types=20for?= =?UTF-8?q?=20suite-1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Implements plan #1 Task 1 from docs/plans/2026-05-15-suite-1-repro-framework.md. Pure type definitions; no runtime code. Imports Scenario from @teamagent/core for ReproSpec.scenario optional field (Q1 brainstorm decision). tsc --noEmit verified (with --skipLibCheck per tsconfig.base.json convention; upstream web-tree-sitter.d.ts has a missing EmscriptenModule type otherwise). Co-Authored-By: Claude Opus 4.7 (1M context) --- scripts/verify/repro-types.ts | 97 +++++++++++++++++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 scripts/verify/repro-types.ts diff --git a/scripts/verify/repro-types.ts b/scripts/verify/repro-types.ts new file mode 100644 index 0000000..1c76623 --- /dev/null +++ b/scripts/verify/repro-types.ts @@ -0,0 +1,97 @@ +// scripts/verify/repro-types.ts +// +// Suite-1 (复现验证代码框架) 的类型定义。 +// 设计决议见 docs/plans/2026-05-15-suite-1-brainstorm.md; +// 实施 plan 见 docs/plans/2026-05-15-suite-1-repro-framework.md。 +// +// 与本文件同目录的 repro-core.ts 严禁 import fs / child_process —— 它是 functional core; +// IO/编排在 worktree-shell.ts / repro-runner.ts / repro-cli.ts。 + +import type { Scenario } from "../../packages/core/src/index.js"; + +/** 一个 step 是 baseline / current 两侧都要执行的一条命令。 */ +export interface ReproStep { + /** 给人看的 step 名,出现在 ReproResult 与 GIF 字幕里 */ + name: string; + /** 可执行命令 + 参数。直接 spawn,不走 shell。 */ + command: string; + args: string[]; + /** 在 step 级追加的环境变量(优先级高于 ReproSpec.baseline/current.env)。 */ + env?: Record; + /** 默认 30s;超时即标 step 失败、verdict ambiguous。 */ + timeoutMs?: number; + /** 默认 cwd = repro 当前侧的 worktree 根目录。 */ + cwd?: string; +} + +/** baseline (改动前) 怎么切。`ref` 缺省 = `git merge-base HEAD ` */ +export interface BaselineRef { + ref?: string; // git ref;default 见 worktree-shell.resolveBaselineRef + baseBranch?: string; // default "main" + env?: Record; // 该侧统一附加 env(被 ReproStep.env 覆写) +} + +/** current (改动后) 怎么切。本期固定 = 跑 suite-1 的当前 worktree。 */ +export interface CurrentRef { + env?: Record; +} + +export interface DemoScene { + /** 在被录窗口里跑的 .ps1(脚本自行设置 windowTitle 与运行 ReproSpec.steps 的等价命令) */ + sceneScript: string; + windowTitle: string; + durationSec: number; +} + +export interface ResultMatcher { + exitCode?: number; + stdoutContains?: string[]; + stdoutNotContains?: string[]; + stderrContains?: string[]; + stderrNotContains?: string[]; +} + +export interface ReproSpec { + id: string; // kebab-case,比如 "hook-moment-block" + description: string; + baseline: BaselineRef; + current: CurrentRef; + steps: ReproStep[]; // 至少 1 条 + /** 期望:把所有 steps 的合并输出送进 matcher。 */ + expect: { before: ResultMatcher; after: ResultMatcher }; + /** matcher 类 feature 可引用现成 Scenario 复用其 phaseA/B/C 元数据 */ + scenario?: Scenario; + /** 给 GIF 录制用的可视化重演脚本。无此字段则 CLI 不录 GIF。 */ + demoScene?: DemoScene; +} + +/** 单个 step 的实际执行结果(baseline + current 各自一份)。 */ +export interface StepResult { + stepName: string; + exitCode: number | null; // null = timeout + stdout: string; + stderr: string; + durationMs: number; + timedOut: boolean; +} + +export type Verdict = "pass" | "fail" | "ambiguous"; + +export interface SideResult { + side: "before" | "after"; + steps: StepResult[]; + /** 该侧 matcher 的判定:matcher 全部命中 = ok */ + matcherOk: boolean; + matcherReasons: string[]; +} + +export interface ReproResult { + specId: string; + generatedAt: string; // ISO + before: SideResult; + after: SideResult; + /** 顶层 verdict:pass=before 期望成立 + after 期望成立 + 两侧期望确实不同; + * fail=有一侧期望未达;ambiguous=两侧期望"看起来都成立"或"都不成立" → 对比未严谨。 */ + verdict: Verdict; + verdictReason: string; +} From 6312d5f1db37b2843e4f9abffc346c2ea1027c1c Mon Sep 17 00:00:00 2001 From: liboze2026 Date: Fri, 15 May 2026 12:13:07 +0800 Subject: [PATCH 05/29] =?UTF-8?q?feat(verify):=20add=20repro-core=20?= =?UTF-8?q?=E2=80=94=20pure=20matcher=20eval=20+=20verdict=20+=20worktree?= =?UTF-8?q?=20cmd=20construction?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Implements plan #1 Task 2 from docs/plans/2026-05-15-suite-1-repro-framework.md. TDD discipline: 8 failing tests written first, then minimal implementation. All 8 tests pass under `npx tsx --test`. Includes: - evalMatcher: ResultMatcher field-by-field check (exitCode + 4 contains arrays) - mergeStepOutputs: collapse N steps → 1, exitCode = last non-zero (or last) - computeVerdict: pass / fail (ambiguous covered in Task 4 after refactor) - buildWorktreeAddArgs / buildWorktreeRemoveArgs: git worktree command shape - makeBaselineDir: tmpDir + specId + 6-hex rand → path Functional core only — no fs/child_process imports (verified by inspection). sideMatchesMerged is an explicit placeholder; Task 4 swaps in mergedBefore/ mergedAfter and removes it. Co-Authored-By: Claude Opus 4.7 (1M context) --- scripts/verify/repro-core.test.ts | 82 ++++++++++++++++++++++++++++ scripts/verify/repro-core.ts | 88 +++++++++++++++++++++++++++++++ 2 files changed, 170 insertions(+) create mode 100644 scripts/verify/repro-core.test.ts create mode 100644 scripts/verify/repro-core.ts diff --git a/scripts/verify/repro-core.test.ts b/scripts/verify/repro-core.test.ts new file mode 100644 index 0000000..01b72a0 --- /dev/null +++ b/scripts/verify/repro-core.test.ts @@ -0,0 +1,82 @@ +// scripts/verify/repro-core.test.ts +// +// Plan #1 Task 2 测试集 — 覆盖 repro-core 全部纯函数。 +// 用 node:test(node 22 内置),无需第三方测试库。 + +import { test } from "node:test"; +import assert from "node:assert/strict"; +import { + evalMatcher, + computeVerdict, + buildWorktreeAddArgs, + buildWorktreeRemoveArgs, + mergeStepOutputs, +} from "./repro-core.ts"; +import type { ReproStep, ResultMatcher, SideResult, StepResult } from "./repro-types.ts"; + +const okStep = (over: Partial = {}): StepResult => ({ + stepName: "demo", exitCode: 0, stdout: "", stderr: "", durationMs: 1, timedOut: false, ...over, +}); + +test("evalMatcher: 无字段的 matcher 默认通过", () => { + const r = evalMatcher(okStep(), {}); + assert.deepEqual(r, { ok: true, reasons: [] }); +}); + +test("evalMatcher: exitCode 不匹配 → fail", () => { + const r = evalMatcher(okStep({ exitCode: 1 }), { exitCode: 0 }); + assert.equal(r.ok, false); + assert.match(r.reasons[0]!, /exitCode/); +}); + +test("evalMatcher: stdoutContains 全部命中才通过", () => { + const s = okStep({ stdout: "决策: deny\n应改用: dayjs" }); + assert.equal(evalMatcher(s, { stdoutContains: ["deny", "dayjs"] }).ok, true); + assert.equal(evalMatcher(s, { stdoutContains: ["deny", "missing-token"] }).ok, false); +}); + +test("evalMatcher: stdoutNotContains 任一命中即 fail", () => { + const s = okStep({ stdout: "决策: 通过 (无规则命中)" }); + assert.equal(evalMatcher(s, { stdoutNotContains: ["deny"] }).ok, true); + assert.equal(evalMatcher(s, { stdoutNotContains: ["通过"] }).ok, false); +}); + +test("mergeStepOutputs: 把多个 step 拼成单个 StepResult,exitCode 取最近的非 0", () => { + const merged = mergeStepOutputs([ + okStep({ stdout: "a", exitCode: 0 }), + okStep({ stdout: "b", exitCode: 1 }), + okStep({ stdout: "c", exitCode: 0 }), + ]); + assert.equal(merged.exitCode, 1); // 最近的非 0 优先 + assert.equal(merged.stdout, "a\nb\nc"); +}); + +test("computeVerdict: before 期望成立 + after 期望成立 + 两侧期望不同 → pass", () => { + const before: SideResult = { side: "before", steps: [], matcherOk: true, matcherReasons: [] }; + const after: SideResult = { side: "after", steps: [], matcherOk: true, matcherReasons: [] }; + const r = computeVerdict(before, after, + { stdoutContains: ["通过"] }, { stdoutContains: ["deny"] }); + assert.equal(r.verdict, "pass"); +}); + +test("computeVerdict: 任一侧 matcherOk 为 false → fail", () => { + const before: SideResult = { side: "before", steps: [], matcherOk: false, matcherReasons: ["缺 通过"] }; + const after: SideResult = { side: "after", steps: [], matcherOk: true, matcherReasons: [] }; + const r = computeVerdict(before, after, {}, {}); + assert.equal(r.verdict, "fail"); +}); + +test("buildWorktreeAddArgs / buildWorktreeRemoveArgs: 命令拼装", () => { + assert.deepEqual( + buildWorktreeAddArgs("/tmp/repro-baseline-abc123", "deadbeef"), + ["worktree", "add", "--detach", "/tmp/repro-baseline-abc123", "deadbeef"], + ); + assert.deepEqual( + buildWorktreeRemoveArgs("/tmp/repro-baseline-abc123"), + ["worktree", "remove", "--force", "/tmp/repro-baseline-abc123"], + ); +}); + +// 让未直接使用的 import 不被 noUnusedLocals 报错(类型在测试 fixture 与对断言等价) +void ({} as unknown as ReproStep); +void ({} as unknown as ResultMatcher); diff --git a/scripts/verify/repro-core.ts b/scripts/verify/repro-core.ts new file mode 100644 index 0000000..b457352 --- /dev/null +++ b/scripts/verify/repro-core.ts @@ -0,0 +1,88 @@ +// scripts/verify/repro-core.ts +// +// Suite-1 functional core. 严禁 import node:fs / node:child_process / node:os —— IO/编排在 sibling shells。 +// 实现见 docs/plans/2026-05-15-suite-1-repro-framework.md Task 2。 +// +// 注:本期 computeVerdict 留了一个 sideMatchesMerged 占位返回 false(只覆盖 pass / fail); +// Task 4 重构 computeVerdict 接收 mergedBefore/mergedAfter,届时占位删除并补 ambiguous case。 + +import type { ResultMatcher, SideResult, StepResult, Verdict } from "./repro-types.ts"; + +export function evalMatcher(actual: StepResult, m: ResultMatcher): { ok: boolean; reasons: string[] } { + const reasons: string[] = []; + if (m.exitCode !== undefined && actual.exitCode !== m.exitCode) { + reasons.push(`exitCode 期望 ${m.exitCode},实际 ${actual.exitCode}`); + } + for (const needle of m.stdoutContains ?? []) { + if (!actual.stdout.includes(needle)) reasons.push(`stdout 缺关键字: ${JSON.stringify(needle)}`); + } + for (const needle of m.stdoutNotContains ?? []) { + if (actual.stdout.includes(needle)) reasons.push(`stdout 不应含: ${JSON.stringify(needle)}`); + } + for (const needle of m.stderrContains ?? []) { + if (!actual.stderr.includes(needle)) reasons.push(`stderr 缺关键字: ${JSON.stringify(needle)}`); + } + for (const needle of m.stderrNotContains ?? []) { + if (actual.stderr.includes(needle)) reasons.push(`stderr 不应含: ${JSON.stringify(needle)}`); + } + return { ok: reasons.length === 0, reasons }; +} + +/** 把多个 step 的 stdout/stderr 拼成单个 StepResult(用于喂给 matcher)。 + * exitCode 规则:任一非 0 → 取最近的非 0;否则取最后一个(0)。 + * 这样既能复现「中途某步失败」,又不会被无关 0 退出码淹没真问题。 */ +export function mergeStepOutputs(steps: StepResult[]): StepResult { + if (steps.length === 0) { + return { stepName: "", exitCode: 0, stdout: "", stderr: "", durationMs: 0, timedOut: false }; + } + const stdout = steps.map((s) => s.stdout).join("\n"); + const stderr = steps.map((s) => s.stderr).join("\n"); + const durationMs = steps.reduce((sum, s) => sum + s.durationMs, 0); + const timedOut = steps.some((s) => s.timedOut); + const lastNonZero = [...steps].reverse().find((s) => s.exitCode !== 0 && s.exitCode !== null); + const exitCode = lastNonZero?.exitCode ?? steps[steps.length - 1]!.exitCode; + return { stepName: "", exitCode, stdout, stderr, durationMs, timedOut }; +} + +export function computeVerdict( + before: SideResult, + after: SideResult, + beforeMatcher: ResultMatcher, + afterMatcher: ResultMatcher, +): { verdict: Verdict; verdictReason: string } { + if (!before.matcherOk || !after.matcherOk) { + const why: string[] = []; + if (!before.matcherOk) why.push(`before 期望未达: ${before.matcherReasons.join("; ")}`); + if (!after.matcherOk) why.push(`after 期望未达: ${after.matcherReasons.join("; ")}`); + return { verdict: "fail", verdictReason: why.join(" | ") }; + } + // 两侧 matcherOk 都为 true,但要进一步 sanity:对换 matcher 结果应该 fail, + // 否则说明两侧输出几乎一样 → 对比未严谨成立,标 ambiguous。 + // 本期占位:Task 4 重构后 computeVerdict 接收 mergedBefore/mergedAfter,届时真做互换 sanity。 + const beforeMergedAfter = sideMatchesMerged(before, afterMatcher); + const afterMergedBefore = sideMatchesMerged(after, beforeMatcher); + if (beforeMergedAfter && afterMergedBefore) { + return { verdict: "ambiguous", verdictReason: "before 也命中了 after 的期望,且 after 也命中了 before 的期望 —— 对比未严谨成立" }; + } + return { verdict: "pass", verdictReason: "before 与 after 期望均成立,且对比严谨" }; +} + +function sideMatchesMerged(side: SideResult, m: ResultMatcher): boolean { + // 占位:Task 4 中 runner 会把 mergedStep 通过另一个签名的 computeVerdict 传入。 + // 本函数为占位 —— 现在覆盖不到 ambiguous case。 + void side; void m; + return false; +} + +export function buildWorktreeAddArgs(path: string, ref: string): string[] { + return ["worktree", "add", "--detach", path, ref]; +} + +export function buildWorktreeRemoveArgs(path: string): string[] { + return ["worktree", "remove", "--force", path]; +} + +export function makeBaselineDir(tmpDir: string, specId: string, rand6: string): string { + // 路径段全部 ASCII;Windows 下 git worktree 对 unicode 路径偶有问题 + return `${tmpDir.replace(/[\\/]+$/, "")}/repro-baseline-${specId}-${rand6}`; +} From 0618e4008b06939d2f30949aa38942a0de5b667e Mon Sep 17 00:00:00 2001 From: liboze2026 Date: Fri, 15 May 2026 12:17:48 +0800 Subject: [PATCH 06/29] =?UTF-8?q?feat(verify):=20add=20worktree-shell=20?= =?UTF-8?q?=E2=80=94=20git=20worktree=20+=20node=5Fmodules=20junction=20fo?= =?UTF-8?q?r=20baseline=20prep?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Implements plan #1 Task 3 from docs/plans/2026-05-15-suite-1-repro-framework.md. - resolveBaselineRef:有就用,没就 git merge-base HEAD - prepareBaselineWorktree:在 os.tmpdir() 下 git worktree add --detach - tryJunctionNodeModules:current/baseline 的 package.json + lock hash 一致 时,把 current 的 node_modules 以 junction(Win)/symlink(其它)挂过去 省 install - cleanup:解开我们造的 node_modules junction → git worktree remove --force → rmSync 兜底 Smoke discovery: Windows 上 git worktree remove --force 直接 recurse junction 会报「Directory not empty」,因此 cleanup 必须先 unlink junction 再删。这是 plan 没覆盖的执行细节,在代码注释里记下。 冒烟连跑两次,baseline ref 解析正确、junction 成功、cleanup 不留残留。 Co-Authored-By: Claude Opus 4.7 (1M context) --- scripts/verify/worktree-shell.ts | 107 +++++++++++++++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 scripts/verify/worktree-shell.ts diff --git a/scripts/verify/worktree-shell.ts b/scripts/verify/worktree-shell.ts new file mode 100644 index 0000000..455123b --- /dev/null +++ b/scripts/verify/worktree-shell.ts @@ -0,0 +1,107 @@ +// scripts/verify/worktree-shell.ts +// +// Imperative shell:git worktree 增删 + node_modules junction(Windows) / symlink(其它)。 +// 实现见 docs/plans/2026-05-15-suite-1-repro-framework.md Task 3。 + +import { spawnSync } from "node:child_process"; +import { + mkdtempSync, symlinkSync, existsSync, statSync, readFileSync, + lstatSync, unlinkSync, rmSync, +} from "node:fs"; +import { tmpdir } from "node:os"; +import path from "node:path"; +import { createHash } from "node:crypto"; +import { buildWorktreeAddArgs, buildWorktreeRemoveArgs, makeBaselineDir } from "./repro-core.ts"; + +export interface BaselinePrep { + /** baseline worktree 的绝对路径 */ + dir: string; + /** baseline 检出的 ref(实际值,resolveBaselineRef 之后) */ + ref: string; + /** 调它清理 baseline worktree(只在调用方 finally 里跑) */ + cleanup: () => void; +} + +/** 解析 BaselineRef.ref:有就用、没有就 git merge-base HEAD (默认 main)。 */ +export function resolveBaselineRef(repoRoot: string, ref: string | undefined, baseBranch: string | undefined): string { + if (ref && ref.length > 0) return ref; + const branch = baseBranch ?? "main"; + const r = spawnSync("git", ["merge-base", "HEAD", branch], { cwd: repoRoot, encoding: "utf-8" }); + if (r.status !== 0) throw new Error(`git merge-base HEAD ${branch} 失败: ${r.stderr.trim()}`); + return r.stdout.trim(); +} + +/** 在 os.tmpdir() 下建一个 baseline worktree,返回路径与 cleanup。 */ +export function prepareBaselineWorktree(opts: { repoRoot: string; specId: string; ref: string }): BaselinePrep { + const rand6 = createHash("sha256").update(`${Date.now()}-${Math.random()}`).digest("hex").slice(0, 6); + const dir = makeBaselineDir(tmpdir(), opts.specId, rand6); + const r = spawnSync("git", buildWorktreeAddArgs(dir, opts.ref), { cwd: opts.repoRoot, encoding: "utf-8" }); + if (r.status !== 0) throw new Error(`git worktree add 失败: ${r.stderr.trim()}`); + const cleanup = (): void => { + // 关键(Windows):若 baseline 里有我们造的 node_modules junction, + // 先解开它再让 git worktree remove 跑 —— 否则 git 会 recurse 失败, + // 报「Directory not empty」(实测自 plan #1 Task 3 冒烟)。 + cleanupJunctionsIn(dir); + const rm = spawnSync("git", buildWorktreeRemoveArgs(dir), { cwd: opts.repoRoot, encoding: "utf-8" }); + if (rm.status !== 0) { + // git remove 失败兜底:rmSync recursive force 强删 dir + try { rmSync(dir, { recursive: true, force: true }); } catch { /* 已尽力 */ } + process.stderr.write(`[warn] git worktree remove 失败 (已 rmSync 兜底): ${rm.stderr.trim()}\n`); + } + }; + return { dir, ref: opts.ref, cleanup }; +} + +/** 删 baseline 内的所有 symlink/junction 入口(node_modules 与子目录里的也算), + * 避免 git worktree remove 在 Windows 上 recurse junction 报「Directory not empty」。 */ +function cleanupJunctionsIn(dir: string): void { + const candidates = [path.join(dir, "node_modules")]; + for (const p of candidates) { + if (!existsSync(p)) continue; + try { + const lst = lstatSync(p); + if (lst.isSymbolicLink()) { + unlinkSync(p); // 解开 symlink/junction + } else if (lst.isDirectory()) { + // 真目录(罕见 —— baseline 自己装过了),走 rmSync 强删。 + // 这里不动 —— 让 git worktree remove 自己处理。 + } + } catch (e) { + process.stderr.write(`[warn] cleanupJunctionsIn 删 ${p} 失败: ${(e as Error).message}\n`); + } + } +} + +/** 若两侧 package.json + pnpm-lock.yaml hash 一致,把 current 的 node_modules 以 junction 方式挂到 baseline,省去 install。 + * 返回 true 表示成功 junction;false 表示 hash 不一致或 junction 失败,调用方应跑 `pnpm install`。 */ +export function tryJunctionNodeModules(currentDir: string, baselineDir: string): boolean { + const currentLock = path.join(currentDir, "pnpm-lock.yaml"); + const baselineLock = path.join(baselineDir, "pnpm-lock.yaml"); + const currentPkg = path.join(currentDir, "package.json"); + const baselinePkg = path.join(baselineDir, "package.json"); + if (!existsSync(currentLock) || !existsSync(baselineLock)) return false; + const lockSame = sha(readFileSync(currentLock)) === sha(readFileSync(baselineLock)); + const pkgSame = sha(readFileSync(currentPkg)) === sha(readFileSync(baselinePkg)); + if (!(lockSame && pkgSame)) return false; + const currentNm = path.join(currentDir, "node_modules"); + const baselineNm = path.join(baselineDir, "node_modules"); + if (!existsSync(currentNm) || !statSync(currentNm).isDirectory()) return false; + if (existsSync(baselineNm)) return false; // 已存在 → 不覆盖 + try { + // Windows: junction;其它平台: dir symlink + const type = process.platform === "win32" ? "junction" : "dir"; + symlinkSync(currentNm, baselineNm, type); + return true; + } catch { + return false; + } +} + +function sha(buf: Buffer): string { + return createHash("sha256").update(buf).digest("hex"); +} + +/** 测试钩子:让 unit/smoke 能注入临时 mkdtemp 路径 */ +export function _internalMkdtemp(prefix: string): string { + return mkdtempSync(path.join(tmpdir(), prefix)); +} From f60bce8222a47e7bd35d1eb6ad8396a0912f560a Mon Sep 17 00:00:00 2001 From: liboze2026 Date: Fri, 15 May 2026 12:20:34 +0800 Subject: [PATCH 07/29] feat(verify): add repro-runner + refactor computeVerdict to ambiguous-aware signature MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Implements plan #1 Task 4 from docs/plans/2026-05-15-suite-1-repro-framework.md. Refactor: computeVerdict(before, after, beforeMatcher, afterMatcher) → computeVerdict(before, after, mergedBefore, mergedAfter, beforeMatcher, afterMatcher) The two extra StepResult params let it do the «互换 matcher sanity check» that distinguishes pass from ambiguous (both sides matcherOk, but if before also satisfies after's matcher and vice-versa, the comparison is not strict). sideMatchesMerged placeholder removed; now uses real evalMatcher() against merged outputs. Tests: 8 → 9 (added the ambiguous case). All 9 pass. repro-runner.ts (Imperative shell): - runStep: spawn one ReproStep, capture stdout/stderr/exitCode/timeout - runSide: iterate spec.steps on one side, mergeStepOutputs → evalMatcher - runRepro: drive baseline + current sides, compute verdict, return ReproResult Co-Authored-By: Claude Opus 4.7 (1M context) --- scripts/verify/repro-core.test.ts | 25 +++++++-- scripts/verify/repro-core.ts | 22 +++----- scripts/verify/repro-runner.ts | 92 +++++++++++++++++++++++++++++++ 3 files changed, 121 insertions(+), 18 deletions(-) create mode 100644 scripts/verify/repro-runner.ts diff --git a/scripts/verify/repro-core.test.ts b/scripts/verify/repro-core.test.ts index 01b72a0..418c73f 100644 --- a/scripts/verify/repro-core.test.ts +++ b/scripts/verify/repro-core.test.ts @@ -51,21 +51,38 @@ test("mergeStepOutputs: 把多个 step 拼成单个 StepResult,exitCode 取最 assert.equal(merged.stdout, "a\nb\nc"); }); -test("computeVerdict: before 期望成立 + after 期望成立 + 两侧期望不同 → pass", () => { +test("computeVerdict: before 期望成立 + after 期望成立 + 互换 matcher 区分两侧 → pass", () => { const before: SideResult = { side: "before", steps: [], matcherOk: true, matcherReasons: [] }; const after: SideResult = { side: "after", steps: [], matcherOk: true, matcherReasons: [] }; - const r = computeVerdict(before, after, - { stdoutContains: ["通过"] }, { stdoutContains: ["deny"] }); + const mergedBefore = okStep({ stdout: "通过 (无规则命中)" }); + const mergedAfter = okStep({ stdout: "决策: deny 应改用: dayjs" }); + const r = computeVerdict( + before, after, mergedBefore, mergedAfter, + { stdoutContains: ["通过"] }, { stdoutContains: ["deny"] }, + ); assert.equal(r.verdict, "pass"); }); test("computeVerdict: 任一侧 matcherOk 为 false → fail", () => { const before: SideResult = { side: "before", steps: [], matcherOk: false, matcherReasons: ["缺 通过"] }; const after: SideResult = { side: "after", steps: [], matcherOk: true, matcherReasons: [] }; - const r = computeVerdict(before, after, {}, {}); + const mergedBefore = okStep(); + const mergedAfter = okStep(); + const r = computeVerdict(before, after, mergedBefore, mergedAfter, {}, {}); assert.equal(r.verdict, "fail"); }); +test("computeVerdict: 互换 matcher 双方都命中 → ambiguous", () => { + const before: SideResult = { side: "before", steps: [], matcherOk: true, matcherReasons: [] }; + const after: SideResult = { side: "after", steps: [], matcherOk: true, matcherReasons: [] }; + const sameOutput = okStep({ stdout: "X" }); + const r = computeVerdict( + before, after, sameOutput, sameOutput, + { stdoutContains: ["X"] }, { stdoutContains: ["X"] }, + ); + assert.equal(r.verdict, "ambiguous"); +}); + test("buildWorktreeAddArgs / buildWorktreeRemoveArgs: 命令拼装", () => { assert.deepEqual( buildWorktreeAddArgs("/tmp/repro-baseline-abc123", "deadbeef"), diff --git a/scripts/verify/repro-core.ts b/scripts/verify/repro-core.ts index b457352..7a3aed3 100644 --- a/scripts/verify/repro-core.ts +++ b/scripts/verify/repro-core.ts @@ -47,6 +47,8 @@ export function mergeStepOutputs(steps: StepResult[]): StepResult { export function computeVerdict( before: SideResult, after: SideResult, + mergedBefore: StepResult, + mergedAfter: StepResult, beforeMatcher: ResultMatcher, afterMatcher: ResultMatcher, ): { verdict: Verdict; verdictReason: string } { @@ -56,22 +58,14 @@ export function computeVerdict( if (!after.matcherOk) why.push(`after 期望未达: ${after.matcherReasons.join("; ")}`); return { verdict: "fail", verdictReason: why.join(" | ") }; } - // 两侧 matcherOk 都为 true,但要进一步 sanity:对换 matcher 结果应该 fail, - // 否则说明两侧输出几乎一样 → 对比未严谨成立,标 ambiguous。 - // 本期占位:Task 4 重构后 computeVerdict 接收 mergedBefore/mergedAfter,届时真做互换 sanity。 - const beforeMergedAfter = sideMatchesMerged(before, afterMatcher); - const afterMergedBefore = sideMatchesMerged(after, beforeMatcher); - if (beforeMergedAfter && afterMergedBefore) { + // 互换 matcher sanity:两侧 matcherOk 都 true,但若 before 的输出也命中 after 的期望 + // 且 after 的输出也命中 before 的期望,说明两侧输出几乎一样 → 对比未严谨成立,标 ambiguous。 + const beforeUnderAfter = evalMatcher(mergedBefore, afterMatcher); + const afterUnderBefore = evalMatcher(mergedAfter, beforeMatcher); + if (beforeUnderAfter.ok && afterUnderBefore.ok) { return { verdict: "ambiguous", verdictReason: "before 也命中了 after 的期望,且 after 也命中了 before 的期望 —— 对比未严谨成立" }; } - return { verdict: "pass", verdictReason: "before 与 after 期望均成立,且对比严谨" }; -} - -function sideMatchesMerged(side: SideResult, m: ResultMatcher): boolean { - // 占位:Task 4 中 runner 会把 mergedStep 通过另一个签名的 computeVerdict 传入。 - // 本函数为占位 —— 现在覆盖不到 ambiguous case。 - void side; void m; - return false; + return { verdict: "pass", verdictReason: "before 与 after 期望均成立,且互换 matcher 后对比仍区分两侧" }; } export function buildWorktreeAddArgs(path: string, ref: string): string[] { diff --git a/scripts/verify/repro-runner.ts b/scripts/verify/repro-runner.ts new file mode 100644 index 0000000..a70c52f --- /dev/null +++ b/scripts/verify/repro-runner.ts @@ -0,0 +1,92 @@ +// scripts/verify/repro-runner.ts +// +// Imperative shell:在 baseline + current 两侧依次跑 ReproSpec.steps,合并结果走 evalMatcher, +// 最后调 computeVerdict 出 ReproResult。 +// 实现见 docs/plans/2026-05-15-suite-1-repro-framework.md Task 4。 + +import { spawn } from "node:child_process"; +import { evalMatcher, mergeStepOutputs, computeVerdict } from "./repro-core.ts"; +import type { + ReproSpec, ReproResult, ReproStep, ResultMatcher, SideResult, StepResult, +} from "./repro-types.ts"; + +interface RunSideOpts { + side: "before" | "after"; + cwd: string; // 该侧的 worktree 根目录 + baselineEnv: Record; // ReproSpec.baseline.env / current.env + steps: ReproStep[]; +} + +async function runStep(step: ReproStep, defaultCwd: string, sideEnv: Record): Promise { + const start = Date.now(); + const env = { ...process.env, ...sideEnv, ...(step.env ?? {}) }; + const timeoutMs = step.timeoutMs ?? 30_000; + return new Promise((resolve) => { + const child = spawn(step.command, step.args, { + cwd: step.cwd ?? defaultCwd, env, windowsHide: true, shell: false, + }); + let stdout = ""; let stderr = ""; let timedOut = false; + child.stdout.on("data", (b: Buffer) => { stdout += b.toString(); }); + child.stderr.on("data", (b: Buffer) => { stderr += b.toString(); }); + const timer = setTimeout(() => { timedOut = true; child.kill("SIGKILL"); }, timeoutMs); + child.on("close", (code: number | null) => { + clearTimeout(timer); + resolve({ + stepName: step.name, + exitCode: timedOut ? null : code, + stdout, stderr, + durationMs: Date.now() - start, + timedOut, + }); + }); + child.on("error", (e: Error) => { + clearTimeout(timer); + resolve({ + stepName: step.name, exitCode: null, stdout, stderr: stderr + `\n[spawn error] ${e.message}`, + durationMs: Date.now() - start, timedOut: false, + }); + }); + }); +} + +async function runSide(opts: RunSideOpts, matcher: ResultMatcher): Promise<{ side: SideResult; merged: StepResult }> { + const stepResults: StepResult[] = []; + for (const step of opts.steps) { + stepResults.push(await runStep(step, opts.cwd, opts.baselineEnv)); + } + const merged = mergeStepOutputs(stepResults); + const m = evalMatcher(merged, matcher); + const side: SideResult = { side: opts.side, steps: stepResults, matcherOk: m.ok, matcherReasons: m.reasons }; + return { side, merged }; +} + +export interface RunReproOpts { + spec: ReproSpec; + currentDir: string; // 一般 = process.cwd() + baselineDir: string; // 由 worktree-shell.prepareBaselineWorktree 提供 +} + +export async function runRepro(opts: RunReproOpts): Promise { + const { spec, currentDir, baselineDir } = opts; + const before = await runSide({ + side: "before", cwd: baselineDir, + baselineEnv: spec.baseline.env ?? {}, steps: spec.steps, + }, spec.expect.before); + const after = await runSide({ + side: "after", cwd: currentDir, + baselineEnv: spec.current.env ?? {}, steps: spec.steps, + }, spec.expect.after); + const v = computeVerdict( + before.side, after.side, + before.merged, after.merged, + spec.expect.before, spec.expect.after, + ); + return { + specId: spec.id, + generatedAt: new Date().toISOString(), + before: before.side, + after: after.side, + verdict: v.verdict, + verdictReason: v.verdictReason, + }; +} From fb05f2b30486b4b24bf297df7f42f088ef092fac Mon Sep 17 00:00:00 2001 From: liboze2026 Date: Fri, 15 May 2026 12:23:28 +0800 Subject: [PATCH 08/29] =?UTF-8?q?feat(verify):=20add=20repro-cli=20?= =?UTF-8?q?=E2=80=94=20orchestrates=20baseline=20prep=20+=20run=20+=20(stu?= =?UTF-8?q?b)=20recordGif?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Implements plan #1 Task 5 from docs/plans/2026-05-15-suite-1-repro-framework.md. Pipeline: parse argv → import spec via pathToFileURL → mkdir out → resolveBaselineRef + prepareBaselineWorktree + tryJunctionNodeModules → runRepro → write repro-result.json → cleanup baseline → optional recordGif (stub for now) → exit 0 (pass) / 1 (fail|ambiguous) / 2 (error) recordGif is a stub that throws — verification-tooling.md Phase 1 Task 3 needs implementing first. --no-gif bypasses entirely. Smoke discovery: Windows ESM dynamic import requires file:// URL, plain absolute path triggers ERR_UNSUPPORTED_ESM_URL_SCHEME. Fixed via pathToFileURL (added node:url import). Smoke verified with two-sides-identical empty spec: verdict=ambiguous, exit 1, verdictReason captures «对比未严谨成立». Co-Authored-By: Claude Opus 4.7 (1M context) --- scripts/verify/repro-cli.ts | 89 +++++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 scripts/verify/repro-cli.ts diff --git a/scripts/verify/repro-cli.ts b/scripts/verify/repro-cli.ts new file mode 100644 index 0000000..34e618c --- /dev/null +++ b/scripts/verify/repro-cli.ts @@ -0,0 +1,89 @@ +// scripts/verify/repro-cli.ts +// +// CLI 入口:read spec → 准备 baseline worktree → 跑 repro-runner → 可选 recordGif → 写 ReproResult JSON。 +// 实现见 docs/plans/2026-05-15-suite-1-repro-framework.md Task 5。 +// +// recordGif Phase 1 (verification-tooling.md) 还没实现,本期用 stub —— --no-gif 跑骨架, +// 真要录 GIF 时调 stub 会显式抛错告诉你去做 Phase 1。 + +import { writeFileSync, mkdirSync } from "node:fs"; +import path from "node:path"; +import { pathToFileURL } from "node:url"; +import { resolveBaselineRef, prepareBaselineWorktree, tryJunctionNodeModules } from "./worktree-shell.ts"; +import { runRepro } from "./repro-runner.ts"; +import type { ReproSpec, ReproResult } from "./repro-types.ts"; + +// === Phase 1 stub —— 真实实现来自 verification-tooling.md Phase 1 Task 3 === +interface RecordGifConfig { sceneScript: string; windowTitle: string; durationSec: number; outDir: string; } +function recordGif(_cfg: RecordGifConfig): { mp4: string; gif: string } { + throw new Error( + "recordGif 还未实现(verification-tooling.md Phase 1 Task 3 待做)。" + + "暂时跑 repro-cli 时加 --no-gif,跑骨架。", + ); +} + +interface CliOpts { specPath: string; outDir: string; noGif: boolean; } + +function parseArgv(argv: string[]): CliOpts { + const opts: CliOpts = { specPath: "", outDir: "", noGif: false }; + for (let i = 0; i < argv.length; i++) { + const a = argv[i]!; + if (a === "--no-gif") opts.noGif = true; + else if (a === "--out") opts.outDir = argv[++i]!; + else if (!opts.specPath) opts.specPath = a; + } + if (!opts.specPath) throw new Error("用法: tsx scripts/verify/repro-cli.ts [--out ] [--no-gif]"); + if (!opts.outDir) opts.outDir = path.join("docs/acceptance", path.basename(opts.specPath, path.extname(opts.specPath))); + return opts; +} + +async function main(): Promise { + const opts = parseArgv(process.argv.slice(2)); + const repoRoot = process.cwd(); + // 1. 动态加载 ReproSpec(Windows ESM 需 file:// URL) + const specUrl = pathToFileURL(path.resolve(opts.specPath)).href; + const mod = await import(specUrl); + const spec: ReproSpec = mod.default ?? mod.spec; + if (!spec || typeof spec.id !== "string") throw new Error(`${opts.specPath} 必须 export default 或 export const spec: ReproSpec`); + mkdirSync(opts.outDir, { recursive: true }); + + // 2. 准备 baseline worktree + const ref = resolveBaselineRef(repoRoot, spec.baseline.ref, spec.baseline.baseBranch); + const prep = prepareBaselineWorktree({ repoRoot, specId: spec.id, ref }); + console.log(`[baseline] ref=${ref} dir=${prep.dir}`); + const junctioned = tryJunctionNodeModules(repoRoot, prep.dir); + console.log(`[baseline] node_modules junction=${junctioned}${junctioned ? "" : " (若 spec 跑命令需 deps,请手动到 baseline 跑 pnpm install,或在 spec.steps 里加 install step)"}`); + + let result: ReproResult; + try { + // 3. 跑 suite-1 + result = await runRepro({ spec, currentDir: repoRoot, baselineDir: prep.dir }); + } finally { + prep.cleanup(); + } + const jsonPath = path.join(opts.outDir, "repro-result.json"); + writeFileSync(jsonPath, JSON.stringify(result, null, 2), "utf-8"); + console.log(`[result] verdict=${result.verdict} → ${jsonPath}`); + + // 4. 可选录 GIF + const winRecordable = process.platform === "win32"; + if (spec.demoScene && !opts.noGif && winRecordable) { + console.log(`[gif] recording demoScene → ${opts.outDir}`); + const { gif, mp4 } = recordGif({ + sceneScript: spec.demoScene.sceneScript, + windowTitle: spec.demoScene.windowTitle, + durationSec: spec.demoScene.durationSec, + outDir: opts.outDir, + }); + console.log(`[gif] mp4=${mp4} gif=${gif}`); + } else if (spec.demoScene && opts.noGif) { + console.log(`[gif] skipped (--no-gif)`); + } else if (spec.demoScene && !winRecordable) { + console.log(`[gif] skipped (platform ${process.platform} 不支持 gdigrab)`); + } + + // 5. 退出码:pass=0 fail/ambiguous=非 0 + process.exit(result.verdict === "pass" ? 0 : 1); +} + +main().catch((e: Error) => { console.error(e); process.exit(2); }); From cd4e7750fef9749f01399c556e2cff427656cb08 Mon Sep 17 00:00:00 2001 From: liboze2026 Date: Fri, 15 May 2026 12:27:28 +0800 Subject: [PATCH 09/29] feat(verify): add hook-moment-block ReproSpec sample + README MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Implements plan #1 Task 6 Step 1+3 from docs/plans/2026-05-15-suite-1-repro-framework.md. Translates the existing hand-crafted hook-moment-block acceptance report into an executable ReproSpec: - baseline.ref = HEAD (data-driven diff: same code; env switches USERPROFILE to point at a pre-staged knowledge home dir) - baseline.env / current.env switch $USERPROFILE → empty vs loaded stage - expect.before requires «通过 (无规则命中)»; expect.after requires the deny output with «应改用» + «dayjs» - scenario reuses momentDayjsScenario (Q1 brainstorm decision: ReproSpec embeds an existing Scenario when feature is matcher-class) - demoScene reuses the existing demo-scene.ps1 + 40s recording length README documents the 3 spec patterns, expect-writing guidance, run command, known prereqs. ⚠️ Step 2 (end-to-end "verdict=pass" verification) NOT yet performed — blocked by upstream env: `pnpm --filter teamagent build` fails because `zod` isn't resolved by esbuild in this workspace install (zod is dep'd by @teamagent/{types,adapters,core} but not surfaced to teamagent's bundler). This is a workspace-level fix, not a Task 6 fix. Once build is green AND $TA_DEMO_STAGE/{home-empty,home-loaded} are prepped per docs/acceptance/2026-05-14-hook-moment-block/recording/README.md, running: npx tsx scripts/verify/repro-cli.ts fixtures/repro-specs/hook-moment-block.ts --no-gif --out docs/acceptance/2026-05-15-hook-moment-block-repro should produce verdict=pass. Co-Authored-By: Claude Opus 4.7 (1M context) --- fixtures/repro-specs/README.md | 66 +++++++++++++++++++++++ fixtures/repro-specs/hook-moment-block.ts | 59 ++++++++++++++++++++ 2 files changed, 125 insertions(+) create mode 100644 fixtures/repro-specs/README.md create mode 100644 fixtures/repro-specs/hook-moment-block.ts diff --git a/fixtures/repro-specs/README.md b/fixtures/repro-specs/README.md new file mode 100644 index 0000000..51c009a --- /dev/null +++ b/fixtures/repro-specs/README.md @@ -0,0 +1,66 @@ +# 怎么写一份 ReproSpec + +ReproSpec 是套件 1(复现验证代码框架)的输入。一份 spec ≈「这个 feature 是否实现」的可执行定义。 +设计决议见 [`docs/plans/2026-05-15-suite-1-brainstorm.md`](../../docs/plans/2026-05-15-suite-1-brainstorm.md), +实现见 [`scripts/verify/repro-*.ts`](../../scripts/verify/)。 + +## 最小骨架 + +```ts +import type { ReproSpec } from "../../scripts/verify/repro-types.ts"; + +const spec: ReproSpec = { + id: "kebab-case-id", // 建议与 docs/acceptance/-/ 一致 + description: "一句话说明这个 feature", + baseline: { /* 怎么切到 before 态 */ }, + current: { /* 一般留空,默认 = 当前 worktree */ }, + steps: [{ + name: "step-name", + command: process.execPath, + args: ["..."], + }], + expect: { + before: { /* before 应满足的 ResultMatcher */ }, + after: { /* after 应满足的 ResultMatcher */ }, + }, +}; +export default spec; +``` + +## 三种典型 feature 的写法 + +### 1. 数据驱动差异(同代码、不同状态) +`baseline.ref = "HEAD"` + `baseline.env` / `current.env` 切运行时状态。样板: +[`hook-moment-block.ts`](./hook-moment-block.ts)。 + +### 2. 代码驱动差异(改了代码) +`baseline.ref` 留空 → CLI 自动算 `git merge-base HEAD main`。两侧分别在两个 worktree 跑同命令,期望产出不同。 + +### 3. 既改代码又依赖运行时状态 +两侧都用 `env` 字段,`baseline.ref` 保持「PR 起点」即可。 + +## 怎么写好 `expect` + +- **`stdoutContains` 写「后果」、不要写「过程」**。比如「拦截 moment」就写 `["deny", "应改用", "dayjs"]`(后果), + 不要写「调用 matcher」(过程)。 +- **同时给 `stdoutNotContains`**。两侧应**互斥**才算严谨对比;否则 verdict 会是 `ambiguous`。 +- **exitCode 谨慎用**。很多 CLI 即使逻辑失败也返回 0(把信息写在 stdout)。除非命令明确以 exitCode 区分两态,否则别钉 exitCode。 + +## 怎么 run + +```bash +# 跑 spec(默认录 GIF;CI 上加 --no-gif) +npx tsx scripts/verify/repro-cli.ts fixtures/repro-specs/.ts \ + --out docs/acceptance/- + +# 看 verdict +cat docs/acceptance/-/repro-result.json | jq .verdict +``` + +## 已知前置(spec 跑之前) + +- 若 spec 里的 step 跑的是 `packages/teamagent/dist/bin.js`(常见情况), + 需先 `pnpm --filter teamagent build`。 +- 若 spec 用 env 切 `USERPROFILE` 指向预备好的 stage 目录, + 目录得提前备好 —— 比如 `hook-moment-block` 的 stage 见 + [`docs/acceptance/2026-05-14-hook-moment-block/recording/README.md`](../../docs/acceptance/2026-05-14-hook-moment-block/recording/README.md)。 diff --git a/fixtures/repro-specs/hook-moment-block.ts b/fixtures/repro-specs/hook-moment-block.ts new file mode 100644 index 0000000..8d5312f --- /dev/null +++ b/fixtures/repro-specs/hook-moment-block.ts @@ -0,0 +1,59 @@ +// fixtures/repro-specs/hook-moment-block.ts +// +// 第一份真实 ReproSpec 样板 —— 把 docs/acceptance/2026-05-14-hook-moment-block/ +// 的人工验收改写为可自动跑的 spec。 +// +// 这个 feature 是「数据驱动差异」(同代码、不同知识库状态),所以 baseline.ref = HEAD, +// 两侧靠 env 切的 USERPROFILE 来切 teamagent 知识库 home。 +// +// 前置:$TA_DEMO_STAGE/home-empty 与 $TA_DEMO_STAGE/home-loaded 两个目录已按 +// docs/acceptance/2026-05-14-hook-moment-block/recording/README.md 备好。 + +import path from "node:path"; +import { momentDayjsScenario } from "../scenarios/moment-dayjs.ts"; +import type { ReproSpec } from "../../scripts/verify/repro-types.ts"; + +const stage = process.env["TA_DEMO_STAGE"] ?? "C:/Users/tianhaoxuan/ta-demo-stage"; + +const spec: ReproSpec = { + id: "hook-moment-block", + description: "PreToolUse hook 在「学到经验后」拦截 npm install moment,建议 dayjs", + baseline: { + ref: "HEAD", // 同代码;差异在 env 切的知识库 home + env: { USERPROFILE: `${stage}/home-empty`, HOME: `${stage}/home-empty` }, + }, + current: { + env: { USERPROFILE: `${stage}/home-loaded`, HOME: `${stage}/home-loaded` }, + }, + steps: [ + { + name: "demo-hook-npm-install-moment", + command: process.execPath, // node + args: [ + path.resolve("packages/teamagent/dist/bin.js"), + "demo", "hook", "Bash", `command=npm install moment`, + ], + timeoutMs: 30_000, + }, + ], + expect: { + before: { + exitCode: 0, + stdoutContains: ["通过 (无规则命中)"], + stdoutNotContains: ["deny", "应改用"], + }, + after: { + exitCode: 0, + stdoutContains: ["决策: deny", "应改用", "dayjs"], + stdoutNotContains: ["通过 (无规则命中)"], + }, + }, + scenario: momentDayjsScenario, // 复用现成 Scenario 元数据 + demoScene: { + sceneScript: path.resolve("docs/acceptance/2026-05-14-hook-moment-block/recording/demo-scene.ps1"), + windowTitle: "TADEMOREC", + durationSec: 40, + }, +}; + +export default spec; From 7d9831f5d7ba2980f13b50558e0831e534edd489 Mon Sep 17 00:00:00 2001 From: liboze2026 Date: Fri, 15 May 2026 13:45:37 +0800 Subject: [PATCH 10/29] =?UTF-8?q?chore(verify):=20add=20hook-moment-block?= =?UTF-8?q?=20end-to-end=20evidence=20=E2=80=94=20verdict=3Dpass?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 跑 fixtures/repro-specs/hook-moment-block.ts 的真实产出。 - before: 决策=通过(无规则命中) - after: 决策=deny + 建议 dayjs - verdict=pass, exit code=0 - 互换 matcher 后对比仍区分两侧 → 严谨 前置: - C:/Users/tianhaoxuan/ta-demo-stage/home-{empty,loaded} 已按 docs/acceptance/2026-05-14-hook-moment-block/recording/README.md 备好 - packages/teamagent/dist/ 在 worktree 内 junction 自主仓库已 build 的 dist(同源码) 完成 plan docs/plans/2026-05-15-suite-1-repro-framework.md Task 6 Step 2。 Co-Authored-By: Claude Opus 4.7 (1M context) --- .../repro-result.json | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 docs/acceptance/2026-05-15-hook-moment-block-repro/repro-result.json diff --git a/docs/acceptance/2026-05-15-hook-moment-block-repro/repro-result.json b/docs/acceptance/2026-05-15-hook-moment-block-repro/repro-result.json new file mode 100644 index 0000000..7929774 --- /dev/null +++ b/docs/acceptance/2026-05-15-hook-moment-block-repro/repro-result.json @@ -0,0 +1,36 @@ +{ + "specId": "hook-moment-block", + "generatedAt": "2026-05-15T05:44:55.750Z", + "before": { + "side": "before", + "steps": [ + { + "stepName": "demo-hook-npm-install-moment", + "exitCode": 0, + "stdout": "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n🟢 TeamAgent · 模拟 PreToolUse 结果\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n▸ 工具: Bash\n▸ 输入: {\"command\":\"npm install moment\"}\n▸ 决策: 通过 (无规则命中)\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n", + "stderr": "(node:26780) ExperimentalWarning: SQLite is an experimental feature and might change at any time\n(Use `node --trace-warnings ...` to show where the warning was created)\n", + "durationMs": 409, + "timedOut": false + } + ], + "matcherOk": true, + "matcherReasons": [] + }, + "after": { + "side": "after", + "steps": [ + { + "stepName": "demo-hook-npm-install-moment", + "exitCode": 0, + "stdout": "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n🚫 TeamAgent · 模拟 PreToolUse 结果\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n▸ 工具: Bash\n▸ 输入: {\"command\":\"npm install moment\"}\n▸ 决策: deny\n▸ 拦截原因:\n 🚫 TeamAgent 拦截 (置信 0.85)\n 应改用: 使用 dayjs(API 兼容、~2KB)或 date-fns(tree-shakable)替代 moment\n 原因: moment.js 自 2020 起官方进入 maintenance mode,不再添加新功能;体积约 290KB(gzipped 71KB),mutable API 易引发隐性 bug。dayjs/date-fns 在新项目中应作为默认选择。\n (规则 id: seed-pack-universal-moment)\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n", + "stderr": "(node:22668) ExperimentalWarning: SQLite is an experimental feature and might change at any time\n(Use `node --trace-warnings ...` to show where the warning was created)\n", + "durationMs": 449, + "timedOut": false + } + ], + "matcherOk": true, + "matcherReasons": [] + }, + "verdict": "pass", + "verdictReason": "before 与 after 期望均成立,且互换 matcher 后对比仍区分两侧" +} \ No newline at end of file From 301ec5b2a3fbd56198718004c688390d338e5e3b Mon Sep 17 00:00:00 2001 From: liboze2026 Date: Fri, 15 May 2026 13:47:30 +0800 Subject: [PATCH 11/29] =?UTF-8?q?feat(verify):=20add=20gif-core=20?= =?UTF-8?q?=E2=80=94=20ffmpeg=20arg=20construction=20for=20GIF=20recording?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Phase 1 Task 1 of verification-tooling.md. - buildGdigrabArgs:固定区域 gdigrab 录屏参数 - computeCaptureRect:从窗口矩形算捕获矩形(四边各内移 inset) - buildGifPaletteArgs:两遍调色板命令(palettegen + paletteuse) Pure functions only —— 严禁 import fs/child_process。 3/3 单测通过(node:test via tsx)。 Co-Authored-By: Claude Opus 4.7 (1M context) --- scripts/verify/gif-core.test.ts | 42 +++++++++++++++++++ scripts/verify/gif-core.ts | 73 +++++++++++++++++++++++++++++++++ 2 files changed, 115 insertions(+) create mode 100644 scripts/verify/gif-core.test.ts create mode 100644 scripts/verify/gif-core.ts diff --git a/scripts/verify/gif-core.test.ts b/scripts/verify/gif-core.test.ts new file mode 100644 index 0000000..6a54662 --- /dev/null +++ b/scripts/verify/gif-core.test.ts @@ -0,0 +1,42 @@ +// scripts/verify/gif-core.test.ts +// +// 纯逻辑测试:ffmpeg 命令构造、捕获矩形计算、调色板两遍命令对。 +// 见 docs/plans/2026-05-14-verification-tooling.md Phase 1 Task 1。 + +import { test } from "node:test"; +import assert from "node:assert/strict"; +import { + buildGdigrabArgs, + buildGifPaletteArgs, + computeCaptureRect, +} from "./gif-core.ts"; + +test("buildGdigrabArgs 生成固定区域录屏参数", () => { + const args = buildGdigrabArgs({ x: 8, y: 0, w: 1096, h: 730, durationSec: 40, outPath: "C:/t/demo.mp4" }); + assert.deepEqual(args, [ + "-hide_banner", "-loglevel", "warning", "-stats", + "-f", "gdigrab", "-framerate", "12", + "-offset_x", "8", "-offset_y", "0", "-video_size", "1096x730", + "-i", "desktop", "-t", "40", "-pix_fmt", "yuv420p", "-y", "C:/t/demo.mp4", + ]); +}); + +test("computeCaptureRect 把窗口矩形内移 inset 像素避开隐形边框", () => { + // 窗口贴屏幕左上角 (0,0,1120,760) → 捕获区内移 8px、整体缩 16px 宽 16px 高 + assert.deepEqual( + computeCaptureRect({ winX: 0, winY: 0, winW: 1120, winH: 760, inset: 8 }), + { x: 8, y: 0, w: 1104, h: 744 }, + ); +}); + +test("buildGifPaletteArgs 生成两遍调色板命令对", () => { + const { palettegen, paletteuse } = buildGifPaletteArgs({ + mp4: "C:/t/demo.mp4", gif: "C:/t/demo.gif", palette: "C:/t/pal.png", fps: 11, width: 900, + }); + // palettegen 必须有 stats_mode=diff(适合屏幕录像稳定 palette) + assert.ok(palettegen.some((a) => a.includes("palettegen=stats_mode=diff"))); + // ffmpeg 8 写单图 palette 需 -update 1 + assert.ok(palettegen.includes("-update")); + // paletteuse 必须用 bayer dither(高对比度文本表现更稳) + assert.ok(paletteuse.some((a) => a.includes("paletteuse=dither=bayer:bayer_scale=3"))); +}); diff --git a/scripts/verify/gif-core.ts b/scripts/verify/gif-core.ts new file mode 100644 index 0000000..276358c --- /dev/null +++ b/scripts/verify/gif-core.ts @@ -0,0 +1,73 @@ +// scripts/verify/gif-core.ts +// +// 纯逻辑:ffmpeg 命令构造、录制配置校验、捕获矩形计算。无 IO,所有 IO 由 record-gif.ts 承担。 +// 见 docs/plans/2026-05-14-verification-tooling.md Phase 1 Task 1。 + +export interface GdigrabOpts { + x: number; + y: number; + w: number; + h: number; + durationSec: number; + outPath: string; +} + +/** ffmpeg gdigrab 录屏参数:固定区域、12fps、yuv420p(兼容性最好)。 */ +export function buildGdigrabArgs(o: GdigrabOpts): string[] { + return [ + "-hide_banner", "-loglevel", "warning", "-stats", + "-f", "gdigrab", "-framerate", "12", + "-offset_x", String(o.x), "-offset_y", String(o.y), "-video_size", `${o.w}x${o.h}`, + "-i", "desktop", "-t", String(o.durationSec), "-pix_fmt", "yuv420p", "-y", o.outPath, + ]; +} + +export interface WinRect { + winX: number; + winY: number; + winW: number; + winH: number; + /** 捕获区相对窗口的内移像素(避开 Win11 隐形边框)。 */ + inset: number; +} + +/** 从窗口矩形算实际录屏的捕获矩形:四边各内移 inset 像素。 */ +export function computeCaptureRect(r: WinRect): { x: number; y: number; w: number; h: number } { + return { + x: r.winX + r.inset, + y: r.winY, + w: r.winW - r.inset * 2, + h: r.winH - r.inset * 2, + }; +} + +export interface PaletteOpts { + mp4: string; + gif: string; + palette: string; + fps: number; + width: number; +} + +/** 两遍调色板:第一遍 palettegen 生成最优调色板,第二遍 paletteuse 用它转 GIF。 + * 屏幕录像里高对比度文本用 bayer dither + bayer_scale=3 最稳; + * stats_mode=diff 让 palette 偏向变化区域(=终端文字)而非静态背景。 */ +export function buildGifPaletteArgs(o: PaletteOpts): { palettegen: string[]; paletteuse: string[] } { + const scale = `fps=${o.fps},scale=${o.width}:-1:flags=lanczos`; + return { + palettegen: [ + "-hide_banner", "-loglevel", "error", + "-i", o.mp4, + "-vf", `${scale},palettegen=stats_mode=diff`, + "-update", "1", + "-y", o.palette, + ], + paletteuse: [ + "-hide_banner", "-loglevel", "error", + "-i", o.mp4, + "-i", o.palette, + "-lavfi", `${scale}[x];[x][1:v]paletteuse=dither=bayer:bayer_scale=3`, + "-y", o.gif, + ], + }; +} From 31d2f42ac2b99e0cbaa6a5e5292789ffa8454771 Mon Sep 17 00:00:00 2001 From: liboze2026 Date: Fri, 15 May 2026 13:48:44 +0800 Subject: [PATCH 12/29] =?UTF-8?q?feat(verify):=20add=20win-record.ps1=20?= =?UTF-8?q?=E2=80=94=20parameterized=20Win32=20+=20gdigrab=20recorder?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Phase 1 Task 2 of verification-tooling.md. 源自 docs/acceptance/2026-05-14-hook-moment-block/recording/record.ps1 (参照原型), 把写死的 $stage / TADEMOREC / 窗口坐标 / 时长全部参数化: -SceneScript / -WindowTitle / -OutMp4 / -WinX/Y/W/H / -CapX/Y/W/H / -DurationSec 实现要点: - EnumWindows + GetWindowText(Unicode) 按精确标题找窗口 - SetWindowPos 贴固定矩形 + HWND_TOPMOST - PostMessage(WM_CLOSE) 按句柄精确关窗(绝不 Stop-Process Windows Terminal) - ffmpeg gdigrab 录 mp4(12fps, yuv420p) - 按 DurationSec 均匀抽 9 张检查帧 单独冒烟跳过(会真录 40s 屏);Phase 1 Task 3 record-gif.ts 完成后, 用 hook-moment-block (--gif on) 端到端跑一次作为真实验收。 Co-Authored-By: Claude Opus 4.7 (1M context) --- scripts/verify/win-record.ps1 | 126 ++++++++++++++++++++++++++++++++++ 1 file changed, 126 insertions(+) create mode 100644 scripts/verify/win-record.ps1 diff --git a/scripts/verify/win-record.ps1 b/scripts/verify/win-record.ps1 new file mode 100644 index 0000000..620c7c9 --- /dev/null +++ b/scripts/verify/win-record.ps1 @@ -0,0 +1,126 @@ +# scripts/verify/win-record.ps1 +# +# 参数化的 Win32 录制脚本 —— 启动 -SceneScript(在新的 Windows Terminal 窗口里), +# 用 EnumWindows 按精确 -WindowTitle 找到窗口句柄,贴到固定矩形并置顶, +# ffmpeg gdigrab 按固定捕获区真实录屏,产出 mp4 + 9 张检查帧。 +# +# 窗口生命周期:录制前后都用 PostMessage(WM_CLOSE) 按句柄精确关闭目标窗口。 +# 绝不 Stop-Process Windows Terminal 进程 —— 它同时托管着用户的其它终端窗口。 +# +# 源自 docs/acceptance/2026-05-14-hook-moment-block/recording/record.ps1 (参照原型), +# 由 docs/plans/2026-05-14-verification-tooling.md Phase 1 Task 2 参数化。 +param( + [Parameter(Mandatory=$true)][string]$SceneScript, # 在被录窗口里跑的 .ps1(需自行设置窗口标题为 $WindowTitle) + [Parameter(Mandatory=$true)][string]$WindowTitle, # 场景脚本设置的窗口标题,用于 EnumWindows 精确匹配 + [Parameter(Mandatory=$true)][string]$OutMp4, # mp4 输出绝对路径(父目录会自动建) + [int]$WinX = 0, [int]$WinY = 0, [int]$WinW = 1120, [int]$WinH = 760, + [int]$CapX = 8, [int]$CapY = 0, [int]$CapW = 1104, [int]$CapH = 744, + [int]$DurationSec = 40 +) +$ErrorActionPreference = 'Stop' + +# 父目录就绪 +$outDir = Split-Path -Parent $OutMp4 +if (-not (Test-Path $outDir)) { New-Item -ItemType Directory -Force -Path $outDir | Out-Null } + +Add-Type @" +using System; +using System.Text; +using System.Collections.Generic; +using System.Runtime.InteropServices; +public class Win { + [DllImport("user32.dll")] static extern bool EnumWindows(EnumProc cb, IntPtr l); + [DllImport("user32.dll")] static extern bool IsWindowVisible(IntPtr h); + [DllImport("user32.dll", CharSet=CharSet.Unicode)] static extern int GetWindowText(IntPtr h, StringBuilder s, int n); + [DllImport("user32.dll")] static extern IntPtr PostMessage(IntPtr h, uint msg, IntPtr w, IntPtr l); + delegate bool EnumProc(IntPtr h, IntPtr l); + [DllImport("user32.dll")] public static extern bool SetWindowPos(IntPtr h, IntPtr hAfter, int x, int y, int cx, int cy, uint flags); + [DllImport("user32.dll")] public static extern bool SetForegroundWindow(IntPtr h); + [DllImport("user32.dll")] public static extern bool ShowWindow(IntPtr h, int n); + static List AllByTitle(string title) { + var found = new List(); + EnumWindows((h,l)=>{ + if(!IsWindowVisible(h)) return true; + var sb=new StringBuilder(300); GetWindowText(h,sb,300); + if(sb.ToString()==title) found.Add(h); + return true; + }, IntPtr.Zero); + return found; + } + public static IntPtr FindByTitle(string title) { + var a = AllByTitle(title); + return a.Count > 0 ? a[0] : IntPtr.Zero; + } + public static int CountByTitle(string title) { return AllByTitle(title).Count; } + // 只对标题精确等于 title 的窗口发 WM_CLOSE(0x10);WT 会关掉那一个窗口,不动其它窗口。 + public static int CloseAllByTitle(string title) { + var a = AllByTitle(title); + foreach (var h in a) PostMessage(h, 0x0010, IntPtr.Zero, IntPtr.Zero); + return a.Count; + } +} +"@ + +# 0. 清掉之前留下的僵尸窗口 +$closed = [Win]::CloseAllByTitle($WindowTitle) +if ($closed -gt 0) { Write-Output "pre-clean: 关闭了 $closed 个残留 $WindowTitle 窗口"; Start-Sleep -Seconds 2 } + +# 1. 启动被录的场景窗口(会开一个新的 Windows Terminal 窗口) +$p = Start-Process powershell -ArgumentList '-NoProfile','-File',$SceneScript -PassThru +Write-Output "scene PID = $($p.Id)" + +# 2. 按精确标题轮询找窗口,最多 12 秒 +$h = [IntPtr]::Zero +$found_i = 0 +for ($i = 0; $i -lt 60; $i++) { + Start-Sleep -Milliseconds 200 + $h = [Win]::FindByTitle($WindowTitle) + if ($h -ne [IntPtr]::Zero) { $found_i = $i; break } +} +if ($h -eq [IntPtr]::Zero) { + [Win]::CloseAllByTitle($WindowTitle) | Out-Null + throw "找不到 $WindowTitle 窗口(12s 内未出现)" +} +$cnt = [Win]::CountByTitle($WindowTitle) +Write-Output "window handle = $h (found after ~$([math]::Round($found_i*0.2,1))s, $WindowTitle 窗口总数 = $cnt)" +if ($cnt -ne 1) { + [Win]::CloseAllByTitle($WindowTitle) | Out-Null + throw "$WindowTitle 窗口数异常($cnt),已全部关闭,请重跑" +} + +# 3. 贴到固定矩形 + 置顶 + 前台 (HWND_TOPMOST=-1, SWP_SHOWWINDOW=0x40, SW_SHOW=5) +[Win]::ShowWindow($h, 5) | Out-Null +[Win]::SetWindowPos($h, [IntPtr](-1), $WinX, $WinY, $WinW, $WinH, 0x40) | Out-Null +[Win]::SetForegroundWindow($h) | Out-Null +Start-Sleep -Milliseconds 700 + +# 4. ffmpeg 按固定区域真实录屏(场景窗口长 hold,录够时长即可) +& ffmpeg -hide_banner -loglevel warning -stats ` + -f gdigrab -framerate 12 -offset_x $CapX -offset_y $CapY -video_size "${CapW}x${CapH}" -i desktop ` + -t $DurationSec -pix_fmt yuv420p -y $OutMp4 +$ff_exit = $LASTEXITCODE +Write-Output "ffmpeg(record) exit = $ff_exit" + +# 5. 关掉场景窗口(按句柄精确 WM_CLOSE,不碰 WT 进程) +Start-Sleep -Seconds 1 +$closed2 = [Win]::CloseAllByTitle($WindowTitle) +Write-Output "post-clean: 关闭了 $closed2 个 $WindowTitle 窗口" + +if ($ff_exit -ne 0 -or -not (Test-Path $OutMp4)) { + throw "录制失败(ffmpeg exit=$ff_exit, mp4 exists=$(Test-Path $OutMp4))" +} + +# 6. 抽 9 张均匀分布的检查帧(供人工确定裁剪窗口或截取 still) +$frameDir = $outDir +$stride = [math]::Max(1, [math]::Floor($DurationSec / 10)) +$times = @() +for ($t = $stride; $t -lt $DurationSec; $t += $stride) { + if ($times.Count -ge 9) { break } + $times += $t +} +foreach ($t in $times) { + & ffmpeg -hide_banner -loglevel error -ss $t -i $OutMp4 -frames:v 1 -update 1 -y (Join-Path $frameDir "frame-$t.png") | Out-Null +} + +Write-Output "=== record done ===" +Get-Item $OutMp4 | Select-Object Name,Length From dfdd9d16064fa5dc09d674a6a48d74a179a4fc4a Mon Sep 17 00:00:00 2001 From: liboze2026 Date: Fri, 15 May 2026 13:49:56 +0800 Subject: [PATCH 13/29] feat(verify): add record-gif.ts + wire repro-cli to real recordGif MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Phase 1 Task 3 of verification-tooling.md (the final piece of suite-1 GIF capability). scripts/verify/record-gif.ts: - RecordConfig → { mp4, gif } - 调 win-record.ps1 录 mp4(gdigrab 真实录屏) - 调两遍 ffmpeg(palettegen + paletteuse)把 mp4 转 GIF - 复用 gif-core.ts 的 buildGifPaletteArgs(纯逻辑) - 平台守卫:非 win32 直接抛错(gdigrab 仅 Windows) scripts/verify/repro-cli.ts: - 删掉 Phase 1 stub(原本调 recordGif 会显式抛错) - import 真实 recordGif —— 跑带 demoScene 的 spec 时自动录 GIF - --no-gif 仍能跳过(CI 默认走这条) 至此 Plan #1 + verification-tooling Phase 1 完成,套件 1 复现框架真正具备 「跑出结构化 verdict + 真实屏幕 GIF」能力。 Co-Authored-By: Claude Opus 4.7 (1M context) --- scripts/verify/record-gif.ts | 77 ++++++++++++++++++++++++++++++++++++ scripts/verify/repro-cli.ts | 13 +----- 2 files changed, 79 insertions(+), 11 deletions(-) create mode 100644 scripts/verify/record-gif.ts diff --git a/scripts/verify/record-gif.ts b/scripts/verify/record-gif.ts new file mode 100644 index 0000000..6f88fd9 --- /dev/null +++ b/scripts/verify/record-gif.ts @@ -0,0 +1,77 @@ +// scripts/verify/record-gif.ts +// +// Imperative Shell:接收 RecordConfig,调 PowerShell(win-record.ps1)真实录屏出 mp4, +// 再调两遍 ffmpeg(palettegen + paletteuse)把 mp4 转成 GIF。 +// 见 docs/plans/2026-05-14-verification-tooling.md Phase 1 Task 3。 +// +// 纯逻辑(ffmpeg args / palette args)在 gif-core.ts,本文件只做 IO + 编排。 + +import { spawnSync } from "node:child_process"; +import { existsSync, mkdirSync } from "node:fs"; +import path from "node:path"; +import { fileURLToPath } from "node:url"; +import { buildGifPaletteArgs } from "./gif-core.ts"; + +export interface RecordConfig { + /** 被录窗口里跑的 .ps1(需自行设置窗口标题为 windowTitle) */ + sceneScript: string; + windowTitle: string; + /** mp4 / gif / palette / 检查帧的输出目录 */ + outDir: string; + durationSec: number; + /** GIF 帧率,默认 11 */ + gifFps?: number; + /** GIF 宽度(px),按比例缩高;默认 900 */ + gifWidth?: number; +} + +/** 录 mp4 → 调色板 → GIF。返回两个产物的绝对路径。 */ +export function recordGif(cfg: RecordConfig): { mp4: string; gif: string } { + if (process.platform !== "win32") { + throw new Error(`recordGif 当前仅支持 Windows(gdigrab),实际平台 ${process.platform}`); + } + if (!existsSync(cfg.sceneScript)) throw new Error(`sceneScript 不存在: ${cfg.sceneScript}`); + mkdirSync(cfg.outDir, { recursive: true }); + + const mp4 = path.resolve(cfg.outDir, "demo.mp4"); + const gif = path.resolve(cfg.outDir, "demo.gif"); + const palette = path.resolve(cfg.outDir, "palette.png"); + + // 1. 录 mp4(PowerShell 窗口管理 + gdigrab) + const scriptDir = path.dirname(fileURLToPath(import.meta.url)); + const psScript = path.join(scriptDir, "win-record.ps1"); + if (!existsSync(psScript)) throw new Error(`win-record.ps1 不存在: ${psScript}`); + + const ps = spawnSync( + "powershell", + [ + "-NoProfile", "-ExecutionPolicy", "Bypass", "-File", psScript, + "-SceneScript", cfg.sceneScript, + "-WindowTitle", cfg.windowTitle, + "-OutMp4", mp4, + "-DurationSec", String(cfg.durationSec), + ], + { stdio: "inherit", windowsHide: true }, + ); + if (ps.status !== 0 || !existsSync(mp4)) { + throw new Error(`录制失败(powershell exit=${ps.status},mp4 exists=${existsSync(mp4)})`); + } + + // 2. mp4 → palette → GIF(两遍调色板) + const { palettegen, paletteuse } = buildGifPaletteArgs({ + mp4, gif, palette, + fps: cfg.gifFps ?? 11, + width: cfg.gifWidth ?? 900, + }); + + const gen = spawnSync("ffmpeg", palettegen, { stdio: "inherit", windowsHide: true }); + if (gen.status !== 0 || !existsSync(palette)) { + throw new Error(`palettegen 失败(exit=${gen.status})`); + } + const use = spawnSync("ffmpeg", paletteuse, { stdio: "inherit", windowsHide: true }); + if (use.status !== 0 || !existsSync(gif)) { + throw new Error(`paletteuse 失败(exit=${use.status})`); + } + + return { mp4, gif }; +} diff --git a/scripts/verify/repro-cli.ts b/scripts/verify/repro-cli.ts index 34e618c..90d6094 100644 --- a/scripts/verify/repro-cli.ts +++ b/scripts/verify/repro-cli.ts @@ -3,25 +3,16 @@ // CLI 入口:read spec → 准备 baseline worktree → 跑 repro-runner → 可选 recordGif → 写 ReproResult JSON。 // 实现见 docs/plans/2026-05-15-suite-1-repro-framework.md Task 5。 // -// recordGif Phase 1 (verification-tooling.md) 还没实现,本期用 stub —— --no-gif 跑骨架, -// 真要录 GIF 时调 stub 会显式抛错告诉你去做 Phase 1。 +// recordGif 由 verification-tooling.md Phase 1 提供;CI 上跑加 --no-gif 跳过录屏。 import { writeFileSync, mkdirSync } from "node:fs"; import path from "node:path"; import { pathToFileURL } from "node:url"; import { resolveBaselineRef, prepareBaselineWorktree, tryJunctionNodeModules } from "./worktree-shell.ts"; import { runRepro } from "./repro-runner.ts"; +import { recordGif } from "./record-gif.ts"; import type { ReproSpec, ReproResult } from "./repro-types.ts"; -// === Phase 1 stub —— 真实实现来自 verification-tooling.md Phase 1 Task 3 === -interface RecordGifConfig { sceneScript: string; windowTitle: string; durationSec: number; outDir: string; } -function recordGif(_cfg: RecordGifConfig): { mp4: string; gif: string } { - throw new Error( - "recordGif 还未实现(verification-tooling.md Phase 1 Task 3 待做)。" + - "暂时跑 repro-cli 时加 --no-gif,跑骨架。", - ); -} - interface CliOpts { specPath: string; outDir: string; noGif: boolean; } function parseArgv(argv: string[]): CliOpts { From a365a14d398e832dda0a8f85105724a497debf86 Mon Sep 17 00:00:00 2001 From: liboze2026 Date: Fri, 15 May 2026 13:57:11 +0800 Subject: [PATCH 14/29] =?UTF-8?q?feat(verify):=20add=20report-core=20?= =?UTF-8?q?=E2=80=94=20ReportManifest=20to=20SPEC-compliant=20HTML?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Phase 2 Task 4 of verification-tooling.md. scripts/verify/report-template.ts: - INLINE_CSS: 从人工样板 report.html 的 style 块原样提炼,加 warn/fail 徽章配色 - htmlShell(title, body): 包外壳;自动 esc(title) - esc(): 五字符全转 entities (XSS 防御) scripts/verify/report-core.ts (纯逻辑,无 IO): - ReportManifest 类型,覆盖 SPEC.md 八条硬性要求 - validateManifest: 校验必填字段 / verdict.status 合法 / coverage.notCovered 非空 - renderReport: 9 section 渲染 (header/verdict/whatItIs/gif/before-after/ criteria/evidence/repro/coverage/footer),所有用户字段 esc 转义 - 自包含: 输出绝不含 http(s) URL 9/9 单测通过,含 XSS 转义、warn/fail 徽章切换、缺字段抛错。 Co-Authored-By: Claude Opus 4.7 (1M context) --- scripts/verify/report-core.test.ts | 116 ++++++++++++++++++++ scripts/verify/report-core.ts | 170 +++++++++++++++++++++++++++++ scripts/verify/report-template.ts | 133 ++++++++++++++++++++++ 3 files changed, 419 insertions(+) create mode 100644 scripts/verify/report-core.test.ts create mode 100644 scripts/verify/report-core.ts create mode 100644 scripts/verify/report-template.ts diff --git a/scripts/verify/report-core.test.ts b/scripts/verify/report-core.test.ts new file mode 100644 index 0000000..34f9859 --- /dev/null +++ b/scripts/verify/report-core.test.ts @@ -0,0 +1,116 @@ +// scripts/verify/report-core.test.ts +// +// 见 docs/plans/2026-05-14-verification-tooling.md Phase 2 Task 4。 + +import { test } from "node:test"; +import assert from "node:assert/strict"; +import { renderReport, validateManifest } from "./report-core.ts"; +import type { ReportManifest } from "./report-core.ts"; + +const sample: ReportManifest = { + feature: "PreToolUse hook 拦截重复犯的错", + date: "2026-05-14", + verdict: { status: "pass", line: "已实现,并通过验证" }, + whatItIs: "把团队踩过的坑记下来,等 AI 又要踩同一个坑时拦住它。", + gifPath: "demo.gif", + before: { + tag: "之前 · 知识库是空的", + still: "assets/still-before.png", + text: "命令被放行。", + evidence: "▸ 决策: 通过 (无规则命中)", + }, + after: { + tag: "之后 · 经验已进知识库", + still: "assets/still-after.png", + text: "同样的命令被拦下。", + evidence: "▸ 决策: deny\n▸ 应改用: dayjs", + }, + criteria: [{ ok: true, title: "同输入单变量结果相反", body: "两次命令一样,唯一变量是知识库;结果一放一拦。" }], + reproSteps: ["跑空知识库 demo hook", "init 加载 pack", "再跑一遍"], + coverage: { covered: ["真实知识库 + 真实匹配引擎"], notCovered: ["编辑器内端到端"] }, + footer: { env: "Windows 11 · Node 22", recordMethod: "ffmpeg gdigrab 真实录屏" }, +}; + +test("validateManifest 接受合法 manifest", () => { + assert.deepEqual(validateManifest(sample), { ok: true, errors: [] }); +}); + +test("validateManifest 拒绝缺 before/after 的 manifest", () => { + const bad = { ...sample, after: undefined } as unknown as ReportManifest; + const r = validateManifest(bad); + assert.equal(r.ok, false); + assert.ok(r.errors.some((e) => e.includes("after"))); +}); + +test("validateManifest 拒绝空 criteria 与空 reproSteps", () => { + const bad1 = { ...sample, criteria: [] }; + const bad2 = { ...sample, reproSteps: [] }; + assert.equal(validateManifest(bad1).ok, false); + assert.equal(validateManifest(bad2).ok, false); +}); + +test("validateManifest 拒绝缺 verdict.status / 非法 status", () => { + const bad = { ...sample, verdict: { status: "ok" as never, line: "fake" } }; + const r = validateManifest(bad); + assert.equal(r.ok, false); + assert.ok(r.errors.some((e) => e.includes("verdict.status"))); +}); + +test("renderReport 产出自包含 HTML,含结论横幅与 before/after 资产", () => { + const html = renderReport(sample); + assert.ok(html.startsWith(""), "应以 doctype 开头"); + assert.ok(html.includes("已实现,并通过验证"), "应含 verdict.line"); + assert.ok(html.includes("src=\"demo.gif\""), "应含 GIF img"); + assert.ok(html.includes("src=\"assets/still-before.png\""), "应含 before still"); + assert.ok(html.includes("src=\"assets/still-after.png\""), "应含 after still"); + assert.ok(!html.includes("http://"), "自包含 —— 不应含外部 URL"); + assert.ok(!html.includes("https://"), "自包含 —— 不应含外部 URL"); + // SPEC 推荐的 9 个非 footer section 标题(每个章节标题包含的关键字),全部出现 + for (const keyword of [ + "这个功能是什么", "真实屏幕录像", "之前 vs 之后", "凭什么说", + "原始证据", "怎么复现", "严谨说明", + ]) { + assert.ok(html.includes(keyword), `应含 section 关键字:${keyword}`); + } +}); + +test("renderReport 渲染 warn/fail status 时切换徽章颜色与图标", () => { + const warn = renderReport({ ...sample, verdict: { status: "warn", line: "部分实现" } }); + assert.ok(warn.includes('class="verdict warn"')); + assert.ok(warn.includes("⚠️")); + + const fail = renderReport({ ...sample, verdict: { status: "fail", line: "未实现" } }); + assert.ok(fail.includes('class="verdict fail"')); + assert.ok(fail.includes("❌")); +}); + +test("renderReport 转义用户字段(防 XSS / 防 HTML 注入)", () => { + const sneaky = { + ...sample, + whatItIs: "", + before: { ...sample.before, text: "注入" }, + }; + const html = renderReport(sneaky); + assert.ok(!html.includes("

64zR2fv3>+Z0?fV)5~5uU32k2 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�DDcG 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 ic_F;CTeoou@3kCuKivI(UlEb6` literal 0 HcmV?d00001 diff --git a/docs/acceptance/2026-05-14-hook-moment-block/recording/README.md b/docs/acceptance/2026-05-14-hook-moment-block/recording/README.md new file mode 100644 index 0000000..59aa273 --- /dev/null +++ b/docs/acceptance/2026-05-14-hook-moment-block/recording/README.md @@ -0,0 +1,42 @@ +# 本次验收 GIF 的录制脚本 + +这两个脚本产出了 `../demo.gif` —— TeamAgent 拦截 `npm install moment` 的真实屏幕录像。 +保留在这里是为了**可复现**:任何人都能照下面重跑一遍。 + +## 文件 + +- `demo-scene.ps1` —— 在被录的终端窗口里跑的「场景脚本」。它做两件事: + 1. **之前**:把 `USERPROFILE` 指向一个空知识库的临时 HOME,跑 `teamagent demo hook` → 放行; + 2. **之后**:把 `USERPROFILE` 指向一个已加载 universal pack 的临时 HOME,跑同样的命令 → 拦截。 + 两段之间 `Clear-Host`,保证每屏内容完整可见。 +- `record.ps1` —— 录制编排。启动场景窗口 → 用 `EnumWindows` 按精确标题 `TADEMOREC` + 找到窗口 → 贴到固定矩形并置顶 → `ffmpeg gdigrab` 按固定区域**真实录屏** → 产出 mp4 + 检查帧。 + 录制前后都用 `PostMessage(WM_CLOSE)` 按窗口句柄精确关闭 `TADEMOREC` 窗口 + (**绝不** `Stop-Process` Windows Terminal 进程 —— 它同时托管着其它终端窗口)。 + +## 复现前置 + +- Windows + ffmpeg(在 PATH 上)。 +- 两个临时 HOME:`home-empty`(空)与 `home-loaded`(其 `.teamagent/global.db` + 由 `teamagent init` 加载了 `packages/teamagent/seed/packs/universal.jsonl`)。 + 脚本里这两个路径写死在 `$stage` 下,按需改。 +- 预编译 CLI:`packages/teamagent/dist/bin.js`(`demo-scene.ps1` 直接 `node` 跑它, + 避免 tsx 现编译带来的不可预测延迟)。 + +## 跑 + +```powershell +# 这两个 .ps1 含中文,PowerShell 5.1 需要 UTF-8 BOM 才能正确读取 +& record.ps1 +``` + +`record.ps1` 产出 `out/demo.mp4` + `out/frame-*.png`。GIF 由 mp4 两遍调色板转出 +(见 `record.ps1` 注释或验收报告的「怎么复现」一节)。 + +## 已知约束 + +- 录制窗口是一个新的 Windows Terminal 窗口(本机 WT 是默认终端)。WT 的 emoji / CJK + 渲染完整,这是选它的原因。 +- 捕获区域比窗口略小、整体内移 8px —— 避开 Win11 窗口的隐形边框,免得框进背后的内容。 +- 这是**人工产出的首个样板**。后续验证框架(套件1 + 套件2 生成器)会把这套流程脚本化、 + 参数化;本目录的脚本是那个框架的参照原型。 diff --git a/docs/acceptance/2026-05-14-hook-moment-block/recording/demo-scene.ps1 b/docs/acceptance/2026-05-14-hook-moment-block/recording/demo-scene.ps1 new file mode 100644 index 0000000..f7aa544 --- /dev/null +++ b/docs/acceptance/2026-05-14-hook-moment-block/recording/demo-scene.ps1 @@ -0,0 +1,69 @@ +# demo-scene.ps1 — TeamAgent 核心能力验收演示(在被录屏的终端窗口里跑) +# before/after 用同一条命令,唯一差别是知识库里有没有那条「学到的经验」。 +# 两个场景之间 Clear-Host,保证每屏内容都完整可见。 +$ErrorActionPreference = 'SilentlyContinue' + +$ui = $Host.UI.RawUI +$ui.WindowTitle = 'TADEMOREC' +try { + $ui.BufferSize = New-Object Management.Automation.Host.Size(100, 600) + $ui.WindowSize = New-Object Management.Automation.Host.Size(100, 30) +} catch {} + +$stage = 'C:\Users\tianhaoxuan\ta-demo-stage' +$env:NODE_NO_WARNINGS = '1' +Set-Location 'C:\bzli\Matrix' +function teamagent { & node 'C:\bzli\Matrix\packages\teamagent\dist\bin.js' @args } +function Type-Cmd($prompt, $cmd) { + Write-Host -NoNewline $prompt -ForegroundColor DarkCyan + foreach ($ch in $cmd.ToCharArray()) { + Write-Host -NoNewline $ch -ForegroundColor White + Start-Sleep -Milliseconds 36 + } + Write-Host '' + Start-Sleep -Milliseconds 500 +} + +# ── 开场 ── +Clear-Host +Write-Host '' +Write-Host ' =================================================================' -ForegroundColor Cyan +Write-Host ' TeamAgent 验收演示' -ForegroundColor Cyan +Write-Host ' 核心能力:把 AI 重复犯的错,在执行前就拦下来' -ForegroundColor Cyan +Write-Host ' =================================================================' -ForegroundColor Cyan +Write-Host '' +Write-Host ' 场景:AI 准备执行 ' -NoNewline -ForegroundColor Gray +Write-Host 'npm install moment' -NoNewline -ForegroundColor Yellow +Write-Host ' (moment 是已过时的库)' -ForegroundColor Gray +Write-Host '' +Start-Sleep -Seconds 5 + +# ── 场景一:之前(知识库为空)── +Write-Host ' -----------------------------------------------------------------' -ForegroundColor DarkGray +Write-Host ' [ 之前 ] 知识库是空的 —— TeamAgent 还没学到这条经验' -ForegroundColor Yellow +Write-Host '' +$env:USERPROFILE = "$stage\home-empty"; $env:HOME = $env:USERPROFILE +Type-Cmd ' PS C:\my-project> ' 'teamagent demo hook Bash command="npm install moment"' +teamagent demo hook Bash command="npm install moment" +Write-Host '' +Write-Host ' >> 没有相关经验,放行。AI 就这样把过时的库装进了项目。' -ForegroundColor DarkYellow +Start-Sleep -Seconds 6 + +# ── 清屏,进入场景二 ── +Clear-Host +Write-Host '' +Write-Host ' 同样的命令再来一次 —— 但这次,有人已经纠正过 TeamAgent 一回。' -ForegroundColor Gray +Write-Host '' + +# ── 场景二:之后(规则已进知识库)── +Write-Host ' -----------------------------------------------------------------' -ForegroundColor DarkGray +Write-Host ' [ 之后 ] 有人纠正过一次 —— TeamAgent 把它提炼成规则,存进了知识库' -ForegroundColor Green +Write-Host '' +$env:USERPROFILE = "$stage\home-loaded"; $env:HOME = $env:USERPROFILE +Type-Cmd ' PS C:\my-project> ' 'teamagent demo hook Bash command="npm install moment"' +teamagent demo hook Bash command="npm install moment" +Write-Host '' +Write-Host ' >> 同样的命令,这次被拦下了,并告诉 AI 应该改用 dayjs。错误没能发生。' -ForegroundColor Green +Write-Host '' +# 录制结束后由 record.ps1 精确结束并清理本窗口;这里长 hold 保证窗口不自行关闭。 +Start-Sleep -Seconds 600 diff --git a/docs/acceptance/2026-05-14-hook-moment-block/recording/record.ps1 b/docs/acceptance/2026-05-14-hook-moment-block/recording/record.ps1 new file mode 100644 index 0000000..57fe18b --- /dev/null +++ b/docs/acceptance/2026-05-14-hook-moment-block/recording/record.ps1 @@ -0,0 +1,99 @@ +# record.ps1 — 启动 demo-scene.ps1(在新的 Windows Terminal 窗口里), +# 用 EnumWindows 按精确标题 TADEMOREC 找到窗口句柄,贴到屏幕左上角并置顶, +# ffmpeg gdigrab 按固定区域真实录屏。只录 demo 窗口那块,不录整桌面。 +# +# 窗口生命周期:录制前后都用 PostMessage(WM_CLOSE) 按句柄精确关闭 TADEMOREC 窗口。 +# 绝不 Stop-Process WT 进程 —— 它同时托管着用户的其它终端窗口。 +$ErrorActionPreference = 'Stop' +$stage = 'C:\Users\tianhaoxuan\ta-demo-stage' +$out = "$stage\out" +New-Item -ItemType Directory -Force $out | Out-Null + +Add-Type @" +using System; +using System.Text; +using System.Collections.Generic; +using System.Runtime.InteropServices; +public class Win { + [DllImport("user32.dll")] static extern bool EnumWindows(EnumProc cb, IntPtr l); + [DllImport("user32.dll")] static extern bool IsWindowVisible(IntPtr h); + [DllImport("user32.dll", CharSet=CharSet.Unicode)] static extern int GetWindowText(IntPtr h, StringBuilder s, int n); + [DllImport("user32.dll")] static extern IntPtr PostMessage(IntPtr h, uint msg, IntPtr w, IntPtr l); + delegate bool EnumProc(IntPtr h, IntPtr l); + [DllImport("user32.dll")] public static extern bool SetWindowPos(IntPtr h, IntPtr hAfter, int x, int y, int cx, int cy, uint flags); + [DllImport("user32.dll")] public static extern bool SetForegroundWindow(IntPtr h); + [DllImport("user32.dll")] public static extern bool ShowWindow(IntPtr h, int n); + static List AllByTitle(string title) { + var found = new List(); + EnumWindows((h,l)=>{ + if(!IsWindowVisible(h)) return true; + var sb=new StringBuilder(300); GetWindowText(h,sb,300); + if(sb.ToString()==title) found.Add(h); + return true; + }, IntPtr.Zero); + return found; + } + public static IntPtr FindByTitle(string title) { + var a = AllByTitle(title); + return a.Count > 0 ? a[0] : IntPtr.Zero; + } + public static int CountByTitle(string title) { return AllByTitle(title).Count; } + // 只对标题精确等于 title 的窗口发 WM_CLOSE(0x10);WT 会关掉那一个窗口,不动其它窗口。 + public static int CloseAllByTitle(string title) { + var a = AllByTitle(title); + foreach (var h in a) PostMessage(h, 0x0010, IntPtr.Zero, IntPtr.Zero); + return a.Count; + } +} +"@ + +# 屏幕 1536x864,可用高 816 —— 窗口 760 高,留出任务栏 +$winX = 0; $winY = 0; $winW = 1120; $winH = 760 +# 捕获区域整体内移 8px(跳过窗口左侧隐形边框) +$capX = 8; $capY = 0; $capW = 1096; $capH = 730 + +# 0. 清掉之前留下的僵尸 TADEMOREC 窗口 +$closed = [Win]::CloseAllByTitle('TADEMOREC') +if ($closed -gt 0) { Write-Output "pre-clean: 关闭了 $closed 个残留 TADEMOREC 窗口"; Start-Sleep -Seconds 2 } + +# 1. 启动被录的场景窗口(会开一个新的 Windows Terminal 窗口) +$p = Start-Process powershell -ArgumentList '-NoProfile','-File',"$stage\demo-scene.ps1" -PassThru +Write-Output "scene PID = $($p.Id)" + +# 2. 按精确标题 TADEMOREC 轮询找窗口,最多 12 秒 +$h = [IntPtr]::Zero +for ($i = 0; $i -lt 60; $i++) { + Start-Sleep -Milliseconds 200 + $h = [Win]::FindByTitle('TADEMOREC') + if ($h -ne [IntPtr]::Zero) { break } +} +if ($h -eq [IntPtr]::Zero) { [Win]::CloseAllByTitle('TADEMOREC') | Out-Null; throw "找不到 TADEMOREC 窗口" } +$cnt = [Win]::CountByTitle('TADEMOREC') +Write-Output "window handle = $h (found after ~$([math]::Round($i*0.2,1))s, TADEMOREC 窗口总数 = $cnt)" +if ($cnt -ne 1) { [Win]::CloseAllByTitle('TADEMOREC') | Out-Null; throw "TADEMOREC 窗口数异常($cnt),已全部关闭,请重跑" } + +# 3. 贴到固定矩形 + 置顶 + 前台 (HWND_TOPMOST=-1, SWP_SHOWWINDOW=0x40, SW_SHOW=5) +[Win]::ShowWindow($h, 5) | Out-Null +[Win]::SetWindowPos($h, [IntPtr](-1), $winX, $winY, $winW, $winH, 0x40) | Out-Null +[Win]::SetForegroundWindow($h) | Out-Null +Start-Sleep -Milliseconds 700 + +# 4. ffmpeg 按固定区域真实录屏(场景窗口长 hold,录够时长即可) +$mp4 = "$out\demo.mp4" +& ffmpeg -hide_banner -loglevel warning -stats ` + -f gdigrab -framerate 12 -offset_x $capX -offset_y $capY -video_size "${capW}x${capH}" -i desktop ` + -t 40 -pix_fmt yuv420p -y $mp4 +Write-Output "ffmpeg(record) exit = $LASTEXITCODE" + +# 5. 关掉场景窗口(按句柄精确 WM_CLOSE,不碰 WT 进程) +Start-Sleep -Seconds 1 +$closed2 = [Win]::CloseAllByTitle('TADEMOREC') +Write-Output "post-clean: 关闭了 $closed2 个 TADEMOREC 窗口" + +# 6. 抽密集的检查帧,供人工确定裁剪窗口 +foreach ($t in 4,8,12,16,20,24,28,32,36) { + & ffmpeg -hide_banner -loglevel error -ss $t -i $mp4 -frames:v 1 -update 1 -y "$out\frame-$t.png" +} + +Write-Output "=== record done ===" +Get-Item $mp4 | Select-Object Name,Length diff --git a/docs/acceptance/2026-05-14-hook-moment-block/report.html b/docs/acceptance/2026-05-14-hook-moment-block/report.html new file mode 100644 index 0000000..1040ef1 --- /dev/null +++ b/docs/acceptance/2026-05-14-hook-moment-block/report.html @@ -0,0 +1,293 @@ + + + + + +验收报告 · TeamAgent 拦截重复犯的错 + + + + +