source-command-track-mentions
GitHub搜索并追踪Claude Code Ultimate Guide或Florian Bruniaux项目的在线提及,利用Perplexity深度研究识别新内容,更新mentions.yaml和mentions.json跟踪器,支持干跑、自动添加及提交功能。
Trigger Scenarios
Install
npx skills add FlorianBruniaux/claude-code-ultimate-guide --skill source-command-track-mentions -g -y
SKILL.md
Frontmatter
{
"name": "source-command-track-mentions",
"description": "Search for new online mentions of the Claude Code Ultimate Guide or Florian Bruniaux's public project portfolio and update the relevant tracker"
}
source-command-track-mentions
Use this skill when the user asks to run the migrated source command track-mentions.
Command Template
Track Mentions Workflow
Find new online mentions of either the Claude Code Ultimate Guide or the wider public project portfolio.
The guide catalog lives in docs/media-mentions/mentions.yaml. The cross-project catalog lives in
~/Sites/perso/florian-portfolio/src/data/mentions.json.
Usage
/track-mentions # Search + report new mentions, confirm before adding
/track-mentions --dry-run # Search + report only, no YAML changes
/track-mentions --scheduled # Unattended report-only run, equivalent to --dry-run
/track-mentions --add-all # Add all confirmed results after explicit approval in this session
/track-mentions --all-projects # Search the active GitHub portfolio and update the portfolio catalog
/track-mentions --commit # Commit only the validated tracker files after an approved update
--scheduled always wins over write flags. A scheduled run must not edit files, create a commit,
push, open a pull request, or publish a tracker update.
Step 1: Load existing tracker
For the default guide mode, read docs/media-mentions/mentions.yaml to get:
- Current
meta.total_mentionscount - All existing
urlfields → build a deduplication set docs/media-mentions/review-queue.yaml→ keep inaccessible candidates pending and rejected URLs excluded
For --all-projects:
- Read the public
FlorianBruniauxGitHub profile and list active repositories owned by that account. - Exclude forks, landing-only repositories, support repositories such as
homebrew-tap, and RTK. - Read
~/Sites/perso/florian-portfolio/src/data/mentions.jsonto get tracked projects, source URLs, and existing multi-project assignments. - Treat one canonical URL as one source even when it names several projects.
Step 2: Run Perplexity deep research
Use mcp__perplexity__perplexity_research with reasoning_effort: "high". Append the normalized URLs
from the confirmed catalog and review queue as <KNOWN_URLS>. Search broadly on every run instead of
assuming that a weekly time window captures pages indexed late.
Find all articles, blog posts, newsletters, Reddit threads, Twitter/X posts, LinkedIn posts,
YouTube videos, podcasts, GitHub issues/repos, and directories that mention "Claude Code
Ultimate Guide" by Florian Bruniaux (GitHub: FlorianBruniaux/claude-code-ultimate-guide,
website: cc.bruniaux.com). Search broadly for third-party content only - exclude the GitHub
repo itself and cc.bruniaux.com own pages.
Return exactly three groups:
- `new_confirmed`: evidence is accessible and contains an explicit project identifier
- `already_tracked`: canonical URL matches `<KNOWN_URLS>`
- `rejected_or_unverified`: title collision, inaccessible evidence, owned property, or uncertain attribution
For each result provide: canonical URL, publication date if available, author/platform name, language,
project identifier found, evidence location, one sentence on how the source references the guide,
classification, confidence, and metadata problems.
Also search explicitly for:
- "cc.bruniaux.com" cited as a resource on third-party sites
- "claude-code-ultimate-guide florian bruniaux" in blog posts and tutorials
- "FlorianBruniaux" in dev tutorials referencing the guide
- The guide mentioned in non-English content (French, Spanish, German, Korean, Portuguese, etc.)
Known canonical URLs for deduplication:
<KNOWN_URLS>
If Perplexity returns no results (model refuses citing knowledge cutoff), fall back to WebSearch with these parallel queries:
"Claude Code Ultimate Guide" -site:github.com -site:cc.bruniaux.com
site:reddit.com "cc.bruniaux.com" OR "Claude Code Ultimate Guide"
site:dev.to OR site:hashnode.com OR site:medium.com "Claude Code Ultimate Guide" "florian" OR "bruniaux"
"Claude Code Ultimate Guide" twitter OR x.com
Then use WebFetch on each candidate URL to verify the guide is explicitly mentioned by name or URL.
Treat a result as confirmed only when the page itself, its public metadata, or an indexed snippet
contains at least one project identifier: the guide name, the canonical repository slug, or
cc.bruniaux.com. A matching generic title such as "ultimate Claude Code guide" is not enough.
Classify every confirmed result before reporting it:
editorial: article, newsletter, podcast, or video with independent commentarysocial: third-party LinkedIn, X, Instagram, or Facebook postforum: Reddit, Hacker News, forum, or community discussiontranslation: translated or adapted repository that credits the originalmirror: copied or republished guide contentadoption: a third-party repository visibly embeds, configures, or uses the projectregistry: a package or protocol registry entry proving distribution coverageautomated_directory: generated index, catalog, MCP directory, or repository documentation service
Do not count the project's own pages, the author's own social posts, GitHub topic pages generated from the repository's own metadata, or referral query parameters as earned third-party mentions. Keep automated directories separate from organic mentions. Flag incorrect install commands, package names, star counts, line counts, authorship, or capabilities instead of silently copying them.
Step 3: Deduplicate
For each result from Perplexity:
- Normalize the URL (strip trailing slash, lowercase domain)
- Check against existing URLs in the YAML
- Check against pending and rejected URLs in
review-queue.yaml - Resolve obvious redirects and compare the canonical destination
- Skip if already tracked
- Keep inaccessible candidates pending; never promote them from a repeated snippet alone
Step 4: Report new mentions
Display a table for review:
New mentions found: N
| # | Kind | Platform | Author | Title | Evidence | Metadata issues | URL | Date |
|---|------|----------|--------|-------|----------|-----------------|-----|------|
| 1 | ... | ... | ... | ... | Confirmed | None | ... | ... |
After the table, report separate counts:
- organic mentions:
editorial,social, andforum - adaptations:
translationandmirror - visible adoption:
adoption - distribution coverage:
registry - automated indexes:
automated_directory
List probable or inaccessible candidates separately. Never add them as confirmed entries without user approval and an explicit uncertainty note.
If --dry-run or --scheduled: stop here, no changes.
Step 5: Add to the relevant catalog (unless --dry-run)
In default mode, add entries to docs/media-mentions/mentions.yaml using the rules below.
In --all-projects mode, add one entry to the portfolio JSON with a projects array containing every
explicitly cited project id and an explicit group. Never duplicate a source to make per-project totals
larger. Add a newly discovered active project to the top-level projects array even when its verified
mention count is zero.
Writing requires explicit user approval in the current interactive session. --add-all does not count
as approval when replayed by an automation. For each approved new mention:
- Assign next sequential id (zero-padded to 3 digits)
- Infer
platformfrom the source type:- Blog/newsletter →
article - reddit.com →
reddit - linkedin.com/posts/* (own profile florian-bruniaux) →
linkedin-own - linkedin.com/posts/* (other) →
linkedin-other - twitter.com / x.com →
twitter - youtube.com →
video - github.com/issues or github.com/discussions →
forum - news.ycombinator.com →
forum - Curated list / registry / directory →
directory - podcasts.apple.com / spotify.com →
podcast - instagram.com →
instagram
- Blog/newsletter →
- Set
reach: unknown(unless view count is visible in snippet) - Set
status: active - Set
first_seen: <today's date> - Write entry to YAML under the appropriate section comment
Step 6: Update meta
- Increment
meta.total_mentionsby the number of added entries - Set
meta.last_updatedto today's date
Step 7: Update README stats table
Recount entries by platform and update the stats table in docs/media-mentions/README.md.
Step 8: Validate
Run:
python3 scripts/check-media-mentions.py
Do not commit if IDs, canonical URLs, totals, platforms, or review-queue boundaries fail validation.
Step 9: Commit only when requested
Without --commit, report the changed files and stop. With --commit, stage only the validated tracker
files. Never use a broad git add in a dirty worktree.
git add docs/media-mentions/mentions.yaml docs/media-mentions/README.md docs/media-mentions/review-queue.yaml
git commit -m "docs: track-mentions - add N new mentions (YYYY-MM-DD)"
Notes
- Skip own properties (cc.bruniaux.com pages, GitHub repo itself, FlorianBruniaux profile)
- Skip mentions where the guide is cited only by implication or context, not by name or URL
- Put ambiguous or inaccessible cases in
review-queue.yaml; do not add them tomentions.yaml - Keep rejected false positives in the review queue so later scheduled runs do not rediscover them
- If Perplexity finds 0 new mentions, report "No new mentions found since last run."
Version History
-
2ef9894
Current 2026-09-09 11:31
扩展指南治理与分发范围,从单一Codex指南扩展至更广泛的项目组合,增加对GitHub活跃仓库的扫描及多项目目录支持。
- fa57065 2026-07-25 10:17


