Capability loop step 3, no capability. tools/okf_accounting_gate.py asks, per README file type, how many of the elements a SOURCE holds okf build books as carried / pointer / coded rejection, with unaccounted and double-booked both required to be 0. Exit 1 today on rows 2, 3, 4 and 6. The fasit is tools/okf_witness.py (stdlib + pdfplumber + poppler, no package import; tested on the live import graph), committed as tests/fixtures/accounting/*inventory.json over one fixture per type. Measured: no source inventory (0 of 13); two graphics/ files carried through documents AND counted extractor_unknown (50 on R761 under --gate none); a refused document logged "0 carried of 0 found"; R761 refused whole because guard 1.4.0 treats its 71 U+00AD soft hyphens as an invisible carrier (asked of the security repo). The two R761 witnesses agree once STS labels are counted by role, not tag. Report: docs/2026-09-17-innholdsregnskapet-rod-gate.md Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
31 lines
550 B
JSON
31 lines
550 B
JSON
{
|
|
"documents": {
|
|
"avvist.html": {
|
|
"elements": {
|
|
"cell": 0,
|
|
"heading": 1,
|
|
"image": 1,
|
|
"list_item": 0,
|
|
"paragraph": 1,
|
|
"table": 0
|
|
},
|
|
"images": [
|
|
{
|
|
"kind": "local",
|
|
"ref": "graphics/figur.png",
|
|
"target": "graphics/figur.png"
|
|
}
|
|
],
|
|
"suffix": ".html",
|
|
"witness": "html.parser"
|
|
}
|
|
},
|
|
"files": {
|
|
"graphics/figur.png": {
|
|
"pointed_at_by": [
|
|
"avvist.html"
|
|
]
|
|
}
|
|
},
|
|
"witness_version": 1
|
|
}
|