Agent skill

Removing Typescript Suppressions

by Comfy-Org in Comfy-Org/ComfyUI_frontend

Replaces @ts-expect-error and @ts-ignore directives with minimal type-safe fixes.

GPL-3.0Auto-check passedDevelopment

Install Removing Typescript Suppressions

skills CLI
$ npx skills add Comfy-Org/ComfyUI_frontend --skill removing-typescript-suppressions -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install Comfy-Org/ComfyUI_frontend removing-typescript-suppressions --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/Comfy-Org/ComfyUI_frontend.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/removing-typescript-suppressions .claude/skills/removing-typescript-suppressions && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
removing-typescript-suppressions
GitHub stars
2.1k
Token cost
~1.6k tokens
SKILL.md length
729 words
Files
1
Skills in repo
22
Repo updated
First seen
Licence
GPL-3.0

At a glance

Replaces @ts-expect-error and @ts-ignore directives with minimal type-safe fixes.

  • Works in 5 steps: Establish the scope → Read the ownership path → Expose the real errors → …
  • Removing TypeScript compiler suppressions
  • SKILL.md covers Workflow, Repair patterns and Guardrails
  • Calls pnpm, git and rg

What it does

Removing Typescript Suppressions is an agent skill from Comfy-Org/ComfyUI_frontend. Replaces @ts-expect-error and @ts-ignore directives with minimal type-safe fixes. Use when removing TypeScript compiler suppressions.

Its SKILL.md is about 1.6k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Development, covering Type safety. It works with TypeScript and pnpm. The repository describes itself as: Official front-end implementation of ComfyUI. The licence is GPL-3.0.

When your agent uses it

  • Removing TypeScript compiler suppressions
  • Tasks that involve Type safety

Example prompts

  • “Use the removing-typescript-suppressions skill to replace @ts-expect-error and @ts-ignore directives with minimal type-safe fixes”
  • “/removing-typescript-suppressions”

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. Establish the scope
  2. Read the ownership path
  3. Expose the real errors
  4. Repair the contract
  5. Verify behavior and absence

What it can do on your machine

Read from SKILL.md and the folder at commit f9be289. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • pnpm
    • git
    • rg

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use pnpm and git, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Removing Typescript Suppressions loads about 1.6k tokens when it runs. Until then it costs about 42 tokens; SKILL.md has 729 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~42
When it runs · the whole SKILL.md, loaded when a task matches
~1.6k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from Comfy-Org/ComfyUI_frontend at commit f9be289, republished under its GPL-3.0 licence (© Comfy-Org). 729 words, ~1,608 tokens.

