Stability checkpoint — Phase A quality enforcement (audit + thresholds)

Phase A quality-tools pass complete. Signal layer first; failOnViolation
flip + ESLint warn→error deferred to Phase C after Phase B refactors.

Shipped this cycle (svc):
- fbc92d4: docs/audit/quality-thresholds-2026-04-21.md (40+ rules tabulated
           industry vs current), section_file_length in stability-check.sh
           (≥1500 BLOCK gate, 11 documented exemptions), PMD industry
           thresholds (NcssCount class 1500→750, TooManyMethods 10→25,
           ExcessiveParameterList 10→7, etc.), printFailingErrors=true
- a17b7b4: config/checkstyle.xml (custom config replacing google_checks.xml,
           adds FileLength 1000, MethodLength 100, LineLength 120,
           ParameterNumber 7, ExecutableStatementCount 30), consoleOutput=true
- f24c56a: fix XML comment '---' violation

Shipped this cycle (UI):
- b126205: 6 ESLint rules at WARN (max-lines 400, max-lines-per-function 80,
           complexity 10, max-params 5, max-depth 4, max-nested-callbacks 4)
- b9734ea: workflow path filter — added eslint.config.mjs + .gitleaks.toml
           (closes the silent-merge gap that let !68 land without lint
           re-validation)

MRs merged: svc !129 (3 commits), UI !68 (direct), UI !69 (1 commit).
Post-merge main pipelines green: svc #618 + UI #324.

Phase B/C backlog in TASKS.md / CLAUDE.md File-length-hygiene.