merge: 同步 master d5f95e7f(art/ 边界批)——三处冲突=对方 art 改名/迁移 vs 我方路径重基准,取对方内容改动+按新落位换算路径(comfyui-prompts→art-prompts、美术审计件迁 research/)

This commit is contained in:
DKChan committed 2026-10-20 05:30:37 +08:00
commit d6356d8dbe
16 files changed
+61 -32

No files matched your search

+26 -5
View File
@@ -5,11 +5,13 @@
收口第四闸(与 doc_link_audit / doc_term_audit / gdd_lint 同列):
把目录三层裁定变成机器检查——任何会话乱放文件,收口时此处直接 FAIL。
四查:
六查:
1. 顶层目录白名单(新增顶层目录 = FAIL,须同批改 AGENTS.md + 本脚本白名单)
2. 根目录文件白名单(根上只许运行文件与规则文件)
3. 图像白名单(图只许在 artwork/ game/assets/ design/art/references/ design/dev/architecture/)
4. 退役路径守卫(production/ docs/ tests/ qa-data/ candidates/mockups 旧路径再现 = FAIL)
3. 图像白名单(图只许在 artwork/ game/assets/ design/art/references/ design/dev/architecture/ game/tests/golden/)
4. 退役路径守卫(production/ docs/ tests/ qa-data/ design/registry/ design/qa/ 旧路径再现 = FAIL)
5. design/ 一级子目录白名单(防临时新目录)
6. design/art/ 内容白名单(只许 .md 与 references/;审计报告属中间文档归 design/research/)
用法: python tools/repo_structure_audit.py # 全查,FAIL 时 exit 1
python tools/repo_structure_audit.py --json # 机器读输出
@@ -37,8 +39,12 @@ IMAGE_PREFIXES = ("artwork/", "game/assets/", "design/art/references/", "design/
RETIRED = ["production", "docs", "tests", "qa-data", "design/registry",
"design/art/candidates", "production/mockups",
"design/ux", "game/tools", "design/qa"]
# design/ 一级子目录白名单(防 ad-hoc 新目录)
# 5) design/ 一级子目录白名单(防 ad-hoc 新目录)
DESIGN_SUBDIRS = {"art", "dev", "gdd", "research"}
# 6) design/art/ 内容白名单——美术只放 .md 文档与 references/ 参考图;
# 审计报告属中间文档,按 doc-conventions §11 落 design/research/,禁驻 art/
ART_EXTS = {".md"}
ART_SUBDIRS = {"references"}
def scan():
@@ -80,6 +86,21 @@ def scan():
if extra_d:
fails.append("design/ 子目录越界: %s(合法: %s;新分类先过用户拍板再改两处白名单)" % (sorted(extra_d), sorted(DESIGN_SUBDIRS)))
# 6) design/art/ 内容白名单
art_dir = ROOT / "design" / "art"
art_bad = []
if art_dir.is_dir():
for p in sorted(art_dir.iterdir()):
rel = p.relative_to(ROOT).as_posix()
if p.is_dir():
if p.name not in ART_SUBDIRS:
art_bad.append(rel + "/")
elif p.suffix.lower() not in ART_EXTS:
art_bad.append(rel)
if art_bad:
fails.append("design/art/ 越界内容 %d 项(只许 .md 与 %s): %s" %
(len(art_bad), "、".join(ART_SUBDIRS) + "/", art_bad[:8]))
notes.append("顶层目录 %d 合法 · 根文件 %d 合法 · design/ 子目录 %s · 图像白名单命中 %s" %
(len(top_dirs & TOP_DIRS), len(top_files & ROOT_FILES),
sorted(design_subs), "、".join(IMAGE_PREFIXES)))
@@ -96,7 +117,7 @@ def main():
print(" ! " + f)
print("\n处理: 文件归位到合法区;确需新类别 = 同批修订 AGENTS.md Project Layout + 本脚本白名单,commit 留痕。")
sys.exit(1)
print("\n结构审计 PASS(四查全过:顶层目录/根文件/图像白名单/退役路径)")
print("\n结构审计 PASS(六查全过:顶层目录/根文件/图像白名单/退役路径/design 子目录/art 内容)")
sys.exit(0)