From 077f407588cd797a1cecfbcdf4059cc3e64470ca Mon Sep 17 00:00:00 2001 From: "David W. Thomas" Date: Fri, 12 Jun 2026 08:51:32 -0400 Subject: [PATCH 1/3] chore: archive arcs-authoritative + language gap; add multilingual tasks MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - git mv arcs-authoritative.md to docs/archive/ (ADR is settled; no further changes expected) - Update references in docs/Architecture.md and docs/resiliency-notes.md to the new archive path - Add "Multilingual overlay — structural gaps" section to TASKS.md: Language superclass hierarchy (Option A vs B decision outstanding) and domain subcategory connection rules (now unblocked by F4 B4) - git mv memory/project_m6_language_class_gap.md to docs/archive/; update the memory file to reflect Gap 2 is unblocked and both gaps are now tracked in TASKS.md Co-Authored-By: Claude Sonnet 4.6 --- TASKS.md | 36 +++++++++++++++++++ docs/Architecture.md | 2 +- .../archive/arcs-authoritative.md | 0 .../archive}/project_m6_language_class_gap.md | 0 docs/resiliency-notes.md | 2 +- 5 files changed, 38 insertions(+), 2 deletions(-) rename arcs-authoritative.md => docs/archive/arcs-authoritative.md (100%) rename {memory => docs/archive}/project_m6_language_class_gap.md (100%) 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 100% rename from memory/project_m6_language_class_gap.md rename to docs/archive/project_m6_language_class_gap.md 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 From 3eca531550bd9a473786bb2c3bc0829135f8ceeb Mon Sep 17 00:00:00 2001 From: "David W. Thomas" Date: Fri, 12 Jun 2026 08:58:39 -0400 Subject: [PATCH 2/3] docs: exclude docs/archive/ from routine search scope Add explicit rule to CLAUDE.md: do not search or read docs/archive/ unless the user explicitly requests it. The folder holds settled ADRs and completed-task history, not current code or open work. Co-Authored-By: Claude Sonnet 4.6 --- CLAUDE.md | 5 +++++ 1 file changed, 5 insertions(+) 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 | From 7d436be69935ca3ccefb886f68605ce7430b53b1 Mon Sep 17 00:00:00 2001 From: "David W. Thomas" Date: Fri, 12 Jun 2026 09:22:18 -0400 Subject: [PATCH 3/3] chore: stage content update to archived language gap file The Gap 2 status update (now unblocked by F4 B4) was applied to the working copy but not staged before the prior commit. No logic change. Co-Authored-By: Claude Sonnet 4.6 --- docs/archive/project_m6_language_class_gap.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/docs/archive/project_m6_language_class_gap.md b/docs/archive/project_m6_language_class_gap.md index 7e12b6b..60a1be1 100644 --- a/docs/archive/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.