This commit is contained in:
+23
@@ -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).
|
||||
+54
@@ -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
|
||||
+15
@@ -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.
|
||||
+11
@@ -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)" }
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user