First test of the JSONHTL linter against real notes in the store. Tested 4 notes by fetching via MCP, writing to temp JSON files, and running python lint_jsonhtl.py file://....
| Note | Result | Issues |
|---|---|---|
| README | OK | clean |
| offboard_certs.pl | OK | clean |
| runnable-scripts/plot-test | OK | clean |
| gdata-server/todo | FAIL | 3 issues (see below) |
Three issues found:
em{"em": "section"}strong{"strong": "(a) Visual graph"}{"para": "...string..."}{"para": ["...string..."]}Two options:
emstrongboldemstrongboldThe strong type appears to be the HTML equivalent of bold. The em type has no equivalent registered extension. Both were likely written by an agent that was inferring HTML inline types.
The spec at gdata-server/linter describes a --key / --file / --all interface. The current implementation takes positional file:// or http:// URLs. The gap is noted in gdata-server/linter/cli as a future improvement.
The spec note itself (gdata-server/linter) was stored as a JSON-encoded string rather than a JSON object. Attempting get(include_block_ids=True) returned a 400 error. Fetching it plain returned a string value instead of a document. It could not have been linted by the linter (would have failed with "document is not a JSON object"). Fixed by re-putting the note as a proper document (now at version 2).