diff --git a/docs/intakes/csoc-residuals.md b/docs/intakes/csoc-residuals.md index f200a9e..5514649 100644 --- a/docs/intakes/csoc-residuals.md +++ b/docs/intakes/csoc-residuals.md @@ -71,3 +71,67 @@ notes: | Pulls from CSOC-IN-0001 for live registration path; some checks can run offline. state_hub_intake_id: "019ff532-3ade-7d75-acb7-2bbfa264fcb8" ``` + +--- + +## CSOC-IN-0003 — Multi-space Bubble corpus import + membership map + +```yaml +id: CSOC-IN-0003 +kind: intake +title: "Bulk-import Bubble corpus trees; map members to NetKingdom" +lane: blue +status: open +priority: medium +owner: coulomb-social +repo: coulomb-social +origin: residual +origin_ref: CSOC-WP-0001 +description: | + Single-space rehearsal (reichelag) is done via import_content_tree. + Residuals from finished CSOC-WP-0001: + + 1. Generate ADR-0004 trees for more of the 71-space corpus (optional deeper + crawl for thin spaces — export-progress-2026-08-13). + 2. Bulk import into CONTENT_ROOT with tenant + replace policy. + 3. Map Bubble members_list_user → NetKingdom/Member + SpaceMembership + (no password import; assisted transfer only). + 4. Keep private trees out of git; document additional lossiness. + + Prefer a dedicated workplan if bulk import + identity map spans multiple + sessions; otherwise close this intake when (1)–(3) are evidenced. +notes: | + Pickup: docs/session-pickup.md · rehearsal: docs/migration/rehearsal-reichelag-2026-08-13.md + Code: coulomb_social/apps/spaces/import_tree.py +``` + +--- + +## CSOC-IN-0004 — Deploy stage-1 PageOps to app.coulomb.social + +```yaml +id: CSOC-IN-0004 +kind: intake +title: "Deploy PageOps CONTENT_ROOT + space visual migration to app host" +lane: green +status: open +priority: high +owner: coulomb-social +repo: coulomb-social +origin: residual +origin_ref: CSOC-WP-0006 +description: | + Member UI and content plane land on main; production host still needs: + + 1. Image/release with spaces.0002_space_visual + PageOps views. + 2. CONTENT_ROOT persistent volume (or agreed path) on the workload. + 3. migrate + smoke: New space, page CRUD, copy/transfer on app.coulomb.social. + 4. Extend docs/identity/smoke.md live results. + + Local default CONTENT_ROOT is var/content (gitignored). Cluster must not + rely on empty ephemeral disk without a volume decision. +notes: | + Runbook docs/deploy.md · capability model docs/capability/model-v0.yaml + Pickup: docs/session-pickup.md +``` + diff --git a/docs/session-pickup.md b/docs/session-pickup.md new file mode 100644 index 0000000..c38f433 --- /dev/null +++ b/docs/session-pickup.md @@ -0,0 +1,91 @@ +# Session pickup — coulomb-social + +**Last closed:** 2026-08-13 +**Domain:** communication · **Repo:** coulomb-social +**Hub topic:** `36c7421b-c537-4723-bf75-42a3ebc6a1dc` + +## Where we left off + +All numbered workplans **CSOC-WP-0001…0006** are **finished**. Stage-1 product +path for spaces/pages is in code; one Bubble space was rehearsed onto the thin +content plane. **No active workplan** — next work should open a new WP or pick +up an intake residual. + +| Just landed (git `main`) | Ref | +|--------------------------|-----| +| PageOps CONTENT_ROOT + member CRUD / copy / transfer | CSOC-WP-0006 · `affed64` | +| `import_content_tree` + reichelag rehearsal write-up | CSOC-WP-0001-T04 · `8447943` | +| ADRs 0003/0004, Bubble export tooling (local XDG) | earlier commits | + +## Start next session + +```bash +cd ~/coulomb-social +cat .custodian-brief.md +cat docs/session-pickup.md # this file +ls workplans/ +curl -s "http://127.0.0.1:8000/messages/?to_agent=coulomb-social&unread_only=true" | python3 -m json.tool +make test # expect green +``` + +Local content (gitignored): + +| Path | Role | +|------|------| +| `var/content/` | default CONTENT_ROOT | +| `var/content-rehearsal/` | reichelag import smoke (optional; recreate via import) | +| `~/.config/coulomb-social/auth/` | Bubble session + corpus (secrets/private; **never commit**) | +| `…/exports/corpus-202608131015057/trees/reichelag/` | sample ADR-0004 tree | + +Re-import rehearsal: + +```bash +export CONTENT_ROOT="$PWD/var/content-rehearsal" +uv run python manage.py import_content_tree \ + ~/.config/coulomb-social/auth/exports/corpus-202608131015057/trees/reichelag \ + --tenant tenant:coulomb --member-subject --replace +``` + +## Recommended next picks (choose one) + +1. **Deploy stage-1 to `app.coulomb.social`** + Ship PageOps + migration `0002_space_visual` + `CONTENT_ROOT` volume; smoke + create space/page on the live host. Runbook: `docs/deploy.md`, + `docs/identity/smoke.md` (PageOps section). + +2. **Multi-space bulk import residual** + Walk full local corpus (71 spaces / 109 articles); deepen thin-space crawl if + needed; document lossiness. Command already exists: `import_content_tree`. + +3. **New workplan — authoring / content-plane git** + Thin-git commit/push path; outline explode/implode; live includes (see + `docs/architecture/`, capability model features still `todo`/`partial`). + +4. **Platform-gated residuals (not blocked on this repo alone)** + - `CSOC-IN-0001` — public Create account when NK registration URL lives + - `CSOC-IN-0002` — identity negative matrix after Case B + - Bubble members → NetKingdom membership map (no password import) + +5. **Apex cutover** — still **not** next; needs product parity + registration + + deliberate founder gate (`docs/decisions/2026-08-12-feature-cut-stage-1.md`). + +## Do not re-do + +- Re-inventory Bubble public meta (empty types) — use session export path +- Re-open stage-1 must-set without founder decision +- Commit Bubble corpus trees or `~/.config/coulomb-social/auth/**` + +## Key docs + +| Doc | Why | +|-----|-----| +| `docs/capability/model-v0.yaml` | Stage-1 feature statuses | +| `docs/migration/rehearsal-reichelag-2026-08-13.md` | Lossiness table | +| `docs/adr/ADR-0003-*.md` / `ADR-0004-*.md` | Page SoR + thin git | +| `docs/intakes/csoc-residuals.md` | Open intakes | + +## Pleasure note + +Long chain through assessment → ADRs → export → PageOps → import rehearsal. +Rebuild on `app.coulomb.social` can grow from an empty store; Bubble stays +reference + export source until a future parity gate.