From c17e6a3b47cb92ad6eb4100aca90873a426c81da Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 9 Jul 2026 22:43:31 +0000 Subject: [PATCH 1/2] Register the Joinery in CANONICAL-NAMES; reconcile PORT-REGISTRY with the groove registry MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - CANONICAL-NAMES.adoc: "The Joinery" register entry — cleave (surface, the contranym), groove (protocol, seating depth = integration/trust/ gating), spline (data-form seated into the groove); consumers (gossamer, burble, panll, vext, …) are NOT layers; reject-forms listed (weft, "the groove stack", groove-* sprawl as layer names, consumer names as layer names); authority pointer to groove ADR 0009, which asked for exactly this registration. Paste-able directive block updated in sync per the file's own rule; deprecated weft row cross-referenced. - PORT-REGISTRY.md: two-plane authority rule adopted — groove-registry.json (groove ADR 0006) governs the groove-discovery surface, this file governs app/bind ports and mirrors groove assignments. Reconciled rows: burble 4020 → legacy, groove surface 6473; verisimdb groove surface 6475 (its own "8080 often intercepted" note agrees) + live-but-unregistered 8097 standards innervation instance registered; gitbot-fleet 7500 → 9100; new rows groove-ref 6465, gossamer 6470, panll 8000. New clearly-marked UNRESOLVED subsection (flagged, not fixed, owner decision needed): echidna 8081-vs-9000, boj-server vs conflow/rpa-elysium 7700/7800 double-booking, burble AI-bridge WS 6475 colliding with verisimdb's groove assignment (recommend bridge → 7474/7475). Last-audited line updated. Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01ECjSL2nqzn3qJEzA28V4m5 --- CANONICAL-NAMES.adoc | 22 +++++++++++++++++++++- PORT-REGISTRY.md | 39 ++++++++++++++++++++++++++++++++++----- 2 files changed, 55 insertions(+), 6 deletions(-) diff --git a/CANONICAL-NAMES.adoc b/CANONICAL-NAMES.adoc index 2d18ab71..b1d4102a 100644 --- a/CANONICAL-NAMES.adoc +++ b/CANONICAL-NAMES.adoc @@ -33,6 +33,8 @@ one to generate. If unsure, ask — never guess an expansion. - "A2ML" = "Attested Markup Language". NOT "AI to Machine Language" / "AI-to-Machine Language". - "BoJ" = "Bundle of Joy". NOT "Bureau of Justice", NOT "Bank of Japan". +- "The Joinery" = cleave (surface) / groove (protocol) / spline (data-form). + NOT "weft", NOT "the groove stack", NOT consumer names as layer names. DEPRECATED NAMES — DO NOT REINTRODUCE (estate mandate 2026-06-30): - "descriptiles" is the machine-readable metadata family (dir @@ -79,6 +81,23 @@ DEPRECATED NAMES — DO NOT REINTRODUCE (estate mandate 2026-06-30): takes an agent's asserted outcomes and mechanically confirms/refutes each against primary evidence. Home: `did-you-actually-do-that/`. +| **The Joinery** +| The three-layer connective system: cleave / groove / spline +| "weft", "the groove stack", "groove-* sprawl names for layers", + "consumer names as layer names" +| Exactly three layers. *cleave* is the surface — the tunable integration + surface, a deliberate contranym: cleave *apart* = clean zero-residue + teardown; cleave *together* = deep bond. *groove* is the protocol — runtime + capability discovery + type-safe composition; how deep a connection seats + in the groove is how integrated/trusted/gated it is. *spline* is the + data-form — the serialise/parallelise wire layer that seats into the + groove. Canonical rule: consumers (`gossamer`, `burble`, `panll`, `vext`, + …) are NOT layers and must never be used as layer names — if you see one + used that way, flag it; do not silently rewrite either name. The former + layer name `weft` is deprecated (see *Deprecated names* below). Authority: + groove ADR 0009 (`docs/decisions/0009-the-joinery-naming-canon.adoc` in + `hyperpolymath/groove`). + |=== == Deprecated names — do not reintroduce (MANDATE, 2026-06-30) @@ -119,7 +138,8 @@ estate-wide, `standards` included. `groove` (the protocol), `spline` (the data-form that seats into a groove). Renamed from `weft` (textile) to fit the carpentry metaphor. Consumers (`gossamer`, `burble`, …) sit outside the system and keep their own names. - See groove ADR 0009. Do not revert `spline`→`weft`. + See groove ADR 0009 and the **The Joinery** row in the *Register* above. + Do not revert `spline`→`weft`. |=== == Adding a name diff --git a/PORT-REGISTRY.md b/PORT-REGISTRY.md index f950f0eb..e39d915d 100644 --- a/PORT-REGISTRY.md +++ b/PORT-REGISTRY.md @@ -1,25 +1,37 @@ # Port Registry — hyperpolymath ecosystem -# Last audited: 2026-03-28 +# Last audited: 2026-07-09 — reconciled against the groove registry (authority split noted, groove surfaces mirrored, contradictions flagged in UNRESOLVED below) # # RULE: Every project MUST use a unique port. No two projects share a port. # Check this file BEFORE assigning ports in new projects. +## Authority split + +For groove-speaking services, `groove/registry/groove-registry.json` +(hyperpolymath/groove, ADR 0006, 2026-07-02) is the single source of truth for +the GROOVE-DISCOVERY surface. This file governs app/bind ports and mirrors +groove assignments; each contradiction is flagged below (see UNRESOLVED), not +silently fixed. + ## Assigned Ports (CANONICAL — use these) | Port | Project | Service | Protocol | |------|---------|---------|----------| | 4010 | stapeln | Phoenix backend | HTTP | -| 4020 | burble | Phoenix voice server | HTTP | +| 4020 | burble | Phoenix voice server — legacy app port, moving to 6473; see hyperpolymath/burble branch claude/cleave-spline-groove-arch-4zq111 | HTTP | | 4030 | idaptik | Sync server | HTTP | | 4040 | gossamer | Dev server | HTTP | | 4050 | ambientops | Composer | HTTP | | 4060 | reposystem | GUI backend | HTTP | +| 6465 | groove-ref | Groove reference provider | HTTP | +| 6470 | gossamer | Groove consumer/reference | HTTP | +| 6473 | burble | Groove surface | HTTP | +| 6475 | verisimdb | Groove surface (per groove registry; agrees with the "8080 often intercepted — consider changing" remark below) | HTTP | | 6480 | vext | Verifiable comms protocol | HTTP | -| 7500 | gitbot-fleet | Bot orchestration | HTTP | | 7600 | panic-attacker | Static analysis server | HTTP | | 7700 | boj-server | Main MCP API | HTTP | | 7701 | boj-server | Browser bridge | HTTP | | 7800 | boj-server | Cartridge runner | HTTP | +| 8000 | panll | Groove + dev server | HTTP | | 8080 | verisimdb | Default API (standalone) | HTTP | | 8081 | echidna | Neural/prover API | HTTP | | 8090 | idaptik | Game server (dev) | HTTP | @@ -27,9 +39,24 @@ | 8094 | verisimdb | Kategoria instance | HTTP | | 8095 | verisimdb | Project-M instance | HTTP | | 8096 | verisimdb | Work instance (RAM disk) | HTTP | +| 8097 | verisimdb | Standards innervation instance (live per standards/.verisimdb/config.toml) | HTTP | | 9090 | hypatia | Web + Groove endpoints | HTTP | +| 9100 | gitbot-fleet | Bot orchestration (was 7500; dropped per groove ADR 0006) | HTTP | | 50051 | verisimdb | gRPC | gRPC | +## UNRESOLVED — owner decision needed (flagged, not fixed) + +Contradictions between this file and the groove registry +(`groove/registry/groove-registry.json` in hyperpolymath/groove). Per estate +doctrine these are flagged only — neither side has been rewritten here. + +1. **echidna** — 8081 (this file) vs 9000 (groove registry + panll code). +2. **boj-server** — 7700/7800 (this file) vs conflow 7700 / rpa-elysium 7800 + (groove registry) — double-booking. +3. **burble AI-bridge** — WS default 6475 collides with verisimdb's groove + registry assignment 6475. Recommendation: bridge moves to its documented + alt 7474/7475. + ## Commonly Blocked Ports (AVOID) These are frequently blocked by corporate firewalls, ISPs, or proxies: @@ -41,7 +68,7 @@ These are frequently blocked by corporate firewalls, ISPs, or proxies: | 443 | HTTPS — requires root | Not used (dev) | | 1080 | SOCKS proxy — abuse | Not used | | 3128 | Squid proxy | Not used | -| 8080 | Common proxy port — **often intercepted** | **VeriSimDB default — consider changing** | +| 8080 | Common proxy port — **often intercepted** | **VeriSimDB default — consider changing** (groove surface already moved to 6475 per groove registry, which agrees with this remark) | | 8443 | Alt HTTPS — sometimes blocked | IDApTIK uses — review | | 9090 | Prometheus default — may conflict | Hypatia uses — acceptable | @@ -77,6 +104,8 @@ Each project gets its own VeriSimDB instance on a unique port: - 8093: Stapeln - 8094: Kategoria - 8095: Project-M -- 8096-8099: reserved for future projects +- 8096: Work (RAM disk) +- 8097: standards innervation instance (live per standards/.verisimdb/config.toml) +- 8098-8099: reserved for future projects NEVER store one project's data in another project's VeriSimDB instance. From f2dd209499f551987328d68dafca98baf983568f Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 9 Jul 2026 23:00:01 +0000 Subject: [PATCH 2/2] Regenerate REGISTRY.a2ml (registry-sync gate) scripts/build-registry.sh run after the PORT-REGISTRY.md edit; the registry-check gate now passes locally. Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01ECjSL2nqzn3qJEzA28V4m5 --- .machine_readable/REGISTRY.a2ml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.machine_readable/REGISTRY.a2ml b/.machine_readable/REGISTRY.a2ml index 554679e4..22ffbe02 100644 --- a/.machine_readable/REGISTRY.a2ml +++ b/.machine_readable/REGISTRY.a2ml @@ -288,7 +288,7 @@ name = "A2ML Templates" stream = "integration" home = "a2ml-templates/" canonical_doc = "a2ml-templates/STATE.a2ml.v2.spec.adoc" -source_hash = "sha256:9dac88195c1f35af8755a1bead420c80490d3da7bc613083208cb95a822c6c00" +source_hash = "sha256:5a332a5416e83f455ba1ebd3c620cb0ce68ef69b4bbdebd0f2a4a5b1f915936e" route = "copy-in templates for the 7 A2ML files" [[spec]]