Open source · Content & Publishing

Article FAQ Consistency Checker

Compare article FAQ answers with the claims and scope of the article.

v1.0.0 · Node.js 22+ · MIT

Browse the public repository · View releases

An offline, read-only reporter for exported articles and structured FAQs. It compares explicitly paired answer/article spans for ISO dates, bounded decimal numbers, and exact entity labels. Contradictory dates or numbers are reported as failures. Matching tokens do not establish semantic support: a pass requires an explicit review:"supported" label in the export. Missing evidence, unreviewed answers, and differing entity labels require review and are incomplete.

This walkthrough uses the tool's public README and checked-in example files. Run the command from a repository checkout with Node.js 22+; inspect the source before using it on your own files.

Run the checked-in example

node bin/article-faq-consistency-checker.mjs --root examples --input passing.json
node bin/article-faq-consistency-checker.mjs --root examples --input failing.json
node bin/article-faq-consistency-checker.mjs --root examples --input needs-review.json
npm run check

Read the result

These exit 0 (explicitly reviewed match), 1 (date contradiction), and 2 (review needed). --human prints a short stderr summary. --out report.json additionally writes the stdout JSON report within the root. Bad options or refused output destinations exit 2 with empty stdout; unreadable input emits an incomplete JSON report.

Where this check stops

Maximum export size 1,048,576 UTF-8 bytes; 100 articles; 100 FAQs; 300 total claims; JSON depth 6 (root 0); article and answer text at most 10,000 code units; identifiers and questions at most 1,000 code units; injected-clock evaluation at most 5,000 ms. Every N bound accepts N and rejects N+1. Paths are realpath-confined. --out refuses symlink destinations, parent escapes, and path or hard-link aliases of its input, including a named missing input.

Before adapting the command to your own workflow, review the accepted inputs, exit codes and safety boundaries in the README.

Compiled with AI assistance from checked-in public documentation and example scripts. Run the example and review the repository's current documentation before relying on its result.