CtrlK
BlogDocsLog inGet started
Tessl Logo

moodle-external-api-development

This skill guides you through creating custom external web service APIs for Moodle LMS, following Moodle's external API framework and coding standards.

48

Quality

52%

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

Fix and improve this skill with Tessl

tessl review fix ./plugins/AI-Agents-Safe-Coding-Skills/skills/moodle-external-api-development/SKILL.md

The canonical home for this skill is moodle-external-api-development in administrakt0r/AI-Agents-Safe-Coding-Skills

SKILL.md
Quality
Evals
Security

Quality

Content

60%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

The skill excels in actionability with comprehensive, executable code examples covering the full Moodle external API development lifecycle. However, it is far too verbose for a SKILL.md, inlining extensive reference material, advanced patterns, and complete example implementations that should be split into separate bundle files. The broken reference to a non-existent attached file and the lack of progressive disclosure structure significantly weaken its effectiveness as a concise skill overview.

Suggestions

Split advanced patterns (transactions, course modules, access restrictions, random questions), the complete example APIs, and the Moodle tables reference into separate bundle files, keeping SKILL.md as a concise overview with links.

Remove explanations of concepts Claude already knows, such as what PARAM_INT means, what SQL injection is, and basic error handling patterns—just show the correct code.

Either include the referenced 'create_quiz_from_categories.php' as an actual bundle file or remove the dangling reference.

Deduplicate repeated guidance (e.g., 'always validate parameters' appears in Step 3 Critical Steps, Guidelines section, and Common Pitfalls) by consolidating into one location.

DimensionReasoningScore

Conciseness

The skill is significantly verbose at ~400+ lines. It explains concepts Claude already knows (what PARAM_INT means, what SQL injection is, basic PHP patterns), includes a table of common Moodle tables that's reference material better suited to a separate file, and repeats guidance (e.g., 'always validate parameters' appears in multiple places). The description at the top restates the frontmatter.

2 / 5

Actionability

The skill provides fully executable, copy-paste ready PHP code for every step of the process, including complete class files, service registration, curl commands for testing, JavaScript AJAX calls, and a full working example (get_quiz_attempts). Code examples are concrete and cover common cases comprehensively.

5 / 5

Workflow Clarity

The six-step implementation process is clearly sequenced and logically ordered. Validation is present within the code (validate_parameters, validate_context, require_capability) and error handling with try-catch is demonstrated. However, there's no explicit checkpoint between steps like 'verify your class loads before proceeding to service registration' or a validate-after-registration step beyond 'purge caches.' The debugging checklist at the end partially compensates.

4 / 5

Progressive Disclosure

This is a monolithic ~400-line file with no bundle files to offload content to. The common Moodle tables reference, advanced patterns (transactions, course modules, access restrictions, random questions), the full example APIs, and the debugging checklist could all be separate files. The one reference to an external file ('See attached create_quiz_from_categories.php') points to a file that doesn't exist in the bundle.

2 / 5

Total

13

/

20

Passed

Description

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

The description identifies a clear niche (Moodle LMS external API development) but lacks explicit trigger guidance ('Use when...') and could be more specific about the concrete actions it covers. The use of second person ('guides you through') violates the third-person voice guideline, and the description would benefit from listing specific sub-tasks and natural trigger terms.

Suggestions

Add an explicit 'Use when...' clause with trigger terms like 'Moodle web service', 'external function', 'Moodle API endpoint', 'externallib', or 'db/services.php'.

List specific concrete actions such as 'defining external functions, writing service definitions, handling parameters and return values, registering services in db/services.php'.

Rewrite in third person voice (e.g., 'Guides development of custom external web service APIs...') instead of second person ('guides you through').

DimensionReasoningScore

Specificity

Names the domain (Moodle LMS external web service APIs) and describes a concrete action (creating custom external APIs), but doesn't list multiple specific actions like defining function parameters, handling responses, writing service definitions, etc.

3 / 5

Completeness

Has a reasonable 'what' (creating custom external web service APIs for Moodle), but there is no explicit 'when' clause or trigger guidance. Per rubric guidelines, a missing 'Use when...' clause caps completeness at 3, and the 'what' is only moderately clear, placing this at 2.

2 / 5

Trigger Term Quality

Includes relevant keywords like 'Moodle LMS', 'external web service APIs', 'external API framework', and 'coding standards', but misses natural user phrases like 'web services', 'plugin API', 'external functions', 'db/services.php', or 'externallib.php'.

3 / 5

Distinctiveness Conflict Risk

Fairly distinct due to the specific niche of Moodle external API development, which is unlikely to overlap with many other skills. However, it could potentially overlap with a general Moodle plugin development skill or a generic API creation skill.

4 / 5

Total

12

/

20

Passed

Validation

81%

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

Validation9 / 11 Passed

Validation for skill structure

CriteriaDescriptionResult

skill_md_line_count

SKILL.md is long (601 lines); consider splitting into references/ and linking

Warning

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

Total

9

/

11

Passed

Repository
administrakt0r/AI-Agents-Safe-Coding-Skills
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.