CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

natural-language

Tokenize, tag, and analyze natural language text using Apple's NaturalLanguage framework and translate between languages with the Translation framework. Use when adding language identification, sentiment analysis, named entity recognition, part-of-speech tagging, text embeddings, or in-app translation to iOS/macOS/visionOS apps.

Quality

88%

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

The canonical home for this skill is dpearson2699/swift-ios-skills

SKILL.md
Quality
Evals
Security

Quality

Content

82%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 well-organized, highly actionable reference: complete executable Swift for every capability, explicit gotcha guidance, and a clean split with one clearly-signaled bundle file. The main improvement opportunities are trimming minor boilerplate and adding an explicit ordered workflow for the translation flow.

Suggestions

Remove the repeated "import NaturalLanguage" line in the Tokenization example and trim SwiftUI scaffolding (@State declarations, Button labels) from the translation examples to just the API-relevant lines.

Add an explicit ordered flow to the Translation section (1. check LanguageAvailability status, 2. configure the session, 3. translate, 4. handle errors/cancellation) so the availability check reads as a prerequisite step rather than a subsection after the usage code.

Surface the references/translation-patterns.md link inside the relevant sections (e.g., NER/embeddings) rather than only in the bottom References section, and consider moving the full translation UI view examples there.

DimensionReasoningScore

Conciseness

The body is efficient — tables for tag schemes and token units, minimal prose, no explanations of basic NLP concepts, and it correctly delegates extended patterns to the reference file. It is not 5 because of minor padding: a repeated "import NaturalLanguage" block in Tokenization after Setup already showed it, full SwiftUI view scaffolding (@State declarations, Button/label boilerplate) in the Translation examples, and a blockquote note that restates the opening paragraph.

4 / 5

Actionability

Every capability has complete, copy-paste-ready Swift: full functions for tokenization, language detection (including constraints/hints), POS/NER tagging, sentiment, embeddings, all three translation modes, and the LanguageAvailability status check — with nil-handling ("guard let embedding... else") and do/catch error paths. It is not 4 because the examples cover the common cases for each API with key gotchas (options like .joinNames, clientIdentifier for batch) included.

5 / 5

Workflow Clarity

Each section is an unambiguous single-purpose recipe, and the Common Mistakes (WRONG/CORRECT pairs) plus a ten-item Review Checklist provide explicit checkpoints, including checking LanguageAvailability before translating. It is not 5 because the Translation material presents availability checking after the usage code with no explicit ordered flow (check availability → configure → translate → handle error), and inter-section sequencing is left to the reader.

4 / 5

Progressive Disclosure

Good structure: a linked table of contents, task-per-section organization, and one clearly-labeled, one-level-deep reference ("Extended patterns (custom models, contextual embeddings, gazetteers): references/translation-patterns.md") that exists in the bundle. It is not 5 because the body still carries substantial inline detail (full translation UI views) that could partially move to the reference file, and the single reference link appears only in the bottom References section rather than signaled near the sections it extends.

4 / 5

Total

17

/

20

Passed

Description

88%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 strong description: concrete, comprehensive capability listing with an explicit "Use when" trigger clause and platform scope. The only notable gaps are a few common synonyms (NLP, text analysis, translate text) and a slight overlap risk with an ios-localization skill for the translation triggers.

DimensionReasoningScore

Specificity

"Tokenize, tag, and analyze natural language text... and translate between languages" plus an explicit enumeration of six concrete capabilities ("language identification, sentiment analysis, named entity recognition, part-of-speech tagging, text embeddings, or in-app translation") gives comprehensive, concrete coverage of both frameworks. It is not 4 because coverage spans every major capability of both frameworks with no minor gaps.

5 / 5

Completeness

Explicitly answers both questions: the "what" is two sentences of concrete capabilities ("Tokenize, tag, and analyze... translate between languages with the Translation framework") and the "when" is an explicit trigger clause ("Use when adding language identification, sentiment analysis... to iOS/macOS/visionOS apps"). It is not 4 because the "when" clause is already explicit and trigger-phrase-based, not merely implied or generic.

5 / 5

Trigger Term Quality

Good natural keyword coverage — "sentiment analysis", "named entity recognition", "part-of-speech tagging", "text embeddings", "in-app translation", "translate between languages" are phrases users would actually say. It is not 5 because common synonyms and variations such as "NLP", "natural language processing", "text classification", or plain "translate text" are missing.

4 / 5

Distinctiveness Conflict Risk

Naming "Apple's NaturalLanguage framework", the "Translation framework", and the target platforms carves a clear niche with distinct triggers. It is not 5 because "in-app translation" / "translate between languages" could still overlap with a UI-string localization skill — the description alone does not distinguish content translation from app localization, and disambiguation from related skills (OCR, speech, localization, on-device AI) only appears in the body, not the description.

4 / 5

Total

18

/

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

dpearson2699/swift-ios-skills

Path

skills/natural-language/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.