Friday score-5 plan
Working reference for Friday 2026-09-04 19:00 Europe/Berlin (updated Saturday 2026-09-05). Not official Quantic dashboard text. Not the restaurant.
Grade of 5 = official SRS only: FR-1..FR-18 and NFR-1..NFR-9. PDF in docs/official/ is source of truth. Do not invent FR-19 / NFR-10.
Friday’s job is tech access plus lock the video and scenarios. It is not a night to implement Future extras.
Live share this session (prefer): https://cafe.artof.link/ — GET 200 (SPA HTML). https://cafe.artof.link/api/health — GET 200 {"ok":true}. Knowledge GET: root 200 (~0.5s); /operator 200 (~0.6s); /api/operator 200 (~0.5s); /api/health 200 {"ok":true} (~0.6s). This agent GET: root 200 (~0.04s); /operator 200 (~0.03s); /api/operator 200 (~0.04s); /api/health 200 {"ok":true} (~0.04s). TLS CN/SAN cafe.artof.link, Let’s Encrypt, notAfter=2026-12-04. HTTP 308 to HTTPS. DNS A <STAGING_IP>. Lightsail staging (us-east-1, #57) — not a permanent hosting claim. Staging stays up until the owner explicitly requests tear-down. Monday 2026-09-08 16:00 Europe/Berlin is evaluate-only (not automatic tear-down). Whether Quantic graders need the host up for video evaluation remains Unknown until the owner shares correspondence. Longer-term hosting stays Future #22. Do not over-claim production forever. Fast this session; still staging. Clips stay the fallback. Interim backup (same host, not the primary paste): https://<STAGING_IP_DASHED>.sslip.io/. Old https://shaky-deer-drive.loca.lt/ is stale (Knowledge GET 503; this agent timed out, curl 28). Old https://happy-glasses-film.loca.lt/ and https://real-goats-shop.loca.lt/ stay stale. Read-only /operator is on the share (PR #58 / #54) — not FR-19.
Drafts that belong with this page: 10-minute video script, slide outline, Saturday talk cuts. Meeting notes stay on the Brief.
Ready vs Unknown (plain language)
| Already true (code / CI / this-session probe) | Still Unknown — do not claim met |
|---|---|
Restaurant MVP on main (PRs #9 + #12): React + JSX, Flask, PostgreSQL | NFR-1 (3s broadband page load) — local Vite home 56 ms is a note, not “met” |
| Every freeze ID mapped on Coverage | NFR-2 (2s form submit) — local GET /api/site 32 ms is not a submit stopwatch |
Knowledge host HTTPS GET 200 (2026-09-05 Europe/Berlin): knowledge.cafe.artof.link | NFR-7 four-browser claim — Chrome / Safari Unknown. Partial only: Edge all routes + Firefox home (Vite-only) |
HTTP knowledge.cafe.artof.link → 301 to HTTPS (this session) | Longer-term cafe.artof.link hosting — Future #22. #57 staging does not close #22. Do not claim production forever |
Journey J1–J8 PASS (cts-ai, DB up) + J9 / NFR-3 / NFR-8 PASS (Vite-only; Edge probe-nfr/ 375×812 home, 768×1024 menu, 1280×800 reservations) — Coverage / #40 / #44 | Reservations / cafe-pg writes on the share — not claimed (no write probe this session). Old https://shaky-deer-drive.loca.lt/, https://happy-glasses-film.loca.lt/, and https://real-goats-shop.loca.lt/ are stale. Vite :5173 from this Knowledge VM Unknown |
Prefer live share https://cafe.artof.link/ GET 200 (SPA HTML) + /operator + /api/health GET 200 {"ok":true} | Lightsail staging (#57) — weekend recording window, not permanent. Knowledge GET: root 200 (~0.5s); /operator 200 (~0.6s); /api/operator 200 (~0.5s); /api/health 200 {"ok":true} (~0.6s). Fast this session; still staging. Interim backup: https://<STAGING_IP_DASHED>.sslip.io/ |
| Silent clips on the brief (look, fallback if staging drops) | Do not claim Flask+Postgres or production-forever hosting from the Vite-only J9 / NFR-7 probe |
Coverage records the Journey / NFR numbers. This page does not claim NFR-1 / NFR-2 met, and does not claim a full NFR-7 four-browser matrix. J9 PASS is Vite-only.
P0 — must for Friday / score-5 story
Plain language: show the assignment, not extras. Prove what is live. Stay honest where we have no probe.
- Freeze only. Talk FR-1..FR-18 / NFR-1..NFR-9. Freeze data (prices, address, hours, owners, awards, reviews) is not “improved.”
- Primary live surface — Knowledge. Open
https://knowledge.cafe.artof.link/(HTTPS). This knowledge map is the public surface. Probe this session (2026-09-05): GET 200. - App live share (prefer).
https://cafe.artof.link/GET 200 (SPA HTML). Healthhttps://cafe.artof.link/api/healthGET 200{"ok":true}. Knowledge GET: root 200 (~0.5s);/operator200 (~0.6s);/api/operator200 (~0.5s);/api/health200{"ok":true}(~0.6s). Lightsail staging (#57) — not permanent. Written on the Brief. Clips stay fallback. Interim backup:https://<STAGING_IP_DASHED>.sslip.io/. Oldhttps://shaky-deer-drive.loca.lt/,https://happy-glasses-film.loca.lt/, andhttps://real-goats-shop.loca.lt/are stale. Do not over-claim production forever. - P0 live-proof path
- Issue #40 / #44 — recorded on Coverage: J1–J8 PASS (cts-ai, DB up); J9 / NFR-3 / NFR-8 PASS (Vite-only Edge screenshots + theme.css); NFR-1 / NFR-2 timings noted, not claimed met; NFR-7 partial (Edge all routes with screenshots + Firefox home; Chrome not installed; Safari Unknown).
- Prefer:
https://cafe.artof.link/GET 200 (SPA +/operator+/api/health). Lightsail staging (#57). Fallback: committed clips. Interim backup:https://<STAGING_IP_DASHED>.sslip.io/. Oldhttps://shaky-deer-drive.loca.lt/,https://happy-glasses-film.loca.lt/, andhttps://real-goats-shop.loca.lt/are stale.
- Prefer:
- Demo data / happy book / full slot (FR-9) only after a this-session write probe. After the App handoff,
cafe-pgwas reported unreachable; do not claim reservations on the share without that probe.
- Issue #40 / #44 — recorded on Coverage: J1–J8 PASS (cts-ai, DB up); J9 / NFR-3 / NFR-8 PASS (Vite-only Edge screenshots + theme.css); NFR-1 / NFR-2 timings noted, not claimed met; NFR-7 partial (Edge all routes with screenshots + Firefox home; Chrome not installed; Safari Unknown).
- Lock video + scenarios. Use the script and scenario menu A–F. Share Knowledge +
https://cafe.artof.link/(GET 200 this session; Lightsail staging #57 — not production forever). Clips stay fallback. Interim backuphttps://<STAGING_IP_DASHED>.sslip.io/. Old tunnels stale. - Honesty line. J1–J8 PASS is local cts-ai UX while the DB was up. J9 / NFR-3 / NFR-8 PASS is Vite-only (Edge
probe-nfr/screenshots + theme.css) — not Flask+Postgres. NFR-7 is partial (Edge + Firefox home; Chrome not installed; Safari Unknown). NFR-1 / NFR-2 stay not-claimed-met. Do not say the SRS broadband budgets are met. Do not claimcafe-pgwrites from the health GET. Do not claim production-forever hosting.
P1 — Friday polish (same grade floor)
Do these only after P0 access works. They do not add requirement IDs.
- Record or rehearse the ~10 minute video against the script (clips already on this site).
- Walk the 8-slide cut with Coverage as the FR/NFR map. Saturday recording: pick one talk cut.
- Live share written on the Brief: prefer
https://cafe.artof.link/GET 200 (SPA +/operator+/api/health; Lightsail staging #57 — not production forever). Interim backuphttps://<STAGING_IP_DASHED>.sslip.io/. Oldhttps://shaky-deer-drive.loca.lt/,https://happy-glasses-film.loca.lt/, andhttps://real-goats-shop.loca.lt/are stale. - Keep one happy reservation and one newsletter write on demo data. Fail closed if PostgreSQL is missing.
P2 — not Friday, not grade gaps
These issues are Future / hardening. Missing them is not a missing grade item. Do not treat them as FR-19+.
| Issue | What it is |
|---|---|
| #22 | Longer-term public restaurant hosting on cafe.artof.link. #57 Lightsail staging does not close this. Do not claim production forever. |
| #34 | Reservation lifecycle (PENDING → ASSIGNED → RELEASED) |
| #35 | Cancel / checkout / admin release APIs |
| #36 | Menu as persistent tables + staff CRUD |
| #37 | Verbatim case-sensitive email as an FS rule |
| #38 | Automatic concurrency retry beyond the unique index |
| #46 / PR #47 | AWS cafe_fausse_db column map — merged; Future reuse notes, not a new FR freeze. Live GET aws-schema-map.html 200 |
| #57 | Lightsail staging kept until owner decision. Monday 2026-09-08 16:00 Europe/Berlin evaluate-only (not auto tear-down). Whether graders need the host for video evaluation remains Unknown until the owner shares correspondence. |
Park them on Future. Grade floor stays the official PDF. Teammate RDS dump vs local schema (readable without cts-ai): AWS `cafe_fausse_db` map / #46. Do not apply that DDL to MVP.
Live vs local vs Future
Three different things. Do not mix the labels.
flowchart TB
subgraph LIVE["Live this session — Café Fausse Knowledge"]
MD["knowledge/*.md"] --> BUILD["GitHub Actions → GitHub Pages"]
BUILD --> KH["https://knowledge.cafe.artof.link"]
KH --> OK["HTTPS GET 200 · HTTP 301 to HTTPS"]
end
subgraph APP["Café Fausse App — prefer cafe.artof.link this session, staging"]
VITE["Vite :5173"] --> FLASK["Flask :5000"]
FLASK --> PG["cafe-pg PostgreSQL"]
SHARE["cafe.artof.link GET 200 · Lightsail cafe-fausse-staging · Caddy · on-box PG"] -.-> BOX["Flask SPA + Postgres on the instance"]
BAK["STAGING_IP_DASHED.sslip.io interim backup"] -.-> BOX
end
subgraph FUT["Future — not grade work"]
HOST["#22 longer-term hosting · not production forever"]
FS["Issues #34–#38"] --> PARK["Future / hardening · not FR-19"]
end- Live Knowledge is this site over HTTPS (primary Friday share).
- App is the in-repo restaurant. Prefer
https://cafe.artof.link/GET 200 (SPA +/operator+/api/health). Lightsailcafe-fausse-staging(#57): Route53 A, Caddy + LE, on-box Postgres (MSAIE staging) — not a shared RDS. Weekend recording window — not production forever. Interim backuphttps://<STAGING_IP_DASHED>.sslip.io/. HLD: Stack. Clips (clips/01-home-menu.mp4,clips/02-happy-book.mp4) are the fallback look. Oldhttps://shaky-deer-drive.loca.lt/,https://happy-glasses-film.loca.lt/, andhttps://real-goats-shop.loca.lt/are stale. - Future #22 is the longer-term hosting story. #57 staging does not close it.
Same picture in words: Honesty. Stack diagrams: Stack.
Friday room checklist
- Knowledge HTTPS tab open. App tab (prefer):
https://cafe.artof.link/(GET 200 this session; Lightsail staging #57). Backup tab:https://<STAGING_IP_DASHED>.sslip.io/. Clips ready as fallback. Not the staleshaky-deer-drive,happy-glasses-film, orreal-goats-shopURLs. - Script + scenario A–F locked. Slides = 8-slide cut unless the room wants the long outline.
- Say J1–J8 PASS (cts-ai, DB up) and J9 / NFR-3 / NFR-8 PASS (Vite-only Edge screenshots + theme.css) from Coverage / #40 / #44. Say NFR-7 is partial (Edge + Firefox home; Chrome not installed; Safari Unknown). Say not-claimed-met for NFR-1 / NFR-2. Share Knowledge +
https://cafe.artof.link/. Clips stay fallback. Do not claimcafe-pgwrites from the health GET. Do not claim production forever. - Say Future #22 / #34–#38 are parked, not missing SRS rows. #57 is weekend staging.
- Author does not merge their own PR. MRC COMMENT is the role-approve signal; then
cursor[bot]may merge after this-run green checks and Bugbot resolve-or-decline.