--- id: CSOC-WP-0009 type: workplan title: "Established use-case collection and executable regression gate" domain: communication repo: coulomb-social status: finished owner: codex topic_slug: coulomb-social created: "2026-10-06" updated: "2026-10-06" related: - CSOC-WP-0008 state_hub_workstream_id: "d9ad740d-82a9-5130-b7da-29901542409a" --- # CSOC-WP-0009 — Keep established use cases working Milestone: every established journey has a versioned behavior contract and a repeatable regression check. Starting with ReichelAg weekly protocols, a change that breaks duplication, manual editing, clipboard export or access fails the required local/CI check. Automated success never grants productive-transfer acceptance in place of the user. ## T01 — Establish the collection and coverage contract ```task id: CSOC-WP-0009-T01 status: done priority: high state_hub_task_id: "8aaf65d3-9931-52a1-8b2c-63888316abf8" ``` Machine registry links stable UC IDs to narrative, synthetic scenario fixtures, mandatory fast and browser test node IDs, user-confirmation and transfer status. Validate registry and collected tests; an established case cannot lose coverage silently. Document how candidate → confirmed → regression-protected → user accepted records are maintained without conflating those dimensions. ## T02 — Exercise ReichelAg through the actual browser UI ```task id: CSOC-WP-0009-T02 status: done priority: high state_hub_task_id: "40ef120b-eccf-5350-a905-af45a6e38ab8" ``` Isolated Django test DB and temporary CONTENT_ROOT, synthetic actors and protocols. Playwright drives real login/list/detail/duplicate/edit/save/reopen/copy screens; verify full-copy/source independence, payload formatting, manual fallback, reader edit denial and outsider isolation. Serve the real static script. No production hosts, real notes, issuer, outgoing mail or private credentials. ## T03 — Make the regression gate reproducible ```task id: CSOC-WP-0009-T03 status: done priority: high state_hub_task_id: "d950b4d6-faf4-5e95-8679-35e887dfa01f" ``` One make check command runs full application and use-case/browser checks and writes JUnit reports. Provide fast/browser targets and locked Node dependencies, bootstrap instructions and CI integration. Missing browser/dependencies must fail the required gate; default fast tests may explicitly deselect browser tests. CI activation depends on actual Forgejo runner admission; do not claim a remote run from local tests alone. ## T04 — Verify and sync ```task id: CSOC-WP-0009-T04 status: done priority: high state_hub_task_id: "7aa0b568-c385-551b-b3e4-b43b3ce6e7f3" ``` Run required gate, changed-file lint and coverage validation. Prove a missing mandatory test is rejected. Document receipts, file any CI admission residual as a live record, finish this infrastructure workplan, log, commit and sync. ## Implementation evidence - Registry, fixture and stable fast/browser test mappings established for UC-008. - Actual Django screens/static script exercised by Chromium against isolated synthetic data. Full gate: **88 passed**; changed Python files pass Ruff. - Omitted browser test collection deliberately rejected with pytest exit 4 and a missing registered browser-test error; not silently skipped. - Locked Playwright dependencies, setup targets, JUnit reports and Forgejo main/PR/manual workflow configured. Source archive read checked HTTP 200. - Remote runner receipt, report retention and required merge-check enforcement handed off before completion as **CSOC-IN-0005**, origin residual WP-0009. - Productive transfer/live deployment/private protocol review remain WP-0008; this infrastructure does not grant user acceptance. ## Completion Required gate rerun after final browser permission checks: 88 passed; JUnit reports show zero failures/errors. Reader clipboard copying succeeds while a valid-CSRF reader POST is rejected as read-only. User-case coverage-loss probe returned exit 4 as expected. AGENTS.md now requires make check for established behavior changes. CSOC-IN-0005 is already registered as the remote CI enforcement residual. All local infrastructure tasks complete; no production change made.