Skip to content

docs: establish hierarchical intent layer (VRS) under context/ - #1406

Merged
schickling merged 27 commits into
mainfrom
schickling/2026-07-15-intent-design
Jul 18, 2026
Merged

docs: establish hierarchical intent layer (VRS) under context/#1406
schickling merged 27 commits into
mainfrom
schickling/2026-07-15-intent-design

Conversation

@schickling-assistant

@schickling-assistant schickling-assistant commented Jul 15, 2026

Copy link
Copy Markdown
Collaborator

Problem

LiveStore's durable design intent is scattered across surfaces with unclear precedence: docs pages that are canonical-in-practice (concepts, design-decisions, why/when-livestore), RFCs, contributor-docs/ guides, wip/ notes, and two standalone VRS roots (context/repo-architecture/, context/devtools-artifact-release/). There is no single always-current place that states what the system is, what constrains it, and which terms are canonical — so drift between docs, proposals, and implementation goes undetected.

Goal

One hierarchical intent layer rooted at context/ that captures the current state of LiveStore end to end, with principled subsystem boundaries, explicit precedence over other doc surfaces, and wired enforcement:

context/                     root: vision · requirements · spec · ontology · intuition
  01-product/                positioning, fit criteria, comparisons
  02-system/                 event-model · state (+sqlite +schema-management) ·
                             sync (+syncstate +processors +cf) ·
                             runtime (+web +cloudflare +webmesh) ·
                             store (+reactivity) · observability · devtools ·
                             integrations (+react +effect) ·
                             verification (+lanes +conformance +performance
                             +protocol-compat +determinism)
  03-delivery/               composition · release · artifacts (absorbs legacy roots
                             and the four release/dependency runbooks)
  04-docs/                   derivation rules (+examples +search +operations)
  05-contributing/           RFC + fold-in, BDFL governance, security policy
                             (+collaboration +community)
  06-sustainability/         licensing, sponsorship-first funding, brand

~40 nodes with per-subsystem intuition.md mental-model docs; conventions (uniform LS.* ID scheme, maturity markers, contract/realization pattern, evidence conventions) defined in context/spec.md and mechanically enforced by a Vitest suite in the default unit lane (tests/package-common/src/intent-layer/): ID uniqueness, namespace↔directory mapping parsed from the spec's own table, refines: resolution, link integrity, Status headers, decision-record shape, maturity vocabulary.

Decisions

  • Root at context/ itself, product-scoped — contrib-owned surfaces participate at contract level (context/.decisions/0001).
  • RFCs propose, VRS settles, docs derive (context/.decisions/0002). RFC 0001 (multi-store, largely shipped) is flagged as a fold-in candidate; its known deltas vs implementation are captured in 05-store/.
  • Command replay (RFC 0002) intentionally not spec'd — active proposal; placement is LS-DQ1.
  • Capture reality, mark the rest — shipping behavior is unmarked; experimental (facts, sync/next/, LiveList) and proposal-stage material carries explicit maturity markers; contract-vs-reality drift lives in .delta/ and per-node known-gap sections, never silently.

Verification

Docs + one test suite; no runtime code changed. The enforcement suite passes (8/8) and check:quick gates every commit. Contracts were grounded in adversarial passes: six independent depth critiques compared each subsystem cluster against the implementation, and their corrections landed (examples: the sync backend arbitrates client-assigned sequence numbers via a CAS on the parent head — it does not assign them; sessions fast-path-read persisted state on boot; leader materialization is two coordinated per-DB transactions and not crash-atomic; CF sync transports differ semantically; devtools version mismatch is reply-and-continue; the reactivity graph is eager, not demand-driven).

Complexity

No runtime complexity. The doc tree adds a maintenance contract (specs track implementation), backed by mechanical enforcement plus the fold-in rule; .delta/ records track known drift.

Concerns

