CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

ai-wrapper-product

You know AI wrappers get a bad rap, but the good ones solve real problems. You build products where AI is the engine, not the gimmick. You understand prompt engineering is product development. You balance costs with user experience. You create AI products people actually pay for and use daily.

38

Quality

48%

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-claude/skills/ai-wrapper-product/SKILL.md

The canonical home for this skill is ai-wrapper-product in sickn33/agentic-awesome-skills

SKILL.md
Quality
Evals
Security

Quality

Content

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

The body contains a useful core (wrapper-stack architecture, prompt templates, cost metering and usage-limit code) but wraps it in padding Claude doesn't need, ships it in a single monolithic file with broken code fences that corrupt rendering, and references sections (Handling Rate Limits, Handling Hallucinations) that were never written. Executable snippets are undermined by undefined helper dependencies.

Suggestions

Fix the unbalanced/nested code fences (lines 37-41, 96, 104-108, 159, 167-171, 224) — as written they swallow headers and the Model Selection table into code blocks and make the skill unreliable to follow.

Cut knowledge Claude already has (JSON.parse-with-fallback, generic validation, the capabilities topic list, the anti-pattern business advice) and move time-sensitive model/pricing tables into a dated reference file so rates and model IDs don't rot inline.

Complete the code snippets by defining or stubbing parseOutput, db, getUserLimits, startOfMonth, and either write the promised Handling Rate Limits / Improving AI Latency sections or remove the Sharp Edges references to them; add an explicit retry/fallback loop to the API-call step.

DimensionReasoningScore

Conciseness

Multiple padded sections restate what Claude already knows: a generic input-length check, a try/catch JSON.parse with regex fallback, a quality-control table of obvious techniques ("Validation | Catch malformed responses", "Retry logic | Handle failures"), anti-patterns that are common business sense ("Users just use ChatGPT. No pricing power."), a capabilities list that is just topic names, and the persona paragraph duplicated verbatim from the frontmatter. Time-sensitive model IDs and per-token rates (claude-3-haiku-20240307, a 2024 price table) are inlined with no deprecated/old-patterns framing, which further penalizes. This matches anchor 2 ("Noticeably verbose; several unnecessary explanations or padded sections"); not 1 because a minority of sections (cost tracking, usage limits) do carry non-obvious specifics.

2 / 5

Actionability

There is real, mostly-executable JavaScript (generateContent, promptTemplates, parseAIOutput, calculateCost, checkUsageLimits), but key details are missing — parseOutput, db, getUserLimits, startOfMonth are never defined, calculateCost hard-codes a single model's rates, and the fenced markdown is badly broken (e.g. ```python opened at line 37 wraps markdown headers, nested ```javascript fences at lines 104-108 and 167-171, and a stray fence at line 96 swallows the Model Selection table and following headers into code blocks). This matches anchor 3 ("Some concrete guidance but incomplete; missing key details"); it cannot be 4 because the broken fences and pervasive undefined dependencies are more than minor gaps.

3 / 5

Workflow Clarity

The Wrapper Stack diagram provides a sequence that names validation stages ("Input Validation + Sanitization" → "Output Parsing + Validation") but never gives checkpoints or failure handling for those stages, and the skill is organized as topical patterns rather than an ordered process. This matches anchor 3 ("sequence present but checkpoints missing or implicit"); not 2 because validation is at least explicitly present in the flow, and not 4 because no step tells Claude what to do when validation or an API call fails (the Sharp Edges table points to "## Handling Rate Limits" / "## Handling Hallucinations" sections that do not exist in the file).

3 / 5

Progressive Disclosure

The body is a single ~280-line file with reasonable section headers (Patterns, Anti-Patterns, Sharp Edges) but all reference-style material inlined — model comparison tables, rate tables, prompt templates — and no bundle files exist to offload it. This matches anchor 3 ("Some structure but could be better organized; content that should be separate is inline"); not 4 because there are no one-level-deep reference files at all and the broken fences make navigation unreliable, and not 2 because sections are clearly labeled and the content is not an undifferentiated wall.

3 / 5

Total

11

/

20

Passed

Description

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

The description reads as a second-person persona/philosophy statement rather than a capability description: it names a domain but no concrete actions, includes no 'Use when...' trigger guidance, and buries its few natural keywords in aspirational prose. It would rarely fire for the right request on its own.

Suggestions

Rewrite in third person with concrete actions, e.g. "Designs and builds AI-wrapper products around LLM APIs: architects the input-validation-to-output-parsing stack, engineers product prompts, meters and controls API costs, and validates model outputs. Use when building an AI wrapper product, GPT-wrapper SaaS, or any product where an LLM API is the core engine."

Add an explicit "Use when..." clause with the trigger phrases users would naturally say (AI wrapper, GPT wrapper, LLM-powered product, AI SaaS, chatbot product).

Remove the philosophical framing ("You know AI wrappers get a bad rap, but the good ones solve real problems") — it consumes the description budget without adding trigger or capability information.

DimensionReasoningScore

Specificity

The description is entirely second person ("You build products where AI is the engine, not the gimmick", "You balance costs with user experience", "You create AI products people actually pay for") and its actions are generic ("build products", "balance costs", "create AI products") with no concrete verbs — matching anchor 2 ("Names the domain but actions are minimal or generic"), then reduced by 1 for the second-person voice per the judging guideline. The result would drop below 1 if further penalized, so it sits at the scale minimum.

1 / 5

Completeness

The 'what' is vague philosophy ("AI is the engine, not the gimmick", "prompt engineering is product development") rather than stated capabilities, and the 'when' is entirely absent — no "Use when..." clause or equivalent trigger guidance exists, which also caps completeness at 3 per the guidelines. This matches anchor 2 ("Has a vague 'what' and no 'when'"); it cannot be 3 because the 'what' never names concrete actions, and cannot be 1 because the domain and intent are at least identifiable.

2 / 5

Trigger Term Quality

It contains some relevant natural keywords ("AI wrappers", "AI products", "prompt engineering", "costs") a user might say, but misses common variations and synonyms ("GPT wrapper", "LLM app", "chatbot", "AI SaaS"). This matches anchor 3 ("Some relevant keywords but missing common variations or synonyms"); it is above 2 because several genuinely natural domain terms are present, and below 4 because coverage is sparse and mixed into persona prose.

3 / 5

Distinctiveness Conflict Risk

The AI-wrapper/AI-product niche is somewhat specific, but the description overlaps with adjacent skills the body itself lists (`llm-architect`, `micro-saas-launcher`) and with generic product-building skills. This matches anchor 3 ("Somewhat specific but could still overlap with similar skills"); not 4 because no distinct trigger phrases mark out this skill from close neighbors, and not 2 because the AI-wrapper framing does narrow the scope.

3 / 5

Total

9

/

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-claude/skills/ai-wrapper-product/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.