task-tickets

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Tickets

Tickets

tickets 是工作区里的
.yomi/tickets/
目录,一个任务一个工单文件,跨 session 持久。核心用法是派活:工单文件就是派工单,状态在文件里流转,别人发现你工作的唯一途径就是工单状态。
tickets are stored in the
.yomi/tickets/
directory of the workspace, with one ticket file per task, persisting across sessions. The core use case is task assignment: the ticket file serves as a work order, with status transitions recorded within the file. The only way others can track your work is through the ticket status.

建单:走脚本

Creating Tickets: Use the Script

建单用
scripts/ticket.sh
(在本 skill 目录下),不手写 frontmatter——脚本保证 id/slug/时间戳/格式合规:
bash
<baseDir>/scripts/ticket.sh new --dir <工作区> --title "任务名" --body "描述 + 验收标准"   # 输出文件路径
--body
缺省且 stdin 非 tty 时从 stdin 读。
Create tickets using
scripts/ticket.sh
(located in this skill directory) instead of writing the frontmatter manually—the script ensures compliance with ID/slug/timestamp/format requirements:
bash
<baseDir>/scripts/ticket.sh new --dir <workspace> --title "Task Name" --body "Description + Acceptance Criteria"   # Outputs file path
If
--body
is omitted and stdin is not a tty, the body will be read from stdin.

状态流转:直接改文件

Status Transitions: Modify the File Directly

状态机:
pending → claimed → done | blocked
blocked → claimed
(复工);
claimed → pending
(重置);
done
是终态不流转(要重做请新建工单)。
  • 签收
    status:
    claimed
    ;frontmatter 加(或改)一行
    owner_session_id: "sess_..."
    ——填自己的 session id(在系统提示的 Environment 段)。
  • 完结
    status:
    done
    ;正文末尾补一节标题恰为
    ## Result
    的结果段(结果摘要 + 关键产物路径)。
  • 卡壳
    status:
    blocked
    ;正文末尾追加一行
    > [YYYY-MM-DD] 卡在哪、需要什么
  • 重置回 pending
    status:
    pending
    ;删掉
    owner_session_id:
    行;可追加备注行说明原因。
改 frontmatter 时注意:键名不动;别加
updated_at
(显示时间由文件 mtime 派生)。
State machine:
pending → claimed → done | blocked
;
blocked → claimed
(resume work);
claimed → pending
(reset);
done
is a final state with no transitions (create a new ticket if rework is needed).
  • Claim a ticket: Change
    status:
    to
    claimed
    ; add (or modify) the line
    owner_session_id: "sess_..."
    in the frontmatter—fill in your own session ID (found in the Environment section of system prompts).
  • Complete a ticket: Change
    status:
    to
    done
    ; add a section titled exactly
    ## Result
    at the end of the body (include a result summary + paths to key deliverables).
  • Mark as blocked: Change
    status:
    to
    blocked
    ; append a line
    > [YYYY-MM-DD] Blocked on X, needs Y
    at the end of the body.
  • Reset to pending: Change
    status:
    to
    pending
    ; delete the
    owner_session_id:
    line; you may append a note explaining the reason.
