merge: 摘除误入库临时脚本
This commit is contained in:
commit
e621abf9e5
2 files changed
-157
No files matched your search
@@ -1,142 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# design/ 存量清理批:worktree 内执行(删件+引用改写+§11新规+台账413)
|
||||
import pathlib, re, subprocess, sys
|
||||
|
||||
ROOT = pathlib.Path('.') # worktree 根
|
||||
|
||||
# ---------- 1) 删除清单 ----------
|
||||
DEV = [
|
||||
'design/dev/architecture/gdd-concept-map.html',
|
||||
'design/dev/architecture/gdd-concept-map.architecture.json','design/dev/architecture/gdd-concept-map.visual-check.html',
|
||||
'design/dev/architecture/gdd-concept-map.visual-check.json','design/dev/architecture/gdd-concept-map.visual-check.1440x900.dark.png',
|
||||
'design/dev/architecture/gdd-concept-map.visual-check.1440x900.light.png','design/dev/architecture/gdd-concept-map.visual-check.2048x1320.dark.png',
|
||||
'design/dev/architecture/gdd-concept-map.visual-check.2048x1320.light.png',
|
||||
'design/dev/architecture/board-node2d-migration-plan.md','design/dev/architecture/code-architecture-review-2026-09-13.md',
|
||||
'design/dev/architecture/requirements-traceability.md',
|
||||
]
|
||||
QA = ['design/qa/'+n for n in [
|
||||
'iter15-2-curio-exit-report-2026-10-05.md','iter15-3-mibao-exit-report-2026-10-05.md','iter16-ui-exit-report-2026-10-06.md',
|
||||
'iter16-ui-human-gate-checklist-2026-10-06.md','iter17-career-exit-report-2026-10-06.md','iter17-datadrive-exit-report-2026-10-06.md',
|
||||
'iter17-enemy-L3-改前锚丢失-2026-10-07.md','iter17-enemy-exit-report-2026-10-07.md','iter17-enemy-人闸材料-2026-10-07.md',
|
||||
'iter17-pause-exit-report-2026-10-06.md','iter17-pause-human-gate-checklist-2026-10-06.md','iter18-career-exit-report-2026-10-07.md',
|
||||
'iter18-forge-exit-report-2026-10-07.md','iter18-mixenc-exit-report-2026-10-07.md','iter18-seed-exit-report-2026-10-07.md',
|
||||
'iter18-treefix-exit-report-2026-10-07.md','m1-exit-gate-checklist-2026-09-28.md','m2-exit-gate-checklist-2026-09-28.md',
|
||||
'm3-iter10-clear-rate-readings-2026-10-01.md','m3-iter5-lever-scan-2026-09-28.md','m3-iter5-rework-readings-2026-09-29.md',
|
||||
'm3-iter9-9a-checklist-2026-09-30.md','m3-iter9-exit-checklist-2026-10-03.md','m3-iter9-t17-fullflow-checklist-2026-10-01.md',
|
||||
'm3-iter9-t18-07-audit-2026-09-30.md','m3-iter9-t8-rulings-2026-09-30.md','m4-iter11-exit-package-2026-10-03.md',
|
||||
'm4iter12-t10-batch2-exit-2026-10-04.md','m4iter12-t7-batch1-readings-2026-10-04.md','m4iter14-gvar-exit-report-2026-10-04.md',
|
||||
'm4iter14-gvar-t7b-readings-2026-10-05.md','m4iter14-mineq-exit-report-2026-10-05.md','m4iter14-skillpool-exit-report-2026-10-05.md',
|
||||
'numfix-newruler-readings-2026-10-01.md','t17-defer-probe-evidence-20261002.md','t19-real-playtest-readings-2026-10-02.md',
|
||||
'test-perf-report-2026-10-02.md','ui-struct-probe-exit-report-2026-10-05.md','中间产物死亡清单-2026-10-02.md',
|
||||
]]
|
||||
RES = ['design/research/'+n for n in [
|
||||
'MC成本调研与规制方案-2026-10-03.md','UI重设计原型v2落码-差异对照与改动计划-2026-10-04.md','alpha-acceptance-battle-screen.md',
|
||||
'board-tile-vocab-plan-a-2026-09-26.md','game-architecture-2026-10-05.html','game-architecture-2026-10-05.json',
|
||||
'prototype-report-minesweeper-battle-concept.md','roguelike-difficulty-benchmark-2026-10-01.md',
|
||||
'任务书-CI预接线批-2026-10-07.md','任务书-UI设计对齐批-2026-10-05.md','任务书-内容数据驱动扩展批-2026-10-06.md',
|
||||
'任务书-初始展开收窄批-2026-10-04.md','任务书-奇物词族对齐与渠道分离批-2026-10-05.md','任务书-提灯载体道具批-2026-10-07.md',
|
||||
'任务书-敌人表行集多行批-2026-10-05.md','任务书-旧界面呈现断言回补批-2026-10-07.md','任务书-暂停层只读入口批-2026-10-05.md',
|
||||
'任务书-武器锻造系统设计提案批-2026-10-07.md','任务书-混编遭遇首批投放批-2026-10-07.md','任务书-生涯界面实装批-2026-10-07.md',
|
||||
'任务书-生涯界面设计立项-2026-10-05.md','任务书-种子随机化与调试浮窗升级批-2026-10-07.md','任务书-秘宝代码词族对齐批-2026-10-05.md',
|
||||
'任务书-自动化验收补齐批-2026-10-07.md','双层BD体系-整合定稿-2026-10-03.md',
|
||||
'审查-地图战斗资源-2026-10-06.md','审查-奇物-2026-10-06.md','审查-总览-2026-10-06.md','审查-秘宝-2026-10-06.md',
|
||||
'调研-roguelike道具玩法变异-2026-10-07.md','调研-全局作用域变异设计空间-2026-10-04.md','调研-扫雷类游戏玩法变异-2026-10-07.md',
|
||||
'综合-道具变异可选项菜单-2026-10-07.md','研究-内容数据驱动扩展架构-2026-10-06.md',
|
||||
]]
|
||||
ALL = DEV + QA + RES
|
||||
for f in ALL:
|
||||
if (ROOT/f).exists():
|
||||
subprocess.run(['git', 'rm', '-q', f], check=True)
|
||||
print('git rm ok:', len(ALL))
|
||||
|
||||
# ---------- 2) 引用改写(basename 级替换,行内零行数变化) ----------
|
||||
REWRITES = [
|
||||
('iter16-ui-exit-report-2026-10-06.md', '迭代16出口报告(已退役,git 历史可查)'),
|
||||
('iter17-pause-human-gate-checklist-2026-10-06.md', '迭代17暂停层人闸清单(已退役,git 历史可查)'),
|
||||
('m3-iter5-lever-scan-2026-09-28.md', '迭代5杠杆扫描报告(已退役,git 历史可查)'),
|
||||
('UI重设计原型v2落码-差异对照与改动计划-2026-10-04.md', 'UI落码差异对照(已退役,git 历史可查)'),
|
||||
('任务书-UI设计对齐批-2026-10-05.md', 'UI对齐批任务书(已退役,git 历史可查)'),
|
||||
('m3-iter10-clear-rate-readings-2026-10-01.md', '迭代10通关率读数(已退役,git 历史可查)'),
|
||||
('t19-real-playtest-readings-2026-10-02.md', 'T19真人试玩读数(已退役,git 历史可查)'),
|
||||
('任务书-自动化验收补齐批-2026-10-07.md', '自动化验收补齐批任务书(已退役,git 历史可查)'),
|
||||
('roguelike-difficulty-benchmark-2026-10-01.md', '难度外部基准调研(已退役,git 历史可查)'),
|
||||
('调研-全局作用域变异设计空间-2026-10-04.md', '全局作用域设计空间调研(已退役,git 历史可查)'),
|
||||
('任务书-提灯载体道具批-2026-10-07.md', '提灯载体批任务书(已退役,git 历史可查)'),
|
||||
('board-tile-vocab-plan-a-2026-09-26.md', '高墙瓦片词表(已落码 board_world.gd 查表,文件已退役)'),
|
||||
('test-perf-report-2026-10-02.md', '性能实测报告(已退役,git 历史可查)'),
|
||||
('code-architecture-review-2026-09-13.md', '代码架构评审(已退役,git 历史可查)'),
|
||||
('requirements-traceability.md', '需求追溯矩阵(已退役,git 历史可查)'),
|
||||
('board-node2d-migration-plan.md', 'Node2D 迁移计划(已执行完毕,文件已退役)'),
|
||||
]
|
||||
TARGETS = [
|
||||
'design/gdd/06-待办清单.md','design/gdd/07-体验验证清单.md',
|
||||
'design/gdd/systems/冒险循环/难度曲线与Boss.md','design/gdd/systems/排雷循环/地形变异.md',
|
||||
'design/gdd/systems/表现与支撑/HUD框架.md','design/gdd/systems/冒险循环/关卡节点地图.md','design/gdd/ux/battle.md',
|
||||
'design/registry/entities.yaml','design/art/art-bible.md','design/art/remote-gen-prompts.md',
|
||||
'design/dev/architecture/adr-0005-save-contract-and-schema-versioning.md',
|
||||
'design/dev/architecture/adr-0006-board-node2d-rendering.md','game/README.md',
|
||||
]
|
||||
total = 0
|
||||
for tf in TARGETS:
|
||||
p = ROOT/tf; d = p.read_bytes(); orig = d; n = 0
|
||||
for basename, repl in REWRITES:
|
||||
pat = re.compile(rb'[\w./\-\\]*' + re.escape(basename.encode()))
|
||||
hits = pat.findall(d)
|
||||
if hits:
|
||||
d = pat.sub(repl.encode(), d); n += len(hits)
|
||||
if d != orig:
|
||||
p.write_bytes(d); total += n
|
||||
print('rewrote %d ref(s) in %s' % (n, tf))
|
||||
print('ref rewrite total:', total)
|
||||
|
||||
# ---------- 3) doc-conventions §11 新规 + v13 ----------
|
||||
p = ROOT/'design/dev/doc-conventions.md'; d = p.read_bytes()
|
||||
if b'| v13 |' not in d:
|
||||
anchor = '| 暂存地非档案库 | `design/research/` 与 `design/qa/` 是中间文档的暂存地,不是永久档案库;入此两处的文件默认按本节规则到期即死 |'.encode()
|
||||
assert d.count(anchor) == 1
|
||||
i = d.find(anchor); j = d.find(b'\n', i)
|
||||
nl = b'\r\n' if d[j-1:j] == b'\r' else b'\n'
|
||||
row = ('| 证据只留最新(2026-10-09 用户立规) | 测试证据(出口报告/读数/截图/对比图)只保留最新一次迭代或最新一轮同类审计的版本——旧证据无参考作用,测试按状态不按历史;新证据落位后同批删除上一份;等人工检查的清单不受此限,过人闸后按本行退役 |').encode() + nl
|
||||
d = d[:j+1] + row + d[j+1:]
|
||||
anchor2 = '| v12 | 2026-10-09'.encode()
|
||||
i2 = d.find(anchor2); assert i2 != -1
|
||||
j2 = d.find(b'\n', i2)
|
||||
nl2 = b'\r\n' if d[j2-1:j2] == b'\r' else b'\n'
|
||||
j2 += 1
|
||||
row2 = ('| v13 | 2026-10-09 | §11 新增「证据只留最新」行(2026-10-09 用户立规——qa 存量清理批随批落文):测试证据只保留最新迭代/最新一轮审计版本,新证据落位即删上一份;待人清单过闸后同规退役 |').encode() + nl2
|
||||
d = d[:j2] + row2 + d[j2:]
|
||||
p.write_bytes(d)
|
||||
print('doc-conventions ok')
|
||||
|
||||
# ---------- 4) active.md:快照顶部更新行 + 台账 413 ----------
|
||||
p = ROOT/'active.md'; d = p.read_bytes()
|
||||
if b'\n413. ' not in d and not d.startswith(b'413. '):
|
||||
anchor = '## 当前状态快照(收口批先更新本节,再追加台账;≤10 行)'.encode()
|
||||
assert d.count(anchor) == 1
|
||||
ai = d.find(anchor); aj = d.find(b'\n', ai) + 1
|
||||
top = ('- **更新于**:2026-10-09(**design/ 存量超期清理批落籍 master**,用户逐类判决——QA 新立规「证据只留最新」,工作日志 413):'
|
||||
'删 86 件=dev 四组 11(concept-map 全家/迁移计划/评审/追溯矩阵,随批清 7 文件指路句)+qa 39(证据只留最新规首跑:保留 iter19 七件+迭代18目检总清单〔待人〕+ui-audit 树与报告=最新证据)+research 33 轨迹+3 未跟踪'
|
||||
'(任务书 17/审查四/奇物调研四〔用户点名核验:18 件框架已落 GDD v3.0〕/研究三/双层BD/MC成本/基准/UI对照/第三套架构图/旧杂件);引用改写 13 文件;'
|
||||
'doc-conventions §11 新增证据只留最新行(v13);**美术审计报告留置未删**(P0① art-bible 仍引用已丢失冻结样张+P0② 主角重产未登记——严重事项呈用户,待裁后处置)。\n').encode()
|
||||
d = d[:aj] + top + d[aj:]
|
||||
lines = d.split(b'\n')
|
||||
L413 = ('413. **design/ 存量超期清理批(2026-10-09,用户逐类判决;QA 证据新立规=「证据类只保留最新迭代/最新一轮审计版本,新证据落位后删上一份,等人工检查的清单不受限」已落 doc-conventions §11 v13)**:'
|
||||
'①dev/architecture 四组 11 件删——gdd-concept-map 全家 8(2026-09 旧架构快照零引用,新架构图用户示另行生成)/board-node2d-migration-plan(迁移完成)/code-architecture-review/requirements-traceability(挂起标记过期:待的 ADR-0006/0007 均已落地);'
|
||||
'随批清 7 文件指路句(关卡节点地图/HUD框架/battle 版本行+adr-0005 两处+adr-0006+game README)。'
|
||||
'②qa 39 件删(新规首跑)——迭代 11-18 全部出口报告/读数/检查单+m1/m2 出口单+numfix/t17/t19/test-perf/ui-struct-probe+中间产物死亡清单本体(本批即其终局);'
|
||||
'保留=iter19 七件(最新迭代证据)/迭代18-实机目检总清单(待人)/ui-audit-2026-10-06 树 40 张+ui-audit-vs-demo 报告(最新 UI 审计证据)。'
|
||||
'③research 33 轨迹+3 未跟踪删——已落籍批任务书 17(含技能池批)/道具三层审查四件(三层重设计收口)/奇物调研底稿四件(**用户点名核验通过**:18 件专长框架已落 GDD 奇物.md v3.0 正主,全局作用域调研未决项由迭代14③落地批+06 登记承接)/研究三件/双层BD整合定稿(迭代12 落码)/MC成本调研(sim-data 规制落地)/roguelike-difficulty-benchmark(带值四带已裁)/UI落码对照(落码批收官)/game-architecture html+json(第三套架构图)/alpha-acceptance+prototype-report(M3 前旧件);'
|
||||
'保留=M4数值批任务书+A4 两件(冻结)+提案-武器锻造(17 裁点未闭)+UI预览demo三路对照(阶段1待办)+自造短语全量清单(待裁)+playnote(用户手迹)。'
|
||||
'④引用改写 13 文件(06 五处/07 三处/难度曲线两处/地形变异/HUD框架两处/关卡节点地图/battle/entities.yaml/art-bible/remote-gen-prompts/adr-0005/adr-0006/README——路径指涉统一改「(已退役,git 历史可查)」行内注记,零行数变化)。'
|
||||
'**A1 美术资产链路审计报告留置未删(用户严重事项条款)**:核验结论=§07 数值单点已吸收(art-bible v3.11)/描边已吸收(character-design §5.1 v1.9+06 复核钩子),'
|
||||
'但 **P0① 未吸收**——art-bible:68/:527+art-status-checklist:13 至今仍引用已丢失冻结样张 artwork/mockups/sample-batch-v3-final-2026-09-30.png(磁盘实测零命中,圣经冻结基准死指涉),'
|
||||
'**P0② 未登记**——主角棋盘小人未走像素管线(插值糊图)重产事项无 06 条目;待用户裁决(登记 06 处置或重产后再删报告)。'
|
||||
'**验证**=doc_link/doc_term/gdd_lint 对基线零新增+熵增闸 PASS;untracked 三件(技能池任务书/研究×2)主区磁盘删不入 git。').encode()
|
||||
for i, ln in enumerate(lines):
|
||||
if ln.startswith(b'412. '):
|
||||
lines.insert(i+1, L413); break
|
||||
else:
|
||||
sys.exit('ledger 412 not found')
|
||||
pathlib.Path('active.md').write_bytes(b'\n'.join(lines))
|
||||
print('active.md ok')
|
||||
print('ALL DONE')
|
||||
@@ -1,15 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
import pathlib, re
|
||||
for tf, pairs in [
|
||||
('design/gdd/systems/冒险循环/难度曲线与Boss.md', [('numfix-newruler-readings-2026-10-01.md', '数值修复批读数(已退役,git 历史可查)')]),
|
||||
('design/gdd/07-体验验证清单.md', [('numfix-newruler-readings-2026-10-01.md', '数值修复批读数(已退役,git 历史可查)')]),
|
||||
('design/gdd/ux/level-map.md', [('m2-exit-gate-checklist-2026-09-28.md', 'M2 出口检查单(已退役,git 历史可查)')]),
|
||||
]:
|
||||
p = pathlib.Path(tf); d = p.read_bytes(); n = 0
|
||||
for b, repl in pairs:
|
||||
pat = re.compile(rb'[\w./\-\\]*' + re.escape(b.encode()))
|
||||
hits = pat.findall(d)
|
||||
assert hits, (tf, b)
|
||||
d = pat.sub(repl.encode(), d); n += len(hits)
|
||||
p.write_bytes(d); print('fixed', tf, n)
|
||||
print('OK')
|
||||
Reference in new issue
Block a user