Skip to main content

twoslash-validator

Validate and fix two-slash TypeScript examples for aspire.dev. Use when adding or editing `twoslash` code fences, TypeScript AppHost samples, generated TypeScript API data, or failures from `pnpm test:unit:twoslash-blocks`.

معلومات المصدر

المستودع
microsoft/aspire.dev
آخر نشاط في المصدر
٢٩ يونيو ٢٠٢٦ في ١٤:٥٢
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
١٩٩
التفرعات
٩٣

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
twoslash-validator
description
Validate and fix two-slash TypeScript examples for aspire.dev. Use when adding or editing `twoslash` code fences, TypeScript AppHost samples, generated TypeScript API data, or failures from `pnpm test:unit:twoslash-blocks`.
# Two-slash Validator Skill Use this skill to keep aspire.dev from shipping rendered two-slash error UI. Any TypeScript diagnostic in a `twoslash` code block renders an error box on the site, so diagnostics must be fixed rather than suppressed. ## When to use this skill - Adding or editing a TypeScript code fence with the `twoslash` meta flag - Updating TypeScript AppHost examples that import `'./.aspire/modules/aspire.mjs'` - Refreshing `src/frontend/src/data/ts-modules/` or `src/frontend/src/data/twoslash/aspire.d.ts` - Investigating failures from `pnpm test:unit:twoslash-blocks` - Reviewing docs changes that affect TypeScript sample rendering ## Core rule Do not add diagnostic allowlists or suppressions. A two-slash diagnostic is user-visible output on aspire.dev. Fix the docs sample, fix/regenerate the generated type surface, or remove the `twoslash` meta until the sample compiles cleanly. ## Validation workflow Run commands from the repository root unless noted. 1. Ensure dependencies are installed: ```powershell Set-Location -Path .\src\frontend pnpm install --frozen-lockfile --prefer-offline ``` 2. If TypeScript API JSON changed, regenerate the two-slash declaration bundle: ```powershell pnpm twoslash-types ``` 3. Run the two-slash block gate: ```powershell pnpm test:unit:twoslash-blocks ``` 4. If the test fails, read every reported file, line, block number, and `ts(...)` code. Fix every diagnostic before considering the work complete. ## Fix strategy Use this order when deciding what to change: 1. **Docs sample bug:** If the TypeScript snippet calls the wrong API, uses the wrong argument shape, has a stale model name, or chains incompatible resources, fix the MDX sample. 2. **Generated type data stale:** If the sample matches the product API but `src/frontend/src/data/twoslash/aspire.d.ts` is stale, run `pnpm twoslash-types` and commit the regenerated bundle. 3. **Generator type-shape gap:** If regeneration is not enough because `scripts/generate-twoslash-types.ts` loses valid SDK shape, fix the generator and regenerate `aspire.d.ts`. 4. **Feature not representable yet:** If a correct sample cannot be represented by the current two-slash type data, remove the `twoslash` meta from that block and leave the code sample visible without two-slash rendering. Do not leave a rendered diagnostic. ## What not to do - Do not reintroduce `KNOWN_TYPE_BUGS`, per-page diagnostic budgets, or equivalent allowlists. - Do not disable `TWOSLASH_ENABLED` to make the test pass. - Do not change `noErrorValidation` as a substitute for fixing diagnostics; it exists so the audit can collect all failures at once. - Do not hide failures by changing the fence language away from TypeScript unless the sample is not TypeScript. - Do not edit generated `aspire.d.ts` by hand; update the generator or source JSON and regenerate. ## Expected final checks Before finishing a two-slash-related change, run: ```powershell Set-Location -Path .\src\frontend pnpm test:unit:twoslash-blocks ``` If you changed the generator, also run: ```powershell pnpm test:unit:twoslash-types ```
عرض على GitHub