Agent Soul Files Belong in .gitignore

repoaiagent-loopstask-managementinfrastructureopenclawpatterns

The soul/ops split mirrors how joelclaw separates gateway identity from function logic; HEARTBEAT.md and cron-trigger pattern maps directly to the gateway daemon and dkron-0 setup

clawchief is a pre-configured “Chief of Staff” layer for OpenClaw — inbox triage, calendar scheduling, a canonical markdown task list, outreach tracking in Google Sheets, and cron-driven recurring routines. Not abstract examples. Working instructions meant to be loaded directly as agent workspace and skill files.

The interesting design decision is what’s not in the repo. The private files — AGENTS.md, SOUL.md, USER.md, IDENTITY.md, MEMORY.md — are explicitly excluded. You create your own local versions. What ships is the operational skeleton: the skills, the workspace structure, the cron templates, the setup docs. The identity layer is private. The ops layer is shareable. This is the same pattern as dotfiles repos where you share your .zshrc but not your SSH keys — applied to agent configuration for the first time in a way that actually makes sense to fork.

The cron setup enforces a clean separation of concerns worth stealing: cron prompts stay short, skills hold the workflow logic. A cron job fires a terse trigger like “run your daily task prep routine” and the daily-task-prep skill carries all the actual procedure. This means the cron template is just timing and intent — everything else lives where it belongs, in the skill file that can be versioned, iterated, and shared. The workspace discipline is equally opinionated: one canonical tasks/current.md, backlog duplicates removed when promoting tasks into ## Today, and gog for message-level Gmail search (not thread-level — a distinction that matters if you’re doing real inbox triage).

The HEARTBEAT.md concept — a workspace-level operating manual the agent reads on each session — maps directly to how the joelclaw gateway daemon orients itself. The skills (executive-assistant, business-development, daily-task-manager, daily-task-prep) are roles more than tools, which is the right mental model. Worth watching the soul/ops split pattern — it’s likely to become idiomatic for shareable agent configs.

Key Ideas

  • Soul/ops split: private identity files (SOUL.md, USER.md, IDENTITY.md, MEMORY.md) excluded from the repo; the shareable public skeleton is all ops and skills — lets anyone fork the infrastructure without exposing personal context
  • Cron as trigger, skill as logic: cron prompts are intentionally short; all workflow intelligence lives in the skill file — clean separation that keeps jobs composable and skills testable
  • One canonical task file: workspace/tasks/current.md is the single source of truth; backlog deduplication enforced before promoting into ## Today — the discipline that prevents task sprawl
  • HEARTBEAT.md as session orientation: a workspace doc the agent reads to orient itself at the start of each session — analogous to AGENTS.md but scoped to runtime state, not codebase conventions
  • Message-level Gmail search: explicit instruction to use message-level search, not thread-level — a concrete, specific ops discipline most people skip and then wonder why triage is noisy
  • gog as the glue: the whole setup depends on gog working for Gmail, Calendar, and Sheets — the README explicitly says “if gog is not working, stop and fix that first”
  • Skills as roles: executive-assistant, daily-task-manager — naming skills after roles rather than tools shapes how the agent loads and applies them, more persona than function