Files
jobtrackingapp/docs/redesign/phase-10/P10-00.md
T

21 KiB
Raw Blame History

P10-00 — Direct assessment and deletion eligibility

2 November 2026, Europe/Paris. Assessment complete and published; P10-01 awaits candidate-specific owner approval. Normal publication subsequently succeeded at 1692142295950e390a4cf807d9df86cc5cf96290, independently read back from the remote. The Continuous Progress Addendum explicitly retains the owner gate. No application/test/dependency/schema change or deletion was performed. One narrowly bounded frontend stylesheet is nominated below; the other assessed areas remain retained. Phase 10 completion and post-redesign product-review acceptance are not established. Production remains NO-GO.

Authority, baseline and draft review

The owner's direct-chat instruction authorises repository inspection and Markdown assessment only, then requires a stop for approval of the exact P10-01 scope. It explicitly prohibits using, repairing or activating the autonomous backlog orchestrator. Its old adapter, policy, signing and queue requirements describe autonomous execution; they are not prerequisites for this separately authorised direct assessment. No controller command, key, receipt, configuration or queue was accessed or changed. Future source-defined product, security, provider and human gates remain mandatory in their applicable scopes.

Read the complete external Prompt 5 — Phase 10.txt, including its prerequisites, fifteen inventory categories, checkpoint order and acceptance requirements, and the original implementation plan. External source SHA256: f3d5d183a1cd653aac2207a8435ba95fbb74ef4bb8cc91d605edd959f9f4ec72. AGENTS.md, its RTK instructions, the current architecture pointer, overview and linked frontend/backend/data/integration/schema/deployment descriptions govern ownership.

Identity Fresh observation
Worktree C:\Users\Connor\.codex\worktrees\p10-assessment\Job tracker
Branch / initial HEAD feature/phase10-cleanup / fc5b9d377199ce51f480a920a3772108094929e3
Initial changes Only staged docs/automation/stages/PHASE-10/P10-00.md, 93 lines; no unstaged or unrelated files
Reported handoff 5cb903b989742b7a96cb22ddf4c0e24993b18980, verified ancestor of initial HEAD
Remote handoff readback git ls-remote origin refs/heads/test/pre-phase10-ux-acceptance returned exactly 5cb903b989742b7a96cb22ddf4c0e24993b18980; the Phase 10 branch did not yet exist remotely
Frozen tested application ba04d817fed26d659bfa2a56b089d6cac851dc34, ancestor of HEAD; all subsequent committed differences are inside docs/automation/handoffs/pre-phase10/
Final assessment/publication identities Recorded in HANDOFF.md; resolve current branch HEAD, never infer publication from an older readback

Reviewed and preserved the existing draft. Original staged content SHA256 was 55afecbcb09d91762fdddb2670c409566bf58f9fce6c2a705627e9fcfb8e10d0 (16,809 bytes). Only a dated review notice is added; its original text remains intact. Its positive active-consumer findings are useful. Its supplied manifest identity, asserted verified owner/controller decisions, Git-access failure, required controller canaries and prohibition on worker commits are historical context, not independently verified facts or direct-chat requirements. Its no-candidate conclusion is superseded only by the additional stylesheet investigation below. A worker's completion statement does not establish acceptance.

Graphify query was attempted before source searches. It failed because this worktree has no graphify-out/graph.json; no graph was created and no other worktree's graph was used as current proof. Source inspection used RTK-wrapped rg, Git, bounded file reads and assert-based integrity checks. No dependency installation or infrastructure repair occurred.

Accepted evidence and its applicability

Reviewed the Pre-Phase-10 acceptance, CV-QA handoff, integration QA acceptance and Phase 10 handoff, CV-UX acceptance and compatibility handoff, CV-import acceptance, and Phase 9 security/requalification addendum. Their conditional development decisions remain limited to their stated scope.

The later final development-entry review, authority reconciliation, baseline, handoff, reproduction contract, ready-to-run conditions and current acceptance/evidence index distinguish historical statements from later decisions. Read the linked PDF report, review guide, owner-review requirements and S01 disposition. The 30 October owner metric/visual records supersede earlier metric/visual-pending statements only for their approved development scope. Physical printing/device/AT/language checks are still unperformed. No accepted PDF criterion was reopened or changed.

Fresh checks against the current worktree:

