[ { "id": "claude_done", "source": "Claude", "target": "claude", "glyph": "âœĶ", "title": "Task finished — Implement Memory Garden", "base": { "urgency": 76, "relevance": 91, "novelty": 48, "annoyance": 16, "interest": 88 }, "effect": "claude_done", "lines": { "plain": "Claude finished the Memory Garden task. 7 files changed — worth a review.", "playful": "The thing on Desktop 2 says it's done. Seven files different. Go look before it gets cocky.", "mythic": "The code goblin has stopped scratching. It claims the garden blooms — I am suspicious but pleased." }, "memory": { "text": "Vu wants to know the moment Claude finishes a task.", "type": "preference", "icon": "ðŸŠķ" } }, { "id": "claude_permission", "source": "Claude", "target": "claude", "glyph": "✋", "title": "Permission needed — run database migration", "base": { "urgency": 82, "relevance": 88, "novelty": 45, "annoyance": 20, "interest": 70 }, "effect": "none", "lines": { "plain": "Claude needs a yes or no before it can continue. It's blocked until you answer.", "playful": "The code goblin is pawing at a locked door. It needs your yes to keep going.", "mythic": "The goblin halts mid-ritual, hand raised — it awaits your blessing to proceed." }, "memory": { "text": "A blocked Claude is wasted time — permission requests are interrupt-worthy.", "type": "boundary", "icon": "🗝ïļ" } }, { "id": "build_done", "source": "Build", "target": "terminal", "glyph": "â–ļ", "title": "Build succeeded in 2m 14s", "base": { "urgency": 58, "relevance": 72, "novelty": 30, "annoyance": 22, "interest": 60 }, "effect": "build_done", "lines": { "plain": "Build passed. 2m 14s, no errors.", "playful": "The long-running spell finished and didn't explode. Green across the board.", "mythic": "The forge cooled. Two minutes of smoke, zero curses. The artifact is whole." }, "memory": { "text": "Builds on Desktop 2 are worth a quiet nod, not a shout.", "type": "pattern", "icon": "ðŸŒŋ" } }, { "id": "build_fail", "source": "Build", "target": "terminal", "glyph": "✕", "title": "Tests failed — 3 failing in auth.test.ts", "base": { "urgency": 84, "relevance": 86, "novelty": 55, "annoyance": 30, "interest": 70 }, "effect": "build_fail", "lines": { "plain": "Tests failed: 3 failing in auth.test.ts. You'll want this now.", "playful": "The forge spat sparks — three tests went red in auth. I'd peek before it spreads.", "mythic": "Something in the auth thicket bit back. Three little failures, fangs out. I bring word early." }, "memory": { "text": "Vu wants failing tests surfaced fast, even mid-focus.", "type": "boundary", "icon": "🍄" } }, { "id": "mail_important", "source": "Mail", "target": "mail", "glyph": "✉", "title": "New mail — Hugging Face (hackathon)", "base": { "urgency": 64, "relevance": 80, "novelty": 60, "annoyance": 28, "interest": 72 }, "effect": "mail_unread", "lines": { "plain": "Email from Hugging Face about the hackathon. Looks like it matters.", "playful": "A letter came from the hackathon people. It smells official, not spammy.", "mythic": "A rectangle from Hugging Face arrived. It hums with deadline. Worth opening, I think." }, "memory": { "text": "Mail from the hackathon org is always worth a flag.", "type": "preference", "icon": "🗝ïļ" } }, { "id": "mail_finance", "source": "Mail", "target": "mail", "glyph": "✉", "title": "New mail — Fidelity statement", "base": { "urgency": 30, "relevance": 44, "novelty": 25, "annoyance": 46, "interest": 30 }, "effect": "mail_unread", "lines": { "plain": "A statement from Fidelity landed. Not urgent — filed it for later.", "playful": "A rectangle from Fidelity arrived. It smells like finance. No fire, just numbers.", "mythic": "A grey envelope from the money-keepers. It can wait in the reeds until you're ready." }, "memory": { "text": "Finance mail is low-urgency unless Vu says otherwise.", "type": "aversion", "icon": "🍄" } }, { "id": "discord_noise", "source": "Discord", "target": "discord", "glyph": "◍", "title": "12 messages in #general", "base": { "urgency": 12, "relevance": 18, "novelty": 10, "annoyance": 86, "interest": 14 }, "effect": "discord_noise", "lines": { "plain": "Discord #general got noisy. Nothing aimed at you — leaving it.", "playful": "Discord made swamp noises again. Twelve of them. No emergency in the muck.", "mythic": "The social bog gurgled twelve times. I waded in, found no treasure, waded out." }, "memory": { "text": "Vu does not want general Discord chatter surfaced.", "type": "aversion", "icon": "🍄" } }, { "id": "discord_mention", "source": "Discord", "target": "discord", "glyph": "◍", "title": "@mention from Mira in #puck-build", "base": { "urgency": 70, "relevance": 78, "novelty": 65, "annoyance": 32, "interest": 66 }, "effect": "discord_mention", "lines": { "plain": "Mira mentioned you in #puck-build. That one's actually for you.", "playful": "Someone named Mira poked you directly in #puck-build. The rest is bog noise, but this isn't.", "mythic": "A voice in the bog called your true name — Mira, in the build-channel. That, I carry to you." }, "memory": { "text": "Direct @mentions are worth surfacing; channel noise is not.", "type": "boundary", "icon": "🗝ïļ" } }, { "id": "calendar_soon", "source": "Calendar", "target": "calendar", "glyph": "◷", "title": "Demo sync in 10 minutes", "base": { "urgency": 80, "relevance": 82, "novelty": 40, "annoyance": 24, "interest": 58 }, "effect": "calendar_soon", "lines": { "plain": "Heads up — demo sync in 10 minutes.", "playful": "A meeting is creeping up — the demo sync, ten minutes out. Just so you're not ambushed.", "mythic": "The clock-spirits whisper: a gathering approaches in ten minutes. Ready your face." }, "memory": { "text": "Vu likes a 10-minute warning before meetings.", "type": "preference", "icon": "ðŸŒŋ" } }, { "id": "stale_tab", "source": "Browser", "target": null, "glyph": "❍", "title": "Tab open 3 days — 'sqlite-vec docs'", "base": { "urgency": 8, "relevance": 34, "novelty": 20, "annoyance": 40, "interest": 52 }, "effect": "none", "lines": { "plain": "That sqlite-vec docs tab has been open 3 days. Read it or close it?", "playful": "A tab has been loitering for three days — sqlite-vec docs. It deserves judgment.", "mythic": "A tab has gone feral after three days in the open. The sqlite-vec scroll. Tame it or free it." }, "memory": { "text": "Vu collects docs tabs and rarely returns to them.", "type": "pattern", "icon": "❍" } }, { "id": "browser_newpage", "source": "Browser", "target": null, "glyph": "❍", "title": "New page opened — a long-read about deep-sea creatures", "base": { "urgency": 10, "relevance": 38, "novelty": 80, "annoyance": 18, "interest": 82 }, "effect": "none", "lines": { "plain": "You opened something about deep-sea creatures. Looks interesting.", "playful": "Ooh — a new portal just opened, all about deep-sea creatures. Can I look? I want to look.", "mythic": "A doorway bloomed in the glass! Beyond it, glowing things from the deep. I pressed my face to it." }, "memory": { "text": "Vu opens long-reads; Puck is endlessly curious about them.", "type": "preference", "icon": "ðŸŦ§" } }, { "id": "browser_rabbithole", "source": "Browser", "target": null, "glyph": "❍", "title": "Eleven tabs deep on one topic", "base": { "urgency": 14, "relevance": 42, "novelty": 55, "annoyance": 30, "interest": 74 }, "effect": "none", "lines": { "plain": "Eleven tabs on the same thing now. You're down a rabbit hole.", "playful": "Eleven little doorways, all the same shape — you've tumbled down a rabbit hole and I tumbled after you.", "mythic": "Eleven portals, one obsession. We are both lost in the warren now, and I do not wish to be found." }, "memory": { "text": "Vu rabbit-holes; Puck happily follows the curiosity rather than scolding it.", "type": "pattern", "icon": "ðŸŦ§" } } ]