first pass at the newspaper builder
Test / test (push) Has been cancelled

This commit is contained in:
2026-09-14 11:57:22 +10:00
commit bec1eaac87
497 changed files with 178953 additions and 0 deletions
@@ -0,0 +1,25 @@
# CI Pipeline — Quality Gates
## Required before merge
The CI pipeline must pass:
1. **Full test suite green** — `uv run --project newspaper pytest newspaper/tests/ -q`
(22 unit tests: ai-draft 7, funnies 7, generator 8). This is the primary,
non-negotiable gate.
2. **No remote refs / self-contained emit** — the generator tests assert the
emitted `newspaper.html` contains no `http(s)` references (NFR4) and no
fabricated photos when none supplied (FR7.4).
3. **AI isolation** — ai-draft tests assert briefs carry no secrets and the model
call is behind a narrow client (NFR9).
## Gate policy
- **Blocking**: any test failure blocks the pipeline (fail closed).
- **No deploy gate** — there is no deployment/artifact step. The "pipeline"
concludes after tests pass; the artifact is the local `newspaper.html` the
couple generates and prints.
## Traceability to Build and Test
Every quality gate above maps directly to a target recorded as **Met** in
`build-and-test/build-and-test-summary.md`:
- test suite → the 22 passing tests
- zero-network → NFR4 Met
- AI isolation → NFR9 Met