Check Result / exact boundary
Indexed compressed evidence hashes PASSED: 263/263 SHA256 values match TEST_EVIDENCE.json; this does not rerun their producers
Application source-before/source-after manifests PASSED: identical, with 1,280/1,280 current file hashes matching; zero mismatches
Handoff verifier-source identity PASSED: 7/7, both worktree bytes and the committed 39bf430401d86f894277fdd78e7eb88c58d81e8b objects match the indexed manifest
Preservation classification PASSED membership check: 57 unique groups, retaining 56 PARTIAL / C11 DEFERRED; no promotion to PASS
Route census PASSED: 34 distinct application routes, exactly the original 33 plus /admin/processing; outer/shell wildcard infrastructure and duplicate / are not extra capabilities
Product suites, typecheck, lint, build, browser and visual runs NOT RUN in P10-00; assessment changed Markdown only
Full package semantic/schema/native-membership verifier NOT RUN; its entry contract requires the original handoff branch and restricts all descendants to the handoff directory. No verifier was changed or bypassed to make this direct assessment appear accepted

The hash/source checks support reuse, not a new full regression or independent security attestation. The historical package retains 1,448 backend / 1,031 frontend cases, 51 affected Windows browser cases, separate import 8 / MariaDB 90+3 / RD21 6 / admission 1 / Linux 8, Python 83 offline +14 real Docling, and native exports with their actual source/runtime/process identities. These lanes are not added into one total. Older broad browser evidence remains historical. The approved S01 36/36 per platform re-evaluated existing documents; original Windows 28/Linux 20 failures are preserved. No new PDF was generated.

Inventory and retained compatibility

The nineteen-entry inventory and preserved draft remain the detailed retain register, including historical purpose, consumers, preservation IDs, proposed tests and risks. The table below reconciles every external inventory category and records the additional concrete candidate. An active consumer defeats deletion eligibility; no exhaustive repository-wide absence claim is made for the retained areas.

Required category Current evidence / disposition
Old page components CLEAN-01/08: App.tsx:61,67,441,446 lazy-loads the current CV editor and admin processing page. Retain; names/age do not establish supersession
Superseded layouts CLEAN-06/07: DashboardView.tsx:20–22,333,367 uses layout state, editor and grid together. Retain show/hide/save/reset/conflict/navigation and persisted schema-2 geometry
Old CV Editor implementations CLEAN-01/03: builder routes and gallery/customisation consumers remain active. Retain blank/inherit, history, undo, settings and entitlements
Obsolete CV Import screens CLEAN-04/05: CareerProfilePage.tsx:410,447,868 separates old-run review/accept from Docling review; ProfileCvController.cs:270 still exposes the paired accept action. Retain both paths
Unused document components CLEAN-02/10/12: thumbnail is imported/rendered by gallery and library; renderer design-version branches and ApplicationAssetsService revision-aware writers remain active. Retain
Duplicated styling CLEAN-16: app MUI styling, fixed document CSS, sandboxed previews and RGL CSS have distinct consumers. No duplicate consolidation is proven. Retain
Unused design tokens CLEAN-16: ThemeProvider.tsx uses CssBaseline/getTheme; no unused-token proof. Retain
Dead hooks/utilities CLEAN-07/19: dashboard layout hook is imported; duplicate reminder-read optimisation remains unmeasured. Retain, no performance change nominated
Unused frontend routes CLEAN-09: all 34 remain registered; /kanban, /correspondence/review, /applications/:id retain explicit redirect behavior. Retain bookmarks, query/hash/state and owner boundaries
Unreferenced API endpoints CLEAN-05/11/12: paired legacy accept UI/API, canonical mapper and revision-aware document service remain. External-consumer absence is unproved. Retain endpoints/services/DTOs/mappings
Obsolete feature flags CLEAN-15: cv_import_ai.py:20 reads CV_IMPORT_AI_ENABLED, default false; accepted optional adapter is disabled/disconnected. Withholding is not obsolescence. Retain disabled
Unused dependencies CLEAN-13/14/17: RGL JS/CSS imports at DashboardGrid.tsx:4,7–8; existing provider/parser/runtime/tooling consumers remain. No package removal nominated; runtime/test/scripts/Docker/platform census would be required for one
Old localisation keys CLEAN-16: I18nProvider.tsx:67 indexes translations[language][key] with fallback. Dynamic-key absence is unproved. Retain EN/Bokmål catalogues
Deprecated test fixtures CLEAN-18: Jest roots/transform and Playwright testDir remain configured; historical PDF/old-run/provider/revision fixtures are acceptance consumers. No fixture is nominated
Dead asset references CLEAN-16/18: layout references favicons/manifest; manifest references both logo sizes; landing page references all three mockups. Retain those assets. Additional unreferenced stylesheet candidate CLEAN-20 below

