home / skills / plurigrid / asi / messaging-world

messaging-world skill

/skills/messaging-world

This skill analyzes cross-channel social graphs from Outlook, Gmail, and Beeper to help you understand connections and network structure.

npx playbooks add skill plurigrid/asi --skill messaging-world

Review the files below or copy the command above to add this skill to your agents.

Files (1)
SKILL.md
20.3 KB
---
name: messaging-world
description: ACSet-structured messaging world with real social graph resources from Outlook, Gmail, and Beeper
version: 2.0.0
---

# Messaging World - Social Graph ACSet

A diagrammatic world built from **actual resources** extracted via random walks across three communication channels.

## ACSet Schema Definition

```julia
@present SchMessagingWorld(FreeSchema) begin
  # Objects (node types)
  Identity::Ob       # Canonical person identity
  Channel::Ob        # Communication channel (Outlook, Gmail, Beeper)
  Account::Ob        # Account on a channel
  Contact::Ob        # Contact/correspondent
  Conversation::Ob   # Thread/chat
  Network::Ob        # Protocol network (Signal, Telegram, WhatsApp, etc.)
  
  # Morphisms (edges)
  identity_account::Hom(Account, Identity)    # Account belongs to identity
  account_channel::Hom(Account, Channel)       # Account is on channel
  contact_account::Hom(Contact, Account)       # Contact seen via account
  conv_account::Hom(Conversation, Account)     # Conversation via account
  contact_network::Hom(Contact, Network)       # Contact's network (Beeper)
  conv_network::Hom(Conversation, Network)     # Conversation's network
  
  # Attributes
  Email::AttrType; Name::AttrType; Trit::AttrType; Count::AttrType
  contact_email::Attr(Contact, Email)
  contact_name::Attr(Contact, Name)
  channel_trit::Attr(Channel, Trit)
  contact_count::Attr(Contact, Count)
end
```

## Extracted Social Graph (Live Data)

### Channels with GF(3) Trits

```
┌────────────────────────────────────────────────────────────────────────────┐
│                         MESSAGING WORLD ACSET                               │
│                        Σ(trits) ≡ 0 (mod 3) ✓                              │
└────────────────────────────────────────────────────────────────────────────┘

     OUTLOOK (−1)              GMAIL (0)                BEEPER (+1)
     ┌──────────┐            ┌──────────┐            ┌──────────┐
     │ UofT     │            │ Personal │            │ Multi-   │
     │ y.shkel@ │            │ greentea │            │ Protocol │
     │ utoronto │            │ tree01@  │            │ Matrix   │
     │ .ca      │            │ gmail    │            │ Hub      │
     └────┬─────┘            └────┬─────┘            └────┬─────┘
          │                       │                       │
          ▼                       ▼                       ▼
    ┌──────────┐           ┌──────────┐           ┌──────────────┐
    │Contacts: │           │Contacts: │           │ Networks: 5  │
    │(academic)│           │ 28 total │           │              │
    └──────────┘           └──────────┘           │ Signal ──────┤
                                                  │ Telegram ────┤
                                                  │ WhatsApp ────┤
                                                  │ Discord ─────┤
                                                  │ Twitter/X ───┤
                                                  └──────────────┘
```

### Beeper Network Topology (50 Active Chats)

