# ZHQ Discord – Channel Structure & Model Routing

Use this file as the authoritative spec for organizing the ZHQ Discord server and wiring model routing in OpenClaw.

---

## 1. Goals

- Clean, predictable channel structure in Discord.
- Correct model routing per channel in `/Users/harvey/.openclaw/openclaw.json`:
  - **Opus** for strategy, research, and high‑leverage thinking.
  - **Sonnet** for everyday work and personal channels.
  - **Haiku** for logs, metrics, and lightweight data pulls.
- All edits to `openclaw.json` are **backed up and minimal**.

---

## 2. Target Channel Structure

### 2.1 COMMAND

Purpose: main control panel and working surface between Mike and Harvey.

Create/ensure these channels under the **COMMAND** category:

- `#general` – main conversation with Harvey.
- `#inbox` – dump links, notes, and ideas for Harvey to sort and route.
- `#daily` – morning briefing and daily review.
- `#bridge` – plumbing, integrations, and glue code chatter.
- `#monitoring` – logs, cron job reports, alerts.
- `#youtube-stats` – quick checks on YouTube metrics.
- `#video-research` – **forum channel**; one thread per deep dive on video/content ideas.
- `#strategy` – cross‑cutting strategy for life, NMC, and ventures (Opus‑heavy channel).

### 2.2 PERSONAL

Purpose: anything about Mike personally (health, home, family, personal finances, life design).

Create/ensure these under **PERSONAL**:

- `#health` – Oura data, workouts, recovery, sleep questions.
- `#home` – household tasks, purchases, maintenance.
- `#family` – family logistics, notes, and planning.
- `#home-exchanges` – project related to home exchanges (if used).
- `#money` – personal finances.
- `#goals` **or** `#life` – pick ONE name for long‑term planning / life design.

> Note: `#second-brain-project` should live under **PROJECTS**, not Personal.

### 2.3 NO MORE CHORES

Purpose: everything specific to the No More Chores business.

Create/ensure these under **NO MORE CHORES**:

- `#ops` – day‑to‑day operations.
- `#customer-service` – complaints, QA, SOPs, and service recovery.
- `#growth` – marketing, campaigns, funnels, acquisition.
- `#finance` – NMC financials (this channel already has a CFO system prompt).
- `#it` – tech stack, OpenClaw work for NMC, integrations.
- `#research` – market, competitor, and strategy research specific to NMC.
- `#ideas` – **forum channel**; one topic per NMC idea.

### 2.4 VENTURES

Purpose: projects and ideas beyond NMC.

Create/ensure these under **VENTURES**:

- `#new-ventures` – **forum**; one thread per new business idea.
- `#personal-brand` – mikeziarko.com, newsletter, content, offers.
- `#ventures-research` – research that feeds non‑NMC plays.
- `#consulting` – consulting offers, packages, experiments.

### 2.5 PROJECTS

Purpose: anything that is a concrete project with a spec and a “done”.

Create/ensure these under **PROJECTS**:

- `#knowledge-base` – building Mike’s second brain / PARA system.
- `#nmc-wiki` – formal NMC SOP/wiki.
- `#contractor-agreement` – contractor agreement, legal, and structure.
- `#leah` – phone and SMS agent build.
- `#mission-control` – dashboards and control panel.
- `#clean-os` – only if this project is active.
- `#second-brain-project` – move here from Personal.

### 2.6 ARCHIVE

Purpose: hide noise while keeping history.

Move into **ARCHIVE**:

- Old test/sandbox channels.
- Obsolete log channels once `#monitoring` is live.
- Any channel that no longer has a clear purpose.

---

## 3. How to Use This File (for Telegram Harvey)

> This section is written as instructions for the Telegram instance of Harvey.

### Step 1 – Verify and Guide Channel Creation

1. Read the structure above.
2. Compare it to the actual Discord guild `1478419889243820042`.
3. For each category (COMMAND, PERSONAL, NO MORE CHORES, VENTURES, PROJECTS):
   - Identify which channels already exist and are correctly placed.
   - Identify missing channels or mis‑categorized channels.
4. For missing or misplaced items, tell Mike in Telegram:
   - Which channels to create (exact name + whether it should be a text or forum channel).
   - Which category they belong in.
   - Which existing channels to move to which category.