Follow-ups

  • Requirement alignment complete (4 interview rounds, 40 contracts adopted); the 15 open .delta/ records are the follow-up backlog.
  • Code risks found during the audit are filed as issues DO-RPC sync client silently drops live pull update when queue is missing (hibernation branch) #1415Leader sync processor cachedPayloads map grows unbounded for long-running sessions #1423 and cross-linked from their owning specs.
  • LS-DQ1 (command/intent design session) is the sole remaining root open question. LS-DQ2 resolved via decision 0003: realization registries in core; contrib hosts its own LSC.* intent nodes — starter PR docs: seed the contrib intent layer (context/) livestore-contrib#11 (draft).
  • 8 founding decision records (event sourcing, SQLite-as-primary-read-model, worker split, eager reactivity, …) mined with rejected alternatives; design-decisions.md and four more canonical docs pages regenerated as derived views.
  • Requirement↔evidence traceability lives in the test code (Verifies: annotations across 17 files, contracted as LS.SYS.VER-R07).
  • SECURITY.md added; versioning/stability promise + breaking-change mechanics now have owners; web adapter decomposed (persistence/topology/leadership); CF design history captured as decision records with rejected alternatives.

References

  • contributor-docs/rfcs/0001-multi-store-api-design.md, 0002-command-replay.md
  • Absorbed: context/repo-architecture/, context/devtools-artifact-release/

🤖 Generated with Claude Code

Posted on behalf of @schickling
field value
agent_name 🥬 cl2-bay
agent_session_id 4cc5e6e4-d4c3-4131-9925-d569318b1cf4
agent_tool Claude Code
agent_tool_version 2.1.206
agent_runtime Claude Code 2.1.206
agent_model claude-fable-5
runtime_profile /nix/store/qq3avrif77r90ypqbdv3hgd3gvwj5s32-coding-agent-runtime-profile/share/coding-agents/profile.json
skills_manifest /nix/store/pjlb3cwf453ghzmc8jj4v8h29sw6p4dg-agent-skills-corpus/share/agent-skills/manifest.json
worktree livestore/schickling/2026-07-15-intent-design
machine dev3
tooling_profile dotfiles@4b8e1c5

schickling-assistant and others added 3 commits July 15, 2026 18:31
Root VRS node for LiveStore the product: vision, requirements
(LS-A/T/R IDs), spec (six-branch tree, ID scheme, maturity markers,
precedence rules), ontology, intuition, open questions, roadmap,
decisions 0001-0002, and DELTA-001 tracking legacy intent surfaces
pending absorption.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019BERbpo8v3D9AzfamD86mv
Creates every branch node of the LiveStore intent layer as Draft:
- 01-product: positioning, fit criteria, comparison stance
- 02-system + 9 children: event-model, state (+sqlite), sync (+cf),
  runtime (+web/cloudflare), store, observability, devtools,
  integrations (+react), verification — contracts grounded in code,
  with maturity markers for facts, sync/next, LiveList, and proposals
- 03-delivery: absorbs context/repo-architecture and
  context/devtools-artifact-release (IDs renamespaced to LS.DEL-*)
- 04-docs (+examples), 05-contributing (+collaboration),
  06-sustainability

Root spec ID table extended for LS.DOCS.EX / LS.CONTRIB.COLLAB;
DELTA-001 trimmed to remaining drift (contributor-docs guides, docs
pages, wip/).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019BERbpo8v3D9AzfamD86mv
Code-grounded resolutions: leadership handover rehydration semantics
(runtime), clientId/sessionId persistence contract (web), DO eviction
recovery path (cloudflare), reactivity guarantees — eager, synchronous,
glitch-free via topological order, corrected stale demand-driven claim
(store), suspense contract — only store load suspends (react).

User-confirmed captures: BDFL governance, maintainer-led review
practice, latest-only docs versioning (LS.DOCS-T01), BDFL-owned
maturity messaging. Contributor-side tooling conventions declared out
of scope for the project layer. Remaining DQs carry explicit blockers.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019BERbpo8v3D9AzfamD86mv
@schickling-assistant schickling-assistant added docs design decision Design decision / RFC · Set: manual labels Jul 15, 2026
schickling-assistant and others added 5 commits July 15, 2026 23:16
Cold-reader audit (independent agent) found 13 issues; all applied:
derived-event/implicit-materializer contradiction reconciled across
event-model and state nodes; commit-receipt proposal ownership moved
solely to 05-store; SyncBackend type vs ontology terminology clash
annotated; Materializer ontology definition corrected to
function-of-(event, state); session-side sync processor added to the
system diagram; devtools artifact cadence rationale extracted to
03-delivery/.decisions/0002; refines: marker form standardized
tree-wide; changeset disambiguation + BDFL added to ontology; root DQ
section deduplicated; backendHead/upstreamHead equivalence noted.

