6.2 KiB
name, description
| name | description |
|---|---|
| long-task-governor | Use when a request is not ordinary single-turn chat and needs task governance, checkpoint discipline, state management, or anti-stall rules |
Long-Task Governor
Use this skill whenever work is not ordinary general chat.
Core Rule
If the request cannot be fully completed within a single conversational reply without follow-up work, external waiting, task state, staged execution, or owner-visible progress tracking, treat it as a long task.
In short:
- ordinary general chat → answer directly
- everything else → enter long-task governance
What this skill governs
This skill provides the workflow layer for:
- decision split:
general_chatvslong_task - long-task state machine
- checkpoint structure
- no-fake-progress enforcement
- stop-clock / anti-stall handling
This skill is intentionally implemented as a maintainable external workflow layer, not a core OpenClaw runtime patch.
1. General chat vs long task
general_chat
Only classify as ordinary chat when all are true:
- can be fully answered now
- no follow-up work
- no external waiting
- no repo / file / logs / system inspection needed
- no task state needed
- no checkpoint needed
- no subagent needed
- no "half-done" intermediate state
long_task
If any condition above is false, treat the work as long_task.
Examples:
- inspect logs and report back
- compare two implementations after reading files
- modify code or config
- deploy or verify
- delegate to subagents
- anything that needs checkpointing or future follow-up
2. Required state machine
A governed long task may only be in one of these states:
activewaiting_userblockedpausedpending_verification
Do not use vague state words like:
- ongoing
- still working
- processing
- in progress
Meaning
active
- there is a real concrete next action happening now
- not just waiting for time to pass
- not just waiting for the next reminder
waiting_user
- the task cannot reasonably continue until the user answers or decides something
blocked
- a concrete blocker prevents progress
- the blocker and unblock condition must be explicit
paused
- the task is intentionally not advancing
- stop pretending it is still actively moving
pending_verification
- implementation or investigation reached a meaningful checkpoint
- not complete by assistant authority
- waiting for verification / owner judgement
3. Minimal long-task record
When entering long-task governance, create or update a record with at least:
task_namestatuscurrent_stepnext_steplast_milestone_atnext_report_conditionwaiting_onblockerevidence_count
Use the template file task-record-template.md in this skill directory.
4. Checkpoint protocol
Every long-task checkpoint must contain exactly these five sections:
- 目前狀態
- 本段完成
- 下一步
- 下次回報條件
- 是否需要您介入
Checkpoint is not completion. After any checkpoint, the task must clearly remain in one of:
activewaiting_userblockedpausedpending_verification
Never send a checkpoint and then silently stall.
Use checkpoint-template.md in this skill directory.
5. No-fake-progress rule
Only count as real progress if there is at least one of:
- new file change
- new verification output
- new decision or conclusion
- blocker state changed
- new external result / reply
The following are not progress:
- only updating timestamps
- only responding to reminders
- repeating "still working"
- status sync without new facts
If you only have status sync, say it is status sync. Do not dress it up as progress.
6. Stop-clock gate
If repeated checkpoints show no new evidence, do not keep the task cosmetically active. You must choose one:
pausedblocked- explicit request for new direction
- stop periodic progress claims
active requires a concrete ongoing action.
Without that, default to paused.
7. How to use this skill in practice
When this skill applies:
- decide if the request is ordinary chat or long task
- if long task, create/update a task record
- choose one of the five valid states
- if reporting progress, use the 5-part checkpoint structure
- before claiming progress, check for real evidence
- if no evidence and no concrete action, stop the clock
- if the run is clearly heading toward a user pass/fail or accept/reject judgement on Telegram, prepare a button-path before the final handoff
- if the entire test itself exists to validate Telegram decision closure, run it as a button-driven flow rather than a normal long plain-text report
8. Integration guidance
This skill should be paired with:
- the current session
WORKFLOW.md - optional kanban sync
- optional Lobby record
- subagent use when needed
But this skill itself is the governance layer and should remain independently maintainable.
Telegram interaction guard
When operating under long-task governance on Telegram:
- do not end checkpoints, test progress, or next-step decisions with plain-text menus like
1 / 2 / 3orA / B / C - if a choice is genuinely required, use Telegram inline buttons
- if buttons are required, send them first via the
messagetool rather than first producing a normal text reply - if the workflow can already predict the final handoff is a user judgement, move to a button-path before the final closing paragraph
- if the test's whole point is to validate button closure, prefer a button-driven flow from the outset
- if no real choice is needed, execute the most reasonable next step directly
- if the assistant accidentally emits a plain-text choice menu, or says buttons will be used without actually sending them first, treat that as a workflow violation and convert the lesson into a permanent rule
This prevents governed long-task flows from degrading back into ambiguous text-only decision gates.
9. Success criteria
This skill is working correctly when:
- non-chat work always enters a governed state
- checkpoints no longer cause silent stalls
- no-evidence updates are not mislabeled as progress
- stalled work becomes
paused/blockedinstead of fake-active - owner can always tell the real state of the work