5. Wait for Mike to confirm when each set of changes is done in the Discord UI.

Do **not** assume you can directly create or move channels via API; guide Mike to do it if your runtime doesn’t expose channel‑level actions.

### Step 2 – Collect Channel Name → ID Mapping

Once the structure is in place:

1. Ask Mike to paste a list of channel name → ID mappings for all relevant channels, like:

   ```text
   #general = 1478419893480329309
   #health = 1481326526472654971
   #finance = 1481326537029583052
   #strategy = 1481326523855405098
   #ops = ...
   #customer-service = ...
   #growth = ...
   #research = ...
   #ideas = ...
   #monitoring = ...
   #youtube-stats = ...
   #video-research = ...
   #knowledge-base = ...
   #nmc-wiki = ...
   #contractor-agreement = ...
   #leah = ...
   #mission-control = ...
   #clean-os = ...
   #second-brain-project = ...
   #new-ventures = ...
   #personal-brand = ...
   #ventures-research = ...
   #consulting = ...
   ```

2. Keep that list handy for the next step.

---

## 4. Safe Routing Changes in `openclaw.json`

### 4.1 Backup First

Before editing the config, always:

1. Run:

   ```sh
   cd /Users/harvey/.openclaw
   tools/config-guard.sh backup
   ```

2. Confirm a backup file exists, e.g. something like:

   ```
   ~/.openclaw-backup-YYYYMMDD/openclaw.json
   ```

3. If the backup does **not** exist, stop and alert Mike.

### 4.2 Edit Only the Discord Routing Block

The routing lives under:

```json
"channels": {
  "modelByChannel": {
    "telegram": { ... },
    "discord": {
      "1478419893480329309": "...",
      "1481326526472654971": "...",
      ...
    }
  },
  ...
}
```

Rules:

- **Only** modify `channels.modelByChannel.discord`.
- Do not touch tokens, Slack, Telegram, or any other fields.
- Keep the edit as a minimal JSON patch.

### 4.3 Desired Routing

Use the channel IDs from the mapping Mike provided and set routing as follows.

#### COMMAND

- `#general`, `#inbox`, `#daily`, `#bridge` → `"anthropic/claude-sonnet-4-6"`
- `#monitoring`, `#youtube-stats` → `"anthropic/claude-3-haiku-20240307"` (or the configured Haiku alias if different).
- `#video-research` → `"anthropic/claude-opus-4-6"`
- `#strategy` → `"anthropic/claude-opus-4-6"`

#### PERSONAL

- All Personal channels (`#health`, `#home`, `#family`, `#home-exchanges`, `#money`, `#goals` or `#life`) → `"anthropic/claude-sonnet-4-6"`.
- Mike may occasionally request Opus explicitly for deep, one‑off analyses.

#### NO MORE CHORES

- `#ops`, `#customer-service`, `#growth`, `#finance`, `#it`, `#research`, `#ideas` → `"anthropic/claude-opus-4-6"`.

#### VENTURES

- `#new-ventures`, `#personal-brand`, `#ventures-research`, `#consulting` → `"anthropic/claude-opus-4-6"`.

#### PROJECTS

- `#knowledge-base`, `#nmc-wiki`, `#contractor-agreement`, `#leah`, `#mission-control`, `#clean-os`, `#second-brain-project` → `"anthropic/claude-opus-4-6"`.

### 4.4 After Editing

After updating `openclaw.json`:

1. Validate that the file is still valid JSON (no trailing commas, mismatched braces, etc.).
2. Show Mike (in Telegram) the **old** and **new** `channels.modelByChannel.discord` blocks so he can see exactly what changed.
3. Summarize:
   - Which channels are now on Opus.
   - Which are on Sonnet.
   - Which are on Haiku.
   - Any channels still using default routing because there was no ID provided.

---

## 5. Operating Guidelines

- When in doubt about a channel’s purpose, ask Mike before assigning a model.
- Do not auto‑create or delete Discord channels unless you are certain your runtime has safe channel‑management capabilities.
- Treat this file as the single source of truth for ZHQ Discord structure and routing until Mike updates it.