master-skill 0.9.0 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -39,6 +39,17 @@ VALID_PRESSURES = {
39
39
  "misunderstanding_challenge",
40
40
  }
41
41
 
42
+ COMPARE_REQUIRED_SECTIONS = {
43
+ "共同点",
44
+ "核心分歧",
45
+ "适用根机",
46
+ "分歧雷达",
47
+ "分歧分类",
48
+ "共通点与宗派背景",
49
+ "推荐继续追问",
50
+ "引用来源",
51
+ }
52
+
42
53
 
43
54
  def validate_master(master_dir: Path) -> list[str]:
44
55
  """Validate fidelity.jsonl for a single master. Returns list of errors."""
@@ -122,6 +133,15 @@ def validate_master(master_dir: Path) -> list[str]:
122
133
  if field in test and not isinstance(test[field], list):
123
134
  errors.append(f"{master_dir.name}:{i}: '{field}' must be a list")
124
135
 
136
+ if master_dir.name == "compare" and test_type not in {"boundary", "pressure"}:
137
+ sections = set(test.get("must_have_sections", []))
138
+ missing = sorted(COMPARE_REQUIRED_SECTIONS - sections)
139
+ if missing:
140
+ errors.append(
141
+ f"{master_dir.name}:{i}: compare test missing required output "
142
+ f"sections: {', '.join(missing)}"
143
+ )
144
+
125
145
  # Check coverage: should have at least one boundary test
126
146
  has_boundary = any(
127
147
  json.loads(l).get("test_type") == "boundary"