coulomb-social/docs/usecases/registry.json
tegwick 7b4b75089c
Some checks failed
Use-case regression gate / usecase-regressions (push) Has been cancelled
Verify native reset SMTP issuer and app recovery through Chromium
Assistant: codex
Assistant-Model: gpt-6.1-sol
Assistant-Session: 01a18e2d-f513-7742-b8e7-12af0b744ff3
2026-10-31 00:15:24 +01:00

151 lines
7.1 KiB
JSON

{
"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",
"tests/test_oidc_userinfo_binding.py::test_callback_refuses_userinfo_without_matching_signed_subject[userinfo0]",
"tests/test_oidc_userinfo_binding.py::test_callback_requires_verified_id_token_even_with_userinfo[None]",
"tests/test_oidc_userinfo_binding.py::test_matching_userinfo_enriches_profile_without_replacing_signed_authority",
"tests/test_oidc_userinfo_binding.py::test_userinfo_cannot_satisfy_requested_step_up",
"tests/test_oidc_userinfo_binding.py::test_unavailable_userinfo_keeps_verified_token_login"
],
"browser": [
"tests/usecases/test_communication_browser.py::test_isolated_recovery_registration_and_invitation"
]
},
"owner_regression_contract": "docs/usecases/communication-regressions.json",
"manual_review": [
"Loopback issuer/mailbox double is bound; real portal, SMTP and owner admission remain open"
],
"acceptance_ref": "history/20261006T185411Z-personal-workspace-acceptance.md",
"native_browser_tests": [
"scripts/native_recovery/test_journey.py::test_native_reset_directory_smtp_issuer_and_app"
],
"native_browser_gate": "make check-native-recovery"
},
{
"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": [
"tests/usecases/test_communication_browser.py::test_isolated_recovery_registration_and_invitation"
]
},
"owner_regression_contract": "docs/usecases/communication-regressions.json",
"manual_review": [
"Owner-source portal/HTTP adapters/scoped receiver browser gate passes; synthetic session, authorization and directory adapters remain explicit. Productive per-flow verdict remains required."
],
"owner_browser_tests": [
"scripts/owner_communication/test_browser.py::test_real_owner_registration_and_invitation"
],
"owner_browser_command": "make check-owner-communication"
},
{
"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": [
"tests/usecases/test_communication_browser.py::test_isolated_recovery_registration_and_invitation"
]
},
"owner_regression_contract": "docs/usecases/communication-regressions.json",
"manual_review": [
"Owner-source portal/HTTP adapters/scoped receiver browser gate passes; synthetic session, authorization and directory adapters remain explicit. Productive per-flow verdict remains required."
],
"owner_browser_tests": [
"scripts/owner_communication/test_browser.py::test_real_owner_registration_and_invitation"
],
"owner_browser_command": "make check-owner-communication"
},
{
"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"
]
}
]
}