tudor
404ba95275
Merge branch 'main' into fix/gias-blank-name-codes
PR Checks / Frontend Typecheck + Tests (pull_request) Successful in 1m3s
PR Checks / Backend Smoke (pull_request) Successful in 7s
PR Checks / Build Backend (no push) (pull_request) Successful in 10s
PR Checks / Build Frontend (no push) (pull_request) Successful in 50s
PR Checks / Build Pipeline (no push) (pull_request) Successful in 10s
PR Checks / AI Code Review (Claude) (pull_request) Successful in 33s
2026-07-16 09:14:42 +00:00
Tudor and Claude Fable 5
6138e2b2ee
Merge main (PR #34 ) into compare frontend branch
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_0146VHeLAWjDVE2B5uU67jCB
2026-07-14 00:04:03 +01:00
Tudor and Claude Fable 5
9447b80bc6
docs: compare mockups as frontend design source + rebuild plan
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_0146VHeLAWjDVE2B5uU67jCB
2026-07-13 19:13:18 +01:00
Tudor and Claude Fable 5
17b4498c80
docs: plan for compare API enrichment
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_0146VHeLAWjDVE2B5uU67jCB
2026-07-13 15:46:04 +01:00
tudor
3754947fd6
Merge pull request 'feat(pipeline): compare-screen data foundation — raw→marts promotions, national averages, Ofsted report cards' ( #32 ) from feat/compare-data-foundation into main
...
Stage (build -> staging -> E2E gate) / Build Backend (FastAPI) (push) Successful in 12s
Stage (build -> staging -> E2E gate) / Build Frontend (Next.js) (push) Successful in 48s
Stage (build -> staging -> E2E gate) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 1m16s
Stage (build -> staging -> E2E gate) / Deploy to Staging (push) Successful in 1s
Stage (build -> staging -> E2E gate) / E2E Journeys against Staging (push) Successful in 41s
Reviewed-on: #32
2026-07-13 12:52:11 +00:00
Tudor and Claude Fable 5
2b563cc0bf
docs: two-stage deploy model (staging auto, production manual)
...
PR Checks / Frontend Typecheck + Tests (pull_request) Successful in 9m36s
PR Checks / Backend Smoke (pull_request) Successful in 7s
PR Checks / Build Backend (no push) (pull_request) Successful in 10s
PR Checks / Build Frontend (no push) (pull_request) Successful in 43s
PR Checks / Build Pipeline (no push) (pull_request) Successful in 10s
PR Checks / AI Code Review (Claude) (pull_request) Failing after 2m10s
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_0146VHeLAWjDVE2B5uU67jCB
2026-07-13 08:38:37 +01:00
Tudor and Claude Fable 5
dd0ff7d0c2
docs: plan for staged production promotion
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_0146VHeLAWjDVE2B5uU67jCB
2026-07-13 08:34:32 +01:00
Tudor and Claude Fable 5
bee63a7836
docs(spec): 2021/22 school-level KS2 is a permanent DfE source gap, not a pipeline task
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_0146VHeLAWjDVE2B5uU67jCB
2026-07-12 22:10:05 +01:00
Tudor and Claude Fable 5
297bdbd12e
docs: compare-screen redesign spec, expert review, and data-foundation plan
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_0146VHeLAWjDVE2B5uU67jCB
2026-07-12 21:19:53 +01:00
Tudor
493ea39c29
Updating the number of schools
PR Checks / Frontend Typecheck + Tests (pull_request) Successful in 9m44s
PR Checks / Backend Smoke (pull_request) Successful in 7s
PR Checks / Build Backend (no push) (pull_request) Successful in 16s
PR Checks / Build Frontend (no push) (pull_request) Successful in 49s
PR Checks / Build Pipeline (no push) (pull_request) Successful in 38s
PR Checks / AI Code Review (Claude) (pull_request) Failing after 27s
2026-07-09 22:53:42 +01:00
Tudor and Claude Fable 5
c26755750d
docs: mark GIAS code dictionaries spec implemented
...
PR Checks / Frontend Typecheck + Tests (pull_request) Successful in 9m38s
PR Checks / Backend Smoke (pull_request) Successful in 8s
PR Checks / Build Backend (no push) (pull_request) Successful in 22s
PR Checks / Build Frontend (no push) (pull_request) Successful in 47s
PR Checks / Build Pipeline (no push) (pull_request) Successful in 54s
PR Checks / AI Code Review (Claude) (pull_request) Failing after 3m58s
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-09 14:12:52 +01:00
Tudor and Claude Fable 5
08bd86db05
docs: implementation plan for GIAS code dictionaries
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-09 10:10:26 +01:00
Tudor and Claude Fable 5
1ae5762a0a
docs: design spec for GIAS code dictionaries (codes in marts, names in code)
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-09 09:55:53 +01:00
Tudor and Claude Fable 5
3fcb1340d4
docs: mark sixth-form flag pipeline change implemented
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-07 10:43:08 +01:00
Tudor and Claude Fable 5
87f4c6dd40
docs: implementation plan for GIAS sixth-form flag
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-07 10:21:02 +01:00
Tudor and Claude Fable 5
0309b27c84
docs: exam results phase taxonomy and sixth-form separation spec
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-07 10:02:21 +01:00
Tudor and Claude Fable 5
95081d38bd
chore: remove the Ofsted Parent View feature end to end
...
PR Checks / Frontend Typecheck + Tests (pull_request) Successful in 9m39s
PR Checks / Backend Smoke (pull_request) Successful in 5s
PR Checks / Build Backend (no push) (pull_request) Successful in 17s
PR Checks / Build Frontend (no push) (pull_request) Successful in 41s
PR Checks / Build Pipeline (no push) (pull_request) Successful in 45s
PR Checks / AI Code Review (Claude) (pull_request) Successful in 1m35s
Removes the 'What Parents Say' section and all supporting elements:
Frontend:
- Drop the OfstedParentView type, the parent_view field, the survey
section and the 'X% would recommend' callouts in the primary and
secondary detail views, the Parents nav item, and the parent-view CSS.
Backend:
- Remove the FactParentView model, its loading in data_loader, and
parent_view from the school-details API response.
- Bump SCHEMA_VERSION to 6 and add an idempotent drop step
(DROP TABLE IF EXISTS marts.fact_parent_view) to the CLI migration;
add scripts/sql/drop_fact_parent_view.sql to apply directly to the
dbt-owned marts DBs on staging and prod.
Pipeline:
- Delete the stg_parent_view + fact_parent_view dbt models and their
source/schema entries, the tap-uk-parent-view Meltano extractor, and
the monthly Parent View DAG; drop it from the Dockerfile and the
staging bootstrap docs.
The rest of dbt (which builds every mart the app reads) is untouched.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-06 09:01:26 +01:00
Tudor and Claude Fable 5
c62ba0ca25
fix(ci): post AI review comments with the run-scoped Gitea token
...
PR Checks / Frontend Typecheck + Tests (pull_request) Successful in 9m37s
PR Checks / Backend Smoke (pull_request) Successful in 5s
PR Checks / Build Backend (no push) (pull_request) Successful in 10s
PR Checks / Build Frontend (no push) (pull_request) Successful in 45s
PR Checks / Build Pipeline (no push) (pull_request) Successful in 10s
PR Checks / AI Code Review (Claude) (pull_request) Failing after 1m56s
REGISTRY_TOKEN lacks issue-write scope (403 on comment post). Gitea Actions
auto-provides a repo-scoped per-run token as secrets.GITEA_TOKEN — no
user-managed secret needed.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01PqGhF93UrpDNvXBLMjJENL
2026-07-03 13:39:59 +01:00
Tudor and Claude Fable 5
d0895c71df
fix(ci): AI review via Claude Code CLI; reuse REGISTRY_TOKEN for PR comments
...
PR Checks / Frontend Typecheck + Tests (pull_request) Successful in 9m39s
PR Checks / Backend Smoke (pull_request) Successful in 5s
PR Checks / Build Backend (no push) (pull_request) Successful in 16s
PR Checks / Build Frontend (no push) (pull_request) Successful in 42s
PR Checks / Build Pipeline (no push) (pull_request) Successful in 9s
PR Checks / AI Code Review (Claude) (pull_request) Failing after 27s
- ai_review.py now pipes the diff through headless Claude Code (claude -p,
--output-format json) authenticated with CLAUDE_CODE_OAUTH_TOKEN from
'claude setup-token' — subscription auth, no Anthropic API billing
- stdlib-only script (urllib instead of requests/anthropic)
- PR comments posted with the existing REGISTRY_TOKEN secret; the separate
GITEA_TOKEN secret is no longer needed
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01PqGhF93UrpDNvXBLMjJENL
2026-07-03 08:28:20 +01:00
Tudor and Claude Fable 5
4a52735356
feat(sdlc): staging environment + automated staging→prod pipeline
...
PR Checks / Frontend Typecheck + Tests (pull_request) Successful in 10m0s
PR Checks / Backend Smoke (pull_request) Successful in 48s
PR Checks / Build Backend (no push) (pull_request) Successful in 17s
PR Checks / Build Frontend (no push) (pull_request) Successful in 41s
PR Checks / Build Pipeline (no push) (pull_request) Successful in 10s
PR Checks / AI Code Review (Claude) (pull_request) Successful in 24s
- pr-checks.yml: PR gate — frontend typecheck+jest, backend import smoke,
image builds (no push), Claude AI review posted as PR comment (severe
findings block merge)
- deploy.yml (replaces build-and-push.yml): merge to main builds+pushes
images tagged sha-<sha>/staging, deploys the staging Portainer stack via
webhook, runs Playwright E2E journeys against staging, then retags the
verified images :prod (previous kept as :prod-previous) and deploys prod
- docker-compose.portainer.staging.yml: second Portainer stack — :staging
images, sc_staging_* names, own macvlan IPs, Airflow on 8081; data
bootstrapped from source via the staging Airflow DAGs
- prod compose now pins :prod instead of :latest (only the promotion step
moves it; :latest is no longer published)
- e2e/: 6 Playwright journeys (search, postcode, detail, compare, rankings)
driven by BASE_URL — the promotion gate
- scripts/ci/ai_review.py: Claude review with structured JSON findings
- docs/DEPLOY.md: full SDLC doc incl. one-time setup checklist and rollback
- replaced removed 'next lint' with tsc typecheck; fixed stale jest tests
(slug URLs, N/A formatting, stable trend, fake-timer setup)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01PqGhF93UrpDNvXBLMjJENL
2026-07-03 06:50:40 +01:00
Tudor and Claude Fable 5
f2b71b67d4
docs(audit): correct postcode finding — full postcodes do trigger proximity search
...
Recheck with 'B91 3DL' via the search box shows the geocoded radius
search works (distances, nearest-first, radius selector, map toggle).
Original P0.3 tested only a partial postcode, which silently falls back
to text search — refiled as P2.0 (silent mode switch on partial input).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-02 15:01:02 +01:00
Tudor and Claude Fable 5
a059fa213e
docs(audit): prioritized UX/UI audit report
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-02 14:41:44 +01:00
Tudor and Claude Fable 5
1bd69e693a
docs(audit): cross-cutting cohesion pass notes
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-02 14:28:09 +01:00
Tudor and Claude Fable 5
c52169d5d8
docs(audit): journey 5 notes — admissions
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-02 14:17:20 +01:00
Tudor and Claude Fable 5
860f79e725
docs(audit): journey 4 notes — rankings
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-02 14:11:37 +01:00
Tudor and Claude Fable 5
3c02a0a478
docs(audit): journey 3 notes — building a comparison
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-02 11:49:39 +01:00
Tudor and Claude Fable 5
fe0a7713df
docs(audit): journey 2 notes — cold landing on school detail
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-02 11:27:44 +01:00
Tudor and Claude Fable 5
2dd1ff76ed
docs(audit): journey 1 notes — home to school search
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-02 11:11:49 +01:00
Tudor and Claude Fable 5
ee5b94099a
chore(audit): axe harness and notes template for UX audit
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-02 10:53:50 +01:00
Tudor and Claude Fable 5
eeb3f2491a
docs: execution plan for site-wide UX/UI audit
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-02 10:14:34 +01:00
Tudor and Claude Fable 5
683daa032e
docs: design spec for site-wide UX/UI audit
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-02 10:01:03 +01:00