When modifying the frontmatter: keep the key names unchanged; do not add
updated_at
(display time is derived from the file's mtime).

文件格式

File Format

.yomi/tickets/<id>-<slug>.md
markdown
---
title: 一句话任务名
status: pending | claimed | done | blocked
owner_session_id: sess_...    # 签收时填自己的 session id
created_at: 2026-08-09T10:00:00+08:00
---

> **工单规则**(编辑本文件前必读;没装 task-tickets skill 也按此来):
> - 状态机:pending → claimed → done | blocked;blocked → claimed(复工);claimed → pending(重置);done 终态不流转(重做请新建工单)。
> - 签收:status 改 claimed;frontmatter 加 `owner_session_id: "sess_..."`(自己的 session id)。
> - 完结:status 改 done;文末补 `## Result` 节(结果摘要 + 产物路径)。
> - 卡壳:status 改 blocked;文末追加 `> [YYYY-MM-DD] 卡点与需要`> - frontmatter 键名不动;别加 updated_at(显示时间由文件 mtime 派生)。

任务描述 + 可检查的验收标准。
.yomi/tickets/<id>-<slug>.md
:
markdown
---
title: One-line Task Name
status: pending | claimed | done | blocked
owner_session_id: sess_...    # Fill in your session ID when claiming
created_at: 2026-08-09T10:00:00+08:00
---

> **Ticket Rules** (read before editing this file; follow even if you haven't installed the task-tickets skill):
> - State machine: pending → claimed → done | blocked; blocked → claimed (resume); claimed → pending (reset); done is final (create new ticket for rework).
> - Claim: Change status to claimed; add `owner_session_id: "sess_..."` (your session ID) to frontmatter.
> - Complete: Change status to done; add `## Result` section at end (summary + deliverable paths).
> - Blocked: Change status to blocked; append `> [YYYY-MM-DD] Blockage and needs` at end.
> - Keep frontmatter keys unchanged; do not add updated_at (display time derived from file mtime).

Task description + verifiable acceptance criteria.

Result

Result

(完成时写:结果摘要 + 关键产物路径)

顶部规则块由建单脚本自动注入——**工单自解释,执行者无需安装本 skill**。id 是 7 位随机字母数字串(如 `t3m9q2x`),脚本建单自动铸造——kernel 投影取文件名第一个 `-` 前为 id。
(When completed: Result summary + paths to key deliverables)

The top rule block is automatically injected by the ticket creation script—**tickets are self-explanatory, so executors don't need to install this skill**. The ID is a 7-character random alphanumeric string (e.g., `t3m9q2x`), automatically generated by the script when creating a ticket—the kernel extracts the part before the first `-` in the filename as the ID.

派活(协调者)

Task Assignment (Coordinator)

  1. 拆工作包,每包用脚本
    new
    建单。派工单正文要上下文写全——执行者没有你的上下文,工单就是它知道的一切。
  2. spawn 子 agent 时在 prompt 里指明它的工单路径("你的单是
    .yomi/tickets/t3m9q2x-xxx.md
    ");一批任务可以并发派多个。工单顶部自带编辑规则,执行者没装本 skill 也能照做。
  3. 完成标准:每个工作包都有工单且已随 spawn 指派,
    grep -l "status: pending" .yomi/tickets/*.md
    能列出全部未签收工单。
  1. Break down work into packages, and create a ticket for each package using the
    new
    script. Include full context in the ticket body—executors don't have your context, so the ticket is all they know.
  2. When spawning subagents, specify their ticket path in the prompt (e.g., "Your ticket is
    .yomi/tickets/t3m9q2x-xxx.md
    "); multiple tasks can be assigned concurrently. The top of the ticket includes editing rules, so executors can follow them even without installing this skill.
  3. Completion criteria: Every work package has a ticket assigned upon spawning, and
    grep -l "status: pending" .yomi/tickets/*.md
    lists all unclaimed tickets.

干活(执行者)

Task Execution (Executor)

  1. 被派到任务后先签收再动手(按「状态流转」节置 claimed + 填 owner)——签收让工单与现实一致。
  2. 干活。完成置 done 写 Result;卡壳置 blocked 写清卡点。过程性的进展/发现写到 blackboard(多 agent 协作时,见 blackboard skill);工单记状态与结果,不必搬运过程。
  3. 完成标准:工单状态与真实进度一致。口头说"做完了"不算数,文件里 done 才算。
  1. Claim the ticket before starting work after being assigned a task (set status to
    claimed
    and fill in the owner as per the "Status Transitions" section)—claiming ensures the ticket matches reality.
  2. Perform the task. Mark as
    done
    and write the Result when finished; mark as
    blocked
    and specify the blockage if stuck. Record process updates/findings in the blackboard (for multi-agent collaboration, see the blackboard skill); the ticket only tracks status and results, no need to include process details.
  3. Completion criteria: The ticket status matches the actual progress. Saying "done" verbally doesn't count—it's only done when marked as
    done
    in the file.

聚合验收(协调者)

Aggregation and Acceptance (Coordinator)

  1. grep "^status:" .yomi/tickets/*.md
    一把看全局;子 agent 会自己更新文件,汇总靠读文件,不逐个发消息追问。
  2. 全部 done 后统一验收(可派
    verifier
    模板做独立验收),通过的文件
    mv
    .yomi/tickets/archive/
  3. 完成标准:主目录只剩未完结工单。
  1. Use
    grep "^status:" .yomi/tickets/*.md
    to check the overall status; subagents will update the files themselves, so aggregate by reading the files instead of asking each one individually.
  2. After all tickets are marked
    done
    , conduct a unified review (you can assign a
    verifier
    template for independent review), and move approved files to
    .yomi/tickets/archive/
    .
  3. Completion criteria: Only incomplete tickets remain in the main directory.