CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

iii-core-primitives

Use when registering iii functions, binding triggers, observing functions, selecting sync/void/enqueue invocation, creating workers, inspecting the live worker registry, installing registry workers, authoring event sources, moving channel data, or adapting external HTTP functions across TypeScript, Python, and Rust.

Quality

82%

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

75%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-structured, dense reference for iii's core primitives: decision tables, exact config/payload shapes, and complete TypeScript and Python examples make it highly actionable, and boundaries to sibling skills are explicit. The main gaps are the repeated 0.25 registerTrigger deprecation narrative across five sections, a Rust example that is not standalone-executable, and three full language examples inlined where per-language reference files could keep the SKILL.md leaner.

Suggestions

State the registerTrigger-deprecated-in-0.25 guidance once (e.g., in a short '0.25 migration' note near the registration table) and reference it elsewhere instead of repeating the rationale in five sections.

Wrap the Rust example in a runnable function (or note it is a snippet) so all three language examples are copy-paste executable, matching the TypeScript and Python blocks.

Consider moving the TypeScript/Python/Rust examples into per-language files under references/ and keeping one exemplar inline, so the SKILL.md body stays a lean overview consistent with progressive disclosure.

DimensionReasoningScore

Conciseness

The body is token-efficient: decision tables ('| Shape | Use for |', trigger-config/handler-payload tables), concrete domain facts Claude cannot know, and no padding explaining general concepts. The 0.25 deprecation story is correctly confined to deprecation-style guidance rather than loose time-sensitive claims, but it is repeated in roughly five places (the primitives intro, the registration table, the trigger-shapes section, the Rust comment, and the advanced patterns section), and 'When to Use' restates the description — minor trimmable content matching the 'minor instances of over-explanation' anchor (4).

4 / 5

Actionability

The TypeScript and Python examples are complete and copy-paste ready (register_worker, registerFunction, sync trigger, enqueue action, HTTP registerTrigger), backed by a concrete worker manifest, exact config shapes, and CLI commands ('iii trigger -n <namespace> <function>', 'compose::add worker=<name>@<version>'). The Rust block, however, uses top-level 'let' and the '?' operator outside any function, so it will not compile standalone — a minor gap in one of three language examples, matching 'mostly executable; concrete code with minor gaps' (4) rather than fully executable (5).

4 / 5

Workflow Clarity

This is a reference-style skill rather than a multi-step workflow, with no destructive or batch operations (so no validation cap applies). Task-to-tool tables ('Create your own worker | Write SDK code that calls registerWorker...') and explicit decision guidance ('Use enqueue for work that must complete with retries', 'Register local handlers when you control the implementation') make each path unambiguous, but there is no sequenced multi-step flow with checkpoints — matching 'clear sequence with most checkpoints present; minor gaps' (4) rather than the explicit validation/feedback-loop anchor (5).

4 / 5

Progressive Disclosure

No bundle files exist (references/, scripts/, assets/ are absent), and the body's references are one-level-deep and clearly signaled — the Boundaries section maps each neighboring skill (iii-observe, iii-engine-config, iii-sdk-reference, iii-architecture-patterns, iii-error-handling) to its topic. Sections are well organized, though ~100 lines of three-language code examples could plausibly live in per-language reference files — 'good structure; minor organization gaps' (4) rather than the cleanly split anchor (5).

4 / 5

Total

16

/

20

Passed

Description

80%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 highly specific, trigger-phrase-driven description that comprehensively enumerates the skill's action surface in a niche (iii) domain. Its main weakness is that it is purely a 'Use when' clause — the 'what' (what iii is, what the skill provides) is only implicit — and it includes 'observing functions', which slightly overlaps the sibling iii-observe skill.

Suggestions

Add a leading 'what' statement before the trigger list, e.g., 'Core iii primitives — functions, triggers, and workers, across TypeScript, Python, and Rust.' so both what and when are explicitly stated.

Include a few concrete natural terms users would mention, such as cron expressions, webhooks, queues, or 'worker-compose.yaml', to broaden trigger coverage.

Drop 'observing functions' from the description (or scope it as 'basic observe usage') to reduce overlap with the iii-observe skill, which the body already designates as the owner of that topic.

DimensionReasoningScore

Specificity

The description enumerates many distinct concrete actions — 'registering iii functions, binding triggers, observing functions, selecting sync/void/enqueue invocation, creating workers, inspecting the live worker registry, installing registry workers, authoring event sources, moving channel data, or adapting external HTTP functions' — giving comprehensive coverage of the skill's primitive surface. It clearly matches the 'multiple specific concrete actions; comprehensive coverage' anchor rather than the minor-gaps anchor below it.

5 / 5

Completeness

The 'when' is fully explicit ('Use when registering iii functions...') with concrete trigger activities, but the 'what' is only implicit — the enumerated activities imply capabilities without ever stating what iii is or what the skill provides. This matches the anchor 'both what and when; one could be more explicit' (4), not the explicit-both anchor (5).

4 / 5

Trigger Term Quality

Good natural keyword coverage via verb phrases users would say ('creating workers', 'binding triggers', 'registering iii functions', 'selecting sync/void/enqueue invocation'), but common variations and concrete artifacts are missing (e.g., cron, webhooks, queues, workers.iii.dev, worker-compose.yaml). This sits between 'good keyword coverage; a few natural terms missing' (4) and 'comprehensive coverage including synonyms' (5), closer to the former.

4 / 5

Distinctiveness Conflict Risk

The 'iii' prefix and primitive-specific terminology ('sync/void/enqueue invocation', 'live worker registry', 'channel data') establish a clear niche with minimal conflict against unrelated skills. However, 'observing functions' overlaps the sibling iii-observe skill's core territory, which the body itself defers to iii-observe — minor overlap risk with a closely related skill (4) rather than minimal risk (5).

4 / 5

Total

17

/

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

iii-hq/iii

Path

skills/iii-core-primitives/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.