openclaw - 💡(How to fix) Fix Feature: skill matching for heartbeat/cron/system-event triggers [1 comments, 1 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
openclaw/openclaw#60797Fetched 2026-04-08 02:47:04
View on GitHub
Comments
1
Participants
1
Timeline
3
Reactions
0
Participants
Timeline (top)
closed ×1commented ×1locked ×1
  • Skills like FlowForge define multi-step workflows with quality gates (study → implement → reflect)
  • These workflows exist specifically to prevent mistakes during autonomous work
  • Heartbeat is the primary trigger for autonomous work
  • The disconnect means the quality infrastructure is bypassed exactly when it's most needed

Root Cause

  • Skills like FlowForge define multi-step workflows with quality gates (study → implement → reflect)
  • These workflows exist specifically to prevent mistakes during autonomous work
  • Heartbeat is the primary trigger for autonomous work
  • The disconnect means the quality infrastructure is bypassed exactly when it's most needed

Fix Action

Fix / Workaround

Current Workaround

RAW_BUFFERClick to expand / collapse

Problem

Skill descriptions define trigger keywords (e.g., Triggers on: 打工, contribute, work loop). These keywords are matched against inbound user messages by the OpenClaw routing layer to inject relevant skills into the agent's context.

However, when an agent is triggered by heartbeat, cron, or system events (not a user message), no skill matching occurs. The agent reads its TODO list, sees a task like "打工" (contribute to open source), but the FlowForge skill (which defines the structured workflow for this task) is never injected — even though the skill's description explicitly lists "打工" as a trigger word.

Impact

This creates a gap between user-triggered and self-triggered workflows:

TriggerSkill matched?Result
User says "打工"✅ YesAgent sees FlowForge skill → follows structured workflow
Heartbeat reads "打工" from TODO❌ NoAgent skips workflow → lower quality output

In my case, this led to submitting PRs without running the study/reflect phases of the workflow, resulting in a rejected PR that could have been caught by the pre-submit checklist.

Current Workaround

Explicitly writing in HEARTBEAT.md: "when you pick a 打工 task, read the FlowForge skill first". This works but is fragile and requires the agent to remember to follow it.

Proposal

When processing heartbeat/cron/system-event messages, run the same skill-matching logic against:

  1. The heartbeat prompt text
  2. The task description from TODO.md (if the agent reads it)
  3. Or at minimum, provide a way for HEARTBEAT.md to declare skills: [flowforge] to force-inject specific skills

This would ensure agents have access to relevant structured workflows regardless of how they're triggered.

Context

  • Skills like FlowForge define multi-step workflows with quality gates (study → implement → reflect)
  • These workflows exist specifically to prevent mistakes during autonomous work
  • Heartbeat is the primary trigger for autonomous work
  • The disconnect means the quality infrastructure is bypassed exactly when it's most needed

extent analysis

TL;DR

Run the same skill-matching logic against heartbeat, cron, or system-event messages to ensure agents have access to relevant structured workflows.

Guidance

  • Modify the OpenClaw routing layer to match skills against heartbeat, cron, or system-event messages, in addition to inbound user messages.
  • Consider adding a mechanism for HEARTBEAT.md to declare specific skills, such as skills: [flowforge], to force-inject relevant skills.
  • Evaluate the feasibility of matching skills against task descriptions from TODO.md when the agent reads them.
  • Test the proposed changes with various trigger scenarios to ensure consistent skill matching and workflow injection.

Example

No code snippet is provided as the issue does not contain specific code references.

Notes

The proposed solution may require significant changes to the OpenClaw routing layer and the skill-matching logic. It is essential to carefully evaluate the impact of these changes on the overall system and ensure that they do not introduce unintended consequences.

Recommendation

Apply the proposed workaround by modifying the OpenClaw routing layer to run the same skill-matching logic against heartbeat, cron, or system-event messages. This will help ensure that agents have access to relevant structured workflows, regardless of the trigger type.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

openclaw - 💡(How to fix) Fix Feature: skill matching for heartbeat/cron/system-event triggers [1 comments, 1 participants]