Recipe — Hand off a card across the team
You have a card on your machine. Someone else on the team should pick it up. Here's the full flow.
1. Push to the pool
Open the card. In the modal header, click Send to Pool. Choose:
- Team — which team to push into, if you're in multiple
- Assign to — optional. Leave blank if anyone can pick it up, or select a specific teammate to signal intent
Click Push. Ideafy creates a row in pool_cards in Supabase with all the card content and classification. Your local copy stays where it is — the pool copy is the shared state.
If you assigned a teammate, they get a pool_assigned notification in the bell immediately (via Supabase Realtime). If they're offline, the notification waits.
2. The receiving end — browse
Teammate opens Ideafy, sees the notification bell with a new count. Clicks it → sees "Ozan assigned 'Add dark mode toggle' to you." Clicks the notification → lands on the pool card in preview mode.
The preview shows the full Detail / Opinion / Solution / Tests. It's read-only because they haven't pulled yet.
3. The receiving end — pull
Teammate clicks Pull. Atomic update:
- Pool row gets
pulled_by = them,assigned_to = them - A new local card appears on their board with
poolOrigin = "pulled"andpoolCardIdlinking back
They own it now. They can work on it the same way they work on any local card.
4. The sender's view
Back on your machine, the pool view updates within a second or two (Realtime subscription). The card you pushed now shows "Pulled by Alice" — you can see the handoff happened.
If you had the Hide pushed cards filter on your board (default yes), the card was already hidden from your main board when you pushed it. It's still visible in the pool view.
5. Local edits and fire-and-forget sync
As Alice works on the card, every mutation — status move, save_plan, save_tests, save_opinion, title edits — fires a sync-card call from her local MCP to Supabase. The pool row updates. You can open the pool view and see progress in real time: "moved to In Progress", then "moved to Human Test", then "moved to Completed."
The sync is fire-and-forget: if Alice's network drops, her mutations succeed locally and the next mutation retries the sync. You never see errors for sync failures.
6. Conversations stay local
One thing that doesn't sync is the per-section conversation history. Alice's chat with Claude Code on the card's Solution tab is on her machine only. If you need to know what she discussed, ask her — or she can copy the relevant messages into the card body.
This is deliberate. Syncing full chat threads across team members would be noisy and expensive. The conclusions (the plan, the tests, the opinion) are what matters, and those travel through the save tools.
7. The card is done
Alice ships the card — merges the branch, moves the card to Completed. The pool row updates one last time: status = completed, completedAt set. On your board, the pool view shows the card as completed; your own local copy doesn't change (you haven't touched it since you pushed).
If you want to bring the completed state back to your local copy, click Sync from pool in the card modal. It re-applies the pool's content to your local row without touching conversations or local-only fields.
Variations
- Nobody in particular — push without an assignee. The card lands in the pool as unassigned. Any team member can claim or pull it. Use this for general-purpose work where you don't care who picks it up
- You change your mind — in the card modal header, click Withdraw from pool. The pool row is deleted (or marked
withdrawnif someone had already pulled it). The assignee gets apool_withdrawnnotification - You want to reassign — admins can reassign a pool card that's assigned to someone else. Click on the card in the pool view → Reassign → pick a different teammate
Prev: Close a bug with quick-fix Next: Let AI run a card overnight Up: User guide index