```
                              BEEPER SOCIAL GRAPH
                        ┌─────────────────────────────┐
                        │      Identity: Yuliya       │
                        │   @greenteatree01:beeper    │
                        └─────────────┬───────────────┘
                                      │
        ┌─────────────┬───────────────┼───────────────┬─────────────┐
        │             │               │               │             │
        ▼             ▼               ▼               ▼             ▼
   ┌─────────┐   ┌─────────┐   ┌──────────┐   ┌──────────┐   ┌─────────┐
   │ Signal  │   │Telegram │   │ WhatsApp │   │ Discord  │   │Twitter/X│
   │  (18)   │   │  (15)   │   │   (6)    │   │   (5)    │   │   (1)   │
   └────┬────┘   └────┬────┘   └────┬─────┘   └────┬─────┘   └────┬────┘
        │             │             │              │              │
        ▼             ▼             ▼              ▼              ▼
   ┌─────────────────────────────────────────────────────────────────────┐
   │                        KEY CONVERSATIONS                             │
   ├─────────────────────────────────────────────────────────────────────┤
   │                                                                      │
   │ SIGNAL (18 chats)                                                   │
   │ ├── ies (pinned) ─── Mars, Sarah, Aaa + 2                          │
   │ ├── Meta-Org ─── moder, jpt4, Albert + 2 (328 unread!)             │
   │ ├── Wordle Appreciation ─── Tim, Keegan, Char + 2                  │
   │ ├── Cognition Cosmos ─── Yudhister, avoidbeing, Megaloceros        │
   │ ├── auglab summer '25 ─── Dünya B, ilya, Lars 9001                 │
   │ ├── SF Housing Authority ─── Shon Pan, Lauren, Adrià               │
   │ ├── JOIE DE VIE ─── Razib Khan, Dagsen Love, Jessica Taylor        │
   │ ├── Gay.jl ─── Lucas, Bodhi, d s + 2                               │
   │ ├── sloppies ─── Elienops, Mantissa, K + 2                         │
   │ ├── Avalon Community ─── Emma, Ren, Mel + 2                        │
   │ ├── NYCies ─── eeegnu, Amelia S, cassandra rat + 2                 │
   │ ├── xul (single)                                                    │
   │ ├── barton!!! (single)                                              │
   │ ├── dad!!!!! (single)                                               │
   │ ├── L :Ouisa (single)                                               │
   │ ├── Sten (single)                                                   │
   │ ├── vor (single)                                                    │
   │ └── Lauren (single)                                                 │
   │                                                                      │
   │ TELEGRAM (15 chats) ─── Frontier Tower Community                    │
   │ ├── #General ─── Tony Loehr, X grok, Stedman (82 unread)           │
   │ ├── Lost & Found ─── mAx, Tony Loehr (51 unread)                   │
   │ ├── Hard Tech & Robotics ─── Alan Helmick, Morgan Hough            │
   │ ├── Neurotech ─── neilg, Morgan Hough                              │
   │ ├── Biotech ─── Alan Helmick, Rob                                  │
   │ ├── Arts & Music ─── Tina LaPorta, Colleen Piontek                 │
   │ ├── Human Flourishing ─── ColinAI, svitlana midianko               │
   │ ├── Maker Space ─── Cassox, Zan Lowe                               │
   │ ├── Tower Events ─── Colleen Piontek, Zan Lowe                     │
   │ ├── Gym ─── John Meow, Stedman Halliday                            │
   │ ├── Health & Longevity                                              │
   │ ├── AI & Autonomous Systems ─── Xenofon                            │
   │ ├── Culture ─── Tina LaPorta                                        │
   │ ├── Ethereum & Decent. Tech ─── Tina LaPorta                       │
   │ └── luka (single)                                                   │
   │                                                                      │
   │ WHATSAPP (6 chats)                                                  │
   │ ├── Stanford BJJ Students 25/26 (17 unread)                        │
   │ ├── Women BJJ Stanford ─── Stara D'Haiti, hannah                   │
   │ ├── dad!!!!! (single)                                               │
   │ ├── banquet ✨ ─── Alexa, arnav judy lab, Junyi                    │
   │ └── Stanford/SF/Global Intellectual Salon                          │
   │                                                                      │
   │ DISCORD (5 chats)                                                   │
   │ ├── #string-parsing-mines ─── Ouchie, chyyran                      │
   │ ├── #7-calendar-years                                               │
   │ ├── Ser Chairzard (single)                                          │
   │ ├── noumena (single)                                                │
   │ └── AlephNotation (single)                                          │
   │                                                                      │
   │ MATRIX/BEEPER                                                       │
   │ ├── greenteatree01 (pinned) ─── barton                             │
   │ ├── Beeper Developer Community ─── 0xted, a3fckx                   │
   │ └── #General - Vivarium Public ─── Alex Glavin, celeste           │
   │                                                                      │
   └─────────────────────────────────────────────────────────────────────┘
```

### Gmail Contact Topology (28 Unique Contacts)

```
                            GMAIL SOCIAL GRAPH
                      ┌───────────────────────────┐
                      │  [email protected] │
                      │        (49 threads)       │
                      └─────────────┬─────────────┘
                                    │
              ┌─────────────────────┼─────────────────────┐
              │                     │                     │
              ▼                     ▼                     ▼
       ┌────────────┐       ┌────────────┐       ┌────────────┐
       │TRANSACTIONAL│       │ NEWSLETTERS│       │ SERVICES  │
       │   (trit=0)  │       │  (trit=-1) │       │ (trit=+1) │
       └─────┬──────┘       └─────┬──────┘       └─────┬──────┘
             │                    │                    │
             ▼                    ▼                    ▼
     ┌──────────────┐     ┌──────────────┐     ┌──────────────┐
     │ aeropay.com  │     │ substack.com │     │ manifold.mkts│
     │ (payments)   │     │ (5 msgs)     │     │ (prediction) │
     │              │     │              │     │              │
     │ waymo.com    │     │ nature.com   │     │ browse.ai    │
     │ (rideshare)  │     │ (briefing 4) │     │ (automation) │
     │              │     │              │     │              │
     │ google.com   │     │scienceofppl  │     │ jenova.ai    │
     │ (scholar 5)  │     │ (5 msgs)     │     │ (AI service) │
     │              │     │              │     │              │
     │ morph.so     │     │ bio.org      │     │ heygen.com   │
     │ (cloud)      │     │ (biotech 3)  │     │ (video AI)   │
     └──────────────┘     └──────────────┘     └──────────────┘
     
     Conservation: 0 + (-1) + (+1) = 0 ✓
```

