Context
The operator decided on 2026-09-23 to delete the engine's resources/content fully, and asked again on 2026-09-29 for it to be done now. The tree holds 17,930 tracked files (193 MB), last written by the retired data-sync pipeline on 2026-08-26. Its conversations and release notes now publish from neomjs/github-content-sync (neo/{archive,discussions,issues,pulls,release-notes}).
State of the original blockers on 2026-09-29:
- #19158 (reader census + content-root guard): closed; the guard is live (#19167).
- neomjs/pages#10 (pages reads conversations from a pinned corpus commit): merged.
- #19157 (release notes need an authored path): the path is decided there (
.github/RELEASE_NOTES/, flat, git mv); the corpus facet it waited on landed (neomjs/neo-agent-brain#491, #494). The move is executed in this ticket's PR.
- #19093 (concepts): the 59 files under
resources/content/concepts/ are unchanged since 2026-05-15, before that ticket's equality receipt, so deleting them loses nothing the plane store lacks. .neo-ai-data/concepts/ and the package surface stay with #19093.
The Problem
Deleting the tree without moving its one authored family and its writers breaks the next release:
publish.mjs refuses a release without resources/content/release-notes/v<version>.md, and 13.2's note is staged there.
- The Brain's post-release sync re-materializes the tree into the engine checkout and pushes it to
dev.
- Pages step 4.1 copies the notes from
resources/content/release-notes at the engine's release tag.
The Fix
One engine PR:
git mv the 169 notes (chunked archive plus the 13.2 staging note) to .github/RELEASE_NOTES/, flat. The authored file is the archive; publish.mjs reads it there and no longer deletes it after the release.
git rm the rest of resources/content.
- Remove the retired writers and the guards whose whole subject was the tree: the data-sync pipeline and watchdog,
check-chore-sync, the logical-identity lint job, and the path rules in check-package-contents and classify-test-scope. .gitignore ignores resources/content/, so a regenerated tree cannot be committed.
Companion tickets, their PRs merged with this one:
- Brain neomjs/neo-agent-brain#623: the post-release lifecycle keeps the Knowledge Base upload and stops syncing, archiving and committing into the engine checkout.
- Pages neomjs/pages#11: step 4.1 reads the notes from
.github/RELEASE_NOTES at revisions that carry it.
- Skills neomjs/neo-agent-skills#124: the release-notes workflow names the new authoring path.
Acceptance Criteria
Out of Scope
- The local portal's content root (#19166). The deployed site is unaffected, because pages populates the served
resources/content base itself.
.neo-ai-data/concepts/ and the package surface (#19093, gated on neomjs/neo-agent-brain#474).
- A history rewrite.
Related
#17416 (parent) · #19157 · #19093 · #19166 · neomjs/pages#10 · D#19051
Origin Session ID: 9f7b8241-8b3c-4954-a9e5-2f9c1e41d669
Authored by Vega (Claude Opus 5.5, Claude Code) 🌿
Context
The operator decided on 2026-09-23 to delete the engine's
resources/contentfully, and asked again on 2026-09-29 for it to be done now. The tree holds 17,930 tracked files (193 MB), last written by the retired data-sync pipeline on 2026-08-26. Its conversations and release notes now publish fromneomjs/github-content-sync(neo/{archive,discussions,issues,pulls,release-notes}).State of the original blockers on 2026-09-29:
.github/RELEASE_NOTES/, flat,git mv); the corpus facet it waited on landed (neomjs/neo-agent-brain#491, #494). The move is executed in this ticket's PR.resources/content/concepts/are unchanged since 2026-05-15, before that ticket's equality receipt, so deleting them loses nothing the plane store lacks..neo-ai-data/concepts/and the package surface stay with #19093.The Problem
Deleting the tree without moving its one authored family and its writers breaks the next release:
publish.mjsrefuses a release withoutresources/content/release-notes/v<version>.md, and 13.2's note is staged there.dev.resources/content/release-notesat the engine's release tag.The Fix
One engine PR:
git mvthe 169 notes (chunked archive plus the 13.2 staging note) to.github/RELEASE_NOTES/, flat. The authored file is the archive;publish.mjsreads it there and no longer deletes it after the release.git rmthe rest ofresources/content.check-chore-sync, the logical-identity lint job, and the path rules incheck-package-contentsandclassify-test-scope..gitignoreignoresresources/content/, so a regenerated tree cannot be committed.Companion tickets, their PRs merged with this one:
.github/RELEASE_NOTESat revisions that carry it.Acceptance Criteria
git ls-files resources/contentis empty, andgit log --followon a moved note reaches its authoring commit.publish.mjsrequires the staged 13.2 note at its new path, and the release index builds 169 releases from the moved notes. Pages step 4.1 is neomjs/pages#11.Out of Scope
resources/contentbase itself..neo-ai-data/concepts/and the package surface (#19093, gated on neomjs/neo-agent-brain#474).Related
#17416 (parent) · #19157 · #19093 · #19166 · neomjs/pages#10 · D#19051
Origin Session ID: 9f7b8241-8b3c-4954-a9e5-2f9c1e41d669
Authored by Vega (Claude Opus 5.5, Claude Code) 🌿