PM AI Background Run to Supervision
Use this skill when an AI task can continue after the user leaves the current
screen, when a host exposes asynchronous execution, when a run can be resumed
later, or when a scheduled trigger may start work without a new user turn.
The output is a user-control and operations contract. It is not a queue,
scheduler, notification service, provider integration, or claim that a task is
complete because a run was accepted.
When to use
Use it when:
- a user delegates research, coding, monitoring, drafting, or another task
that may outlive the current request;
- a host returns a run ID and asks the client to poll, stream, resume, or
inspect events later;
- the product supports pause, cancel, steer, retry, scheduled, or recurring
agent work;
- a result may arrive after the user changed scope, closed the app, or lost a
connection;
- the agent may use tools, data, network, files, or external actions while the
user is away;
- product and engineering need a safe contract for progress, budget,
notification, result review, expiry, or handoff.
Do not use
Do not use this skill to:
- define ordinary in-session progress without delegated execution; use
pm-ai-task-to-progress;
- design a consequential approval step; use
pm-ai-approval-to-flow;
- define recovery after a human handoff; use
pm-ai-handoff-to-recovery;
- package a skill or control its distribution; use
pm-ai-skill-to-package;
- run a provider, schedule a job, send a notification, invoke a tool, change
permissions, or mutate a production record;
- show a made-up percentage, heartbeat, event, completion, or notification
receipt;
- paste raw prompts, customer content, credentials, tokens, cookies, private
URLs, or sensitive screen content into a public receipt.
Use Unknown, Not provided, Not run, Not measured, Not reproduced, or
Not covered when host or product evidence is missing.
Workflow
1. Frame the delegated job
Write one sentence:
Decide whether user job ... may continue after the current interaction,
within scope ..., budget ..., deadline ..., and stop boundary ....
Record the user, owner, desired outcome, current workaround, task duration,
deadline, data class, user timezone, and what remains the user's decision. A
background flag or scheduled trigger is not consent for every downstream
action.
2. Set the autonomy and action boundary
Classify the task as Substitute, Complement, Aid, or Non-negotiable.
Record autonomy level and action permissions:
| Action class |
Allowed while user is away? |
Required gate |
| read approved sources |
|
source and scope boundary |
| create a draft or analysis |
|
result review |
| write a file or branch |
|
workspace and diff boundary |
| call a third-party tool |
|
tool, data, and rate boundary |
| send, publish, pay, delete, or change access |
|
explicit approval or bounded policy |
| change the task scope |
|
user event or authorized policy |
List denied actions, tools, regions, tenants, data types, and times. If an
action can create an external side effect, a background run should stop at a
preview or approval boundary unless the policy and evidence explicitly allow
it.
3. Create the supervision ledger
Give the run a stable ID and a versioned scope. Record:
- task and outcome description;
- owner, requester, delegate, and decision authority;
- host, agent, model, prompt, skill, tool, and configuration versions;
- allowed sources, tools, files, network destinations, tenants, regions, and
maximum duration;
- budget, rate limit, retry, timeout, and concurrency boundary;
- stop, pause, cancel, expiry, and manual-handoff semantics;
- notification channel, event types, quiet hours, and stale-notice handling;
- data sent, state stored, retention, deletion, and third-party boundary;
- result reviewer, acceptance criteria, and downstream action.
Do not fill an identity or retention gap with a provider default. Keep the
unknown visible and choose Hold when the gap changes the risk.
4. Define the state machine
Use only states supported by the host or product contract:
draft
-> accepted -> queued -> working -> waiting
| | |
| | +-> paused -> working
| +--------> cancellation_requested
+---------------> failed | expired | blocked
working -> completed -> needs_review -> accepted | rejected | manual
cancellation_requested -> cancelled | cancellation_uncertain
For every transition record the event source, timestamp, scope version,
allowed user action, next update, and terminal condition. Accepted means the
host or product acknowledged the request. It does not mean work started or
the result is safe.
5. Design honest progress and events
Show a percentage only when the system has a measured denominator. Otherwise
show the last real checkpoint, elapsed time, current phase, event timestamp,
next expected update, and a stop control. Distinguish:
- queued from working;
- no recent event from active work;
- partial output from a verified result;
- host acknowledgement from tool completion;
- cancellation requested from cancellation confirmed;
- terminal failure from unknown outcome.
Summarize tool and source activity without exposing hidden reasoning or raw
sensitive data. If the host cannot provide a fresh event, say so and surface a
safe recovery choice.
6. Define pause, cancel, expiry, and steer
For each control, answer:
- Can new tool actions start after the request?
- Can an in-flight action finish after the request?
- What state proves the control took effect?
- What data or partial work is retained?
- Can the user resume, narrow scope, hand off, or discard safely?
- What happens if the host response is delayed or lost?
If cancellation is best effort, label it cancellation_uncertain, prevent new
actions where possible, and route consequential work to a human. Expiry must
stop or quarantine the run according to a stated host guarantee; it cannot be
represented by a quiet disappearance.
7. Set notification and result review rules
Define when to notify, what the notification says, and whether it remains
valid after the scope, permission, or user context changes. A notification
must identify run ID, state, timestamp, data boundary, and the next safe
action. It must not imply that a result is approved.
At completion, separate:
- work actually performed;
- sources and tools used;
- partial or failed steps;
- external side effects, if any;
- checks that passed or were
Not run;
- what the user must review or approve;
- how to resume, export, reject, or hand off.
8. Apply budget, privacy, and security gates
Check task budget, token and tool limits, p50/p95 latency, retries, rate
limits, network egress, provider state retention, deletion, tenant boundary,
secret handling, prompt injection, and notification leakage. A background run
can outlive the screen, so the data and permission lifetime must be explicit.
If the host is stateful or stores output for polling, record that retention
and compare it with the product promise. Do not claim zero retention or
immediate deletion without host-specific evidence.
9. Leave a privacy-safe receipt
Return a compact record with no raw customer content:
run_id: stable_id
decision: hold | supervise | pause | cancel | handoff | not_run
user_job: one_sentence_job
autonomy:
scan_zone: substitute | complement | aid | non_negotiable
level: 0
scope:
allowed_actions: []
denied_actions: []
scope_version: value_or_not_provided
state:
current: draft | accepted | queued | working | waiting | paused | completed | failed | cancelled | expired | blocked | needs_review
last_event_at: timestamp_or_not_provided
event_source: host_or_not_provided
controls:
pause: supported | unsupported | unknown
cancel: confirmed | best_effort | unknown
expiry: policy_or_not_provided
operations:
budget: measured | not_provided
latency: measured | not_measured
retention: reviewed | not_run
result_review: required | accepted | rejected | not_run
notification: sent | suppressed | not_run
fallback: manual_path_or_not_provided
not_covered: []
next_action: one_safe_action
Output contract
Return these sections in order:
Decision and user job
Autonomy and action boundary
Supervision ledger
State and event contract
Progress, pause, cancel, expiry, and handoff
Notification and result review
Evaluation and security cases
Privacy-safe receipt
Not covered
Next safe action
The decision must be one of Supervise, Hold, Pause, Cancel, Handoff,
or Not run. Do not use Completed as a product decision; completion is a
host state that still may require user review.
Common rationalizations to reject
- "It is only background mode, so the same permission is fine." Re-check the
lifetime, scope, data, and notification boundary after the user leaves.
- "Queued means the agent is working." Show the host state and last event.
- "The progress bar helps trust." Use a percentage only with a real
denominator; otherwise show an honest checkpoint and elapsed time.
- "Cancel was clicked, so it stopped." Distinguish requested, confirmed,
uncertain, and terminal cancellation states.
- "The result arrived, so it is approved." Keep result review and external
side-effect approval explicit.
- "A notification is success." Measure task completion, correction, retry,
abandonment, escalation, and downstream outcome separately.
- "The scheduler owns consent." Record who authorized this scope, when it
expires, and what happens after a user changes it.
- "The provider stores it only briefly, so privacy is solved." Verify the
host, endpoint, region, deletion path, and third-party transfers.
Edge cases
- If the host returns an ID but no event stream, keep the run
Queued or
Unknown and provide a safe retry or manual path.
- If a connection drops during execution, show
Unknown outcome until the
host confirms terminal state; do not duplicate an external action.
- If the user changes scope while the run is working, version the scope and
pause or revalidate before the next action.
- If a scheduled run starts after consent or data access expires, skip or hold
the run and record the reason.
- If the host can pause new work but an in-flight tool may finish, disclose the
race and quarantine the result before user acceptance.
- If a result includes a secret-shaped value or private source, redact the
receipt and route to an authorized review path.
- If a background task reaches its budget, preserve a partial artifact only if
its provenance and incomplete state are visible.
- If a provider's retention or cancellation semantics differ by platform,
split the contract and do not generalize across hosts.
Adjacent routing
pm-ai-task-to-progress owns ordinary task lifecycle and progress tracking;
this skill owns work that persists beyond the immediate interaction.
pm-ai-approval-to-flow owns the consequential approval decision.
pm-ai-handoff-to-recovery owns recovery after a human or agent handoff.
pm-ai-run-to-observability owns run traces and operational observability;
this skill consumes the safe event contract for user supervision.
pm-ai-cost-to-guardrail owns cost and latency limits when background
duration is not the primary decision.
pm-ai-skill-to-package owns package discovery and distribution, not the
delegated run itself.
pm-ai-computer-use-to-control owns graphical UI observation and action,
including its own stop and postcondition boundary.
Final check
Before returning the contract, confirm:
- user job, owner, desired outcome, duration, deadline, scope, and autonomy are
explicit;
- allowed, denied, approval-required, tool, data, tenant, region, budget, and
network boundaries are recorded;
- every state has an event source, timestamp, user control, and terminal rule;
- progress is based on real checkpoints or is labeled unknown;
- pause, cancel, expiry, connection loss, stale scope, and handoff paths are
explicit;
- notification and result review do not imply approval or completion;
- privacy, retention, secret, injection, permission, and rate checks are
separate from ordinary quality checks;
- receipt excludes raw content and records
Not run or Not covered gaps;
- no background run, tool action, notification, schedule, or production
mutation was performed by this documentation-only skill.
1---2name: pm-ai-background-run-to-supervision3description: Use when a user delegates an AI or agent task that may continue after the current interaction, run asynchronously, resume later, or start on a schedule. Produce a source-bounded supervision contract for scope, autonomy, state, checkpoints, pause, cancellation, expiry, notification, result review, retention, budget, fallback, and recovery.4---56# PM AI Background Run to Supervision78Use this skill when an AI task can continue after the user leaves the current9screen, when a host exposes asynchronous execution, when a run can be resumed10later, or when a scheduled trigger may start work without a new user turn.1112The output is a user-control and operations contract. It is not a queue,13scheduler, notification service, provider integration, or claim that a task is14complete because a run was accepted.1516## When to use1718Use it when:1920- a user delegates research, coding, monitoring, drafting, or another task21 that may outlive the current request;22- a host returns a run ID and asks the client to poll, stream, resume, or23 inspect events later;24- the product supports pause, cancel, steer, retry, scheduled, or recurring25 agent work;26- a result may arrive after the user changed scope, closed the app, or lost a27 connection;28- the agent may use tools, data, network, files, or external actions while the29 user is away;30- product and engineering need a safe contract for progress, budget,31 notification, result review, expiry, or handoff.3233## Do not use3435Do not use this skill to:3637- define ordinary in-session progress without delegated execution; use38 `pm-ai-task-to-progress`;39- design a consequential approval step; use `pm-ai-approval-to-flow`;40- define recovery after a human handoff; use `pm-ai-handoff-to-recovery`;41- package a skill or control its distribution; use42 `pm-ai-skill-to-package`;43- run a provider, schedule a job, send a notification, invoke a tool, change44 permissions, or mutate a production record;45- show a made-up percentage, heartbeat, event, completion, or notification46 receipt;47- paste raw prompts, customer content, credentials, tokens, cookies, private48 URLs, or sensitive screen content into a public receipt.4950Use `Unknown`, `Not provided`, `Not run`, `Not measured`, `Not reproduced`, or51`Not covered` when host or product evidence is missing.5253## Workflow5455### 1. Frame the delegated job5657Write one sentence:5859> Decide whether user job `...` may continue after the current interaction,60> within scope `...`, budget `...`, deadline `...`, and stop boundary `...`.6162Record the user, owner, desired outcome, current workaround, task duration,63deadline, data class, user timezone, and what remains the user's decision. A64background flag or scheduled trigger is not consent for every downstream65action.6667### 2. Set the autonomy and action boundary6869Classify the task as `Substitute`, `Complement`, `Aid`, or `Non-negotiable`.70Record autonomy level and action permissions:7172| Action class | Allowed while user is away? | Required gate |73|---|---|---|74| read approved sources | | source and scope boundary |75| create a draft or analysis | | result review |76| write a file or branch | | workspace and diff boundary |77| call a third-party tool | | tool, data, and rate boundary |78| send, publish, pay, delete, or change access | | explicit approval or bounded policy |79| change the task scope | | user event or authorized policy |8081List denied actions, tools, regions, tenants, data types, and times. If an82action can create an external side effect, a background run should stop at a83preview or approval boundary unless the policy and evidence explicitly allow84it.8586### 3. Create the supervision ledger8788Give the run a stable ID and a versioned scope. Record:8990- task and outcome description;91- owner, requester, delegate, and decision authority;92- host, agent, model, prompt, skill, tool, and configuration versions;93- allowed sources, tools, files, network destinations, tenants, regions, and94 maximum duration;95- budget, rate limit, retry, timeout, and concurrency boundary;96- stop, pause, cancel, expiry, and manual-handoff semantics;97- notification channel, event types, quiet hours, and stale-notice handling;98- data sent, state stored, retention, deletion, and third-party boundary;99- result reviewer, acceptance criteria, and downstream action.100101Do not fill an identity or retention gap with a provider default. Keep the102unknown visible and choose `Hold` when the gap changes the risk.103104### 4. Define the state machine105106Use only states supported by the host or product contract:107108```text109draft110 -> accepted -> queued -> working -> waiting111 | | |112 | | +-> paused -> working113 | +--------> cancellation_requested114 +---------------> failed | expired | blocked115116working -> completed -> needs_review -> accepted | rejected | manual117cancellation_requested -> cancelled | cancellation_uncertain118```119120For every transition record the event source, timestamp, scope version,121allowed user action, next update, and terminal condition. `Accepted` means the122host or product acknowledged the request. It does not mean work started or123the result is safe.124125### 5. Design honest progress and events126127Show a percentage only when the system has a measured denominator. Otherwise128show the last real checkpoint, elapsed time, current phase, event timestamp,129next expected update, and a stop control. Distinguish:130131- queued from working;132- no recent event from active work;133- partial output from a verified result;134- host acknowledgement from tool completion;135- cancellation requested from cancellation confirmed;136- terminal failure from unknown outcome.137138Summarize tool and source activity without exposing hidden reasoning or raw139sensitive data. If the host cannot provide a fresh event, say so and surface a140safe recovery choice.141142### 6. Define pause, cancel, expiry, and steer143144For each control, answer:1451461. Can new tool actions start after the request?1472. Can an in-flight action finish after the request?1483. What state proves the control took effect?1494. What data or partial work is retained?1505. Can the user resume, narrow scope, hand off, or discard safely?1516. What happens if the host response is delayed or lost?152153If cancellation is best effort, label it `cancellation_uncertain`, prevent new154actions where possible, and route consequential work to a human. Expiry must155stop or quarantine the run according to a stated host guarantee; it cannot be156represented by a quiet disappearance.157158### 7. Set notification and result review rules159160Define when to notify, what the notification says, and whether it remains161valid after the scope, permission, or user context changes. A notification162must identify run ID, state, timestamp, data boundary, and the next safe163action. It must not imply that a result is approved.164165At completion, separate:166167- work actually performed;168- sources and tools used;169- partial or failed steps;170- external side effects, if any;171- checks that passed or were `Not run`;172- what the user must review or approve;173- how to resume, export, reject, or hand off.174175### 8. Apply budget, privacy, and security gates176177Check task budget, token and tool limits, p50/p95 latency, retries, rate178limits, network egress, provider state retention, deletion, tenant boundary,179secret handling, prompt injection, and notification leakage. A background run180can outlive the screen, so the data and permission lifetime must be explicit.181182If the host is stateful or stores output for polling, record that retention183and compare it with the product promise. Do not claim zero retention or184immediate deletion without host-specific evidence.185186### 9. Leave a privacy-safe receipt187188Return a compact record with no raw customer content:189190```yaml191run_id: stable_id192decision: hold | supervise | pause | cancel | handoff | not_run193user_job: one_sentence_job194autonomy:195 scan_zone: substitute | complement | aid | non_negotiable196 level: 0197scope:198 allowed_actions: []199 denied_actions: []200 scope_version: value_or_not_provided201state:202 current: draft | accepted | queued | working | waiting | paused | completed | failed | cancelled | expired | blocked | needs_review203 last_event_at: timestamp_or_not_provided204 event_source: host_or_not_provided205controls:206 pause: supported | unsupported | unknown207 cancel: confirmed | best_effort | unknown208 expiry: policy_or_not_provided209operations:210 budget: measured | not_provided211 latency: measured | not_measured212 retention: reviewed | not_run213result_review: required | accepted | rejected | not_run214notification: sent | suppressed | not_run215fallback: manual_path_or_not_provided216not_covered: []217next_action: one_safe_action218```219220## Output contract221222Return these sections in order:2232241. `Decision and user job`2252. `Autonomy and action boundary`2263. `Supervision ledger`2274. `State and event contract`2285. `Progress, pause, cancel, expiry, and handoff`2296. `Notification and result review`2307. `Evaluation and security cases`2318. `Privacy-safe receipt`2329. `Not covered`23310. `Next safe action`234235The decision must be one of `Supervise`, `Hold`, `Pause`, `Cancel`, `Handoff`,236or `Not run`. Do not use `Completed` as a product decision; completion is a237host state that still may require user review.238239## Common rationalizations to reject240241- "It is only background mode, so the same permission is fine." Re-check the242 lifetime, scope, data, and notification boundary after the user leaves.243- "Queued means the agent is working." Show the host state and last event.244- "The progress bar helps trust." Use a percentage only with a real245 denominator; otherwise show an honest checkpoint and elapsed time.246- "Cancel was clicked, so it stopped." Distinguish requested, confirmed,247 uncertain, and terminal cancellation states.248- "The result arrived, so it is approved." Keep result review and external249 side-effect approval explicit.250- "A notification is success." Measure task completion, correction, retry,251 abandonment, escalation, and downstream outcome separately.252- "The scheduler owns consent." Record who authorized this scope, when it253 expires, and what happens after a user changes it.254- "The provider stores it only briefly, so privacy is solved." Verify the255 host, endpoint, region, deletion path, and third-party transfers.256257## Edge cases258259- If the host returns an ID but no event stream, keep the run `Queued` or260 `Unknown` and provide a safe retry or manual path.261- If a connection drops during execution, show `Unknown outcome` until the262 host confirms terminal state; do not duplicate an external action.263- If the user changes scope while the run is working, version the scope and264 pause or revalidate before the next action.265- If a scheduled run starts after consent or data access expires, skip or hold266 the run and record the reason.267- If the host can pause new work but an in-flight tool may finish, disclose the268 race and quarantine the result before user acceptance.269- If a result includes a secret-shaped value or private source, redact the270 receipt and route to an authorized review path.271- If a background task reaches its budget, preserve a partial artifact only if272 its provenance and incomplete state are visible.273- If a provider's retention or cancellation semantics differ by platform,274 split the contract and do not generalize across hosts.275276## Adjacent routing277278- `pm-ai-task-to-progress` owns ordinary task lifecycle and progress tracking;279 this skill owns work that persists beyond the immediate interaction.280- `pm-ai-approval-to-flow` owns the consequential approval decision.281- `pm-ai-handoff-to-recovery` owns recovery after a human or agent handoff.282- `pm-ai-run-to-observability` owns run traces and operational observability;283 this skill consumes the safe event contract for user supervision.284- `pm-ai-cost-to-guardrail` owns cost and latency limits when background285 duration is not the primary decision.286- `pm-ai-skill-to-package` owns package discovery and distribution, not the287 delegated run itself.288- `pm-ai-computer-use-to-control` owns graphical UI observation and action,289 including its own stop and postcondition boundary.290291## Final check292293Before returning the contract, confirm:294295- user job, owner, desired outcome, duration, deadline, scope, and autonomy are296 explicit;297- allowed, denied, approval-required, tool, data, tenant, region, budget, and298 network boundaries are recorded;299- every state has an event source, timestamp, user control, and terminal rule;300- progress is based on real checkpoints or is labeled unknown;301- pause, cancel, expiry, connection loss, stale scope, and handoff paths are302 explicit;303- notification and result review do not imply approval or completion;304- privacy, retention, secret, injection, permission, and rate checks are305 separate from ordinary quality checks;306- receipt excludes raw content and records `Not run` or `Not covered` gaps;307- no background run, tool action, notification, schedule, or production308 mutation was performed by this documentation-only skill.