minimal-repro
Giúp tạo một bản tái hiện tối thiểu cho lỗi trình biên dịch hoặc bộ phát TypeSpec. Sử dụng khi người dùng cung cấp mã nguồn TypeSpec (mã được dán hoặc URL GitHub) và mô tả…
npx skills add https://github.com/microsoft/typespec --skill minimal-reproMinimal Reproduction
Reduce a user-reported TypeSpec bug to the smallest single .tsp file that still triggers the issue.
Inputs
- TypeSpec source (pasted or GitHub URL)
- Error description (diagnostic code, message, or incorrect emitter output)
Environment
Use packages/samples/scratch/ as the working directory — it's gitignored and the packages/samples package already depends on compiler, http, rest, openapi3, versioning, json-schema, etc.
If the repro needs packages NOT in the workspace (e.g., @azure-tools/*), use a temp folder with npm install instead.
Steps
-
Reproduce — Write the user's code to
packages/samples/scratch/main.tsp, compile withnpx tsp compile main.tsp(add--emit <emitter>if relevant), and confirm the same error occurs. -
Minimize — Iteratively remove code (unused imports, models, properties, decorators, operations, namespaces) and re-compile after each removal. Keep only what's needed to trigger the same error. Undo any removal that makes the error disappear.
-
Present — Show the final minimal
.tsp, the compile command, and the error output. Suggest pasting into a GitHub issue or the TypeSpec Playground. -
Cleanup — Remove scratch files (
rm -f packages/samples/scratch/*.tsp packages/samples/scratch/tspconfig.yaml && rm -rf packages/samples/scratch/tsp-output).
Tips
- Most reproductions reduce to a single file with no namespaces needed.
- Remove
@service,@server,@doc,@infoearly — they're rarely relevant. - Combine multi-file code into one file by inlining.
- If the error doesn't reproduce, check for missing
import/usingstatements.