Tokenizer rewritten in closed form (strict thousands grouping, dotted
tokens as a whole) and frozen: quotes, ISO dates, and specific number
forms are the documented candidate set; new prose forms extend the
docstring, not the regexes. Quote pairing no longer skips short pairs
into phantom quotes. Raw links parse only from the fenced-stripped
header. Skip-files applies only to root-level index/log. Body
blockquotes join the quote channel. Fence openers are indent-limited.
Examples now honor their own invariant: two fabricated quotes restored
to the raw wording, the market-data date moved into the raw body, and
the index example rewritten as a real global-index excerpt. A smoke
test assembles the examples and demands zero suspects, so the samples
stay under their own contract. Archive pages get a defined index date
(their Archived field) for lint cross-checks.
- The invariant now states honestly that the script checks the
high-signal literal subset; compile-time locate-before-write covers
the rest.
- See Also links get a single authority: internal-links rules no
longer cover them, and their own rule handles rename-fix, removal,
and ambiguity reporting.
- Malformed Status judgment matches the template: only Outdated
requires a date.
- Articles gain a required Updated metadata field, closing the loop
with cascade rules that refresh it and giving lint a mechanical
cross-check for index Updated dates (new auto-fix rule).
- Examples align with current schemas: Sources plural, Published in
raw, Updated in article and index.
- Sentence-final punctuation in the raw no longer blocks matching;
the boundary only rejects continuations that form a different value.
This was a regression from the boundary fix itself and would have
flooded reports with verbatim facts.
- Raw links must resolve inside raw/; anything else is an evidence
error, since the invariant's permanence rests on raw immutability.
- No-material suppression is anchored to ingest entry headings, so
prose mentions elsewhere in the log cannot hide backlog.
- Metadata semantics are scoped to the header block after the H1:
an Archived line in the body no longer grants exemption, and
metadata-shaped lines in a raw file's body stay evidence.
- Status blocks are skipped wholesale, including their explanation
lines, which legitimately cite newer sources outside the article's
own Raw links.
- Fence stripping handles tilde and 3+-backtick fences via a state
machine; candidate tokens are whitespace-normalized before dedup;
index/log args are skipped even when passed explicitly; articles
are checked once, not twice.
log-sample.md now shows the real entry types (ingest with Disposition
and Raw, no-material with full path, archived query, lint) instead of
the retired Compile/Update vocabulary that referenced directories this
skill does not use. Manual install instructions include scripts/ so
the evidence checker actually ships.
- No-material log entries record the full raw path and the script
matches on it, so same-named files elsewhere are no longer wrongly
exempted from the backlog report.
- The invariant drops incremental lint state: the script re-checks the
whole wiki in seconds, which also removes the touched-set
reconstruction problem and the vanishing-unresolved-suspect hole.
- Status block checks move to Judgment Reports; nothing consumes them
mechanically yet, so a mechanical sweep would guard a hypothetical.
- Research is gated to explicit research/ingest requests, resolving
the routing contradiction with read-only Query.
- Mechanical Reports invoke the script via python3 (works without an
exec bit) and name the argument <project-root>.
- Boundary matching: '42K' no longer passes against '142K' in the raw,
closing the substring false-pass on the exact transcription-error
class the checker exists for.
- Coverage: decimals and 4+ digit numbers (incl. bare years) are now
candidates; small plain integers stay out of scope by design and the
boundary is documented in the docstring.
- Fenced code is stripped before extraction (line-by-line processing
made the multiline regex useless), and Status/Archived metadata
lines no longer produce marker-date false suspects.
- Raw files are matched without their collection-metadata header, so a
Collected date cannot false-pass an article's claim about that year.
- Evidence errors are reported instead of silently passing: ordinary
articles without a Raw field, and Raw links that do not resolve.
- Article path arguments resolve against the project root, and missing
files are warnings, not tracebacks.
Public record of what was deliberately not built and why (source
hashes, persisted line anchors, numeric confidence, review dates,
decay, retract machinery, hooks, vector/graph search, typed relations,
OKF, MCP/UIs), grounded in production logs and ecosystem research.
Query may only claim the wiki lacks relevant content after both the
index and a synonym-aware full-text search come back empty. Research
(multi-source ingest) gets a minimal section: wide-net search with
synonyms, opposing-evidence search for core claims, parallel search
allowed but strictly sequential compilation because index/log/cascades
are shared state.
Superseded and disputed claims now get fixed-format Status blocks
(Outdated / Disputed) instead of freeform prose notes, so readers and
lint can recognize them mechanically. Cascade updates no longer scan
only the same topic directory and index entries; they grep the full
wiki for the source's entities, aliases, and affected claims, which is
where outdated claims used to hide until a human tripped over them.
Every load-bearing fact (number, date, direct quote) must exist
verbatim in the raw files an article links. Compile establishes the
invariant (locate before write, exact literals, derived values show
components); lint verifies it with scripts/check_evidence.py, which
greps candidate literals against linked raws and reports misses plus
unreferenced raw files. Lint is now three tiers: safe auto-fixes,
mechanical reports (the script), judgment reports. Also moves adding
See Also cross-references out of auto-fix, where judgment never
belonged.
Replace the unconditional fetch+compile rule with a disposition
(New / Update / Disputed / No material) stated after a wiki search.
No-material sources stay in raw/ and are logged with their disposition,
so thin sources no longer get forced into articles and lint can later
tell disposed stock from genuinely unreferenced raw files.
- Translate 2026-03-19-claude-code-statusline-landscape.md (148 lines)
- Fix mixed Chinese/English in claude-code-statusline-landscape.md (Impact section)
- All example files now uniformly in English
- Move from docs/ (excluded) to root for public visibility
- Track 8 waves of promotion activity across Reddit/X/Linux.do/GitHub
- Current: 247 stars, 34 forks, PR #216 open
- Add Battle-Tested section with growth metrics
- Add examples/ directory with real articles and operation log
- Update from 48→94 articles, 8→13 topics
- Prove active maintenance with 87 entries in last 7 days