Files
relicario/docs/superpowers/coordination/v0.9.0-dev-b-resume.md

49 lines
4.0 KiB
Markdown

# 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.