LearnNewsExamplesServices
Frontmatter
id15043
titleRemove the top-level spikes/ directory (repo-root bloat)
stateClosed
labels
documentationenhancementairefactoringarchitecture
assigneesneo-opus-vega
createdAtJul 11, 2026, 9:42 PM
updatedAtJul 11, 2026, 11:46 PM
githubUrlhttps://github.com/neomjs/neo/issues/15043
authorneo-opus-ada
commentsCount1
parentIssuenull
subIssues[]
subIssuesCompleted0
subIssuesTotal0
contentTrust
projected
quarantined0
signals[]
blockedBy[]
blocking[]
closedAtJul 11, 2026, 11:46 PM

Remove the top-level spikes/ directory (repo-root bloat)

Closed Backlog/active-chunk-5 documentationenhancementairefactoringarchitecture
neo-opus-ada
neo-opus-ada commented on Jul 11, 2026, 9:42 PM

Context

spikes/ is a git-tracked top-level directory at the repo root, holding one spike — spikes/14786-electron-sharedworker/ (8 files). Surfaced by @tobiu (2026-07-11): repo-root placement is an absolute no-go, and the in-tree runnable copy is challenged as bloat. This ticket removes it, and does so without losing the evidence durability the folder was (clumsily) trying to guarantee.

Provenance — how it reached the repo root (traced via git history, not asserted):

  • Ticket #14786's own AC asked for the SharedWorker-in-Electron constraint set "verified empirically in a spike branch, not asserted" — i.e. an ephemeral branch, never a repo-root folder.
  • @neo-opus-vega built it on spike/14786-electron-sharedworker (commit 8bf8a915d0) — that commit never reached dev (git merge-base --is-ancestor 8bf8a915d0 origin/dev → false).
  • During PR #14924 (the ADR 0034 documentation PR), a cycle-2 review raised "evidence durability" (a floating branch can be GC'd → the ADR anchor rots). The recorded fix: "the spike moved IN-TREE … the pre-review branch is superseded."
  • "In-tree" was implemented as a new top-level spikes/ folder, merged with the ADR by @tobiu (8b2b72a2a8, 2026-07-10).

So a repo-root structural change rode in as an unreviewed by-product of a docs-PR review cycle. No ADR or decision governs a top-level spikes/; a single spike quietly established an ungoverned top-level convention.

The Problem

Two things are wrong, independent of each other:

  1. Repo-root placement is a no-go. A one-off verification harness (with its own package.json + Electron dep) does not belong beside src/, apps/, ai/, test/, learn/. It sets a top-level convention off one spike, reviewed only as ADR evidence — never as repo layout.
  2. The in-tree copy is redundant bloat. The durable knowledge already lives in ADR 0034 — the full 9-phase results table, findings 1–6, and pinned versions (Electron 43.1.0 · Chromium 150.0.7871.47 · Node 24.18.0 · darwin 25.5.0). The runnable harness itself persists on origin/spike/14786-electron-sharedworker. Carrying an 8-file runnable sub-project in the main tree — used by nothing, run manually at most once per Electron-major bump — earns its keep for no one.

The original "evidence durability" concern was real but over-solved: the ADR body plus a persisted branch is sufficient; a repo-root runnable folder was the wrong instrument.

The Architectural Reality

  • Tracked footprint: spikes/14786-electron-sharedworker/{README.md, data.json, main.mjs, package.json, page.html, preload.cjs, spike-results.json, worker.js} (git ls-files 'spikes/**' → 8).
  • Inert: nothing in build / test / CI references the path. The only live consumers are documentation citations:
    • learn/agentos/decisions/0034-electron-shell-architecture.md3 references (lines ~19 empirical-anchor row, ~86, ~285).
    • resources/content/issues/chunk-2/issue-13377.md — the epic body reference.
    • resources/content/pulls/chunk-2/pr-14924.md + pr-14963.mdimmutable synced PR-body history (do NOT edit).
  • Recovery guarantee: the harness lives on origin/spike/14786-electron-sharedworker. A branch is a deletable ref, so relying on it as-is would reintroduce the exact fragility the in-tree move was solving — the fix upgrades it to a permanent git tag.
  • Structure-map gate (1c): N/A — this is a removal, not a new .mjs placement; the absence of any spikes/ owning-folder precedent is the ticket's premise, established via git history (only add-commits: 8bf8a915d0 + 8b2b72a2a8).

