Content
82%Weight 40%Scale 1-5Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
A strong, action-oriented skill body: fully executable examples covering all three capabilities, a clearly sequenced async mapping workflow with status validation, and well-signaled one-level references. The main gaps are redundancy between the code and Implementation Details section, and the unreferenced scripts/uniprot_client.py in the bundle.
Suggestions
Reference the bundled script in the body (e.g., a "## Ready-made client" line pointing to scripts/uniprot_client.py) so the existing bundle file is discoverable instead of duplicating it inline.
Trim Implementation Details entries that restate the example code (e.g., the ids list/string note) and keep only non-obvious API behavior like polling etiquette and from_db/to_db naming constraints.
Add a brief error-recovery note for the mapping workflow (e.g., what to do when jobStatus is FAILED or the job times out) to strengthen the feedback loop.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The body is lean and API-specific (endpoints, polling flow, parameters) without explaining concepts Claude already knows, matching anchor 4 ("Efficient; minor instances of over-explanation that could be trimmed"). Not 5 because the Implementation Details section restates what the example code already shows (e.g., "ids accepts either a list or a comma-separated string" duplicates the code), and not 3 because there is no concept tutoring or padding. | 4 / 5 |
Actionability | The Example Usage block is complete, executable Python with real queries ("gene:BRCA1 AND organism_id:9606", accession "P38398", mapping from "Gene_Name" to "UniProtKB"), timeouts, and error handling — matching anchor 5 ("Fully executable; copy-paste ready code...specific examples cover the common cases"). Not below 5 because all three advertised capabilities have working code. | 5 / 5 |
Workflow Clarity | The asynchronous ID mapping workflow is clearly sequenced ("1. POST /idmapping/run", "2. Poll GET /idmapping/status/{jobId} until finished", "3. Fetch GET /idmapping/results/{jobId}?format=json") with a status checkpoint that raises on FAILED, matching anchor 4. Not 5 because there is no error-recovery feedback loop beyond raising (no retry/backoff guidance); not 3 because validation checkpoints (raise_for_status, jobStatus polling) are present, and the read-only operations avoid the destructive/batch cap. | 4 / 5 |
Progressive Disclosure | References "references/query_syntax.md" and "references/api_fields.md" are clearly signaled, one level deep, and both exist in the bundle; the quick-start code plus pointers match the anchor-4 pattern. Not 5 because the bundle's "scripts/uniprot_client.py" (98 lines) is never referenced from SKILL.md, leaving a real bundle file undiscoverable, and the inline client code substantially duplicates that script. | 4 / 5 |
Total | 17 / 20 Passed |