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 ozzy-labs/suasor --skill person-cleanupgit clone --depth 1 https://github.com/ozzy-labs/suasorWrote 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/ozzy-labs/suasor/person-cleanup)<a href="https://agentmods.dev/skills/ozzy-labs/suasor/person-cleanup"><img src="https://agentmods.dev/badge/skills/ozzy-labs/suasor/person-cleanup/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/ozzy-labs/suasor/person-cleanup"><img src="https://agentmods.dev/badge/skills/ozzy-labs/suasor/person-cleanup.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.00119 | $0.00900 |
| Opus 5 | $0.00060 | $0.00450 |
| Sonnet 5 | $0.00024 | $0.00180 |
| Haiku 4.5 | $0.00012 | $0.00090 |
Grade A, and why
person-cleanup 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 10d 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
person-cleanup
connector author handle から投影された person の重複を、operator の判断で統合 / 分離する HITL write skill。connector identity は初期に 1 handle = 1 person で投影され(自動 fuzzy 同定なし)、同一人物の重複統合は人が明示的に行う(ADR-0022 / ADR-0004)。
いつ発火するか
- 「同一人物をまとめて」「people を整理」「重複した人物を統合」
- 「この handle とこの handle は同じ人」(merge)
- 「person を分離」「merge しすぎたので戻して」(split)
何をするか(MCP tool flow)
read で集めて、write は HITL。自動 fuzzy 同定はしない(ADR-0022 で却下。同一判断は人が下す)。
person.listで解決済み person を新しい更新順に引く。各 person はid/displayName/identityCount/identities[](connector/handle/displayName)。merge で空になった tombstone も見るならincludeEmpty: true- 同名・同 handle・connector 跨ぎなどから重複候補をホスト側で推定し、ユーザーに提示して確認を取る(同定の最終判断は人。本 skill は候補提示まで)
- ユーザーが「同一人物」と確認したペアのみ
person.merge(targetPersonId/sourcePersonId)で統合する。source の identity が target に付け替わり、source は空になる(可逆・event で監査可能) - 過剰 merge を訂正するときは
person.split(connector/handle/newPersonId?)で identity を別 person に分離する。newPersonId省略時は identity 本来の content 由来 person(merge を巻き戻す既定の戻り先)へ送る
制約
- HITL。人の承認なしに
person.merge/person.splitを呼ばない。auto-apply しない。自動 fuzzy 同定もしない。person.listは read(確認) - self-merge(同一 id)/ 未知の source person は tool error。既に空の person の再 merge は
noop(idempotent)。未知 identity の split は tool error、解決済みならnoop - merge / split は逆操作の対。
person.splitはperson.mergeの巻き戻しに使える - 本 skill は手順書のみで実処理を持たない
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.
- 10d ago First seen · 45 lines · 119 tokens per session scan A 5d298348490d
person-cleanup is a skill published in the GitHub repository ozzy-labs/suasor (0 stars, last pushed 1mo ago), licensed MIT. It adds 119 tokens to every session and 900 once invoked, about $0.0006 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-31.
Other skills, from other repositories
identity-work
A guided reflection skill for recognising when personal labels or fixed positions are distorting judgement, then using a new self-image to support behaviour change.
winapp-setup
Set up a Windows app project for MSIX packaging, Windows SDK access, or Windows API usage, or scaffold a brand-new WinUI 3 app. Use when creating or scaffolding a new WinUI app from scratch, adding Windows support to an Electron, .NET, C++, Rust, Flutter, or Tauri project, or restoring SDK packages after cloning.
winapp-frameworks
Framework-specific Windows development guidance for Electron, .NET (WPF, WinForms), C++, Rust, Flutter, and Tauri. Use when packaging or adding Windows features to an Electron app, .NET desktop app, Flutter app, Tauri app, Rust app, or C++ app.
winapp-maui
Package and sign .NET MAUI Windows apps with winapp, resolving the resizetizer manifest dependency. Use when packaging or signing a .NET MAUI Windows app, building a MAUI MSIX or signed unpackaged build in CI, or fixing 'manifest contains unresolved placeholders ($placeholder$)' errors from winapp package.
winapp-identity
Enable Windows package identity for desktop apps to access Windows APIs like push notifications, background tasks, share target, and startup tasks. Use when adding Windows notifications, background tasks, or other identity-requiring Windows features to a desktop app.
winapp-manifest
Create and edit Windows app manifest files (Package.appxmanifest or appxmanifest.xml) that define app identity, capabilities, and visual assets, or generate new assets from existing images. Use when creating a Windows app manifest for any app type (GUI, console, CLI tool, service), adding Windows capabilities…