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,23 @@
# Infrastructure Design — CI/CD Pipeline (unit: funnies)
> Posture (Q1=B, Q2=A): repo committed to gitea for local use; a gitea Actions
> **test pipeline** runs funnies' tests; nothing to deploy. The allowed
> cartoon/comic source is the only external touchpoint. Secrets via local config
> (Q3=A), never committed.
## Deployment posture
- No deployment target. Local-use tool, never published.
- gitea Actions runs tests only (no build/deploy/publish).
## Gitea Actions test pipeline
| Stage | Action |
|---|---|
| Checkout | Fetch repo |
| Setup | `uv` + Python |
| Test | Funnies tests: crossword/find-a-word build, cartoon-fetch fallback, A4-bounded output |
| Report | Surface pass/fail in gitea |
- Trigger: push/PR to repo main. No deploy stage. Does not hit the live cartoon source in CI (tests mock the fetch).
## Secrets
- The allowed cartoon/comic source config is a local config the user supplies (never committed). No model/source credentials in CI (tests mock the fetch).
@@ -0,0 +1,54 @@
# Infrastructure Design — Questions (unit: funnies)
> Fill in each `[Answer]:` tag. funnies is a `library` unit; per `produces_kinds`
> it owes `cicd-pipeline.md` + `traceability.json`. Project is committed to the
> gitea repo for local use, with a gitea Actions test pipeline (no deploy).
## Q1: Infrastructure posture
For a file-only, no-server, never-deployed tool, what infrastructure does funnies need?
A) None — no deployment/cloud; repo committed to gitea for local use + versioning (recommended)
B) Minimal — capture local runtime (uv/Python) + the single allowed cartoon/comic fetch as the only external touchpoint
C) Full — CI/CD + infra even though nothing deploys
X) Other (please specify)
[Answer]: B
## Q2: CI/CD
Is any build/test/deploy pipeline needed for funnies?
A) Gitea Actions test pipeline only — runs the tests (puzzle building, fetch fallback), nothing deployed (matches ai-draft)
B) No CI/CD at all
C) Full CI with deploy
X) Other (please specify)
[Answer]: A
## Q3: Secrets / external touchpoints
The only external dependency is the allowed cartoon/comic source. How should it be handled?
A) Local config the user supplies, never committed or hard-coded (recommended)
B) Environment variable only
X) Other (please specify)
[Answer]: A
## Consolidated Summary Confirmation
> Summary of the funnies infrastructure answers (mirror ai-draft + gitea test pipeline):
>
> - Posture: minimal — local runtime; allowed cartoon/comic fetch is the only external touchpoint (Q1=B)
> - CI/CD: gitea Actions test pipeline only, nothing deployed (Q2=A)
> - Secrets: local config, never committed (Q3=A)
>
> Human auto-approved (mirror).
Does this all look correct before I generate the unit artifacts?
- Looks correct
- Request changes
[Answer]: Looks correct
@@ -0,0 +1,15 @@
<!-- INVARIANT: examples are single-line HTML comments so a fresh template parses to total=0 (MEMORY_EMPTY). Do NOT un-comment or split across lines. t100 guards this. -->
> This file is kept up to date automatically while the stage runs. Add observations at the review step, not by editing here directly.
## Interpretations
<!-- example: 2026-05-29T10:14:32Z — chose REST over GraphQL; the consuming team only needs CRUD, revisit if subscriptions land -->
## Deviations
<!-- example: 2026-05-29T10:14:32Z — skipped the optional caching layer the stage prose suggested; the dataset is small enough that it adds risk -->
## Tradeoffs
<!-- example: 2026-05-29T10:14:32Z — picked TDD over BDD this run; the team is unit-first and the domain is well-understood -->
## Open questions
<!-- example: 2026-05-29T10:14:32Z — confirm the retention window with compliance before the next stage hardens the schema -->
2026-09-14T00:32:00Z — Interpretation — funnies infra: repo committed to gitea for local use; gitea Actions test pipeline (tests only, nothing deployed); allowed cartoon source via local config. Produces cicd-pipeline + traceability.
@@ -0,0 +1,11 @@
{
"stage": "infrastructure-design",
"unit": "funnies",
"upstream_ids": ["NFR9.1"],
"coverage": [
{ "id": "NFR9.1", "status": "OK", "target": "no deployable infrastructure; local config supplies the allowed source (Q3=A); gitea Actions runs tests only" }
],
"reverse": [
{ "id": "NFR1.1", "status": "N/A", "target": "no infrastructure-relevant NFR (local-use tool)" }
]
}