# Ralph Loop Progress Log # Each iteration appends its findings and decisions here. ## Iteration 1 — Task A0 Migrated `Ideen.md` -> `.specify/memory/ideen.md`. Copied content as-is (German brainstorming/founding document). No modifications. ## Iteration 2 — Task A1 Migrated `spec/personas.md` -> `.specify/memory/personas.md`. Copied content as-is. No modifications. ## Iteration 3 — Task A2 Migrated `spec/design-system.md` -> `.specify/memory/design-system.md`. Copied content as-is. No modifications. ## Iteration 4 — Task A3 Migrated `spec/implementation-phases.md` -> `.specify/memory/implementation-phases.md`. Copied content as-is. No modifications. ## Iteration 5 — Task B1 Migrated `docs/agents/research/2026-03-04-backpressure-agentic-coding.md` -> `.specify/memory/research/backpressure-agentic-coding.md`. Copied content as-is. No modifications. ## Chief Wiggum — Bulk copy (B2-B7, C1-C2, D2-D3, D5-D6, D8-D9, D11-D12, E2-E5) All remaining copy-as-is tasks completed manually. Files copied: - B2-B7: 6 cross-cutting research docs -> `.specify/memory/research/` - C1-C2: 2 cross-cutting plan docs -> `.specify/memory/plans/` - D2,D3: T-1 research+plan -> `specs/t-01-monorepo-setup/` - D5,D6: T-2 research+plan -> `specs/t-02-docker-deployment/` - D8,D9: T-3 research+plan -> `specs/t-03-cicd-pipeline/` - D11,D12: T-4 research+plan -> `specs/t-04-dev-infrastructure/` - E2: US-1 research -> `specs/us-01-create-event/research.md` - E3: US-1 plan -> `specs/us-01-create-event/plan.md` - E4: US-1 review fixes plan -> `specs/us-01-create-event/plan-review-fixes.md` - E5: US-1 post-review fixes plan -> `specs/us-01-create-event/plan-post-review-fixes.md` All target directories created. NEXT TASK: D4, D7, D10, D13 (remaining setup task spec extractions) Then: E1, E6-E24 (user story spec extractions) Then: Priority 4 (CLAUDE.md update) Then: Priority 5 (cleanup) ## Iteration 6 — Task D1 Extracted T-1 from `spec/setup-tasks.md` -> `specs/t-01-monorepo-setup/spec.md`. All 6 acceptance criteria checked (Implemented). Reformatted to spec-kit template with acceptance scenarios, functional requirements, and success criteria. ## Iteration 7 — Task D4 Extracted T-2 from `spec/setup-tasks.md` -> `specs/t-02-docker-deployment/spec.md`. All 5 acceptance criteria checked (Implemented). Included scope note from the 2026-03-04 addendum (database config deferred to T-4). Reformatted to spec-kit template. ## Iteration 8 — Task D7 Extracted T-3 from `spec/setup-tasks.md` -> `specs/t-03-cicd-pipeline/spec.md`. All 6 acceptance criteria checked (Implemented). Included Q-5 resolution note about Gitea Actions. Reformatted to spec-kit template. ## Iteration 9 — Task D10 Extracted T-4 from `spec/setup-tasks.md` -> `specs/t-04-dev-infrastructure/spec.md`. All 9 acceptance criteria checked (Implemented). Included addendum about absorption of T-2 scope. Reformatted to spec-kit template with 5 setup task stories covering: database connectivity, env var config, backend test infra, frontend test infra, SPA router. ## Iteration 10 — Task D13 Extracted T-5 from `spec/setup-tasks.md` -> `specs/t-05-jpa-database/spec.md`. All 8 acceptance criteria checked (Implemented). T-5 covers API-first tooling setup (OpenAPI code generation for backend + frontend, minimal spec, API client). No research or plan docs exist for this task. Added note about directory name vs. task content mismatch. ## Iteration 11 — Task E1 Extracted US-1 from `spec/userstories.md` -> `specs/us-01-create-event/spec.md`. Status: Approved (in progress). All 8 acceptance criteria unchecked. Reformatted to spec-kit template with 3 user stories (create with required fields P1, optional fields P2, expiry validation P2), acceptance scenarios, 12 functional requirements, key entities, and 5 success criteria. ## Iteration 12 — Task E6 Extracted US-2 from `spec/userstories.md` -> `specs/us-02-view-event/spec.md`. Status: Draft. All 8 acceptance criteria unchecked. Reformatted to spec-kit template with 4 user stories (view event details P1, expired event P2, cancelled event P2 deferred, event not found P2), acceptance scenarios, 8 functional requirements, key entities, and 5 success criteria. ## Iteration 13 — Task E7 Extracted US-3 from `spec/userstories.md` -> `specs/us-03-rsvp/spec.md`. Status: Draft. All 11 acceptance criteria unchecked. Reformatted to spec-kit template with 3 user stories (submit RSVP P1, re-RSVP from same device P2, RSVP blocked on expired/cancelled events P2), 12 functional requirements, 1 key entity, and 5 success criteria. Noted deduplication mechanism as NEEDS EXPANSION (implementation detail). ## Iteration 14 — Task E8 Extracted US-4 from `spec/userstories.md` -> `specs/us-04-guest-list/spec.md`. Status: Draft. All 7 acceptance criteria unchecked. Reformatted to spec-kit template with 1 user story (view and manage RSVPs P1), 6 acceptance scenarios, 8 functional requirements, 2 key entities, and 5 success criteria. ## Iteration 15 — Task E9 Extracted US-5 from `spec/userstories.md` -> `specs/us-05-edit-event/spec.md`. Status: Draft. All 8 acceptance criteria unchecked. Reformatted to spec-kit template with 3 user stories (edit event details P1, expiry date future-date validation P2, organizer token authentication P2), 4 edge cases, 8 functional requirements, 2 key entities, and 5 success criteria. Noted that visual highlighting of changes is deferred to US-9. ## Iteration 16 — Task E10 Extracted US-6 from `spec/userstories.md` -> `specs/us-06-bookmark-event/spec.md`. Status: Draft. All 7 acceptance criteria unchecked. Reformatted to spec-kit template with 3 user stories (bookmark without RSVP P1, bookmark independent of RSVP state P2, bookmark on expired events P2), 3 edge cases, 8 functional requirements, 1 key entity, and 5 success criteria. NOTE: Migration task list labeled this directory "us-06-calendar-export" but US-6 in userstories.md is "Bookmark an event". Calendar export is US-8. Directory was created as "us-06-bookmark-event" to reflect actual content. The instruction label appears to be an error from an earlier version of the story numbering. ## Iteration 17 — Task E11 Extracted US-7 from `spec/userstories.md` -> `specs/us-07-local-event-overview/spec.md`. Status: Draft. All 11 acceptance criteria unchecked. Reformatted to spec-kit template with 4 user stories (view tracked events P1, distinguish past events P2, remove entry P2, handle deleted event P2), 11 functional requirements, 1 key entity (LocalEventEntry), and 5 success criteria. Noted edge cases for localStorage unavailability, duplicate entries, stale cached data, and large list handling. ## Iteration 18 — Task E12 Extracted US-8 from `spec/userstories.md` -> `specs/us-08-calendar-export/spec.md`. Status: Draft. All 9 acceptance criteria unchecked. Reformatted to spec-kit template with 3 user stories (.ics download P1, webcal:// subscription P2, cancelled event STATUS:CANCELLED P3 deferred until US-18), 3 edge cases, 9 functional requirements, 1 key entity (CalendarFeed — virtual, no independent storage), and 5 success criteria. NOTE: Migration task list labeled this directory "us-08-comments" but US-8 in userstories.md is "Add event to calendar". Directory created as "us-08-calendar-export" to reflect actual content. The label mismatch is consistent with the earlier E10/E16 issue (story numbering shifted). ## Iteration 20 — Task E14 Extracted US-10a from `spec/userstories.md` -> `specs/us-10a-organizer-updates/spec.md`. Status: Draft. All 8 acceptance criteria unchecked. Reformatted to spec-kit template with 2 user stories (post and manage update messages P1, block posting after expiry P2), 4 edge cases, 9 functional requirements, 1 key entity (UpdateMessage), and 5 success criteria. Noted that cancellation does not block posting (only expiry does), which is intentional per story notes. ## Iteration 19 — Task E13 Extracted US-9 from `spec/userstories.md` -> `specs/us-09-highlight-changes/spec.md`. Status: Draft. All 8 acceptance criteria unchecked. Reformatted to spec-kit template with 4 user stories (guest sees highlight for changed fields P1, no highlight on first visit P2, highlight clears after viewing P2, only most recent edit tracked P3), 3 edge cases, 10 functional requirements, 2 key entities (EditMetadata server-side, last_seen_at client-side localStorage), and 5 success criteria. NOTE: Migration task list specified directory "us-09-reminders" but US-9 in userstories.md is "Highlight changed event details". Directory created as "us-09-highlight-changes" to match actual content. Consistent with corrections in iterations 16 and 18. ## Iteration 22 — Task E16 Extracted US-11 from `spec/userstories.md` -> `specs/us-11-qr-code/spec.md`. Status: Draft. All 7 acceptance criteria unchecked. Reformatted to spec-kit template with 1 user story (display and download QR code P1), 7 acceptance scenarios, 8 functional requirements, 1 key entity (QRCode — virtual, generated on demand, not persisted), and 5 success criteria. Confirmed server-side generation requirement (no external QR service) is the key constraint, consistent with privacy statutes. ## Iteration 21 — Task E15 Extracted US-10b from `spec/userstories.md` -> `specs/us-10b-guest-notifications/spec.md`. Status: Draft. All 5 acceptance criteria unchecked. Reformatted to spec-kit template with 3 user stories (unread update indicator P1, first visit no indicator P2, no server read-tracking P1), 3 edge cases, 7 functional requirements, 1 key entity (UpdateReadState — client-side only, localStorage), and 5 success criteria. Noted that `updates_last_seen_at` key is distinct from the `last_seen_at` key used in US-9. ## Iteration 24 — Task E18 Extracted US-13 from `spec/userstories.md` -> `specs/us-13-instance-limit/spec.md`. Status: Draft. All 8 acceptance criteria unchecked. Reformatted to spec-kit template with 3 user stories (enforce cap on creation P1, no limit when unset P2, server-side enforcement only P2), 4 edge cases (MAX_ACTIVE_EVENTS=0, non-integer value, race condition, expired events excluded), 8 functional requirements, 1 key entity (active event count), and 5 success criteria. NOTE: Migration task list labeled this directory "us-13-plus-one" but US-13 in userstories.md is "Limit the number of active events per instance". Directory created as "us-13-instance-limit" to match actual content. Consistent with corrections in iterations 16, 18, 19, and 23. ## Iteration 25 — Task E19 Extracted US-14 from `spec/userstories.md` -> `specs/us-14-pwa/spec.md`. Status: Draft. All 7 acceptance criteria unchecked. Reformatted to spec-kit template with 2 user stories (install app on device P1, serve valid manifest P1), 3 edge cases, 9 functional requirements, 2 key entities (Web App Manifest, Service Worker — both purely frontend), and 5 success criteria. NOTE: Migration task list labeled this directory "us-14-waitlist" but US-14 in userstories.md is "Install as Progressive Web App". Directory created as "us-14-pwa" to match actual content. Consistent with corrections in iterations 16, 18, 19, 23, and 24. ## Iteration 26 — Task E20 Extracted US-15 from `spec/userstories.md` -> `specs/us-15-color-themes/spec.md`. Status: Draft. All 7 acceptance criteria unchecked. Reformatted to spec-kit template with 2 user stories (select theme during creation P1, update theme during editing P2), 3 edge cases (removed theme fallback, dark/light mode interaction, legacy events), 8 functional requirements, 1 key entity (ColorTheme — value type on Event), and 5 success criteria. ## Iteration 27 — Task E21 Extracted US-16 from `spec/userstories.md` -> `specs/us-16-header-image/spec.md`. Status: Draft. All 11 acceptance criteria unchecked. Reformatted to spec-kit template with 4 user stories (select/search image P1, event page renders image P1, graceful degradation without API key P2, image deleted with event P2), 4 edge cases, 10 functional requirements, 1 key entity (HeaderImage — stored on disk, deleted with event), and 5 success criteria. Noted server-proxy requirement as the key privacy constraint (guests never contact Unsplash directly). ## Iteration 23 — Task E17 Extracted US-12 from `spec/userstories.md` -> `specs/us-12-data-deletion/spec.md`. Status: Draft. All 7 acceptance criteria unchecked. Reformatted to spec-kit template with 3 user stories (automatic cleanup P1, expiry date extension delays deletion P2, no early deletion P2), 4 edge cases, 8 functional requirements, 2 key entities (Event expiry_date, Cleanup Job), and 5 success criteria. NOTE: Migration task list labeled this directory "us-12-recurring-events" but US-12 in userstories.md is "Automatic data deletion after expiry date". Directory created as "us-12-data-deletion" to match actual content. Consistent with corrections in iterations 16, 18, and 19. ## Iteration 28 — Task E22 Extracted US-17 from `spec/userstories.md` -> `specs/us-17-dark-mode/spec.md`. Status: Draft. All 8 acceptance criteria unchecked. Reformatted to spec-kit template with 5 user stories (system preference on first visit P1, manual toggle with localStorage persistence P1, toggle accessible from any page P2, dark/light mode does not affect event-level themes P2, WCAG AA contrast for both modes P1), 3 edge cases, 8 functional requirements, 1 key entity (DarkLightPreference — client-side only, localStorage), and 5 success criteria. ## Iteration 29 — Task E23 Extracted US-18 from `spec/userstories.md` -> `specs/us-18-cancel-event/spec.md`. Status: Draft. All 12 acceptance criteria unchecked. Reformatted to spec-kit template with 3 user stories (cancel with optional message P1, adjust expiry date during cancellation P2, edit cancellation message after cancellation P3), 5 edge cases (includes one NEEDS EXPANSION for cancellation on already-expired events), 11 functional requirements, 1 key entity (CancellationState — value type on Event, not a separate entity), and 5 success criteria. ## Iteration 30 — Task E24 Extracted US-19 from `spec/userstories.md` -> `specs/us-19-delete-event/spec.md`. Status: Draft. All 10 acceptance criteria unchecked. Reformatted to spec-kit template with 3 user stories (immediately delete an active event P1, delete a cancelled or expired event P2, reject deletion without valid organizer token P2), 4 edge cases, 9 functional requirements, 2 key entities (Event, OrganizerToken), and 5 success criteria. NOTE: spec/userstories.md also contains US-20 (404 page) which is not listed in the migration task list. This story was added post-US-1 review and is not included in E1-E24. No action taken on US-20 — it is out of scope for the task list as defined. NEXT TASK: Priority 4 — Update CLAUDE.md references (all E tasks now complete). ## Iteration 31 — Priority 4: Update CLAUDE.md references Updated 4 path references in `CLAUDE.md`: 1. Methodology section: `spec/setup-tasks.md` or `spec/userstories.md` -> `specs/[feature]/spec.md` 2. Design section: `spec/design-system.md` -> `.specify/memory/design-system.md` 3. Agent Documentation section: replaced `docs/agents/research/` and `docs/agents/plan/` with new structure (`specs/[feature]/` for feature-specific, `.specify/memory/research/` and `.specify/memory/plans/` for cross-cutting) 4. Ralph Loops section: `spec/` -> `specs/` and `.specify/memory/` (cross-cutting docs) NEXT TASK: Priority 5 — Cleanup (delete migrated source files and empty old directories). ## Iteration 32 — Priority 5: Cleanup (blocked by sandbox) Attempted to delete migrated source files. All `rm` commands were blocked by the sandbox permission mode (even though files are within the allowed working directory). All migration content is complete. The following files/directories still need to be manually deleted by the user: ```bash rm /home/nitrix/Development/fete/Ideen.md rm -rf /home/nitrix/Development/fete/spec/ rm -rf /home/nitrix/Development/fete/docs/agents/ rmdir /home/nitrix/Development/fete/docs/ 2>/dev/null || true ``` `docs/` only contains `docs/agents/` so it will be empty after removal and can be deleted. All migration tasks (A0-A3, B1-B7, C1-C2, D1-D13, E1-E24) are COMPLETE. CLAUDE.md references have been updated (Priority 4). Only the cleanup of source files remains, requiring manual execution.