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
This commit is contained in:
parent
3a8e2b8116
commit
2b939bb812
5 changed files with 80 additions and 14 deletions
25
.beads/.gitignore
vendored
25
.beads/.gitignore
vendored
|
|
@ -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?*
|
||||
|
|
|
|||
|
|
@ -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"}}
|
||||
|
|
@ -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"
|
||||
}
|
||||
55
docs/specs/README.md
Normal file
55
docs/specs/README.md
Normal file
|
|
@ -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`.
|
||||
|
|
@ -1 +1 @@
|
|||
Subproject commit 222acf0400837a884fdbf5d1b0d8520d13ed3bf6
|
||||
Subproject commit 4733ca0999e9114b39797649c86ee1eccae64ddb
|
||||
Loading…
Reference in a new issue