Borrowing it
Nothing to install: this file belongs to haoxiang-xu/PuPu. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/haoxiang-xu/PuPu/main/.claude/skills/topic-optimizer/SKILL.mdgit clone --depth 1 https://github.com/haoxiang-xu/PuPuWrote 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/haoxiang-xu/pupu/topic-optimizer)<a href="https://agentmods.dev/skills/haoxiang-xu/pupu/topic-optimizer"><img src="https://agentmods.dev/badge/skills/haoxiang-xu/pupu/topic-optimizer/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/haoxiang-xu/pupu/topic-optimizer"><img src="https://agentmods.dev/badge/skills/haoxiang-xu/pupu/topic-optimizer.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector warn
SkillSpector: 1 finding, up to high
These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →
- high Anti-Refusal · line 26 Skill instructs the agent to omit warnings, disclaimers, or ethical commentary. Stripping safety caveats hides risk from the user and is a common jailbreak preamble.Fix: Remove instructions that suppress warnings, disclaimers, or ethical commentary. Let the agent surface safety-relevant caveats to the user.
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.00094 | $0.01016 |
| Opus 5 | $0.00047 | $0.00508 |
| Sonnet 5 | $0.00019 | $0.00203 |
| Haiku 4.5 | $0.00009 | $0.00102 |
Grade A, and why
topic-optimizer 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 9d 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 — 43 lines — stays where its author put it; the contents beside it link to each section on GitHub.
PuPu Topic Optimizer
Iteratively optimize haoxiang-xu/PuPu's GitHub topics with measurement, not taste. Companion to growth-analyst (traffic/download collection lives there — reuse its snapshots when today's already exist in .claude/archive/growth/).
Core loop: measure → record → wait a full window → change few → repeat. A tag change without a recorded before/after snapshot is wasted — GitHub traffic retains only 14 days, so unrecorded effects are unrecoverable.
Data files (append-only, in .claude/archive/growth/)
| File | Content |
|---|---|
topics-history.ndjson |
One JSON line per run: {date, topics:[...], volumes:{tag:repo_count}, traffic:{views14, uniques14, search_referrers:{src:{count,uniques}}}, stars, latest_release_dl} |
YYYY-MM-DD-topics-change.md |
One per applied change: old set (= rollback set), new set, rationale, rollback command |
Every run MUST append a history line, even when no change is made — no-change runs are the control data.
Procedure
- Collect — current topics:
gh api repos/haoxiang-xu/PuPu --jq '.topics'. Traffic: reuse today's growth snapshot files if present, else fetch views/referrers (needs push access). - Volumes — per-tag ecosystem size:
gh api "search/repositories?q=topic:$t&per_page=1" --jq .total_count. Runs on every run, including no-change/PENDING runs — the history line requires it. ⚠️ Search API allows ~30 req/min:sleep 2.5between calls, batch ≤25, on 403 wait 70s then resume. Core API (repos/...) is not affected. - Record — append the history line BEFORE analyzing.
- Attribute — compare against prior history lines relative to the last change date. Effect metrics, in order of trust: search-referrer uniques (Google/Yandex/Bing) → 14d visitor uniques → stars delta → downloads/day. Minimum observation window: 14 days per change. Inside the window, verdict is
PENDING— never judge early, never overlap two changes. - Propose — after a full window, propose the next iteration: replace the worst performers with fresh candidates. ≤5 tag swaps per iteration after the initial cleanup (2026-08-21, 15 swaps — that one-time reset is the baseline, don't repeat its size). Confirm with the project owner before applying; always write the change file (with rollback set) before
gh api -X PUT .../topics.- If the project owner explicitly insists on changing tags inside an open window: apply it (project owner overrides), but first mark the interrupted change's verdict
CONFOUNDEDin its change file, and start a fresh 14-day window from today. Never silently merge two windows.
- If the project owner explicitly insists on changing tags inside an open window: apply it (project owner overrides), but first mark the interrupted change's verdict
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.
- 9d ago First seen · 43 lines · 94 tokens per session scan A 4ce66b5dad6b
topic-optimizer is a skill published in the GitHub repository haoxiang-xu/PuPu (36 stars, last pushed yesterday), licensed Apache-2.0. It adds 94 tokens to every session and 1,016 once invoked, about $0.0005 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.
Other skills, from other repositories
skill-creator
Create new Comis skills, modify and improve existing skills, and validate them against the platform's manifest schema. Use this skill whenever the user wants to create a skill from scratch, turn a workflow into a reusable skill, update or fix an existing skill, understand the skill format, or asks about how skills…
autonomy
Use when a task is more than a single step — a read/research fan-out, spawning sub-agents, running a DAG, scheduling your own work, or messaging your channel. Teaches when to route work through orchestrate(script), how to fan out with capability attenuation, how to read a denial, and the bounded contract you operate…
deep-research
MANDATORY: Conduct systematic, multi-angle web research before answering any request to understand or explain a topic properly, deeply, thoroughly, comprehensively, or beyond a short paragraph, even when general knowledge could produce an answer. Also use for comparisons, explicit research, current online information…
log-troubleshooting
Investigate and troubleshoot daemon logs at /.comis/logs/. Covers NDJSON log format, Pino level codes, field dictionary, and staged analysis strategies for efficient troubleshooting of large log files. Use this skill whenever the user asks about logs, errors, warnings, daemon issues, slow operations, debugging daemon…
find-skills
MANDATORY: For requests asking whether a skill or specialized capability exists, load this skill and run its catalog workflow before answering. This includes elliptical follow-ups such as 'find something that does' when the preceding turn names the task. Do not answer from general capabilities, search workspace…
image-generation
Generate images using structured prompts and optional reference images. Supports character design, scenes, product visualization, and any visual content creation. Use this skill when the user requests to generate, create, imagine, draw, or visualize images, characters, portraits, scenes, products, or any visual…