Skip to content

design: 程序检测不应依赖自然语言字面 — 支持中英切换 #106

@loning

Description

@loning

背景

当前 source-regression tests / banner filters / forbidden-token lists / comment filters 大量直接 grep 中文字面(e.g. `"ensure all 5 daemons"`、`"需-maintainer-决策"`、`"## 🤖"` + 后续中文段标题)。一旦把面向人的文案切换到英文(或反之),所有这些检测会:

  • 假绿(检测目标找不到了,跳过)
  • 假红(detector 期望的字面不在新语言里)

初步 grep:~52 处 NL-anchored detection site(只统计了几个高频 token)。

目标

把"程序检测"和"人类文案"解耦,使中英文一键切换不影响:

  • 共识引擎(marker / sentinel / truth-table)
  • daemon/controller 守恒(allowlist / forbidden-token / lifecycle 边界)
  • Phase 0/9 fixed-point 检测
  • Comment / banner 识别

不可动

  • marker 词表(`SOLVER_DONE`/`META_JUDGE_DONE`/...)— 已经 language-agnostic
  • sentinel `⟦AI:AUTO-LOOP⟧` — 已经 language-agnostic
  • 真值表 / Phase routing / 3/3 unanimous

可以砍 / 替换

  • `test_ensure_project_rules_fixed_points.py` 字面断言中文段标题 → 改断言 marker token / heading ID / 结构 anchor
  • banner filter `## 🤖` + 中文文字 → 改纯 emoji prefix(已经 emoji-only 可工作)+ 用 sentinel 做权威识别
  • forbidden token list `"ensure all 6 daemons"` → 改抽象 invariant ID(e.g. `DAEMON_COUNT_DRIFT`)
  • 中文 banner role 推断(reviewer/judge/...)→ 改 marker role suffix 推断

验证标准

  • 全部 skill 文档可切换到 English(或反之)而不破 behavior test / source-regression test
  • 共识引擎语义零变更
  • detection 覆盖率不降
  • Token 总量大致不变(目标是 detection-loose-coupling,不是减量)

Phase 9 framing

  • minimal: 逐 detection site 把中文字面改成 marker / token / emoji / heading-id anchor,不引入新抽象
  • structural: 引入 `DetectionInvariantV1`(invariant_id + canonical anchor list,language-agnostic),所有 detector 通过 invariant_id 查
  • delete: 删除不必要 detection,改靠 schema / exit code / marker 推断;只保留 invariant 必须的最小集

⟦AI:AUTO-LOOP⟧

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions