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
+49
View File
@@ -0,0 +1,49 @@
from __future__ import annotations
from pathlib import Path
import shutil
import sys
import tempfile
import unittest
REPO_ROOT = Path(__file__).resolve().parents[2]
ADAPTERS = REPO_ROOT / "harness/adapters"
sys.path.insert(0, str(ADAPTERS))
import generate_rules # noqa: E402
class RuleGenerationTest(unittest.TestCase):
def test_all_rule_adapters_are_current(self) -> None:
stale, written = generate_rules.generate(REPO_ROOT, check=True)
self.assertEqual(stale, [])
self.assertEqual(written, [])
rendered = generate_rules.render(REPO_ROOT)
self.assertEqual(len(rendered), 16)
self.assertTrue(all("GENERATED from rules/" in text for text in rendered.values()))
def test_root_rule_change_is_detected(self) -> None:
with tempfile.TemporaryDirectory() as directory:
root = Path(directory)
for relative in (
"harness/source/rule-adapters.json",
"rules/advisory-depth.md",
"rules/reporting-standards.md",
"rules/diagram-standards.md",
):
target = root / relative
target.parent.mkdir(parents=True, exist_ok=True)
shutil.copyfile(REPO_ROOT / relative, target)
rendered = generate_rules.render(root)
for path, text in rendered.items():
target = root / path
target.parent.mkdir(parents=True, exist_ok=True)
target.write_text(text, encoding="utf-8")
source = root / "rules/advisory-depth.md"
source.write_text(source.read_text(encoding="utf-8") + "\n변경\n", encoding="utf-8")
stale, _ = generate_rules.generate(root, check=True)
self.assertTrue(any("advisory-depth" in path for path in stale))
if __name__ == "__main__":
unittest.main()