The rule the method leans on hardest was never checked on Python
Two build scripts enforce 'no TMS imports a sibling TMS' — the rule their own comments call the one whose violation is invisible in review. The file filter was /\.(js|mjs|ts)$/, so the rule did not run at all on the first Python example, and a deliberate violation built green.
同一個缺陷,每一個視角
- 開發者
The comment above the check states it is the one rule whose violation is invisible in review. The line below it reads only .js, .mjs and .ts.
- 測試
Adding a real sibling import to a Python TMS and building produced exit 0 — the same output as a clean tree.
- 架構
Every claim a published Python example makes about its TMS being independently loadable rested on a manual island test, not on the mechanical check the method advertises.
判斷軌跡
- 條件 · 維運found-by-applying-a-new-rule-to-an-old-check2026-08-03 09:40 → 至今信心 0.9
- 何事 · 測試rule-not-enforced-on-half-the-corpus2026-08-03 09:20 → 至今信心 0.99
- 何時 · 開發者latent-until-the-corpus-gained-a-second-language2026-08-03 09:35 → 至今信心 0.94
- 為何 · 測試extension-allowlist-standing-in-for-the-rule2026-08-03 09:30 → 至今信心 0.96
觀察記錄
- 2026-08-03 09:15已捕捉
Asked of an existing check: can it fail on a Python example?
- 2026-08-03 09:20已重現
A deliberate sibling import built green.
- 2026-08-03 09:32已定位
Extension allowlist in both build scripts.
- 2026-08-03 10:05已驗證
Four directions checked: clean passes, three violation shapes fail.
可執行見證
假設
- refuted
Python examples were passing the check.
They were not passing it. They were not reaching it.
證據
- execution · 2026-08-03 09:20
Added `from TMS.checkers.http import HttpChecker` to a sibling TMS in example 002 and ran the build: exit 0, no message. The relative form `from .http import ...` behaved the same.
- observation · 2026-08-03 09:32
The archaeology build carries its own copy of the same check with the same filter; archaeology 002 is also Python.
- test_result · 2026-08-03 10:02
After the fix: clean tree passes; Python dotted violation fails; Python relative violation fails; JavaScript violation fails.
修補
- rejected
Add .py to the extension list.
Rejected: the extension list is the defect. Adding an entry fixes today's language and leaves the next one silently unchecked.
- accepted
Per-language import resolution, dotted and relative, with __init__.py joining the unit-root markers — and a build that fails on an unrecognised source file rather than skipping it.
關聯
- same_root_asBC-0007
- manifested_asBP-0003