audit: phase 0 tooling for file-by-file 40250 porting

- refroot.py: one reference-root resolver (MT_40250_SOURCE, then manifest)
  used by every audit script; missing tree or fingerprint input is an error
- port_map.py: per-function inventory of active 40250 units plus the
  40250 Python root, status/queue/init/show/check, 40250: tag scan
- manifest: fix 18 wrong reference paths (Python UI now points at the
  40250 Client/Eternexus/root, not the m2dev assets/root), drop 2 deleted
  implementation files, move 64 prose test entries to evidence.commands
- first port-map entry: PythonPlayerEventHandler.cpp
- roadmap replaced by a batch/unit queue

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
shenlei
2026-09-22 17:17:49 +09:00
co-authored by Claude Opus 5
parent 6a175ee293
commit 55f733fda6
16 changed files with 621 additions and 468 deletions
@@ -15,6 +15,8 @@ import re
import xml.etree.ElementTree as ET
from collections import Counter, defaultdict
import refroot # script directory is on sys.path when run directly
REFERENCE_DIRS = (
"UserInterface",
@@ -259,7 +261,7 @@ def infer_owners(path: str) -> list[str]:
def build(repo: pathlib.Path) -> dict:
reference_root = (repo / "../40250/Server Client TMP4/ClientVS22/source").resolve()
reference_root = refroot.reference_root(repo)
listed, exact_owners = manifest_data(repo)
active = active_project_sources(reference_root)
rows = []
@@ -283,7 +285,7 @@ def build(repo: pathlib.Path) -> dict:
for owner in row["owners"]:
by_contract[owner][row["kind"]] += 1
return {
"reference_root": "../40250/Server Client TMP4/ClientVS22/source",
"reference_root": json.loads((repo / "audit/manifest.json").read_text(encoding="utf-8"))["reference_root"],
"active_source_count": len(rows),
"manifest_exact_count": counts["manifest_exact"],
"inferred_review_queue_count": counts["inferred_review_queue"],