CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

stream-swift

Build, integrate, migrate to, and answer how-to questions for Stream Chat, Video, and Feeds in Swift / SwiftUI / UIKit / iOS apps - including AI assistants and agentic experiences (ChatGPT-style apps, LLM bots in chat, streaming responses, thinking indicators, reasoning and tool-call steps, tool approvals, device-side tools, a voice agent's transcript shown as a conversation) with the StreamChatAI components. Routes each request to the exact official iOS docs page, fetches it live, and applies it - with a curated setup flow, an AI integration runbook, a Sendbird -> Stream Chat migration runbook, and iOS-specific pitfalls.

1.16x
Quality

83%

Does it follow best practices?

Impact

83%

1.16x

Average score across 3 eval scenarios

SecuritybySnyk

Passed

No findings from the security scan

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.

An unusually actionable orchestration body: the docs-.md convention, live index table, and decision tree give Claude an exact executable procedure with strong validation loops for the risky design and migration paths. It is dragged down by token-heavy single-paragraph mode bullets that duplicate runbook content inline, and by referencing eight sibling files (plus two parent-directory files) that are not shipped in the bundle being evaluated.

Suggestions

Move the inline runbook detail out of SKILL.md - the ~350-word styling-depth paragraph, the AI-mode bullet, and the workplace/Liquid-Glass paragraph each restate content that design-matching.md / ai-integration.md / custom-ui.md carry; replace them with 1-2 line routing summaries plus the one decision rule that must be read before routing.

Ship the referenced bundle files inside the skill directory: RULES.md, setup.md, push.md, docs-map.md, ai-integration.md, design-matching.md, custom-ui.md, and sendbird-migration.md are all cited as "read before writing any code" but none exist in the bundle, and two references (../stream/sendbird-data-migration.md, ../stream/ai-backend-contract.md) point outside the skill directory entirely.

Break the giant mode/classification paragraphs into short bullets or a routing table (mode -> trigger phrases -> runbook), and add an explicit build-and-verify checkpoint to the plain integrate path so it matches the verification rigor the design-matching path already has.

DimensionReasoningScore

Conciseness

The body assumes Claude's competence (no beginner concept explanations) but is noticeably over-padded: the AI-mode bullet, the styling-depth paragraph, and the workplace/Liquid-Glass paragraph are 200-350-word single sentences that inline pitfall detail already carried by design-matching.md and ai-integration.md, and the closing section re-describes every runbook already referenced above. This is anchor 3 ("mostly efficient but... could be tightened") rather than 4 because the duplicated runbook-level detail is more than a minor trim.

3 / 5

Actionability

Every step of the core loop is executable and copy-paste ready: the docs convention ("take the page URL, drop the trailing /, add .md" with a worked example), the four live index URLs in a table, the numbered lookup procedure with a hard limit ("Fetch at most 3 pages per request"), the citation format ("Source: [Title](https://getstream.io/...)"), and an escalation path naming exact files (ViewFactory.swift, DefaultViewFactory.swift, Options/*.swift). Specific examples cover the common cases of each mode, which is the top anchor despite the skill being instruction-only.

5 / 5

Workflow Clarity

Sequencing is explicit (Step 0 classify product/framework/mode -> UI strategy decision -> Step 1 docs lookup -> Setup) and the risky operations carry genuine validation loops: "not done until you build, run, seed data that triggers every region, compare region-by-region... and iterate", per-screen "design + functional fidelity" verification for migrations, and the never-answer-from-training-data self-check. It sits at anchor 4 rather than 5 because plain integrate/how-to paths defer verification entirely to runbooks with no inline build-and-confirm checkpoint.

4 / 5

Progressive Disclosure

References are one level deep and clearly signaled with purpose statements, but a large share of runbook-level content is inlined in SKILL.md instead of living solely in the referenced files, and none of the referenced bundle files (RULES.md, setup.md, docs-map.md, design-matching.md, custom-ui.md, sendbird-migration.md, ai-integration.md, push.md) are present in the skill directory as provided - nor are the two ../stream/ cross-directory files - so the navigation cannot actually resolve. That combination of inline duplication and unverifiable references fits anchor 3 rather than 4.

3 / 5

Total

15

/

20

Passed

Description

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

A dense, highly specific description that clearly states what the skill does and embeds rich natural trigger vocabulary, including strong distinctiveness from the Sendbird-migration and StreamChatAI anchors. Its only weakness is the absence of an explicit "Use when..." clause - trigger timing is conveyed through embedded scenario lists rather than a dedicated trigger sentence.

DimensionReasoningScore

Specificity

The description enumerates multiple concrete actions across all operating modes - "Build, integrate, migrate to, and answer how-to questions for Stream Chat, Video, and Feeds in Swift / SwiftUI / UIKit / iOS apps" plus "Routes each request to the exact official iOS docs page, fetches it live, and applies it" - which is comprehensive rather than just several actions. It stays in third person throughout ("Routes", "fetches", "applies"), so no voice penalty applies.

5 / 5

Completeness

The "what" is explicit and multi-part (build/integrate/migrate/how-to across three products, plus the live docs-fetching mechanism), and the "when" is addressed through concrete embedded scenario triggers (ChatGPT-style apps, LLM bots, Sendbird migration, voice-agent transcripts) rather than a distinct "Use when..." clause. That lands on anchor 4 - both present but the "when" could be more explicit - not 5 because there is no explicit trigger clause, and not 3 because the enumerated scenarios are concrete trigger guidance, not merely implied.

4 / 5

Trigger Term Quality

Natural user phrasing is extensively covered with synonyms: "Stream Chat, Video, and Feeds", "Swift / SwiftUI / UIKit / iOS", "ChatGPT-style apps, LLM bots in chat, streaming responses, thinking indicators, reasoning and tool-call steps, tool approvals", "voice agent's transcript", and "Sendbird -> Stream Chat migration". These are exactly the words a user with this need would say; only a handful of fringe variations (e.g. "getstream.io", "livestream chat") are absent, which keeps it at the top anchor rather than beyond it.

5 / 5

Distinctiveness Conflict Risk

It carves a clear niche - Stream's iOS SDKs - with highly distinct triggers ("StreamChatAI components", "Sendbird -> Stream Chat migration", "Stream Chat, Video, and Feeds"), so it would not fire for generic iOS, chat, or PDF-type skills. Even the broad-sounding AI phrases are scoped to Stream's components, keeping conflict risk minimal.

5 / 5

Total

19

/

20

Passed

Validation

87%

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

Validation — 14 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

metadata_version

'metadata.version' is missing

Warning

relative_links

Relative link issues: 32 missing, 2 suspicious

Warning

Total

14

/

16

Passed

Repository

GetStream/agent-skills

Path

skills/stream-swift/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.