# Documenter — F-048 ## Updated documentation - `docs/context-handoff.md` now documents the script-only ticket lifecycle: - interactive creation with `new_ticket.py`; - exclusive promotion to `in_progress` with `--start`; - legacy gate normalization with `--normalize-gates`; - final close/commit with `close_feature.py`. - Swagger shared error schema was aligned in code with the public envelope `{ error, requestId }`; generated `/docs` reflects it automatically. - Implementer evidence records migration, build, test and upload-auth behavior. ## User-facing/API notes - Admin image upload now requires a valid backoffice session. Unauthenticated calls return HTTP 401. - Uploaded image extension is selected server-side and invalid image signatures return HTTP 400. - Existing upload URLs remain `/uploads/`. - API error validation code remains stable as `VALIDATION_ERROR`. ## Operational notes - There is no configured `origin` remote, so close creates a local commit and reports push as skipped. - Product validation commands are listed in `work/artifacts/F-048/implementer.md` and QA traceability in `qa.json`.