Claude Code
curl -fsSL https://raw.githubusercontent.com/vibe-md/vibe.md/7cb0620fbd80f9829155d8866328b58cd18d5aa7/scripts/install.sh \
| bash -s -- --group llm \
--agent claude-code --ref 7cb0620fbd80f9829155d8866328b58cd18d5aa7Practical skills for building and checking features that use language models.
Three skills that help your agent build, measure and maintain features that call language models. llm-eval-builder builds a repeatable evaluation set, llm-prompt-review reviews prompts and proposes specific edits, and llm-model-migration-check plans a safe switch from one model to another.
Changing a prompt or a model can change every answer an AI feature gives, and "I think the new prompt is better" is a guess, not a measurement. A prompt can also ask for an output format that the code reading it cannot parse.
LLM Engineering has 3 skills. Open one to see when to use it and how to install it on its own.
llm-eval-builderBuilds a small, repeatable evaluation set and runner for an LLM feature, with deterministic checks, optional rubric grading, and baseline comparison that catches regressions after a prompt or model change.Builds a small, repeatable evaluation set and runner for an LLM feature, with deterministic checks, optional rubric grading, and baseline comparison that catches regressions after a prompt or model change. Use when adding evals to an AI feature, checking whether a prompt or model change made outputs better or worse, or when the user asks how to measure LLM output quality. Not for security review, general unit tests, or one-off prompt wording.
Do not use this skill:
security-agent-guard for AI-specific risks.User: "Our invoice extractor sometimes returns the wrong total. How do I know if my prompt change fixed it?"
Agent: Asks for three correct extractions and the most costly error. Finds the function that builds the prompt and parses the response. Collects 30 synthetic invoices that include a missing total, two currencies, and a multi-page layout. Writes deterministic checks: the total equals the expected value, the currency is one of the allowed codes, and the output parses. Creates evals/llm/invoice-extractor.jsonl and a runner, runs five cases after confirming the cost, and reports that the total check passed four of five with the failing invoice's id. Proposes a baseline and a regression rule for the user to confirm.
User: "Make a quality check for our support reply summaries. They should be short, accurate, and polite."
Agent: Explains that "accurate" needs the source ticket to check against, and asks for 20 tickets with the summaries the team accepted. Uses deterministic checks for length and for required fields, and a three-criteria rubric for politeness and accuracy with pass and fail examples. Asks the user to label 10 cases by hand before the rubric is trusted, and reports the agreement rate after calibration.
User: "Check that my agent doesn't leak secrets in its answers."
Agent: Does not build an eval for this. Explains that the question is about security, and suggests security-agent-guard for the review and security-access-regression for access tests.
Command for Claude Code. To change the agent, use the picker in the installation section. To get every skill in LLM Engineering, install the whole package instead.
curl -fsSL https://raw.githubusercontent.com/vibe-md/vibe.md/7cb0620fbd80f9829155d8866328b58cd18d5aa7/scripts/install.sh \
| bash -s -- --skill llm-eval-builder \
--agent claude-code --ref 7cb0620fbd80f9829155d8866328b58cd18d5aa7llm-model-migration-checkPlans a safe switch from one language model to another.Plans a safe switch from one language model to another. Finds every model ID and model-specific setting in the project, checks the provider's current documentation for deprecations and API differences, compares eval results on the current and target models, and drafts a rollout and rollback plan. Use when a provider retires a model, when the team wants to upgrade or change models, or when model IDs are scattered through the code. Does not change production settings or deploy.
Do not use this skill:
llm-eval-builder first if the project has no evals.llm-prompt-review.User: "Our provider says the model we use is being retired next quarter. What do we need to do?"
Agent: Reads the provider's deprecation page and records the date. Finds three call sites, one of which uses an even older model in a backfill script nobody remembered. Lists that the target model renames a token-limit parameter and handles JSON mode differently. Proposes running the existing evals on both models, after showing the cost, and drafts a flag-based rollout with a rollback condition.
User: "Switch everything to the newest model."
Agent: Explains that it will plan and check the switch, not deploy it. Produces the inventory and the list of differences, recommends measuring with the project's evals first, and offers to make the code edits one call site at a time if the user approves.
Command for Claude Code. To change the agent, use the picker in the installation section. To get every skill in LLM Engineering, install the whole package instead.
curl -fsSL https://raw.githubusercontent.com/vibe-md/vibe.md/7cb0620fbd80f9829155d8866328b58cd18d5aa7/scripts/install.sh \
| bash -s -- --skill llm-model-migration-check \
--agent claude-code --ref 7cb0620fbd80f9829155d8866328b58cd18d5aa7llm-prompt-reviewReviews the prompts and prompt templates behind an LLM feature for a clear task, an output format that matches the code that parses it, handling of edge cases, and testability, then proposes specific edits.Reviews the prompts and prompt templates behind an LLM feature for a clear task, an output format that matches the code that parses it, handling of edge cases, and testability, then proposes specific edits. Use when the user asks to review or improve a prompt, before merging a prompt change, or when an LLM feature gives inconsistent or unparseable output. Read-only unless the user asks for edits. Not for prompt-injection or other security review.
Do not use this skill:
security-agent-guard.llm-eval-builder, and come back here to improve the prompt it measures.llm-model-migration-check.User: "Our summary feature sometimes returns a bulleted list and sometimes a paragraph. Can you fix the prompt?"
Agent: Finds the template and the code that displays the summary. Reports that the prompt asks for "a short summary" with no format, and that one of the two examples uses bullets while the other does not. Proposes a stated format, a length limit, and consistent examples, as a diff. Recommends measuring with llm-eval-builder before merging.
User: "Review this prompt before I merge it."
Agent: Reviews the assembled prompt and the parser. Finds that the prompt requests a field named category, while the code reads type, and that nothing says what to return when the input is empty. Reports those two findings with edits, and notes that the rest of the prompt is clear.
User: "Can someone trick this prompt into leaking data?"
Agent: Explains that this is a security question and suggests security-agent-guard.
Command for Claude Code. To change the agent, use the picker in the installation section. To get every skill in LLM Engineering, install the whole package instead.
curl -fsSL https://raw.githubusercontent.com/vibe-md/vibe.md/7cb0620fbd80f9829155d8866328b58cd18d5aa7/scripts/install.sh \
| bash -s -- --skill llm-prompt-review \
--agent claude-code --ref 7cb0620fbd80f9829155d8866328b58cd18d5aa7Installs every skill in LLM Engineering. To install a single skill, open it above and copy its own command.
One command
Open Terminal in your project folder, then run this command. No ZIP, moving files, or prompt needed.
curl -fsSL https://raw.githubusercontent.com/vibe-md/vibe.md/7cb0620fbd80f9829155d8866328b58cd18d5aa7/scripts/install.sh \
| bash -s -- --group llm \
--agent claude-code --ref 7cb0620fbd80f9829155d8866328b58cd18d5aa7Works on macOS, Linux, and Windows through WSL or Git Bash. The installer checks destinations and stops if existing files conflict.
Builds an eval set
llm-eval-builder agrees with you on what good output looks like, collects 20 to 50 realistic cases, writes the cheapest reliable checks first, and creates an eval file and a runner.
Catches regressions
It saves a baseline and a regression rule you confirm, so the next prompt or model change can be compared against it.
Reviews prompts
llm-prompt-review checks the prompt as the model receives it for a clear task, an output format that matches the parser, edge cases and conflicting rules, then proposes small edits as a diff.
Plans model switches
llm-model-migration-check reads the provider's current documentation, finds every model ID and model-specific setting, compares evals on both models, and drafts a rollout and rollback plan.
Asks before paid calls
Before any model call that costs money, your agent shows a cost estimate and asks you, and starts with a small sample.
Type these to your agent in plain language. Here's what to expect.
you › Our invoice extractor sometimes returns the wrong total. How do I know if my prompt change fixed it?
Expected workflow
you › Review this prompt before I merge it.
Expected workflow
you › Our provider says the model we use is being retired next quarter. What do we need to do?
Expected workflow
Each skill starts from your code: the prompt, the function that calls the model, and the code that uses the result. llm-eval-builder measures that whole path, not just the raw model call, and llm-prompt-review reviews the prompt as the model receives it.
The skills work together: build evals with llm-eval-builder, then use them to measure a prompt edit or a model switch. None of them claims an improvement without a measurement.