The Fix

  1. Delete spikes/git rm -r spikes/14786-electron-sharedworker (removes the whole top-level dir).
  2. Preserve durability properly (the friction → gold turn): tag the spike branch head as a permanent ref, e.g. git tag spike-14786-electron-sharedworker origin/spike/14786-electron-sharedworker and push the tag — a permanent git object is stronger durability than the in-tree folder it replaces (and than a plain branch). The ADR's distilled results table + versions remain the primary authority; fold the verbatim spike-results.json into ADR 0034 as an appendix only if the table is judged insufficient (it likely is not).
  3. Repoint the references from the in-tree path to "reproduce from tag spike-14786-electron-sharedworker": the 3 ADR 0034 sites + the epic #13377 body line. Leave the synced resources/content/pulls/** bodies untouched (history).

Contract Ledger Matrix

Target Surface Source of Authority Proposed Behavior Fallback Docs Evidence
ADR 0034 empirical-anchor refs (3× spikes/14786-electron-sharedworker/) ADR 0034 §6 evidence-durability intent repoint to the permanent tag reproduction in-ADR results table stays the distilled authority learn/agentos/decisions/0034-…md grep of ADR post-edit → zero spikes/ path
Epic #13377 body ref epic body repoint likewise resources/content/issues/chunk-2/issue-13377.md grep → zero
the runnable harness git history preserved as a permanent tag on the spike branch branch still persists tag + spike README git tag + a checkout re-runs

Decision Record impact

amends ADR 0034reference / §6 lines only; no technical decision changes (the six shell decisions + the SharedWorker findings are untouched). No successor-risk audit needed — this neither challenges nor supersedes any decision, it relocates the evidence pointer to a more durable ref.

Acceptance Criteria

  • spikes/ removed from the repo — git ls-files 'spikes/**' returns zero; the repo root no longer carries a spikes/ directory.
  • The Electron SharedWorker harness is preserved as a permanent, recoverable artifact (tag on the spike/14786-electron-sharedworker branch, pushed) — removal loses nothing; a fresh checkout of the tag still npm install && npm start-runs.
  • ADR 0034's 3 empirical-anchor references repointed off the in-tree path to the tag reproduction; the results table + pinned versions remain self-sufficient in-ADR.
  • Epic #13377 body reference repointed likewise.
  • No tracked consumer still references spikes/ (verify: only ADR 0034 + epic #13377 + the immutable synced PR bodies did; the first two are updated, the last are history).

Out of Scope

  • Re-running / re-verifying the Electron findings — the recorded run stands; the re-run trigger is a future Electron-major event, not this ticket.
  • Relocating the harness elsewhere in-tree — see Avoided Traps (the directive is removal, not relocation).
  • Designing a general spikes/ / research/ convention — if the team later wants an in-repo home for spikes, that is a separate layout decision; this ticket removes the ungoverned one, it does not mint a replacement.
  • Editing the immutable synced PR-body content under resources/content/pulls/** (historical record).

Avoided Traps

  • Relocate instead of remove — rejected: @tobiu challenged keeping it at all (bloat); the ADR carries the durable knowledge and the harness is recoverable from a tag, so an in-tree runnable sub-project for a rare manual re-run is disproportionate.
  • Delete without preserving durability — rejected: the in-tree move was solving "a floating branch can be GC'd"; deleting and leaning on a plain branch reintroduces that fragility. A permanent tag is the correct, stronger answer.
  • Silently delete another author's substrate — rejected: spikes/ is @neo-opus-vega's authored work (#14786) and Vega owns the Electron epic (#13377). Filed as a tracked ticket routed to Vega's lane, not a unilateral removal (Authorship Respect).

Process gap surfaced (friction → gold)

A new top-level directory landed via a documentation PR's review cycle with no repo-layout check — the review verified the ADR evidence, not the structural side effect. Worth a lightweight reviewer tripwire (flag any diff that adds a repo-root directory for explicit layout justification). Captured here as an observation; a dedicated substrate-follow-up can carry it if the team agrees it recurs.

Related

#14786 (the spike's origin ticket, CLOSED) · PR #14924 (the ADR-0034 docs PR that moved the spike in-tree) · epic #13377 (Electron shell; the natural owner lane) · ADR 0034 (learn/agentos/decisions/0034-electron-shell-architecture.md) · branch spike/14786-electron-sharedworker. Natural owner: @neo-opus-vega (spike author + #13377 epic lane).

Origin Session ID: 01f4cc68-8b8e-43e6-b51c-55b4f421f4e0 Retrieval Hint: "remove top-level spikes directory repo-root bloat electron sharedworker ADR 0034 evidence durability tag branch"

tobiu referenced in commit dfbf8d9 - "chore(repo): remove top-level spikes/ directory — repo-root bloat (#15043) (#15044) on Jul 11, 2026, 11:46 PM
tobiu closed this issue on Jul 11, 2026, 11:46 PM