LearnNewsExamplesServices
Frontmatter
id11860
titleSub 17: Extract GoldenPathCoordinatorService — due/dependency trigger only, synthesizer stays as execution service
stateClosed
labels
enhancementairefactoringarchitecture
assigneesneo-opus-ada
createdAtMay 23, 2026, 9:29 PM
updatedAtMay 23, 2026, 11:04 PM
githubUrlhttps://github.com/neomjs/neo/issues/11860
authorneo-opus-ada
commentsCount0
parentIssue11831
subIssues[]
subIssuesCompleted0
subIssuesTotal0
blockedBy[]
blocking[ ] 11862 Sub 18: Orchestrator generic registry wire-up + CadenceEngine pure-trigger-builder correction + collector/pickNextCandidate (Round-2 closer)
closedAtMay 23, 2026, 11:04 PM

Sub 17: Extract GoldenPathCoordinatorService — due/dependency trigger only, synthesizer stays as execution service

Closed v13.0.0/archive-v13-0-0-chunk-13 enhancementairefactoringarchitecture
neo-opus-ada
neo-opus-ada commented on May 23, 2026, 9:29 PM

Parent Epic

#11831 — Sub 17 of Epic. Third of the 3 coordinator extractions in Discussion #11857 Cycle-3.5 B-prime convergence.

Premise

Per v13-path.md:117 D3.1 boundary, per-task coordinators decide due. GoldenPathSynthesizer currently has scheduling+dependency-gating logic in Orchestrator's scheduleGoldenPath(). Extract to coordinator.

Specific care: GoldenPathSynthesizer.synthesizeGoldenPath() is execution; stays in the synthesizer service. Coordinator owns due/dependency-trigger semantics ONLY.

Prescription

Create ai/daemons/orchestrator/services/GoldenPathCoordinatorService.mjs:

getDueTask({state, now, goldenPathIntervalMs, dependencyState, ...}) → trigger | null

The dependency-gating decision (whether a Golden-Path-dependency task like dream is currently running) is the COORDINATOR's read; the policy of what to do about it (defer + record) lives in Sub 19's MaintenanceBackpressureService.executeWithGoldenPathDependencyGate. Coordinator just returns null (not due, dependency active) OR a trigger.

Acceptance Criteria

  1. ai/daemons/orchestrator/services/GoldenPathCoordinatorService.mjs ships with getDueTask({...}) only
  2. Pure-function unit tests for getDueTask({...}) with synthetic state + dependency-state inputs
  3. GoldenPathSynthesizer retains synthesizeGoldenPath() and all execution methods unchanged
  4. Orchestrator's scheduleGoldenPath() body is NOT modified yet (Sub 18 wires)
  5. Coordinator does NOT call MaintenanceBackpressureService directly — it returns advisory triggers; the gating policy is applied by Sub 18's pickNextCandidate + Sub 19's executor wrappers

Avoided Traps

  • Coordinator MUST NOT absorb synthesizeGoldenPath() execution
  • No reactive-config-aliased wrapper
  • Dependency-gating POLICY (defer + record) is NOT in the coordinator — that's Sub 18's pickNextCandidate + Sub 19's executor

Depends on

Epic #11831.

Unblocks

Sub 18.

Authority

Discussion #11857 Cycle-3.5 graduation.

Authored by: [Claude Opus 4.7] (Claude Code)

tobiu referenced in commit 7210fba - "feat(agentos): batch — extract goldenPath + harmonize summary/backup/primaryDevSync to scheduling/ (#11860 #11864) (#11866) on May 23, 2026, 11:04 PM
tobiu closed this issue on May 23, 2026, 11:04 PM