Borrowing it
Nothing to install: this file belongs to Kemetra/Seshat-BI. 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/Kemetra/Seshat-BI/main/.claude/skills/friendly-pr-reviewer/SKILL.mdgit clone --depth 1 https://github.com/Kemetra/Seshat-BIWrote 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/kemetra/seshat-bi/friendly-pr-reviewer)<a href="https://agentmods.dev/skills/kemetra/seshat-bi/friendly-pr-reviewer"><img src="https://agentmods.dev/badge/skills/kemetra/seshat-bi/friendly-pr-reviewer/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/kemetra/seshat-bi/friendly-pr-reviewer"><img src="https://agentmods.dev/badge/skills/kemetra/seshat-bi/friendly-pr-reviewer.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.00173 | $0.02839 |
| Opus 5 | $0.00086 | $0.01419 |
| Sonnet 5 | $0.00035 | $0.00568 |
| Haiku 4.5 | $0.00017 | $0.00284 |
Grade A, and why
friendly-pr-reviewer 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 11d 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 — 208 lines — stays where its author put it; the contents beside it link to each section on GitHub.
friendly-pr-reviewer
Module Contract -- Friendly PR Reviewer
- Authority category: Product Module
- Capability level:
read-only(exactly one ofread-only | artifact-writing | execution-capable) - Product layer: cross-cutting (guards no stage, gates no promotion; a presentation companion, sibling to F025/F036/F037)
- Roadmap feature: not yet assigned -- a human assigns the F-number at scheduling
(this skill does NOT self-assign one; see spec.md status line). On-disk spec:
specs/130-pr-reviewer - Owner: the repo maintainer / PR reviewer (a named human)
- Status: Authored
What it does (one line)
Reads one PR's already-produced review envelope + committed readiness truth, and RENDERS a plain-language narrative of what changed and what it means -- never a merge-ready verdict, never a score.
Core Authority it READS
It reads; it never writes these, and it re-derives nothing.
- The
build_review_resultreview envelope (review_integration.py) --outcome(ok/blockedonly),checks_run,changed_files,changed_readiness_state,affected_stages,findings[],blocking_findings[],next_actions[],run_boundary,result_digest. - The SARIF finding identity (
sarif.finding_fingerprint/sarif_document) -- the canonical new-vs-existing key, reused directly for the temporal diff. mappings/<table>/readiness-status.yaml--current_stage, per-stagestatus,approvals[](named owner + date),blocking_reasons[]-- read as an already-parsed mapping; this module opens no file itself.- The
readiness_classifyrefutation-first category rank (approval > grain > live_validation > artifact > readiness) -- reused to pick exactly one next action AND to route a blocked stage to its required approval surface.
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.
- 11d ago First seen · 208 lines · 173 tokens per session scan A daa5f7ee0c2e
friendly-pr-reviewer is a skill published in the GitHub repository Kemetra/Seshat-BI (2 stars, last pushed 2d ago), licensed Apache-2.0. It adds 173 tokens to every session and 2,839 once invoked, about $0.0009 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-31.
Other skills, from other repositories
pr-verify
Verify a Docglow change actually works before submitting or merging a PR. Runs the conformance suite, then a behavioral verification pass (flag matrix, artifact-join spot checks, pipeline contract sweep, payload budget). Use when reviewing a PR, self-reviewing a branch before opening a PR, or when asked to "verify…
audit-my-assumptions
Use when a finished thing — a source, a result, code, or the record — is about to be trusted or consumed; the gate fires before the work leans on it. Fire FIRST - before a number is BUILT on inherited sources or PRESENTED from them - when the silent assumptions baked into procs, queries, exports, or workbooks have not…
lookml_view_reviewer
Skill "lookml_view_reviewer" from G-Schumacher44/strata-oss, covering skill: lookmlviewreviewer, trigger, inputs, allowed tools and forbidden.
sql-reviewer
Review SQL queries and dbt models for best practices, performance, and anti-patterns.
test-review
You are an expert DataHub test reviewer. Your role is to evaluate pytest smoke tests against established testing standards, identify issues, and provide actionable feedback.
ktx-analytics
Use when answering a question that needs data from a ktx-connected database - investigating, analyzing, "how many", "show me", "what's the breakdown of", finding records by value, exploring tables, comparing periods, explaining metrics, or any data-analysis request. Triggers even when the user does not say…