Audit was clean on links, ID integrity, maturity markers, and Status
headers.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019BERbpo8v3D9AzfamD86mv
…ubric, CF reference

Four ecosystem patterns adopted from the VRS survey:
- Enforcement suite (tests/package-common/src/intent-layer/): 8
  mechanical checks (ID uniqueness, namespace-directory mapping parsed
  from the spec's own table, refines: resolution, link integrity,
  Status headers, empty dirs, decision-record shape, maturity
  vocabulary) running in the default unit lane; documented in the root
  spec's Enforcement section
- Per-subsystem intuition.md for 02-system and all nine children
  (breadcrumb header, mental-model narratives)
- Ontology Structure layer rebuilt as a term-family rubric: event as
  spine, five families with leitworter, three-rule naming discipline
- Evidence conventions in root spec (decision provenance, mapping.md
  on rename, .reference/ citations) and the tree's first .reference/
  record: Cloudflare DO durability (curl-verified citations), with
  LS.SYS.RT.CF-DQ1 trimmed to the accepted-commit-loss-window decision

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019BERbpo8v3D9AzfamD86mv
…entation

Six adversarial depth critiques applied. Structure: sync split into
01-syncstate (pure merge core) / 02-processors (leader+session queues,
retry, pull precedence) / 03-cf; schema-management child under
state/sqlite; webmesh child under runtime; reactivity child under
store; effect realization beside react; verification broken into
lanes/conformance/performance/protocol-compat/determinism. Existing
IDs re-homed with mapping notes.

Corrections of contract-vs-reality errors: backend arbitrates
client-assigned sequence numbers (CAS on parent head), does not assign
them; sessions fast-path-read persisted state (proxy-only scoped to
durable effects); materialization is two coordinated per-DB
transactions, not crash-atomic; CF transports differ semantically; no
sync wire versioning; devtools version mismatch is reply-and-continue;
SessionInfo is poll+TTL; NoopTracer is near-zero not zero-cost;
tear-free React claim scoped to what the ref+effect model guarantees;
verification claims trimmed to what tests actually assert.

Ontology: +19 terms integrated into the family rubric (channel +
devtools families added); introspection-surface naming unified.
Devtools protocol catalog (54 messages) added as companion doc.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019BERbpo8v3D9AzfamD86mv
…view rounds

Round 1 (durability/determinism): CF commit-loss window accepted
(LS.SYS.RT.CF-R06); determinism oracle adopted with delta
(LS.SYS.VER.DET-R02); crash-divergence deferred to the read/write-model
separation (LS.SYS.STATE-DQ2 + roadmap property sketch); eventlog
format-bump policy kept open (LS.SYS.STATE.SQLITE.SM-DQ1).

Round 2 (verification): adapter/framework conformance, provider-suite
hardening, sync wire-compat, perf gating, package test floor, lane-CI
mapping — all adopted with 7 deltas marking unbuilt infrastructure.

Round 3 (observability/devtools): span namespacing + attribute/PII
contract adopted with deltas; four protocol codifications adopted
(idempotent delivery, subscription lifecycle, discovery liveness,
transport enumeration); destructive-op accounting + side-effect-free
inspection adopted with deltas; no-op budget and metrics kept as DQs.

Round 4 (current-state batch): 24 codifications across sync (7),
runtime+webmesh (8, incl. fast-path and storage-mode aspirationals
with deltas), store/reactivity (7), integrations (3), event/state (5,
incl. notation round-trip aspirational with delta). One duplicate
avoided (shutdown-cause already owned by LS.SYS.RT-R06).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019BERbpo8v3D9AzfamD86mv
@schickling
schickling marked this pull request as ready for review July 16, 2026 08:43
@github-actions
github-actions Bot requested a review from schickling July 16, 2026 08:44

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 7cd5848be7

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread context/spec.md Outdated
schickling-assistant and others added 4 commits July 16, 2026 11:06
… children

