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 voxpelli/vp-claude --skill tag-syncgit clone --depth 1 https://github.com/voxpelli/vp-claudeWrote 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/voxpelli/vp-claude/tag-sync)<a href="https://agentmods.dev/skills/voxpelli/vp-claude/tag-sync"><img src="https://agentmods.dev/badge/skills/voxpelli/vp-claude/tag-sync.svg" alt="Measured on agentmods" 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.00126 | $0.02438 |
| Opus 5 | $0.00063 | $0.01219 |
| Sonnet 5 | $0.00025 | $0.00488 |
| Haiku 4.5 | $0.00013 | $0.00244 |
Grade A, and why
tag-sync 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 8d 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 — 270 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Tag Sync
Fetch tags from Raindrop, curate the top N by usage, characterize each with a one-line description, and write or sync the vocabulary file. Follows the vendor-sync pattern: registry (vocabulary file) -> fetch from external (Raindrop API) -> diff against local -> preview -> apply after approval.
The output file at ~/.claude/references/raindrop-tags.md is consumed by
/session-bookmarks when selecting tags for new bookmarks.
Arguments
/tag-sync— sync existing vocabulary (or create if no file exists)/tag-sync 100— set tag count to 100, then sync/create/tag-sync --reset— force full recreation (re-characterize + re-cluster all)
Edge Cases
- Raindrop MCP unavailable — report error and exit. Do not write a partial file.
find_tagsreturns fewer thantag_count— use all available tags. Store the actual count in frontmatter so the next sync has a realistic target.ai-bookmarkednot in top N — always inject it regardless of rank. It is listed inmandatory_tagsfrontmatter.- No bookmarks found for a tag (characterization step) — infer from tag name
alone. Flag with
*in preview:*auto-inferred from name. ~/.claude/references/directory missing — create it before writing.- Vocabulary fetched today, no explicit args — warn: "Vocabulary was
already synced today. Pass a count or
--resetto force." Do not re-fetch. - User declines all changes — report "No changes made" and exit.
Workflow
Step 1: Parse arguments
Accept an optional integer argument or --reset flag.
- Integer sets
tag_count(how many tags to include). --resetforces creation mode even if the file exists.- No argument: use
tag_countfrom existing file, or default 75.
Step 2: Load existing vocabulary
Read(file_path="~/.claude/references/raindrop-tags.md")
- File exists — enter sync mode. Extract
tag_count,fetched_at, and existing tag entries (tag name, count, characterization, cluster). Also extract optional config fields from frontmatter:blocklist,context_tags,conventions. Preserve these unchanged through the sync cycle — they are user-authored config, not Raindrop-derived data. Record which of the three are absent from frontmatter — Step 8 will backfill them from the seed values defined below. Check staleness: iffetched_atmatches today's date and no explicit arguments were passed, warn "Vocabulary was already synced today. Pass a count or--resetto force." and Stop. Do not proceed to Step 3. - File missing (or
--reset) — enter creation mode. Seed default config fields:blocklist: ["5", "4", "3", "2", "imported", "toread", "unread", "for:*"],context_tags: [],conventions: [].
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.
- 8d ago First seen · 270 lines · 126 tokens per session scan A 3d0b6c4d8324
tag-sync is a skill published in the GitHub repository voxpelli/vp-claude (3 stars, last pushed 10d ago), licensed MIT. It adds 126 tokens to every session and 2,438 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
synergy-tracker
Manage cross-project synergy tracking between sibling projects. Use when the user wants to log a shared pattern, a divergence, an extraction candidate, or something a sibling project has that this one doesn't. Also use when the user wants to promote synergy entries to Basic Memory (workflow 5). NOT for upstream…
upstream-tracker
Manage upstream issue tracking for this project. Use when the user wants to log a bug or friction point in a vendor package or npm dependency, review open upstream items, resolve a tracked issue, run a trend review, generate the upstream observations section of a sprint retrospective, promote upstream observations to…
retrospective
Run a sprint retrospective for this project. Use when the user says 'retrospective', 'retro', 'close out the sprint', 'what went well', 'generate retro', or wants to generate a RETRO-NN.md file. Reads UPSTREAM-.md files, recent git history, and conversation context to pre-populate the retrospective. Do NOT use for…
backlog-groomer
Manage the beads backlog for this project. Use when the user wants to review or triage open issues, reprioritize the backlog, identify obsolete issues to close, investigate a topic to inform future work, create new issues from research findings, or enrich an existing issue with external context. Trigger phrases…
swarm-wave
Orchestrate multi-agent development sprints with wave-based parallelism. Use when the user wants to plan a swarm sprint, partition work into file-disjoint waves, map file contention across open issues, run a post-wave quality gate with review agents, manage agent backpressure, run a parallel research wave, or…
harden-memories
Audit the bd remember store and recommend which entries to prune, so each one earns its per-session bd prime injection cost. Read-only: it proposes a triage table plus the exact bd forget / migration commands; you run them. Use when bd remember entries have accumulated, feel stale, redundant, or conflicting, or when…