跳到主要内容

考研政治错题分析

收藏1

把考研政治个人错题转化为考点诊断、真题迁移和复习回访方案

让 AI 安装

wencker最新版本 0.1.1更新于 2026-11-01下载 2 次2 个版本

scripts/validate_release.py

1.6 KB
1from pathlib import Path
2import re
3
4ROOT = Path(__file__).resolve().parents[1]
5skill = ROOT / "SKILL.md"
6text = skill.read_text(encoding="utf-8-sig")
7
8errors = []
9if not text.startswith("---\n"):
10 errors.append("missing YAML frontmatter")
11for field in ("name:", "description:"):
12 if field not in text.split("---", 2)[1]:
13 errors.append(f"missing frontmatter field: {field}")
14
15match = re.search(r"^name:\s*([^\n]+)$", text, re.M)
16if not match or not re.fullmatch(r"[a-z0-9]+(?:-[a-z0-9]+)*", match.group(1).strip()):
17 errors.append("skill name must use lowercase letters, numbers, and hyphens")
18
19for relative in (
20 "references/workflow.md",
21 "references/output-spec.md",
22 "references/isolation-and-evidence.md",
23 "tests/pressure-scenarios.md",
24):
25 if not (ROOT / relative).exists():
26 errors.append(f"missing required file: {relative}")
27
28privacy_patterns = {
29 "absolute Windows user path": r"[A-Za-z]:\\Users\\",
30 "absolute POSIX user path": r"/(?:home|Users)/",
31 "email address": r"\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}\b",
32}
33for label, pattern in privacy_patterns.items():
34 if re.search(pattern, text, re.I):
35 errors.append(f"public package contains {label}")
36
37required_phrases = (
38 "个人错题",
39 "考生隔离",
40 "题库真实题量",
41 "真题原文",
42 "回访清单",
43)
44for phrase in required_phrases:
45 if phrase not in text:
46 errors.append(f"missing core instruction: {phrase}")
47
48if errors:
49 for error in errors:
50 print(f"ERROR: {error}")
51 raise SystemExit(1)
52
53print("OK: release skill structure and privacy checks passed")

文件内容是平台检查时读出的文本,只供查看。平台不会运行包里的任何脚本或程序。