_manifest.json
_manifest.json is a file in GovLab Constants. 83 lines of code and 0 definitions.
{
"label": "GovLab Constants",
"summary": "The closed vocabularies more than one member reads: the ontology face and relation ids, the character classes with their predicates, and the American spelling table. It is one dependency-free package addressed by specifier, so no member restates a vocabulary another member owns.",
"maturity": "stable",
"domains": [
{"meta": "platform",
"sub": "utilities"},
{"meta": "developer-tooling",
"sub": "linting-quality"}
],
"capabilities": [
"ontology-face-vocabulary",
"ontology-relation-vocabulary",
"character-class-predicates",
"american-spelling-table",
"specifier-addressed-constants"
],
"overlaps": [],
"incompatibleWith": [],
"supersedes": [],
"governedBy": [
"immutability",
"duplicate-code",
"separation-of-concerns"
],
"visibility": {"private": true,
"hidden": false},
"ecosystem": "typescript",
"deliverAs": "source",
"docs": {
"overview": "A dependency-free package holding the vocabularies that cross a member boundary. The ontology constants name each collection face (`ARCH_FACE`, `REASON_FACE` and their peers), the separator a face-qualified reference splits on, and each relation id an ontology edge carries. The character constants list the letters, digits and whitespace a scanner tests against, and the character predicates answer membership through a set lookup, so no consumer writes a regex. The word constants hold the British-to-American spelling table the word codemod and the site search both read.",
"whenToUse": [
"Two or more members agree on the same closed set of strings, and duplicating it would let the copies drift.",
"A scanner needs to test whether a character is a letter, a digit, whitespace or part of an identifier.",
"A member builds or splits a face-qualified ontology reference, or names an ontology relation."
],
"whenNotToUse": [
"A constant only one member reads. It stays in that member's own constants folder.",
"A tunable a consumer should be able to override. It belongs in `.govlab/govlab.config.ts`, not in a shipped closed set.",
"Behavior beyond a membership test. The predicates are the only functions here."
],
"quickStart": [
{
"intent": "Split a face-qualified reference and test a character",
"lang": "ts",
"code": "import { FACE_SEPARATOR, ONTOLOGY_FACES, isDigit } from \"@govlab/constants\";\n\nconst [face] = \"architecture:single-source-of-truth\".split(FACE_SEPARATOR);\nONTOLOGY_FACES.has(face ?? \"\");\nisDigit(\"7\");"
},
{
"intent": "Read the spelling table",
"lang": "ts",
"code": "import { AMERICAN_WORDS } from \"@govlab/constants\";\n\nAMERICAN_WORDS[\"behaviour\"];"
}
],
"configuration": "None. The package exposes no options and reads no config.",
"install": "A private workspace package resolved through the root `package.json` workspaces glob `govlab.root/govlab.*`. One `npm install` at the repo root links it. It has no build step and no runtime dependency, so importing `@govlab/constants` is the whole integration.",
"disposal": [
"Move each vocabulary into the member that owns it, and point every other reader at that member's specifier.",
"Drop `@govlab/constants` from every package's `dependencies`.",
"Remove `govlab.root/govlab.constants/`, its `containers` entry in `.govlab/shared/configs/taxonomy.config.ts` and its tests under `codebase.testing/test.govlab/constants/`."
],
"aiContext": [
"Import by the specifier `@govlab/constants`, never by relative path. Inside the package, a file reaches another through its `#configuration/*` and `#core/*` imports map.",
"The constants live in `configuration/constants/` and the predicates in `core/predicates/`, so a constant file carries no function.",
"These are closed vocabularies, and adding an entry to make a check pass is banned. Add a word that names something that exists, or rename the thing."
],
"apiNotes": [
{"name": "ONTOLOGY_FACES",
"note": "every declared face, the set a reference prefix is checked against."},
{
"name": "FACE_SEPARATOR",
"note": "the character that separates a face from the record id in a qualified reference."
},
{
"name": "isIdentifierChar",
"note": "true for a single letter, digit or joiner, and false for anything longer than one character."
},
{
"name": "AMERICAN_WORDS",
"note": "each British spelling mapped to its American form. `IZE_STEMS` and `IZE_SUFFIXES` cover the -ise family by rule instead of by word."
}
]
}
}