# Ralph Loop Progress Log # Each iteration appends its findings and decisions here. # Previous refinement phase (29 iterations) archived to progress-refinement-phase-1.txt. # Starting phase 2: addressing review findings from review-findings.md. ## Iteration 1 (Phase 2) **Task:** Overseer action item #1 — Add setup-task dependencies to all user stories that require project infrastructure. **Changes made to userstories.md:** - US-1: Dependencies: None → T-1, T-2 (backend API + DB) - US-2: US-1 → US-1, T-1, T-2 (backend API) - US-3: US-2 → US-2, T-1, T-2 (backend API + DB) - US-4: US-1 → US-1, T-1, T-2 (backend API) - US-5: US-1 → US-1, T-1, T-2 (backend API) - US-6: US-2 → US-2, T-1 (frontend only, localStorage-based) - US-7: None → None, added note that T-1 frontend scaffold is needed to be practically implementable (purely client-side) - US-8: US-2 → US-2, T-1, T-2 (server-side .ics generation) - US-9: US-2, US-5 → US-2, US-5, T-1, T-2 (server-side field tracking) - US-10: US-1, US-2 → US-1, US-2, T-1, T-2 (backend API) - US-11: US-2 → US-2, T-1, T-2 (server-side QR generation) - US-12: US-1 → US-1, T-1, T-2 (server-side scheduled job) - US-13: US-1 → US-1, T-1, T-2 (server-side config) - US-14: None → T-1 (frontend infrastructure: manifest + service worker) - US-15: US-1, US-2 → US-1, US-2, T-1, T-2 (server-side theme persistence) - US-16: US-1, US-2 → US-1, US-2, T-1, T-2 (server-side proxy + image storage) - US-17: None → None, added note that T-1 frontend scaffold is needed to be practically implementable (purely client-side CSS toggle) - US-18: US-1 → US-1, T-1, T-2 (server-side cancellation state) - US-19: US-1 → US-1, T-1, T-2 (server-side deletion) ## Iteration 2 (Phase 2) **Task:** Overseer action item #2 — Create T-4: Development infrastructure setup. **Changes made:** - Created T-4 in `setup-tasks.md` with 6 ACs covering: DB migration framework (Flyway/Liquibase), SPA router for Svelte, API client layer, backend test infrastructure (JUnit 5 + Testcontainers), frontend test infrastructure (Vitest), and runnable test commands. T-4 depends on T-1 and T-2. - Updated all user story dependencies from T-1/T-2 to T-4 (since T-4 transitively includes both): - US-1: T-1, T-2 → T-4 - US-2: US-1, T-1, T-2 → US-1, T-4 - US-3: US-2, T-1, T-2 → US-2, T-4 - US-4: US-1, T-1, T-2 → US-1, T-4 - US-5: US-1, T-1, T-2 → US-1, T-4 - US-6: US-2, T-1 → US-2, T-4 - US-8: US-2, T-1, T-2 → US-2, T-4 - US-9: US-2, US-5, T-1, T-2 → US-2, US-5, T-4 - US-10: US-1, US-2, T-1, T-2 → US-1, US-2, T-4 - US-11: US-2, T-1, T-2 → US-2, T-4 - US-12: US-1, T-1, T-2 → US-1, T-4 - US-13: US-1, T-1, T-2 → US-1, T-4 - US-14: T-1 → T-4 - US-15: US-1, US-2, T-1, T-2 → US-1, US-2, T-4 - US-16: US-1, US-2, T-1, T-2 → US-1, US-2, T-4 - US-18: US-1, T-1, T-2 → US-1, T-4 - US-19: US-1, T-1, T-2 → US-1, T-4 - US-7 and US-17 remain at Dependencies: None; updated their notes to reference T-4 instead of T-1. - T-3 left unchanged (setup task, not a user story; its T-1/T-2 dependencies are direct, not via T-4). ## Iteration 3 (Phase 2) **Task:** Overseer action item #3 — Mark forward-references in acceptance criteria as deferred. **Changes made to userstories.md:** - US-2 AC 5: Added `[deferred until US-18 is implemented]` to the cancelled-state criterion - US-2 AC 6: Added `[deferred until US-12 is implemented]` and `[deferred until US-19 is implemented]` to the event-not-found criterion (also added the US-19 deletion scenario which was missing from the parenthetical examples) - US-3 AC 11: Added `[deferred until US-18 is implemented]` to the cancelled-event RSVP block criterion - US-8 AC 9: Added `[deferred until US-18 is implemented]` to the STATUS:CANCELLED calendar criterion - US-12 AC 2: Added `[deferred until US-16 is implemented]` to the stored header images reference in the cleanup criterion All ACs remain in place as documentation of complete behavior — only marked so implementors know they are not part of the initial story scope. ## Iteration 4 (Phase 2) **Task:** Overseer action item #4 — Split US-10 (Update Messages) into two stories. **Changes made:** - Split US-10 into US-10a and US-10b in `userstories.md`: - US-10a (Post update messages as organizer): server-side feature — posting, displaying, and deleting update messages. 6 ACs. Dependencies: US-1, US-2, T-4. - US-10b (New-update indicator for guests): client-side read-state tracking — badge/indicator for unread updates via localStorage. 5 ACs. Dependencies: US-10a. - Updated cross-references in US-12 AC 2 and US-19 AC 3: "(US-10)" → "(US-10a)" - Updated `personas.md`: - Event Organizer: US-10 → US-10a in capabilities and Appears in - Guest: Split "See organizer update messages (US-10)" into US-10a (as reader) and US-10b; updated Appears in - Updated status counter: 19 → 20 total stories (and remaining) ## Iteration 5 (Phase 2) **Task:** Overseer action item #5 — Add practical-dependency notes to US-7 and US-14. **Changes made to userstories.md:** - US-7: Extended the existing practical-implementability note to also explain that the story is only meaningfully testable after US-1, US-3, or US-6 populate localStorage with event data (without those, only the empty state can be tested). - US-14: Added a note clarifying that while the story depends only on T-4 structurally, the service worker and manifest are only meaningfully testable after other stories (e.g. US-2, US-7) provide actual pages and assets to cache. ## Iteration 6 (Phase 2) **Task:** Overseer action item #6 — Create implementation phase plan document. **Changes made:** - Created `implementation-phases.md` with 6 phases (Phase 0–5) grouping all setup tasks and user stories by dependency order: - Phase 0: Project Infrastructure (T-1 → T-2 → T-4, T-3 parallel) - Phase 1: Core Event Flow vertical slice (US-1 → US-2 → US-3, strictly sequential) - Phase 2: Organizer Management & Event Lifecycle (US-4, US-5, US-12, US-13, US-18, US-19 — parallelizable, all depend on US-1) - Phase 3: Enhanced Event Page Features (US-6, US-8, US-9, US-10a, US-10b, US-11 — mostly parallelizable, depend on US-2) - Phase 4: Visual Customization (US-15, US-16 — depend on US-1 + US-2) - Phase 5: App Shell & PWA (US-7, US-14, US-17 — minimal structural deps, practically need earlier phases) - Included: recommended order within each phase, parallelizability notes, deferred AC tracking table, and ASCII dependency graph - Noted that US-17 can be pulled earlier (Phase 2/3 timeframe) to facilitate US-15's dark/light mode interaction - Noted T-3 is blocked on Q-5 resolution - All 6 overseer action items are now addressed. ## Iteration 7 (Phase 2) **Task:** Process answer to Q-5 (CI/CD platform choice). **Answer received:** (a) Gitea — project optimized for Gitea, only Gitea infrastructure used. **Changes made:** - Moved Q-5 from Open to Resolved in `questions.md` with the answer included. - Updated T-3 in `setup-tasks.md`: removed ⚠️ ASSUMPTION warning, specified Gitea Actions (`.gitea/workflows/`), Gitea container registry, and updated ACs and notes to reflect the concrete platform choice. - Removed processed answer from `answers.md`. ## Iteration 8 (Phase 2) **Task:** Review US-10a (Post update messages as organizer) — created in Phase 2 iteration 4 but never individually reviewed. **Changes made to userstories.md:** - Added two missing acceptance criteria for organizer token authentication and server-side enforcement: - "If the organizer token is absent or invalid, the compose and delete UI is not shown and the server rejects any attempt to post or delete update messages" - "No account or additional authentication step is required beyond the organizer token" - This aligns US-10a with the auth pattern established by all other organizer stories (US-4 ACs 2/6/7, US-5 ACs 3/7/8, US-18 ACs 9/10/12, US-19 ACs 6/7/9). Without these ACs, an implementor might not enforce server-side auth on the update message endpoints. - All other aspects verified: Dependencies correct (US-1 for organizer token + event, US-2 for public display, T-4 for infrastructure). Token terminology consistent. All ACs (now 8) concrete and testable. Cancelled-event behavior documented in Notes (posting not blocked, only expiry blocks). No overlap with US-10b (client-side read tracking), US-9 (field change highlighting). Aligned with Ideen.md and personas. Scope appropriate (single cohesive capability). - Remaining unreviewed Phase 2 creations: US-10b, T-4. ## Iteration 9 (Phase 2) **Task:** Review US-10b (New-update indicator for guests) — created in Phase 2 iteration 4 but never individually reviewed. **Result:** Reviewed, no changes needed. - Dependencies correct: US-10a is the sole dependency. US-10a transitively provides US-1, US-2, and T-4. Unlike US-7/US-17 (which have zero story deps and need practical-dependency notes), US-10b has a direct story dependency covering all transitive needs. - Consistency verified: Token terminology correct ("event token" for localStorage keying). `updates_last_seen_at` key explicitly distinct from US-9's `last_seen_at`. Cross-references to US-10a and US-9 accurate. - Completeness verified: Edge cases (organizer deletes newest update, expired event, no updates, first visit) all handled correctly by existing ACs or produce correct behavior without additional criteria. - Scope appropriate: Small, focused, single cohesive capability (client-side read-state tracking). - All 5 ACs concrete and testable. - Aligned with Ideen.md ("pro Device wird via LocalStorage gemerkt"), CLAUDE.md statutes, and personas.md. - No overlap with US-9 (field change highlighting vs. free-form announcement awareness). - Remaining unreviewed Phase 2 creations: T-4. ## Iteration 10 (Phase 2) **Task:** Review T-4 (Development infrastructure setup) — created in Phase 2 iteration 2 but never individually reviewed. **Result:** Reviewed, no changes needed. - Dependencies correct: T-1 (project scaffolds) and T-2 (DB connection config/Dockerfile) are both needed. T-1 provides the empty projects to build upon; T-2 establishes the PostgreSQL datasource configuration that the migration framework wires into. - Consistency verified: Cross-references accurate — notes correctly state all user stories depend on T-4 transitively. Tech stack references (Flyway/Liquibase, JUnit 5, Testcontainers, Vitest) match Ideen.md decisions. - Completeness verified: All 6 ACs match the overseer's original action item #2 specification exactly (migration framework, SPA router, API client, backend test infra, frontend test infra, runnable commands). No missing concerns for the "empty scaffold → TDD-ready" gap. - Scope appropriate: Single cohesive setup task — all items are development foundation work that logically belongs together. - All 6 ACs concrete and testable (specific tools, commands, and observable outcomes). - Aligned with CLAUDE.md's TDD mandate and Ideen.md's decided tech stack. - No overlap with T-1 (scaffolds), T-2 (deployment), or T-3 (CI/CD). - All Phase 2 creations (US-10a, US-10b, T-4) are now reviewed. ## Iteration 11 (Phase 2) **Task:** Cross-cutting review — verify consistency after Phase 2 changes. **Checks performed:** 1. Status counter: 20 total, 0 complete, 20 remaining — matches actual story count. ✓ 2. Persona consistency: US-10a/US-10b split correctly reflected in Event Organizer and Guest personas (capabilities and Appears in). ✓ 3. Deferred AC references: All 6 deferred markers use consistent format `[deferred until US-X is implemented]`, AC numbers match current story text, referenced stories are correct. ✓ 4. Dependency graph in implementation-phases.md: All 20 stories + 4 tasks verified against ASCII graph — all edges and transitive relationships accurate. ✓ 5. localStorage key consistency: All keys (event data, organizer token, RSVP data, bookmarks, `last_seen_at`, `updates_last_seen_at`, dark/light preference) are distinct and consistently referenced across stories. ✓ 6. Token terminology: "event token" and "organizer token" used consistently across all 20 stories. ✓ **Finding:** implementation-phases.md had stale Q-5 references — Phase 0 intro said "T-3 may run in parallel with Phase 1 once Q-5 is resolved" and table said "Blocked on Q-5." Q-5 was resolved in iteration 7 (Gitea). Updated both references to reflect resolved state. **No other cross-story inconsistencies found.** All Phase 2 changes (dependency additions, T-4 creation, US-10 split, deferred AC markers, practical-dependency notes) are internally consistent. - Cross-cutting checks completed for Phase 2: consistency verified ✓. Remaining cross-cutting checks from Phase 1 (Ideen.md coverage, persona consistency, status counter) were re-verified as part of this check — all still valid after Phase 2 changes.