|
| 1 | +<!-- This file is generated from `rules.yaml`. Run `ruby scripts/render_readmes.rb` after changing the registry. --> |
| 2 | + |
1 | 3 | # Knowledge as Code |
2 | 4 |
|
3 | 5 | [Русская версия](README.ru.md) |
4 | 6 |
|
5 | | -A compact guide to organisational knowledge that remains understandable, verifiable, and reusable by a team. AI did not create these principles, but it makes their absence much more expensive: corporate knowledge has gained another fast and literal reader. |
| 7 | +A compact guide to organisational knowledge that remains understandable, verifiable, and reusable by a team. AI did not create these principles, but it makes their absence more expensive by becoming another fast and literal consumer of corporate knowledge. |
| 8 | + |
| 9 | +> AI does not create corporate memory. It becomes useful when that memory distinguishes sources, assertions, evidence, inferences, decisions, and unknowns. |
6 | 10 |
|
7 | | -> AI does not create corporate memory. It becomes useful when that memory can distinguish a source, a fact, an inference, a decision, and an unknown. |
| 11 | +## Working model |
8 | 12 |
|
9 | | -## The model |
| 13 | +The arrow is a reading path, not a storage pipeline. In practice, knowledge forms an acyclic graph of typed relationships. |
10 | 14 |
|
11 | | -`Source → fact → derivative → inference or hypothesis → decision → action` |
| 15 | +```text |
| 16 | +source ──evidence_for──▶ canonical assertion |
| 17 | + │ │ |
| 18 | + └────derived_from────────▶ report |
| 19 | + │ |
| 20 | +assertions + constraints ───▶ decision ──implemented_by──▶ action or code |
| 21 | +``` |
12 | 22 |
|
13 | | -Every layer links to the preceding one; none silently replaces it. |
| 23 | +## Independent metadata axes |
14 | 24 |
|
15 | | -## Knowledge-status notation |
| 25 | +Do not force epistemic state, document role, authorship, and lifecycle into one status. Apply each field only when it is meaningful. |
16 | 26 |
|
17 | | -| Label | Meaning | |
18 | | -| --- | --- | |
19 | | -| `FACT` | Confirmed by a primary source. | |
20 | | -| `DERIVED` | A reproducible calculation, extract, or transformation of facts. | |
21 | | -| `CLAIM` | Somebody's statement that has not yet been verified. | |
22 | | -| `HYPOTHESIS` | An assumption that can be tested. | |
23 | | -| `DECISION` | An accepted choice, rule, or policy. | |
24 | | -| `UNKNOWN` | An important, explicitly recorded gap. | |
25 | | -| `SYNTHETIC` | AI-generated, illustrative, or test data; not evidence. | |
| 27 | +| Field | Axis | Values | What it describes | |
| 28 | +| --- | --- | --- | --- | |
| 29 | +| `epistemic_state` | Epistemic state | `verified`, `claim`, `hypothesis`, `unknown` | What is known and how strongly it is supported. `verified` always implies named verification criteria. | |
| 30 | +| `record_kind` | Record role | `source`, `assertion`, `decision`, `instruction`, `report` | What responsibility the record owns. Evidence is a typed relationship, not a competing record role. | |
| 31 | +| `generation_mode` | Generation mode | `captured`, `human_authored`, `machine_generated`, `mixed` | How the content came into existence. Derivation is recorded separately through `derived_from`. | |
| 32 | +| `lifecycle` | Lifecycle | document: `draft`, `active`, `archived`; decision: `proposed`, `accepted`, `superseded`, `rejected` | Publication state and entity state are separate. A draft cannot silently override active knowledge. | |
26 | 33 |
|
27 | 34 | ## Rules |
28 | 35 |
|
29 | | -### KAC-01 — One fact, one owner |
| 36 | +### KAC-01 — One scope, one canonical owner |
30 | 37 |
|
31 | | -Every fact has one canonical source and a person responsible for its freshness. Other documents link to it or derive from it. |
| 38 | +Every material assertion has exactly one canonical owner within a declared scope. The owner is the record or system that maintains the current assertion; source evidence and the human steward are separate. |
32 | 39 |
|
33 | | -### KAC-02 — Do not confuse a source with its processing |
| 40 | +### KAC-02 — Separate source, assertion, and derivative |
34 | 41 |
|
35 | | -An email, meeting recording, contract, or export is a source. A transcript, summary, report, or presentation is a derivative. A derivative links to the source and its version. |
| 42 | +A source preserves what happened or was said. A canonical assertion records what the organisation currently accepts. A derivative transforms upstream material. None silently substitutes for another. |
36 | 43 |
|
37 | | -### KAC-03 — Preserve provenance |
| 44 | +### KAC-03 — Provenance is not truth |
38 | 45 |
|
39 | | -Every material record identifies its `source`, `author`, `created_at`, `as_of`, and transformation. Readers should be able to see who produced a result, when, and from what. |
| 46 | +Provenance answers who produced a record, when, from what, and through which transformation. Verification separately states what the evidence proves, under which criteria, scope, and date. |
40 | 47 |
|
41 | | -### KAC-04 — Mark the type of assertion |
| 48 | +### KAC-04 — One question, one metadata axis |
42 | 49 |
|
43 | | -Use `FACT`, `DERIVED`, `CLAIM`, `HYPOTHESIS`, `DECISION`, `UNKNOWN`, or `SYNTHETIC`. A hypothesis, paraphrase, or AI-generated text must not masquerade as a fact. |
| 50 | +Do not encode truth, role, authorship, and lifecycle in one label. Use independent fields so a machine-generated report can also be derived, active, and based on claims without contradiction. |
44 | 51 |
|
45 | | -### KAC-05 — Links, not copies |
| 52 | +### KAC-05 — Typed links, not copies |
46 | 53 |
|
47 | | -Projects, companies, meetings, decisions, and sources need stable addresses. Share a link to the canonical record, rather than another copy. |
| 54 | +Link to the canonical record using an explicit relationship such as `evidence_for`, `derived_from`, `implements`, or `supersedes`. A useful link explains what is there and why it should be followed. |
48 | 55 |
|
49 | | -### KAC-06 — Knowledge belongs in the repository, not the thread |
| 56 | +### KAC-06 — Durable owner, messages as transport |
50 | 57 |
|
51 | | -Within a project or team, record knowledge in the repository: a card, meeting note, ADR, runbook, or task. Send a link in chat and email. Messages are for discussion and notification, not the sole storage for agreements. |
| 58 | +Decisions, agreements, and instructions belong with the correct canonical owner; chat and email carry links and notifications. Code owns implementation, operational systems own transactional state, and documentation owns intent, rationale, and contracts. |
52 | 59 |
|
53 | | -### KAC-07 — Make changes visible |
| 60 | +### KAC-07 — Upstream first, downstream in sync |
54 | 61 |
|
55 | | -Do not rewrite history silently. Material changes have an intelligible diff, author, and date; superseded decisions are marked as such. |
| 62 | +Change meaning at the canonical owner first. Then inspect direct dependants and update, invalidate, or explicitly leave them unchanged. Conflicting active knowledge is a defect, not an alternative truth. |
56 | 63 |
|
57 | | -### KAC-08 — Schema before prose |
| 64 | +### KAC-08 — Make schema and lifecycle explicit |
58 | 65 |
|
59 | | -Use templates and required fields for recurring entities: `owner`, `status`, `source`, `as_of`, `access`, `supersedes`. Prose explains context; it does not replace structure. |
| 66 | +Repeating record kinds use a small schema with conditional fields. Separate document status from decision or delivery status; record `as_of`, review dates, and `supersedes` only where time or replacement is meaningful. |
60 | 67 |
|
61 | | -### KAC-09 — Keep knowledge units small and clear |
| 68 | +### KAC-09 — One artifact, one responsibility |
62 | 69 |
|
63 | | -Do not combine a customer record, meeting minutes, plan, and report in one document. One entity or assertion deserves one clear record with explicit links. |
| 70 | +The useful atomic boundary is an independent owner, lifecycle, or change boundary—not every sentence. Split monoliths without creating a maze of fragments. |
64 | 71 |
|
65 | | -### KAC-10 — Knowledge has freshness |
| 72 | +### KAC-10 — Index first, details on demand |
66 | 73 |
|
67 | | -Name an owner, a verification date, and a review interval. Stale knowledge is not erased without a trace: mark it `superseded` or `archived`. |
| 74 | +Every durable record is reachable from a relevant index. Start readers with a compact map and annotated links, then disclose deeper context only when the task requires it. |
68 | 75 |
|
69 | | -### KAC-11 — AI answers from evidence |
| 76 | +### KAC-11 — Outputs trace back to evidence |
70 | 77 |
|
71 | | -AI searches authorised sources, cites them, separates quotation from inference, and returns `UNKNOWN` when evidence is insufficient. Confidence is not a substitute for evidence. |
| 78 | +A human or AI answer, report, and decision identifies supporting evidence, separates quotation from inference, and preserves unknowns. Confident language is not a substitute for verification. |
72 | 79 |
|
73 | 80 | ### KAC-12 — Context and access follow the source |
74 | 81 |
|
75 | | -A knowledge link carries its author, scope, version, and access rights. Search, catalogues, and AI must not turn a local record into context-free “common knowledge”. |
| 82 | +Scope, effective date, provenance, and access restrictions survive indexing, summarisation, and retrieval. Search and AI must not turn a local record into context-free common knowledge. |
| 83 | + |
| 84 | +## Minimal record example |
76 | 85 |
|
77 | | -## Minimal record template |
| 86 | +This example records exactly what the evidence proves: a customer made a statement. It does not silently promote that statement into proof that the money exists. |
78 | 87 |
|
79 | 88 | ```yaml |
80 | | -id: DEC-042 |
81 | | -type: decision |
82 | | -status: current |
83 | | -owner: product-lead |
84 | | -as_of: 2026-08-14 |
85 | | -source: |
86 | | - - repo://company/project/meetings/2026-08-14.md#decision-3 |
87 | | -supersedes: null |
| 89 | +id: AST-042 |
| 90 | +record_kind: assertion |
| 91 | +status: active |
| 92 | +canonical_for: |
| 93 | + - customer_budget_status |
| 94 | +steward: sales-lead |
| 95 | +as_of: "2026-08-14" |
| 96 | +epistemic_state: claim |
| 97 | +generation_mode: human_authored |
| 98 | +evidence: |
| 99 | + - path: correspondence/client-message.md |
| 100 | + supports: customer_stated_that_budget_is_approved |
| 101 | +derived_from: [] |
| 102 | +supersedes: AST-037 |
| 103 | +access: internal |
88 | 104 | ``` |
89 | 105 |
|
90 | | -For a longer Russian explanation, see [«Корпоративная память, пригодная для AI»](article.md). |
| 106 | +For a longer Russian explanation derived from this registry, see [«Корпоративная память, пригодная для AI»](article.md). |
91 | 107 |
|
92 | 108 | ## Foundations |
93 | 109 |
|
94 | 110 | - [W3C PROV Primer](https://www.w3.org/TR/prov-primer/) — provenance through entities, activities, and agents. |
95 | | -- [FAIR Guiding Principles](https://doi.org/10.1038/sdata.2016.18) — knowledge should be findable, accessible, interoperable, and reusable by people and machines. |
96 | | -- [Pro Git: About Version Control](https://git-scm.com/book/en/v2/Getting-Started-About-Version-Control) — the history of change is part of the working object. |
| 111 | +- [FAIR Guiding Principles](https://doi.org/10.1038/sdata.2016.18) — findable, accessible, interoperable, and reusable data for people and machines. |
| 112 | +- [Pro Git: About Version Control](https://git-scm.com/book/en/v2/Getting-Started-About-Version-Control) — change history as part of the working object. |
0 commit comments