From 2b939bb812d9ee5e28d8fed2d746074d9d040937 Mon Sep 17 00:00:00 2001 From: w1n5t0n Date: Sun, 14 Jun 2026 10:06:47 -1000 Subject: [PATCH] chore(beads): switch to embedded Dolt mode, ignore runtime files; add specs README; bump memllib - .beads/metadata.json: dolt_mode server -> embedded - .beads/.gitignore: ignore interactions.jsonl, push-state, locks, .env, credential key, corrupt backups - untrack now-ignored .beads/interactions.jsonl (runtime) - docs/specs/README.md: tiered specs corpus overview - src/memllib: bump submodule pointer --- .beads/.gitignore | 25 ++++++++++++++++-- .beads/interactions.jsonl | 10 ------- .beads/metadata.json | 2 +- docs/specs/README.md | 55 +++++++++++++++++++++++++++++++++++++++ src/memllib | 2 +- 5 files changed, 80 insertions(+), 14 deletions(-) delete mode 100644 .beads/interactions.jsonl create mode 100644 docs/specs/README.md diff --git a/.beads/.gitignore b/.beads/.gitignore index 363ebae..eb82c48 100644 --- a/.beads/.gitignore +++ b/.beads/.gitignore @@ -1,12 +1,27 @@ # Dolt database (managed by Dolt, not git) dolt/ -dolt-access.lock # Runtime files bd.sock bd.sock.startlock sync-state.json last-touched +.exclusive-lock + +# Daemon runtime (lock, log, pid) +daemon.* + +# Interactions log (runtime, not versioned) +interactions.jsonl + +# Push state (runtime, per-machine) +push-state.json + +# Lock files (various runtime locks) +*.lock + +# Credential key (encryption key for federation peer auth — never commit) +.beads-credential-key # Local version tracking (prevents upgrade notification spam after git ops) .local_version @@ -19,6 +34,7 @@ redirect # These files are machine-specific and should not be shared across clones .sync.lock export-state/ +export-state.json # Ephemeral store (SQLite - wisps/molecules, intentionally not versioned) ephemeral.sqlite3 @@ -32,11 +48,16 @@ dolt-server.log dolt-server.lock dolt-server.port dolt-server.activity -dolt-monitor.pid + +# Corrupt backup directories (created by bd doctor --fix recovery) +*.corrupt.backup/ # Backup data (auto-exported JSONL, local-only) backup/ +# Per-project environment file (Dolt connection config, GH#2520) +.env + # Legacy files (from pre-Dolt versions) *.db *.db?* diff --git a/.beads/interactions.jsonl b/.beads/interactions.jsonl deleted file mode 100644 index 7c0783a..0000000 --- a/.beads/interactions.jsonl +++ /dev/null @@ -1,10 +0,0 @@ -{"id":"int-691bec44","kind":"field_change","created_at":"2026-04-15T15:26:14.033393505Z","actor":"w1n5t0n","issue_id":"meml-kx6a","extra":{"field":"status","new_value":"in_progress","old_value":"open"}} -{"id":"int-55a0a37d","kind":"field_change","created_at":"2026-04-15T15:32:17.624534929Z","actor":"w1n5t0n","issue_id":"meml-kx6a","extra":{"field":"status","new_value":"closed","old_value":"in_progress","reason":"Added firmware helper scripts and updated docs to the RP2350/C++20/O3 build flow"}} -{"id":"int-c4271206","kind":"field_change","created_at":"2026-04-15T15:35:23.153751063Z","actor":"w1n5t0n","issue_id":"meml-efb2","extra":{"field":"status","new_value":"in_progress","old_value":"open"}} -{"id":"int-4ab84a6f","kind":"field_change","created_at":"2026-04-15T15:37:55.547397813Z","actor":"w1n5t0n","issue_id":"meml-efb2","extra":{"field":"status","new_value":"closed","old_value":"in_progress","reason":"Added variant-aware firmware build selection and interactive prompting"}} -{"id":"int-6deafb72","kind":"field_change","created_at":"2026-04-15T15:44:14.681880459Z","actor":"w1n5t0n","issue_id":"meml-zbbs","extra":{"field":"status","new_value":"in_progress","old_value":"open"}} -{"id":"int-fd7690f3","kind":"field_change","created_at":"2026-04-15T15:44:48.605669713Z","actor":"w1n5t0n","issue_id":"meml-zbbs","extra":{"field":"status","new_value":"closed","old_value":"in_progress","reason":"Prompt variant selection now uses /dev/tty so interactive shells are detected correctly"}} -{"id":"int-672df751","kind":"field_change","created_at":"2026-04-15T15:45:23.772401653Z","actor":"w1n5t0n","issue_id":"meml-oq1q","extra":{"field":"status","new_value":"in_progress","old_value":"open"}} -{"id":"int-d96e5dc8","kind":"field_change","created_at":"2026-04-15T15:46:03.317834458Z","actor":"w1n5t0n","issue_id":"meml-oq1q","extra":{"field":"status","new_value":"closed","old_value":"in_progress","reason":"Preserved canonical firmware variant capitalization in prompts and docs"}} -{"id":"int-24228f3d","kind":"field_change","created_at":"2026-04-15T15:51:08.349410622Z","actor":"w1n5t0n","issue_id":"meml-9hla","extra":{"field":"status","new_value":"in_progress","old_value":"open"}} -{"id":"int-ea04e4b0","kind":"field_change","created_at":"2026-04-15T15:52:36.360908976Z","actor":"w1n5t0n","issue_id":"meml-9hla","extra":{"field":"status","new_value":"closed","old_value":"in_progress","reason":"Expanded UF2 detection to find labeled block devices and resolve mounted boot volumes reliably"}} diff --git a/.beads/metadata.json b/.beads/metadata.json index f262c5d..3854f78 100644 --- a/.beads/metadata.json +++ b/.beads/metadata.json @@ -1,7 +1,7 @@ { "database": "dolt", "backend": "dolt", - "dolt_mode": "server", + "dolt_mode": "embedded", "dolt_database": "beads_meml", "project_id": "876a8fcd-79fc-4727-a69a-b6bf58c616e9" } \ No newline at end of file diff --git a/docs/specs/README.md b/docs/specs/README.md new file mode 100644 index 0000000..b4e34fd --- /dev/null +++ b/docs/specs/README.md @@ -0,0 +1,55 @@ +# Tiered Specs — MEMLNaut-NISPS + +This corpus is the **prescriptive plan** for the project: what we are building and why, organised from +high-level intent down to implementation specifics. It is distinct from the two orienting docs at the repo +root: + +- **`MAP.md`** — "what *is*" (neutral inventory of the code as it stands). Voice: stenographer. +- **`ALIGNMENT.md`** — "how good is what is, vs. what we need" (dated, opinionated gap diagnosis). Voice: critic. +- **`docs/specs/` (this corpus)** — "what we are *going to build*" (prescriptive, tiered). Voice: architect. + +## The five tiers + +``` +T0 Mission [SHARED across all products] +T1 Capabilities & Principles [SHARED] +T2 Architecture & Contracts + ├ contracts spine (schema/codegen, ML-core API, ControlEvent/outputs, crystallization) [SHARED] + ├ core engine architecture + ├ firmware architecture + ├ playground architecture + └ backends architecture +T3 Component Design → core | playground | firmware | backends (branches per product) +T4 Implementation specifics → (same branches) → spawn bd issues/epics +``` + +Files: + +| Tier | File(s) | Status | +|------|---------|--------| +| T0 | `T0-mission.md` | **draft — awaiting audit** | +| T1 | `T1-capabilities-and-principles.md` | **draft — awaiting audit** | +| T2 | `T2-architecture-and-contracts.md` (+ per-product sections) | not started | +| T3 | `T3-component-design/{core,playground,firmware,backends}.md` | not started | +| T4 | `T4-implementation/{core,playground,firmware,backends}.md` → beads | not started | +| — | `00-decisions-log.md` | the interview outcomes that seed these tiers | + +## Audit protocol (why tiers exist) + +The point of tiering: **each tier is audited and agreed before the tier below it is authored.** A change is +only made *downstream* of a tier when that tier itself got something wrong. So: + +1. T0 + T1 are reviewed and approved first (they constrain everything). +2. Only then is T2 authored; reviewed; approved. +3. Only then T3; then T4 → beads → execution. + +If review of a lower tier reveals that an upper tier is wrong, **fix the upper tier first**, then propagate. +Every tier file ends with a "Traces up to" line citing the tier(s) above it that justify its content. + +## Keeping it honest + +Per the project's doc-sync rule: when code changes invalidate a spec, update the spec in the same commit. +When a T4 item is implemented and verified, it migrates from "spec" to MAP.md ("what is"); the spec entry +is pruned. Stale prescription is worse than none. + +Recon that seeded this corpus: `.local/recon/dossier/00-GROUND-TRUTH.md` + `00-DECISIONS.md`. diff --git a/src/memllib b/src/memllib index 222acf0..4733ca0 160000 --- a/src/memllib +++ b/src/memllib @@ -1 +1 @@ -Subproject commit 222acf0400837a884fdbf5d1b0d8520d13ed3bf6 +Subproject commit 4733ca0999e9114b39797649c86ee1eccae64ddb