CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

migrate

Migrate an application with hardcoded LLM prompts to a full LaunchDarkly AgentControl implementation in five stages: audit the code, wrap the call, move the tools, add tracking, attach evaluators. Use when the user wants to externalize model/prompt configuration, move from direct provider calls (OpenAI, Anthropic, Bedrock, Gemini, Strands) to a managed config, or stage a full hardcoded-to-LaunchDarkly migration.

Quality

88%

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

SKILL.md
Quality
Evals
Security

Quality

Content

81%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 is a highly actionable, well-sequenced migration workflow with exceptional checkpoint discipline and executable code for both Python and Node across all five stages. Its weaknesses are token redundancy — the top failure modes are repeated three times across the warning box, stage bodies, and 'What NOT to Do' — and heavy reliance on cross-links to a sibling built-in-metrics skill whose files are not in this bundle.

Suggestions

Deduplicate the three-way repetition of the top failure modes: keep the opening warning box as a one-line pointer, state each rule once in the stage where it applies, and cut the restated items from 'What NOT to Do' — this alone would remove roughly 60-90 lines and lift conciseness toward the 4 anchor.

Treat '../built-in-metrics/...' links as external dependencies: either state up front that this skill requires the sibling plugin to be installed (so readers know why those paths resolve) or copy the small number of critical snippets (e.g. the Anthropic Tier-3 extractor) into this skill's own references.

Move the framework coverage matrix and the LangChain/LangGraph 'What NOT to Do' subsection into agent-mode-frameworks.md or a new gotchas.md, leaving SKILL.md a leaner overview that links out — the main body is currently 573 lines where a ~300-line core plus references would navigate better.

DimensionReasoningScore

Conciseness

The body is dense with genuinely non-obvious, skill-specific material (SDK gotchas, hand-off model, at-most-once guard semantics) and explains nothing Claude already knows, but the 573-line body carries noticeable redundancy: the fallthrough/`enabled=False` warning appears three times (warning box, Stage 2 sub-step 4, 'What NOT to Do'), the `load_chat_model` deletion rule three times, and the ~90-line 'What NOT to Do' section largely restates guidance already given inline in the stages. This matches the 3 anchor ('mostly efficient but... could be tightened'); it is not a 2 because nearly every token is skill-specific rather than padded explanation, and not a 4 because the deliberate triple-stating of the top failure modes is a clear trimming opportunity.

3 / 5

Actionability

Guidance is copy-paste executable throughout: complete Python and Node initialization/fallback/tracker/judge code blocks, pinned package names with versions ('launchdarkly-server-sdk-ai>=0.20.0'), exact MCP tool and slash-command names, a concrete Stage 1 output template, and a verification recipe that names the exact env var value to test ('temporarily set LD_SDK_KEY=sdk-invalid'). Common cases (OpenAI, Anthropic, LangChain/LangGraph, Strands, custom HTTP) each get specific handling, matching the 5 anchor.

5 / 5

Workflow Clarity

The five stages are strictly ordered with an explicit rationale for the ordering ('Wrap before you add tools... Skipping ahead produces configs without traffic'), every stage ends with a verification step, and Stage 1 has the strongest checkpoint in the workflow: a hard STOP with four explicit confirmation forms ('confirm', 'add:', 'fix:', 'stop') and a rule against interpreting other words as approval, plus troubleshooting pointers when verification fails. This is a clear match for the 5 anchor (explicit validation, feedback loops, checklists).

5 / 5

Progressive Disclosure

Structure is good: six real reference files in references/, each link clearly signaled with section anchors ('agent-mode-frameworks.md § Custom StateGraph') and one-line descriptions in a closing References section, and reference files link only within their own directory. It falls short of the 5 anchor for two reasons: the 573-line main body inlines substantial material (coverage matrix, edge-case table, 'What NOT to Do') that a leaner overview would delegate, and numerous links point at a sibling skill outside the bundle ('../built-in-metrics/references/langchain-tracking.md', '../built-in-metrics/SKILL.md') whose targets are not part of this skill's files, so navigation breaks if the skill is read standalone. It is above the 3 anchor because references are unburied, well-labeled, and one level deep within the bundle.

4 / 5

Total

17

/

20

Passed

Description

92%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 is excellent: imperative voice, a fully enumerated five-stage capability statement, and an explicit multi-scenario 'Use when' clause with concrete trigger terms including provider names. The only minor gap is a few missing natural phrasings (e.g. 'prompt management', 'AI configs') that keep trigger coverage just short of comprehensive.

DimensionReasoningScore

Specificity

The description enumerates five concrete pipeline actions — 'audit the code, wrap the call, move the tools, add tracking, attach evaluators' — plus the explicit transformation ('hardcoded LLM prompts to a full LaunchDarkly AgentControl implementation'), giving comprehensive, non-abstract coverage of the skill's capabilities. It exceeds the 4 anchor ('several specific actions; minor gaps') because no stage of the migration is left unnamed.

5 / 5

Completeness

Both halves are explicit: the 'what' is the five-stage migration to AgentControl with the stages enumerated, and the 'when' is a dedicated 'Use when...' clause listing three concrete trigger scenarios. This matches the 5 anchor ('clearly and explicitly answers both what AND when with concrete trigger phrases') and clearly exceeds the 4 anchor where the 'when' is present but less specific.

5 / 5

Trigger Term Quality

Strong natural triggers: 'Use when the user wants to externalize model/prompt configuration, move from direct provider calls (OpenAI, Anthropic, Bedrock, Gemini, Strands) to a managed config, or stage a full hardcoded-to-LaunchDarkly migration' captures how a user would phrase the need, including provider names and 'hardcoded'. A few natural phrasings users might say are absent (e.g. 'prompt management', 'AI configs', 'LLM observability/tracking'), so it falls just short of the 5 anchor's comprehensive synonym coverage.

4 / 5

Distinctiveness Conflict Risk

The niche is unambiguous — migrating hardcoded LLM prompts specifically to LaunchDarkly AgentControl — with distinct triggers (provider names, 'externalize model/prompt configuration'). It would not plausibly fire for unrelated skills, matching the 5 anchor ('clear niche with distinct triggers; minimal conflict risk').

5 / 5

Total

19

/

20

Passed

Validation

87%

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

Validation — 14 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

skill_md_line_count

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

Warning

relative_links

Relative link issues: 10 suspicious

Warning

Total

14

/

16

Passed

Repository

launchdarkly/ai-tooling

Path

skills/agentcontrol/migrate/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.