- Code\rebar_pipeline, review_pipeline, pier-program을 정션에서 실제 폴더로 전환 - Code\rhino_mcp 및 CLAUDE_rhino배경.md 추가, .mcp.json은 PYTHONPATH로 새 위치 사용 - pier-program 내부 .git 제거(이력은 backup\pier-program_20261028.bundle에 보관) - worktree 가이드 반영(CLAUDE.local.md, HANDOFF.md) - D:\Rhino-MCP 경로 참조를 새 위치로 치환 Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
24 lines
1.3 KiB
Python
24 lines
1.3 KiB
Python
"""Step 3 check for the drawing review report: required chapters, source on every finding row,
|
|
version token vs change history, finding counts, cross-reference to OPEN items."""
|
|
import re
|
|
import sys
|
|
from pathlib import Path
|
|
|
|
ROOT = Path(__file__).resolve().parents[2]
|
|
rep = ROOT / "DOC" / "06_보고서" / sys.argv[1]
|
|
s = rep.read_text(encoding="utf-8")
|
|
need = ["## 2. 도면 오류", "## 3. 개선방안", "## 4. 추가되어야 할 사항", "## 5. 누락사항", "## 6. 철근재료표", "## 7. 철근상세"]
|
|
for h in need:
|
|
print("chapter", h, "OK" if h in s else "MISSING")
|
|
rows = [l for l in s.splitlines() if re.match(r"\| (E|M)-\d\d ", l)]
|
|
nosrc = [l[:12] for l in rows if not re.search(r"D[123]", l)]
|
|
print("finding rows", len(rows), "E", sum(l.startswith("| E-") for l in rows), "M", sum(l.startswith("| M-") for l in rows),
|
|
"without D1/D2/D3 source", nosrc)
|
|
ver = re.search(r"_v(\d+\.\d+\.\d+)\.md$", rep.name).group(1)
|
|
hist = [l for l in s.splitlines() if l.startswith("| v")]
|
|
print("version", ver, "history latest", hist[-1].split("|")[1].strip(), "OK" if hist[-1].split("|")[1].strip() == "v" + ver else "MISMATCH")
|
|
judg = re.findall(r"\| (오류|불일치|누락|확인 필요) \|", s)
|
|
print("judgement vocabulary used", sorted(set(judg)), len(judg))
|
|
openrefs = re.findall(r"^\| (\d+(?:, \d+)?) \|", s, re.M)
|
|
print("OPEN refs in appendix", openrefs)
|