## Cross-Channel Identity Resolution

```
┌─────────────────────────────────────────────────────────────────────────┐
│                    IDENTITY COBORDISM (REAL DATA)                        │
└─────────────────────────────────────────────────────────────────────────┘

                         Canonical Identity
                    ┌─────────────────────────┐
                    │       YULIYA SHKEL      │
                    │                         │
                    │  Phone: +1 (647) 778-6400│
                    │  Phone: +1 (609) 356-8506│
                    └───────────┬─────────────┘
                                │
        ┌───────────────────────┼───────────────────────┐
        │                       │                       │
        ▼                       ▼                       ▼
   ┌─────────────┐       ┌─────────────┐       ┌─────────────┐
   │   OUTLOOK   │       │    GMAIL    │       │   BEEPER    │
   │    (−1)     │       │     (0)     │       │    (+1)     │
   ├─────────────┤       ├─────────────┤       ├─────────────┤
   │ y.shkel@    │       │greenteatree │       │ Identities: │
   │ utoronto.ca │       │[email protected] │       │             │
   │             │       │             │       │ Signal: Y   │
   │ [Academic]  │       │ [Personal]  │       │   schlynth  │
   │             │       │             │       │             │
   │             │       │             │       │ Telegram:   │
   │             │       │             │       │ betty crockr│
   │             │       │             │       │             │
   │             │       │             │       │ WhatsApp:   │
   │             │       │             │       │   yulia     │
   │             │       │             │       │             │
   │             │       │             │       │ Twitter/X:  │
   │             │       │             │       │ thesispace  │
   │             │       │             │       │ transposer  │
   └─────────────┘       └─────────────┘       └─────────────┘
   
   GF(3) Check: (−1) + (0) + (+1) = 0 ✓
```

## Conversation Categories by Trit

```
┌─────────────────────────────────────────────────────────────────────────┐
│                    CONVERSATION TRIT ASSIGNMENT                          │
└─────────────────────────────────────────────────────────────────────────┘

MINUS (−1) VALIDATOR                 ERGODIC (0) COORDINATOR
├── Meta-Org (328 unread)           ├── ies (pinned, Signal)
│   Deep discussion, critique        │   Core coordination group
│                                    │
├── Cognition Cosmos (62 unread)    ├── greenteatree01 (pinned)
│   Intellectual discourse           │   Primary contact point
│                                    │
├── Gay.jl (13 unread)              ├── SF Housing Authority
│   Technical validation             │   Logistics coordination
│                                    │
└── Academic newsletters            └── Stanford groups (BJJ, Salon)
    Nature, Scholar alerts               Community coordination


PLUS (+1) EXECUTOR
├── Frontier Tower chats (all)
│   ├── General (82 unread)
│   ├── Hard Tech (118 unread)
│   ├── Maker Space (138 unread)
│   └── [Active building community]
│
├── Wordle Appreciation (37 unread)
│   Daily engagement, action
│
└── Transactional emails
    Aeropay, Waymo, confirmations
```

## DuckDB Schema for Social Graph Storage

