The model did the typing; the gates, tests and review kept it honest.
StockScore and Wattlas ship through the same operating model. Claude writes the tickets, the mockups, the code and the tests. A human makes the two decisions that matter — the plan and the release. Everything moves in small vertical slices, each one gated, each one readable in a diff.
Work enters where teams would raise it and leaves as a promoted release. Claude Cowork structures the ticket while Claude Design supplies the mockups — in parallel. Only two steps need a human.
Where work is raised — an idea, a bug, a request.
Claude Cowork turns the idea into a clean ticket; Claude Design supplies mockups, tokens and specs.
Links the ticket and the design together — the contract for the coding session.
One branch per issue; parallel sessions can't collide. You approve the plan.
Promoted through protected branches. You approve the release.
A CLAUDE.md file and project settings define how every coding session behaves. The rules live in the repo, not in anyone's head.
Loaded every session — the project's standing instructions.
issue-N → develop → staging → main. No shortcuts.
One issue, one worktree — parallel sessions can't collide.
context · task · refs · constraints · success · halt.
Self-execute by default; escalate on risk.
Failing-first tests · pre-commit hooks · detect-secrets.
Significant approaches get stress-tested against a second model — twice — before anything is built. The final decision is always human.
The approach takes shape in the Claude Project.
A second model attacks it. Two rounds, on purpose.
A human weighs the trade-offs and makes the call.
The decision becomes a brief; the brief becomes the build.
A cloud product and a static site need different pipelines. What they share: nothing secret sits in either one.
Cloud Run front and back, Cloud SQL behind a VPC, every secret in Secret Manager. The pipeline authenticates with Workload Identity Federation — no JSON keys stored anywhere. Gemini runs Flash before Pro, bounded.
A scheduled job reruns the Python pipeline daily at 05:17 UTC and commits only what changed; the static site redeploys. The heavy MaStR bulk download runs weekly, isolated and non-fatal. The whole "backend" is a scheduled job that writes files.