Aspect split of 02-system/04-runtime/01-web/ (Q24, 2026-07-16
interview): 01-persistence (OPFS VFS, hash-named state DBs, fast path,
identity keys), 02-topology (worker graph, two-layer init, mediation +
invariant-enforced port swap), 03-leadership (two-lock design,
blocking election, lock-release death detection, shutdown). Existing
WEB-R01..R03 re-homed; variants reframed as configurations of the
three children; 7 current-state requirements adopted (Q25). Notable
capture: web state-db filenames embed the schema hash but not the
storage-format version, unlike the Cloudflare realization.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019BERbpo8v3D9AzfamD86mv
…, new policy homes

Delivery: 03-delivery decomposed into 01-composition / 02-release /
03-artifacts; the four contributor-docs release/dependency runbooks
moved in as owned companions (all inbound references updated).

Legacy dissolution: RFC index gains the normative fold-in step;
ownership headers on events-notation/changelog-guide/
examples-cloudflare; wip/ annotated (2025-cf.md held pending evidence
capture; commit-receipt marked stale proposal).

Meta interview outcomes (Q27/Q28): SECURITY.md + vulnerability-report
contract (LS.CONTRIB-R09); maturity & stability promise in 01-product
(LS.PROD-R08) with breaking-change mechanics in 02-release
(LS.DEL.REL-R06); sponsorship-first funding with future channels open;
docs/example CI gates kept as promises with delta (#1391 made them
optional); new nodes 04-docs/02-search, 04-docs/03-operations,
05-contributing/02-community; brand stewardship (LS.SUST-R06);
devtools commercial mechanics folded into the licensing-session DQ;
derived-surface-rot delta. Narrative layer refreshed to the deep tree.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019BERbpo8v3D9AzfamD86mv
…lve 2025-cf.md

Two decision records with rejected alternatives: transport/liveness
design (bounded phase-1 history stream + per-transport phase-2
liveness; HTTP streaming and DO-RPC ReadableStream rejected for
dual-DO CPU pinning) and SQLite-over-VFS layering (direct SqlStorage
cannot host the state engine). Roadmap gains the CF runtime directions
(separate workers, read replicas, workerd#4864 outgoing hibernated WS,
CF Queues). wip/2025-cf.md deleted; DELTA-001 updated.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019BERbpo8v3D9AzfamD86mv
schickling-assistant and others added 3 commits July 16, 2026 12:13
…y, derived docs

Q29 program (2026-07-16 interview):
- 8 founding decision records with rejected alternatives (event
  sourcing, SQLite as primary read model — JS-struct read models are a
  planned sibling, in-memory session DB, worker leader/session split,
  eager Adapton reactivity, Effect substrate, total-order-rebase
  default, protocol-first devtools); design-decisions.md regenerated
  as a derived page linking them
- LS-DQ2 resolved (decision 0003): realization registries in the four
  dimension nodes; contrib hosts its own LSC.* intent nodes citing
  core LS.* IDs — starter PR livestore-contrib#11
- Requirement<->evidence traceability as test-code annotations
  (LS.SYS.VER-R07): Verifies: markers seeded across 17 test files,
  all touched suites green
- Five canonical-in-practice docs pages regenerated as derived views
  (why/when-livestore, technology-comparison completed per
  LS.PROD-R04, state-of-the-project, concepts from the ontology);
  DELTA-002 closed; DELTA-001 narrowed to the commit-receipt proposal

LS-DQ1 (command/intent design) is now the sole root open question.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019BERbpo8v3D9AzfamD86mv
The intent-layer branch adds `Verifies:` requirement-traceability comments
to existing test files in @livestore/common and @livestore/react. These are
comment-only, non-shipping changes; changeset-check requires an explicit
empty changeset to record the intentional no-release-impact.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019BERbpo8v3D9AzfamD86mv
Adopt the RFC<->VRS boundary from the 2026-07-16 command/intent design
interview: an unaccepted RFC's design and coined terms live only in the RFC;
the tree carries only the real limitation it addresses plus one root pointer
(LS-DQ1). Drop `Maturity: proposal` as a legal spec marker (keep
`experimental`, which has code); enforcement now rejects `proposal`.