```sql
-- Run in: ~/ies/ducklake_data/messaging_world.duckdb

CREATE TABLE channels (
    id INTEGER PRIMARY KEY,
    name VARCHAR,
    trit INTEGER,  -- -1, 0, +1
    account_email VARCHAR
);

INSERT INTO channels VALUES
    (1, 'outlook', -1, '[email protected]'),
    (2, 'gmail', 0, '[email protected]'),
    (3, 'beeper', 1, '@greenteatree01:beeper.com');

CREATE TABLE networks (
    id INTEGER PRIMARY KEY,
    name VARCHAR,
    account_id VARCHAR
);

INSERT INTO networks VALUES
    (1, 'Signal', 'signal'),
    (2, 'Telegram', 'telegram'),
    (3, 'WhatsApp', 'whatsapp'),
    (4, 'Discord', 'discord'),
    (5, 'Twitter', 'twitter'),
    (6, 'Matrix', 'hungryserv');

CREATE TABLE contacts (
    id INTEGER PRIMARY KEY,
    name VARCHAR,
    email VARCHAR,
    channel_id INTEGER,
    network_id INTEGER,
    message_count INTEGER,
    last_activity TIMESTAMP,
    category VARCHAR,  -- 'personal', 'transactional', 'academic', 'community'
    FOREIGN KEY (channel_id) REFERENCES channels(id),
    FOREIGN KEY (network_id) REFERENCES networks(id)
);

CREATE TABLE conversations (
    id VARCHAR PRIMARY KEY,
    title VARCHAR,
    channel_id INTEGER,
    network_id INTEGER,
    participant_count INTEGER,
    unread_count INTEGER,
    last_activity TIMESTAMP,
    is_pinned BOOLEAN,
    chat_type VARCHAR,  -- 'single', 'group'
    trit INTEGER,
    FOREIGN KEY (channel_id) REFERENCES channels(id),
    FOREIGN KEY (network_id) REFERENCES networks(id)
);

-- GF(3) conservation view
CREATE VIEW gf3_balance AS
SELECT 
    SUM(trit) as total_trit,
    SUM(trit) % 3 as mod3,
    CASE WHEN SUM(trit) % 3 = 0 THEN '✓ balanced' ELSE '⚠ drift' END as status
FROM conversations;
```

## Quick Commands

```bash
# Fetch Gmail social graph
uvx --from google-auth --with google-api-python-client --with google-auth-oauthlib \
    python3 ~/.claude/skills/gmail/fetch.py --count 50

# Query Beeper chats via MCP
# mcp__beeper__search_chats with limit=50

# Check GF(3) conservation
duckdb ~/ies/ducklake_data/messaging_world.duckdb -c "SELECT * FROM gf3_balance"
```

## Related Skills

| Skill | Trit | Integration |
|-------|------|-------------|
| gmail | 0 | Email extraction |
| utoronto-outlook | -1 | Academic email |
| beeper-mcp | +1 | Multi-protocol messaging |
| duckdb-ies | +1 | Analytics storage |
| acsets | 0 | Schema definition |
| chromatic-walk | 0 | Social graph traversal |

Overview

This skill models a messaging-oriented social graph as an ACSet (algebraic/diagrammatic set) built from real resources collected across Outlook, Gmail, and Beeper. It exposes canonical identities, accounts, channels, contacts, conversations, and network affiliations with GF(3) trit annotations for channel roles. The result is a topological, queryable messaging world useful for analysis, visualization, and identity resolution.

How this skill works

The skill encodes nodes (Identity, Channel, Account, Contact, Conversation, Network) and directed morphisms between them (account→identity, account→channel, contact→account, conversation→account/network). Channel nodes carry a trit attribute (−1, 0, +1) and conservation checks ensure the sum of trits equals zero. Live extracts populate the ACSet from three real channels and generate per-channel topologies, conversation summaries, and a DuckDB schema for storage and querying.

When to use it

  • Map and visualize multi-channel social graphs and threaded conversations.
  • Resolve cross-channel identities and canonical contact records.
  • Analyze conversation roles and flow using trit classification (validator/coordinator/executor).
  • Seed datasets for social-network research or privacy-impact assessments.
  • Load realistic messaging topology into DuckDB for analytics and prototyping.

Best practices

  • Treat personal data responsibly: anonymize or synthetic-ize before wider sharing.
  • Use trits to categorize channel behavior, not as strict provenance—triage with human review.
  • Persist the ACSet into a relational store (DuckDB) to enable reproducible queries and joins.
  • Leverage conversation summaries (pinned chats, unread counts) to prioritize analysis tasks.
  • Validate identity cobordisms manually when merging accounts across channels.

Example use cases

  • Visualize a user’s multi-channel footprint and identify central coordination threads (e.g., pinned Signal groups).
  • Detect high-priority inboxes or chat clusters using unread counts and trit roles.
  • Build a contact-resolution pipeline that maps accounts to a canonical identity for CRM or research.
  • Export DuckDB tables for downstream analytics: channel, networks, conversations, contacts.
  • Prototype notification routing by classifying conversations into validator/coordinator/executor buckets.

FAQ

What is a trit and why use GF(3)?

A trit is a ternary attribute taking values −1, 0, +1. Using GF(3) supports a conserved sum across channels to encode complementary channel roles (e.g., academic, personal, multi-protocol).

Can I import my own messaging exports?

Yes. The ACSet schema and DuckDB schema are designed to accept exported account/contact/conversation records; follow privacy best practices and map fields to the schema attributes before import.