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.
npx skills add zj-unicom-ai/UniEmployee --skill renewal-scangit clone --depth 1 https://github.com/zj-unicom-ai/UniEmployeeWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/zj-unicom-ai/uniemployee/renewal-scan)<a href="https://agentmods.dev/skills/zj-unicom-ai/uniemployee/renewal-scan"><img src="https://agentmods.dev/badge/skills/zj-unicom-ai/uniemployee/renewal-scan/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/zj-unicom-ai/uniemployee/renewal-scan"><img src="https://agentmods.dev/badge/skills/zj-unicom-ai/uniemployee/renewal-scan.svg" alt="Reviewed on agentmods" width="80" height="20"></a>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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00063 | $0.00793 |
| Opus 5.5 | $0.00025 | $0.00317 |
| Sonnet 5.5 | $0.00013 | $0.00159 |
| Haiku 4.5 | $0.00006 | $0.00079 |
Grade A, and why
renewal-scan 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 1mo 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.
What it actually says
续约与商机跟进扫描
你是客户经理,扫描结果必须基于数据集真实跑数,禁止估算或凭记忆报数。 所有结论用中文结构化输出。
触发条件
- 用户问"哪些客户合同快到期"、"续约提醒"、"到期清单"
- 用户问商机跟进情况、哪些商机停滞了、跟进优先级
- 用户要求生成跟进清单、做客户盘点或续约盘点
数据集(共享只读目录 workspace/datasets/)
crm_contracts.csv:合同台账,列: contract_id / customer(客户联系人)/ company(企业)/ product / amount_wan(万元)/ sign_date(签约日)/ expire_date(到期日)crm_opportunities.csv:商机台账,列: opp_id / customer / company / product / stage(初步接触 / 需求确认 / 方案报价 / 商务谈判 / 赢单 / 输单)/ amount_wan(万元)/ last_follow_up(最后跟进日)/ note(上次跟进备注)
业务口径(写进结论):
- 合同到期日距今 ≤ 30 天为「临期」,≤ 90 天为「预警」
- 活跃商机(stage 不在赢单 / 输单)last_follow_up 距今 > 14 天为「停滞」
- 优先级排序:临期大额合同 > 停滞大额商机 > 预警合同 > 其余
执行步骤(用 execute 跑 pandas)
步骤 1:明确扫描范围
确认用户要看续约、商机还是全部;未指明时按上述口径全量扫描。
今天日期用 get_current_time 获取。
步骤 2:跑数(每步跑一次确认,禁止凭一次结果推断全局)
- 读 crm_contracts.csv,计算 expire_date 距今天数,筛出临期 / 预警合同, 按到期日升序、金额降序排列;
- 读 crm_opportunities.csv,筛 stage 不在(赢单 / 输单)且 last_follow_up 距今 > 14 天的停滞商机,按停滞天数、金额降序排列。
步骤 3:生成跟进清单
每条输出:客户(联系人)/ 企业 / 事项 / 关键日期与金额 / 风险等级 / 建议动作与话术:
- 临期合同:续约沟通话术(强调合作成果 + 续约方案引导),建议提前 2 周触达
- 停滞商机:破冰话术(结合 note 中上次跟进的背景继续推进)
原则
- 数据截止日以数据集内最大日期为准,回答中说明统计口径
- 禁止对未在数据集中的客户给续约或跟进建议
- 需要某客户的完整背景时,转到 customer-360 技能流程补齐
- 用户决定跟进动作后涉及投诉或重大承诺的,按红线调用 create_ticket 走人工审批
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.
- 1mo ago First seen · 54 lines · 63 tokens per session scan A 438d40937996
renewal-scan is a skill published in the GitHub repository zj-unicom-ai/UniEmployee (362 stars, last pushed 8d ago), licensed MIT. It adds 63 tokens to every session and 793 once invoked, about $0.0003 per session on Opus 5.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-09-13.
Other skills, from other repositories
webshop-attribute-verifier
Verifies product attributes on a web shop detail page by extracting price, comparing color availability, validating specifications, and confirming option selections against user requirements before purchase. Use when you need to check if a product matches requirements, verify product details before buying, confirm…
webshop-query-interpreter
Interprets a user's shopping query to extract key product requirements such as item type, attributes, and constraints. Use when a new shopping instruction is received and you need to parse natural language into structured criteria (product category, desired features, price limits) before performing a search. The…
webshop-product-detail-check
Examines a specific product's detailed page to verify it matches the user's requirements, checking price, description, features, and reviews. Use when you have navigated to a product detail page from search results and need to confirm the product meets all user-specified constraints before purchasing. It provides a…
webshop-product-detail-navigator
Navigates to and interacts with a specific product's detail page. This skill is triggered after a candidate product ID is selected from search results. It performs the click action to load the product page and then identifies available interactive elements (like flavor or size selectors) that need to be configured to…
webshop-result-filter
Filters search results by evaluating product listings against specific user constraints like price, features, or ratings. Use when you are on a search results page and need to systematically identify which products meet all given criteria before selecting one for closer inspection. Takes a list of products with their…
webshop-attribute-selector
Selects specific product attributes (e.g., flavor, size) on a product detail page to match user requirements. Triggered when a product page presents configurable options and the parsed query specifies needed values. It identifies the correct option from available clickables (e.g., 'smoked bacon' for flavor, '4 ounce…