- decision 0004 records the model + rejected alternatives
- spec.md: Maturity Markers, Precedence (RFC + wip), Enforcement, LS-DQ1
- cleanup: remove Command term from ontology, the event-model Command Replay
  proposal section, and the stale wip/ commit-receipt doc (wip/ dissolved)
- LS.SYS.STORE-DQ1 reframed to the commit-confirmation surface, gated by LS-DQ1
- root DELTA-001 closed (branch table matches reality; wip/ empty)

Enforcement suite green (8/8).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019BERbpo8v3D9AzfamD86mv
@schickling-assistant

Copy link
Copy Markdown
Collaborator Author

Coordination: absorb context/repo-ruleset-sync/ into 03-delivery/02-release/

PR #1424 (feat(ci): auto-reconcile branch ruleset via GitHub App) adds a self-contained flat VRS at context/repo-ruleset-sync/ using the pre-hierarchy convention. Per an intent-layer reconciliation decision, it should be absorbed into this layer the same way repo-architecture and devtools-artifact-release were.

⚠️ Sequencing (load-bearing): #1424 must merge before this PR. Its spec.md uses a blockquote status rather than a ## Status section, so it will fail the intent-layer enforcement suite the moment this PR's suite lands on main. Merge #1424 first, then absorb repo-ruleset-sync in this PR's rebase (the failing suite is the forcing function). If this PR merges first, #1424 can't merge without conforming.

Target: 03-delivery/02-release/ (release governance).