CLEAN-20 — Original CRA job-tracker-ui/src/App.css

Nominate for P10-01 only; do not remove during assessment. Historical purpose: initial Create React App demonstration styling, present since 2e8a29b (first commit). Contents: .App, .App-logo, .App-header, .App-link, reduced-motion-aware logo animation and App-logo-spin; 38 lines / 602 current worktree bytes. Git blob: 74b5e053450a48a6bdb4d71aad648e7af821975c. Worktree SHA256: 61f6c43a638172676cd2813c94dc4db88f6cf73faec19d0cd116b1ff19e46efc.

Unused evidence uses several independent boundaries:

  1. Case-insensitive rg across frontend, API, scripts, sidecar and deploy sources finds the distinctive selectors/keyframe only inside this file, and no App.css consumer. A separate tracked git grep likewise finds no filename consumer. There are no application-local unstaged/untracked additions at entry.
  2. Inspected actual build entry chain: app/page.tsx → app/[[...slug]]/ClientShell.tsx (literal dynamic import) → src/ClientApp.tsx → src/App.tsx → current views/layout. app/layout.tsx:4 imports index.css, which is retained. ThemeProvider.tsx owns active MUI/CssBaseline styling. App source and shell do not use the CRA root classes.
  3. Inspected next.config.js: static export plus development rewrite, no source-directory/glob CSS loader or additional injection. Script/config searches show no require.context/import.meta.glob CSS ingestion. Jest mocks explicitly imported styles; it does not load this file itself. Package scripts invoke the current Next/Jest/ESLint/TypeScript tools.
  4. Inspected delivery boundaries: frontend Dockerfile builds then copies only /app/out to nginx; nginx serves that output, and the local export server resolves only out/. src/App.css is outside public assets and has no exported/source-file URL contract. It is not document CSS, an API payload, font or stored settings format. No database inventory is required to remove this unserved source stylesheet; no persisted record is modified.

Current consumers/replacement: none found; no replacement needed. Preserve the already-active index.css, theme.ts, ThemeProvider.tsx, RGL styles, renderer styles and licensed fonts. Affected preservation review: PRES-E01–E09 (shared UI/theme/responsive/accessibility assurance); all other 48 groups and all 34 routes remain unchanged. Removal risk: LOW, contingent on unchanged candidate/entry/config identity and successful affected checks. Runtime/build-size improvement is NOT MEASURED; an unbundled source file does not imply a smaller runtime bundle.

Data, backend and SQLite implications

Career Profile remains canonical. Preserve CV overrides and null-as-inherit, explicit blank flags, current-master history semantics, old stored CV formats/design-version-1 rendering, submitted/frozen CV/letter HTML/settings/binaries and application associations. Cover-letter writers continue under JobApplication.Version and ApplicationAssetsService; retain generic null-clear versus draft null-unchanged, no-op, restore-as-new, attachment flags, owner filtering and transaction/RD21 stale-write/rollback/retry protections. Keep historical extraction runs and paired review/accept DTOs. No data migration, schema change, writer consolidation or route transition is proposed.

Reviewed MariaDB standardisation README, acceptance and six-stage SQLite retirement. Actual MariaDB coverage does not establish installation inventory, full-fidelity export/isolated restore/transfer, complete harness parity, approved cutover/rollback-after-writes or retention sign-off. SQLite retirement remains REMOVAL NO-GO as a separate initiative. Keep provider packages/helpers/branches, partial export tools and immutable migrations. It is not a prerequisite for unrelated stylesheet cleanup. No MariaDB upgrade is proposed.

Proposed P10-01 scope — CLEAN-20 only

Approval requested for this exact candidate at application baseline fc5b9d377199ce51f480a920a3772108094929e3, plus this Markdown-only assessment descendant. Before acting, require a clean published assessment checkpoint, unchanged application/build/test inputs and the exact candidate blob above. If a consumer/config/source change appears, stop and reassess rather than broadening approval.

