Documents / Reference / ref-cbf147832c37
Glossary — one term, one definition, one owner
13 terms defined with owner and evidence, including the words that mean two things.
Synonyms and homonyms are findings, not tidy-ups: where one word means two things
(stale, resolved), that is recorded rather than smoothed over.
document¶
One markdown file with YAML frontmatter, identified by a type-prefixed id, and the unit of everything docir does: validation, retrieval, relation, staleness.
Owner: repo maintainer · Used in: documents, indexing, tags, CLI
Evidence:
src/docir/modules/documents/domain/entities/document.py:19-38
index¶
The derived SQLite projection of the documents — metadata, FTS5 full text, relation graph, embedding vectors and the id counter. Gitignored and rebuildable.
Owner: repo maintainer · Used in: platform.persistence, documents, indexing
Conflicts:
- context the "rebuildable" claim; definition "Rebuildable" is true of six of the seven tables.
id_sequencesis part of the index by every structural definition (it lives in the index database, is created by the index migration, is gitignored) but is NOT reconstructed byreindex. The word "derived" is doing work it cannot support for that one table, and the consequence isissue-b7ddde3ce860.; gapissue-b7ddde3ce860
Evidence:
README.md:20-35src/docir/platform/persistence/alembic/versions/0001_initial_index.py
stale¶
OVERLOADED — three unrelated meanings in one codebase: (1) a document past its type's review cadence (the product feature, adr-bd7c4f3c5764); (2) an index row whose file changed out-of-band (StaleWriteError, the concurrency guard); (3) an index row for a file that no longer exists (for stale in uow.documents.all() in the reindex removal sweep).
Owner: repo maintainer · Used in: documents.domain, documents.application, platform.errors
Conflicts:
- context document_service.update(); definition The local variable
stale(sense 2) sits eleven lines fromself._is_stale(...)(sense 1) in the same method. Both are booleans about the same document and they mean entirely different things.; gapissue-d8295c5c76d1
Evidence:
src/docir/modules/documents/domain/services/graph_checks.py:84src/docir/platform/errors/__init__.py:101-104src/docir/modules/documents/application/services/document_service.py:136src/docir/modules/documents/application/services/maintenance_service.py:168
archived¶
A document withdrawn from retrieval but kept on disk and in the metadata table. Set by docir archive; reversible.
Owner: repo maintainer · Used in: documents, indexing
Conflicts:
- context inactive status; definition
inactive_statuses(e.g.resolved,superseded,deprecated) also withdraws a document from the list read paths. Two independent mechanisms with near-identical user-visible effect, different flags to defeat (--include-archivedvs--include-resolved), and different enforcement points — which is why one of them leaks through graph expansion and the other does not.; gapissue-8c37bf22ba3c
Evidence:
src/docir/modules/documents/application/services/document_service.py:161-188
resolved¶
In the CLI: the flag name --include-resolved for "also show documents in an inactive status" — on every type, including ones with no status called resolved.
Owner: repo maintainer · Used in: CLI, documents.application
Conflicts:
- context the schema; definition
resolvedis a status of exactly two types (issuein the software profile,incidentin ops). For adecisionthe flag means "include rejected and superseded"; for apolicy, "include superseded and retired". The wire field is namedinclude_inactive— correctly — and the CLI renames it to something narrower on the way out. A user asking for decisions cannot guess that--include-resolvedis the flag they need.; gapissue-efc29234eb57
Evidence:
src/docir/entry_points/cli/app.py:269288303src/docir/entry_points/dispatch.py:116
related¶
The outgoing typed edges of a document (RelatedRef{target, kind}).
Owner: repo maintainer · Used in: documents.domain, platform.persistence, frontmatter
Conflicts:
- context on disk vs in the API; definition In frontmatter an entry is either a bare id or
{to: <id>, kind: <k>}. In JSON output the same edge is{target: <id>, kind: <k>}. The key istoin one representation andtargetin the other, for the same field of the same object.; gapissue-8d5b5b45e2fc
Evidence:
src/docir/modules/documents/domain/value_objects/relations.py
level¶
A per-type integer expressing architectural abstraction height; a dependency edge from a higher level to a lower one is reported as a layering violation.
Owner: repo maintainer · Used in: documents.domain.schema, graph_checks
Conflicts:
- context the shipped software profile; definition The levels assigned (decision 3, issue 1) make the ordinary and intended relationship "this decision addresses that issue" a violation. The term's definition and the shipped values disagree about what the ordering means.; gap
issue-40d1792bc9f9
Evidence:
src/docir/modules/documents/domain/schema.py:46-47src/docir/modules/documents/domain/services/graph_checks.py:194-223
check / lint¶
check = Tier 1, structural, non-blocking-but-CI-gateable. lint --deep = Tier 2, advisory heuristics.
Owner: repo maintainer · Used in: CLI, documents.application
Conflicts:
- context
--strict; definitioncheckis documented as producing "warnings rather than failing an agent mid-task" (graph_checks.py:3-5), yet--strictturns every one of them into a build failure with no severity distinction. The tier model says these are warnings; the CI integration treats them as errors.; gapissue-9cb85759076d
Evidence:
src/docir/entry_points/cli/app.py:419-456CLAUDE.md
score¶
The reciprocal-rank-fusion value for a context result.
Owner: repo maintainer · Used in: indexing.domain, CLI output, README
Conflicts:
- context what a reader will assume; definition Published as a bare number in agent-facing JSON, where it reads as a relevance measure. It is a rank-position artefact: bounded near 1/(k+1)+1/(k+1) ≈ 0.033, essentially identical for a perfect match and a nonsense query. README:95 says "ordering is the point", which is correct — but the value is still emitted, and nothing prevents an agent thresholding on it.; gap
issue-93152f7b9213
Evidence:
src/docir/modules/indexing/domain/scoring.py:44-73README.md:90-95
home / store¶
The single resolved directory holding docs/, docs-schema.yaml and the index.
Owner: repo maintainer · Used in: config, CLI, docs
Conflicts:
- context naming; definition Called "home" in code and
--home/DOCIR_HOME, "store" in the CLI help andadr-20eec6e2e2ca, and "data root" in the--homeoption help — three names for one concept in user-facing text.; gapissue-a40dbcc7a19a
Evidence:
src/docir/config/settings.py:51-104
profile¶
A named bundle of document types layered onto the frozen core schema.
Owner: repo maintainer · Used in: documents.infra, CLI
Evidence:
src/docir/modules/documents/infra/profiles.py:41-208
skeleton¶
A DocumentSummary: frontmatter, typed edges and staleness, with no body. The unit the list read paths return and the source of the token savings.
Owner: repo maintainer · Used in: documents.application, README
Evidence:
src/docir/modules/documents/application/dto.py:84-108
owner¶
A free-form string naming who is accountable for re-verifying a document.
Owner: repo maintainer · Used in: documents.domain, graph_checks
Conflicts:
- context what the word implies vs what it does; definition The word implies an accountable party. The field is written, stored, and interpolated into one
checkmessage — nothing else. It cannot be queried or filtered on, triggers no notification, and is not validated against anything. It names a responsibility the system never routes to anyone.; gapissue-b4f441c7210f
Evidence:
src/docir/modules/documents/domain/entities/document.py:37