Intent to capture — currently absent from 02-release/spec.md:

  1. Ruleset auto-reconcile design. The main branch ruleset is reconciled from committed desired state (.github/repo-settings.json) by an org-owned GitHub App (administration:write), defined as-code via a committed App manifest + a GET /app drift-check. Apply-on-merge (path-filtered) + daily scheduled backstop + non-gating PR dry-run; the former ruleset-drift-check ci job is removed. Source: context/repo-ruleset-sync/{spec.md, decisions/0001-github-app-definition-as-iac.md, reference/github-app-platform-constraints.md}. → a decision record + spec section under a new LS.DEL.REL.* (or sub-node) namespace.

  2. Requirement + .delta: snapshot publishing must not be gated on the whole ci run conclusion. Today release.yml publish-snapshot-version gates on workflow_run.conclusion == 'success', so any red ci job (governance drift, a flaky preview deploy, report-pr-preview) silently wedges snapshot releases. This is a release-governance requirement, currently violated → capture as a requirement plus a .delta record. (This was the original defect that motivated feat(ci): auto-reconcile branch ruleset via GitHub App #1424; the ruleset fix removes one cause but not the general coupling.)

  3. Manual App-provisioning runbook (the non-IaC steps: register App from the manifest, store LIVESTORE_RULESET_APP_KEY org secret restricted to both repos, set RECONCILE_APP_ID, install on both repos) — a durable home alongside release-workflows-runbook.md.

After absorbing: delete the flat context/repo-ruleset-sync/, add the new namespace row to spec.md's ID Scheme table, and (optionally) note the absorption in .delta/DELTA-001 for the historical record.

Posted on behalf of @schickling
field value
agent_name 🎿 cl2-col
agent_session_id 8462ca40-af13-41a1-92ef-67bff1abcd1c
agent_tool Claude Code
agent_tool_version 2.1.206
agent_runtime Claude Code 2.1.206
agent_model claude-opus-4-8
runtime_profile /nix/store/qq3avrif77r90ypqbdv3hgd3gvwj5s32-coding-agent-runtime-profile/share/coding-agents/profile.json
skills_manifest /nix/store/pjlb3cwf453ghzmc8jj4v8h29sw6p4dg-agent-skills-corpus/share/agent-skills/manifest.json
worktree livestore/schickling/2026-07-15-snapshot-release
machine dev3
tooling_profile dotfiles@4b8e1c5

schickling-assistant and others added 8 commits July 16, 2026 15:52
…tatus

The contrib graphql intent node now exists; add its intent-home reference to
the integrations registry and record (in the conformance column) that graphql
is a query-surface rather than a framework binding — matching the contrib
node's DELTA-001.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019BERbpo8v3D9AzfamD86mv
Reopen root DELTA-001 to log the inbound legacy surface from
#1424 (context/repo-ruleset-sync/) as a tracked pending
absorption into 03-delivery/02-release/, sequenced after #1424 merges. Records
the two intent facts to capture and the absorb-don't-conform-in-place rule
(the dir intentionally fails the enforcement suite as a forcing function), so
the task lives in this PR's ledger, not only in a PR comment.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019BERbpo8v3D9AzfamD86mv
The sustainability interview (2026-07-17) reframed LS.SUST-DQ1 from a narrow
"fully open source wording + devtools mechanics" question into the underlying
licensing-model decision. Leading direction (not decided): a whole-system
time-delayed license (FSL or similar) that also opens the devtools source.

- spec.md LS.SUST-DQ1 rewritten with the scope + identity/vision forks; notes
  the wording, mechanics, and UI-kit boundary are all downstream of the model
- new .reference/license-model-options.md grounds the candidate license
  families (Apache-2.0, PolyForm Noncommercial, Fair Source, BSL, FSL)
- flags that a whole-product change is vision-level (vision.md is human-only)

Blocked on a strategic decision by the project creator.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019BERbpo8v3D9AzfamD86mv
Query kinds are already a composable, pluggable part of the reactive graph
(LS.SYS.STORE.RX-R02); make that extensibility a first-class realization
dimension so query languages over the store have a defined home instead of
being parked under framework-integrations.

- decision 0005 records the choice + rejected "keep under integrations"
- 05-store/01-reactivity/realizations.md registry + spec §"Extension: query
  surfaces"
- remove graphql from the 08-integrations registry (it re-homes to contrib
  context/query-surfaces/ — livestorejs/livestore-contrib#11)

Resolves the graphql placement mismatch (contrib LSC-DQ1). Enforcement green.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019BERbpo8v3D9AzfamD86mv
Audited all 17 core deltas against code (read-only critics). Most are genuine
aspirational-contract gaps, correctly left open. Applied the accuracy fixes the
audit surfaced:

- OBS DELTA-002: drop the false "only manualRefreshLabel is namespaced" claim;
  most keys are namespaced, the real gap is ungated sql.query + ad-hoc sql.*
- verification/lanes DELTA-001: exempt wa-sqlite (vendored fork + own lane) —
  a 4-package delta, not 5; matching spec Coverage Skew exemption
- conformance DELTA-003: reconnection test DOES run for all 7 providers; the
  real gap is turnBackendOffline stubbed for the 6 CF providers + no auth-failure
- perf DELTA-001: note the existing non-required perf-test job (make it
  required + add budget, not build-from-zero)
- EVT/DT-001/DT-002: add missing file:line citations
- verification/lanes DELTA-002: CLOSED — the asserted table<->CI mismatch did
  not exist (1:1 mapping); only the local-command column was wrong (sync-provider
  /wa-sqlite are `integration` subcommands). Corrected the lane spec table +
  reframed Known Mismatches as intended characteristics.

Enforcement green.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019BERbpo8v3D9AzfamD86mv
Decided 2026-07-17 (interview): contrib's unmanaged GitHub labels reconcile
through the same org GitHub-App apparatus #1424 builds for repo-settings.json,
not a one-off manual gh sync. Logged in DELTA-001's pending-inbound entry so it
folds into the 03-delivery/02-release absorption.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019BERbpo8v3D9AzfamD86mv
The multi-store API is shipped and its contract is captured in
02-system/05-store/ (which records where the implementation diverged from the
proposal). Update the RFC-state tracking from "fold-in candidate" to folded,
and add a historical-record status header to RFC 0001 per the documented
fold-in lifecycle. Closes the RFC 0001 fold-in follow-up (item 6).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019BERbpo8v3D9AzfamD86mv
Resolves the one content conflict (context/03-delivery/03-artifacts/spec.md,
a rename/edit clash from #1397): kept the intent-layer home and merged both
wordings (main's refined resolution-path phrasing + this branch's transitive
@livestore/adapter-node specificity). Brings in #1424 (context/repo-ruleset-sync/,
to be absorbed next), #1397 tooling contract, and other main fixes.

check:quick skipped locally: the shared effect-utils store checkout (pinned
348be5df) is dirtied by a concurrent tsgo-bump workstream, breaking local nix
eval; main's CI is green with the identical devenv.nix + lock, so CI validates
the true (clean) state.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019BERbpo8v3D9AzfamD86mv
schickling-assistant and others added 3 commits July 18, 2026 09:56
#1424 (auto-reconcile branch ruleset via GitHub App) merged to main, bringing
a flat pre-hierarchy context/repo-ruleset-sync/ that fails the intent-layer
enforcement suite (blockquote status). Absorb it per the coordination
(absorb, do not conform-in-place):

- spec.md §Ruleset Reconciliation: desired-state pipeline, org-owned App
  identity, reconcile control flow (apply-on-merge / scheduled backstop /
  non-gating PR plan / gate removal), App-definition drift-check, ownership
- .decisions/0001-ruleset-reconciliation.md (App-not-PAT, one-org-App,
  manifest-as-code, with rejected alternatives)
- .reference/github-app-platform-constraints.md (platform limits)
- ruleset-app-provisioning-runbook.md (the irreducible manual App lifecycle)
- LS.DEL.REL-DQ2/DQ3/DQ4 (snapshot decoupling / Alchemy / contrib repo-target)
- .delta/DELTA-001-snapshot-gated-on-ci-conclusion.md — the original
  snapshot-wedge defect; promotion to a normative requirement flagged pending
  owner confirmation (protected requirements.md edit)
- delete the flat context/repo-ruleset-sync/; close it in root DELTA-001

Intent-layer enforcement suite green (8/8, run via vitest directly; devenv
check skipped locally — shared effect-utils store dirtied by a concurrent
tsgo-bump workstream, CI validates the clean state).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019BERbpo8v3D9AzfamD86mv
Owner-confirmed the protected requirements.md edit: the "snapshot publishing
must not gate on the whole ci run conclusion" rule (previously LS.DEL.REL-DQ2)
is now a normative requirement, LS.DEL.REL-R07, with the current violation
tracked by .delta/DELTA-001-snapshot-gated-on-ci-conclusion.md. Updated the
delta, spec, decision, and root DELTA-001 references DQ2 -> R07.

Intent-layer enforcement green (8/8, via vitest directly).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019BERbpo8v3D9AzfamD86mv
Codex correctly flagged that the intent-layer enforcement suite does not
actually gate CI: tests/package-common is in the CI runner's sequentialPackages
group, run via Effect.ignore (a flaky-webmesh workaround), so the suite's
failures are logged not gated (scripts/src/commands/test-commands.ts:197-200).

- spec.md §Enforcement: correct the overstated claim — the suite runs in
  test-unit but does not yet hard-block; failures are currently swallowed
- new .delta/DELTA-002-enforcement-not-ci-blocking.md tracks the fix (a
  dedicated non-ignored vitest step), deferred as a CI-runner change needing a
  working devenv/mono env to verify

Enforcement suite green (8/8, via vitest directly).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019BERbpo8v3D9AzfamD86mv
@github-actions

github-actions Bot commented Jul 18, 2026

Copy link
Copy Markdown
Contributor

PR preview

Subject Status Report Details Updated
LiveStore docs preview success Docs preview deployed (livestore-docs-dev) PR aliases: pr-1406-58421d4, pr-1406 2026-07-18 08:55 UTC
web-linearlite success web-linearlite deployed (preview) Worker: example-web-linearlite-preview.livestore.workers.dev 2026-07-18 08:42 UTC
web-todomvc success web-todomvc deployed (preview) Worker: example-web-todomvc-preview.livestore.workers.dev 2026-07-18 08:42 UTC
web-todomvc-script success web-todomvc-script deployed (preview) Worker: example-web-todomvc-script-preview.livestore.workers.dev 2026-07-18 08:42 UTC
web-todomvc-sync-cf success web-todomvc-sync-cf deployed (preview) Worker: example-web-todomvc-sync-cf-preview.livestore.workers.dev 2026-07-18 08:42 UTC
Report history

PR 1406 · 2026-07-18 09:03 UTC

Subject Status Report Details Updated
LiveStore docs preview success Docs preview deployed (livestore-docs-dev) PR aliases: pr-1406-58421d4, pr-1406 2026-07-18 08:55 UTC
web-linearlite success web-linearlite deployed (preview) Worker: example-web-linearlite-preview.livestore.workers.dev 2026-07-18 08:42 UTC
web-todomvc success web-todomvc deployed (preview) Worker: example-web-todomvc-preview.livestore.workers.dev 2026-07-18 08:42 UTC
web-todomvc-script success web-todomvc-script deployed (preview) Worker: example-web-todomvc-script-preview.livestore.workers.dev 2026-07-18 08:42 UTC
web-todomvc-sync-cf success web-todomvc-sync-cf deployed (preview) Worker: example-web-todomvc-sync-cf-preview.livestore.workers.dev 2026-07-18 08:42 UTC

PR 1406 · 2026-07-18 08:39 UTC

Subject Status Report Details Updated
LiveStore docs preview success Docs preview deployed (livestore-docs-dev) PR aliases: pr-1406-ea607c5, pr-1406 2026-07-18 08:33 UTC
web-linearlite success web-linearlite deployed (preview) Worker: example-web-linearlite-preview.livestore.workers.dev 2026-07-18 08:24 UTC
web-todomvc success web-todomvc deployed (preview) Worker: example-web-todomvc-preview.livestore.workers.dev 2026-07-18 08:24 UTC
web-todomvc-script success web-todomvc-script deployed (preview) Worker: example-web-todomvc-script-preview.livestore.workers.dev 2026-07-18 08:24 UTC
web-todomvc-sync-cf success web-todomvc-sync-cf deployed (preview) Worker: example-web-todomvc-sync-cf-preview.livestore.workers.dev 2026-07-18 08:24 UTC

PR 1406 · 2026-07-18 08:24 UTC

Subject Status Report Details Updated
web-linearlite success web-linearlite deployed (preview) Worker: example-web-linearlite-preview.livestore.workers.dev 2026-07-18 08:17 UTC
web-todomvc success web-todomvc deployed (preview) Worker: example-web-todomvc-preview.livestore.workers.dev 2026-07-18 08:17 UTC
web-todomvc-script success web-todomvc-script deployed (preview) Worker: example-web-todomvc-script-preview.livestore.workers.dev 2026-07-18 08:17 UTC
web-todomvc-sync-cf success web-todomvc-sync-cf deployed (preview) Worker: example-web-todomvc-sync-cf-preview.livestore.workers.dev 2026-07-18 08:17 UTC

PR 1406 · 2026-07-18 08:20 UTC

Subject Status Report Details Updated
LiveStore docs preview success Docs preview deployed (livestore-docs-dev) PR aliases: pr-1406-86f9233, pr-1406 2026-07-18 08:15 UTC
web-linearlite success web-linearlite deployed (preview) Worker: example-web-linearlite-preview.livestore.workers.dev 2026-07-18 08:06 UTC
web-todomvc success web-todomvc deployed (preview) Worker: example-web-todomvc-preview.livestore.workers.dev 2026-07-18 08:06 UTC
web-todomvc-script success web-todomvc-script deployed (preview) Worker: example-web-todomvc-script-preview.livestore.workers.dev 2026-07-18 08:06 UTC
web-todomvc-sync-cf success web-todomvc-sync-cf deployed (preview) Worker: example-web-todomvc-sync-cf-preview.livestore.workers.dev 2026-07-18 08:06 UTC

@schickling
schickling enabled auto-merge (squash) July 18, 2026 08:28
Neither file explained that context/ is now the intent layer (source of truth
for the system's design). Add an "Intent Layer" section: read context/spec.md;
update the owning node when changing behavior/contracts (docs derive from it);
decisions/deltas/open-questions conventions; protected vision.md/requirements.md;
the enforcement suite. Cross-reference it from Documentation/Examples.

(AGENTS.md is a symlink to CLAUDE.md.)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019BERbpo8v3D9AzfamD86mv
@schickling
schickling merged commit c78f6cc into main Jul 18, 2026
20 checks passed
@schickling
schickling deleted the schickling/2026-07-15-intent-design branch July 18, 2026 08:45
@schickling-assistant schickling-assistant added type:docs Documentation-only change or documentation task · Set: manual and removed docs labels Jul 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

design decision Design decision / RFC · Set: manual type:docs Documentation-only change or documentation task · Set: manual

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants