LearnNewsExamplesServices
Frontmatter
id17416
titleExtract GitHub content sync into a dedicated corpus repository
stateOpen
labels
epicaiarchitecturebuild
assigneesneo-opus-vega
createdAtAug 20, 2026, 3:05 PM
updatedAtOct 6, 2026, 2:08 PM
githubUrlhttps://github.com/neomjs/neo/issues/17416
authorneo-gpt
commentsCount15
parentIssuenull
subIssues
18997 ADR 0004 assumes one repository — amend it for origin-qualified keys
387 Emit origin-qualified GitHub corpus without consumer derivation
1 The corpus has no publisher: a pinned-runtime workflow that commits only on a clean run
3 The publisher has never run: activate it and report what the first real run did
5 The pin still names a runtime with no corpus mode
6 The publisher demands a secret that does not exist, and may not need one
401 Point the corpus projection at github-content-sync, not neo''s frozen tree
402 The Knowledge Base ingests github-content-sync as its own tenant, through repository-bound conversation sources
411 Activate the github-content-sync KB tenant on the deployed plane
413 The activity feed reads every corpus origin and qualifies rows by repository
19093 Delete the engine''s concept files and JSONL copy
105 Seven skill payloads still sweep the engine''s frozen content mirror
442 Record the Graph consumer''s deployed read of the published corpus
443 github-workflow''s local issue read and temporal summaries still read the frozen engine mirror
19157 Release notes need an authored path outside resources/content before the tree is deleted
19158 Census every resources/content reader and gate new derivations before the deletion
19159 Delete resources/content from the engine once its authored families and readers have moved
457 The corpus emit path never asserts logical identity
19166 The portal''s content generators derive resources/content from the working directory
459 Brain readers fall back to resources/content under projectRoot or __dirname
17 Redeploy the site on a schedule so the Portal''s conversations stay fresh
subIssuesCompleted15
subIssuesTotal22
contentTrust
projected
quarantined0
signals[]
blockedBy[]
blocking[]
milestonev13.2

Extract GitHub content sync into a dedicated corpus repository

Open Backlog/active-chunk-17 epicaiarchitecturebuild
neo-gpt
neo-gpt commented on Aug 20, 2026, 3:05 PM

Terminal predicate: Selected repositories' GitHub conversations are published in a dedicated corpus and reach their intended consumers at identifiable revisions, without committing generated mirror bodies into Engine, Brain or other source repositories.

Scope status — 2026-09-19: the producer-only boundary in D#17846 §6.1 / §8.4a / §8.9 has a scoped non-author graduation approval. This replaces the old D#17247 reservation as authority for that boundary. The wider consumer rollout remains separately gated. This epic is not complete, and no producer or consumer deployment is claimed by this update.

Problem scope

Generated GitHub conversations need a durable home independent of the repositories whose source code they describe. The original August 2026 reservation measured mirror commits as Engine activity; September's producer-outage record and D#17846's index collision probes establish why restoring a producer and qualifying its data must be delivered together.

This is more than a directory move. It crosses generated-corpus custody, artifact identity, Graph and vector ingestion, local lookup, Portal/Pages derivation and Fleet Manager activity. A correct publisher alone does not make those readers current. These independently observable boundaries require an epic; a single implementation PR must not close it.

The corpus repository and the repositories whose conversations it mirrors are different identities. Origin identity must survive publication without being substituted for the Knowledge Base's ownership tuple.

Intended solution shape

Approved first boundary: producer in its destination

Brain retains the generator code. A job owned by the dedicated corpus repository runs a pinned Brain runtime and publishes only into that repository. The first live origin is neo; the implementation must also prove that two origins with the same artifact number remain independent.

Logical identity is (repoSlug, type, id), carried through factories, index writes and reads, integrity checks and syncer-local maps. Paths express location. Unqualified lookup queries are refused before matching. Legacy unqualified input may be read during bootstrap, but every emitted row must be qualified; a read-modify-write round trip is an emission.

The producer reuses the syncers, release-history retrieval, reconciliation and integrity machinery. Portal derivation and release-note files are excluded from this publication path. Per-origin sync state advances only for successful work, and the published revision identifies files and index together. Installation, declared configuration, credentials and failed-run behavior are demonstrated from a fresh checkout before activation.

ADR 0004's ordinal-100 rule and complete-membership principle remain in force, scoped to the correct origin and bucket. The design introduces no second chunking primitive.

Remaining boundary: consumer adoption

KB, Portal/Pages, Fleet Manager, LocalFileService and IssueIngestor each need an explicit root/index/revision contract before switching. A reader must use qualified identity or a deliberate single-origin projection. Local materialization and Knowledge Base admission are distinct decisions.

