diff --git a/.machine_readable/6a2/ECOSYSTEM.a2ml b/.machine_readable/6a2/ECOSYSTEM.a2ml index a8f8a48..794abf6 100644 --- a/.machine_readable/6a2/ECOSYSTEM.a2ml +++ b/.machine_readable/6a2/ECOSYSTEM.a2ml @@ -1,6 +1,7 @@ # SPDX-License-Identifier: MPL-2.0 # ECOSYSTEM.a2ml — Ecosystem position # Converted from ECOSYSTEM.scm on 2026-03-15 +# Boundary aligned to D142 write-back on 2026-10-10; prose canon in docs/ecosystem/ECOSYSTEM.adoc [metadata] project = "universal-language-server-plugin" @@ -8,3 +9,19 @@ ecosystem = "hyperpolymath" [position] type = "component" + +[boundary] +# Owner ruling D142 (2026-09-30T14:10Z, scope: repo): this repo embeds its OWN +# document converter (server/src/core.rs + server/src/formats/); no docmatrix dependency. +converter = "embedded" +docmatrix_dependency = false +ruling = "D142" +ruling_surface = "https://github.com/hyperpolymath/standards/issues/787#issuecomment-5912989503" +ruling_issue = "https://github.com/hyperpolymath/universal-language-server-plugin/issues/96" +canon = "docs/ecosystem/ECOSYSTEM.adoc" + +[suite] +docmatrix = "https://github.com/hyperpolymath/docmatrix" +docmatrix_contract = "https://github.com/hyperpolymath/docmatrix/issues/71" +formatrix_docs = "https://github.com/hyperpolymath/formatrix-docs" +blocky_writer = "https://github.com/hyperpolymath/blocky-writer" diff --git a/README.adoc b/README.adoc index aec5573..a55e096 100644 --- a/README.adoc +++ b/README.adoc @@ -14,6 +14,35 @@ image:https://img.shields.io/badge/License-MPL_2.0-blue.svg[License: MPL-2.0,lin [![Rust](https://img.shields.io/badge/Rust-1.75+-orange.svg)](https://www.rust-lang.org/) [![LSP 3.17](https://img.shields.io/badge/LSP-3.17-green.svg)](https://microsoft.github.io/language-server-protocol/) +== Ecosystem boundary (D142, binding) + +This repository embeds its *own* document converter +(`server/src/core.rs` + `server/src/formats/` for Markdown, HTML, JSON, +YAML, XML, TOML). Per owner ruling *D142* (2026-09-30T14:10Z, scope: +repo, via `standards#787`), this project has *no docmatrix dependency* — +the owner explicitly overrode the sharing recommendation. + +* *Conversion here* means editor-delivered conversion over LSP 3.17 +(stdio), HTTP REST, and WebSocket, plus the bundled web dashboard. +* *Suite precision infrastructure* (multi-format conversion coordination, +versioned interchange contracts, provenance/evidence chains) belongs to +https://github.com/hyperpolymath/docmatrix[docmatrix] (see +https://github.com/hyperpolymath/docmatrix/issues/71[docmatrix#71] for +the suite's composition contract). +* Sibling components, each useful standalone and composed only by +explicit user choice: tabbed multi-format viewing/editing in +https://github.com/hyperpolymath/formatrix-docs[formatrix-docs], +fixed-layout PDF / application-form placement in +https://github.com/hyperpolymath/blocky-writer[blocky-writer]. +ForthWall remains a proposed, optional capability — not a dependency. + +Non-goals for this repo: suite-wide precision coordination, shared +interchange-contract implementation, and any mandatory Word-hub +pipeline. Anything that would introduce a docmatrix dependency or a +shared converter call-out requires a fresh owner ruling superseding +D142 — see `docs/ecosystem/ECOSYSTEM.adoc` for the full boundary record +(requested by https://github.com/hyperpolymath/universal-language-server-plugin/issues/96[#96]). + == Features 🚀 *Universal Editor Support* - One server powers plugins for VS Code, Neovim, Emacs, JetBrains, Sublime, Zed, and Helix diff --git a/TOPOLOGY.adoc b/TOPOLOGY.adoc index d626a09..56749cd 100644 --- a/TOPOLOGY.adoc +++ b/TOPOLOGY.adoc @@ -38,6 +38,15 @@ └─────────────────────────────────────────┘ .... +=== Ecosystem boundary (D142 — pointer, not a second truth) + +Per owner ruling *D142* (2026-09-30, scope: repo) this repo's Conversion +Core is *embedded and self-contained* — there is no docmatrix +dependency and no shared-converter call-out. The conversion box in the +diagram above is `server/src/core.rs` + `server/src/formats/` only. +Canon: `docs/ecosystem/ECOSYSTEM.adoc` and the `README.adoc` boundary +section (see https://github.com/hyperpolymath/universal-language-server-plugin/issues/96[#96]). + === Completion Dashboard .... diff --git a/docs/ecosystem/ECOSYSTEM.adoc b/docs/ecosystem/ECOSYSTEM.adoc new file mode 100644 index 0000000..184cdab --- /dev/null +++ b/docs/ecosystem/ECOSYSTEM.adoc @@ -0,0 +1,120 @@ +// SPDX-License-Identifier: CC-BY-SA-4.0 +// Copyright (c) Jonathan D.A. Jewell += Ecosystem boundary — universal-language-server-plugin +:toc: + +This file is the F3a write-back surface for owner ruling *D142*. It +exists because https://github.com/hyperpolymath/universal-language-server-plugin/issues/96[#96] +asked for the conversion-boundary decision to be recorded where the +next person can find it, instead of being quietly resolved by whoever +writes code first. + +== The ruling (D142) + +[quote] +____ +OWNER OVERRODE recommendation: the LSP plugin embeds its OWN document +converter; no docmatrix dependency +____ + +* *Provenance (F10a):* asked in `standards#787` decision harvest as the +`universal-language-server-plugin#96` row; answered by the owner via +AskUserQuestion selector (direct answer, not applied-unless-struck). +* *Clock time:* 2026-09-30T14:10Z (harvest table), mirrored to `#96` at +2026-09-30T14:12Z. +* *Scope:* repo — binds this repository fully. +* *Surfaces:* +https://github.com/hyperpolymath/standards/issues/787#issuecomment-5912989503[standards#787 D127–D156 table] +and +https://github.com/hyperpolymath/universal-language-server-plugin/issues/96#issuecomment-5913038149[#96 ruling comment]. +* *Instruction to future agents:* the open question in `#96` is answered +by this ruling; act on it rather than re-asking. + +== What D142 means here + +. The converter in `server/src/core.rs` plus +`server/src/formats/{yaml,xml,toml}.rs` is *self-contained and stays +that way*. No `docmatrix` crate, binary, submodule, service call-out, +or shared-converter client may be introduced without a fresh owner +ruling that supersedes D142 by name. +. "`Universal document conversion`" in this repo's tagline means +*editor-delivered* conversion: LSP 3.17 over stdio for the seven thin +editor clients, plus the HTTP REST API, WebSocket events, and web +dashboard served by the same Rust server. +. Boundary *documentation and links* are required and are not +dependencies. This file, the `README.adoc` boundary section, and +`.machine_readable/6a2/ECOSYSTEM.a2ml` carry the same truth in three +renderings; if they ever disagree, this file governs and the others +must be re-aligned to it. + +== Suite map (docmatrix#71, summarised — canon lives there) + +The authoritative suite contract is +https://github.com/hyperpolymath/docmatrix/issues/71[docmatrix#71]. What +follows is a pointer summary, not a restatement of canon: + +[cols="1,3",options="header"] +|=== +| Component | Boundary + +| *This repo* (`universal-language-server-plugin`) +| One server, all editors. Own embedded converter; LSP/HTTP/WebSocket +delivery. No docmatrix dependency (D142). + +| https://github.com/hyperpolymath/docmatrix[docmatrix] +| Multi-format conversion and precision infrastructure for the document +suite; owns the versioned interchange contract and precision +coordination. + +| https://github.com/hyperpolymath/formatrix-docs[formatrix-docs] +| Tabbed views of one logical document across TXT, +delimiter-selected tabular text, Markdown, AsciiDoc, Djot, and A2ML; +synchronised editing is the intended progression. + +| https://github.com/hyperpolymath/blocky-writer[blocky-writer] +| Fitting and placement into fixed-layout PDF and application-form +boxes, baselines, and per-character cells designed for hand spacing. +Not in the conversion business at all (their words, `#96`). + +| ForthWall (proposed) +| Optional, capability-bounded execution layer for critical operations; +never a mandatory end-user product or runtime. +|=== + +Composition rules we inherit from `docmatrix#71` and honour: + +* Each component remains useful standalone; composition is explicit and +user-selected. +* No supported workflow requires Microsoft Word (or any other mandatory +hub format) as an intermediate. +* The user's native input stays authoritative unless they explicitly +select another representation; lossy or ambiguous transformations are +proposals requiring approval, never silent normalisation. +* Proof obligations do not transfer: our conversion round-trip tests +prove our converter, nothing else. + +== What would require re-ruling + +Any of the following re-opens the boundary question and must be raised +as a new row on the standing decision surface (`standards#787` +successor) rather than implemented directly: + +* Adding a docmatrix dependency (library, service, submodule, or +interchange-client). +* Implementing the suite's versioned interchange contract as a +*mandatory* path instead of an opt-in composition. +* Routing any supported workflow through a mandatory hub format. +* Changing this repo's tagline or description in a way that claims the +suite precision-infrastructure remit. + +== History + +* 2026-09-27 — `#96` filed (boundary overlap flagged, `ECOSYSTEM.adoc` +recording requested). +* 2026-09-30 — D142 ruled by owner; ruling mirrored to `#96`. +* 2026-10-10 — F3a write-back executed on session +`arena/dee33dad`: README boundary section, this file, +`.machine_readable/6a2/ECOSYSTEM.a2ml` alignment, `TOPOLOGY.adoc` +pointer. (Sandbox token lacks issue-comment scope, so the F5a claim and +`#96` close-out comment are recorded here and in the landing PR +instead of as issue comments.)