coulomb-social/workplans/CSOC-WP-0007-safe-transfer-readiness.md
tegwick 57a329949f Audit actual scope and implement safe corpus transfer tooling
Assistant: codex
Assistant-Model: gpt-6.1-sol
Assistant-Session: 01a10e2d-a5ef-7e92-b03d-b1694e915680
2026-10-06 09:54:33 +02:00

3.3 KiB

id type title domain repo status owner topic_slug created updated state_hub_workstream_id
CSOC-WP-0007 workplan Evidence-based scope and safe corpus transfer tooling communication coulomb-social finished codex coulomb-social 2026-10-06 2026-10-06 d52a146e-5f5c-5107-9755-0eb2c9ad50a8

CSOC-WP-0007 — Safe transfer readiness

Prioritize the accepted stage-1 cut rather than inventing marketplace features. Implement local migration prerequisites; deployment, private corpus execution, restore acceptance and founder cutover remain separately tracked work.

T01 — Audit scope against intent

id: CSOC-WP-0007-T01
status: done
priority: high
state_hub_task_id: "0d6eb23c-a451-531a-b66b-e48c46ab64d4"

Update SCOPE from source and dated evidence. File timestamped assessment in history; reconcile stale stage-1 status and identify outstanding contract gates.

T02 — Validate single-space import before writes

id: CSOC-WP-0007-T02
status: done
priority: high
state_hub_task_id: "1e4a25a4-79c6-5a3d-abeb-1498de8f27cf"

Share real and dry-run validation; reject cross-tenant members, ambiguous subject lookup, cross-tenant filesystem slug collisions, symlinks, malformed page names, and overlapping source/destination. Stage content and restore the previous tree if metadata or membership writes fail. No private corpus in git.

T03 — Bulk corpus import with explicit identity mapping

id: CSOC-WP-0007-T03
status: done
priority: high
state_hub_task_id: "9973fbde-30cb-53c3-a899-396f23e97f24"

JSON manifest names local trees and existing tenant+issuer+subject memberships. Validate the whole manifest before writes, require a mapped owner, refuse unresolved identities and duplicate destination slugs. Dry-run is read-only. Per-space atomic imports with explicit restart/replace semantics and counts.

T04 — Verify and hand off production gates

id: CSOC-WP-0007-T04
status: done
priority: high
state_hub_task_id: "0a7c06f9-fe10-5b3b-ab08-2143ae1a875f"

Close CSOC-IN-0002 with independent callback replay/email identity regressions. Regression-test migration rejection, filesystem rollback, multi-space import, identity mapping and dry-run. Run full tests/lint/migration consistency. Document migration use and paired DB/content recovery requirements. Create a successor workplan for live persistence, restore, cohort migration and cutover acceptance before finishing. Commit and sync all implementation and work records.

Completion evidence

  • SCOPE and history/20261005T223104Z-scope-intent-assessment.md reflect source, historical deployment and accepted cut; capability/pickup docs reconciled.
  • Single import and new corpus command implemented with tenant/member preflight, per-space staging/DB rollback and retained recovery tree on restore failure.
  • CSOC-IN-0002 closed by independent identity regressions.
  • Full suite: 72 passed. Changed Python/test files pass Ruff; Django reports no missing migrations. Full Ruff retains 19 pre-existing findings, assigned to CSOC-WP-0008-T07 rather than hidden as passing.
  • Residuals are live successor CSOC-WP-0008 (origin: residual, origin_ref: CSOC-WP-0007), including existing CSOC-IN-0003/0004 acceptance. No private corpus or live deployment was executed by this workplan.