- 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.
@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.
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.