Selects how functions are invoked: synchronous result-returning calls, fire-and-forget void dispatches, or durable `TriggerAction.Enqueue({ queue })` background jobs. Use whenever a handler should not block the caller, work should run later or reliably with retries, a request should return quickly, or an agent must choose between inline RPC, optional side effects, and queued async processing.
59
67%
Does it follow best practices?
Impact
—
No eval scenarios have been run
Passed
No known issues
Optimize this skill with Tessl
npx tessl skill review --optimize ./skills/iii-trigger-actions/SKILL.mdQuality
Discovery
85%Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.
This is a strong description that clearly defines a specific technical domain (function invocation patterns) with concrete actions and an explicit 'Use whenever' trigger clause. Its main weakness is that the trigger terms lean heavily on technical jargon, which may not match how users naturally phrase their requests. The description is distinctive and unlikely to conflict with other skills.
Suggestions
Add more natural-language trigger terms that users might say, such as 'async vs sync', 'should this run in the background', 'how to call this function', or 'non-blocking execution'.
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | Lists multiple specific concrete actions: synchronous result-returning calls, fire-and-forget void dispatches, and durable TriggerAction.Enqueue background jobs. The description names precise invocation patterns with technical specificity. | 3 / 3 |
Completeness | Clearly answers both 'what' (selects between synchronous calls, void dispatches, and queued background jobs) and 'when' (explicit 'Use whenever' clause covering non-blocking handlers, deferred work, fast responses, and choosing between invocation styles). | 3 / 3 |
Trigger Term Quality | Includes some relevant terms like 'background jobs', 'retries', 'async processing', 'RPC', 'queue', and 'fire-and-forget', but these are fairly technical. Missing more natural user phrases like 'how to call a function', 'async vs sync', or 'should this be async'. The jargon-heavy language may not match how users naturally phrase requests. | 2 / 3 |
Distinctiveness Conflict Risk | Highly distinctive with a clear niche around function invocation patterns and the specific TriggerAction.Enqueue API. The combination of synchronous vs async vs queued dispatch is a narrow, well-defined domain unlikely to conflict with other skills. | 3 / 3 |
Total | 11 / 12 Passed |
Implementation
50%Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
This skill provides a solid conceptual framework for choosing between sync, void, and enqueue invocation modes with a useful decision guide and concrete code snippets. However, it suffers from moderate redundancy across sections (Architecture restates Key Concepts, overlapping boundary sections), lacks fully executable self-contained examples, and misses explicit validation/error-recovery workflows. The referenced implementation files are absent from the bundle, weakening the progressive disclosure structure.
Suggestions
Remove the 'Architecture' section as it restates Key Concepts, and consolidate 'When to Use' and 'Boundaries' into a single section to reduce redundancy.
Include at least one complete, executable code example inline (e.g., a full handler that uses all three modes) rather than relying entirely on external reference files that aren't bundled.
Add an explicit error-handling workflow with validation steps, e.g., 'If enqueue returns no receipt → check queue name → verify function is invokable → see iii-error-handling' as a feedback loop.
Provide the referenced bundle files (trigger-actions.js/py/rs) or inline the essential parts so the skill is self-sufficient.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The content is mostly efficient but includes some redundancy — the 'Architecture' section restates what's already clear from Key Concepts, the 'When to Use' and 'Boundaries' sections overlap, and some explanatory prose (e.g., 'Use the concepts below when they fit the task') adds little value. The decision guide in Key Concepts is good but the overall document could be tightened. | 2 / 3 |
Actionability | Common Patterns provides concrete code snippets and CLI commands that are close to copy-paste ready, but they are inline fragments rather than complete executable examples. The reference implementations are delegated to external files that aren't provided in the bundle, so the skill itself lacks fully executable, self-contained code blocks. | 2 / 3 |
Workflow Clarity | The decision guide (need result → sync, must complete → enqueue, optional → void) provides clear selection logic, and the 'Adapting This Pattern' section mentions combining modes. However, there are no explicit validation checkpoints or error recovery feedback loops — the timeout/error section describes behavior but doesn't provide a step-by-step workflow for handling failures or verifying correct invocation mode selection. | 2 / 3 |
Progressive Disclosure | The skill references external files (trigger-actions.js/py/rs) and other skills (iii-error-handling, iii-engine-config, etc.) which is good progressive disclosure structure. However, the bundle has no files, so the references are unverifiable. The Pattern Boundaries section provides clear cross-references. The inline content itself could benefit from better separation — the primitives table, common patterns, and timeout behavior could be in a reference file to keep the SKILL.md leaner. | 2 / 3 |
Total | 8 / 12 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 — 11 / 11 Passed
Validation for skill structure
No warnings or errors.
a7ebbbb
Table of Contents
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.