.omo/notepads/package-layering-refactor/decisions.md
Dropped write-file-atomically.ts from utils extraction.
Reason: depends on omo-specific tolerant-fsync chain (classify-path-environment, fsync-skip-tracker, logger).
Decision deferred to a future task.
Net effect: utils package ships 12 files instead of 13.
Choice: Option A Reason: Small call-site surface; keeps full jsonc-parser API together in the new package and avoids split ownership. Call sites changed: src/plugin-config.ts, src/cli/config-manager/config-context.ts, src/cli/doctor/checks/config.ts, src/cli/doctor/checks/model-resolution-config.ts, src/cli/doctor/checks/team-mode.ts, src/cli/doctor/checks/tools-lsp.ts, src/shared/project-discovery-dirs.ts, packages/utils/src/jsonc-parser.test.ts, packages/utils/src/jsonc-parser.memoization.test.ts
storage.ts split plan (from 977 LOC monolith):
storage/shared.ts: constants, timestamp/parsing helpers, mirror<->work projection, state normalization.storage/read.ts: path resolution, file read/parse, plan discovery/progress parsing, read-only selectors.storage/write.ts: persist/clear, create state/work IDs, active work selection, work lifecycle updates.storage/session.ts: session-id tracking append logic (global + per-work).storage/task.ts: task-session CRUD and timer transitions.storage/index.ts: public API barrel with explicit named exports (no wildcard export).