CtrlK
BlogDocsLog inGet started
Tessl Logo

build-paths-beginner

Scaffold a small RAG chatbot on Oracle 26ai Free + langchain-oracledb + OCI Generative AI Grok 4 + sentence-transformers MiniLM-L6-v2 (Python-side embeddings, same model intermediate/advanced register inside Oracle) + Open WebUI. Three flavors that share one skeleton — PDF / Markdown / Web. For users new to Oracle who want a polished demo running in an afternoon.

67

Quality

81%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Low

Low-risk findings worth noting

SKILL.md
Quality
Evals
Security

Quality

Content

88%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 tightly written orchestrator skill with an exemplary workflow structure — explicit sequencing, blocking checkpoints, a verify/retry loop, and clear stop conditions. The weaknesses are local rather than structural: a non-executable code snippet (missing import), a compose snippet whose top-level volumes key would be misplaced when appended, and an internal contradiction about whether to include the openai dependency.

Suggestions

Fix the embedder factory snippet by adding "import os" so it is copy-paste executable, and show the top-level "volumes:" key being appended at file scope (not inside services:) so the compose merge is unambiguous.

Resolve the dependency contradiction in step 3b item 6: it says "Do NOT add oci-openai or openai" while the always-list includes "openai>=1.40" — clarify which package is forbidden (presumably the oci-openai compat shim).

Verify the referenced bundle files (shared/references/*, shared/snippets/*, shared/templates/*, skills/*) ship alongside this SKILL.md, since roughly a dozen load-bearing paths are cited and none are present in this bundle.

DimensionReasoningScore

Conciseness

The body is dense, imperative instruction end to end — exact env vars ("OCI_GENAI_API_KEY"), exact model ids ("xai.grok-4 (full id required — grok-4 alone won't resolve)"), a variable-resolution table, a line budget ("Don't write more than ~450 lines"), and a hard "What you must NOT do" list. No concept explanations Claude would already know; even the parentheticals ("do not add the legacy /20231130/actions/openai path — that is for SigV1, not bearer-token") are non-obvious domain specifics that earn their tokens.

5 / 5

Actionability

Largely executable: a copy-paste docker-compose service block, a pinned dependency list ("fastapi>=0.110", "pypdf>=4"), a .env.example block, verify commands with expected output ("verify: OK (db, vector, inference)"), and curl-able endpoints. It falls short of fully copy-paste-ready: the embedder factory snippet uses os.environ without "import os", the "volumes: openwebui_data:" top-level key is shown appended inside the services block of the generated compose file, and item 6 contradicts itself — "Do NOT add oci-openai or openai" while the always-deps list already includes "openai>=1.40".

4 / 5

Workflow Clarity

Steps 0–5 are explicitly ordered with rationale ("Order matters — invocation of building-block skills happens before project code"), blocking checkpoints ("Block until it reports OK"), a verification stage with expected output and an explicit recovery loop ("follow shared/verify.md recovery loop, max 3 retries"), a Stop conditions section, and a done-gate ("Don't claim done before verify is green AND the adapter boots cleanly"). Validation is present at every fragile point (DB health, dim == 384, /v1/models probe, port 3000 responds).

5 / 5

Progressive Disclosure

Structure is good: a mandatory "Read these references first" section lists one-level-deep references with load-bearing markers ("langchain-oracledb.md ← load-bearing"), and inline content is limited to orchestration specifics rather than API reference. It is not a 5 because the referenced bundle files (shared/references/*, skills/*, shared/snippets/*) are not present alongside SKILL.md, so navigation and one-level depth cannot be verified, and some spec detail (dependency lists, .env.example contents, the final-report template) could live in a reference file to slim the overview further.

4 / 5

Total

18

/

20

Passed

Description

75%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, concrete description that clearly states what the skill builds and for whom, with a specific stack and three input flavors. Its main gap is the absence of an explicit 'Use when...' trigger clause and natural-language trigger synonyms, leaving when-to-invoke guidance audience-based rather than phrase-based.

Suggestions

Add an explicit trigger clause, e.g. "Use when the user asks for a beginner RAG demo, wants to chat with their PDFs/notes/web pages on Oracle, or wants a runnable Oracle AI demo in an afternoon."

Include a few natural user phrasings as trigger synonyms ("build my first RAG chatbot", "chat with my documents", "Oracle vector search demo") to strengthen trigger_term_quality and distinctiveness against sibling tiers.

DimensionReasoningScore

Specificity

The description names several concrete specifics — "Scaffold a small RAG chatbot", "Oracle 26ai Free + langchain-oracledb + OCI Generative AI Grok 4 + sentence-transformers MiniLM-L6-v2", and "Three flavors that share one skeleton — PDF / Markdown / Web" — which goes beyond naming the domain. It falls short of a 5 because the coverage is really one action (scaffold) plus its stack, not the multiple distinct operations (ingest, verify, wire a chat UI) the body actually performs.

4 / 5

Completeness

The "what" is explicit ("Scaffold a small RAG chatbot on ... + Open WebUI") and a "when" equivalent is present ("For users new to Oracle who want a polished demo running in an afternoon"), so both halves are answered. Not a 5 because the when-clause targets an audience rather than giving concrete trigger phrases ("Use when the user asks for a beginner RAG demo / to chat with PDFs..."), leaving the invocation conditions implied rather than explicit.

4 / 5

Trigger Term Quality

Good natural keywords a user would plausibly say: "RAG chatbot", "PDF / Markdown / Web", "polished demo", "demo running in an afternoon". Not a 5 because common trigger phrasings are missing — no "build", "beginner project", "vector search", or "chat with my documents" style synonyms, and terms like "langchain-oracledb" and "MiniLM-L6-v2" are jargon users rarely volunteer.

4 / 5

Distinctiveness Conflict Risk

The Oracle 26ai + OCI GenAI + langchain-oracledb niche is highly distinct from generic RAG/chatbot skills, and the tier signal ("users new to Oracle", "same model intermediate/advanced register inside Oracle") differentiates it from sibling tiers. Not a 5 because sibling intermediate/advanced skills in the same archive share the same stack and skeleton, so overlap risk within the family remains; the differentiation relies on audience phrasing rather than distinct trigger terms.

4 / 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
oracle-devrel/oracle-ai-developer-hub
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.