‹ 首页

create-ticket

@evolution-foundation · 收录于 5 天前 · 上游提交 2 个月前

Create a new ticket (persistent conversation/work thread) in EvoNexus. Assigns to an agent, sets priority, optionally links to a goal or project. Writes via POST /api/tickets. Use when the user says 'create a ticket', 'open an issue', 'add to Zara's queue', 'track this topic for later', 'assign X to Y agent', or wants to turn an ad-hoc conversation into persistent work.

适合你,如果需要在团队中创建并分配可追踪的工作项

/ 通过 npx 安装 校验哈希
npx oh-my-skill add evolution-foundation/evo-nexus/create-ticket
/ 通过 bash 安装
curl -fsSL https://oh-my-skill.com/install.sh | bash -s -- evolution-foundation/evo-nexus/create-ticket
/ 已经装过?验证本机副本,不用重装
npx oh-my-skill verify evolution-foundation/evo-nexus/create-ticket
安装目标可用 --agent / --scope 或 --to 明确指定;省略时只会在唯一已存在的 agent 目录上自动选择,零命中或多命中会停止并提示。content_hash 缺失或不一致均拒装。
509GitHub stars
~925上下文体积 · 单文件
索引托管

怎么用

商店整理自技能原文 · 版本 7f5dd76 · 表述以原文为准
它做什么

装上后,当你要创建持久性任务或工单时,Claude 会询问标题、描述、优先级、处理人等字段,然后通过 API 创建工单,并说明后续处理流程。

什么时候触发

当你说出“创建一个工单”、“打开一个 issue”、“添加到 Zara 的队列”等关键词,或者想把临时对话转为持久工作时触发。

装好后可以这样说
Claude 会收集字段并调用 API 创建工单。
Claude 会要求你确认字段并创建,然后告诉你下一步。
Claude 默认使用当前对话信息创建工单。
技能原文 SKILL.md作者撰写 · Apache-2.0 · 7f5dd76

Create Ticket

Create a ticket — persistent conversation/work thread with state and assignee.

When to use

Use tickets when:

  • The topic will come up again (customer retention, recurring bug, ongoing partnership)
  • The work needs an assignee and status workflow
  • A heartbeat should pull it from an inbox (tickets are the inbox)
  • Multiple people / agents will discuss over time (threaded comments)

Don't use tickets for:

  • Ephemeral questions (use a chat session)
  • Deterministic scheduled work (use a routine)
  • State-checking protocols (use a heartbeat + decision prompt)
Step 1: Collect fields

Ask the user:

  1. Title — short, specific ("Cliente X reclama de latência")
  2. Description — context (optional but recommended)
  3. Priorityurgent, high, medium (default), low
  4. Assignee agent — which agent handles this? Common picks:
  5. zara-cs — support / CS
  6. flux-finance — billing / payments
  7. atlas-project — project blockers
  8. aria-hr — HR / hiring
  9. lex-legal — contracts / compliance
  10. Goal link? Optional goal_id if this work moves a specific goal. Skip if not.
  11. Project link? Optional project_id for grouping without a specific goal.
Step 2: Call the API

Use from dashboard.backend.sdk_client import evo — auto-handles URL + auth.

The runtime injects the current agent slug and session id into your system prompt — pass them through so the ticket records provenance.

import json
from dashboard.backend.sdk_client import evo
ticket = evo.post("/api/tickets", {
    "title": "Cliente X reclama de latência",
    "description": "Print anexado no Intercom, 4s para carregar /dashboard",
    "priority": "high",
    "assignee_agent": "zara-cs",
    "goal_id": 3,
    "source_agent": "<agent-slug>",         # injected via system prompt at runtime
    "source_session_id": "<session-uuid>",  # injected via system prompt at runtime
})
print(json.dumps(ticket))   # use json.dumps, NOT print(ticket) — the UI auto-binds the session to the ticket when it sees a valid JSON ticket in stdout

Response includes the created ticket with id, status=open, created_at.

Step 3: Show what happens next

Explain to the user:

  1. Ticket appears in /issues?assignee=zara-cs inbox
  2. Zara's next heartbeat (step 3 — query inbox) will see it
  3. If priority is urgent, it jumps to front of queue
  4. When Zara acts, the ticket gets:
  5. locked_at / locked_by = zara-cs (atomic checkout)
  6. Comments added by Zara showing what was done
  7. Status eventually changes (in_progress → review → resolved → closed)
  8. Auto-release after lock_timeout_seconds (default 1800s) if Zara crashes mid-work
Step 4: Mentions (optional)

If the user says "and tell Flux to check billing", add a comment with:

from dashboard.backend.sdk_client import evo
evo.post(f"/api/tickets/{ticket['id']}/comments", {
    "body": "@flux-finance please confirm this customer's billing status",
})

The @flux-finance is parsed and fires a wake trigger — Flux's heartbeat wakes (within 30s debounce window) and picks up the ticket.

Step 5: Direct user to UI
  • /issues — global list with filters and search
  • /tickets/<id> — detail view with full timeline (comments + activity + status changes)
  • Bulk actions in /issues: close, reopen, delete, reassign, relink_goal
Notes
  • Tickets vs sessions: tickets persist (days/weeks), sessions are ephemeral. A session can bind to a ticket.
  • Closing a ticket doesn't delete comments or activity — the timeline remains.
  • Priority order: urgent > high > medium > low (enum with internal rank).

Related: .claude/rules/tickets.md, .claude/rules/heartbeats.md, .claude/rules/goals.md.

按 Apache-2.0 许可原样转载,未经改动 · 在 GitHub 查看 →

评论

登录即可评论;带「已验证安装」的,是发布者名下有本店的安装或持有记录。