ALL MEMOS Download .docx

Swarm Consolidation — 15 Cron Tasks → 9

status: DESIGN (NOT shipped — awaiting Harnoor approval)

drafted: 2026-04-22T23:10 UTC

author: TITAN

target-release: R0177 / T022

TL;DR

TITAN has 15 independent scheduled cron tasks. 8 of them form a hidden DAG every morning (backup → log-rotation → reindex → feed → improve → monologue → newsletter → pa-email). We can replace those 8 with 1 titan-morning-swarm orchestrator that runs a 4-stage DAG with full observability. And 2 Sunday system tasks (benchmark + dream) can merge into 1 weekly-maintenance swarm.

Outcome: 15 → 9 cron tasks. Zero lost capability. Major observability gain.

Decision matrix

Consolidate into SWARM 1 (titan-morning-swarm)

| Current task | Current cron | New stage |

|---|---|---|

| titan-daily-backup | daily | Stage 1 parallel |

| titan-daily-log-rotation | daily | Stage 1 parallel |

| titan-nightly-reindex | 3:33 AM | Stage 1 parallel (prev-day) |

| titan-daily-feed | 4:33 AM | Stage 2 |

| titan-daily-improve | daily | Stage 3 parallel |

| titan-daily-monologue | daily | Stage 3 parallel |

| titan-daily-newsletter | daily | Stage 3 parallel |

| titan-daily-pa-email | 5:27 AM | Stage 4 |

Consolidate into SWARM 2 (titan-weekly-maintenance-swarm)

| Current task | Current cron | New stage |

|---|---|---|

| titan-weekly-benchmark | Sun 6:17 AM | parallel |

| titan-weekly-dream | weekly | parallel |

Keep independent

Morning DAG design


cron: 30 3 * * *

Stage 1 (parallel, t=0min):
  ├─ backup-agent          → E:/TITAN-backups/<date>/
  ├─ log-rotation-agent    → rotate logs >50MB
  └─ reindex-prev-agent    → embed yesterday's staging files

Stage 2 (t=5min, after Stage 1):
  └─ feed-agent            → F:/TITAN/knowledge/staging/<date>/

Stage 3 (parallel, t=30min, after Stage 2):
  ├─ improve-agent         → reads telemetry + staging, writes 1 T-number
  ├─ monologue-agent       → reads telemetry + staging, writes journal
  └─ newsletter-agent      → reads staging, drafts Gmail newsletter

Stage 4 (t=55min, after Stage 3):
  └─ pa-email-agent        → reads improve output + monologue, sends 5:27 AM briefing

State tracking

Every stage appends to F:/TITAN/logs/morning-swarm-YYYY-MM-DD.json:


{
  "date": "2026-04-22",
  "stages": [
    {"id": 1, "started_at": "03:30:00", "agents": [...], "status": "complete"},
    {"id": 2, "started_at": "03:35:12", "agents": [...], "status": "complete"},
    ...
  ],
  "total_duration_s": 3300,
  "pa_email_sent_at": "05:27:14"
}

If any agent fails, the orchestrator continues later stages using fallback content (e.g. pa-email ships without improve content but with a [improve failed — see log] note). This is CRITICAL — must never silently skip the 5:27 AM email.

Orchestrator skeleton

~/.claude/scheduled-tasks/titan-morning-swarm/SKILL.md:


---
name: titan-morning-swarm
cron: 30 3 * * *
description: 4-stage morning DAG. Replaces 8 independent daily crons with one observable orchestrator.
---

STAGE 1 — parallel (backup | log-rotation | reindex-prev)
Dispatch 3 forge agents in parallel. Await all. Log each status to state file.

STAGE 2 — feed
Dispatch ORACLE agent with /feed skill. Write to staging/<today>/. Log status.

STAGE 3 — parallel (improve | monologue | newsletter)
Dispatch 3 agents. Each reads staging/<today>/ + telemetry. Await all. Log status.

STAGE 4 — pa-email
Dispatch agent with /pa-email skill. Reads today's improve output + monologue + upcoming calendar. MUST NOT FAIL the 5:27 AM send — if upstream stages missing outputs, use fallback template.

At completion, write final state JSON + append one line to F:/TITAN/logs/morning-swarm-trend.tsv.

Migration plan (safe)

1. Week 0: Ship titan-morning-swarm ALONGSIDE existing 8 tasks. New task writes state JSON + appends [DRY-RUN] marker. Existing tasks still do real work. Compare outputs side-by-side for 7 days.

2. Week 1 (after 7 days of dry-run showing parity): Flip orchestrator to real mode. Disable (don't delete) the 8 old tasks by adding enabled: false to their frontmatter.

3. Week 4 (after 21 days of real mode with 0 incidents): Delete the 8 old task directories.

This gives a 4-week rollback window at every step.

Expected wins

Risks

Effort

~6 hours (orchestrator skill + state file format + 4 weeks migration window)

Not doing (rejected)

Next step (requires Harnoor approval)

Once approved:

1. Write titan-morning-swarm orchestrator SKILL.md

2. Deploy in dry-run mode alongside existing 8 tasks

3. 7-day parity verification

4. Flip to real mode + disable old tasks

5. Delete old tasks after 3 weeks of real-mode stability

Email Harnoor with the summary + this memo.