5 tasks: install eslint-plugin-boundaries, configure layered dependency
rules matching design spec §1.2, add no-restricted-imports for OTel
SDK, react-i18next, SignalR SSR, localStorage. Each rule has a
fabricated-violation test asserting it fires.
10 tasks led by a timeboxed Modern.js + MF 2.0 spike that pins
versions and validates the dual-build approach before committing to
it. Covers module-federation.config.ts with 4 feature exposes, React
18 singleton, BUILD_TARGET branching in modern.config.ts, and a
typed loadRemoteModule wrapper around @module-federation/enhanced
runtime for consuming other customer remotes in Phase 2+.
- Task 3: dotfile placeholder (src/.typecheck-placeholder.ts) is ignored
by TypeScript's glob; use non-dotfile name.
- Task 4: replace legacy .eslintrc.cjs with ESLint 9 flat config.
ESLint 9 requires flat config natively; the legacy format triggers
deprecation warnings and needs a FlatCompat shim.
- Task 9: env impl cannot unconditionally assign undefined to optional
fields under exactOptionalPropertyTypes; build base object then
conditionally assign the three optional URL/header fields.
- Task 12 Step 5: defer coverage check to 1B, which owns the
@vitest/coverage-v8 dep per the master plan shared-files table.
Replaces the FlatCompat shim (which loaded .eslintrc.cjs via @eslint/eslintrc
and emitted deprecation warnings) with a native ESLint 9 flat config. Adds
typescript-eslint meta-package as the flat-config entrypoint and pins
@eslint/js to v9 to satisfy the eslint@9 peer range. Rule set is preserved
verbatim from the Phase 1A-1 plan (Task 4).
Align engines.node with the .nvmrc 24.2.0 pin so npm/pnpm warn on
mismatched local toolchains, move packageManager to the current
pnpm 9.15.3 patch, and ignore pnpm's local store and debug log so
stray artefacts never get committed.
Vitest 2 pulled Vite 5 + esbuild 0.21 (GHSA-67mh-4wv8-2f99). Bumping
vitest/@vitest/ui to v3 and adding vite ^6 as a direct dev dep forces
peer resolution onto Vite 6 + esbuild 0.25, which also clears the Vite
path-traversal advisory (GHSA-4w7w-66w2-5vf9). pnpm audit is now clean.
@isaacs/ttlcache has no byte cap (only count). A 100MB hard limit needs
lru-cache v10's maxSize + sizeCalculation. Aligns design spec with
Phase 1 master plan contract revision.
Review and planning iterations commit frequently; asking for permission
on each commit added friction without safety benefit. Destructive git
operations still require explicit approval.
Index of 10 sub-plans (1A-1J) with dependency graph, exported contracts
between sub-plans, shared-file ownership table, spec-coverage matrix,
and global exit gate. Each sub-plan gets its own TDD-granular plan
document written on demand via the writing-plans skill.
16 tasks covering URL corpus extraction, SEO + hreflang + VRT baseline
capture from Angular prod, PrimeNG/SCSS/i18n inventories, and the
customer confirmation checklist. Phase 0 is discovery-only; no
production change. Output is the fixture + inventory set Phase 1
sub-plans consume.
Captures the dual-mode Modern.js architecture, strangler-fig phasing,
parity contracts, and customer-requirement mapping so implementation
plans can be derived per phase without re-litigating architectural
decisions.