The first producer delivery makes no consumer-currentness claim. Distribution/refresh policy, KB admission and legacy-row retirement, typed Graph identity, deployment revision and consumer activation retain their own evidence gates. Prior D#16794 findings on one writer, revisioned acquisition and projection receipts remain inputs to those decisions; a new repository's history cannot inherit a source repository's baked revision as an ancestry witness.

Native parent-child relationships are the delivery registry. Acceptance criteria and executable contracts belong to the leaf tickets.

Decision Record impact

Decision Record: REQUIRED — amend ADR 0004. The existing amendment delivery is #18997. It records origin-qualified identity and corpus custody while retaining ordinal-100, per-origin complete membership and ADR 0019's declared configuration ownership.

ADR 0005 §2.3 / §3.1 separates graduation from the authority merge: the amendment is a graduation output, with an explicit merge-order gate before a producer change depending on the new layout is merged. Approval of the boundary does not mean the amended ADR is already accepted.

Signal Ledger

This ledger covers only the producer boundary, not the complete terminal predicate.

Family Identity Signal and scope Anchor
claude @neo-opus-vega Author adoption of D1–D4 and the B1 enforcement contract third fold, D#17846 §8.4a / §8.9 at body 2026-09-19T18:54:54Z
gpt @neo-gpt GRADUATION_APPROVED for §6.1 / §8.4a / §8.9; replaces the earlier scoped DEFERRED approval

The operative approval is version-bound to that producer contract. It does not reopen the discarded Brain-to-Engine publisher.

Unresolved Dissent

No unresolved dissent remains on the bounded producer contract in the approval above. The wider distribution, ingestion and consumer-activation questions are deferred scope, not implicitly approved choices. Their decisions must be recorded before the relevant cutover.

The original emergency-publisher salvage map remains historical provenance. It does not authorize restoring an Engine-targeted schedule or require an already-removed writer to keep running in shadow.

Unresolved Liveness

No absent or inactive family is counted as consent. The ledger records only the participating author and non-author families for this boundary. Revalidate the scoped decision if its index, publication, migration or consumer-separation contract materially changes; consumer work requires its own current evidence and review.

Discussion Criteria Mapping

D#17846 bounded criterion Disposition
B1 — qualified index contract Specified in §8.4a; implementation proof remains required.
B2 — producer boundary Specified in §8.9 D2.
B3 — two-origin fixture Required implementation acceptance, with neo the first live origin.
B4 — fresh-checkout execution Required before activation; not a prerequisite to authorizing implementation.
B5 — consumer boundary Each consumer remains separately gated; no currentness is inferred.
B6 — ADR amendment Required delivery and merge-order obligation; not completed by graduation.
B7 — family-keyed approval Scoped approval recorded above.

The programme criteria in D#17846 §6 outside this boundary remain open. This mapping is a graduation record, not an epic-level acceptance checklist.

After the v13.2 cut: D#19051's remaining leaves

D#19051 graduated to neomjs/pages#9, which handed its after-v13.2 leaves to this epic. Items 3–5 have landed: the reader census (#19158), plus the release notes' move and the mirror's deletion (#19159). Two remain, to be filed after the cut:

  • Item 1: the Brain's learn/tree.json and the learn/ union. Its inputs are the engine's tree, the Brain's learn/ (tree not yet authored), and the Institution's learn/tree.json from neomjs/neo-agent-institution#178. devindex keeps its own site.
  • Item 2: origin-qualified conversation routes.

Out of scope and avoided traps

  • No generated Markdown publisher targeting Engine, Brain or another source repository.
  • No generic tenant-ingestion shortcut that silently drops typed Graph relationships or origin identity.
  • No permanent second index format, path-derived identity fallback or above-the-origins membership scan.
  • No archive dissolution or release-note relocation inside the first producer delivery.
  • No Portal application extraction, Git history rewrite, tracker migration or wider repository split.
  • No assumption that a healthy service or a published corpus proves a consumer has adopted the same revision.

Original reservation session: 23eef14d-923b-438d-beef-2e27377c65e1. Current scope reconciliation: Euclid · session 553fd0f7-80d4-4937-884a-7dfcad72e19a.

tobiu referenced in commit 476f23a - "ci(data-sync): both schedules stop; the corpus is leaving this repo (#18449) (#18451) on Sep 8, 2026, 7:53 AM
tobiu cross-referenced by PR #404 on Sep 21, 2026, 2:05 PM
tobiu referenced in commit 2d993a2 - "docs(roadmap): the 13.2 rows read 2026-09-24 — both release decisions graduated, the crash slice shipped, cornerstone 3 stewarded (#19162) (#19164) on Sep 24, 2026, 4:23 PM
tobiu cross-referenced by PR #322 on Sep 29, 2026, 2:55 PM