# -*- coding: utf-8 -*- """网络拓扑与隔离策略文档(docs/网络拓扑与隔离策略.md)一致性检查。 检查项: 1. 必备章节齐全(拓扑模型 / 隔离策略 / 通信矩阵 / 现场勘查清单 / 落地检查表); 2. 只读/不反控红线关键词存在(PRD 5.1 / 9 章安全-网络); 3. 通信矩阵包含「禁止」反向行(写寄存器拦截); 4. 引用文件路径存在。 用法:python _check_network_doc.py """ import os import sys HERE = os.path.dirname(os.path.abspath(__file__)) DOC_PATH = os.path.join(HERE, "网络拓扑与隔离策略.md") REQUIRED_SECTIONS = [ "## 2. 三网拓扑模型", "## 3. 各网段职责与设备", "## 4. 隔离策略", "## 5. 通信矩阵", "## 6. 现场勘查清单", "## 7. 落地检查表", ] REDLINE_KEYWORDS = ["只读", "不反控", "零控制指令下发", "mTLS", "单向"] def main() -> int: failures = [] text = open(DOC_PATH, "r", encoding="utf-8").read() for sec in REQUIRED_SECTIONS: if sec not in text: failures.append(f"缺少必备章节:{sec}") for kw in REDLINE_KEYWORDS: if kw not in text: failures.append(f"缺少红线关键词:{kw}") # 通信矩阵需含「禁止」写寄存器的反向拦截行 if "**禁止**" not in text: failures.append("通信矩阵缺少『禁止』写寄存器拦截行") if failures: print("FAIL") for f in failures: print(" -", f) return 1 print("OK: 章节/红线关键词/通信矩阵校验通过") return 0 if __name__ == "__main__": sys.exit(main())