Files
hq/04-ISSUES/006-hq-is-not-indexed-into-the-knowledge-base/00-report.md
T
jschoubben c192810fba 004 and 008 resolved; 006 narrowed to the decision it actually needs
**004 — certificate issuance.** The resolver declared no authority at
all, so the client fell to its built-in production default: there was no
setting set wrongly, there was no setting. It is now a node property
defaulting to staging, which answers the first open question. Staging by
default rather than production-with-an-override, because the alternative
leaves the safe path depending on remembering to opt out of it — 005's
lesson, in a second place. The rollout is ordered and the order is the
dangerous part; recorded, not performed.

**008 — node rescue.** Read back from running nodes as the report asked,
and one of its own claims was wrong in a way that matters: the health
timer does exist and does fire. It simply never calls the rescue script.
A trigger that exists and does not do what the script claims survives a
halfway check, which makes it worse than the absence the report
described. Resolved by making the documentation true, not by
implementing rescue — the replacement host already supervises recovery,
and wiring unattended restart into the fleet being retired is a
deliberate decision rather than a tidy-up. Two "self-healing" claims
narrowed to what they actually do.

**006 — deliberately not closed.** Re-checked today: the indexing still
does not exist. What is gone is the reason it was an issue — the claim
is no longer load-bearing, because the README names the gap and the
decision's reasoning never invoked indexing. A signpost now points here
from the knowledge base, and was measured rather than assumed: it is
reachable, it is not surfacing. Closing it while the indexing does not
exist would be this repository's own named failure, one folder from
where it names it.
2026-08-31 15:20:11 +02:00

139 lines
6.8 KiB
Markdown

---
status: located
opened: 2026-08-23
located-in: [hal, hq]
fixed-by:
amended-design:
---
# 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.