From a28ee970126da8ce013208b06c17fe5176a3e7be Mon Sep 17 00:00:00 2001 From: Universe Date: Mon, 13 Jul 2026 18:04:26 +0900 Subject: [PATCH 1/2] topology: adopt uhura as a subsystem via git submodule (no wiring) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add gridaco/uhura as a git submodule at the repo root, pinned at its current main, and describe the relationship in the README: Spock is the ecosystem and toolchain root; Uhura is the client language, canonical in its own repository, included here as a subsystem. Topology only — the workspace members stay explicit, cargo does not see the submodule, and CI is unaffected (actions/checkout does not fetch submodules by default). Build integration (unified `spock` toolchain, contract projection + provider adapter) lands later, once uhura is minimally stable. --- .gitmodules | 3 +++ README.md | 22 ++++++++++++++++++++++ uhura | 1 + 3 files changed, 26 insertions(+) create mode 100644 .gitmodules create mode 160000 uhura diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..35646f8 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "uhura"] + path = uhura + url = https://github.com/gridaco/uhura.git diff --git a/README.md b/README.md index 7e1e545..53f1652 100644 --- a/README.md +++ b/README.md @@ -626,11 +626,33 @@ prints the SDL for offline schema tooling. The npm package metadata lives under `npm/` only to reserve the package name. It is not the primary implementation target. +## Uhura, the client language + +Spock's doctrine forbids Spock from building a client language — "generate +types, never the client" (`docs/rfd/0010`), "borrow, don't build" +(`docs/rfd/0009`). That slot is filled by +[Uhura](https://github.com/gridaco/uhura): a declarative UI language and +deterministic headless experience runtime that owns non-authoritative +UI-session state and experience behavior, with Spock as its canonical +provider. No fact may be authoritative in both languages. + +Uhura is a subsystem of the Spock project: its canonical source lives in its +own repository and is included here as a git submodule at `uhura/`. Today this +is topology only — Spock's workspace, build, and CI do not touch the +submodule, and `cargo` builds work without it (clone with +`--recurse-submodules` only if you want the Uhura tree). Once Uhura is +minimally stable, its tooling ships through the unified `spock` toolchain, +and the runtime integration lands as contract projection plus a provider +adapter. + ## Repository Layout - `examples/` contains product requirements and current-valid Spock examples. - `docs/rfd/` contains discussion drafts and proposal-only language ideas. - `npm/` contains package metadata for npm name reservation. +- `uhura/` is the Uhura client language (git submodule of + [gridaco/uhura](https://github.com/gridaco/uhura); not yet wired into the + build). ## References and prior work diff --git a/uhura b/uhura new file mode 160000 index 0000000..0bf91cf --- /dev/null +++ b/uhura @@ -0,0 +1 @@ +Subproject commit 0bf91cf9a55e588421cd978ec00f9b1305310049 From 4ceb592be4f9328fd3f2e35bb339ab1fdd927fe5 Mon Sep 17 00:00:00 2001 From: Universe Date: Mon, 13 Jul 2026 18:12:04 +0900 Subject: [PATCH 2/2] chore: bump uhura submodule to current main Picks up the prior-art docs pass (public references: Svelte, XAML, QML, Elm) and the subsystem README. --- uhura | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/uhura b/uhura index 0bf91cf..201e847 160000 --- a/uhura +++ b/uhura @@ -1 +1 @@ -Subproject commit 0bf91cf9a55e588421cd978ec00f9b1305310049 +Subproject commit 201e847f709738fb75d14a2b6808502cab8f6ebb