fix(docs): N101 ships 568 tbx: tags, not 574

Counted three ways over `N101-2025-860031.json`, none of them importing this
package: raw `tbx:` substring 568, regex over `"tag": "tbx:` 568, node
traversal 568 across 10 distinct tags (94 x 6 + 1 x 4), out of 7 374 tags in
the delivery. The number is corrected in all four places that published it --
CLAUDE.md, `tools/okf_witness.py`'s `_sts_role_json` docstring,
`tests/test_accounting_gate.py` and the round's report -- and the test from
the previous commit now counts it rather than repeating it.

The one remaining `574` in the tree is `docs/2026-09-11-k3-runde8...md:89`
("11 016 and 6 574"), a character count of two documents and a different
number.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Kjell Tore Guttormsen 2026-09-19 08:35:50 +02:00
commit d1de1a6a9d
Signed by: ktg
SSH key fingerprint: SHA256:JakMjO6FTBBzN0Bhfj9saOoEjaFxlSdYuZQQpM/lF9Q
4 changed files with 5 additions and 5 deletions

View file

@ -1128,7 +1128,7 @@ and fixtures, never code.
measured role by role over the eight JSON deliveries on this machine and measured role by role over the eight JSON deliveries on this machine and
the three committed twins: `figure_caption` 0 -> 123/127/62/49/43/27 and the three committed twins: `figure_caption` 0 -> 123/127/62/49/43/27 and
`math` 0 -> 74/3/88, R761 and N601 unchanged, the two existing twins `math` 0 -> 74/3/88, R761 and N601 unchanged, the two existing twins
unchanged. The known-negative for stripping a prefix is N101's **574 unchanged. The known-negative for stripping a prefix is N101's **568
`tbx:`** tags, not one of whose local names is a role. `tbx:`** tags, not one of whose local names is a role.
- **The mutation harness is a GATE since 2026-09-19 (H4)**: a surviving - **The mutation harness is a GATE since 2026-09-19 (H4)**: a surviving
mutant exits 1, where `2 if errors else 0` made `killed 0 of 1` an exit 0. mutant exits 1, where `2 if errors else 0` made `killed 0 of 1` an exit 0.

View file

@ -136,7 +136,7 @@ on this machine and the three committed twins:
| R761-2025 | no change (row 5's pair) | | R761-2025 | no change (row 5's pair) |
| the two existing twins | no change | | the two existing twins | no change |
The known-negative for stripping a prefix is N101's **574 `tbx:`** tags: not one The known-negative for stripping a prefix is N101's **568 `tbx:`** tags: not one
of their local names is a role here, and it is in the suite. of their local names is a role here, and it is in the suite.
## 5. H2, H4, H5, H6 ## 5. H2, H4, H5, H6

View file

@ -370,7 +370,7 @@ def test_the_json_role_map_reads_a_prefixed_tag_and_the_publishers_figcaption()
def test_a_prefixed_tag_that_names_no_role_stays_uncounted() -> None: def test_a_prefixed_tag_that_names_no_role_stays_uncounted() -> None:
"""The known-negative for stripping the prefix: N101 ships 574 `tbx:` """The known-negative for stripping the prefix: N101 ships 568 `tbx:`
tags, and not one of their local names is a role. A rule that generalises tags, and not one of their local names is a role. A rule that generalises
is measured against what it must NOT take.""" is measured against what it must NOT take."""
for tag in ("tbx:term", "tbx:definition", "tbx:note", "tbx:termEntry"): for tag in ("tbx:term", "tbx:definition", "tbx:note", "tbx:termEntry"):
@ -412,7 +412,7 @@ def test_n101s_own_prefixed_tags_are_counted_here_and_name_no_role() -> None:
names = _tags_of(N101_DELIVERY.read_bytes()) names = _tags_of(N101_DELIVERY.read_bytes())
assert sum(names.values()) > 0, "the walk found no tag at all" assert sum(names.values()) > 0, "the walk found no tag at all"
tbx = {tag: n for tag, n in names.items() if tag.startswith("tbx:")} tbx = {tag: n for tag, n in names.items() if tag.startswith("tbx:")}
assert sum(tbx.values()) == 574 assert sum(tbx.values()) == 568
for tag in sorted(tbx): for tag in sorted(tbx):
assert witness._sts_role_json(witness._local(tag), "sec", "body") is None, tag assert witness._sts_role_json(witness._local(tag), "sec", "body") is None, tag

View file

@ -508,7 +508,7 @@ def _sts_role_json(tag: str, parent: str | None, grandparent: str | None) -> str
The tag arrives through :func:`_local`, as the XML map's does: this The tag arrives through :func:`_local`, as the XML map's does: this
delivery writes a namespace as a PREFIX on the tag string, so `mml:math` delivery writes a namespace as a PREFIX on the tag string, so `mml:math`
reached `tag == "math"` on nothing at all (H3, 74 of them in N200). The reached `tag == "math"` on nothing at all (H3, 74 of them in N200). The
known-negative for stripping it is N101's 574 `tbx:` tags, none of whose known-negative for stripping it is N101's 568 `tbx:` tags, none of whose
local names is a role here. local names is a role here.
`figcaption` is this delivery's own, measured and not assumed: NISO-STS `figcaption` is this delivery's own, measured and not assumed: NISO-STS