Design 33 in progress against ADR 0154 (the twelve verbs, the prerequisites built); design 35 for the records module under ADR 0153, extending 0025; as-is 07 rewritten to a mesh that keeps no store; as-is 12 and 13 updated; issue 006 built and waiting on its live check.
4.4 KiB
layer, status, code, updated, decisions
| layer | status | code | updated | decisions | ||||
|---|---|---|---|---|---|---|---|---|
| to-be | in-progress |
|
2026-09-30 |
|
35 — Reading the record
The design record, answered from a checkout the mesh keeps, at the commit it read. A module,
records, holds a working copy of a repository of markdown — this one, for this mesh — and answers
where a phrase appears, what a document says, what a folder holds and where the copy stands. The
console lists those answers beside every other tool
(ADR 0153).
1. What it keeps, and why that is not a copy
A git checkout, cloned from the forge that holds the git seat, brought up to date on every merge the
forge announces and every ten minutes besides. The bytes are the repository's; nothing is derived
from them and stored. What ADR 0025
refused was a second store that is searched while the first is edited, drifting silently. A
checkout cannot drift; it can lag, and the lag is in every answer as the commit it was read at and
in records_status as when it was last brought up to date.
The checkout is reset to the origin on every sync, never merged: it is the mesh's, so a local change is nobody's.
2. What it answers
| tool | answers |
|---|---|
records_search |
every place a phrase appears, as written and case-insensitively: document, line, the nearest heading above it; bounded, and says when it was |
records_read |
one document, whole, or its first part with a note when very long |
records_list |
what a folder holds: sub-folders and documents |
records_status |
repository, forge, commit and its date, last sync, document count, last error |
records_sync |
bring the checkout up to date now |
No ranking and no summary, on purpose: a record is found by its own words, and the reasoning is in the document, not in the tool.
3. What it is told, and what it refuses to guess
Three things, none from a manifest (ADR 0112):
the directory its checkout lives in (a resource the mesh gives it), the forge's address (the git
provision's binding, written into a file as scheme://host:port), and the repository's path on the
forge (a setting, {"repository": "<owner>/<name>"}). Without the third it serves no tools and its
log says so. Public repositories only; it holds no credential.
4. How it is found
The console asks every module what it serves and lists records_search with a description that says
when to call it — search the literal words of a symptom or a term before forming a hypothesis. That
is 0025's second half in today's mesh: there is no store to be beside, and an agent choosing from a
tool list is the search.
5. Where it runs
Anywhere a node has the forge in reach; one assignment is enough, and a second on another machine is harmless. The mesh session of design 15, when it exists, calls this rather than reading for itself.
How it is checked
| Check | Defends |
|---|---|
| a phrase in one document of a repository the test makes comes back from that document, with the commit; a second commit on the origin is pulled and the next answer names it | ADR 0025's check, ADR 0153 |
| a path outside the checkout is refused; an empty search is refused | the reader reads the repository and nothing else |
| a sync against an unreachable origin leaves the checkout standing and says why | silence and success never look alike |
live: through the console, records_search for a phrase that appears only in a design document here returns it |
issue 006's closing check |
What this does not settle
- Ranking or meaning. A search that understands a question is the session's job, not the reader's.
- A private repository. That is a credential the module would have to hold, and a decision about what may read what.
References
- ADR 0153
- ADR 0025
- 34 — The console — what lists it
- issue 006