~385 auto-written See-also edges point at one-word TELOS entries — the graph's top two nodes are artifacts #117

Closed
opened 2026-09-16 22:09:07 +00:00 by mathias · 2 comments
Owner

What is in the corpus right now

Counted over the live brain (origin/main, 2026-09-16), wikilinks appearing under a ## See also heading — i.e. written by brain.AutoTunnel, not by an author:

inbound See-also edges target
184 telos/decisions/wrong (title WRONG)
133 telos/decisions/status
21 telos/decisions/projects
20 telos/decisions/problems
15 telos/decisions/strategies
10 telos/decisions/goals
5 telos/decisions/beliefs

~388 edges, and they are the two most-linked nodes in the entire graph. Every one was created because the entry's prose contained the English word "wrong", "status", "problems"… somewhere, and DetectTunnels matched one-word titles case-insensitively.

Cause is fixed forward in v0.18.2: a one-word title now needs the title's own casing in the prose. This issue is the stock, which that change does not touch.

Why it is worth cleaning rather than leaving

Inbound-link count is not decoration here:

  • the duplicate Fixer picks the surviving entry of a merge by inbound-link count (brain-gardener ADR-0003);
  • orphan detection asks whether an entry has any link at all — an entry whose only edge is a junk tunnel reads as connected;
  • brain_graph and the missing_edge Judge shortlist both traverse these edges, so the noise costs model calls as well as accuracy;
  • brain-gardener#190 (semantic-wrong-link detector) exists to find exactly this class by asking a model. ~388 of them need no model: they are mechanically identifiable.

Proposed remedy (deterministic, one commit)

