support-digest

A local tool that reads exported customer-support tickets in JSON or CSV and produces a daily summary after hiding personal information. It does not fetch data from support systems or call outside APIs.

In plain words
What is it for?
Use it to turn a dated ticket export into a Markdown digest and a JSON file of statistics. Those files can support daily reviews, business reports, or other local tools.
Why use it?
It saves people from manually reading large batches of tickets to spot recurring complaints and troublesome features. Keeping the work on local files helps teams with strict data-handling rules.

Skill for Claude CodeCodex

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add skills/channinglua/prax-agent/support-digest
Any agent
npx skills add ChanningLua/prax-agent --skill support-digest
Clone the repo
git clone --depth 1 https://github.com/ChanningLua/prax-agent

Made for: Claude Code, Codex.

Per session 31 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 2,127 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00031 $0.02127
Opus 5 $0.00015 $0.01064
Sonnet 5 $0.00006 $0.00425
Haiku 4.5 $0.00003 $0.00213

Measured 2d ago against content hash a4855375207c, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

support-digest scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

src/prax/skills/support-digest/SKILL.md · 211 lines

How it starts

The opening of the file, as written. The whole thing — 211 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Support Ticket Digest

痛点:PM 每天早上要花 20 分钟翻昨天 200 条客服工单,才能知道"哪个 feature 坑多"、"有没有新涌出的抱怨"。这个 skill 把翻 ticket 的动作自动化,所有数据留在本地,不调任何外部 API,方便合规严格的团队。

何时触发

  • cron 每天早上 9 点跑
  • 用户手动:"生成昨日客服简报"
  • 客服系统 CSV/JSON 导出到指定目录触发 hook

输入

  • 必需.prax/inbox/tickets-<YYYY-MM-DD>.json(或 .csv 也支持)
    • 标准字段:id / created_at / status / category / subject / body / customer_email / severity
    • 字段缺失时尽量宽容,但 id / created_at / body 必须有
  • 可选.prax/support-digest.yaml 配置(见下方)

Prax 负责从 Zendesk / Freshdesk 拉数据——export 是 IT 或客服负责人的事。skill 只做本地文件处理。

输出

.prax/vault/support/<YYYY-MM-DD>/digest.md

外加原始统计数据的结构化副本:

.prax/vault/support/<YYYY-MM-DD>/stats.json

用于下游工具(BI、周报生成等)复用。

工作流程

Step 1:定位输入

# 最新的 tickets 文件
ls -t .prax/inbox/tickets-*.{json,csv} 2>/dev/null | head -1

没找到 → 停下来告诉用户:"请把昨日工单导出为 JSON/CSV 放到 .prax/inbox/tickets-YYYY-MM-DD.json"。

Step 2:加载 + 脱敏

读进来后立刻脱敏用户信息:

字段 脱敏规则
customer_email [email protected]f***@b***.com
customer_phone 13812345678138****5678
body 里的 email 正则替换同上
body 里的手机/银行卡号 正则识别,全替换成 [REDACTED]
body 里出现的 SSN / 身份证号 全替换成 [REDACTED]

脱敏后才进入后续处理——避免不小心把 PII 写进 digest。

Step 3:分类统计

category 字段(或从 subject 启发式推断)聚类:

  • 计数:今日 vs 昨日 vs 过去 7 天均值
  • 热度:新增占比(category_today / category_7d_avg)
  • 严重程度:severity=high 的占比
  • 新类别:今日有而过去 7 天没出现过的 category

Step 4:识别 top issues

抽取前 5 条"关注度高"的工单,标准(按分数降序):

信号 分数
severity=high +3
status=escalated / status=re-opened +2
同一 category 今日数量 > 7d_avg × 2 +2
body 包含 "refund" / "退款" / "退费" +2
body 包含 "lawyer" / "律师" / "投诉" / "举报" +3
response_time > 24h(如果有此字段) +1

取前 5 条,每条附脱敏后的 body 摘录(≤ 100 字)。

Step 5:趋势识别

对比"今日 vs 过去 7 天均值":

  • 📈 涨幅 > 50% 的 category:列出来
  • 📉 跌幅 > 50% 的 category:列出来(有时代表问题解决了)
  • 🆕 今日首次出现:全列

Step 6:写 digest

模板:

---
date: 2026-04-22
ticket_count: 187
category_count: 12
highlights_count: 5
generated_at: 2026-04-22T09:05:00+08:00
---

# 客服简报 · 2026-04-22

## 总览(一句话)
昨日共 **187** 条工单,比 7 日均值 +12%;`billing` 类翻倍,`auth` 类回落。

## 今日亮点(top 5)

### 1. [high] Billing — duplicate charge
- 工单数:23(占 12%)
- 代表性摘要:"On 4-20 I was charged twice for the Pro plan. Please refund immediately."
- 建议 owner:@finance-ops

### 2. [escalated] 登录流 — OAuth timeout
- ...

## 趋势

### 📈 涨
- `billing`:23 vs 7d 均值 11(+109%)
- `mobile-app-crash`:8 vs 3(+167%)

### 📉 跌
- `auth`:12 vs 19(-37%)

### 🆕 新出现
- `integration-slack`(6 条)

## 分类统计

| Category | Today | 7d avg | Δ |
|---|---|---|---|
| billing | 23 | 11 | +12 |
| auth | 12 | 19 | -7 |
| ...|

## 报告位置
- Raw 脱敏 JSON:`.prax/vault/support/2026-04-22/tickets-redacted.json`
- Stats:`.prax/vault/support/2026-04-22/stats.json`
- 原始文件已归档到:`.prax/inbox/archive/tickets-2026-04-22.json`

Read the full file on GitHub · 211 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 2d ago First seen · 211 lines · 31 tokens per session scan A a4855375207c

Subscribe to this mod's changes

support-digest is a skill published in the GitHub repository ChanningLua/prax-agent (272 stars, last pushed 1mo ago), licensed MIT. It adds 31 tokens to every session and 2,127 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.