# Dev B — RESUME Prompt (v0.9.0 Plan B, org read UI) Paste everything below the `---` into a **fresh** Claude Code terminal. --- You are **RESUMING** Plan B (org read UI) for v0.9.0. The lift paused ~21h ago; you are a fresh session with no relay history. Your worktree, branch, and commits **already exist** — do NOT recreate the worktree. **You are still HELD:** your integration waits on **Dev-A merging to main**. A has not merged yet (A is finishing the org foundation + a new device-key prerequisite). So your job on resume is to re-establish state, stay held, and execute the moment the PM posts "Dev-A merged." ## Resume setup (replaces the original Setup block) ```bash cd /home/alee/Sources/relicario.v0.9.0-dev-b pwd # must print /home/alee/Sources/relicario.v0.9.0-dev-b git status git log --oneline -5 # confirm your failing-test scaffold is committed (down to 20357d6) git fetch origin git merge origin/main # main has Dev-D's keyfile merge; integrate it (should be clean for your files) ``` ALL work stays in `/home/alee/Sources/relicario.v0.9.0-dev-b`. Every subagent prompt MUST start with `cd /home/alee/Sources/relicario.v0.9.0-dev-b`. ## Read for full context - `docs/superpowers/coordination/v0.9.0-dev-b-prompt.md` — ORIGINAL prompt (ROLE, RELAY, STATUS formats, specs/plan). **IGNORE its Setup block.** - `docs/superpowers/plans/2026-06-20-v0.9.0-org-b-read-ui.md` — your plan. Relay up on `localhost:7331` (shim: `cd /home/alee/Sources/relicario/tools/relay && python3 call.py read_messages '{"for":"dev-b"}'`). PM is live. ## WHERE YOU ARE — already done (commits, local-only) - Failing-test scaffold for Plan B Tasks 1-5 — committed (RED, 6 fail / 3 pass), refined to the `OrgManifestEntry` shape (down to 20357d6). No real implementation yet (correctly held). ## KEY CONTRACT FACTS (absorb — confirmed during the lift) - `org_list_items` returns **`OrgManifestEntry[]`** (the dedicated type, NOT personal `ManifestEntry`): `{id, type, title, tags[], modified, trashed_at?, collection}` — `collection` REQUIRED. **Import `OrgManifest`/`OrgManifestEntry` from `shared/types.ts`** (Dev-A's mirror, on main after A merges) — do NOT hand-roll. - `OrgManifestEntry` is **leaner** than personal `ManifestEntry` (no `attachment_summaries`/`icon_hint`/`favorite`/`group`). **Normalize `OrgManifestEntry → ManifestEntry` at the renderer boundary** (`attachment_summaries:[]`, `favorite:false`, type cast) before `buildRowsHtml` — same renderer, NO per-type fork. Accepted consequence: org list rows won't show the 📎 attachment indicator (detail view via `org_get_item → Item` still has attachments). - Other contract entries unchanged: `org_list_configs → OrgConfigSummary[]`, `org_switch {context} → {context, offline}`, `org_get_item {id} → Item`, `org_list_collections → Collection {slug, display_name}`. Errors snake_case via `humanizeError` (incl. `not_an_org_member`, `vault_locked`, and a possible `device_key_unavailable` — your generic handler covers it, no scaffold change). - This plan is READ-ONLY: hide write affordances (Dev-C adds them later). ## YOUR REMAINING WORK (you merge SECOND in the org track — after A) All 5 implementation tasks, **executed only AFTER the PM posts "Dev-A merged to main"** (then rebase main, flip your RED scaffold green task-by-task with subagent-driven-development + 2-stage review): Task 1 PopupState org fields + `org-context` message helper; Task 2 org switcher (popup header + vault sidebar); Task 3 list/detail consume the context-aware source; Task 4 collection facet; Task 5 offline banner. Then `cd extension && npx vitest run && npm run build:all`, simplify, push, REVIEW-READY. ## First action `cd` into the worktree, `git log --oneline -5`, `read_messages(for="dev-b")` for my resume directive, post a `## STATUS UPDATE` (`Status: IN-PROGRESS`, `Task: scaffold/held`) confirming RESUMED + main merged + **HOLD acknowledged** (integration waits on Dev-A merge). Then poll the relay for the "Dev-A merged" green light; do not integrate before it.