AgentOS Automation Roadmap
Source: mining of 72 Claude Code sessions (586 user messages) across 13 project dirs, 2026-07-04. Definition of done: the Tier-1 skills exist and are in weekly use; email flows into the OS daily.
Skill candidates, ranked by frequency × time saved
Tier 1 — build first
ship— commit → push → PR → babysit CI → merge → tag → deploy → verify live. The dominant pattern by an order of magnitude (54 "merge", 24 "push", 21 "commit", 18 "open a PR" messages across 8 repos, all businesses). Explicit pain: "check pr 25 status" ×5 in one session, "keep polling until it finishes", two sessions died of context exhaustion doing exactly this. Per-repo config block: branch flow (feature → development → main), tag convention, deploy target (Coolify/EAS), health-check URL. One skill serves every repo.eas-release— mobile release preflight + build + TestFlight submit. 26 EAS messages across 4 mobile apps; raw failing eas-cli output pasted as the whole prompt ≥4 times. Preflight catches the recurring failure classes: slug/bundleId mismatch, missing expo-updates config, missing EXPO_TOKEN, credential prompts. Then bump, build, poll, submit, report.repo-sync— fetch all, fast-forward, ahead/behind table with safe-to-delete verdicts, delete merged branches, flag divergent. Same request shape in 5+ projects; the dealer-connect divergent-branch forensic is the reusable subroutine.
Tier 2
posthog-verify— per project: env vars present in every deploy environment, event coverage mapped against routes, live event flow confirmed. Ran manually for LotLogistics (483628) and RoadSide GA (483582); Tripsynk has an open env-var warning.design-refresh— inspo URL/screenshots → restyle section-by-section against existing brand tokens → run + screenshot loop → design-critic pass → PR. Same chain in 4 projects; include Nabil's design-critic prompt verbatim.contract— DONE 2026-07-04,~/.claude/skills/contract/. Wired to the 4 live DocuSeal templates (fleet mgmt 3538359/3206544, solo 3206596, Carlyle RTO 4628489); pulls vehicle data from the fleet; encodes SABRONMBC facts + bcc rule; key in Keychain (docuseal-api). See DocuSeal API.run-and-tour— per-repo: start app, log in with seeded credentials, screenshot a named-screen tour by role. (Test creds: owner@/platform-admin@lotlogistics.test.)
Tier 3
issue-sweep— list open issues, rank by effort, fix easy ones, verify stale ones with subagents, close with evidence.readiness-audit— standardized launch checklist (features, CI, live-mode secrets/webhooks, deploy health, analytics). Asked for on Tripsynk ×2, road-side-atl, dealer-connect.appstore-rejection— parse an Apple rejection into per-guideline fixes + required evidence. Only n=2 so far, but 4 apps are heading to the store.
Orchestration guide (per Anthropic's "A harness for every task", adopted 2026-07-04)
Nabil's directive: use dynamic workflows as the orchestration layer for these skills. Reference: https://claude.com/blog/a-harness-for-every-task-dynamic-workflows-in-claude-code
- Pattern per skill:
ship→ plain agent + Monitor (no fan-out needed — workflows are overkill for routine chains);readiness-audit→ fan-out-and-synthesize + adversarial verification (one auditor per dimension, skeptic verifies each finding);issue-sweep→ classify-and-act then loop-until-done (triage router, fixers, verify-then-close);design-refresh→ generate-and-filter / tournament (N variants, judge panel, keep winner); session/inbox mining → fan-out-and-synthesize. - Repeatable workflows (triage, deploy-health, verification) pair with
/loopfor intervals and/goalfor hard completion criteria; token budgets via "+500k"-style directives. - Reusable workflow scripts can live in skill folders /
~/.claude/workflowsas shareable JS — treat shared ones as templates, not verbatim. - Restraint rule from the post: most routine coding doesn't need a 5-reviewer panel — reserve workflows for complex, high-value runs (audits, sweeps, migrations).
Pipelines (cron/routines, not just skills)
- Deploy health: one routine pings health URLs for all Coolify apps (roadsidega.com, tripsynk.com, lotapi, attaqwa) and flags drift between latest tag and what prod serves — directly addresses Tripsynk's silent stale-prod failure.
- Weekly portfolio brief: extend fleet-pnl pattern — Stripe totals per business + Taurus payment check + open P0s from each repo's HANDOFF/AGENT_TRACKER.
- Handoff → vault: repos already keep HANDOFF.md/AGENT_TRACKER.md; a routine that mirrors their snapshots into the vault's business notes keeps this OS current without manual capture.
Email pipeline plan — REVISED 2026-07-04: Bizzle-centric
Discovery: Nabil already built Bizzle Email Ops — an IMAP-polling email-ops service (repo learnednomad/bizzle-service) covering all 6 sabronmbc.com boxes + texminer8@gmail, outputting to Slack. It appears not to be running (no Slack posts). Revised plan:
- Get Bizzle live: verify/deploy on Coolify, set
BIZZLE_PWD_*+ Slack env vars, dry-run first (BIZZLE_SEND_ENABLED=false), watch #claw-approvals + log channel. - Close coverage gaps in the roster: add nabssy007@gmail + Yahoo (app passwords); forward Hotmail → a covered mailbox (personal Outlook IMAP needs OAuth2 — not worth it); add roadsidega.com boxes if Hostinger-hosted.
- AgentOS integration = read Bizzle's Slack channels (no API — it's a pure poller with no HTTP surface). Extend the Morning Briefing to summarize the digest/approvals channels; important threads →
00 Inbox/notes. - Gmail MCP connector still worth connecting for interactive search/read of Gmail history in sessions — Bizzle only sees new mail from deploy time.
The original hub-inbox plan below is kept as the fallback if Bizzle stays parked.
(Superseded fallback) Hub inbox across Gmail, Hotmail, Yahoo, Hostinger
Requirement (2026-07-04): the OS must see ALL of Nabil's mail — Gmail(s), Hotmail/Outlook, Yahoo, Hostinger mail (sabronmbc.com / roadsidega.com domains). No connectors exist for Yahoo/Hostinger, so: funnel everything into one Gmail hub, connect that one Gmail to Claude.
Architecture: providers → (forwarding or Gmail POP fetch) → hub Gmail with per-source labels → Gmail MCP connector → sessions + Morning Briefing triage → 00 Inbox/ notes.
Per-provider setup (Nabil does these once, ~20 min total):
- Pick the hub Gmail — recommend the one already receiving the most business mail (texminer8@gmail.com or nabssy007@gmail.com).
- Other Gmail → Settings → Forwarding → auto-forward to hub (or add via hub's "Check mail from other accounts" to also pull history). Filter in hub: label
src/gmail-2. - Hotmail/Outlook → outlook.com → Settings → Mail → Forwarding → forward to hub, keep copies. Label
src/hotmail. - Yahoo — free Yahoo dropped auto-forwarding, so instead: Yahoo → Account Security → generate app password; hub Gmail → Settings → Accounts → "Check mail from other accounts" → add Yahoo via POP3 (pop.mail.yahoo.com:995, SSL, the app password). Pulls existing + new mail; auto-label
src/yahoo. - Hostinger mail → hPanel → Emails → Forwarders → forward each mailbox (saninabil@sabronmbc.com, support@roadsidega.com, …) to hub, keep copies. Labels
src/sabronmbc,src/roadside. - Topic filters in hub: auto-label Stripe payouts/disputes, Apple App Store Connect, Coolify/Sentry alerts, DocuSeal, customer support. Routine processes labeled mail only.
- Connect the hub:
/mcpin Claude Code → Gmail → authenticate the hub account. (Also connect Google Calendar while there.) - Extend Morning Briefing: read last 24h of labeled mail → action-needed items in the Slack DM → durable threads become
00 Inbox/notes.
Reply-from-right-address: hub Gmail → Accounts → "Send mail as" for each forwarded address (Hostinger SMTP smtp.hostinger.com:465), so replies keep the correct identity.
Fallback only if hub proves insufficient: local IMAP aggregator on launchd (Hostinger/Yahoo IMAP + app passwords; personal Outlook needs OAuth2) writing markdown into 00 Inbox/Email/. More credentials to manage — skip unless needed.
Tasks
- Nabil: hub-inbox setup (steps 1–5 above: pick hub Gmail, forward Hotmail + Hostinger, POP-fetch Yahoo, forward second Gmail)
- Nabil: run
/mcp, connect the hub Gmail (and Google Calendar while there — already a Home.md item) - Build
shipskill — DONE 2026-07-04, user scope~/.claude/skills/ship/with 8-repo registry; registry is self-updating - Build
eas-releaseskill — DONE 2026-07-04,~/.claude/skills/eas-release/with app registry + failure-classification table - Build
repo-syncskill — DONE 2026-07-04,~/.claude/skills/repo-sync/with the cherry-check forensic subroutine - Set up Gmail filters/labels, then extend Morning Briefing with email triage
- Decide: deploy-health routine hosting (cloud routine vs local cron)