Allowed implementation after explicit approval:

  • Delete only job-tracker-ui/src/App.css with the patch workflow. Update this phase's evidence, TODO and continuity Markdown. No caller, export, fixture, configuration, dependency, API, route, data, renderer, font or localisation change is expected or approved.
  • Recheck filename/selectors, static/dynamic entry and delivery boundaries, 57 IDs/34 routes and exact diff scope. Run existing frontend typecheck, lint and build using the unchanged lockfile and an isolated local dependency/build tree. Dependencies are absent in this worktree today; restore only the existing lock if needed in the authorised implementation, without upgrades or shared-worktree edits.
  • Run existing landing-presentation.spec.ts (both EN/NB cases cover light/dark at 320/390/768/1440) and focused smoke.spec.ts cases public plans stay honest, responsive and keyboard accessible, login establishes an authenticated session, and Career Workspace loads from the authenticated application shell, with zero retries, exact discovered membership, fresh isolated fixtures/static output and native exits. This is a candidate regression sample, not a full suite or human accessibility acceptance. Do not run model/provider operations or additional PDF-producing smoke cases.
  • Reuse unchanged backend/provider/sidecar/PDF evidence with source checks. Do not rerender PDFs, reopen approved metrics or rerun thousands of tests for this unimported file. Broader phase acceptance still requires the complete applicable P10-04/P10-05 programme; significance or affected-source changes require appropriate full suites.
  • Run graphify update . as required after a code change, with AST-only/local operation. Graph absence is a known tooling limit: if the installed update cannot operate without a graph, record its actual result and the maintenance limitation; do not rebuild another worktree, fetch an extractor or add graph/orchestration infrastructure under this approval. Graph maintenance is not product-regression evidence.
  • Commit the validated candidate checkpoint, normally push feature/phase10-cleanup, and independently compare its remote SHA. Publication failure is a real gate, not permission to repair Gitea or bypass hooks.

Rollback: revert the single implementation commit, restoring the exact original stylesheet blob; documentation records the reversal. No database restore, data rewrite, redirect or compatibility migration is needed. Failed build/browser/source-scope evidence prevents acceptance. Do not waive failed assertions, remove fixtures or extend the patch to make unrelated checks pass.

This approval would cover P10-01/CLEAN-20 only. It would not authorise P10-02, further removals or later initiatives. Subsequent candidate-specific implementation gates remain. When no additional safe candidate is proven, report that result and retain the code.

Limitations, decisions and stop

This is a bounded cleanup inventory with one positively analysed stylesheet nomination, not exhaustive dead-code/package/API/locale-key/asset non-use proof. Historical CV/old-run/provider runtime behavior was not freshly executed. No source/data loss or performance improvement is claimed. Native package schemas/counters were not freshly re-parsed by the full branch-specific handoff verifier; fresh checks above cover byte integrity, source identity, group states and route membership only.

Retained independent debt: physical device/AT/contrast/proficient EN-NB/printing NOT TESTED; CV-model qualification BLOCKED, adapter disabled; deterministic PDF recall and source-review burden PARTIAL; canonical-only generic-AI context limitation retained; Python vendor advisory coverage INCOMPLETE/CONDITIONAL; hosted CI/isolation BLOCKED/UNVERIFIED; MySqlConnector/TLS, native image/parser production isolation, filesystem/off-disk backup/restore and deployed identity remain release qualifications. No fresh advisory search, live AI, licensed-provider or production access occurred.

Decision Current result
P10-00 direct assessment COMPLETE within the authorised documentation/inspection scope
P10-00 checkpoint publication PASSED: subsequent normal push and independent readback at 1692142295950e390a4cf807d9df86cc5cf96290; previous pre-receive failures remain historical
CLEAN-20 static deletion eligibility NOMINATED, with exact implementation verification and owner gate above
P10-01 implementation AWAITING_APPROVAL of the exact candidate scope; publication prerequisite satisfied
Phase 10 complete acceptance NO-GO / NOT YET ESTABLISHED; P10-01–05 not complete
Redesign development completion Existing CONDITIONAL GO remains scoped; final cleanup acceptance not established
Post-Phase-10 PRODUCT-REVIEW-01 readiness NO-GO until Phase 10 is accepted and applicable entry conditions are satisfied
Production release NO-GO

STOP here. Request approval of P10-01/CLEAN-20 only. The orchestrator must remain paused. The deferred CV-import overhaul and personal portfolio website remain outside this roadmap execution task. HANDOFF.md records continuity, exact checkpoints and the later source order; later prompt packs must be read completely before their workstream is entered.