docs(13-01): complete lint gate foundation plan — SUMMARY + STATE + ROADMAP

Plan 13-01 complete: ESLint flat config + Prettier installed and wired,
SC-1 gate proven (exit 1 on deliberate violations), 119 real violations
inventoried for Plan 02 (api:42, pwa:77). STATE advanced to Plan 2 of 3.
This commit is contained in:
Lucas Berger
2026-06-11 19:53:55 -04:00
parent 7a255eacaa
commit 39e26561cf
3 changed files with 161 additions and 12 deletions
+14 -11
View File
@@ -3,15 +3,15 @@ gsd_state_version: 1.0
milestone: v1.1
milestone_name: Operability & Polish
status: executing
stopped_at: Phase 13 context gathered
last_updated: "2026-06-11T23:27:49.541Z"
last_activity: "2026-06-11 -- Quick task 260611-ozt: split publish into standalone push-only publish.yml (kills orphaned CI / publish (pull_request) pending status, WR-01); release model documented in README + publish.yml. Branch-protection contexts unchanged."
stopped_at: Phase 13, Plan 1 complete
last_updated: "2026-06-11T23:51:00Z"
last_activity: 2026-06-11 -- Phase 13 Plan 01 complete (lint gate foundation)
progress:
total_phases: 17
completed_phases: 2
total_plans: 8
completed_plans: 8
percent: 12
total_plans: 11
completed_plans: 9
percent: 13
---
# Project State
@@ -21,14 +21,14 @@ progress:
See: .planning/PROJECT.md (updated 2026-06-10)
**Core value:** One color-coded family calendar (shared + personal) and shared lists from a single low-friction PWA — cross-ecosystem, no app store
**Current focus:** Phase 08gitea-ci
**Current focus:** Phase 13real-lint-gate-eslint
## Current Position
Phase: 08 (gitea-ci) — COMPLETE
Plan: 4 of 4 (08-04 complete)
Status: Ready to execute
Last activity: 2026-06-11 -- Quick task 260611-ozt: split publish into standalone push-only publish.yml (kills orphaned CI / publish (pull_request) pending status, WR-01); release model documented in README + publish.yml. Branch-protection contexts unchanged.
Phase: 13 (real-lint-gate-eslint) — EXECUTING
Plan: 2 of 3
Status: Executing Phase 13 — Plan 01 complete
Last activity: 2026-06-11 -- Phase 13 Plan 01 complete (lint gate foundation)
## Performance Metrics
@@ -82,6 +82,7 @@ Last activity: 2026-06-11 -- Quick task 260611-ozt: split publish into standalon
| Phase 07 P02 | 196 | 2 tasks | 4 files |
| Phase 07-mobile-test-harness P03 | 480 | 2 tasks | 2 files |
| Phase 07-mobile-test-harness P04 | 22 | 2 tasks | 2 files |
| Phase 13 P01 | 8 | 2 tasks | 7 files |
## Accumulated Context
@@ -90,6 +91,8 @@ Last activity: 2026-06-11 -- Quick task 260611-ozt: split publish into standalon
Decisions are logged in PROJECT.md Key Decisions table.
Recent decisions affecting current work:
- D-13-ESLint-PIN (2026-06-11, 13-01): eslint pinned to 9.39.4 — ESLint 10 breaks eslint-plugin-react@7.37.5 at runtime ("getFilename is not a function", jsx-eslint#3977). Unpin when plugin releases ESLint 10 support.
- D-13-JSX-SCOPE (2026-06-11, 13-01): react/react-in-jsx-scope disabled explicitly — flat.recommended enables it at error; PWA uses jsx:react-jsx (React 19 automatic transform), React import not required in JSX files.
- D-PROBE-01 (2026-06-11, 08-01): runs-on must be ubuntu-latest — runner has no self-hosted label; all downstream ci.yml workflows use ubuntu-latest.
- D-PROBE-02 (2026-06-11, 08-01): Docker-executor confirmed (/.dockerenv present); services: works; DB_HOST=mariadb in all downstream jobs.
- D-PROBE-03 (2026-06-11, 08-01): No mysql CLI in runner image — DB readiness uses healthcheck.sh --connect --innodb_initialized or Node mysql2 wait; no mysql shell-out.