Files
SubMiner/backlog/completed/task-10 - Consolidate-service-naming-conventions-and-barrel-exports.md
2026-02-17 22:54:09 -08:00

2.2 KiB

id, title, status, assignee, created_date, updated_date, labels, milestone, dependencies, references, priority
id title status assignee created_date updated_date labels milestone dependencies references priority
TASK-10 Consolidate service naming conventions and barrel exports Done
2026-02-11 08:21 2026-02-15 07:00
refactor
services
naming
Codebase Clarity & Composability
src/core/services/index.ts
low

Description

The service layer has inconsistent naming:

  • Some functions end in Service: handleCliCommandService, loadSubtitlePositionService
  • Some end in RuntimeService: replayCurrentSubtitleRuntimeService, sendMpvCommandRuntimeService
  • Some are plain: shortcutMatchesInputForLocalFallback
  • Factory functions mix create*DepsRuntimeService with create*Service

The barrel export (src/core/services/index.ts) re-exports 79 symbols from 28 files through a single surface, which obscures dependency boundaries. Consumers import everything from ./core/services and can't tell which service file they actually depend on.

Establish consistent naming:

  • Exported service functions: verbNounService (e.g., handleCliCommand)
  • Deps factory functions: create*Deps
  • Consider whether the barrel re-export is still the right pattern vs direct imports from individual files.

Acceptance Criteria

  • #1 All service functions follow a consistent naming convention
  • #2 Decision documented on barrel export vs direct imports
  • #3 No functional changes

Implementation Notes

Naming convention consolidation should be addressed as part of TASK-27.2 (split main.ts) and TASK-27.3 (anki-integration split). As modules are extracted and given clear boundaries, naming will be standardized at each boundary. No need to do a standalone naming pass — it's wasted effort if the module structure is about to change.

Final Summary

Subsumed by TASK-27.2 and TASK-27.3. Naming conventions were standardized at module boundaries during extraction. A standalone global naming pass would be churn with no structural benefit now that modules have clear ownership boundaries.