The entity check skips =verbatim= and ~code~ spans (without_literal_spans, added in #26) because a name shown inside verbatim is displayed rather than rendered. The other line-level checks in scan_line do not, so any page that documents org syntax reports constructs it does not use.
Reproduction — every mention below is inside verbatim:
#+TITLE: Verbatim mentions
A doc explaining syntax, where every mention is inside verbatim:
=${x^2}$=, ={{{name}}}=, =<<<radio>>>=, =[1/3]=, =CLOCK: [2024-01-01]=.
orgo audit on that reports three constructs that are not used:
OUT macro call 1 1 :4
OUT radio target 1 1 :4
IN timestamp 1 1 :4
This is live in orgo's own documentation. orgo audit docs reports:
OUT macro call 1 1 guide/05-org-support.org:186
Line 186 is the table row | Macros ={{{name}}}=, radio targets | Literal text. | — the guide naming the construct in order to say it is unsupported. That is the only non-zero out-of-scope count in orgo's self-audit.
The checks that test a raw line and would want the same treatment:
line.contains("{{{")→ macro call (src/audit.rs:336)- radio target
has_timestamp(line)→ timestamplatex_inline(line)andline.contains("\\begin{")→ LaTeX fragment
without_literal_spans already exists and is the fix; the question is only whether to apply it to each check or to blank the spans once at the top of scan_line. The latter is one change but would also affect the emphasis-pair counts, which currently do see verbatim markers — = is itself one of the emphasis markers scanned, so that needs a decision rather than a blanket call.
Related: #23 was the same defect in the entity check, and the audit's own principle is at src/audit.rs:222 — an audit that overstates a gap argues for work nobody needs.
closed by commit ef9a625b5d by cmc: audit: a construct named inside verbatim is not a use of it (#1)
2026-08-30 06:55 UTC