CtrlK
BlogDocsLog inGet started
Tessl Logo
PluginPublic

mlava/scholar-sidekick-python

Resolve scholarly identifiers (DOI including shortDOI aliases, PMID, PMCID, ISBN, arXiv, ISSN, ADS bibcode, WHO IRIS URL) into formatted citations (10,000+ CSL styles) and bibliography exports (BibTeX, RIS, EndNote, CSV…), verify a claimed citation against the record its identifier actually resolves to, and audit a reference list of any length for fabricated and retracted entries — from Python via the `scholar-sidekick` package. Wraps the public REST API; needs Python ≥3.9 but no API key for the free tier. Use when the agent runs Python (a script, a notebook, a data pipeline) and the user wants to cite, export, verify, or audit references by DOI, PMID, PMCID, ISBN, arXiv ID, ISSN, ADS bibcode, or WHO IRIS URL — especially a bibliography longer than 25 entries, which this client chunks and paces automatically.

76

Quality

96%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

Overview
Quality
Evals
Security
Files

Quality

Content

96%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A dense, honest, and executable body: every section documents non-inferable package behavior with runnable code, and the batch audit workflow includes explicit validation and error-recovery loops. The only structural gap is that some reference-grade detail (exception table, claim-key minutiae) is inlined in SKILL.md rather than split into a bundled reference file.

Suggestions

Split reference-grade detail — the exception taxonomy table, constructor options, and the strict claim-key specification — into a one-level-deep file under references/ linked from the relevant sections, keeping SKILL.md an overview.

Reduce the duplication between the 'Two input kinds' paragraph and its Pitfalls recap (and the twice-repeated pointer to the sibling api/cli skills) once that reference file exists, trimming the body toward a leaner main file.

DimensionReasoningScore

Conciseness

Every line carries package-specific behavior Claude could not infer — "`format()` returns **whole-batch** `.text`/`.html` covering every input, newline-joined — not one string per item", "**`entry.input_index` is the 0-based position in the list you passed in**", "`audit_bibliography()` sends chunks **serially even in the async client**" — with zero tutorial padding about Python, DOIs, or citation styles. Not 4: the only repetition (the Pitfalls recap of the `kind=` rules) is deliberate quick-reference design and earns its place.

5 / 5

Actionability

Fully executable, copy-paste-ready snippets cover every common case: `verify()` with a real DOI, `audit_bibliography()` with a progress callback and `needs_review` iteration, `export()` writing a file, exception handling keyed on `.code` and `.retry_after`, async context-manager usage, and a runnable Verification section. Not 4: no common case lacks ready-to-run code, and inputs/outputs of each snippet are concrete.

5 / 5

Workflow Clarity

The batch workflow has explicit validation checkpoints: pre-flight input strictness ("Claim dicts are strict — the server rejects unknown keys … Strip anything else before sending", "Two input kinds, and the wrong one fails"), error recovery that preserves completed work ("A failed chunk is recorded, not raised" with a `report.errors` loop and `stop_on_error` option), and a dedicated Verification section with a health check and a deliberate-mismatch test. The batch-operation cap of 3 does not apply since validation is present. Not 4: checkpoints are explicit rather than implicit, and verdict semantics are tabulated so each outcome has a defined next step.

5 / 5

Progressive Disclosure

The single file is well sectioned (When to Use / Install / API surface / Procedure / Errors / Authentication / Pitfalls / Verification) with a method table and nothing buried, but at roughly 240 lines with no bundle files, reference-grade detail such as the full exception taxonomy and the audit claim-key specification could live in a one-level-deep referenced file. Not 5: the under-50-lines no-references exception does not apply and no content is split across files; not 3: nothing is monolithic — sections are clearly signaled and easy to navigate.

4 / 5

Total

19

/

20

Passed

Description

100%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

The description is exemplary: it names concrete actions with their inputs and formats, includes an explicit use-when clause built from natural trigger terms, and scopes itself to the Python path to avoid sibling-skill conflicts. There is no fluff, buzzword, or over-claim.

DimensionReasoningScore

Specificity

Lists multiple concrete actions — "Resolve scholarly identifiers (DOI including shortDOI aliases, PMID, PMCID, ISBN, arXiv, ISSN, ADS bibcode, WHO IRIS URL) into formatted citations (10,000+ CSL styles) and bibliography exports (BibTeX, RIS, EndNote, CSV…)", "verify a claimed citation against the record its identifier actually resolves to", "audit a reference list of any length for fabricated and retracted entries" — with comprehensive coverage of inputs and output formats. Not 4: no capability area of the client is left unnamed.

5 / 5

Completeness

Explicitly answers both questions: the what is three concrete operations with formats, and the when is "Use when the agent runs Python (a script, a notebook, a data pipeline) and the user wants to cite, export, verify, or audit references by DOI, PMID, PMCID, ISBN, arXiv ID, ISSN, ADS bibcode, or WHO IRIS URL". Not 4: the when-clause is fully explicit with concrete trigger conditions rather than merely present.

5 / 5

Trigger Term Quality

Natural user phrasing is present throughout: "cite, export, verify, or audit references by DOI, PMID, PMCID, ISBN, arXiv ID" plus the scenario cue "especially a bibliography longer than 25 entries". Synonym families (citation/bibliography/reference, identifier names, export format names) are all covered, matching the comprehensive-coverage anchor. Not 4: no common natural term family is missing.

5 / 5

Distinctiveness Conflict Risk

Scoped "from Python via the `scholar-sidekick` package" with triggers tied to the Python runtime ("when the agent runs Python — a script, a notebook, or a data pipeline"), which cleanly separates it from the sibling API/CLI/MCP skills; identifier-based citation work is a clear niche. Not 4: the runtime scoping leaves only minimal overlap risk.

5 / 5

Total

20

/

20

Passed

Validation

81%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 13 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

metadata_version

'metadata.version' is missing

Warning

metadata_field

'metadata' should map string keys to string values

Warning

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

Total

13

/

16

Passed

Reviewed

On this page