CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

odoo-rpc-api

Expert on Odoo's external JSON-RPC and XML-RPC APIs. Covers authentication, model calls, record CRUD, and real-world integration examples in Python, JavaScript, and curl.

Quality

74%

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/odoo-rpc-api/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

68%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, largely executable reference: real copy-paste code for the main XML-RPC path, specific best practices, and honest limitations. The main gaps are missing validation/verification steps around database-mutating calls, and a curl example that cannot run as written because it lacks the session authentication /web/dataset/call_kw requires.

Suggestions

Add validation checkpoints around mutating calls: check that authenticate() returns a non-False uid, verify create() returns a valid record ID, and show one error-handling/retry snippet instead of only recommending it in prose.

Fix Example 3: include an authentication step for the JSON-RPC path (e.g., /web/session/authenticate to obtain a session cookie) and correct the contradictory comment that names /web/dataset/call_kw twice — the intended alternative endpoint is presumably /web/dataset/call.

Make Example 2 self-contained (or explicitly note it continues Example 1) so each snippet is independently copy-paste ready, and consider moving extended examples to a references/ file to keep SKILL.md leaner.

DimensionReasoningScore

Conciseness

The body is efficient: it assumes knowledge of Python/curl, uses compact Do/Don't bullets, and skips library tutorials. Minor trimmables keep it at anchor 4 rather than 5: the "How It Works" meta-section ("Mention @odoo-rpc-api...") and the self-contradictory comment in Example 3 ("Odoo 16+ also supports the /web/dataset/call_kw endpoint but prefer /web/dataset/call_kw" names the same endpoint twice). It is well above anchor 3's "several unnecessary explanations".

4 / 5

Actionability

Example 1 is fully executable copy-paste Python (authenticate then search_read), the curl example is concrete, and best practices are specific (API keys, search_read, batching). It stays at anchor 4 rather than 5 because the curl JSON-RPC example omits the authentication step /web/dataset/call_kw requires, Example 2 reuses variables only defined in Example 1, and the Example 3 comment is contradictory — concrete code with minor gaps, not missing key details at every step.

4 / 5

Workflow Clarity

The authenticate-then-call sequence is shown ("Step 1: Authenticate", "Step 2: Call models"), but there are no validation checkpoints: nothing checks that the returned uid is not False, verifies created record IDs, or demonstrates the error-handling/retry loop the best practices merely mention. Per the rubric's scoring note, record CRUD against a database without feedback loops caps workflow_clarity at 3.

3 / 5

Progressive Disclosure

No bundle files exist and the single ~95-line body is well organized with clear headers (Overview, When to Use, How It Works, Examples, Best Practices, Limitations) and scannable code blocks. At this length, with three full examples, some content could be split into reference files, so it fits anchor 4's "good structure, minor organization gaps" rather than anchor 5.

4 / 5

Total

15

/

20

Passed

Description

70%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, distinct description that names the domain and several concrete capabilities with the right natural keywords. Its one significant weakness is the complete absence of a "Use when..." trigger clause, which caps completeness and limits how reliably the skill will activate for relevant requests.

Suggestions

Append an explicit trigger clause, e.g., "Use when connecting an external app to Odoo, calling the Odoo API from Python/JavaScript/curl, or debugging Odoo RPC authentication or permission errors."

Trim filler like "Expert on" and "real-world" and replace with concrete operations (e.g., "search_read, create, write, unlink calls") to raise specificity toward anchor 5.

Add one or two natural synonym phrases users say ("connect to Odoo", "Odoo external API", "import/export data from Odoo") to broaden trigger coverage.

DimensionReasoningScore

Specificity

"Covers authentication, model calls, record CRUD" lists several concrete, specific actions in named languages ("Python, JavaScript, and curl"), matching anchor 4. It falls short of anchor 5 only because of mild padding ("Expert on", "real-world") and no method-level detail; it clearly exceeds anchor 3's 1-2 actions.

4 / 5

Completeness

The "what" is clear (authentication, model calls, record CRUD, examples in three languages), but there is no "Use when..." clause or equivalent trigger guidance anywhere in the description, which caps completeness at 3 per the judging guidelines. It fits anchor 3 exactly (clear what, when missing) and cannot reach anchor 4, which requires both what and when.

3 / 5

Trigger Term Quality

Natural keywords like "Odoo", "JSON-RPC", "XML-RPC", "API", "authentication", "CRUD", and "integration" give good coverage a user would actually say. A few natural phrasings are missing (e.g., "connect to Odoo", "external API", "import/export data"), so it fits anchor 4 rather than anchor 5's comprehensive synonym coverage.

4 / 5

Distinctiveness Conflict Risk

"Odoo's external JSON-RPC and XML-RPC APIs" names a specific product and specific protocols — a clear niche with distinct triggers and minimal conflict risk with other skills, matching anchor 5.

5 / 5

Total

16

/

20

Passed

Validation

93%

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

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

frontmatter_unknown_keys

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

Warning

Total

15

/

16

Passed

Repository

administrakt0r/AI-Agents-Safe-Coding-Skills

Path

plugins/AI-Agents-Safe-Coding-Skills/skills/odoo-rpc-api/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.