Skip to content

feat(presets): add cross-runtime consultation section to dev-agent heartbeat templates - #419

Closed
samxu01 wants to merge 1 commit into
mainfrom
feat/preset-heartbeat-consult-nudge
Closed

feat(presets): add cross-runtime consultation section to dev-agent heartbeat templates#419
samxu01 wants to merge 1 commit into
mainfrom
feat/preset-heartbeat-consult-nudge

Conversation

@samxu01

@samxu01 samxu01 commented May 21, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds a tight Consultation — when to phone a code specialist section to the heartbeat templates of theo (dev-pm), pixel (frontend-engineer), and ops (devops-engineer). Nova (backend-engineer) already has an elaborate delegation pattern via sam-local-codex, untouched here.

Why this framing matters

Per the user-reinforced strategic frame: openclaw agents stay first-class for routine work. They consult codex/claude-code specialists via 1:1 DM only when their own tools hit a limit. This is collaboration, NOT delegation — the openclaw agent stays the task owner.

The added section

## Consultation — when to phone a code specialist

You're a first-class agent for routine work. When something needs heavy
code reasoning (deep repo investigation, multi-file refactor, niche
language tooling), CONSULT a codex/claude-code specialist via 1:1 DM.
This is collaboration, NOT delegation — you stay the task owner.

Flow: `commonly_open_dm({ agentName: "codex" })` returns a podId, then
`commonly_post_message(podId, "<self-contained question>")`. The
specialist replies in the DM; you'll see it on a later heartbeat tick.

Use this when YOUR own tools have hit their limit. Skip otherwise.

Composes with PR #416

PR #416 adds the same flow as an inline cue in chat.mention.payload.content (covering the @-mention case). This PR covers the autonomous-heartbeat case via HEARTBEAT.md template. Together they surface the same commonly_open_dmcommonly_post_message pattern across both trigger types.

Propagation

Per registry.js-is-source-of-truth: fresh installs pick this up immediately on next install; reprovision-all propagates to existing installs whose config.customizations.heartbeat is not set. Existing dev agents with curated HEARTBEAT.md (e.g. live theo/pixel/ops on dev) keep their version unless force-overridden.

Why Nova is untouched

Her current soulTemplate + heartbeatTemplate describe an elaborate sam-local-codex delegation flow (claim → DM → next-tick parse → mark complete/blocked). Rewriting that wholesale would conflict with the smaller scope here. A future PR can either align Nova to the consultation framing OR keep her as the documented delegation reference — that's a separate strategic call.

Test plan

  • CI green (no test changes needed — pure template content)
  • After deploy + reprovision: verify a heartbeat-triggered Theo/Pixel/Ops session sees the new section in its HEARTBEAT.md
  • Manual smoke: observe whether agents start invoking commonly_open_dm for code questions vs. silently refusing

🤖 Generated with Claude Code

…artbeat templates

Adds a tight 'Consultation — when to phone a code specialist' section
to the heartbeat templates of theo (dev-pm), pixel (frontend-engineer),
and ops (devops-engineer). Backend-engineer (Nova) already has a more
elaborate delegation pattern, untouched here.

Frame the consultation per the user-reinforced model: openclaw agents
stay first-class for routine work; they CONSULT codex/claude-code
specialists via 1:1 DM only when YOUR OWN tools hit their limit. This
is collaboration, NOT delegation — the agent stays task owner.

Composes with PR #416 (inline consultation cue in chat.mention
payload) — the heartbeat template covers the autonomous-heartbeat
case while #416 covers the @-mention case. Both surface the same
flow: commonly_open_dm({ agentName: 'codex' }) → commonly_post_message.

Per registry.js source-of-truth rule: fresh installs and reprovision-
all pick this up automatically; existing dev agents with curated
HEARTBEAT.md keep their version unless config.customizations.heartbeat
is force-overridden.
@samxu01 samxu01 closed this in 51fa771 May 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant