create-ticket
GitHub用于在 EvoNexus 中创建工单,将临时对话转化为持久化工作线程。支持设置标题、优先级、指派代理及关联目标/项目,并通过 API 提交,适用于需持续跟踪的任务场景。
Trigger Scenarios
Install
npx skills add evolution-foundation/evo-nexus --skill create-ticket -g -y
SKILL.md
Frontmatter
{
"name": "create-ticket",
"description": "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."
}
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:
- Title — short, specific ("Cliente X reclama de latência")
- Description — context (optional but recommended)
- Priority —
urgent,high,medium(default),low - Assignee agent — which agent handles this? Common picks:
zara-cs— support / CSflux-finance— billing / paymentsatlas-project— project blockersaria-hr— HR / hiringlex-legal— contracts / compliance
- Goal link? Optional
goal_idif this work moves a specific goal. Skip if not. - Project link? Optional
project_idfor 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:
- Ticket appears in
/issues?assignee=zara-csinbox - Zara's next heartbeat (step 3 — query inbox) will see it
- If priority is
urgent, it jumps to front of queue - When Zara acts, the ticket gets:
locked_at/locked_by= zara-cs (atomic checkout)- Comments added by Zara showing what was done
- Status eventually changes (in_progress → review → resolved → closed)
- 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.
Version History
- 7f5dd76 Current 2026-07-25 04:52


