Borrowing it
Nothing to install: this file belongs to xsovad06/sova. 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/xsovad06/sova/main/.agents/skills/sova-ingest-review/SKILL.mdgit clone --depth 1 https://github.com/xsovad06/sovaWrote 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/xsovad06/sova/sova-ingest-review)<a href="https://agentmods.dev/skills/xsovad06/sova/sova-ingest-review"><img src="https://agentmods.dev/badge/skills/xsovad06/sova/sova-ingest-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/xsovad06/sova/sova-ingest-review"><img src="https://agentmods.dev/badge/skills/xsovad06/sova/sova-ingest-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.00022 | $0.01823 |
| Opus 5.5 | $0.00009 | $0.00729 |
| Sonnet 5.5 | $0.00004 | $0.00365 |
| Haiku 4.5 | $0.00002 | $0.00182 |
Grade A, and why
sova-ingest-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 14d 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 — 114 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Ingest PR Review Feedback
Parse structured review findings from TaskRun records and update agent memory.
Instructions
-
Get the PR number from
the arguments provided when this skill is invoked. If empty, ask the user. Validate it is a positive integer before using it anywhere below: reject non-numeric input and ask the user to clarify rather than passing raw argument text into generated code.<PR_NUMBER>in every snippet in this command means this validated integer, never the rawthe arguments provided when this skill is invokedtext. -
Query the database for reviewer TaskRun records linked to this PR. Substitute the validated integer for
<PR_NUMBER>: it becomes part of a Python expression evaluated viapython3 -c, so unvalidated text here is a code injection risk, not just a bad query:# Find the reviewer run's handoff data python3 -c " import asyncio, json, os os.environ.setdefault('SOVA_DATABASE_URL', 'sqlite+aiosqlite:///.claude/sova.db') from sova.db.session import init_db, get_session from sova.db.models import TaskRun from sqlalchemy import select async def main(): await init_db(run_migrations=False) async with await get_session() as session: stmt = select(TaskRun).where( TaskRun.pr_number == <PR_NUMBER>, TaskRun.role.in_(['reviewer', 'command:review-pr']), TaskRun.status == 'done', ).order_by(TaskRun.id.desc()).limit(1) run = (await session.execute(stmt)).scalar_one_or_none() if not run or not run.handoff_json: print('NO_FINDINGS') return print(json.dumps(run.handoff_json, indent=2)) asyncio.run(main()) " -
If the output is
NO_FINDINGS, do not stop here: the SOVA reviewer may simply not have run a TaskRun for this PR while external reviewers (CodeRabbit, human reviewers) still left comments. Continue to step 4 (there is nothing to parse from this source, so skip it) and step 5. Only report "No reviewer findings found for PR #N (no SOVA reviewer TaskRun and no external review comments)" and stop if step 5 also finds nothing.
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.
- 14d ago Changed · +20 lines 0f3024edc59d
- 16d ago Changed e170172737d1
- 22d ago First seen · 94 lines · 22 tokens per session scan A 1e658eff65bf
sova-ingest-review is a skill published in the GitHub repository xsovad06/sova (2 stars, last pushed yesterday), licensed Apache-2.0. It adds 22 tokens to every session and 1,823 once invoked, about $0.0001 per session on Opus 5.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-10-08.
Other skills, from other repositories
reflect
Use Recall Reflect to review AI coding workflow history as a conversation-first timeline and discuss observed patterns before changing behavior. Trigger when the user asks to reflect on a project, review AI coding workflow, inspect workflow friction, discuss repeated corrections, review handoffs, or explore possible…
feature-knowledge
Structures codebase exploration into a feature knowledge base.
performance
This skill should be used when reviewing code for N+1 queries or memory leaks.
rust
This skill should be used when the user works with Rust files (.rs), asks about "ownership", "borrowing", "lifetimes", "traits", or discusses memory safety.
agent-references
Agent-owned reference files, read by explicit path, never preloaded.
context-engineering
Optimizes agent context setup. Use when starting a new session, when agent output quality degrades, when switching between tasks, or when you need to configure rules files and context for a project.