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 agentmods add commands/saigonxiii/evc/sync-blogsgit clone --depth 1 https://github.com/SaigonXIII/evcWhat 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 | $0.00000 | $0.00635 |
| Opus 5 | $0.00000 | $0.00318 |
| Sonnet 5 | $0.00000 | $0.00127 |
| Haiku 4.5 | $0.00000 | $0.00064 |
Grade A, and why
sync-blogs 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 2d 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 — 92 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Sync Blogs
Read CMS blog data and regenerate BlogListing and BlogDetail components in one call.
Trigger
User invokes /sync-blogs or says "sync blog posts", "update blog components", "refresh blogs from CMS"
CMS Configuration
- Collection ID:
{{CMS_COLLECTION_ID}} - BlogListing component ID:
{{CMS_BLOG_LISTING_ID}} - BlogDetail component ID:
{{CMS_BLOG_DETAIL_ID}} - CMS fields:
- Title:
{{CMS_FIELD_TITLE}} - Content:
{{CMS_FIELD_CONTENT}} - Cover:
{{CMS_FIELD_COVER}} - Date:
{{CMS_FIELD_DATE}} - Author:
{{CMS_FIELD_AUTHOR}} - Excerpt:
{{CMS_FIELD_EXCERPT}} - Category:
{{CMS_FIELD_CATEGORY}}
- Title:
Steps
1. Read CMS data
Query all items from collection {{CMS_COLLECTION_ID}}.
Parse all blog items. For each, extract: title, excerpt, cover image URL, date, author, category, content (full body), and slug.
2. Read current components
Read both component files to understand the existing data structure:
- BlogListing (ID:
{{CMS_BLOG_LISTING_ID}}) - BlogDetail (ID:
{{CMS_BLOG_DETAIL_ID}})
3. Regenerate BlogListing
Replace the hardcoded blog data array with the fresh CMS data. Keep the component structure, styles, and layout identical. Only update the data block:
const blogPosts = [
{
title: "[from CMS]",
excerpt: "[from CMS]",
coverImage: "[from CMS]",
date: "[from CMS]",
author: "[from CMS]",
category: "[from CMS]",
slug: "[from CMS]",
},
// ... all posts from CMS
];
Write the updated code back to component {{CMS_BLOG_LISTING_ID}}.
4. Regenerate BlogDetail
Same pattern -- replace the hardcoded blog content data with CMS data. Keep component structure intact.
Write the updated code back to component {{CMS_BLOG_DETAIL_ID}}.
5. Verify
Read both components back to confirm the data was written correctly. Count the blog posts in each. They should match.
6. Confirm
BLOGS SYNCED
════════════════════════════════════════
CMS items: [count]
BlogListing: [count] posts updated
BlogDetail: [count] posts updated
Publish in CMS to go live.
════════════════════════════════════════
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.
- 2d ago First seen · 92 lines · 0 tokens per session scan A 785049b1a3b7
sync-blogs is a command published in the GitHub repository SaigonXIII/evc (56 stars, last pushed 2mo ago), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 635 tokens. 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 commands, from other repositories
review-tool
Research a tool or product for skill-gap, architecture, and verb-fit per the Anatomy framework.
setup
First-run setup — replace the fictional company and authors with yours.
review-content
Review content for brand alignment, lead placement, bio consistency, and proof points.
voice-check
Check a draft against the author's voice profile and flag deviations.
content-status
Scan all content directories and report status of drafts, ideas, and published content.
draft-blog
Scaffold a blog post with proper structure, voice, and frontmatter.