Context
#11730 tracks post-MVP deployment residuals from Discussion #11718. One residual is #11731: server-side repo-clone / pull-based tenant KB ingestion, gated until the MVP push-based model (#11726) proves insufficient.
ADR 0014 shipped via PR #11738 for D0 / #11721. It correctly classifies the current kbSync scheduler lane as local-only for the MVP cloud profile because that lane means the Neo maintainer checkout sync / local ai:sync-kb cascade path.
A future #11731 implementation may introduce a different cloud-deployable pull-ingestion path: the deployment pulls tenant repos using an explicit credential/token/env-var contract. If that happens, future agents need an authorized way to amend or distinguish ADR 0014 instead of getting stuck in the paradox: ADR says kbSync is local-only, but the post-MVP feature work is trying to prove a cloud pull-sync path.
The Problem
Without a tracked ADR-amendment escape hatch, #11731 can become logically blocked by the current ADR even when new evidence proves the premise has changed.
The current ADR authority is precise but MVP-scoped:
learn/agentos/decisions/0014-cloud-deployment-topology-and-scheduler-task-taxonomy.md:39 classifies kbSync as local-only because the current lane scans the Neo repo checkout and cascades after a dev pull.
learn/agentos/decisions/0014-cloud-deployment-topology-and-scheduler-task-taxonomy.md:73 says the standalone kbSync lane needs a deployment-mode disable toggle.
learn/agentos/decisions/0014-cloud-deployment-topology-and-scheduler-task-taxonomy.md:120-121 rejects feeding cloud tenant content by re-pointing the local kbSync lane at tenant content.
learn/agentos/decisions/0014-cloud-deployment-topology-and-scheduler-task-taxonomy.md:134 leaves server-side repo cloning as D3 / out of scope.
learn/agentos/decisions/0014-cloud-deployment-topology-and-scheduler-task-taxonomy.md:149-150 defines re-review triggers for lane classification changes.
That is correct for the current lane. It must not become permanent authority against a later, explicitly designed pull-ingestion lane with a credential boundary.
The Architectural Reality
There are two distinct concepts that future work must not conflate:
- Maintainer-checkout
kbSync — the existing local-only lane that scans Neo's own checkout and is part of local maintainer machinery.
- Tenant pull-ingestion — a possible post-MVP cloud ingestion mode from #11731, where the deployment pulls tenant repo content under an explicit credential, repo identity, refresh-cadence, and secret-handling contract.
ADR 0014 currently names the first concept. #11731 may decide whether the second concept exists, whether it is a new lane, a renamed/split kbSync class, or a distinct ingestion service path.
The Fix
When #11731 reaches a concrete decision, update the decision substrate so agents are not forced to choose between stale ADR obedience and implementing a valid post-MVP capability.
The implementation may be one of:
- amend ADR 0014 to distinguish maintainer-checkout
kbSync from tenant pull-ingestion;
- add a follow-up ADR that supersedes the relevant
kbSync taxonomy row for the pull-ingestion case;
- explicitly close this ticket if #11731 rejects server-side pull ingestion or proves it remains outside the scheduler taxonomy.
Contract Ledger
| Target Surface |
Source of Authority |
Proposed Behavior |
Fallback / Edge Case |
Docs |
Evidence |
| ADR 0014 scheduler taxonomy |
ADR 0014; #11721; #11738; #11731 decision output |
Preserve ADR 0014 for the MVP local-only kbSync lane, but amend/supersede it if a distinct cloud pull-ingestion path is adopted. |
If #11731 rejects pull ingestion, close this as not-needed with a comment citing the decision. |
Yes — ADR amendment or follow-up ADR. |
L1 decision-record evidence; L2/L3 only if runtime scheduler/config code changes. |
| Pull-ingestion naming boundary |
#11731; #11726 tenant ingestion model; parsed-chunk-v1 / tenant identity docs |
Decide whether tenant pull-ingestion is a new lane/service, a split of kbSync, or an ingestion facade outside Orchestrator taxonomy. |
If the path is outside Orchestrator, ADR text must state why no scheduler-taxonomy change is needed. |
Yes — ADR / cloud deployment docs. |
Decision cites implementation PR or explicit rejection. |
| Credential / secret boundary |
#11731 credentialed-Git-URL contract |
No ADR amendment may bless pull-ingestion unless credential/token/env-var handling is specified without persisting secrets in repoSlug, logs, manifests, tutorials, or graph-visible config. |
If secure credential handling is unresolved, this ticket stays blocked. |
Yes — ADR plus #11731 docs. |
Security-oriented checklist in #11731 PR. |
Gating Condition
Do not start this ticket independently. It starts only after #11731 produces evidence that one of these is true:
- pull-based tenant KB ingestion is adopted for post-MVP cloud deployment; or
- #11731 explicitly needs ADR 0014 clarified before its implementation can proceed.
Until then, this issue is a dormant escape hatch under #11730.
Acceptance Criteria
Out of Scope
- Implementing server-side repo clone / pull ingestion itself — owned by #11731.
- Changing the #11720 MVP cloud profile.
- Reopening ADR 0014 for unrelated scheduler lanes.
- Treating #11730 as an active ADR workstream before #11731's gate fires.
Avoided Traps
| Trap |
Why rejected |
| Letting ADR 0014 permanently block #11731 |
ADRs are authority over current decisions, not a mechanism to make future evidence impossible. This ticket provides a sanctioned amendment path. |
| Starting ADR work before #11731 fires |
Would violate #11730's post-MVP gating and create substrate churn without evidence. |
Re-pointing the existing local kbSync lane at tenant repos |
ADR 0014 explicitly rejects this anti-pattern. If pull ingestion ships, it needs a deliberate lane/service boundary. |
| Hiding the issue in a comment only |
Future agents can miss comments. A native child issue keeps the escape hatch visible in the #11730 subgraph. |
Related
- Parent epic: #11730
- Blocking / gating input: #11731
- Current ADR authority: #11721 / PR #11738 / ADR 0014
- MVP push-ingestion baseline: #11726 / PR #11737
- Watchpoint comment: #11730 comment
IC_kwDODSospM8AAAABDP4zhA
Origin Session ID
4435cdc7-4380-4643-9721-ecef2c705a11
Handoff Retrieval Hints
query_raw_memories(query="pull sync KB ADR 0014 local-only kbSync #11730 #11731")
query_raw_memories(query="ADR 0014 pull-based tenant ingestion paradox")
Context
#11730 tracks post-MVP deployment residuals from Discussion #11718. One residual is #11731: server-side repo-clone / pull-based tenant KB ingestion, gated until the MVP push-based model (#11726) proves insufficient.
ADR 0014 shipped via PR #11738 for D0 / #11721. It correctly classifies the current
kbSyncscheduler lane as local-only for the MVP cloud profile because that lane means the Neo maintainer checkout sync / localai:sync-kbcascade path.A future #11731 implementation may introduce a different cloud-deployable pull-ingestion path: the deployment pulls tenant repos using an explicit credential/token/env-var contract. If that happens, future agents need an authorized way to amend or distinguish ADR 0014 instead of getting stuck in the paradox: ADR says
kbSyncis local-only, but the post-MVP feature work is trying to prove a cloud pull-sync path.The Problem
Without a tracked ADR-amendment escape hatch, #11731 can become logically blocked by the current ADR even when new evidence proves the premise has changed.
The current ADR authority is precise but MVP-scoped:
learn/agentos/decisions/0014-cloud-deployment-topology-and-scheduler-task-taxonomy.md:39classifieskbSyncas local-only because the current lane scans the Neo repo checkout and cascades after adevpull.learn/agentos/decisions/0014-cloud-deployment-topology-and-scheduler-task-taxonomy.md:73says the standalonekbSynclane needs a deployment-mode disable toggle.learn/agentos/decisions/0014-cloud-deployment-topology-and-scheduler-task-taxonomy.md:120-121rejects feeding cloud tenant content by re-pointing the localkbSynclane at tenant content.learn/agentos/decisions/0014-cloud-deployment-topology-and-scheduler-task-taxonomy.md:134leaves server-side repo cloning as D3 / out of scope.learn/agentos/decisions/0014-cloud-deployment-topology-and-scheduler-task-taxonomy.md:149-150defines re-review triggers for lane classification changes.That is correct for the current lane. It must not become permanent authority against a later, explicitly designed pull-ingestion lane with a credential boundary.
The Architectural Reality
There are two distinct concepts that future work must not conflate:
kbSync— the existing local-only lane that scans Neo's own checkout and is part of local maintainer machinery.ADR 0014 currently names the first concept. #11731 may decide whether the second concept exists, whether it is a new lane, a renamed/split
kbSyncclass, or a distinct ingestion service path.The Fix
When #11731 reaches a concrete decision, update the decision substrate so agents are not forced to choose between stale ADR obedience and implementing a valid post-MVP capability.
The implementation may be one of:
kbSyncfrom tenant pull-ingestion;kbSynctaxonomy row for the pull-ingestion case;Contract Ledger
kbSynclane, but amend/supersede it if a distinct cloud pull-ingestion path is adopted.kbSync, or an ingestion facade outsideOrchestratortaxonomy.Orchestrator, ADR text must state why no scheduler-taxonomy change is needed.repoSlug, logs, manifests, tutorials, or graph-visible config.Gating Condition
Do not start this ticket independently. It starts only after #11731 produces evidence that one of these is true:
Until then, this issue is a dormant escape hatch under #11730.
Acceptance Criteria
kbSync.kbSyncfrom tenant pull-ingestion, or states why no distinction is needed.Out of Scope
Avoided Traps
kbSynclane at tenant reposRelated
IC_kwDODSospM8AAAABDP4zhAOrigin Session ID
4435cdc7-4380-4643-9721-ecef2c705a11Handoff Retrieval Hints
query_raw_memories(query="pull sync KB ADR 0014 local-only kbSync #11730 #11731")query_raw_memories(query="ADR 0014 pull-based tenant ingestion paradox")