# 01 — Repository Assessment ## Status / Scope of this document **Status:** Verified assessment of the repository as it exists on branch `main` at commit `889d48e` ("Initial commit of TalentFlow ATS dashboard"), inspected 2026-07-29 and re-verified 2026-07-30. Binding for the rest of this package. **Scope.** What is in this repository today, what can be kept, what must be replaced, and what does not exist at all. It is deliberately an *audit*, not a plan: the target architecture lives in `_decisions.md` and the phase plan in the delivery document. Where this assessment reaches a conclusion it states a RETAIN / REFACTOR / REBUILD verdict and the reasoning (§11). **Sources.** Direct file inspection plus the evidence brief at `docs/architecture/_repo-findings.md`, which is treated as ground truth. Every claim below carries a file path and, where useful, a line number. Two things must be said plainly and are repeated throughout so no reader infers otherwise: 1. **There is no backend, no database, no authentication, no tests, no build step, no container definition and no environment file anywhere in this repository** (§2.1, `_repo-findings.md` §B). The backend is greenfield. Nothing in this document should be read as describing an existing server. 2. **There is no meeting transcript and no recruitment brief in the repository.** The only requirements artefact present is `docs/TalentFlow-ATS-Business-Requirements-v1.0.docx`, which this project itself produced. The assignment prompt is the authoritative requirements source (`_repo-findings.md` §J). **The single most important finding** is not architectural, it is a security finding: 34 unescaped `innerHTML` assignments and no escaping helper anywhere, in a product whose two Phase 1 data sources are attacker-supplied CV files and inbound email. It is latent today and P0 the moment real data flows. It has its own section (§4) and it is the reason the hardening patch is sequenced before the frontend migration in `_decisions.md`. --- ## 1. What the repository is A **static, browser-only frontend prototype** of an ATS, served by a 36-line no-cache Python static file server (`devserver.py`) that exists only for local preview. 6,371 lines across `index.html`, one stylesheet and 22 JavaScript files. It renders 23 screens of a complete-looking recruitment product entirely from data it invents in the browser at page load. | Measure | Value | Evidence | |---|---|---| | Total tracked source lines | 6,371 (`index.html` 287, `css/styles.css` 1,269, `js/*.js` ~4,780, `devserver.py` 36) | `wc -l` over the tree | | JavaScript files | 22, loaded as 22 ordered `