CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

yao-job

Background job management — start, monitor, wait, stop long-running commands. ALWAYS invoke this skill when the user asks to run background tasks, check job status, read job output, or manage long-running commands.

72

Quality

91%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Low

Low-risk findings worth noting

SKILL.md
Quality
Evals
Security

Background Jobs

Tools

  • yao_job_start — Start a command. background false (default) blocks until done and returns output_tail; background true returns job_id immediately.
  • yao_job_list — List jobs. Supports --status filter and --limit/--offset pagination.
  • yao_job_get — Get full details for a job (or daemon by ID).
  • yao_job_output — Read process output (works for both job and daemon IDs).
  • yao_job_wait — Block until a background job finishes or timeout expires. Jobs only, not daemons.
  • yao_job_stop — Kill a running job.

Parameters

yao_job_start

ParamRequiredDefaultDescription
commandyes—Shell command to execute
descriptionyes—Concise 5–10 word summary
backgroundnofalsetrue returns immediately; false blocks until done
argsno—Additional arguments (rarely needed; prefer inline in command)
working_dirnoworkspaceWorking directory
max_duration_msno—Kill the job after this many milliseconds

yao_job_list

ParamDefaultDescription
statusallFilter: running, stopping, completed, failed, cancelled, all
limit20Max items per page
offset0Skip first N items

yao_job_output

ParamRequiredDescription
job_idyesJob or daemon ID
offsetnoByte offset to read from (0 = beginning)

Output read behavior:

  • Returns all available content from offset in a single read (no limit parameter).
  • Ring buffer caps at 10 MB; older content beyond this is discarded.
  • When content has been discarded, lossy=true in the response.
  • size = total bytes the process has produced; offset = earliest readable byte position.
  • Example: a 20 MB output has size=20000000, offset≈10000000, lossy=true — the first ~10 MB was discarded.

yao_job_wait

ParamRequiredDefaultDescription
job_idyes—Job ID
timeout_msno60000Timeout in milliseconds

Response Fields

All responses are JSON. Job objects contain:

id, kind, session_id, status, description, background,
command, command_argv, command_line, pid, pgid, user,
started_at, finished_at, duration_ms, exit_code, signal, detail, seq

Foreground start (background=false)

Returns the job object plus output_tail (≤4KB tail of stdout+stderr):

{ "id": "job_...", "status": "completed", "exit_code": 0, ..., "output_tail": "hello world\n" }

List (paginated)

{ "jobs": [...], "total": 130, "offset": 0, "limit": 20, "has_more": true }

Wait

{ "job": { ... }, "timed_out": false }

Stop (already terminal)

{ "job": { ... }, "detail": "already in terminal state (failed); no action taken" }

Errors

Structured JSON with code and message:

{ "error": { "code": "invalid_argument", "message": "job_id is required" } }

Codes: invalid_argument, not_found, internal.

Usage Rules

  1. Use background true (not bare --background) for commands expected to run longer than 30 seconds.
  2. Always provide a description.
  3. Foreground is default — the result and output come back in one call.
  4. Monitor background output with yao_job_output to check progress.
  5. Use yao_job_wait to block until a background job completes rather than polling.

BackgroundJobReceipt

When a background job finishes, the system delivers a <BackgroundJobReceipt> XML message. Upon receiving it:

  1. Review the status, exit_code, cause, and output_tail.
  2. If status=failed, investigate and take corrective action.
  3. If status=completed, acknowledge and continue the task.
Repository

YaoApp/yao

Path

tools/skills/yao-job/SKILL.md

Last updated
First committed

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.