# 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/<filename>`.
- 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`.
