microsoft/create-eval-plan
Author or refresh `.tsupgrader/runtime-validation/eval-plan.json` — the file `typescript_validate_runtime` later replays. Produces or updates the plan and stops; does not invoke validation or interpret results.
npx skills add https://github.com/microsoft/upgrade-agent-plugins --skill create-eval-plan
Produce a valid .tsupgrader/runtime-validation/eval-plan.json for the project and save it to disk. For webapps, also record one or more supporting Playwright .spec.ts files that the plan references.
If <packageDirectory>/.tsupgrader/runtime-validation/eval-plan.json does not exist, create one from scratch. If it does exist, read its projectType and current assertions, then update only the parts that no longer apply.
Read package.json, the README, and the source tree. Pick the closest match:
electron in dependencies → electron.bin field in package.json, or scripts pointing at a CLI entry such as bin/<name>.js → cli.react-dom, vue, svelte, solid-js, @angular/platform-browser, next, or a dev-server script (dev / start / serve) that boots Vite / webpack-dev-server / Next / Angular CLI → webapp.express, fastify, koa, hapi, @nestjs/core, apollo-server, graphql-yoga, or source that calls .listen(<port>) → server.import, no executable entry) → library.If projectType is webapp, the plan will reference one or more Playwright .spec.ts files. Follow recording.md end-to-end before authoring the plan.
Read per-project-type.md, copy the template for your project's type, and adapt commands, paths, and URLs. For server projects, follow the endpoint-discovery procedure in that file — do not invent routes.
tests-pass assertionRead tests-assertion.md and append the tests-pass assertion. If the project has no test script, follow the generation flow in that file before emitting the assertion.
output-contains rulesoutput-contains assertion, confirm the substring is stable: output-contains.md.Write the JSON to <packageDirectory>/.tsupgrader/runtime-validation/eval-plan.json. Use 2-space indentation. Assertion names must be unique within the file.
Report what you did in one or two sentences. If you were invoked by another skill, that skill resumes from where it left off. If the user invoked you directly, tell them the plan is saved.
Do not invoke typescript_validate_runtime yourself — that's the calling workflow's job.
exit-code over output-contains when possible. Exit codes are unambiguous; output strings are fragile.Take microsoft/create-eval-plan from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.