Design 35 implemented with what shipped and the live check; 006 closes on ADR 0025's own test, run through the console.
209 lines
11 KiB
Markdown
209 lines
11 KiB
Markdown
---
|
|
status: resolved
|
|
opened: 2026-08-23
|
|
located-in: [mesh-catalog modules/records, mesh-catalog modules/mesh-console]
|
|
fixed-by: ADR 0153; mesh-catalog PR 183 (records), PR 185 (a phrase that wraps)
|
|
amended-design: 03-DESIGN/01-to-be/35-reading-the-record.md
|
|
---
|
|
|
|
# 006 — This repository is not indexed into the knowledge base, and the claim that it is holds up a decision
|
|
|
|
## Symptom
|
|
|
|
[`README.md`](../../README.md) states, as the answer to the objection against creating this
|
|
repository:
|
|
|
|
> These documents are still indexed into the knowledge base, so `recall_search` returns them
|
|
> beside everything else. One source, many surfaces — which was always the actual requirement.
|
|
|
|
Searching the knowledge base for this repository's content returns nothing.
|
|
|
|
## Evidence
|
|
|
|
Verified 2026-08-23, two searches against the mesh's operational memory:
|
|
|
|
| Query | Result |
|
|
|---|---|
|
|
| The full title of a decision record in this repository | No results |
|
|
| A distinctive phrase from the decision ledger | No results |
|
|
|
|
No entry, no partial match, no stale copy. The indexing does not exist and appears never to
|
|
have existed.
|
|
|
|
## Why this is an issue and not a task
|
|
|
|
The claim is **load-bearing**. Decision 27 separates HQ into its own repository, and the
|
|
objection it answers was that a fourth knowledge system repeats the mistake the mesh's
|
|
knowledge consolidation was created to fix. The recorded answer is *"indexing, not location"* —
|
|
that the split is safe **because** these documents remain searchable alongside everything else.
|
|
|
|
Without the indexing, the objection stands unanswered and this repository is precisely the
|
|
fourth knowledge system it was argued not to be. Either the indexing is built, or decision 27's
|
|
reasoning is amended to something that is true.
|
|
|
|
It is also, exactly, the failure this repository names in its own rules: a document stating a
|
|
rule about the mesh must say how the rule is checked. This one stated a mechanism and nobody
|
|
checked it — including in the same commit that wrote the rule.
|
|
|
|
## Open questions
|
|
|
|
- Where would the indexing run? The operational memory is written through a mesh capability;
|
|
is this a periodic sync of a repository into it, or a search surface that reads the
|
|
repository directly?
|
|
- Which store — the flat symptom-indexed memory, the structured archive, or both? They have
|
|
different lifecycles ([`03-DESIGN/00-as-is/07-knowledge.md`](../../03-DESIGN/00-as-is/07-knowledge.md)),
|
|
and this content is governed rather than incidental.
|
|
- Public repository, private mesh: the sync direction must not become a path for mesh-specific
|
|
content to arrive **into** these documents.
|
|
|
|
## Proposed direction — Nox is the search
|
|
|
|
*Added 2026-08-23.* Rather than syncing these documents into the knowledge base, **Nox
|
|
([ADR 0019](../../02-DECISIONS/0019-how-this-repository-works.md)) works from within this
|
|
repository and holds its knowledge directly.** Retrieval becomes an agent reading the source,
|
|
not a copy living in a second store.
|
|
|
|
This is a better answer than the one the README originally promised, on three counts:
|
|
|
|
- **No sync, so no drift.** The failure mode of a derived copy — the enforced copy winning
|
|
while the reasoned one quietly stops being true — cannot occur when there is no copy.
|
|
- **It dissolves the original objection properly.** The argument against a separate repository
|
|
was that it adds a fourth knowledge *system*. An agent with read access adds no store at all.
|
|
- **It is always current**, including for uncommitted work in progress.
|
|
|
|
**But it changes the promise, and that is worth stating rather than glossing.** ADR 0019's
|
|
answer was that these documents would be returned *beside everything else* in a symptom search.
|
|
An agent that must be **asked** is reachable; it is not surfacing. The two differ in exactly
|
|
the case the operational memory is designed for: someone debugging an error who has no reason
|
|
to think HQ knows anything about it.
|
|
|
|
So the open question narrows to one thing:
|
|
|
|
> When a symptom is searched and the answer happens to live in a design document or a decision
|
|
> record here, does the searcher find it without already suspecting it exists?
|
|
|
|
If Nox is the only path, the answer is no, and the reasoning in ADR 0019 needs amending rather
|
|
than satisfying. If Nox also contributes what it knows to a symptom search — or the search
|
|
consults Nox — the answer is yes and the original promise holds.
|
|
|
|
That is a design question for Nox, not a defect in this repository, and it should be settled
|
|
before ADR 0019 is treated as answered.
|
|
|
|
## Where this stands
|
|
|
|
*2026-08-31. Re-checked, and deliberately not closed.*
|
|
|
|
**The indexing still does not exist.** Two searches today, against both the symptom-indexed
|
|
memory and the structured archive, using a decision record's full title and a distinctive phrase
|
|
from a design document: no results, no partial match, no stale copy. The symptom in this report
|
|
is unchanged.
|
|
|
|
**But the part that made it an issue is gone.** This report's argument was that the claim was
|
|
*load-bearing* — that a decision rested on a mechanism nobody had checked. It no longer rests on
|
|
it. The README now names the gap in the place the claim used to sit, and says it is left standing
|
|
rather than quietly reworded. The decision record that separates this repository does not invoke
|
|
indexing at all; its reasoning is cadence, reviewers, and scope, none of which depend on it.
|
|
|
|
So what remains is not a false claim. It is an unbuilt capability and an open design question,
|
|
and those are different things.
|
|
|
|
### What was done
|
|
|
|
**A signpost, in the knowledge base, pointing here** — what lives in this repository, which
|
|
folders hold what, and when to come looking rather than search there. Explicitly a pointer and
|
|
not a copy: a derived copy drifts, and the enforced copy wins while the reasoned one quietly
|
|
stops being true.
|
|
|
|
**It was tested, and it half works.** A search for *design records, decisions, repository* returns
|
|
it. A search phrased the way somebody would actually ask — *why is the mesh built this way* —
|
|
returns nothing, because the store matches terms rather than meaning.
|
|
|
|
That is this report's own distinction, confirmed by measurement rather than argued: **a signpost
|
|
is reachable, it is not surfacing.** Someone who suspects the answer exists will now find it.
|
|
Someone debugging an error, with no reason to think this repository knows anything about their
|
|
symptom, still will not.
|
|
|
|
### Why it stays open
|
|
|
|
The question this report narrows to is unchanged and unanswered:
|
|
|
|
> When a symptom is searched and the answer happens to live in a design document or a decision
|
|
> record here, does the searcher find it without already suspecting it exists?
|
|
|
|
Today: **no.** Closing this means choosing between a one-way sync into the knowledge base and an
|
|
agent that reads this repository and contributes to a symptom search — and that is a decision
|
|
about how the knowledge system works, not a defect to be fixed quietly.
|
|
|
|
**Marking it resolved while the indexing does not exist would be the failure this repository was
|
|
created to name**, one folder away from where it names it.
|
|
|
|
## The direction is decided
|
|
|
|
*2026-08-31.* **The agent reads this repository; nothing is copied.** Recorded as
|
|
[ADR 0025](../../02-DECISIONS/0025-the-design-record-is-read-not-copied.md), which also amends
|
|
what [ADR 0019](../../02-DECISIONS/0019-how-this-repository-works.md) promised: these documents
|
|
will not be *indexed*, they will be *read*, and the search consults the agent so its answers
|
|
appear beside ordinary results.
|
|
|
|
A sync was the option that works with what exists today, and it was rejected on the one ground
|
|
this repository can least afford: it makes a second copy, and *the copy that is searched quietly
|
|
stops matching the copy that is edited*.
|
|
|
|
**So the open question above is answered, and this report stays open on the build.** What closes
|
|
it is the check ADR 0025 names — search the mesh's memory for a phrase that appears only in a
|
|
design document here, and get it back. That check fails today by design.
|
|
|
|
**What stands until then** is the signpost, and the honest description of it: reachable, not
|
|
surfacing.
|
|
|
|
## Where this stands, 2026-09-29
|
|
|
|
*Added in a grooming pass.* The knowledge base this record is about is the **predecessor's**, and it
|
|
is no longer reachable from anything: the surface that answered `recall_search` speaks the transport
|
|
the mesh removed at the cut-over
|
|
([issue 147](../147-the-operators-tools-still-dial-the-bus-that-was-removed/00-report.md)).
|
|
|
|
So the sentence in `README.md` that this record catches — *these documents are still indexed into
|
|
the knowledge base* — is now wrong twice over: nothing indexed them, and there is nothing to index
|
|
them into. The record stays open, and its answer is no longer "index this repository somewhere"; it
|
|
is whatever the mesh grows as its own knowledge surface, if it grows one. Until then the honest fix
|
|
is the README, which should stop claiming a property nothing provides.
|
|
|
|
|
|
## Where this stands, 2026-09-30
|
|
|
|
The README no longer claims a property nothing provides: it says the indexing never existed, that the
|
|
store it named is unreachable since the cut-over, and that ADR 0025's answer — read, not copied, by an
|
|
agent that consults this repository — is decided and not built. That was the honest fix the previous
|
|
note asked for, and it is done.
|
|
|
|
The record stays open on ADR 0025's build, and on nothing else. The mesh's own operator surface is now
|
|
a module ([ADR 0152](../../02-DECISIONS/0152-the-operators-surface-is-a-module-the-console.md)); the
|
|
reader ADR 0025 describes is the mesh session of design 15, which would answer through that surface
|
|
like any tool. What closes this is still the check 0025 names: search for a phrase that appears only in
|
|
a design document here, and get it back.
|
|
|
|
## Built, 2026-09-30
|
|
|
|
[ADR 0153](../../02-DECISIONS/0153-the-record-is-read-by-a-module-and-the-console-lists-it.md): the
|
|
reader is a module, `records` (mesh-catalog PR 183), keeping a checkout of this repository from the
|
|
forge and answering `records_search`, `records_read`, `records_list`, `records_status` and
|
|
`records_sync` at the commit it read; the console lists them beside every other tool, which is where
|
|
"beside everything else" lives in a mesh with no store. Design
|
|
[35 — Reading the record](../../03-DESIGN/01-to-be/35-reading-the-record.md). The module's test runs
|
|
0025's check against a repository it makes; this record closes when the same check passes through the
|
|
console on the live mesh, and says so below.
|
|
|
|
## Resolved, 2026-09-30
|
|
|
|
The check ADR 0025 names passed on the live mesh: through the console on a workstation,
|
|
`records_search` for a phrase that appears in one design document here returned that document and the
|
|
commit it was read at, from a checkout the mesh keeps and nobody copied. What this record asked on
|
|
2026-08-23 — *does the searcher find it without already suspecting it exists?* — is answered by where
|
|
the tool sits: in the same list as the forge's and the mesh's own, described as the thing to search
|
|
before forming a hypothesis. Reachable became surfacing when the surface became a list.
|
|
|
|
Open beside it, and not this record's: the mesh has no symptom-indexed memory at all since the
|
|
cut-over ([as-is 07](../../03-DESIGN/00-as-is/07-knowledge.md) says so), and the lessons of these
|
|
days are in this repository by hand.
|