Parent Epic
#11831 — Sub 10 of Epic (folder-structure cleanup; cross-daemon services bucket).
Scope
Move cross-daemon services (no single daemon owns them) into thematic ai/services/{graph,ingestion}/ folders. These services serve multiple consumers (orchestrator + sub-daemons + scripts).
Source moves
ai/daemons/services/ → ai/services/graph/:
GapInferenceEngine.mjs
GoldenPathSynthesizer.mjs
GraphMaintenanceService.mjs
LazyEdgeDrainer.mjs
SemanticGraphExtractor.mjs
TopologyInferenceEngine.mjs
ai/daemons/services/ → ai/services/ingestion/:
ConceptDiscoveryService.mjs
ConceptIngestor.mjs
IssueIngestor.mjs
MemorySessionIngestor.mjs
After this Sub: ai/daemons/services/ is EMPTY and can be removed (Orchestrator's private services already moved to ai/daemons/orchestrator/services/ in Sub 8; sub-daemon services moved to per-daemon folders in Sub 9). Verify no stale services remain before removing the folder.
Test moves (mirror source)
test/playwright/unit/ai/daemons/services/ → test/playwright/unit/ai/services/graph/:
GoldenPathSynthesizer.spec.mjs
LazyEdgeDrainer.spec.mjs
SemanticGraphExtractor.spec.mjs
test/playwright/unit/ai/daemons/services/ → test/playwright/unit/ai/services/ingestion/:
ConceptDiscoveryService.spec.mjs
ConceptIngestor.spec.mjs
IssueIngestor.spec.mjs
MemorySessionIngestor.spec.mjs
(GapInferenceEngine, GraphMaintenanceService, TopologyInferenceEngine specs don't currently exist.)
package.json
(none affected — cross-daemon services have no direct npm entry-script targets)
.github/workflows
(none affected)
Integration tests
Audit + update any integration tests referencing ai/daemons/services/{Concept,Issue,Memory,Gap,GoldenPath,Graph,Lazy,Semantic,Topology}* → ai/services/{graph,ingestion}/*.
Acceptance Criteria
- 10 source moves completed.
- ~7 test moves completed.
- Cross-codebase imports updated.
ai/daemons/services/ removed (empty after Sub 8 + Sub 9 + Sub 10).
- All affected unit + integration specs pass.
Depends on
Sub 8 #11844 + Sub 9 (must merge first — they free ai/daemons/services/ of orchestrator-private + sub-daemon-specific files).
Authored by: [Claude Opus 4.7] (Claude Code)
Parent Epic
#11831 — Sub 10 of Epic (folder-structure cleanup; cross-daemon services bucket).
Scope
Move cross-daemon services (no single daemon owns them) into thematic
ai/services/{graph,ingestion}/folders. These services serve multiple consumers (orchestrator + sub-daemons + scripts).Source moves
ai/daemons/services/→ai/services/graph/:GapInferenceEngine.mjsGoldenPathSynthesizer.mjsGraphMaintenanceService.mjsLazyEdgeDrainer.mjsSemanticGraphExtractor.mjsTopologyInferenceEngine.mjsai/daemons/services/→ai/services/ingestion/:ConceptDiscoveryService.mjsConceptIngestor.mjsIssueIngestor.mjsMemorySessionIngestor.mjsAfter this Sub:
ai/daemons/services/is EMPTY and can be removed (Orchestrator's private services already moved toai/daemons/orchestrator/services/in Sub 8; sub-daemon services moved to per-daemon folders in Sub 9). Verify no stale services remain before removing the folder.Test moves (mirror source)
test/playwright/unit/ai/daemons/services/→test/playwright/unit/ai/services/graph/:GoldenPathSynthesizer.spec.mjsLazyEdgeDrainer.spec.mjsSemanticGraphExtractor.spec.mjstest/playwright/unit/ai/daemons/services/→test/playwright/unit/ai/services/ingestion/:ConceptDiscoveryService.spec.mjsConceptIngestor.spec.mjsIssueIngestor.spec.mjsMemorySessionIngestor.spec.mjs(GapInferenceEngine, GraphMaintenanceService, TopologyInferenceEngine specs don't currently exist.)
package.json
(none affected — cross-daemon services have no direct npm entry-script targets)
.github/workflows
(none affected)
Integration tests
Audit + update any integration tests referencing
ai/daemons/services/{Concept,Issue,Memory,Gap,GoldenPath,Graph,Lazy,Semantic,Topology}*→ai/services/{graph,ingestion}/*.Acceptance Criteria
ai/daemons/services/removed (empty after Sub 8 + Sub 9 + Sub 10).Depends on
Sub 8 #11844 + Sub 9 (must merge first — they free
ai/daemons/services/of orchestrator-private + sub-daemon-specific files).Authored by: [Claude Opus 4.7] (Claude Code)