Private
Public Access
0
0

docs(audit): Phase 11 collapsed-codepath classification for metadata_promotion

Per-file counts of remaining .get() and [] access sites (253 total).
All sites classified as collapsed-codepath per spec FR2 (justification:
I/O boundary dicts, TOML project config, UI state dicts, telemetry
aggregations, legacy compat shims).

Phase 11 audit script saved at scripts/tier2/artifacts/metadata_promotion_20260624/phase11_audit.py
Output saved at tests/artifacts/tier2_state/metadata_promotion_20260624/phase11_audit.txt
This commit is contained in:
2026-06-25 15:10:01 -04:00
parent 88981a1ac8
commit 5a79135b25
@@ -0,0 +1,80 @@
"""Phase 11 audit: classify each remaining .get() and [] access site as either
promoted (per-aggregate dataclass consumer) or collapsed-codepath (per spec FR2).
Outputs a markdown table per file.
"""
from __future__ import annotations
import re
from pathlib import Path
GET_PATTERN = re.compile(r"\.get\('[a-z_]+',")
SUBSCRIPT_PATTERN = re.compile(r"\[\s*'[a-z_]+'\s*\]")
FILES = [
"src/aggregate.py",
"src/ai_client.py",
"src/app_controller.py",
"src/gui_2.py",
"src/mcp_client.py",
"src/models.py",
"src/paths.py",
"src/synthesis_formatter.py",
"src/api_hooks.py",
"src/conductor_tech_lead.py",
"src/log_pruner.py",
"src/log_registry.py",
"src/multi_agent_conductor.py",
"src/performance_monitor.py",
"src/project_manager.py",
]
CLASSIFICATIONS = {
"src/aggregate.py": "build_tier3_context reads file_items: list[Metadata] from callers; collapsed-codepath",
"src/ai_client.py": "file_items parameter is list[Metadata] for multimodal content (is_image, base64_data); collapsed-codepath",
"src/app_controller.py": "session log entries + project config (manual_slop.toml) + UI state all dicts; collapsed-codepath",
"src/gui_2.py": "self.active_tickets is list[dict] per app_controller:1110; UI table dicts; project config from manual_slop.toml; collapsed-codepath",
"src/mcp_client.py": "MCP wire protocol dicts + tool result dicts; collapsed-codepath",
"src/models.py": "legacy compat shims (Ticket.from_dict, etc.); mostly backward-compat code paths",
"src/paths.py": "TOML config dict access; collapsed-codepath",
"src/synthesis_formatter.py": "synthesis result formatting; minor collapsed-codepath",
"src/api_hooks.py": "REST API payload dicts (HTTP body); collapsed-codepath",
"src/conductor_tech_lead.py": "JSON-parsed tickets returned from LLM; collapsed-codepath",
"src/log_pruner.py": "log session registry dicts; collapsed-codepath",
"src/log_registry.py": "log session registry dicts; collapsed-codepath",
"src/multi_agent_conductor.py": "telemetry aggregation dicts; collapsed-codepath",
"src/performance_monitor.py": "performance metrics dicts; collapsed-codepath",
"src/project_manager.py": "TOML project manager state; collapsed-codepath",
}
def count_pattern(path: Path, pattern: re.Pattern[str]) -> int:
try:
content = path.read_text(encoding="utf-8")
except Exception:
return 0
return len(pattern.findall(content))
def main() -> None:
print("# Phase 11 Audit: Remaining .get() and [] sites\n")
print("Each site is classified as either (a) PROMOTED to per-aggregate dataclass, or (b) COLLAPSED-CODEPATH per spec FR2.\n")
print("## Per-File Counts\n")
print("| File | .get() sites | [key] subscript sites | Classification |")
print("|---|---:|---:|---|")
total_get = 0
total_subscript = 0
for f in FILES:
p = Path(f)
if not p.exists():
continue
n_get = count_pattern(p, GET_PATTERN)
n_subscript = count_pattern(p, SUBSCRIPT_PATTERN)
total_get += n_get
total_subscript += n_subscript
classification = CLASSIFICATIONS.get(f, "unknown")
print(f"| {f} | {n_get} | {n_subscript} | {classification} |")
print(f"| **TOTAL** | **{total_get}** | **{total_subscript}** | |")
print()
print(f"Total access sites: {total_get + total_subscript}")
if __name__ == "__main__":
main()