docs(readme): add public README#32
Conversation
First public README for moos-kernel. Frames the project as a semantic functorial network over distributed compute, documents the four primitive rewrites, layer discipline, runtime gates (§M11 + §M12), and federation shape. Status entry cites round-11 close + round-12 active scope. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Adds an initial public-facing README.md for moos-kernel, describing the project’s conceptual model (hypergraph + rewrite log), package/layer structure, runtime gates, and basic operational usage.
Changes:
- Introduces a public README with project framing and core rewrite primitives (ADD/LINK/MUTATE/UNLINK).
- Documents package map / layer discipline (
graph→fold→kernel) and runtime gates (§M11/§M12). - Adds run/test instructions, ontology/federation notes, and a status/roadmap section.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
|
||
| ## Status | ||
|
|
||
| Round-11 closed (T=174 ~24:00 CEST). Round-12 active (T=175): five v3.14 grammar_fragment proposals expanding the ontology with `derivation` (reify session inference), `clock` (generalized time fabric — `t_hook` becomes a special case), WF21 `causes/caused-by` (causation distinct from succession), `substrate` property (where node-truth lives), and leaf-firing-state semantics. |
There was a problem hiding this comment.
“Round-11 closed (T=174 ~24:00 CEST)” uses 24:00, which is easy to misread/parse (many systems treat it as invalid). Consider using 00:00 with an explicit date rollover (or omit the wall-clock time) to keep the status note unambiguous.
| Round-11 closed (T=174 ~24:00 CEST). Round-12 active (T=175): five v3.14 grammar_fragment proposals expanding the ontology with `derivation` (reify session inference), `clock` (generalized time fabric — `t_hook` becomes a special case), WF21 `causes/caused-by` (causation distinct from succession), `substrate` property (where node-truth lives), and leaf-firing-state semantics. | |
| Round-11 closed (T=174 ~00:00 CEST next day). Round-12 active (T=175): five v3.14 grammar_fragment proposals expanding the ontology with `derivation` (reify session inference), `clock` (generalized time fabric — `t_hook` becomes a special case), WF21 `causes/caused-by` (causation distinct from succession), `substrate` property (where node-truth lives), and leaf-firing-state semantics. |
|
|
||
| | Flag | Default | Purpose | | ||
| |---|---|---| | ||
| | `--ontology` | (none) | path to `ontology.json`; without it, type validation + liveness/admin gates bypass | |
There was a problem hiding this comment.
The --ontology flag note says that without it “type validation + liveness/admin gates bypass”, but the current startup path always passes a non-nil registry to the runtime (operad.LoadRegistry("") returns EmptyRegistry()), so §M11/§M12 checks still run (they only bypass when rt.registry == nil). Please update this description to match the actual behavior (e.g., only type validation is disabled, or adjust runtime wiring if the intent is to disable gates too).
| | `--ontology` | (none) | path to `ontology.json`; without it, type validation + liveness/admin gates bypass | | |
| | `--ontology` | (none) | path to `ontology.json`; without it, ontology-backed type validation is disabled, but liveness/admin gates still run with the default empty registry | |
| | `--sweep-interval` | `30s` | t-hook sweep cadence (0 disables) | | ||
| | `--quic-addr` | (none) | UDP/HTTP3 listener (requires `--tls-cert` + `--tls-key`) | | ||
|
|
||
| Stdlib-only except `quic-go` (gated behind `--quic-addr`). |
There was a problem hiding this comment.
The README says “Stdlib-only except quic-go”, but go.mod also brings in non-stdlib transitive deps (e.g. golang.org/x/net, x/crypto, etc.). Consider rewording to clarify this is about direct deps only, to avoid misleading readers.
| Stdlib-only except `quic-go` (gated behind `--quic-addr`). | |
| Direct dependencies are stdlib-only except `quic-go` (gated behind `--quic-addr`). |
| | `internal/operad` | type system | `Registry` (ontology v3.13.0: 52 node types, 21 WFs WF01–WF21), strict port-pair `ValidateLINK`, `ValidateMUTATE`, occupancy resolution, admin-capability walks. | | ||
| | `internal/kernel` | effect layer | `Runtime`, `Store`, `LogStore`/`MemStore`. §M11 session-liveness + §M12 admin-capability gates. Sweep loop emits WF13 governance proposals on `t_hook.firing_state` transitions. | | ||
| | `internal/reactive` | predicate evaluator | Watch / React / Guard engine; `EvaluateThookPredicate` covers 10+ §M14 predicate kinds. | | ||
| | `internal/transport` | HTTP + SSE | `/state`, `/log`, `/rewrites`, `/programs`, `/operad`, `/hdc`, `/t-hook/evaluate`, `/t-cone`, `/twin/ingest`, `/fold` (with SSE), `/healthz`. | |
There was a problem hiding this comment.
The transport endpoint list is a bit misleading: the server doesn’t expose a GET /state, GET /operad, or GET /hdc root handler (it exposes /state/nodes, /state/relations, /operad/node-types, /hdc/..., etc.). Suggest updating the list to either include the concrete paths or make it explicit these are path prefixes.
| | `internal/transport` | HTTP + SSE | `/state`, `/log`, `/rewrites`, `/programs`, `/operad`, `/hdc`, `/t-hook/evaluate`, `/t-cone`, `/twin/ingest`, `/fold` (with SSE), `/healthz`. | | |
| | `internal/transport` | HTTP + SSE | `/state/*` (e.g. `/state/nodes`, `/state/relations`), `/log`, `/rewrites`, `/programs`, `/operad/*` (e.g. `/operad/node-types`), `/hdc/*`, `/t-hook/evaluate`, `/t-cone`, `/twin/ingest`, `/fold` (with SSE), `/healthz`. | |
| |---|---|---| | ||
| | `internal/graph` | pure types | `Node`, `Relation`, `Property`, `Rewrite`, `Envelope`, `GraphState` (with indexes), `URN`, `Stratum`, `RewriteCategory`. No IO. | | ||
| | `internal/fold` | pure catamorphism | `Evaluate`, `Replay`, `EvaluateProgram`. Maintains state indexes on ADD/LINK/UNLINK. | | ||
| | `internal/operad` | type system | `Registry` (ontology v3.13.0: 52 node types, 21 WFs WF01–WF21), strict port-pair `ValidateLINK`, `ValidateMUTATE`, occupancy resolution, admin-capability walks. | |
There was a problem hiding this comment.
The README states the ontology has “WF01–WF21” and later mentions WF20/WF21, but this repo’s internal/graph currently defines typed RewriteCategory constants only through WF19. If WF20/21 are planned/ontology-only, consider rephrasing to avoid implying they’re already represented as typed constants in the code.
| | `internal/operad` | type system | `Registry` (ontology v3.13.0: 52 node types, 21 WFs WF01–WF21), strict port-pair `ValidateLINK`, `ValidateMUTATE`, occupancy resolution, admin-capability walks. | | |
| | `internal/operad` | type system | `Registry` (ontology v3.13.0: 52 node types, 21 WFs WF01–WF21; current typed `RewriteCategory` constants in `internal/graph` run through WF19), strict port-pair `ValidateLINK`, `ValidateMUTATE`, occupancy resolution, admin-capability walks. | |
Five fixes per Copilot review: 1. WF range: clarify WF01-WF20 promoted, WF21 proposed in v3.14 candidate set; typed RewriteCategory constants run through WF19 in graph package. 2. Transport paths: change /state to /state/* (and similar) to match the actual handler paths. 3. --ontology flag: correct the description — gates still run with the default empty registry; only ontology-backed type validation disables. 4. Stdlib statement: clarify direct deps are stdlib-only except quic-go; acknowledge transitive deps via quic-go. 5. T=174 ~24:00 CEST: replace ambiguous wall-clock notation with a date- relative description. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
Thanks @copilot — five real catches. Pushed
PR ready for human review. |
Summary
First public-facing README for
moos-kernel. Frames the project as a semantic functorial network over distributed compute; documents the four primitive rewrites (ADD/LINK/MUTATE/UNLINK), layer discipline (graph→fold→kernel), runtime gates (§M11 + §M12), and federation shape via the WF16 router.Contents
Test plan
🤖 Generated with Claude Code