CtrlK
BlogDocsLog inGet started
Tessl Logo

review-public-api

Use this skill when the user asks to review a DuckDuckGo Android public API proposal. If given an Asana task URL, first fetch the task and confirm it is an API proposal before invoking — do not invoke just because a URL was paired with "review". Confirmed signals: the task title contains "API Proposal"; the task belongs to project 1212149061863360 (API Proposals); or the description proposes changes to a -api module. Also invoke for any request to review, evaluate, or give feedback on a proposal pasted inline or provided as a file. Covers phrases like "review my API proposal", "is this API design good?", "check my public interface", "I'm about to submit an API proposal". When the user shares Kotlin code, only invoke if the code is explicitly from or intended for a -api module — do not invoke for impl-only changes or general Kotlin questions. IMPORTANT: Always apply these instructions directly — never delegate or summarise.

90

1.08x
Quality

89%

Does it follow best practices?

Impact

94%

1.08x

Average score across 3 eval scenarios

SecuritybySnyk

Low

Low-risk findings worth noting

SKILL.md
Quality
Evals
Security

Quality

Content

88%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 strong, domain-specific instruction skill: a gated multi-step workflow with explicit validation checkpoints, verbatim recovery messages, and concrete bad/good examples for every heuristic. The only real tradeoff is that the full 16-heuristic catalog is inlined in SKILL.md rather than split into a reference file, which is a reasonable choice given all heuristics apply on every run.

DimensionReasoningScore

Conciseness

The body is largely lean and imperative — the Asana opt_fields strings, the section-structure table, and the bad/good pairs per heuristic are non-obvious project knowledge that earns its tokens, and there is no padding or generic praise. A few heuristics restate knowledge Claude already has (H1 'each interface should do one thing', H7 Flow-vs-suspend rules, H10 KDoc expectations), which is minor over-explanation matching anchor 4 ('efficient; minor instances of over-explanation that could be trimmed') rather than anchor 5's 'every token earns its place'.

4 / 5

Actionability

The guidance is fully concrete and executable: exact opt_fields values, the GID-extraction rule with a real example, the grep pattern ('class ClassName' / 'interface ClassName') with a path-to-module derivation example, a verbatim stop-and-ask message, a ready-to-use diagram template, and specific bad/good signatures (e.g. 'startIntent(): Intent?' vs 'startForResult(context, params, launcher)'). This matches anchor 5 — copy-paste-ready specifics covering the common cases.

5 / 5

Workflow Clarity

The seven-step sequence is clear and gated by explicit checkpoints: Step 2 demands confirmed module locations ('Do not proceed to the diagram or heuristics with unresolved module locations') with an error-recovery path (stop and ask the user, with the exact question), Step 1 has a comprehension checklist before reviewing, and Step 7 defines the output contract (blocking / suggestions / positives / verdict). This matches anchor 5's explicit validation steps, feedback loops, and checklists.

5 / 5

Progressive Disclosure

As a single-file skill with well-organized sections and no bundle files, everything is one navigation level deep and nothing is buried, matching anchor 4 ('good structure; most content is appropriately placed; minor organization gaps'). It falls short of anchor 5's clear-overview-plus-referenced-detail split only in that the 16-heuristic catalog (~90 lines) could live in a references file so SKILL.md reads as the workflow overview — though since every heuristic is needed on each run, inlining is defensible and keeps it above anchor 3.

4 / 5

Total

18

/

20

Passed

Description

90%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.

An excellent trigger-focused description with explicit positive and negative invocation guidance, concrete trigger phrases, and strong distinctiveness. Its one weakness is that it describes when to invoke in great detail while saying almost nothing about what the review itself consists of, so a reader cannot tell what capabilities the skill brings.

Suggestions

Add a short clause stating what the review delivers, e.g. 'Checks module boundaries, applies 16 design heuristics, and returns blocking issues / suggestions / positives.'

Trim the detailed Asana confirmation protocol (project ID, signal list) into a shorter summary so the description stays scannable; the body already covers the details.

DimensionReasoningScore

Specificity

The domain is clearly named ("review a DuckDuckGo Android public API proposal") and a couple of concrete actions appear ("fetch the task and confirm it is an API proposal", "review, evaluate, or give feedback"), but the description never states what the review actually covers — e.g., module boundary checks, an interaction diagram, or the tiered blocking/suggestions/positives feedback. This matches anchor 3 ('names domain and 1-2 concrete actions, but not comprehensive'); it is above anchor 2 (the domain is specific, not generic) but below anchor 4 (no listing of the skill's specific capabilities).

3 / 5

Completeness

Both 'what' ("review a DuckDuckGo Android public API proposal" / "review, evaluate, or give feedback on a proposal") and 'when' are explicitly and concretely answered, with multiple concrete trigger phrases covering URL, inline, and file inputs. This is exactly anchor 5 ('clearly and explicitly answers both what AND when with concrete trigger phrases'); anchor 4 would require the 'when' to be less explicit, which it is not.

5 / 5

Trigger Term Quality

Trigger coverage is comprehensive and natural: "review my API proposal", "is this API design good?", "check my public interface", "I'm about to submit an API proposal", plus inline/file inputs and Asana URL handling, and it even includes anti-triggers ("do not invoke for impl-only changes or general Kotlin questions"). This matches anchor 5's 'comprehensive coverage of natural terms' — nothing a user would plausibly say is missing, and negative guidance goes beyond the anchor-4 example.

5 / 5

Distinctiveness Conflict Risk

The niche is very clear (DuckDuckGo Android *-api module proposals) and the description actively disambiguates against adjacent cases — impl-only Kotlin changes, general Kotlin questions, and non-proposal Asana URLs with confirmed signals like the "API Proposal" title and project 1212149061863360. This gives a clear niche with distinct triggers and minimal conflict risk, matching anchor 5.

5 / 5

Total

18

/

20

Passed

Validation

93%

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

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

frontmatter_unknown_keys

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

Warning

Total

15

/

16

Passed

Repository
duckduckgo/Android
Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.