- flag weak candidates (no intent/heading/identifier/tag hit) and exit 2
when every candidate is weak: mis-hits used to be indistinguishable
from real hits, so the retry-with-better-terms loop never fired
- accept multiple ids per --section for batch fetch, failing atomically
on any unknown id so a partial fetch cannot pass as complete
- move query synonyms and page intent aliases to data/lexicon.json and
enforce alias/page correspondence in --check; curation data no longer
lives in the engine
- document the weak-hit rule, batch fetch and prelude-once guidance in
SKILL.md, with curation discipline in data/README.md
- drop 11_pitfalls.md, renumber the trailing pages and spread retrieval
tags across topics; lexicon keys are page filenames, so the renumbering
and the new --check rule cannot land in separate commits
lookup.py: exempt code-anchored ASCII identifiers from the mixed
zh/en gate so exact hits are no longer dropped; dedup parent/child
sections in results; validate write-prelude anchors in --check.
references: correct interpreter-verified facts (case-as-expression,
control-flow semicolons, __line__/__stack_frame, tslObjects order,
destroy timing, ErrDefine, truncated outputs), fix headings, scope
qualifiers and reversed quotes; strip dead preamble metadata from all
24 pages.
packaging: exclude __pycache__/*.pyc from playbook and bundle copies;
update build test file-count assertion to match.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>