citation-monitor — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited citation-monitor (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Answer the question: "Is my brand showing up when buyers ask LLMs for recommendations?"
Daily, query 4 LLMs with a fixed prompt set per tracked brand. Score each response for brand mention, list position, and citation URL presence. Store in sqlite. Render a weekly markdown report with deltas.
| Layer | Implementation |
|---|---|
| Inputs | tracked-brands.json (brand + keywords + niche) |
| Engines | Claude (full), OpenAI (full), Perplexity (stub), Gemini (stub) |
| Storage | sqlite at data/citations.db |
| Schedule | cron-friendly entry point scripts/run_daily.py |
| Reports | reports/<yyyy-ww>.md markdown with deltas |
Upgrade path (v0.2+): Supabase Postgres + n8n cron + multi-tenant brand list.
citations(
id INTEGER PRIMARY KEY AUTOINCREMENT,
brand TEXT NOT NULL,
keyword TEXT NOT NULL,
engine TEXT NOT NULL,
query TEXT NOT NULL,
response_excerpt TEXT,
mention_count INTEGER DEFAULT 0,
position INTEGER, -- 1-indexed list position; NULL if not mentioned
citation_url TEXT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)python scripts/init_db.py creates data/citations.db.python scripts/run_daily.py reads tracked-brands.json, loopsbrand x keyword x engine x prompt-template, calls each engine, scores response, inserts row.
python scripts/weekly_report.py reads sqlite, computesweek-over-week deltas, writes reports/<yyyy-ww>.md.
When the user says any of:
/citation-monitorRead tracked-brands.json, run scripts/run_daily.py, then offer to render the weekly report.
claude-haiku-4-5 and gpt-4o-mini. Cheapest tier per provider.brand+keyword tuple shares the system prompt, so cache hit rate is high.
approximately $0.01-0.03/day.
NotImplementedErrorwith a clear v0.2 — needs <KEY> message.
requirements.txt.SKILL.md — this fileREADME.md — quick startrequirements.txt — pinned deps.env.example — required env varstracked-brands.example.json — input shapescripts/init_db.py — sqlite schemascripts/run_daily.py — main loopscripts/query_engines.py — engine abstractionsscripts/weekly_report.py — markdown reportreferences/prompt-templates.md — exact promptsreferences/aeo-scoring-rubric.md — scoring mathdata/.gitkeep, reports/.gitkeep~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.