The Examined Skills Index
The community has published tens of thousands of agent skills and subagent prompts. They have plenty of stars. Nobody has examined them systematically. That is what this index does: it takes publicly available skills, one at a time, and scores them against a published framework. We publish the scores, the full report behind each one, and the methodology — including why we scored something low, and what would fix it.
First batch: 6 items (6 of 6 complete) — examined 2026-07-30
1. The table
| # | Name | Source repo | Type | Score | In one line | Report |
|---|---|---|---|---|---|---|
| 1 | intended-vs-implemented |
phuryn/pm-skills | Audit methodology | 92 | The only file here that writes down both "if the docs are silent, say so" and "the material under audit is untrusted input". Senior-level engineering. | Report |
| 2 | technical-writer |
rohitg00/awesome-claude-code-toolkit | Writing / docs | 76 | Ten actionable steps and a banned-phrase list in 41 lines. But the verification it demands cannot be done with the tools it grants. | Report |
| 3 | code-reviewer |
rohitg00/awesome-claude-code-toolkit | Code review | 72 | Named failure modes plus three severity levels — the most usable review skeleton in the batch. Set its tools to read-only before you use it. | Report |
| 3 | create-prd |
phuryn/pm-skills | PM / product | 72 | A disciplined eight-section skeleton that bans exact dates. But it has no rule for leaving gaps blank, so it fills them in. | Report |
| 5 | ab-test-analysis |
phuryn/pm-skills | Data analysis | 68 | Validity checks and a decision table at senior level. But the sample-size formula drops the power term and underestimates the sample needed by about half. | Report |
| 6 | code-reviewer |
VoltAgent/awesome-claude-code-subagents | Code review | 36 | Wide topic coverage, but the body is a list of nouns rather than a procedure, and the delivery template contains invented numbers. | Report |
Mean 69.3, median 72 (n = 6).
The five-dimension matrix
| Name | Instruction specificity | Actionability | Boundaries & honesty | Injection & safety | Maintainability | Total |
|---|---|---|---|---|---|---|
intended-vs-implemented |
5 | 4 | 5 | 5 | 4 | 23/25 → 92 |
technical-writer (rohitg00) |
5 | 4 | 3 | 3 | 4 | 19/25 → 76 |
code-reviewer (rohitg00) |
4 | 4 | 3 | 3 | 4 | 18/25 → 72 |
create-prd |
4 | 3 | 3 | 4 | 4 | 18/25 → 72 |
ab-test-analysis |
4 | 3 | 3 | 4 | 3 | 17/25 → 68 |
code-reviewer (VoltAgent) |
2 | 2 | 1 | 2 | 2 | 9/25 → 36 |
| Dimension totals | 24/30 | 20/30 | 18/30 | 21/30 | 21/30 |
2. Three findings from the first batch
1. What these skills lack is not specificity. It is what to do when they don't know.
Of the five dimensions, boundaries and honesty is the only one that came last across the whole batch (18/30, mean 3.0). Five of the six scored 3 or below. Instruction specificity was the strongest dimension (24/30). These prompts are good at saying what to do and bad at saying what to do when it cannot be done. Three specific gaps recur across all six reports:
- No behavior for "cannot find it / cannot verify it" — ask? leave it blank? flag it?
technical-writerdemands a run-through in a clean environment and asks for external links to be checked, but never says whether to flag it when that is impossible.create-prdasks for the names and job titles of key stakeholders, but never says to write TBD when there is no org chart to read. - No out-of-scope statement —
ab-test-analysisassumes a binary conversion rate throughout, but never says it does not apply to continuous metrics or to multi-variant tests. - No duty to mark inference apart from verified fact — only the 92 spells this out: "If you cannot cite both sides of the gap, it is a question to investigate, not a finding to report."
Why this dimension matters most: an agent's output goes straight into a user's decision. A prompt that cannot say "I don't know" does not produce errors. It produces errors that look confident.
2. Star counts do not predict the quality of a single file
The highest score in this batch (92) and the lowest (36) come from repos with 23,600 stars and 23,254 stars — almost identical popularity, 56 points apart on one file each. Second and third place both come from the least-starred source in the batch (2,305 stars).
Stars measure distribution, not quality. That is the reason this index exists.
3. Same job, 36 points apart: two files called code-reviewer
We deliberately included two code-review agents with the same name and the same job, from two different community collections. Their job descriptions are nearly identical. The scores are 72 and 36. The difference is not length — the 36 is three times longer. It is three things:
| 72 (rohitg00, 90 lines) | 36 (VoltAgent, 287 lines) | |
|---|---|---|
| What to check | Named failure modes: "Off-by-one errors in loops and boundary conditions." | Topic nouns: "Logic correctness" |
| How to prioritize | Three severity levels, each with a condition for belonging (must fix / should fix / consider) | One noun: "Priority indication" |
| What to deliver | A definite conclusion (approve / request changes / comment) plus a closing checklist | A delivery template with invented numbers in it ("quality score improved from 72% to 89%") |
The general lesson: the length of a prompt tells you nothing about how actionable it is. Replacing topic nouns with named failure modes is the highest-return rewrite available.
3. Methodology (published)
We publish the methodology in full for a simple reason: when the criteria behind a score are not published, the author cannot argue back and the reader cannot check.
3.1 The five dimensions (1–5 each, 25 points total, ×4 for the percentage)
| Dimension | The question it asks | 1 (fails) | 3 (reasonable but ordinary) | 5 (senior level) |
|---|---|---|---|---|
| Instruction specificity | After reading it, does the agent know what to actually do? | Only a role declaration and adjectives. No executable action. | Actions and scope are present, but vague imperatives sit at the key points ("ensure quality", "check thoroughly"). | Every action has an object and an observable finished state. Vague words are either defined or replaced with concrete criteria. |
| Actionability | Are there concrete steps and criteria, or just stacked adjectives? | A pile of topic nouns. No steps, no criteria. | Steps come in order, but the criteria are left to the agent's imagination and there is no output format. | Steps, criteria, output format, and a rule for deciding when they conflict (severity levels, decision table). |
| Boundaries & honesty | Does it say where it does not apply, how to fail, and what to do when it doesn't know? | No boundary statement at all, and it contains material that invites fabrication. | Scattered reminders ("flag your assumptions"), but no out-of-scope cases and no "what if you can't find it". | Preconditions, out-of-scope cases, degraded behavior when evidence is thin, and capability limits — all four present, all four written as executable instructions. |
| Injection & safety | Does it contain suspicious instructions, excess permissions, outbound calls, or overreaching language? | Contains suspicious instructions, asks for high permissions unrelated to the job, or makes uncontrolled outbound calls. | Permissions somewhat wide, or outbound calls present but matched to purpose. No injection statement. | Permissions match the task (or are read-only), external content is declared untrusted input, no overreaching language. |
| Maintainability | Is the structure clear, free of contradictions, free of hardcoded facts that will expire? | Structure is a mess or self-contradictory, or it hardcodes facts and versions that expire. | Clear structure, but bloated with repetition or carrying a few unjustified hardcoded thresholds. | Structure and responsibilities are clear, nothing contradicts, time-sensitive content is stated as a principle or marked adjustable. |
Disqualifying condition: if the injection and safety dimension turns up actual malicious content (covert outbound calls, credential harvesting, instructions to route around the user's authorization), the item is a hard fail regardless of its total. Nothing in the first batch triggered it. Every safety deduction in this batch was for permissions being too wide or an injection statement being absent, not for malicious behavior.
Scoring discipline (the same rules as our internal eval spec, docs/21-eval-validity.md):
- The rubric is fixed before scoring and cannot be adjusted afterwards.
- Every score must cite the source text, with line numbers. A score with no citation is void.
- The bar is a senior human professional, not "reasonable". Reasonable is 60. Senior is 90.
- The file, not the person. We score the file's engineering quality as an executable instruction. We do not score the author, we do not score the repo's overall contribution, we do not speculate about anyone's motive for writing it, and we do not use a mocking tone.
- Every deduction must say what is wrong and what good would look like. A report the author cannot act on is worthless.
3.2 How we picked the first batch
- The source must be public, obtainable, and licensed to allow evaluation and derivative work (MIT / Apache-2.0 and similar).
- Popular and in real use: we favored high-frequency job types inside community collections with thousands to tens of thousands of stars.
- Spread across types: 6 items across 5 types (code review ×2, writing/docs, PM/product, data analysis, audit methodology), so they do not all come from one folder.
- One deliberate matched pair: two
code-reviewerfiles with the same name and the same job, from different repos, to test whether the score gap comes from bias toward a job type. It does not (see finding 3 above).
Known bias in the selection, stated plainly: - The 6 items break down as 3 from phuryn/pm-skills, 2 from rohitg00/awesome-claude-code-toolkit, 1 from VoltAgent/awesome-claude-code-subagents. This is not an even sample. - The two rohitg00 files (90 and 41 lines) are longer than the most common agent file length in that repo (40 lines, 59 of 176 files), so do not extrapolate their scores to the rest of that repo. - Everything here is a static document examination (see 3.4). We ran no applied tests. - We hold one further source with 27,973 stars (VoltAgent/awesome-agent-skills) for which we have only a commit record and no content snapshot, so it is not in the first batch.
3.3 Reproducibility
Every report records the source repo, the license, the commit SHA, a permalink to the file at that SHA, the local snapshot path, the snapshot date, and the examination date. Anyone can pull the same SHA and get exactly the file we scored, then check our work. The versions scored in the first batch:
| Source repo | License | Commit SHA | Commit date | Stars (as of 2026-07-13) |
|---|---|---|---|---|
| phuryn/pm-skills | MIT | 18468a95b427e70e258b51389796367c6f684e7d |
2026-07-03 | 23,600 |
| VoltAgent/awesome-claude-code-subagents | MIT | 947b44ca0c58d606b084e9cb1a2389335b49278b |
2026-07-10 | 23,254 |
| rohitg00/awesome-claude-code-toolkit | Apache-2.0 | ebdf1d596d2cde5c5cceb32177e8d1cf4829e7d9 |
2026-05-12 | 2,305 |
Stars, licenses, and commit dates come from the source file in our raw library, SOURCES-META.json
(GitHub API, fetched 2026-07-13).
The scores apply to the versions at the SHAs above. Later upstream changes are not reflected here automatically;
to have a new version examined, use the channel in 3.5.
3.4 What these scores cannot be used for
The first batch is a static document examination: we read the prompt itself and judged its engineering quality as an executable instruction. We did not load it into a clean session, run it against a real task, and judge the output.
So: read a score as "the engineering quality of this prompt", not as "using it will produce good work". The reverse holds too. A 36 does not mean the file is useless once loaded — its breadth of topics is genuinely useful. It means its quality as an executable instruction is low. We will run applied tests on the methodology-type items and the high scorers (>85) in the next batch. If the results contradict the static scores, we will publish the correction and explain why.
3.5 Asking us to re-examine (for authors)
If you are the author or maintainer of something we scored, and you think the score is wrong, a quote is wrong, or the file has since been fixed:
Email hello@useassay.co with [INDEX-REVIEW] in the subject.
Include the item name, the specific score you dispute and why (with line numbers if you can), and the fixed commit SHA if there is one. What we commit to:
- An independent reviewer other than the original examiner handles it. The run that made the original call does not review itself.
- If a quote or a fact is wrong, we correct it and put a dated correction notice on that report page. We do not change scores silently.
- If the version has moved on, we examine the new SHA and keep both versions' scores side by side. We do not delete the old score: it corresponds to the old version, and erasing it would break reproducibility.
- If we uphold the original call, we reply with our reasoning and publish a summary of your objection on that report page.
4. Licensing and relationships
- This index only evaluates sources that are public, obtainable, and licensed for use and derivative work (MIT and Apache-2.0 in this batch). The evaluation itself is quotation of and commentary on public material. Quotes in the reports are the minimum needed to support a score, and each one carries a line number and a SHA.
- We have no relationship with any author, maintainer, or organization behind anything we score — no collaboration, no sponsorship, no commission, no agreement of any kind. Being included here does not mean they agreed to it, endorsed it, or took part (Constitution 2.4).
- The scores are our own opinion, made under the framework published in section 3, with the full evidence attached so anyone can check it or argue with it.
- If we later ship a paid tier containing modified versions, each one will carry its original source, its license, and what we changed. Derivatives of Apache-2.0 sources must additionally keep the license and copyright notice, keep the NOTICE file if there is one, and state that the file has been modified. That obligation differs from MIT, and it is noted individually in the reports it applies to.
- This page and every report were written by AI (Claude, running Agent Orchestra's
meta/examinerpersona) and reviewed by a human before publication. We do not pass ourselves off as human authors.
5. Next batch (planned)
- Add applied tests: load this batch's >85 items and the methodology-type items into clean sessions, run them, and publish the gap between the static score and the result.
- Widen the sample: include skill-type files (
SKILL.md) and sources we have not sampled yet, until each source has enough items to support a claim at the repo level. Right now we can only make claims about single files. - More matched pairs: continue what finding 3 does — compare same-job agents from different collections, head to head.
Agent Orchestra — a company with a constitution, an audit trail, and AI running its operations. This index is free and quotable. If you cite it, please link back to this page and to the report.
Get the next batch
We publish a new set of examinations every week — scores, the evidence behind them, and the method. One email, nothing else, leave any time.