{
  "id": "keywords/report",
  "mentions": [
    {
      "context": "… build. Each step is a pure function of the outputs of the previous ones and reports its anomalies as findings; no content anomaly stops the chain. Two builds o…",
      "file": {
        "href": "../../specs/processes/ingestion/build-pipeline/index.html",
        "label": "processes/ingestion/build-pipeline.md"
      },
      "href": "../../specs/processes/ingestion/build-pipeline/index.html#L7",
      "kind": "recognised",
      "line": 7,
      "passages": 7,
      "surface": "reports",
      "title": "Build pipeline",
      "type": "process",
      "typeLabel": "Process"
    },
    {
      "context": "…the freshness threshold of 180 days, which is reported here and in the build report, never on the pages themselves.\" The threshold named is the one that flags t…",
      "file": {
        "href": "../../specs/screens/pages/about/index.html",
        "label": "screens/pages/about.md"
      },
      "href": "../../specs/screens/pages/about/index.html#L15",
      "kind": "recognised",
      "line": 15,
      "passages": 4,
      "surface": "report",
      "title": "About this wiki",
      "type": "screen",
      "typeLabel": "Screen"
    },
    {
      "context": "…ource, path, line and entity, same severity, message and remediation. The build reports more, never less: the checks that need the whole model only exist there.",
      "file": {
        "href": "../../specs/rules/engine/linter-build-parity/index.html",
        "label": "rules/engine/linter-build-parity.rule.md"
      },
      "href": "../../specs/rules/engine/linter-build-parity/index.html#L8",
      "kind": "recognised",
      "line": 8,
      "passages": 3,
      "surface": "reports",
      "title": "Linter and build parity",
      "type": "rule",
      "typeLabel": "Business rule"
    },
    {
      "context": "…on the golden corpus and on the faulty corpus holds them to it, and the JSON report of the linter repeats the list so that a forge report says what was checked.",
      "file": {
        "href": "../../glossary/quality/checks/local-check/index.html",
        "label": "quality/checks/local-check.md"
      },
      "href": "../../glossary/quality/checks/local-check/index.html#L7",
      "kind": "recognised",
      "line": 7,
      "passages": 2,
      "surface": "report",
      "title": "Local check",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "The report the linter writes for a forge with --format: a SARIF log that GitHub code scanning shows in the margin of the diff, on the file and line of each find…",
      "file": {
        "href": "../../glossary/quality/findings/forge-report/index.html",
        "label": "quality/findings/forge-report.md"
      },
      "href": "../../glossary/quality/findings/forge-report/index.html#L6",
      "kind": "recognised",
      "line": 6,
      "passages": 2,
      "surface": "report",
      "title": "Forge report",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…, then a count. In repo scope it needs no network and writes nothing but the report --output names; in global scope it also reads the published model of the wik…",
      "file": {
        "href": "../../glossary/quality/linter/linter/index.html",
        "label": "quality/linter/linter.md"
      },
      "href": "../../glossary/quality/linter/linter/index.html#L6",
      "kind": "recognised",
      "line": 6,
      "passages": 2,
      "surface": "report",
      "title": "Linter",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…ead the pseudonymisation dictionary the configuration names and validate it; report a missing or malformed file, as a warning while pseudonymisation is disabled…",
      "file": {
        "href": "../../specs/processes/ingestion/build-pipeline/index.html",
        "label": "processes/ingestion/build-pipeline.md"
      },
      "href": "../../specs/processes/ingestion/build-pipeline/index.html#L15",
      "kind": "recognised",
      "line": 15,
      "passages": 7,
      "surface": "report",
      "title": "Build pipeline",
      "type": "process",
      "typeLabel": "Process"
    },
    {
      "context": "… whose reader cannot write it back, and every transcript unless the configuration publishes them; report the name-shaped mentions the dictionary does not cover.",
      "file": {
        "href": "../../specs/processes/ingestion/build-pipeline/index.html",
        "label": "processes/ingestion/build-pipeline.md"
      },
      "href": "../../specs/processes/ingestion/build-pipeline/index.html#L15",
      "kind": "recognised",
      "line": 15,
      "passages": 7,
      "surface": "report",
      "title": "Build pipeline",
      "type": "process",
      "typeLabel": "Process"
    },
    {
      "context": "…that look like twin resources, by declaration, base name, the title a reader reports against the heading of a note, or their texts compared without the stopword…",
      "file": {
        "href": "../../specs/processes/ingestion/build-pipeline/index.html",
        "label": "processes/ingestion/build-pipeline.md"
      },
      "href": "../../specs/processes/ingestion/build-pipeline/index.html#L19",
      "kind": "recognised",
      "line": 19,
      "passages": 7,
      "surface": "reports",
      "title": "Build pipeline",
      "type": "process",
      "typeLabel": "Process"
    },
    {
      "context": "… entity with several representations, the note's identifier when it has one, report the pairs above the candidate threshold; a pair the lock file merges is one …",
      "file": {
        "href": "../../specs/processes/ingestion/build-pipeline/index.html",
        "label": "processes/ingestion/build-pipeline.md"
      },
      "href": "../../specs/processes/ingestion/build-pipeline/index.html#L19",
      "kind": "recognised",
      "line": 19,
      "passages": 7,
      "surface": "report",
      "title": "Build pipeline",
      "type": "process",
      "typeLabel": "Process"
    },
    {
      "context": "…the criterion lock file, a pair it separates is neither merged nor reported; report every document left without a markdown representation. The reconciliation co…",
      "file": {
        "href": "../../specs/processes/ingestion/build-pipeline/index.html",
        "label": "processes/ingestion/build-pipeline.md"
      },
      "href": "../../specs/processes/ingestion/build-pipeline/index.html#L19",
      "kind": "recognised",
      "line": 19,
      "passages": 7,
      "surface": "report",
      "title": "Build pipeline",
      "type": "process",
      "typeLabel": "Process"
    },
    {
      "context": "…hold, attach every unclassified note within the radius to its closest pivot, report each one as a suggested domain and file it under the domain named after its …",
      "file": {
        "href": "../../specs/processes/ingestion/build-pipeline/index.html",
        "label": "processes/ingestion/build-pipeline.md"
      },
      "href": "../../specs/processes/ingestion/build-pipeline/index.html#L26",
      "kind": "recognised",
      "line": 26,
      "passages": 7,
      "surface": "report",
      "title": "Build pipeline",
      "type": "process",
      "typeLabel": "Process"
    },
    {
      "context": "…se conversion failed, and the words used fewer than 3 times. The publication report lists them.\", the threshold being inference.keyword_pages.min_occurrences an…",
      "file": {
        "href": "../../specs/screens/pages/about/index.html",
        "label": "screens/pages/about.md"
      },
      "href": "../../specs/screens/pages/about/index.html#L17",
      "kind": "recognised",
      "line": 17,
      "passages": 4,
      "surface": "report",
      "title": "About this wiki",
      "type": "screen",
      "typeLabel": "Screen"
    },
    {
      "context": "… them.\", the threshold being inference.keyword_pages.min_occurrences and the report the to-do page; and \"Correct a page. Every page carries at its foot the path…",
      "file": {
        "href": "../../specs/screens/pages/about/index.html",
        "label": "screens/pages/about.md"
      },
      "href": "../../specs/screens/pages/about/index.html#L17",
      "kind": "recognised",
      "line": 17,
      "passages": 4,
      "surface": "report",
      "title": "About this wiki",
      "type": "screen",
      "typeLabel": "Screen"
    },
    {
      "context": "Open the publication report → to-do page",
      "file": {
        "href": "../../specs/screens/pages/about/index.html",
        "label": "screens/pages/about.md"
      },
      "href": "../../specs/screens/pages/about/index.html#L28",
      "kind": "recognised",
      "line": 28,
      "passages": 4,
      "surface": "report",
      "title": "About this wiki",
      "type": "screen",
      "typeLabel": "Screen"
    },
    {
      "context": "…orted by neither side; any divergence fails continuous integration. The JSON report of the linter carries scope and checks so that a forge report states which c…",
      "file": {
        "href": "../../specs/rules/engine/linter-build-parity/index.html",
        "label": "rules/engine/linter-build-parity.rule.md"
      },
      "href": "../../specs/rules/engine/linter-build-parity/index.html#L10",
      "kind": "recognised",
      "line": 10,
      "passages": 3,
      "surface": "report",
      "title": "Linter and build parity",
      "type": "rule",
      "typeLabel": "Business rule"
    },
    {
      "context": "…tion. The JSON report of the linter carries scope and checks so that a forge report states which checks the guarantee covers. The getting started guide and the …",
      "file": {
        "href": "../../specs/rules/engine/linter-build-parity/index.html",
        "label": "rules/engine/linter-build-parity.rule.md"
      },
      "href": "../../specs/rules/engine/linter-build-parity/index.html#L10",
      "kind": "recognised",
      "line": 10,
      "passages": 3,
      "surface": "report",
      "title": "Linter and build parity",
      "type": "rule",
      "typeLabel": "Business rule"
    },
    {
      "context": "…on the golden corpus and on the faulty corpus holds them to it, and the JSON report of the linter repeats the list so that a forge report says what was checked.",
      "file": {
        "href": "../../glossary/quality/checks/local-check/index.html",
        "label": "quality/checks/local-check.md"
      },
      "href": "../../glossary/quality/checks/local-check/index.html#L7",
      "kind": "recognised",
      "line": 7,
      "passages": 2,
      "surface": "report",
      "title": "Local check",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…ows in the margin of the diff, on the file and line of each finding; a JUnit report that a GitLab merge request lists as failed tests with the message, the reme…",
      "file": {
        "href": "../../glossary/quality/findings/forge-report/index.html",
        "label": "quality/findings/forge-report.md"
      },
      "href": "../../glossary/quality/findings/forge-report/index.html#L6",
      "kind": "recognised",
      "line": 6,
      "passages": 2,
      "surface": "report",
      "title": "Forge report",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…the local checks, it fails from the severity --fail-on gives, writes a forge report on request, applies the safe fixes with --fix, and runs the same way as an n…",
      "file": {
        "href": "../../glossary/quality/linter/linter/index.html",
        "label": "quality/linter/linter.md"
      },
      "href": "../../glossary/quality/linter/linter/index.html#L6",
      "kind": "recognised",
      "line": 6,
      "passages": 2,
      "surface": "report",
      "title": "Linter",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…s an operation of the api with the properties of the contract only, and the operation unmatched check reports it, as a warning, so that someone writes the note.",
      "file": {
        "href": "../../briefs/meetings/2026/2026-06-18-contract-import-scope/contract-import-scope/index.html",
        "label": "meetings/2026/2026-06-18-contract-import-scope/contract-import-scope.vtt"
      },
      "href": "../../briefs/meetings/2026/2026-06-18-contract-import-scope/contract-import-scope/index.html#L6",
      "kind": "recognised",
      "line": 6,
      "location": "21:17",
      "surface": "reports",
      "title": "Contract import scope review",
      "type": "meeting",
      "typeLabel": "Meeting"
    },
    {
      "context": "…ument names the signals of every scored pair, and the lock wins over the score in both directions: merged pairs merge, separated pairs neither merge nor report.",
      "file": {
        "href": "../../briefs/meetings/2026/2026-07-09-twin-resources-review/twin-resources-review/index.html",
        "label": "meetings/2026/2026-07-09-twin-resources-review/twin-resources-review.md"
      },
      "href": "../../briefs/meetings/2026/2026-07-09-twin-resources-review/twin-resources-review/index.html#L16",
      "kind": "recognised",
      "line": 16,
      "surface": "report",
      "title": "Twin resources review",
      "type": "meeting",
      "typeLabel": "Meeting"
    },
    {
      "context": "… both called \"Source\", or two terms whose aliases meet. The tool keeps both, reports I-TERM-HOMONYM with the form and the identifiers, and links every occurrenc…",
      "file": {
        "href": "../../glossary/inference/recognition/homonym/index.html",
        "label": "inference/recognition/homonym.md"
      },
      "href": "../../glossary/inference/recognition/homonym/index.html#L6",
      "kind": "recognised",
      "line": 6,
      "surface": "reports",
      "title": "Homonym",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…t all; the publication threshold decides which of those become pages, and the build summary reports the pages generated and the expressions under the threshold.",
      "file": {
        "href": "../../glossary/inference/recognition/publication-threshold/index.html",
        "label": "inference/recognition/publication-threshold.md"
      },
      "href": "../../glossary/inference/recognition/publication-threshold/index.html#L6",
      "kind": "recognised",
      "line": 6,
      "surface": "reports",
      "title": "Publication threshold",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…meout_s, max_size_mb), runs in a pool of conversion.parallelism workers, and reports a failed conversion as W-CONV-FAILED, the document staying a download. The …",
      "file": {
        "href": "../../glossary/ingestion/documents/converter/index.html",
        "label": "ingestion/documents/converter.md"
      },
      "href": "../../glossary/ingestion/documents/converter/index.html#L7",
      "kind": "recognised",
      "line": 7,
      "surface": "reports",
      "title": "Converter",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…ces, checks, writing of the model, theme, rendering, measurement. Every step reports its anomalies as findings and nothing stops the chain. By extension, the jo…",
      "file": {
        "href": "../../glossary/ingestion/pipeline/pipeline/index.html",
        "label": "ingestion/pipeline/pipeline.md"
      },
      "href": "../../glossary/ingestion/pipeline/pipeline/index.html#L6",
      "kind": "recognised",
      "line": 6,
      "surface": "reports",
      "title": "Pipeline",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "… of the pipeline, a pure function of the outputs of the steps before it that reports its anomalies as findings and never stops the chain. The architecture guide…",
      "file": {
        "href": "../../glossary/ingestion/pipeline/step/index.html",
        "label": "ingestion/pipeline/step.md"
      },
      "href": "../../glossary/ingestion/pipeline/step/index.html#L6",
      "kind": "recognised",
      "line": 6,
      "surface": "reports",
      "title": "Step",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…commit, or an explicit declaration) and merges them into a single page when the score is high enough. Below that, it reports a candidate and waits for the lock.",
      "file": {
        "href": "../../glossary/ingestion/sources/twin-resources/index.html",
        "label": "ingestion/sources/twin-resources.md"
      },
      "href": "../../glossary/ingestion/sources/twin-resources/index.html#L6",
      "kind": "recognised",
      "line": 6,
      "surface": "reports",
      "title": "Twin resources",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…ed after the tool's own. The build validates it against the theme schema and reports a faulty key by its path. A plugin may ship a theme of its own, with compon…",
      "file": {
        "href": "../../glossary/publication/site/theme/index.html",
        "label": "publication/site/theme.md"
      },
      "href": "../../glossary/publication/site/theme/index.html#L6",
      "kind": "recognised",
      "line": 6,
      "surface": "reports",
      "title": "Theme",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…ngs. Checks live in one registry shared by the build and the linter, so both report the same thing on the same repository. Each check has an identifier, a defau…",
      "file": {
        "href": "../../glossary/quality/checks/check/index.html",
        "label": "quality/checks/check.md"
      },
      "href": "../../glossary/quality/checks/check/index.html#L6",
      "kind": "recognised",
      "line": 6,
      "surface": "report",
      "title": "Check",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…mentation page of the check, whose \"How to fix\" section says more. The JUnit report shows the remediation with the message so that a merge request reads it with…",
      "file": {
        "href": "../../glossary/quality/findings/remediation/index.html",
        "label": "quality/findings/remediation.md"
      },
      "href": "../../glossary/quality/findings/remediation/index.html#L6",
      "kind": "recognised",
      "line": 6,
      "surface": "report",
      "title": "Remediation",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "…thing. When no model can be read, the global scope degrades to the local one, says so on one line and in its reports, and exits according to the local findings.",
      "file": {
        "href": "../../glossary/quality/linter/scope/index.html",
        "label": "quality/linter/scope.md"
      },
      "href": "../../glossary/quality/linter/scope/index.html#L6",
      "kind": "recognised",
      "line": 6,
      "surface": "reports",
      "title": "Scope",
      "type": "term",
      "typeLabel": "Term"
    },
    {
      "context": "… yet: this note is ahead of its contract, which the operation unmatched rule reports until the contract catches up, and the API page lists it among the gaps, de…",
      "file": {
        "href": "../../specs/api/operations/suggest-links/index.html",
        "label": "api/operations/suggest-links.md"
      },
      "href": "../../specs/api/operations/suggest-links/index.html#L8",
      "kind": "recognised",
      "line": 8,
      "surface": "reports",
      "title": "Suggest links",
      "type": "endpoint",
      "typeLabel": "Operation"
    },
    {
      "context": "… the word is searchable but has no page. The threshold is configurable, and the build reports how many pages it generated and how many expressions it discarded.",
      "file": {
        "href": "../../specs/decisions/inference/keyword-page-threshold/index.html",
        "label": "decisions/inference/keyword-page-threshold.md"
      },
      "href": "../../specs/decisions/inference/keyword-page-threshold/index.html#L9",
      "kind": "recognised",
      "line": 9,
      "surface": "reports",
      "title": "Keyword page threshold",
      "type": "decision",
      "typeLabel": "Decision"
    },
    {
      "context": "…rdance lint in its merge requests, with the SARIF log on GitHub or the JUnit report on GitLab so that every finding lands in the margin of the diff, and --sourc…",
      "file": {
        "href": "../../specs/processes/ingestion/onboarding-a-repository/index.html",
        "label": "processes/ingestion/onboarding-a-repository.md"
      },
      "href": "../../specs/processes/ingestion/onboarding-a-repository/index.html#L17",
      "kind": "recognised",
      "line": 17,
      "surface": "report",
      "title": "Onboarding a repository",
      "type": "process",
      "typeLabel": "Process"
    },
    {
      "context": "…xt, JSON, SARIF or JUnit, each with the address of its documentation page; the JSON and SARIF reports name the scope and say when the global scope was degraded.",
      "file": {
        "href": "../../specs/processes/quality/lint/index.html",
        "label": "processes/quality/lint.md"
      },
      "href": "../../specs/processes/quality/lint/index.html#L18",
      "kind": "recognised",
      "line": 18,
      "surface": "reports",
      "title": "Lint",
      "type": "process",
      "typeLabel": "Process"
    },
    {
      "context": "…; it then lints the faulty corpus through the published command line from an empty folder and through the binary of the release, and the two reports must match.",
      "file": {
        "href": "../../specs/processes/quality/release/index.html",
        "label": "processes/quality/release.md"
      },
      "href": "../../specs/processes/quality/release/index.html#L16",
      "kind": "recognised",
      "line": 16,
      "surface": "reports",
      "title": "Release",
      "type": "process",
      "typeLabel": "Process"
    },
    {
      "context": "…der checks: and the fail-on policy of the build, reads the build log and the reports of the lint in the merge requests, and holds the corpus to the rules the ch…",
      "file": {
        "href": "../../specs/roles/quality/quality-owner/index.html",
        "label": "roles/quality/quality-owner.md"
      },
      "href": "../../specs/roles/quality/quality-owner/index.html#L6",
      "kind": "recognised",
      "line": 6,
      "surface": "reports",
      "title": "Quality owner",
      "type": "role",
      "typeLabel": "Role"
    },
    {
      "context": "…l, and every link that points to it is reported as a broken link. The linter reports it before the file is pushed, and an .editorconfig with charset = utf-8 kee…",
      "file": {
        "href": "../../specs/rules/identifiers/invalid-encoding/index.html",
        "label": "rules/identifiers/invalid-encoding.rule.md"
      },
      "href": "../../specs/rules/identifiers/invalid-encoding/index.html#L7",
      "kind": "recognised",
      "line": 7,
      "surface": "reports",
      "title": "Invalid encoding",
      "type": "rule",
      "typeLabel": "Business rule"
    },
    {
      "context": "The frontmatter type contradicts the type given by the file suffix. The tool reports rather than guesses.",
      "file": {
        "href": "../../specs/rules/identifiers/type-conflict/index.html",
        "label": "rules/identifiers/type-conflict.rule.md"
      },
      "href": "../../specs/rules/identifiers/type-conflict/index.html#L7",
      "kind": "recognised",
      "line": 7,
      "surface": "reports",
      "title": "Type conflict",
      "type": "rule",
      "typeLabel": "Business rule"
    },
    {
      "context": "…or the author links to a note of the same source. The linter in global scope reports the same finding from one repository when the link reaches a note of the pu…",
      "file": {
        "href": "../../specs/rules/links/cross-source-link/index.html",
        "label": "rules/links/cross-source-link.rule.md"
      },
      "href": "../../specs/rules/links/cross-source-link/index.html#L7",
      "kind": "recognised",
      "line": 7,
      "surface": "reports",
      "title": "Cross-source link",
      "type": "rule",
      "typeLabel": "Business rule"
    },
    {
      "context": "… Not to be confused with section tells the reader which is which. The linter reports the same finding in global scope for a local title that an entity of anothe…",
      "file": {
        "href": "../../specs/rules/vocabulary/term-homonym/index.html",
        "label": "rules/vocabulary/term-homonym.rule.md"
      },
      "href": "../../specs/rules/vocabulary/term-homonym/index.html#L7",
      "kind": "recognised",
      "line": 7,
      "surface": "reports",
      "title": "Term homonym",
      "type": "rule",
      "typeLabel": "Business rule"
    },
    {
      "context": "…n note the contract does not declare, the notes the operation unmatched rule reports, linked, with a hollow chip and \"unknown path\" when the note declares neith…",
      "file": {
        "href": "../../specs/screens/pages/api-page/index.html",
        "label": "screens/pages/api-page.md"
      },
      "href": "../../specs/screens/pages/api-page/index.html#L14",
      "kind": "recognised",
      "line": 14,
      "surface": "reports",
      "title": "API page",
      "type": "screen",
      "typeLabel": "Screen"
    },
    {
      "context": "The page of an office document, a slide deck, a report, a spreadsheet or a PDF, alone or merged with its note. Same shell as the entity page: the tree of the sp…",
      "file": {
        "href": "../../specs/screens/pages/document-page/index.html",
        "label": "screens/pages/document-page.md"
      },
      "href": "../../specs/screens/pages/document-page/index.html#L8",
      "kind": "recognised",
      "line": 8,
      "surface": "report",
      "title": "Document page",
      "type": "screen",
      "typeLabel": "Screen"
    },
    {
      "context": "…ed or missing, with the note that the same finding stands in the publication report and in the linter output: the failure is reported to whoever can fix it. A d…",
      "file": {
        "href": "../../specs/screens/pages/edge-cases/index.html",
        "label": "screens/pages/edge-cases.md"
      },
      "href": "../../specs/screens/pages/edge-cases/index.html#L19",
      "kind": "recognised",
      "line": 19,
      "surface": "report",
      "title": "Edge cases",
      "type": "screen",
      "typeLabel": "Screen"
    },
    {
      "context": "… or file count; the lists are sorted by decreasing count, then by identifier. This is not a health report; the linter in continuous integration plays that role.",
      "file": {
        "href": "../../specs/screens/pages/todo-page/index.html",
        "label": "screens/pages/todo-page.md"
      },
      "href": "../../specs/screens/pages/todo-page/index.html#L9",
      "kind": "recognised",
      "line": 9,
      "surface": "report",
      "title": "To-do page",
      "type": "screen",
      "typeLabel": "Screen"
    },
    {
      "context": "…in italics, the other direction of the gap that the operation unmatched rule reports. Those rows are text in the served page: without JavaScript nothing is lost…",
      "file": {
        "href": "../../specs/viewers/contract-viewer/index.html",
        "label": "viewers/contract-viewer.md"
      },
      "href": "../../specs/viewers/contract-viewer/index.html#L14",
      "kind": "recognised",
      "line": 14,
      "surface": "reports",
      "title": "Contract viewer",
      "type": "screen",
      "typeLabel": "Screen"
    }
  ]
}
