Rules
39 business rules described. A business rule is a condition the business imposes, with what it constrains and what happens when it is broken.
| Business rule | Severity | First line | Links |
|---|---|---|---|
| API without consumer | warning | An API has no consumer, declared or inferred: no attribute, no section, no mention in another note. | 22 |
| Consumer mismatch | warning | An API declares a consumer that never cites it, or a note cites an API that does not list it. One of the two is out of date. A declared consumer is an identifier, written in full or relative to the source of the API note; a note listed under the ## Consumers section of the API note is declared too; a note cites the API when a serves link between the two was read in that note, the API's own consumers attribute and ## Consumers section being declarations rather than citations. The attribute asks for the reconciliation: an API note without it is left to the API without consumer check. | 22 |
| Missing application | warning | An entity resolves to no application: none on the source, none in a rule, none in frontmatter. | 21 |
| Unknown type | warning | The type cascade gave a note a type that neither the default profile nor the project profile declares: a source type, a typing rule or a frontmatter type names a slug that does not exist. The note is kept and treated as a document, and its type origin records where the unknown slug came from, so that the site shows it. The fix is a type of the profile, a declaration in the project profile, or a correction of the rule or the frontmatter. | 21 |
| Disabled plugin | warning | A declared plugin needs a system tool that is not installed on the machine that builds: the build ran the detection command of every system dependency of the manifest, one answered nothing, and the plugin was not registered, so that none of its readers, converters, sources, inference methods, checks, projections or components took part in the build. An optional dependency yields the same finding as info and the plugin stays registered. The fix is the tool on the PATH of the build, or the plugin removed from plugins:; a project whose conversions must run raises the severity to error. | 20 |
| Unknown application | warning | The application cascade (the application of the source, the set.application of a typing rule, the frontmatter application) produced an identifier that applications: does not declare. The value is kept as written on the entity and the finding says where it came from; nothing composes the entity into a declared application. Distinct from the missing application, where the cascade produced nothing at all. | 20 |
| Unknown attribute | warning | A frontmatter key is declared neither by the type of the note nor among the common attributes of the profile. The value is kept as written in the model and shown in the side panel of the page, but nothing interprets it: it produces no relation and no typed display. Most often a typo in a key, or an attribute the project profile has yet to declare. | 19 |
| Invalid identifier | error | A frontmatter id does not follow the identifier pattern, lowercase letters, digits and hyphens in a first segment, then at least one more segment after a slash. The declared value is ignored and the identifier derives from the source name and the file path, as if no id had been written, so that the page still exists at a predictable address; the finding says which value was refused. | 18 |
| Unknown domain | warning | A frontmatter domain names no domain declared under domains: of the configuration, by its identifier or by its identifier path. The frontmatter wins over the folders and the globs, so the value is kept as written on the entity and the site shows what the author meant, but nothing files the note under a declared domain. Distinct from the unclassified domain, where the note names nothing, sits under no claimed folder and matches no glob. | 18 |
| Unusable pseudonymisation dictionary | warning | The pseudonymisation dictionary the configuration names is missing, is not valid YAML or does not match its schema. While pseudonymisation is disabled the finding is a warning and the build goes on; when it is enabled the finding is raised as an error, the build fails and every transcript is withheld from the output, because a site built without the dictionary would publish every name as written. | 18 |
| Invalid encoding | error | A file is not valid UTF-8, a note saved in a single-byte encoding for instance. The file is skipped entirely: nothing of it enters the model, 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 keeps the mistake from coming back. | 17 |
| Transcript withheld | warning | A transcript was kept out of the site because its reader cannot write it back with the pseudonyms: the page of the meeting shows neither the transcript nor its download, and its text enters neither the model nor the search index. The raw file is never published. | 16 |
| Duplicate identifier | error | Two files resolve to the same identifier, because identifiers strip the extension and the type suffix, or because two notes declare the same id. The first in canonical order is kept. | 14 |
| Unreachable source | warning | A declared source could not be fetched or read: wrong URL, unknown ref, missing credentials, a missing local path, or a faulty concordance-lint.yaml in the repository, which the build refuses to read differently from its linter. The build goes on without it; nothing from that source enters the model until it comes back. | 14 |
| Personal mention detected | info | A personal name was detected in a transcript outside the pseudonymisation dictionary. It is flagged for review before anything is published. | 13 |
| Type conflict | error | The frontmatter type contradicts the type given by the file suffix. The tool reports rather than guesses. | 13 |
| Invalid frontmatter | error | The YAML frontmatter cannot be parsed. The body is still processed; every declared attribute is lost. | 12 |
| Suspect conversion | warning | A converted PDF holds no extractable text although the document is large; it is probably made of images. Nothing of it enters search or the occurrence scan. | 11 |
| Unused term | info | A glossary term is never cited: neither its title nor its aliases appear elsewhere. | 10 |
19 rules of 39 — pagination by twenty. The Links column counts the related pages, which brings the most central rules of the journey to the top.