Download SKILL.mdSave it as .claude/skills/removing-typescript-suppressions/SKILL.md (or your agent's skills folder).
name
removing-typescript-suppressions
description
Replaces @ts-expect-error and @ts-ignore directives with minimal type-safe fixes. Use when removing TypeScript compiler suppressions.

Removing TypeScript suppressions

Replace suppressions by repairing the contract that caused the compiler error. Do not silence the error elsewhere or widen types beyond the real runtime shape.

Workflow

1. Establish the scope

Read docs/guidance/typescript.md, docs/guidance/engineering.md, and the guidance for the affected files. Identify the correct comparison ref and list only suppressions introduced by the change under review:

bash
git diff --unified=2 <base-ref>...HEAD -- <paths> \
  | rg -n '^\+.*@ts-(expect-error|ignore)|^diff --git|^@@'

Do not expand the task to old suppressions unless the user asks. Preserve a suppression used deliberately to test a compiler error when that error is the behavior under test.

2. Read the ownership path

Read each affected file and trace the value to its source type, runtime owner, and consumers. Check declarations, store types, generated API types, library return types, test globals, and the relevant tsconfig before choosing a fix.

Do not accept the suppression comment as the diagnosis. Verify the failing code path and runtime shape.

3. Expose the real errors

Remove the in-scope suppressions, then run the narrowest typecheck that owns the files. Use the compiler diagnostics to group failures by root cause instead of patching each line independently.

Common commands in this repository:

bash
pnpm typecheck
pnpm typecheck:browser
pnpm typecheck:scripts
pnpm typecheck:website
4. Repair the contract

Prefer, in order:

  1. correct types at the source
  2. control-flow narrowing
  3. an existing domain type or generated API type
  4. unknown at a genuine compatibility boundary, followed by runtime narrowing

Avoid any, as any, a replacement assertion, a broader optional type, or a new wrapper that merely hides the mismatch. Keep public API types stable and do not expose internal store types through public facades.

5. Verify behavior and absence

Run the owning typecheck, focused tests, lint, formatting, and a whitespace check. Use pnpm exec vitest run for Vitest, pnpm test:browser:local or pnpm test:browser for Playwright, and the owning repository script for other test types. Confirm that the diff adds no suppression:

bash
pnpm exec eslint <changed-files>
pnpm exec oxfmt --check <changed-files>
git diff --check <base-ref>...HEAD -- <paths>
git diff --unified=0 <base-ref>...HEAD -- <paths> \
  | rg '^\+.*@ts-(expect-error|ignore)'

The final rg command should return no matches. Run broader checks when the fix changes a shared type, public contract, store, or cross-package boundary.

Repair patterns

Narrow optional browser globals once

Copy an optional global to a local and guard it. This preserves narrowing across callbacks and asynchronous code.

typescript
const app = window.app
if (!app) throw new Error('ComfyUI app is not initialized')

await app.api.getNodeDefs()
Use the owner instead of casting a facade

When a public facade intentionally omits internal collections, import the store or service that owns those collections. Do not widen the facade or cast through it for one caller.

Narrow value-or-factory unions

Resolve callbacks before using their values:

typescript
const label =
  typeof command.label === 'function' ? command.label() : command.label

Resolve a factory default before passing it to another resolver. Keep untyped legacy data as unknown. Narrow objects before reading properties, functions before calling them, and returned values before use.

Show full SKILL.md (301 more words)Show less
Read map identity from Object.entries

If an object's key is the identifier, do not invent an id property on its values:

typescript
Object.entries(dialogs).map(([id, dialog]) => ({ id, title: dialog.title }))
Handle nullable factories before dereferencing

Respect library return types such as LiteGraph.createNode(): LGraphNode | null:

typescript
const node = liteGraph.createNode(nodeName, displayName)
if (!node?.widgets?.length) return {}

Use optional chaining only when the missing value and the empty value have the same behavior. Otherwise, use a guard with a useful error.

Use named payloads across callback boundaries

Heterogeneous array arguments often lose positional types in page.evaluate and similar APIs. Pass an object instead of asserting a tuple:

typescript
await page.evaluate(
  ({ nodeName, displayName, inputNames }) => {
    // use the independently typed fields
  },
  { nodeName, displayName, inputNames }
)
Validate serialization boundaries

Type values produced by code you own before passing them to Object.fromEntries. If JSON or browser data arrives as unknown, validate its full nested shape before assigning a domain type. A result annotation does not validate data.

Make test preconditions executable

If a test needs optional output, narrow it with a runtime guard that produces a clear behavioral failure:

typescript
if (!serialized.inputs || !serialized.outputs) {
  throw new Error('Expected serialized node labels')
}

Do not replace the suppression with a non-null assertion.

Install minimal test globals without claiming full DOM types

When Node tests need a small browser shim, add the property to the host object instead of assigning {} to a full Window type:

typescript
if (typeof window === 'undefined') {
  Object.assign(globalThis, { window: {} })
}
Delete documentation-only values

If strict checking reports an unused constant kept only as documentation, delete it. Put useful context on the value that the code actually checks.

Guardrails

  • Do not hand-declare server response types. Import generated shared types.
  • Do not grow ExtensionManager or another public API to expose private state.
  • Put reusable type guards in leaf modules with runtime-free import type dependencies.
  • Do not change runtime behavior while repairing types unless the old code was demonstrably inconsistent with its runtime contract. Cover such a bug with a focused test.
  • Treat review findings and their proposed fixes as claims. Reproduce the error against current code, then fix or reject each finding with concrete evidence.

© Comfy-Org, GPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/removing-typescript-suppressions of Comfy-Org/ComfyUI_frontend.

Open the folder on GitHubat commit f9be289

Compare with similar skills

Removing Typescript Suppressions next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Removing Typescript Suppressions compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Removing Typescript Suppressions this skillComfy-Org/ComfyUI_frontend2.1k—~1.6kAutomated safety check: PassGPL-3.0
TypeScript Monorepo Conventionspierrecomputer/pierre6.3k—~450Automated safety check: PassApache-2.0
Tabler Shared Lib Helperstabler/tabler42k—~1.2kAutomated safety check: PassMIT
Typescript Expertremix-run/remix33k—~3.4kAutomated safety check: PassMIT
Typed Service Contractsgoogle-labs-code/stitch-sdk1.8k—~1.4kAutomated safety check: PassApache-2.0
Optimizeopenplayerjs/openplayerjs649—~1.9kAutomated safety check: PassMIT

Similar skills

  • TypeScript Monorepo Conventions

    pierrecomputer/pierre

    Conventions for adding packages and apps to a TypeScript monorepo: project references, moon tasks, workspace dependencies and published package exports.

    6.3k GitHub stars~450 tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Moves logic out of Astro frontmatter into tested helper modules under shared/lib, with rules for naming, typing, deterministic demo data and sibling test files.

    42k GitHub stars~1.2k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Typescript Expert

    remix-run/remix

    Write, refactor, or review TypeScript code with strict, precise, maintainable types and without unnecessary any, type assertions, or type suppressions.

    33k GitHub stars~3.4k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Typed Service Contracts

    google-labs-code/stitch-sdk

    Official

    Architecture standard for building robust, type-safe TypeScript services using the "Spec and Handler" pattern.

    1.8k GitHub stars~1.4k tokensUpdated 9 days ago
    DevelopmentAuto-check passed
  • Optimize

    openplayerjs/openplayerjs

    Find and safely apply ONE worthwhile code optimization (reuse, simplification, efficiency, or a dead-weight cleanup) somewhere in packages//src, with new regression tests proving behavior is…

    649 GitHub stars~1.9k tokensUpdated 4 days ago
    DevelopmentAuto-check passed
  • Typescript Advanced Types

    rolling-scopes/rsschool-app

    Master TypeScript's advanced type system including generics, conditional types, mapped types, template literals, and utility types for building type-safe applications.

    10k GitHub starsUsed in 25 repos~4.2k tokens
    DevelopmentAuto-check passed

More from Comfy-Org/ComfyUI_frontend

All 22 skills in this repo
  • Adding Deprecation Warnings

    Comfy-Org/ComfyUI_frontend

    Adds deprecation warnings for renamed or removed properties/APIs.

    2.1k GitHub stars~775 tokensUpdated today
    Auto-check passed
  • Agent Integration Replay

    Comfy-Org/ComfyUI_frontend

    Replay recorded agent conversations as Playwright tests against the real chat panel and canvas.

    2.1k GitHub stars~805 tokensUpdated today
    Auto-check: notes
  • Codegen Transform

    Comfy-Org/ComfyUI_frontend

    Transforms raw Playwright codegen output into ComfyUI convention-compliant tests.

    2.1k GitHub stars~2k tokensUpdated today
    Auto-check passed
  • Comment Sicko

    Comfy-Org/ComfyUI_frontend

    Dispatches the comment-sicko subagent to hunt gratuitous comments in a PR/diff, triages its raw findings, and posts a polite, professional writeup.

    2.1k GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Hardening Flaky E2E Tests

    Comfy-Org/ComfyUI_frontend

    Diagnoses and fixes flaky Playwright e2e tests by replacing race-prone patterns with retry-safe alternatives.

    2.1k GitHub stars~2.8k tokensUpdated today
    Auto-check passed
  • Perf Fix With Proof

    Comfy-Org/ComfyUI_frontend

    Ships performance fixes with CI-proven improvement using stacked PRs.

    2.1k GitHub stars~1.6k tokensUpdated today
    Auto-check passed

Works with

Questions about Removing Typescript Suppressions

What does Removing Typescript Suppressions do?

Replaces @ts-expect-error and @ts-ignore directives with minimal type-safe fixes. Removing Typescript Suppressions is an agent skill from Comfy-Org/ComfyUI_frontend. Replaces @ts-expect-error and @ts-ignore directives with minimal type-safe fixes.

When should I use Removing Typescript Suppressions?

Removing Typescript Suppressions fits situations like: removing TypeScript compiler suppressions; tasks that involve Type safety.

How do I install Removing Typescript Suppressions in Claude Code?

Run `npx skills add Comfy-Org/ComfyUI_frontend --skill removing-typescript-suppressions -a claude-code`. Or copy the skill folder (.agents/skills/removing-typescript-suppressions in Comfy-Org/ComfyUI_frontend) into .claude/skills/removing-typescript-suppressions in your project. Claude Code loads it when a task matches its description.

How do I install Removing Typescript Suppressions in Codex?

Run `npx skills add Comfy-Org/ComfyUI_frontend --skill removing-typescript-suppressions -a codex`. Or copy the skill folder (.agents/skills/removing-typescript-suppressions in Comfy-Org/ComfyUI_frontend) into .agents/skills/removing-typescript-suppressions in your project. Codex loads it when a task matches its description.

Can I use Removing Typescript Suppressions in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Comfy-Org/ComfyUI_frontend --skill removing-typescript-suppressions -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/removing-typescript-suppressions, .gemini/skills/removing-typescript-suppressions, .github/skills/removing-typescript-suppressions and .opencode/skills/removing-typescript-suppressions in your project.

What does Removing Typescript Suppressions need to run?

Going by SKILL.md and its folder, Removing Typescript Suppressions needs the command-line tools its instructions call (pnpm, git and rg).

Does Removing Typescript Suppressions access the network?

SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Removing Typescript Suppressions safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Removing Typescript Suppressions use?

Removing Typescript Suppressions is published under the GPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Removing Typescript Suppressions use?

About 1.6k tokens (SKILL.md is roughly 6.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Removing Typescript Suppressions?

Skills that share tags, products or a category with Removing Typescript Suppressions: TypeScript Monorepo Conventions (pierrecomputer/pierre, 6.3k stars), Tabler Shared Lib Helpers (tabler/tabler, 42k stars), Typescript Expert (remix-run/remix, 33k stars) and Typed Service Contracts (google-labs-code/stitch-sdk, 1.8k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Removing Typescript Suppressions?

Comfy-Org (a GitHub organization) maintains it in Comfy-Org/ComfyUI_frontend, which has 2,056 GitHub stars. The repository holds 22 skills in this directory. The repository was last updated on October 9, 2026.

Source: Comfy-Org/ComfyUI_frontend on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.