{ "schema_version": 1, "cases": [ { "id": "CSOC-UC-008", "title": "ReichelAg weekly founder-call protocols", "established": true, "confirmation": "user-confirmed", "transfer_status": "accepted", "narrative": "docs/usecases/reichelag-weekly-call.md", "fixture": "tests/usecases/fixtures/reichelag-weekly-call.json", "contract": [ "Duplicate the complete previous protocol without changing the original", "Generate the duplicate filename from its new title unless explicitly chosen; allow later title/file rename without loss or overwrite", "Edit and save the next agenda/protocol by hand and reopen it", "Copy the complete title, italic subtitle, original Markdown and legacy footer, with rich HTML for external email", "Fall back to selected manual text when clipboard writes are denied", "Readers may read and copy but not modify; outsiders cannot read", "The app does not send the email or need Bubble for these steps" ], "tests": { "fast": [ "tests/test_reichelag_workflow.py::test_full_protocol_duplicate_edit_and_clipboard_control", "tests/test_reichelag_workflow.py::test_protocol_naming_rename_and_collision_safety", "tests/test_private_assets.py::test_owner_and_reader_get_exact_private_image", "tests/test_private_assets.py::test_outsider_foreign_tenant_revoked_archived_and_anonymous_denied", "tests/test_private_assets.py::test_display_uses_private_images_without_clipboard_changes" ], "browser": [ "tests/usecases/test_reichelag_browser.py::test_weekly_call_through_real_ui" ] }, "manual_review": [ "Reconcile the latest actual ReichelAg protocol and its links/assets", "Paste into the user's usual mail client and review presentation", "Confirm live persistence and measured paired restore before transfer" ], "acceptance_ref": "history/20261008T084657Z-weekly-call-acceptance.md" }, { "id": "CSOC-UC-009", "title": "Personal account recovery", "established": false, "confirmation": "user-confirmed", "transfer_status": "accepted", "narrative": "docs/usecases/platform-communication.md", "fixture": "tests/usecases/fixtures/platform-communication-009.json", "contract": [ "Request a new password reset, receive it privately and sign in to the workspace", "Identity credentials and reset handles remain outside the application" ], "tests": { "fast": [ "tests/test_identity_regressions.py::test_consumed_callback_state_cannot_be_replayed", "tests/test_identity_regressions.py::test_same_email_different_identity_cannot_take_over_member" ], "browser": [] }, "owner_regression_contract": "docs/usecases/communication-regressions.json", "manual_review": [ "Isolated owner-spanning browser coverage and admission remain required" ], "acceptance_ref": "history/20261006T185411Z-personal-workspace-acceptance.md" }, { "id": "CSOC-UC-010", "title": "Registration verification", "established": false, "confirmation": "inferred", "transfer_status": "pending-user-review", "narrative": "docs/usecases/platform-communication.md", "fixture": "tests/usecases/fixtures/platform-communication-010.json", "contract": [ "Single-use tenant/client-bound verification is retry-safe and conveys no authorization" ], "tests": { "fast": [ "tests/test_shell.py::test_registration_link_uses_only_configured_destination" ], "browser": [] }, "owner_regression_contract": "docs/usecases/communication-regressions.json", "manual_review": [ "Isolated owner-spanning browser coverage and admission remain required" ] }, { "id": "CSOC-UC-011", "title": "Member invitation", "established": false, "confirmation": "inferred", "transfer_status": "pending-user-review", "narrative": "docs/usecases/platform-communication.md", "fixture": "tests/usecases/fixtures/platform-communication-011.json", "contract": [ "Fixed invitation template, one provider submission per event, suppression and safe retries" ], "tests": { "fast": [], "browser": [] }, "owner_regression_contract": "docs/usecases/communication-regressions.json", "manual_review": [ "Isolated owner-spanning browser coverage and admission remain required" ] }, { "id": "CSOC-UC-012", "title": "Application notification and reply", "established": false, "confirmation": "inferred", "transfer_status": "deferred", "narrative": "docs/usecases/platform-communication.md", "fixture": "tests/usecases/fixtures/platform-communication-012.json", "contract": [ "Each application notification needs an admitted caller, template, recipient purpose and monitored reply route" ], "tests": { "fast": [], "browser": [] }, "owner_regression_contract": "docs/usecases/communication-regressions.json", "manual_review": [ "Isolated owner-spanning browser coverage and admission remain required" ] } ] }