Context
neomjs/neo#19096 graduated option E′ into neomjs/neo-agent-brain#471: concepts are tenant-scoped plane data, and neomjs is one instance of that mechanism. This ticket was the provisional shell for the engine's half. Under E′ the engine copies are imported, which is a no-op while they are equal, and then deleted, never moved. Roadmap cornerstone 3 (#17416) ends with the engine no longer carrying the resources/content mirror, and this is that family's leaf.
The Problem
The engine still carries both halves of neomjs' concepts:
- The explanations: 59 files in
resources/content/concepts/, under a root that ADR 0004 §1.3 defines as a regeneratable cache and that #19159 deletes.
- The graph copy:
nodes.jsonl (65 rows) and edges.jsonl (182) at .neo-ai-data/concepts/. It is a strict, field-identical subset of the plane store, per @neo-opus-ada's row-by-row check (neomjs/neo#19096 fact 9), and the npm package ships it.
The Architectural Reality
- The copies are equal today. 59 docs against 65 nodes: 0 missing, 0 mismatches (@neo-gpt, DC 18565631). The engine JSONL holds 65 of 65 nodes and 182 of 182 edges, field-identical to the plane store.
- Package surface (@neo-opus-grace's
STEP_BACK, point 2):
.gitignore:108 and .npmignore:140 negate .neo-ai-data/concepts/.
buildScripts/util/check-package-contents.mjs:65 allows it.
test/playwright/unit/buildScripts/checkPackageContents.spec.mjs (L67–68, L154–155) and gitignoreNegationReachability.spec.mjs pin it.
buildScripts/util/check-chore-sync.mjs:102 names the concepts root.
- No engine code reads either copy. The content-root guard baseline (#19167) has no concept rows. The Brain's interim route over the engine pin retires in neomjs/neo-agent-brain#474.
The Fix
Equality receipt, taken at execution time. Compare each Markdown file's frontmatter name and trimmed body with the node description in the newest plane bundle.
- If they are equal, the import is a no-op.
- Any difference is a source-authority conflict. Report it; never let a frozen engine file overwrite a newer plane description.
Delete, never move:
resources/content/concepts/ (59 files);
.neo-ai-data/concepts/ (2 files).
The PR re-runs the id-by-id comparison against the newest bundle and prints the counts as its receipt.
Package surface. Remove both negations, the allow entry and the spec cases that pin them, and update the check-chore-sync.mjs:102 comment.
Decision Record impact: aligned-with ADR 0004 §1.3; depends-on the ADR 0023 / 0024 amendment (neomjs/neo-agent-brain#472).
Decision Record: Required: neomjs/neo-agent-brain#472.
Acceptance Criteria
Discussion Criteria Mapping
G4 → AC-1 to AC-4. The Epic neomjs/neo-agent-brain#471 carries the graduation's Signal Ledger, Unresolved Dissent, Unresolved Liveness and full mapping.
Out of Scope
- The other
resources/content families (the other blockers of #19159, such as #19157).
- The Brain-side route (neomjs/neo-agent-brain#474).
- The legacy concept vectors (neomjs/neo-agent-brain#419).
unowned-rationale: blocked by neomjs/neo-agent-brain#474 and #472. Whoever unblocks it claims it.
Related
neomjs/neo-agent-brain#471 (the graduated Epic) · #17416 (parent) · #19159 (blocked) · neomjs/neo#19096 · neomjs/neo-agent-brain#472 · neomjs/neo-agent-brain#474 · #11373 · ADR 0004 §1.3
Update 2026-09-24 20:40Z: promoted at graduation. It was a provisional shell, [PROVISIONAL_UNGRADUATED: D#19096], with a destination still to be decided. It is now the deletion leaf of option E′. The divergence table moved to the source Discussion, and A–D were rejected there.
Origin Session ID: db85836e-f7c2-4da0-a614-fa0e93e8e727 (filed) · 9f7b8241-8b3c-4954-a9e5-2f9c1e41d669 (promoted)
Retrieval Hint: query_raw_memories("concept files resources/content/concepts delete engine JSONL copy equality receipt package surface D#19096")
Authored by Vega (Opus 5.5, Claude Code) 🌿
Context
neomjs/neo#19096 graduated option E′ into neomjs/neo-agent-brain#471: concepts are tenant-scoped plane data, and neomjs is one instance of that mechanism. This ticket was the provisional shell for the engine's half. Under E′ the engine copies are imported, which is a no-op while they are equal, and then deleted, never moved. Roadmap cornerstone 3 (#17416) ends with the engine no longer carrying the
resources/contentmirror, and this is that family's leaf.The Problem
The engine still carries both halves of neomjs' concepts:
resources/content/concepts/, under a root that ADR 0004 §1.3 defines as a regeneratable cache and that #19159 deletes.nodes.jsonl(65 rows) andedges.jsonl(182) at.neo-ai-data/concepts/. It is a strict, field-identical subset of the plane store, per @neo-opus-ada's row-by-row check (neomjs/neo#19096 fact 9), and the npm package ships it.The Architectural Reality
STEP_BACK, point 2):.gitignore:108and.npmignore:140negate.neo-ai-data/concepts/.buildScripts/util/check-package-contents.mjs:65allows it.test/playwright/unit/buildScripts/checkPackageContents.spec.mjs(L67–68, L154–155) andgitignoreNegationReachability.spec.mjspin it.buildScripts/util/check-chore-sync.mjs:102names the concepts root.The Fix
Equality receipt, taken at execution time. Compare each Markdown file's frontmatter
nameand trimmed body with the node description in the newest plane bundle.Delete, never move:
resources/content/concepts/(59 files);.neo-ai-data/concepts/(2 files).The PR re-runs the id-by-id comparison against the newest bundle and prints the counts as its receipt.
Package surface. Remove both negations, the allow entry and the spec cases that pin them, and update the
check-chore-sync.mjs:102comment.Decision Record impact: aligned-with ADR 0004 §1.3; depends-on the ADR 0023 / 0024 amendment (neomjs/neo-agent-brain#472). Decision Record: Required: neomjs/neo-agent-brain#472.
Acceptance Criteria
resources/content/concepts/and.neo-ai-data/concepts/are deleted. The PR prints the id-by-id comparison against the newest bundle: 65 of 65 nodes and 182 of 182 edges, or the conflicts..neo-ai-data/concepts/:check-package-contentsallow entry is removed, along with the spec cases pinning it;check-package-contentspasses.Discussion Criteria Mapping
G4 → AC-1 to AC-4. The Epic neomjs/neo-agent-brain#471 carries the graduation's Signal Ledger, Unresolved Dissent, Unresolved Liveness and full mapping.
Out of Scope
resources/contentfamilies (the other blockers of #19159, such as #19157).unowned-rationale: blocked by neomjs/neo-agent-brain#474 and #472. Whoever unblocks it claims it.
Related
neomjs/neo-agent-brain#471 (the graduated Epic) · #17416 (parent) · #19159 (blocked) · neomjs/neo#19096 · neomjs/neo-agent-brain#472 · neomjs/neo-agent-brain#474 · #11373 · ADR 0004 §1.3
Origin Session ID: db85836e-f7c2-4da0-a614-fa0e93e8e727 (filed) · 9f7b8241-8b3c-4954-a9e5-2f9c1e41d669 (promoted) Retrieval Hint:
query_raw_memories("concept files resources/content/concepts delete engine JSONL copy equality receipt package surface D#19096")Authored by Vega (Opus 5.5, Claude Code) 🌿