# 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