# rules/entrypoints/taxonomy.entrypoint.ts

> 27 lines of code and 5 definitions.

Tree: Governance tree
Language: typescript
Layer: runtime
Canonical: https://banes-lab.com/anatomy/governance#file-governance-rules-entrypoints-taxonomy-entrypoint-ts
Source text: https://banes-lab.com/source/governance/rules/entrypoints/taxonomy.entrypoint.ts.txt

Listed in [rules/entrypoints](https://banes-lab.com/api/source/governance/rules/entrypoints.md), after [rules/entrypoints/index.entrypoint.ts](https://banes-lab.com/source/governance/rules/entrypoints/index.entrypoint.ts.md) and before [rules/entrypoints/writing.entrypoint.ts](https://banes-lab.com/source/governance/rules/entrypoints/writing.entrypoint.ts.md).

## Definitions

- `FAILURE` (lexical_declaration, line 18)
- `report` (lexical_declaration, line 20)
- `findings` (lexical_declaration, line 21)
- `render` (lexical_declaration, line 24)
- `message` (lexical_declaration, line 25)

## Records this file checks

- [Declared Jurisdiction](https://banes-lab.com/records/architecture/declared-jurisdiction.md)
- [Bounded Nesting Depth](https://banes-lab.com/records/architecture/bounded-nesting-depth.md)
- [Closed Vocabulary](https://banes-lab.com/records/architecture/closed-vocabulary.md)
- [Concern-Folder Correspondence](https://banes-lab.com/records/architecture/concern-folder-correspondence.md)

## Source

```typescript
import { TAXONOMY_MESSAGES, taxonomyFindingLine, taxonomySummary } from "../../shared/strings/taxonomy.strings.ts";
import { coverageFindings } from "../../shared/analyzers/taxonomy.coverage.analyzer.ts";
import { defineCheck } from "@govlab/context/check";
import { taxonomyRoots } from "../../shared/manifests/taxonomy.manifest.ts";
import process from "node:process";
import { taxonomyReport } from "../../shared/analyzers/taxonomy.tree.analyzer.ts";

defineCheck({
    detects: [],
    enforces: [
        "architecture:declared-jurisdiction",
        "architecture:bounded-nesting-depth",
        "architecture:closed-vocabulary",
        "architecture:concern-folder-correspondence",
    ],
});

const FAILURE = 1;

const report = taxonomyReport();
const findings = [...report.findings, ...coverageFindings()];

for (const finding of findings) {
    const render = TAXONOMY_MESSAGES[finding.messageId];
    const message = render === undefined ? "" : render(finding.data);
    process.stderr.write(taxonomyFindingLine(finding.path, finding.messageId, message));
}
process.stdout.write(taxonomySummary(findings.length, report.assessed, taxonomyRoots().length));
if (findings.length > 0) {
    process.exitCode = FAILURE;
}
```
