"""software-engineering 技能的 GitHub 保证:轻量关键词断言。 只断言正文与附录都含有 GitHub 保证的关键概念,不逐字背诵全文: 主分支保护、merge commit、revert 回滚、PR 号要求、force-push 禁止、 tag 发布、token 只进子进程环境。附录是播种随附版,正文改了附录 没同步时,本测试在附录部分就会失败。 """ import unittest from pathlib import Path SKILL = Path(__file__).resolve().parents[1] / "skills" / "software-engineering" / "SKILL.md" KEYWORDS = ("主分支保护", "merge commit", "revert", "PR 号", "force-push", "tag", "子进程环境", "GET /tasks/{id}/pr/checks") class SoftwareEngineeringGithubTestCase(unittest.TestCase): def test_github_guarantees_in_body_and_appendix(self): text = SKILL.read_text(encoding="utf-8") main, sep, appendix = text.partition("## 附录:角色模板") self.assertTrue(sep, "appendix marker missing") for kw in KEYWORDS: self.assertIn(kw, main, kw) self.assertIn(kw, appendix, "appendix: " + kw) if __name__ == "__main__": unittest.main()