Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions .machine_readable/6a2/ECOSYSTEM.a2ml
Original file line number Diff line number Diff line change
@@ -1,10 +1,27 @@
# 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"
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"
29 changes: 29 additions & 0 deletions README.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
9 changes: 9 additions & 0 deletions TOPOLOGY.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -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

....
Expand Down
120 changes: 120 additions & 0 deletions docs/ecosystem/ECOSYSTEM.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
// SPDX-License-Identifier: CC-BY-SA-4.0
// Copyright (c) Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>
= 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.)
Loading