CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

frontend-data-fetching

Fetch data in Sentry's frontend with TanStack Query and apiOptions. Use when adding or editing React code in static/ that calls the API — useQuery/useMutation/useInfiniteQuery, apiOptions, queryOptions/mutationOptions, fetchMutation, reading response headers/pagination, or conditional fetching. Trigger on "fetch data", "add an API call", "useQuery", "useMutation", "apiOptions", "queryFn", "pagination headers", "X-Hits", or "why is my query type wrong".

75

Quality

94%

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

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, highly actionable reference: every example is executable, every rule is project-specific knowledge Claude cannot infer, and correct/incorrect pairs make the conventions unambiguous. The two weaknesses are mild redundancy in the generics-inference section and a monolithic single-file layout where the inference deep-dive could be split into a reference file.

Suggestions

Consolidate the type-inference guidance: the CRITICAL bold rule, the numbered rules 1-5, and the two ❌/✅ code pairs overlap — merge rule 4 with its example and drop one restatement of the never-pass-generics rule to tighten conciseness.

Move the extended generics-inference section (rules 1-5 plus examples) into a references/ file (e.g. references/type-inference.md) with a one-line pointer from SKILL.md, keeping the main file focused on the core apiOptions pattern and header access.

The headers/pagination section could likewise become a small reference file, leaving SKILL.md as a lean overview with well-signaled one-level-deep references.

DimensionReasoningScore

Conciseness

The body is dense with non-obvious, project-specific facts (deprecated hooks, 'staleTime is required', cache storing '{json, headers}', X-Hits pre-parsed) and avoids explaining library basics. However, the generics-inference rule is stated three ways — bold CRITICAL rule, enumerated rules 1-5, and the ❌/✅ context example that re-demonstrates rule 4 — so some tokens could be trimmed. This matches 'Efficient; minor instances of over-explanation that could be trimmed' rather than the fully lean level 5.

4 / 5

Actionability

All code blocks are complete and executable — basic apiOptions usage with a real path placeholder, conditional fetching via skipToken, an inferred mutationOptions example, and the selectJsonWithHeaders override with concrete header access ('X-Hits', 'X-Max-Hits'). Specific values (staleTime: 30_000, per_page: 25) and copy-paste-ready snippets cover the common cases, matching the anchor 'Fully executable; copy-paste ready code'.

5 / 5

Workflow Clarity

This is a convention/pattern skill with no multi-step pipeline and no destructive or batch operations, so no validation checkpoints are required; the single task (write TanStack Query code the Sentry way) is unambiguous. The guidance is ordered and decisive — 'Do not use useApiQuery...', 'staleTime is required', 'Never pass type parameters at the call site' — each with a correct/incorrect example pair, so nothing is left implicit. Per the simple-skill exception, an unambiguous single action with no risk operations warrants 5.

5 / 5

Progressive Disclosure

The single file has well-organized, clearly headed sections (basic usage, key rules, type inference, headers) and no dead-end references — but there are no bundle files at all, and the ~50-line type-inference deep-dive plus the headers section are inline content that could eventually live in separate reference files as the skill grows. This matches 'Good structure; most content is appropriately placed; minor organization gaps' rather than the well-signaled multi-file structure at 5.

4 / 5

Total

18

/

20

Passed

Description

96%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 description: concrete actions, an explicit 'Use when' trigger clause, and natural trigger terms including the diagnostic phrase 'why is my query type wrong'. The only weakness is that a couple of trigger terms ('fetch data', 'add an API call') are generic enough to risk firing for non-frontend API work.

DimensionReasoningScore

Specificity

The description lists multiple concrete actions — "Fetch data in Sentry's frontend with TanStack Query and apiOptions", "useQuery/useMutation/useInfiniteQuery", "reading response headers/pagination, or conditional fetching" — with comprehensive coverage of the skill's scope in third-person voice. This matches the anchor 'Lists multiple specific concrete actions; comprehensive coverage'; it is not the level below (4), which requires minor gaps in coverage.

5 / 5

Completeness

It explicitly answers both 'what' ("Fetch data in Sentry's frontend with TanStack Query and apiOptions") and 'when' ("Use when adding or editing React code in static/ that calls the API") with concrete trigger phrases. This is the anchor-5 example pattern: a clear what + an explicit 'Use when' clause with triggers.

5 / 5

Trigger Term Quality

Triggers include natural user phrases ("fetch data", "add an API call", "why is my query type wrong") alongside technical terms users would naturally type ("useQuery", "useMutation", "apiOptions", "queryFn", "pagination headers", "X-Hits"). Coverage is comprehensive with synonyms, matching the anchor for full keyword coverage including variations.

5 / 5

Distinctiveness Conflict Risk

The Sentry-specific niche ("Sentry's frontend", "React code in static/", TanStack Query, apiOptions) is distinct, but the generic triggers "fetch data" and "add an API call" could also match backend or unrelated API-interaction skills, creating minor overlap risk. This sits between 'clear niche with distinct triggers' (5) and 'mostly distinct; minor overlap risk' (4), and the generic phrases pull it to 4.

4 / 5

Total

19

/

20

Passed

Validation

100%

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

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository

getsentry/sentry

Path

.agents/skills/frontend-data-fetching/SKILL.md

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.