openclaw - ✅(Solved) Fix [Feature]: Document a PENDING.md workspace pattern for cross-session commitment tracking [2 pull requests, 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#69621Fetched 2026-04-22 07:50:07
View on GitHub
Comments
1
Participants
1
Timeline
9
Reactions
0
Participants
Timeline (top)
referenced ×5cross-referenced ×2commented ×1labeled ×1

Document an optional PENDING.md workspace pattern for tracking durable commitments that must survive session reset, compaction, and multi-day execution boundaries. This would be a docs-only proposal with no runtime or API changes.

Error Message

tasks:

  • name: pending-commitment-check interval: 30m prompt: | Read PENDING.md if it exists. Check active items for overdue deadlines or missed checkpoints. Report actionable exceptions to the user. If nothing needs attention, reply HEARTBEAT_OK.

Root Cause

Using Background Tasks alone does not fully solve it, because Background Tasks represent execution units rather than durable user-facing commitments across sessions.

Fix Action

Fixed

PR fix notes

PR #69637: docs: add PENDING.md workspace pattern for durable commitment tracking

Description (problem / solution / changelog)

Closes #69621\n\n- Add PENDING.md.example template with usage guide and examples\n- Add PENDING.md documentation to agent workspace file map\n- Add PENDING.md integration guide to heartbeat docs with example task\n- Explain when to use PENDING.md vs other mechanisms (background tasks, cron, etc.)

Changed files

  • docs/concepts/agent-workspace.md (modified, +6/-0)
  • docs/gateway/heartbeat.md (modified, +24/-0)
  • docs/reference/templates/PENDING.md.example (added, +69/-0)

PR #69658: docs: document PENDING.md pattern for cross-session commitment tracki…

Description (problem / solution / changelog)


Summary

This PR is documentation-only. It proposes documenting a community workspace pattern, PENDING.md, for tracking commitments that should survive session reset, compaction, or context loss.

This is not a new core feature and does not introduce any runtime or code changes. It is a user-maintained workspace file pattern that works alongside existing mechanisms such as Background Tasks, Cron, Standing Orders, and HEARTBEAT.md.

Why this pattern exists

In production use, some commitments span multiple sessions or even multiple days. A common example is a rate-limited batch job that starts today, pauses overnight, resumes later, and still needs a deadline reminder even if the original session context is gone.

OpenClaw already has strong primitives for execution and scheduling:

  • Background Tasks track running or completed work
  • Cron schedules triggers
  • Standing Orders provide persistent authority
  • HEARTBEAT.md runs periodic checks

What is still easy to lose is the human-level commitment itself: “continue this tomorrow” or “finish this by Friday.” That commitment may outlive the original session, even when the execution context does not.

Proposed documentation pattern

The pattern is simple:

  • Store cross-session commitments in a user-maintained workspace file such as ~/.openclaw/workspace/PENDING.md
  • Use a HEARTBEAT.md task to periodically read that file
  • Alert the user if an item is overdue or approaching its deadline

Example use case:

  • A batch export is partially complete
  • The work is paused due to API rate limits
  • The deadline still matters tomorrow, even after session reset
  • PENDING.md preserves that commitment in the workspace, and heartbeat checks keep it visible

Why this fits OpenClaw

This pattern aligns with OpenClaw’s design principles:

  • Local-first: all state remains in the user’s workspace
  • Explicit and operator-controlled: users create and edit the file themselves
  • Workspace as private memory: long-lived commitments are stored as transparent Markdown, not hidden runtime state

It also keeps a clear boundary with native mechanisms. PENDING.md does not replace task execution, scheduling, or authorization. It documents a lightweight way to persist commitments across sessions.

Scope of this PR

This PR only adds documentation and examples. No TypeScript, Python, dependency, or behavior changes are proposed.

Planned additions:

  • a new section in docs/gateway/heartbeat.md
  • a comparison note in docs/automation/tasks.md
  • a small entry in docs/concepts/agent-workspace.md
  • a docs/templates/PENDING.md.example
  • an optional test/usage report for reference

Validation

This pattern was validated in a high-volume production environment over roughly 32 hours, including repeated heartbeat checks and real overdue alerts. It has been useful for multi-day, API-limited workflows where commitments must remain visible even when session context does not.

Feedback requested

I would appreciate maintainer feedback on:

  • whether this pattern belongs in the official docs
  • whether the proposed doc locations make sense
  • whether it should instead live as a community pattern referenced from docs

My goal is to document a practical workspace pattern that complements the current model without expanding core behavior.

This RFC is based on production usage and follow-up discussion in issue #69621 (https://github.com/openclaw/openclaw/issues/69621)

Changed files

  • docs/concepts/agent-workspace.md (modified, +6/-0)
  • docs/gateway/heartbeat.md (modified, +21/-1)
  • docs/reference/templates/PENDING.md (added, +208/-0)

Code Example

### API Batch Job - Data Export
- Committed: 2026-04-17
- Deadline: 2026-04-22
- Description: Export 1000 records via rate-limited API
- Status: In Progress (800/1000 complete)
- Notes: API rate limited, cron resumes at 02:00 daily

---

tasks:

- name: pending-commitment-check
  interval: 30m
  prompt: |
    Read PENDING.md if it exists.
    Check active items for overdue deadlines or missed checkpoints.
    Report actionable exceptions to the user.
    If nothing needs attention, reply HEARTBEAT_OK.
RAW_BUFFERClick to expand / collapse

Summary

Summary

Document an optional PENDING.md workspace pattern for tracking durable commitments that must survive session reset, compaction, and multi-day execution boundaries. This would be a docs-only proposal with no runtime or API changes.

Problem to solve

OpenClaw already has strong native mechanisms such as Background Tasks, Cron Jobs, Standing Orders, and HEARTBEAT.md, but they solve adjacent problems rather than one specific gap: tracking user-visible commitments that must survive session changes.

In practice, this comes up when an agent and operator have clearly agreed that something should continue later, be checked again, or be completed by a deadline, but that commitment is not persisted in a durable workspace file.

Typical examples:

  • “Continue this API export tomorrow”
  • “Keep watching this and alert me if it is overdue”
  • “Follow up on this by Friday even if the session changes”

Current mechanisms are close, but not quite the same:

  • Background Tasks track execution state, not durable operator-facing commitments
  • Cron schedules triggers, not a human-readable record of what is owed
  • Standing Orders represent persistent authorization, not deadline-oriented follow-through
  • HEARTBEAT.md can perform checks, but it still needs a durable source of commitments to inspect

The result is that commitments can be lost after session reset or compaction, especially in multi-day or rate-limited workflows. Users then have to reconstruct context manually, or the agent simply fails to follow through until the user asks again.

This seems less like a missing scheduler and more like a missing documented durable-memory pattern for commitments.

Proposed solution

Document PENDING.md as an optional workspace file pattern for durable commitments.

The proposal is intentionally lightweight:

  • plain Markdown in the workspace
  • user-controlled and manually editable
  • not auto-injected
  • no parser, schema, or runtime support required
  • designed to complement existing mechanisms rather than replace them

A minimal example could look like this:

### API Batch Job - Data Export
- Committed: 2026-04-17
- Deadline: 2026-04-22
- Description: Export 1000 records via rate-limited API
- Status: In Progress (800/1000 complete)
- Notes: API rate limited, cron resumes at 02:00 daily

This pattern becomes especially useful when paired with HEARTBEAT.md, for example:

tasks:

- name: pending-commitment-check
  interval: 30m
  prompt: |
    Read PENDING.md if it exists.
    Check active items for overdue deadlines or missed checkpoints.
    Report actionable exceptions to the user.
    If nothing needs attention, reply HEARTBEAT_OK.

Suggested documentation scope:

  • mention the pattern in docs/gateway/heartbeat.md
  • cross-reference it in workspace documentation
  • optionally provide a starter template such as docs/templates/PENDING.md.example
  • clarify when to use this pattern vs Background Tasks / Cron / Standing Orders

This is meant as a community workspace convention documented by the project, not as a new built-in feature.

Alternatives considered

I considered a few alternatives, but each seems weaker for this specific problem.

Using Background Tasks alone does not fully solve it, because Background Tasks represent execution units rather than durable user-facing commitments across sessions.

Using Cron alone helps schedule future actions, but it does not create a readable commitment record with status, deadline, or operator intent.

Using Standing Orders is also not a great fit, because they are about persistent authority and execution boundaries, not commitment tracking.

Relying on conversation context is fragile because session reset and compaction are expected parts of the system.

Building a new built-in commitment tracker would likely be overkill when a workspace-file pattern already fits OpenClaw’s “workspace as private memory” model and requires no code changes.

Impact

Affected users/systems/channels:

  • automation-heavy self-hosted deployments
  • multi-day workflows such as API batch jobs, document processing, and follow-up tasks
  • users who rely on explicit operator/agent commitments across session boundaries

Severity:

  • Medium
  • this does not block core usage, but it does create real follow-through failures and manual recovery work

Frequency:

  • Frequent for power users
  • intermittent for casual users
  • most visible when work spans multiple sessions, days, or rate-limited execution windows

Consequence:

  • commitments can be forgotten after session reset
  • overdue or stalled work may go unnoticed unless the user asks again
  • operators spend extra time reconstructing context
  • trust is reduced when the agent appears to “forget” explicit promises

Evidence/examples

This proposal came from real production usage rather than a purely theoretical design.

A representative example is a rate-limited batch workflow that cannot finish in one session:

  • Day 1: a cron-triggered batch job starts
  • later: the job pauses because of API rate limits
  • overnight or next session: the agent no longer has the original commitment context
  • next day: the user asks for status, but there is no durable commitment record unless it was explicitly written somewhere

In local testing, the pattern worked well when PENDING.md was used as the durable record and heartbeat checks explicitly read it for deadline monitoring.

This also appears to align with OpenClaw’s documented model of workspace files as transparent, operator-controlled memory.

If helpful, I can follow up with a docs-only PR containing:

  • a minimal PENDING.md example
  • guidance on when to use it
  • heartbeat integration example
  • comparison notes against existing mechanisms

Additional information

A few boundaries are important here:

  • this is not a request for runtime changes
  • this is not a request for a new built-in task system
  • this is not a replacement for Background Tasks, Cron, or Standing Orders
  • this is only a request to document an optional workspace pattern that some users may find useful

What I am mainly looking for from maintainers is:

  • whether this pattern fits OpenClaw’s vision
  • whether official docs are the right place for it
  • whether it belongs in heartbeat docs, workspace docs, or both
  • whether the recommended structure should stay minimal or include a more complete template

If maintainers think this is a good fit, I’m happy to open a small docs-only PR.

extent analysis

TL;DR

Documenting an optional PENDING.md workspace pattern can help track durable commitments that must survive session reset, compaction, and multi-day execution boundaries.

Guidance

  • Consider documenting the PENDING.md pattern in docs/gateway/heartbeat.md and cross-referencing it in workspace documentation to provide a clear understanding of its usage.
  • Evaluate the need for a starter template, such as docs/templates/PENDING.md.example, to help users get started with the pattern.
  • Discuss with maintainers whether the recommended structure should stay minimal or include a more complete template to ensure it fits OpenClaw's vision.
  • Review existing mechanisms, such as Background Tasks, Cron, and Standing Orders, to clarify when to use the PENDING.md pattern and how it complements these features.

Example

A minimal example of the PENDING.md pattern could look like this:

### API Batch Job - Data Export
- Committed: 2026-04-17
- Deadline: 2026-04-22
- Description: Export 1000 records via rate-limited API
- Status: In Progress (800/1000 complete)
- Notes: API rate limited, cron resumes at 02:00 daily

This example demonstrates how the pattern can be used to track commitments and provide a readable record with status, deadline, and operator intent.

Notes

The PENDING.md pattern is intended as a community workspace convention, not a new built-in feature, and requires no runtime changes. It is essential to clarify its usage and boundaries to avoid confusion with existing mechanisms.

Recommendation

Apply the workaround by documenting the PENDING.md pattern, as it provides a lightweight and flexible solution for tracking durable commitments without requiring significant changes to the existing system.

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 - ✅(Solved) Fix [Feature]: Document a PENDING.md workspace pattern for cross-session commitment tracking [2 pull requests, 1 comments, 1 participants]