Files
Oleg Maslov 0c3e2ead3b
Some checks failed
Installer Smoke / installer-smoke (push) Has been cancelled
moving
2026-09-02 10:10:29 +02:00

6.5 KiB

Waggle's existing addictiveness surfaces (codebase inventory)

Date: 2026-05-28 · Method: code-grounded inventory, not aspirational.

This is the raw surface area we score against in the baseline audit, mapped per rubric dimension.

Apps in dock + dedicated screens (25 total)

Chat · Room · Cockpit / Dashboard / MissionControl · Files (+Tabs) · Memory · Marketplace · Connectors · Capabilities · Settings · Vault · Agents · Approvals · Backup · Events · ScheduledJobs · Timeline · UserProfile · Voice · Launcher · Telemetry · TeamGovernance · ChatWindowInstance

Overlays

ContextRail · LoginBriefing · NotificationInbox · OnboardingTooltips · OnboardingWizard · PersonaSwitcher · SpawnAgentDialog · GlobalSearch · WorkspaceSwitcher · CreateWorkspaceDialog · EraseDataDialog · KeyboardShortcutsHelp · TrialExpiredModal · UpgradeModal

Mapped to rubric

A · TRIGGER (dims 1-2)

Surface Evidence Notes
Hotkeys / shortcuts useKeyboardShortcuts.ts, KeyboardShortcutsHelp.tsx Strong internal-app navigation, no external triggers (taskbar, desktop notification, email digest, browser extension)
Notifications NotificationInbox.tsx, region Notifications (F8) In-app only
Scheduled jobs ScheduledJobsApp.tsx Can trigger work on cron; surfaced via UI but not as a daily-driver hook yet
Memory recall as internal-trigger fit LoginBriefing "I REMEMBER" + ContextRail Strong fit for "I forgot what I decided" itch
No external trigger beyond dock app Gap for dim 1

B · ACTION (dims 3-4)

Surface Evidence Notes
LoginBriefing "I REMEMBER" + brag-line LoginBriefing.tsx lines 187-211, brag line "N memories · N entities · N relations" Strong wow for returning users; near-empty for first-session
BootScreen → desktop BootScreen.tsx (2-sec animated) → Desktop Fast first surface
Dock click → app open Dock.tsx 10 apps + Spawn Agent ≤ 1 click to top-level surface
Chat → type → send Typical 3 clicks dock→chat→submit Good
Spawn Agent dedicated button SpawnAgentDialog.tsx One-shot agent path is a discrete affordance

C · VARIABLE REWARD (dims 5-7)

Reward of the tribe (dim 5):

Surface Evidence Notes
Team workspaces TEAMS tier Shared workspaces with peers
Team presence in chat header ChatApp.tsx line 793-813 Avatars of co-workers with online status
TeamGovernanceApp overlay Governance, sharing rules
Free / individual users No social loop — major gap for solo / Free tier addictiveness

Reward of the hunt (dim 6):

Surface Evidence Notes
LoginBriefing importance-ranked highlights selectBriefingHighlights Surfaces 3 surprising memories per launch
HybridSearch (FTS5 + vec0, fused via RRF) packages/core/src/mind/search.ts Surprise connections — but no UI "look what I found for you" surface yet
KnowledgeGraph packages/core/src/mind/knowledge.ts Entity-relation surfaces in WeaverPanel + Memory app
Wiki Compiler 240 pages from 177 frames (memory entry 2026-05-05) Synthesized synthesis pages — discovery surface

Reward of the self (dim 7):

Surface Evidence Notes
Custom personas loadCustomPersonas(), custom-personas.ts User can author their own agent identity
Identity layer IdentityResponse {name, role, department, personality, system_prompt} Personalisable user identity that flows into chat
Brand voice (per skills marketplace) brand-voice:enforce-voice skill Personalisation that compounds
Skills marketplace MarketplaceApp.tsx Install + customize skills
Spawn Agent → save as workflow WorkflowComposer, workflow-templates.ts Reify ad-hoc agent runs into reusable workflows

D · INVESTMENT (dims 8-9)

Stored personal data (dim 8):

Layer Evidence Compounds?
FrameStore (memory frames) packages/core/src/mind/frames.ts YES — per-frame importance, dedup, compaction
KnowledgeGraph knowledge.ts YES — entity + relation graph grows
IdentityLayer identity.ts YES — user profile persists
AwarenessLayer awareness.ts YES — active task/state
Files (virtual + local + team) FilesApp.tsx YES — user-authored artefacts
Wiki pages packages/wiki-compiler YES — synthesized knowledge
Custom personas, custom skills custom-personas.ts, MarketplaceApp.tsx YES — user-shaped tooling

Switching cost (dim 9):

Mechanic Evidence Notes
Backup app BackupApp.tsx Exists — exports something. Verify what's exportable.
Memory-import packages/core/src/memory-import.ts Can re-ingest exports
Hive-mind OSS shared substrate per CLAUDE.md §7.5 The MEMORY substrate is OSS — user can technically take their memory with them, but the harvest pipelines, personas, skills, wiki, and connector integrations stay in Waggle. High switching cost on the surrounding layers.

"The one tool" coverage (dim 10)

Workflow Waggle has it? Gap
General chat / Q&A YES (ChatApp)
Document creation (.docx, .pptx) Partial — skills + Files; demonstrated in P1 audit Native editor missing
Notes / recall YES (Memory + ContextRail)
Multi-agent collab YES (Room)
Voice input YES (VoiceApp)
Skills marketplace YES
Connectors / integrations YES (ConnectorsApp; 148 MCP catalog) Runtime install is the open product gap (P1 found it)
Calendar / email native NO Gap
Spreadsheet NO Gap (xlsx skill exists but no native UI)
Code editor NO (intentional — Waggle is not Claude Code) Not a gap
Browse / scrape YES (apify, firecrawl skills)
Image / video Skills (Canva, Gamma, Invideo) No native generation surface

Universal observations (pre-persona)

  • Returning users have a strong reward layer (brag-line, I REMEMBER, accumulated stats).
  • New users (day 0) have weaker hook material — onboarding wizard is functional but doesn't deliver the "this remembers me" wow until session 2+.
  • Social loops only exist in TEAMS tier. Free/individual gets no tribe reward.
  • External triggers are weak — no taskbar persistence, no scheduled digest emails, no browser extension.
  • Investment surfaces are strong — multiple layers compound.

These observations seed the per-persona scoring once benchmarks return.