Borrowing it
Nothing to install: this file belongs to FranRom/pupila. 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/FranRom/pupila/main/.claude/skills/pupila-ai-review/SKILL.mdgit clone --depth 1 https://github.com/FranRom/pupilaWrote 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/franrom/pupila/pupila-ai-review)<a href="https://agentmods.dev/skills/franrom/pupila/pupila-ai-review"><img src="https://agentmods.dev/badge/skills/franrom/pupila/pupila-ai-review/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/franrom/pupila/pupila-ai-review"><img src="https://agentmods.dev/badge/skills/franrom/pupila/pupila-ai-review.svg" alt="Reviewed on agentmods" width="80" 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.00084 | $0.01565 |
| Opus 5 | $0.00042 | $0.00783 |
| Sonnet 5 | $0.00017 | $0.00313 |
| Haiku 4.5 | $0.00008 | $0.00156 |
Grade A, and why
pupila-ai-review 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 12d 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 — 108 lines — stays where its author put it; the contents beside it link to each section on GitHub.
pnpm run ai-review is a local-only companion that augments selected jobs with an LLM review via src/lib/llm.ts (auto-detects claude / codex / gemini / opencode, override PUPILA_LLM). Uses the user's local subscription (e.g. Claude Max) — NOT an API key, so no per-token charges.
The launchd/cron review agent runs daily at 07:15 by default. Without an LLM CLI, run scripts/install-launchd.sh --no-review (or cron equivalent).
Inputs / outputs
| Input | Path | Role |
|---|---|---|
| Slim job list | data/jobs.json |
Job metadata, scoring, _signals |
| Body sidecar | data/jobs-bodies.json |
Full body text (regenerated by pnpm run dev) |
| Existing reviews | data/ai-reviews.json |
Prior runs (incremental — only review missing IDs) |
| Candidate brief | config/candidate-brief.md |
The main tuning lever — natural-language candidate description embedded verbatim in the prompt |
| Output | Path | Schema |
|---|---|---|
| Reviews | data/ai-reviews.json |
Record<jobId, AiReview> |
Each AiReview carries:
- One-sentence
summary - 3 bullets each for
wants/offers/redFlags verdict∈strong-match | match | weak-match | skip- One-sentence
reason
Writes after every successful review — Ctrl-C or rate-limit kill leaves a partial-but-valid file.
Selection logic
Default: top 20 by fitScore not already reviewed. Reviews for jobs no longer in jobs.json are pruned each run.
Flags:
--top=N— change the batch size--force— re-review even if an entry exists--ids=a,b,c— explicit list (overrides--top)
JSON parsing (the fragile part)
The LLM occasionally wraps JSON in markdown fences (```json ... ```). src/ai-review-parse.ts:
- Strips fences (recognises
```jsonand bare```). - Falls back to safe defaults on parse failure rather than throwing — partial reviews are still useful, don't crash the whole run.
- Sanitizes dirty arrays (empty strings, non-string entries).
- Validates verdict against the 4-value enum; invalid → coerces to
weak-match.
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.
- 12d ago First seen · 108 lines · 84 tokens per session scan A dff343cf7023
pupila-ai-review is a skill published in the GitHub repository FranRom/pupila (37 stars, last pushed 2mo ago), licensed MIT. It adds 84 tokens to every session and 1,565 once invoked, about $0.0004 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
open-source
Documentation reference for writing Python code using the browser-use open-source library. Use this skill whenever the user needs help with Agent, Browser, or Tools configuration, is writing code that imports from browseruse, asks about @sandbox deployment, supported LLM models, Actor API, custom tools, lifecycle…
omh-model-optimization
This is a Hermes-native model-optimization workflow skill.
pinme-llm
Use this skill when a PinMe project (Worker TypeScript) needs to call OpenRouter-backed LLM APIs, including models, chat/completions, streaming, or OpenRouter web search. Guides AI to generate correct Worker TS code.
lijigang-skill
A Chinese-language approach to writing precise, highly structured prompts, sometimes using Lisp-like notation. It combines concise wording, philosophical questioning, and a process for defining roles, conditions, output formats, and revisions.
goai
GoAI is a Go SDK for AI applications. One unified API across 25+ LLM providers. Inspired by the Vercel AI SDK, adapted to Go idioms (generics, interfaces, channels).
Vizra ADK Memory System
Implement persistent memory, session context, and vector memory (RAG) for AI agents.