CtrlK
BlogDocsLog inGet started
Tessl Logo

assistant-ui-runtime

Guide to the assistant-ui runtime system, the state and action layer behind every chat surface. Use when creating a runtime (useLocalRuntime with a ChatModelAdapter, useExternalStoreRuntime for Redux or Zustand backed stores, useRemoteThreadListRuntime, useCloudThreadListRuntime, useAssistantTransportRuntime), wiring AssistantRuntimeProvider, or reading and mutating thread, message, composer, and attachment state. Covers useAui, useAuiState, and useAuiEvent with the stable selector rule, the scope accessors (aui.thread, aui.message, aui.composer, and siblings), the AuiConfig plus AuiProvider grammar, RuntimeCapabilities, and the attachment, speech, dictation, feedback, suggestion, and history adapters. Route here for a provider error ('Cannot read property of undefined'), a removed v0.12 hook import, an infinite re-render from an object literal selector, or state not updating. For multi-thread list UI use thread-list instead; for toolkit definitions and tool call UI use tools instead.

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

SKILL.md
Quality
Evals
Security

Quality

Content

93%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 SKILL.md body is a tightly written overview: dense with version-specific, non-inferable API facts, executable code for every common case, symptom-to-fix gotchas, and a clean one-level-deep reference split that keeps deep dives out of the main file. Its only structural weakness is the absence of an explicitly numbered setup workflow for building a runtime from scratch, though the decision guidance and examples make the path largely unambiguous.

DimensionReasoningScore

Conciseness

The body is lean and library-specific: every paragraph carries assistant-ui 0.15 facts Claude cannot know ("As of 0.15, aui.<scope> is a property, not a call", "raw object literals are a type error", "Selecting an unavailable scope no longer throws"), with no filler explaining what React hooks or state management are. Code blocks are minimal and each line demonstrates a rule (e.g., the correct-vs-wrong useAuiState selector pair). It matches the level-5 anchor 'Lean and efficient; assumes Claude's competence; every token earns its place'; level 4's 'minor instances of over-explanation' does not apply because no section restates general knowledge.

5 / 5

Actionability

Guidance is fully executable: copy-paste TSX with imports for useAui ("aui.thread.append({ role: 'user', content: [{ type: 'text', text: 'Hello!' }] })"), useAuiState, useAuiEvent, all three AuiConfig/AuiProvider variants (runtime root, nested extends, isolated extends={null}), and the thread/message operation block ("thread.append", "message.switchToBranch({ position: 'next' })", "editComposer.beginEdit(); editComposer.setText('Updated'); editComposer.send()"). The gotchas map symptoms to concrete fixes. This matches level 5 ('Fully executable; copy-paste ready code or commands; specific examples cover the common cases'); it exceeds level 4 because both the happy paths and the common failure modes are shown as runnable code or exact guards ("if (aui.message.source != null)").

5 / 5

Workflow Clarity

The content is a reference guide rather than a multi-step procedure, and its structure is coherent: it opens with the build decision ("There are two ways to build one. LocalRuntime ... owns the message store for you ... ExternalStoreRuntime is the inverse"), then reading/driving state, then config mounting, then operations, events, capabilities, and a gotchas section that functions as diagnostic feedback loops ("'Cannot read property of undefined' → Ensure hooks are called inside AssistantRuntimeProvider ... or guard on aui.<scope>.source != null"). That satisfies level 4's 'Clear sequence with most checkpoints present'. It falls short of level 5 because no explicit stepwise creation flow (e.g., a numbered setup sequence from adapter to provider to hooks) is laid out — the path is inferable from the intro and examples but never sequenced.

4 / 5

Progressive Disclosure

The body is a genuine overview with a dedicated References section where each of the seven one-level-deep pointers is annotated ("[./references/local-runtime.md] -- useLocalRuntime deep dive: streaming, tool calls, human-in-the-loop, approval gates, resumeRun"), all of which exist in ./references/, and in-body links route to the right file at the point of need ("See [runtime-concepts.md] ... for the unstable_ policy"). Deep-dive material is correctly kept out of SKILL.md, and Related Skills are listed for the cross-cutting cases. This matches the level-5 anchor ('Clear overview with well-signaled one-level-deep references; content appropriately split; easy navigation').

5 / 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 states a precise what, an explicit and symptom-level when (including verbatim error messages), names every major API surface, and pre-resolves boundary confusion with sibling skills. Its length is dense with triggers rather than padded fluff, so the verbosity guideline is not penalized.

DimensionReasoningScore

Specificity

The description lists multiple concrete, named actions: "creating a runtime (useLocalRuntime with a ChatModelAdapter, useExternalStoreRuntime for Redux or Zustand backed stores, useRemoteThreadListRuntime, useCloudThreadListRuntime, useAssistantTransportRuntime), wiring AssistantRuntimeProvider, or reading and mutating thread, message, composer, and attachment state", plus coverage of "useAui, useAuiState, and useAuiEvent with the stable selector rule" and named adapters. Coverage is comprehensive with real API identifiers, matching the level-5 anchor ('Lists multiple specific concrete actions; comprehensive coverage'); it is far above level 4's 'minor gaps in coverage' since every major runtime surface is named.

5 / 5

Completeness

Both halves are explicit: the 'what' is "Guide to the assistant-ui runtime system, the state and action layer behind every chat surface" with enumerated capabilities, and the 'when' is an explicit "Use when creating a runtime ... wiring AssistantRuntimeProvider, or reading and mutating thread ... state" plus "Route here for a provider error ..." concrete triggers. This mirrors the level-5 good example ("Extract text and tables from PDF files... Use when working with PDF files or when the user mentions PDFs..."); it does not cap at 3 because the 'Use when' clause is present and concrete, and it exceeds level 4 because the triggers are specific symptoms rather than generic.

5 / 5

Trigger Term Quality

It captures the exact phrases a user would naturally say or paste: "a provider error ('Cannot read property of undefined')", "an infinite re-render from an object literal selector", "state not updating", "removed v0.12 hook import", plus natural vocabulary like "thread, message, composer, and attachment state" and "Redux or Zustand backed stores". This matches the level-5 anchor's comprehensive natural-term coverage including error-message synonyms; it is above level 4 because the literal error strings and symptom phrases users would type are included verbatim.

5 / 5

Distinctiveness Conflict Risk

The description carves out a clear niche (the assistant-ui runtime/state layer) and explicitly disambiguates neighboring skills: "For multi-thread list UI use thread-list instead; for toolkit definitions and tool call UI use tools instead." That explicit routing minimizes conflict risk, matching the level-5 anchor ('Clear niche with distinct triggers; minimal conflict risk'); it is above level 4's 'minor overlap risk' because the overlap cases are already routed away by name.

5 / 5

Total

20

/

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

relative_links

Relative link issues: 8 suspicious

Warning

Total

15

/

16

Passed

Repository
stevenknowswhy/ProfessionalBuyer
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.