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 HananxR/Tadado --skill tadado-activity-importgit clone --depth 1 https://github.com/HananxR/TadadoWrote 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/hananxr/tadado/tadado-activity-import)<a href="https://agentmods.dev/skills/hananxr/tadado/tadado-activity-import"><img src="https://agentmods.dev/badge/skills/hananxr/tadado/tadado-activity-import/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/hananxr/tadado/tadado-activity-import"><img src="https://agentmods.dev/badge/skills/hananxr/tadado/tadado-activity-import.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.00108 | $0.04025 |
| Opus 5.5 | $0.00043 | $0.01610 |
| Sonnet 5.5 | $0.00022 | $0.00805 |
| Haiku 4.5 | $0.00011 | $0.00402 |
Grade A, and why
tadado-activity-import 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.
How it starts
The opening of the file, as written. The whole thing — 225 lines — stays where its author put it; the contents beside it link to each section on GitHub.
📦 本 skill 是自包含的:转换器就在
scripts/migrate-activity.mjs, 样例在sample-input.md。把整个tadado-activity-import/目录拷走就能用 —— 不依赖任何仓库(脚本零依赖,只要机器上有 Node)。仓库里这份是权威源;要让它在本机生效,把整个目录拷到工作区的
.claude/skills/下即可。 不要在那边改内容:两份必然分叉,改这里。
py 活动清单 → Tadado2 可直接导入的 md
这个 skill 做什么
| 输入 | 一份从 py 版「活动分析」导出的 .md 清单(三层结构:标签 → 任务 → 活动) |
| 输出 | 一份能被 Tadado2 的「数据迁入」直接导入的 .md,任务与活动一条不少 |
它只做文本转换:不读数据库、不碰应用数据、不调任何 CLI、不改任何既有文件(除非显式要写)。 导入与导出都由用户手动在两边应用里做 —— 你只负责把中间那份 md 转出来。
转换器在哪
就在本 skill 里:scripts/migrate-activity.mjs(相对本文件的位置)。它是零依赖纯 ESM,
node / deno / bun 任何一个都能跑,不需要 npm install。
先定位本 skill 自己的目录(即本 SKILL.md 所在目录),再按相对路径调它 —— 不要去找别的副本, 也不要在用户的项目里另找一份。拿不准目录就问用户,别乱猜路径。
为什么自带而不是外链:skill 要能被单独分享 —— 别人拿到这个目录就得能跑。
(仓库内那条端到端验收跑的就是这一份:desktop/e2e/smoke.mjs 调
resources/skill/tadado-activity-import/scripts/migrate-activity.mjs 产出真文件、喂进应用的
「数据迁入」、断言「共 3 条 · 0 行认不出」。一份实现,两处验。)
铁律
- 先预演,再写出。 默认只解析、只对账、不写文件(加
--apply才写)。 - 认不出就停下问。 任何不符合已知行型的行都要报出来 —— 不许「看着差不多就跳过」, 也不许自己猜一种解释。
- 数字必须平。
源活动行数 = 输出 + 系统记录过滤 + 重复剔除(续行并入上一条)。 平不了就不许写出,先把对不上的查清楚。 - 不替用户拍板。 见「必须停下来问用户」一节,每一条都要问过再继续。
- 跑不了脚本时,不许自己硬转。 见下一节 —— 这是本 skill 最容易犯的错。
用法
在本 skill 目录下执行(下面的 scripts/ 是相对路径,按实际位置给):
# 1) 预演(默认不写任何文件)—— 先读这份对账报告
node scripts/migrate-activity.mjs <清单.md>
# 2) 想留档一份报告
node scripts/migrate-activity.mjs <清单.md> --report 报告.json
# 3) 对账全过、待确认项都问过之后,才生成
node scripts/migrate-activity.mjs <清单.md> --apply
# 默认写到清单旁边:<清单>-可导入.md
# 这个名字**会显示在导入对话框里**,也是用户切分区时的对照物,别随手改
# 4) 用户手改过那份输出、确实要按当前源重写
node scripts/migrate-activity.mjs <清单.md> --apply --force
想先看看它长什么样,拿自带样例跑一遍(不写任何文件):
node scripts/migrate-activity.mjs sample-input.md
退出码:0 干净 · 1 有待确认项 · 2 对账失败 / 有认不出的行 / 输出已存在
(后两种都不许往下走)。
默认不覆盖已有输出:用户很可能手改过那份文件 —— 比如工具报了「标签超过 3 个」,
而它按原则不替用户删,用户就得自己去删到 3 个。重跑 --apply 会把那些手改静默抹掉,
所以只有确实要按当前源重写时才加 --force。
What ships with it
2 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
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 · 225 lines · 108 tokens per session scan A fae0c58305e5
tadado-activity-import is a skill published in the GitHub repository HananxR/Tadado (34 stars, last pushed 7d ago), licensed MIT. It adds 108 tokens to every session and 4,025 once invoked, about $0.0004 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-22.
Other skills, from other repositories
orbit-notion
Open Orbit briefing skill — selected by the Orbit pipeline when Notion is the user's only connected connector, or when the user explicitly scopes their daily digest to Notion. Pulls the past 24 hours of document edits, comments, mentions, and database row changes from the user's authenticated Notion connection and…
instrument-data-to-allotrope
Convert laboratory instrument output files (PDF, CSV, Excel, TXT) to Allotrope Simple Model (ASM) JSON format or flattened 2D CSV. Use this skill when scientists need to standardize instrument data for LIMS systems, data lakes, or downstream analysis. Supports auto-detection of instrument types. Outputs include full…
apify-youtube-transcript-scraper
Get YouTube captions, timestamped quotations, SRT/VTT and translated transcripts for videos, channels and playlists through the harshmaur/youtube-transcript-scraper Apify Actor.
legal-hold
Issue, refresh, release, or report on legal holds — drafts the hold notice as .docx, updates legalhold fields in log.yaml, and calendars the next refresh. Use when the user says "issue a hold", "refresh hold", "release hold", or asks for a portfolio-wide hold status report.
baoyu-youtube-transcript
A tool for downloading the written captions, subtitles, chapter information, speaker labels, and cover image from a YouTube video using its URL or ID.
feishu
Work with Feishu or Lark bots, docs, sheets, bitables, approval flows, and OpenAPI/MCP setup without hardcoding credentials.