Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add TalissonVitorino/kmp-ios-skills --skill natural-languagegit clone --depth 1 https://github.com/TalissonVitorino/kmp-ios-skillsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/talissonvitorino/kmp-ios-skills/natural-language)<a href="https://agentmods.dev/skills/talissonvitorino/kmp-ios-skills/natural-language"><img src="https://agentmods.dev/badge/skills/talissonvitorino/kmp-ios-skills/natural-language/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/talissonvitorino/kmp-ios-skills/natural-language"><img src="https://agentmods.dev/badge/skills/talissonvitorino/kmp-ios-skills/natural-language.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00232 | $0.04189 |
| Opus 5 | $0.00116 | $0.02094 |
| Sonnet 5 | $0.00046 | $0.00838 |
| Haiku 4.5 | $0.00023 | $0.00419 |
Grade A, and why
natural-language scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 8d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 320 lines — stays where its author put it; the contents beside it link to each section on GitHub.
NaturalLanguage & Translation (iOS)
On-device, offline text processing for a fintech iOS app. Nothing leaves the
device — safe for transaction memos, support messages, and PII. Grounded in
Apple's NaturalLanguage and Translation frameworks (iOS 26 era).
- Everything here runs locally. No network, no per-call cost, works in airplane mode. Ideal for sensitive financial text.
- Not generative. For summarization, rewriting, or chat use Foundation Models via
apple-on-device-ai. NaturalLanguage analyzes text; it does not author it. - Underlying runtime: custom
NLModels are Core ML models — seecoremlfor training/compute-unit details. Text often comes from OCR (vision-framework) or user input.
Contents
- Pick the tool
- Language identification
- Tokenization
- Linguistic tagging (POS / names / lemma)
- Sentiment
- Custom classification (NLModel)
- Gazetteers (term lists)
- Embeddings (semantic similarity)
- Translation framework
- Threading & performance
- KMP boundary
- Correctness checklist
- References:
references/models.md,references/translation.md
Pick the tool
| Goal | API | Unit / scheme |
|---|---|---|
| Which language is this? | NLLanguageRecognizer |
— |
| Split into words/sentences | NLTokenizer |
.word / .sentence |
| Part of speech | NLTagger |
.lexicalClass |
| People / places / orgs (redaction) | NLTagger |
.nameType |
| Dictionary root form | NLTagger |
.lemma |
| Positive/negative score | NLTagger |
.sentimentScore |
| Categorize with your own labels | NLModel (Create ML) |
— |
| Match known terms/brands | NLGazetteer |
— |
| "Is X similar in meaning to Y?" | NLEmbedding |
word or sentence |
| Translate text | Translation (translationTask) |
— |
Language identification
import NaturalLanguage
// One-shot: dominant language of a string.
let lang = NLLanguageRecognizer.dominantLanguage(for: "Votre solde est de 42 €")
// -> Optional(NLLanguage.french)
What ships with it
2 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 8d ago First seen · 320 lines · 232 tokens per session scan A 943b53e3c378
natural-language is a skill published in the GitHub repository TalissonVitorino/kmp-ios-skills (12 stars, last pushed 17d ago), licensed MIT. It adds 232 tokens to every session and 4,189 once invoked, about $0.0012 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.
Other skills, from other repositories
compose-multiplatform
Use when building one shared Compose UI in Kotlin across Android, iOS, and desktop — commonMain @Composables, expect/actual, source-set placement, native interop, multiplatform ViewModel/navigation/Koin. NOT a single-platform native build (that is kotlin-android / swift-ios), and NOT Dart/Flutter cross-platform UI…
cmp-new
Scaffold a new MOBILE app — Android + iOS from one Kotlin/Compose Multiplatform codebase — from a bare "create a mobile app" to a green, verified build. Guardrails first: if the user already chose a different framework (React Native, Expo, Flutter, SwiftUI, native), do NOT redirect them here; if they only asked a…
cmp-firebase-connect
Wire a freshly scaffolded CMP/KMP app to its OWN real Firebase project — the #1 post-scaffold manual step. Use this when the user wants to connect their app to Firebase, or asks "connect my app to firebase", "set up google-services.json", "wire firebase", "create a firebase project for this app", "replace the…
npm-publish
Publish the create-cmp CLI to npm as the create-cmp-cli package. Use this when the user asks to "publish create-cmp to npm", "release a new version", "ship create-cmp-cli", "npm publish this", "cut a release", or wants npx create-cmp-cli to work. Runs unattended when a granular npm token is installed in the user's…
cmp-audit
Adversarial audit of one subsystem of a Kotlin/Compose Multiplatform app against its spec AND against platform semantics — the class of defect desktop-tier tests cannot see (alarms, notifications, PendingIntents, reboot, process death, DST). Use this when the user says "audit the notifications", "double check X for…
add-feature
Add a new conforming vertical-slice feature (Screen + ViewModel + UseCase + Repository + spec + tests + golden tree + nav route + DI wiring) to this Compose Multiplatform app, cloned deterministically from the project's configured exemplar feature (qa/approvals.json's exemplarFeature — home by default). Use this when…