diff --git a/CLAUDE.md b/CLAUDE.md index b3f4a7a..8b27b69 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -357,6 +357,11 @@ that file must reflect the current shape of the tree. The canonical spec is `docs/TheKnowledgeNetwork.md` — it does **not** track the code. Outstanding work lives in `TASKS.md`. +`docs/archive/` holds settled ADRs and completed-task history. **Do not +search or read files under `docs/archive/` unless the user explicitly +requests it.** These files are historical records; they do not reflect +current code or open work. + ## Storage Technologies Used | Technology | Used by | Purpose | diff --git a/TASKS.md b/TASKS.md index 49815b2..40a2dae 100644 --- a/TASKS.md +++ b/TASKS.md @@ -136,6 +136,42 @@ scoped overlay tables). --- +## Multilingual overlay — structural gaps + +Two items deferred from the original multilingual work that have not yet landed. + +### Language superclass hierarchy + +`lang_human` (the root class for all human natural languages) is currently +a direct child of `Classes` (nref 3) with no intermediate superclass. The +architecture specifies a `Language` superclass node sitting above `lang_human` +under `Classes`. Two implementation paths: + +- **Option A** — Add `Language` as a bootstrap node in `bootstrap.terms` + and make `lang_human` a child of it there. Structurally cleanest; the + node belongs to the permanent scaffold, not a worker's `init/1`. +- **Option B** — Seed `Language` at `graphdb_language:init/1` time and call + `graphdb_class:add_superclass/2` to place `lang_human` under it. No + bootstrap change required. + +Decide and implement one option. + +### Domain subcategory connection rules + +When a language instance is created at runtime (e.g., French), it is not +automatically placed under the appropriate domain subcategory node (nrefs +32–35: Human Languages, Formal Languages, Diagram Languages, Renderers). +English is wired in `bootstrap.terms` directly; runtime-created languages +are not. + +The connection firing engine is now implemented (`graphdb_instance`, +`graphdb_rules`). Add a connection rule to `lang_human` (and the equivalent +class nodes for the other language kinds) that fires at instance creation +and connects the new language instance to the correct subcategory. The +resolver is supplied via `create_instance/4`. + +--- + ## Multi-project sessions Every public API already accepts a `Scope` of `environment | {project, diff --git a/docs/Architecture.md b/docs/Architecture.md index 974002a..1b88ff9 100644 --- a/docs/Architecture.md +++ b/docs/Architecture.md @@ -101,7 +101,7 @@ no runtime API can create, modify, or delete a `category` node. `parents` and `classes` are **caches** of the authoritative arcs in the `relationships` table. The decision record is -[`arcs-authoritative.md`](../arcs-authoritative.md); the rules are: +[`arcs-authoritative.md`](archive/arcs-authoritative.md); the rules are: 1. Every taxonomic, compositional, and instantiation relationship is canonical in `relationships`. diff --git a/arcs-authoritative.md b/docs/archive/arcs-authoritative.md similarity index 100% rename from arcs-authoritative.md rename to docs/archive/arcs-authoritative.md diff --git a/memory/project_m6_language_class_gap.md b/docs/archive/project_m6_language_class_gap.md similarity index 73% rename from memory/project_m6_language_class_gap.md rename to docs/archive/project_m6_language_class_gap.md index 7e12b6b..60a1be1 100644 --- a/memory/project_m6_language_class_gap.md +++ b/docs/archive/project_m6_language_class_gap.md @@ -17,10 +17,12 @@ Currently `lang_human` is a direct child of Classes (3) in bootstrap.terms — t Decision on which option was deferred before implementation. -**Gap 2 — Connection arcs to subcategory nodes (nrefs 32–35) — deferred** +**Gap 2 — Connection arcs to subcategory nodes (nrefs 32–35) — now unblocked** -Architecture §10: "Domain membership is recorded by a lateral connection arc from each language class node to the appropriate subcategory (e.g., English → Human Languages, nref 32)." These are template-scoped CONNECTION arcs (char 31). Template infrastructure is not yet implemented. Cannot land in M6. The bootstrap.terms comment on English (10000) confirms this is deferred. +Architecture §10: "Domain membership is recorded by a lateral connection arc from each language class node to the appropriate subcategory (e.g., English → Human Languages, nref 32)." These are template-scoped CONNECTION arcs (char 31). Deferred from M6 because the connection firing engine was not yet implemented. + +F4 B4 (connection firing engine, PR #37) has now landed. The mechanism exists. What remains: add connection rules to `lang_human` (and equivalent class nodes for formal/diagram/renderer languages) that fire at `create_instance/4` and connect the new instance to the correct subcategory nref. **Why:** Bootstrap.terms carries the note `(b) composition arc to Human Languages category (nref 32) — requires` (cut off, referring to template infrastructure). -**How to apply:** Before starting M6 Task 2 implementation, decide Option A vs B for the Language superclass and update the plan accordingly. Connection arcs remain deferred regardless. +**How to apply:** Both gaps are now tracked in TASKS.md ("Multilingual overlay — structural gaps"). This memory file is archived; refer to TASKS.md for current status. diff --git a/docs/resiliency-notes.md b/docs/resiliency-notes.md index 9158b1a..664514a 100644 --- a/docs/resiliency-notes.md +++ b/docs/resiliency-notes.md @@ -131,7 +131,7 @@ These are cheap and useful under both (A) and (B). ## Reading order for next session 1. This file (re-orient). -2. `arcs-authoritative.md` (current arc model). +2. `docs/archive/arcs-authoritative.md` (current arc model). 3. `docs/designs/f4-graphdb-rules-design.md` §10.1 (the pinned placement question — directly affected by R2). 4. `memory/project-f4-phase-a-pinned-question.md` (the then-current