
会数违规的正则Lint器SimpleEnglish ste_lint.py 代码实现深度剖析【免费下载链接】SimpleEnglishAgent skill: make LLMs write docs in ASD-STE100 Simplified Technical项目地址: https://gitcode.com/gh_mirrors/si/SimpleEnglishSimpleEnglish 是一个让 AI 按 ASD-STE100 简化技术英语STE写文档的 Agent 技能。它的可信度数字违规减少 74.6%全部来自一个 185 行的纯正则 Lint 工具 ste_lint.py——不靠语法解析器、不靠 LLM 判分只靠 10 条正则 线性扫描数出每一类违规。本文带你完整读懂它的实现。为什么用正则而不是语法解析器先说结论这是确定性违规计数器不是合规裁判。文件头注释写得很直白evals/ste_lint.py它只数正则能抓住的机械违规句子长度、缩写、禁用情态动词、完成时态、-ing从句、分号、破折号、拉丁缩写、slop 词、尾置条件、同义词轮换它会少算没有被动语态检测、没有词性检查它的数字只在同一版本工具跑两篇文本之间可比较这个定位很关键基准测试里 baseline 和 skill 两组输出用同一把尺子量比较就是公平的见 evals/results/RESULTS.md 的诚实数字警告一节。整体流程三步流水线lint()函数evals/ste_lint.py只有四步strip_code()清洗文本代码块整体删除、行内代码替换成一个占位词按 STE 规则 8.6引号文本算 1 个词、标题行整体豁免、URL 删除。这一步保证--force、5-10这类代码内容永远不触发误报sentences()切句先剥掉列表标记-、1.再在. ! ? :之后按空白切分过滤掉少于 2 个词的碎片逐条规则计数10 个计数器各跑一遍全文输出 JSON 报告总违规数、每 100 词违规密度violations_per_100w这就是基准表格里那个核心指标10 条正则规则详解全部规则集中在 evals/ste_lint.py 的 19 行代码里每条都对应 ASD-STE100 或技能自加的一条规则计数器抓什么对应规则sentence_over_limit过程文 20 词 / 描述文 25 词上限LIMITS字典Rule 5.1 / 6.3contractionnt、ll、its等缩写Rule 4.2banned_modalshould / would / may / might / could情态动词阶梯perfect_tensehas been、have 过去分词Rule 3.4ing_clause逗号后接 making / allowing 等-ing从句Rule 3.5semicolon分号简单count无正则Rule 8.1em_dash破折号最复杂见下技能自加latin_abbreve.g. / i.e. / etc.GR-6slop_wordsimply、robust、leverag*、seamlessly 等 16 个 AI 腔词反 sloptrailing_condition条件从句拖在命令后面见下Rule 5.4破折号一组精心的前瞻后顾— | (?!\d)–(?!\d) | (? )--(? ) | (?[^\s\d]{2}) - (?[^\s\d]{2})四个分支分别抓 em-dash、非数字范围的 en-dash、两侧空格的--、两侧都是实字符的-。--force、5 - 10、5–10、代码里的x - y全靠这些边界断言躲过误报。配套的DASH_FIXTUREevals/ste_lint.py故意放了 9 行陷阱文本自测断言只允许数出 3 个——这是个很好的回归测试写法。尾置条件一次真实的性能修复TRAILING_COND只是\s(if|when)\s判断条件是否拖在句尾靠trailing_cond()函数evals/ste_lint.py命中处往前找行首只有行首到命中的距离 ≥ 4 个字符才算尾置——这样标题 空行 If 开头的新句不会误判。注释里记录了一次真实性能事故旧版用前缀模式做这个判断长句子上回溯是平方级复杂度8000 词无标点输入要跑约 7 秒改成现在的线性扫描后降到亚毫秒。这段注释是读正则代码时最该记住的一课正则写得对不对还看它在最坏输入上跑得快不快。同义词轮换按词干去重计数ROTATION_SETS定义两组同义词check/verify/confirm/validate/ensureconfig/configuration/settings。计数逻辑evals/ste_lint.py同一组里出现了几个不同词干就记不同词干数 - 1次轮换。全篇只用 verify 不违规verify 和 check 混用才违规——精确对应 STE 一词一义、全文统一的精神。自测、CLI 与在基准中的位置自测python3 evals/ste_lint.py --self-test。三段固定夹具文本slop 段、干净段、破折号陷阱段覆盖全部 10 条规则干净段断言 0 违规evals/ste_lint.py。README 要求提交前必须跑它打分python3 evals/ste_lint.py --type procedural file.md输出 JSON 报告加--gate时若有违规返回退出码 1可直接接进 CI被谁调用基准运行器 evals/run_bench.py 在每次生成后立刻ste_lint.lint()打分evals/score_text_dir.py 用它复算任意 raw 结果目录的表格。8 个写作任务定义在 evals/scenarios.json文件导航 Lint 器本体evals/ste_lint.py基准运行器调用 lintevals/run_bench.py结果复算脚本evals/score_text_dir.py基准结果与数字警告evals/results/RESULTS.md规则目录正则抓的对象skills/simple-english/SKILL.md压力测试场景evals/pressure-tests.md一句话总结ste_lint.py的价值不在数得全而在数得稳清洗文本、固定规则、线性扫描、可复现。它诚实地标注了自己的天花板会少算、不是合规判决却因此撑起了整个项目每个数字都能从 raw 文件复算的基准体系。【免费下载链接】SimpleEnglishAgent skill: make LLMs write docs in ASD-STE100 Simplified Technical项目地址: https://gitcode.com/gh_mirrors/si/SimpleEnglish创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考