CtrlK
BlogDocsLog inGet started
Tessl Logo

ai-core

Entry point for TanStack AI skills. Routes to chat-experience, tool-calling, media-generation, structured-outputs, adapter-configuration, ag-ui-protocol, middleware, locks, custom-backend-integration, and debug-logging, plus the skills shipped by companion packages (@tanstack/ai-persistence, @tanstack/ai-code-mode). Use chat() not streamText(), openaiText() not createOpenAI(), toServerSentEventsResponse() not manual SSE, middleware hooks not onEnd callbacks.

59

Quality

69%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Low

Low-risk findings worth noting

Fix and improve this skill with Tessl

tessl review fix ./packages/ai/skills/ai-core/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

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

The body is a well-structured router with strong progressive disclosure and actionable, specific API guidance. Its main weakness is conciseness: the persistence companion section and the duplicate routing list (table + decision tree) carry detail that belongs downstream.

Suggestions

Trim the @tanstack/ai-persistence section to its entry point and a one-line scope, deferring store-contract and inclusion/exclusion detail to that package's own skill.

Collapse the Quick Decision Tree into the Sub-Skills table (or vice versa) to remove the duplicated routing list.

Add one minimal copy-paste chat() + useChat() example to lift actionability from concrete-hints to fully executable.

DimensionReasoningScore

Conciseness

Mostly efficient with no padding of concepts Claude already knows, but ~40 lines of @tanstack/ai-persistence detail (store contracts, inclusions/exclusions) largely belongs in that package's own skill, and the Quick Decision Tree repeats routing already in the sub-skills table.

3 / 5

Actionability

Provides concrete commands (pnpm add, npx @tanstack/intent install) and specific API names with correct usage (chat(), openaiText(), toServerSentEventsResponse(), clientTools(...) into the tools option), but no complete copy-paste chat() code example, leaving a minor gap.

4 / 5

Workflow Clarity

As a routing/index skill with no destructive or batch operations, its need→sub-skill sequence is clear via the table and decision tree; the simple-skill exception applies, though the two overlapping routing lists add minor ambiguity.

4 / 5

Progressive Disclosure

Clear overview with well-signaled one-level-deep references (sub-skill table, companion-package entry points, decision tree), appropriately split across sibling SKILL.md files with no nested-reference chains and easy navigation.

5 / 5

Total

16

/

20

Passed

Description

67%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 highly specific and distinctive, clearly scoping TanStack AI's sub-skills and API conventions, but it lacks an explicit 'Use when...' trigger clause and leans on internal/API terms rather than natural user phrases. Completeness and trigger-term quality are the limiting dimensions.

Suggestions

Add an explicit 'Use when...' clause naming natural user triggers (e.g. 'Use when building a chat UI with streaming, adding tool/function calling, generating media, or configuring a TanStack AI provider adapter').

Surface natural synonyms alongside API names — e.g. 'tool calling (function calling)', 'streaming chat', 'structured JSON output' — so users' everyday phrasing matches.

Lead with the user-facing intent before the routing list so the 'when' is as explicit as the 'what'.

DimensionReasoningScore

Specificity

Lists ten specific sub-skills, two companion packages, and four concrete API corrections (chat() not streamText(), openaiText() not createOpenAI(), toServerSentEventsResponse(), middleware hooks not onEnd) — comprehensive concrete coverage.

5 / 5

Completeness

The 'what' is clear (routes to a comprehensive list of sub-skills and companion packages), but there is no explicit 'Use when...' trigger clause, so per the rubric 'when' is only weakly implied and completeness is capped at 3.

3 / 5

Trigger Term Quality

Keywords are mostly internal skill/API names ('chat-experience', 'tool-calling', 'structured-outputs') rather than natural phrases a user would say (e.g. 'build a chat UI', 'streaming', 'tool calling'); common natural variations are missing.

3 / 5

Distinctiveness Conflict Risk

Scoped specifically to TanStack AI with named packages and unique API names, giving it a clear niche with minimal overlap risk against other skills.

5 / 5

Total

16

/

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.

Validation15 / 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
TanStack/ai
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.