init: llm-wiki-haness 하네스 설계

This commit is contained in:
DongHyeonka
2026-07-24 14:21:35 +09:00
parent 42bf3db4fd
commit 6c53ded9cb
2436 changed files with 194486 additions and 1 deletions
+48
View File
@@ -0,0 +1,48 @@
from __future__ import annotations
from pathlib import Path
import sys
import tempfile
import unittest
RUNTIME = Path(__file__).resolve().parents[1] / "runtime"
sys.path.insert(0, str(RUNTIME))
import fix_bare_refs # noqa: E402
class FixBareRefsTest(unittest.TestCase):
def test_only_checker_confirmed_bare_refs_are_linked(self) -> None:
with tempfile.TemporaryDirectory() as directory:
root = Path(directory)
hooks = root / ".claude/hooks"
hooks.mkdir(parents=True)
repository_hooks = Path(__file__).resolve().parents[2] / ".claude/hooks"
for name in ("wiki_consistency_check.py", "wiki_graph_contract_check.py", "wiki_rules.py"):
(hooks / name).write_bytes((repository_hooks / name).read_bytes())
branches = root / "raw/branch-notes"
branches.mkdir(parents=True)
document = branches / "feature-source.md"
document.write_text(
"""# source
feature-target D3 결정을 따른다. 이미 [[raw/branch-notes/feature-linked]] D1 결정도 있다.
## 관심사 커버리지
| 관심사 | 상태 | owner |
|---|---|---|
| 실행 | delegated | feature-target |
""",
encoding="utf-8",
)
updates, counts = fix_bare_refs.build_updates(root)
rendered = updates[document]
self.assertIn("[[raw/branch-notes/feature-target]] D3", rendered)
self.assertIn("| 실행 | delegated | [[raw/branch-notes/feature-target]] |", rendered)
self.assertIn("[[raw/branch-notes/feature-linked]] D1", rendered)
self.assertEqual(counts["decision_ref_fixes"], 1)
self.assertEqual(counts["owner_ref_fixes"], 1)
if __name__ == "__main__":
unittest.main()