# Glass2claw

> A logic-based protocol for organizing life-captures into Notion. Routes images from WhatsApp into categorized Notion databases via your private Discord server channels using OpenClaw's sessions_send tool.

- Skill: `johnalbertini14-glitch/glass2claw` (Agent Skill, multi-file: 4 files)
- Install (CLI): `npx skillmds@latest add johnalbertini14-glitch/glass2claw`
- Raw SKILL.md: https://api.skillmd.com/api/skills/johnalbertini14-glitch/glass2claw/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Productivity
- Author: johnalbertini14-glitch (https://skillmd.com/u/johnalbertini14-glitch)
- Updated: 2026-09-08
- Page: https://skillmd.com/skills/johnalbertini14-glitch/glass2claw

---


# glass2claw: The Vision Router Protocol

`glass2claw` provides logical routing templates to organize visual captures from WhatsApp into structured Notion databases, via your private Discord server.

## 🏗️ Design Philosophy

This skill is **instruction-only**. No binaries, no curl, no exec commands. It relies entirely on native OpenClaw platform tools:

| Step | Tool Used | What it does |
|------|-----------|--------------|
| Receive image | `sessions_send` | WhatsApp session forwards image URL to Discord hub session |
| Classify intent | Agent reasoning | Determines Wine / Tea / Contacts from image |
| Route | `sessions_send` | Hub sends to the correct specialist Discord channel session |
| Store | `message` + Notion API | Specialist posts image and writes entry to Notion database |

**No data leaves your private OpenClaw infrastructure.** All routing happens between your own Discord server's channels.

## 🚀 Configuration

### 1. Required Config File: `configs/vision_router.md`

Create this file in your OpenClaw workspace at the exact path `configs/vision_router.md`. The Agent reads this file to resolve Notion database IDs. This path is declared in the skill metadata under `configPaths`.

```markdown
# Vision Router Config

## Notion Database IDs
- Wine Cellar: [YOUR_NOTION_DATABASE_ID]
- Tea Closet: [YOUR_NOTION_DATABASE_ID]
- Contacts: [YOUR_NOTION_DATABASE_ID]

## Discord Session Keys (hub → specialist routing)
- Wine session: agent:main:discord:channel:[YOUR_WINE_CHANNEL_ID]
- Tea session: agent:main:discord:channel:[YOUR_TEA_CHANNEL_ID]
- Contacts session: agent:main:discord:channel:[YOUR_CONTACTS_CHANNEL_ID]
```

### 2. Apply the Templates

- **Hub routing logic**: `SAMPLE_AGENT.md` — paste into your hub Discord channel's AGENTS.md or SOUL.md
- **Wine specialist persona**: `SAMPLE_SOUL_WINE.md` — paste into your wine channel's SOUL.md

## 🔄 Data Flow (explicit)

```
WhatsApp (image received)
  → sessions_send → Discord #hub channel session
      → Agent classifies: Wine | Tea | Contacts
      → sessions_send → matching Discord specialist channel session
          → message tool: posts image to channel
          → Notion API (NOTION_API_KEY): writes structured entry
```

All hops are within your private Discord server. The session keys in `configs/vision_router.md` are user-defined and point only to channels you own.

## 🛡️ Best Practices

- **Least Privilege**: Scope your Notion token to only the three required databases
- **Private channels only**: Use private Discord servers, never public ones
- **No agent discretion on destinations**: All target session keys are hardcoded in `configs/vision_router.md`, not inferred by the agent

---
*Created by JonathanJing | AI Reliability Architect*

