docs(claude): update build state section to v0.4.0 reality
The "Current build state" section described a scaffolded, intentionally RED repo (ErrNotImplemented, go 1.23, unverified confirm items). All stale: build is v0.4.0 green, go 1.26.1 (go.mod), Stage 1 multi-user with RLS shipped (ADR-012, migrations 001-006). Rewrote to describe the actual adapters, cmd subcommands (incl. serve), and how to build/run. Replaced the "confirm" list with the resolved homelab facts (LiteLLM koala:30401, model-as-config) now pinned in homelab-integration.md. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -79,23 +79,33 @@ Skills live in the canonical library `mathias/skills` and are wired into this re
|
||||
|
||||
## Current build state (start here for the first task)
|
||||
|
||||
The repo is **scaffolded and intentionally RED**:
|
||||
The repo is **green and shipping** — last tag `v0.4.0`. `task check` passes (fmt, vet, lint,
|
||||
`go test -p 1 ./...`). Go is `1.26.1` (see `go.mod`).
|
||||
|
||||
- Clean Architecture skeleton exists: `internal/domain` (entities), `internal/ports`
|
||||
(interfaces), `internal/usecase` (engine), `cmd/tapir` (entrypoint stub),
|
||||
`internal/adapters` (empty — concrete adapters go here).
|
||||
- `usecase.Engine.ProcessNewVideo` returns `ErrNotImplemented`.
|
||||
- `test/acceptance/summarize_new_video_test.go` translates the first two Gherkin scenarios and
|
||||
**fails** against the stub. `task check` is therefore red on `test`.
|
||||
- **First build task:** implement `ProcessNewVideo` (resolve transcript -> summarize -> deliver to
|
||||
sinks | skip on no-transcript) to make the acceptance tests green, following the `.feature`
|
||||
files. Then add the AI-router `Summarizer` (copy `llm` per ADR-004), the YouTube `VideoSource`
|
||||
adapter (captions-first), and the store + brain sinks.
|
||||
- Clean Architecture core is implemented: `internal/domain` (entities), `internal/ports`
|
||||
(interfaces), `internal/usecase.Engine.ProcessNewVideo` (resolve transcript → summarize →
|
||||
deliver to sinks | skip on no-transcript). The acceptance tests in `test/acceptance/` are
|
||||
green against it.
|
||||
- Adapters present under `internal/adapters/`: `youtube` (captions-first `VideoSource`,
|
||||
timedtext/InnerTube acquisition per ADR-010), `summarizer` + `llm` (the copied AI router,
|
||||
Primary→Fallback per ADR-004), `store` (Postgres, golang-migrate migrations 001–006),
|
||||
`secrets` (file-backed `SecretStore`). The brain HTTP sink (ADR-005) is the remaining
|
||||
optional sink.
|
||||
- Stage 1 is open (ADR-012): multi-user with **DB-enforced** isolation — Postgres RLS `FORCE`d
|
||||
on all user-owned tables (migration 003), two-user isolation test in
|
||||
`internal/adapters/store/rls_test.go`. Registration gate, per-user YouTube web connect, and
|
||||
account management (disconnect / delete, ADR-013) all shipped.
|
||||
- `cmd/tapir` subcommands: `list`, `show`, `auth` (interactive host-side OAuth), `run` (batch
|
||||
watch→summarize), `serve` (the HTMX+Templ web reader/writer under `internal/web`, a new
|
||||
transport over the unchanged engine/ports — ADR-003). `tapir env` prints config.
|
||||
- **Build/run:** `task check` is the gate; `task build` produces the binary. Local dev uses
|
||||
`StubAuth` (allow-all) and a `TAPIR_DB_DSN` Postgres; the deployed service uses Dex OIDC.
|
||||
|
||||
**Unverified setup items** (see `docs/homelab-integration.md`, marked `confirm`): the Go version
|
||||
in `go.mod` (1.23 — match the koala runner; estate elsewhere uses 1.26.1), the brain-mcp URL, the
|
||||
exact ESO secret-ref naming, and the summarization model alias. Resolve against the live cluster
|
||||
before depending on them, and pin answers back into `docs/homelab-integration.md`.
|
||||
**Setup facts** (resolved — see `docs/homelab-integration.md` for the live values): LiteLLM is
|
||||
off-cluster at `koala:30401/v1/` with `LITELLM_MASTER_KEY` from 1Password; the summarization
|
||||
model is config (`TAPIR_SUMMARIZER_MODEL`, default `koala/phi4-mini`), never hardcoded. The
|
||||
brain-mcp base URL and ESO ref scheme are pinned in that doc; check it before wiring rather than
|
||||
re-deriving.
|
||||
|
||||
## Provenance (where this design came from)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user