Remove wikilinks to those seven telos/decisions/* targets when they appear inside a ## See also block, and drop the heading when it empties. Author-written links in prose stay — the distinction is the heading, which is exactly what AutoTunnel writes under.

Sketch:

for each md under knowledge/ wiki/:
    split on "## See also"
    in the trailing block only, drop list items whose sole link is one of:
      telos/decisions/{wrong,status,projects,problems,strategies,goals,beliefs}
    if the block has no items left, drop the heading too

Wants a --dry-run first with the file count and a sample diff, then one commit to mathias/brain (revertable). ~300 files touched, so it wants Mathias's go-ahead before it runs — hence this issue rather than a commit.

Follow-up worth considering separately

The TELOS wing's entries are titled with bare common words (WRONG, Status, Problems). Even with the case rule, Status capitalised at the start of a sentence will link. Retitling them (TELOS: retired beliefs, TELOS: current status) would remove the ambiguity at the source — but that is a rename of the TELOS surface, which other things read, so it is a decision not a cleanup.

Found while verifying the write-boundary wikilink gate (v0.18.1): the verification write itself came back with an auto-tunnel to [[telos/decisions/wrong]] because the body contained the word "Wrong".


Created via git-mcp on behalf of @mathias

## What is in the corpus right now Counted over the live brain (`origin/main`, 2026-09-16), wikilinks appearing under a `## See also` heading — i.e. written by `brain.AutoTunnel`, not by an author: | inbound See-also edges | target | |---|---| | 184 | `telos/decisions/wrong` (title `WRONG`) | | 133 | `telos/decisions/status` | | 21 | `telos/decisions/projects` | | 20 | `telos/decisions/problems` | | 15 | `telos/decisions/strategies` | | 10 | `telos/decisions/goals` | | 5 | `telos/decisions/beliefs` | ~388 edges, and they are the **two most-linked nodes in the entire graph**. Every one was created because the entry's prose contained the English word "wrong", "status", "problems"… somewhere, and `DetectTunnels` matched one-word titles case-insensitively. Cause is fixed forward in v0.18.2: a one-word title now needs the title's own casing in the prose. This issue is the **stock**, which that change does not touch. ## Why it is worth cleaning rather than leaving Inbound-link count is not decoration here: - the `duplicate` Fixer picks the surviving entry of a merge by inbound-link count (brain-gardener ADR-0003); - `orphan` detection asks whether an entry has any link at all — an entry whose only edge is a junk tunnel reads as connected; - `brain_graph` and the `missing_edge` Judge shortlist both traverse these edges, so the noise costs model calls as well as accuracy; - brain-gardener#190 (semantic-wrong-link detector) exists to find exactly this class by asking a model. ~388 of them need no model: they are mechanically identifiable. ## Proposed remedy (deterministic, one commit) Remove wikilinks to those seven `telos/decisions/*` targets **when they appear inside a `## See also` block**, and drop the heading when it empties. Author-written links in prose stay — the distinction is the heading, which is exactly what AutoTunnel writes under. Sketch: ``` for each md under knowledge/ wiki/: split on "## See also" in the trailing block only, drop list items whose sole link is one of: telos/decisions/{wrong,status,projects,problems,strategies,goals,beliefs} if the block has no items left, drop the heading too ``` Wants a `--dry-run` first with the file count and a sample diff, then one commit to `mathias/brain` (revertable). ~300 files touched, so it wants Mathias's go-ahead before it runs — hence this issue rather than a commit. ## Follow-up worth considering separately The TELOS wing's entries are titled with bare common words (`WRONG`, `Status`, `Problems`). Even with the case rule, `Status` capitalised at the start of a sentence will link. Retitling them (`TELOS: retired beliefs`, `TELOS: current status`) would remove the ambiguity at the source — but that is a rename of the TELOS surface, which other things read, so it is a decision not a cleanup. Found while verifying the write-boundary wikilink gate (v0.18.1): the verification write itself came back with an auto-tunnel to `[[telos/decisions/wrong]]` because the body contained the word "Wrong". --- _Created via git-mcp on behalf of @mathias_
mathias added the risk/mediumsize/mtype/chore labels 2026-09-16 22:23:49 +00:00
Author
Owner

CLAIMED — Claude Code session on koala, 2026-09-16 22:15Z, working this now as part of a 4-issue sprint (hyperguild#117, #118, brain-gardener#196, #197). Another agent is active on this estate: please do not pick this up in parallel. I will comment with the outcome or release the claim if I stop.

Plan: --dry-run count + sample diff first, posted here, then one revertable commit to mathias/brain.

One thing found after filing, which changes how this has to be verified: AutoTunnel runs after the write, so removing a junk edge by hand was silently re-added inside the same call — the write returned one content_hash and the stored file had another. That held until v0.18.2 deployed (ingestion:6e69698, live on koala and confirmed). So this cleanup only sticks now, and any earlier attempt at it would have looked like it worked and not held. The cleanup will be verified by re-reading the files after the commit, not by the writer's own return value.


Created via git-mcp on behalf of @mathias

**CLAIMED** — Claude Code session on koala, 2026-09-16 22:15Z, working this now as part of a 4-issue sprint (hyperguild#117, #118, brain-gardener#196, #197). Another agent is active on this estate: please do not pick this up in parallel. I will comment with the outcome or release the claim if I stop. Plan: `--dry-run` count + sample diff first, posted here, then one revertable commit to `mathias/brain`. One thing found after filing, which changes how this has to be verified: `AutoTunnel` runs **after** the write, so removing a junk edge by hand was silently re-added inside the same call — the write returned one `content_hash` and the stored file had another. That held until v0.18.2 deployed (`ingestion:6e69698`, live on koala and confirmed). So this cleanup only sticks now, and any earlier attempt at it would have looked like it worked and not held. The cleanup will be verified by re-reading the files after the commit, not by the writer's own return value. --- _Created via git-mcp on behalf of @mathias_
mathias added the status:dispatched label 2026-09-17 05:07:53 +00:00
Author
Owner

DONE — mathias/brain@44343dc1, one commit, revertable.

281 files, 395 links removed, 249 See-also sections that held nothing else. Slightly more than the 388 estimated here, because the estimate counted only the seven targets' inbound edges and the dry run also caught a few duplicated entries within one block.

Ran as a dry run first, then applied in an isolated worktree (/tmp/brain-cleanup-wt) rather than the shared checkout — the other agent is working in ~/dev/AGENTS/brain and ~/dev/AGENTS/hyperguild.

Scope held to what this issue proposed:

  • only list items inside a trailing ## See also block;
  • only when the item's sole link is one of the seven one-word telos/decisions/* entries;
  • heading removed only when nothing else was left in the block.

Author-written links survive — e.g. wiki/agentsquad/decisions/agentsquad-risk-tier-middleware-design.md lost its [[telos/decisions/wrong]] line and kept both real ones. So does prose: knowledge/brain-update-whole-body-replace-restamps-cross-wing-bidirectional-backlinks.md still contains [[telos/decisions/wrong]] because it is quoting the symptom, not linking.

Integrity-checked all 281 rewritten files before committing: none empty, none left with a dangling ## See also, none with mangled frontmatter.

Verified on the live tree, not just in gitea. brain-sync merged the push within minutes; brain_get on wiki/agentsquad/decisions/cad-reframe-audit-spine-not-consolidation.md comes back with no See-also block. That check matters here specifically — the authority copy is koala's live tree, and a gitea-only fix would have been overwritten by the next write from the pod.

Prior art worth recording

That prose mention is a July write-up of this same symptom: a brain_update came back with one extra trailing [[telos/decisions/wrong]] that was never in the submitted content. It was diagnosed then as bidirectional-backlink restamping, and the real cause — a one-word title matched case-insensitively — went unfound for seven weeks while the count grew to 184. The symptom was visible; the aggregate was not, and nobody counted.

Still open (as filed)

The TELOS entries keep their bare one-word titles. WRONG is now safe (all-caps never matches lowercase prose), but Status capitalised at the start of a sentence still matches, so that one can slowly re-accumulate. Retitling is a rename of a surface other things read, so it stays your call — filed as the follow-up in the issue body rather than done here.


Created via git-mcp on behalf of @mathias

**DONE** — `mathias/brain@44343dc1`, one commit, revertable. **281 files, 395 links removed, 249 See-also sections that held nothing else.** Slightly more than the 388 estimated here, because the estimate counted only the seven targets' inbound edges and the dry run also caught a few duplicated entries within one block. Ran as a dry run first, then applied in an isolated worktree (`/tmp/brain-cleanup-wt`) rather than the shared checkout — the other agent is working in `~/dev/AGENTS/brain` and `~/dev/AGENTS/hyperguild`. Scope held to what this issue proposed: - only list items inside a **trailing `## See also`** block; - only when the item's **sole link** is one of the seven one-word `telos/decisions/*` entries; - heading removed only when nothing else was left in the block. Author-written links survive — e.g. `wiki/agentsquad/decisions/agentsquad-risk-tier-middleware-design.md` lost its `[[telos/decisions/wrong]]` line and kept both real ones. So does prose: `knowledge/brain-update-whole-body-replace-restamps-cross-wing-bidirectional-backlinks.md` still contains `[[telos/decisions/wrong]]` because it is **quoting** the symptom, not linking. Integrity-checked all 281 rewritten files before committing: none empty, none left with a dangling `## See also`, none with mangled frontmatter. **Verified on the live tree, not just in gitea.** brain-sync merged the push within minutes; `brain_get` on `wiki/agentsquad/decisions/cad-reframe-audit-spine-not-consolidation.md` comes back with no See-also block. That check matters here specifically — the authority copy is koala's live tree, and a gitea-only fix would have been overwritten by the next write from the pod. ## Prior art worth recording That prose mention is a July write-up of **this same symptom**: a `brain_update` came back with one extra trailing `[[telos/decisions/wrong]]` that was never in the submitted content. It was diagnosed then as bidirectional-backlink restamping, and the real cause — a one-word title matched case-insensitively — went unfound for seven weeks while the count grew to 184. The symptom was visible; the aggregate was not, and nobody counted. ## Still open (as filed) The TELOS entries keep their bare one-word titles. `WRONG` is now safe (all-caps never matches lowercase prose), but `Status` capitalised at the start of a sentence still matches, so that one can slowly re-accumulate. Retitling is a rename of a surface other things read, so it stays your call — filed as the follow-up in the issue body rather than done here. --- _Created via git-mcp on behalf of @mathias_
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: mathias/hyperguild#117