|
8 | 8 | ROOT_README = Path(__file__).parent.parent.parent.parent / "README.md" |
9 | 9 | METHODOLOGY_MAP_ZH = Path(__file__).parent.parent.parent / "METHODOLOGY_MAP.zh-TW.md" |
10 | 10 | METHODOLOGY_MAP_EN = Path(__file__).parent.parent.parent / "METHODOLOGY_MAP.md" |
| 11 | +SKILL_MAP = Path(__file__).parent.parent.parent / "skills" / "skill-map.md" |
11 | 12 |
|
12 | 13 | CURRENT_PANEL_ROUND = "68" |
13 | 14 | CURRENT_PANEL_OPTIONS = "A–CZ" |
@@ -37,6 +38,12 @@ def methodology_map_en_text() -> str: |
37 | 38 | return METHODOLOGY_MAP_EN.read_text(encoding="utf-8") |
38 | 39 |
|
39 | 40 |
|
| 41 | +@pytest.fixture(scope="module") |
| 42 | +def skill_map_text() -> str: |
| 43 | + assert SKILL_MAP.is_file(), f"missing {SKILL_MAP}" |
| 44 | + return SKILL_MAP.read_text(encoding="utf-8") |
| 45 | + |
| 46 | + |
40 | 47 | def test_library_readme_panel_record_current(library_readme_text: str): |
41 | 48 | assert f"Rounds 1–{CURRENT_PANEL_ROUND}" in library_readme_text |
42 | 49 | assert f"options {CURRENT_PANEL_OPTIONS}" in library_readme_text |
@@ -65,3 +72,10 @@ def test_methodology_map_en_lists_nine_frozen_skills(methodology_map_en_text: st |
65 | 72 | fit_check = methodology_map_en_text.split("## Repo Fit Check", 1)[1] |
66 | 73 | assert "nine frozen workflow skills" in fit_check |
67 | 74 | assert "8 lifecycle skills" not in fit_check |
| 75 | + |
| 76 | + |
| 77 | +def test_skill_map_lists_nine_frozen_skills(skill_map_text: str): |
| 78 | + core = skill_map_text.split("## Core Architecture", 1)[1].split("##", 1)[0] |
| 79 | + assert "nine frozen workflow skills" in core |
| 80 | + assert "eight lifecycle skills" not in core |
| 81 | + assert skill_map_text.count("`reflective-") >= 9 |
0 commit comments