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.
Replaces @ts-expect-error and @ts-ignore directives with minimal type-safe fixes.
$ npx skills add Comfy-Org/ComfyUI_frontend --skill removing-typescript-suppressions -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install Comfy-Org/ComfyUI_frontend removing-typescript-suppressions --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ 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-srcUse ~/.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/
Install the "removing-typescript-suppressions" agent skill from https://github.com/Comfy-Org/ComfyUI_frontend/tree/main/.agents/skills/removing-typescript-suppressions into .claude/skills/removing-typescript-suppressions/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "removing-typescript-suppressions", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/Comfy-Org/ComfyUI_frontend/tree/main/.agents/skills/removing-typescript-suppressionsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add Comfy-Org/ComfyUI_frontend --skill removing-typescript-suppressions -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install Comfy-Org/ComfyUI_frontend removing-typescript-suppressions --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Comfy-Org/ComfyUI_frontend.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/removing-typescript-suppressions .agents/skills/removing-typescript-suppressions && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "removing-typescript-suppressions" agent skill from https://github.com/Comfy-Org/ComfyUI_frontend/tree/main/.agents/skills/removing-typescript-suppressions into .agents/skills/removing-typescript-suppressions/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "removing-typescript-suppressions", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Comfy-Org/ComfyUI_frontend --skill removing-typescript-suppressions -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install Comfy-Org/ComfyUI_frontend removing-typescript-suppressions --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Comfy-Org/ComfyUI_frontend.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/removing-typescript-suppressions .cursor/skills/removing-typescript-suppressions && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "removing-typescript-suppressions" agent skill from https://github.com/Comfy-Org/ComfyUI_frontend/tree/main/.agents/skills/removing-typescript-suppressions into .cursor/skills/removing-typescript-suppressions/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "removing-typescript-suppressions", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/Comfy-Org/ComfyUI_frontend.git --path .agents/skills/removing-typescript-suppressions--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add Comfy-Org/ComfyUI_frontend --skill removing-typescript-suppressions -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install Comfy-Org/ComfyUI_frontend removing-typescript-suppressions --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Comfy-Org/ComfyUI_frontend.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/removing-typescript-suppressions .gemini/skills/removing-typescript-suppressions && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "removing-typescript-suppressions" agent skill from https://github.com/Comfy-Org/ComfyUI_frontend/tree/main/.agents/skills/removing-typescript-suppressions into .gemini/skills/removing-typescript-suppressions/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "removing-typescript-suppressions", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install Comfy-Org/ComfyUI_frontend removing-typescript-suppressionsInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add Comfy-Org/ComfyUI_frontend --skill removing-typescript-suppressions -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/Comfy-Org/ComfyUI_frontend.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/removing-typescript-suppressions .github/skills/removing-typescript-suppressions && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "removing-typescript-suppressions" agent skill from https://github.com/Comfy-Org/ComfyUI_frontend/tree/main/.agents/skills/removing-typescript-suppressions into .github/skills/removing-typescript-suppressions/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "removing-typescript-suppressions", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Comfy-Org/ComfyUI_frontend --skill removing-typescript-suppressions -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install Comfy-Org/ComfyUI_frontend removing-typescript-suppressions --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Comfy-Org/ComfyUI_frontend.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/removing-typescript-suppressions .opencode/skills/removing-typescript-suppressions && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "removing-typescript-suppressions" agent skill from https://github.com/Comfy-Org/ComfyUI_frontend/tree/main/.agents/skills/removing-typescript-suppressions into .opencode/skills/removing-typescript-suppressions/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "removing-typescript-suppressions", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
removing-typescript-suppressionsReplaces @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. 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.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit f9be289. It shows what the files ask for, not the result of running them.
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.
Shell commands in SKILL.md call:
pnpmgitrgFrom the folder's file list and the shell code blocks in SKILL.md.
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.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
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.
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.
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.
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.
.claude/skills/removing-typescript-suppressions/SKILL.md (or your agent's skills folder).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.
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:
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.
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.
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:
pnpm typecheck
pnpm typecheck:browser
pnpm typecheck:scripts
pnpm typecheck:websitePrefer, in order:
unknown at a genuine compatibility boundary, followed by runtime narrowingAvoid 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.
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:
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.
Copy an optional global to a local and guard it. This preserves narrowing across callbacks and asynchronous code.
const app = window.app
if (!app) throw new Error('ComfyUI app is not initialized')
await app.api.getNodeDefs()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.
Resolve callbacks before using their values:
const label =
typeof command.label === 'function' ? command.label() : command.labelResolve 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.
Object.entriesIf an object's key is the identifier, do not invent an id property on its
values:
Object.entries(dialogs).map(([id, dialog]) => ({ id, title: dialog.title }))Respect library return types such as LiteGraph.createNode(): LGraphNode | null:
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.
Heterogeneous array arguments often lose positional types in page.evaluate
and similar APIs. Pass an object instead of asserting a tuple:
await page.evaluate(
({ nodeName, displayName, inputNames }) => {
// use the independently typed fields
},
{ nodeName, displayName, inputNames }
)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.
If a test needs optional output, narrow it with a runtime guard that produces a clear behavioral failure:
if (!serialized.inputs || !serialized.outputs) {
throw new Error('Expected serialized node labels')
}Do not replace the suppression with a non-null assertion.
When Node tests need a small browser shim, add the property to the host object
instead of assigning {} to a full Window type:
if (typeof window === 'undefined') {
Object.assign(globalThis, { window: {} })
}If strict checking reports an unused constant kept only as documentation, delete it. Put useful context on the value that the code actually checks.
ExtensionManager or another public API to expose private state.import type
dependencies.© 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
Just SKILL.md in .agents/skills/removing-typescript-suppressions of Comfy-Org/ComfyUI_frontend.
Open the folder on GitHubat commit f9be289
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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Removing Typescript Suppressions this skillComfy-Org/ComfyUI_frontend | 2.1k | — | ~1.6k | Automated safety check: Pass | GPL-3.0 | |
| TypeScript Monorepo Conventionspierrecomputer/pierre | 6.3k | — | ~450 | Automated safety check: Pass | Apache-2.0 | |
| Tabler Shared Lib Helperstabler/tabler | 42k | — | ~1.2k | Automated safety check: Pass | MIT | |
| Typescript Expertremix-run/remix | 33k | — | ~3.4k | Automated safety check: Pass | MIT | |
| Typed Service Contractsgoogle-labs-code/stitch-sdk | 1.8k | — | ~1.4k | Automated safety check: Pass | Apache-2.0 | |
| Optimizeopenplayerjs/openplayerjs | 649 | — | ~1.9k | Automated safety check: Pass | MIT |
pierrecomputer/pierre
Conventions for adding packages and apps to a TypeScript monorepo: project references, moon tasks, workspace dependencies and published package exports.
tabler/tabler
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.
remix-run/remix
Write, refactor, or review TypeScript code with strict, precise, maintainable types and without unnecessary any, type assertions, or type suppressions.
google-labs-code/stitch-sdk
Architecture standard for building robust, type-safe TypeScript services using the "Spec and Handler" pattern.
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…
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.
Comfy-Org/ComfyUI_frontend
Adds deprecation warnings for renamed or removed properties/APIs.
Comfy-Org/ComfyUI_frontend
Replay recorded agent conversations as Playwright tests against the real chat panel and canvas.
Comfy-Org/ComfyUI_frontend
Transforms raw Playwright codegen output into ComfyUI convention-compliant tests.
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.
Comfy-Org/ComfyUI_frontend
Diagnoses and fixes flaky Playwright e2e tests by replacing race-prone patterns with retry-safe alternatives.
Comfy-Org/ComfyUI_frontend
Ships performance fixes with CI-proven improvement using stacked PRs.
Works with
Categories
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.
Removing Typescript Suppressions fits situations like: removing TypeScript compiler suppressions; tasks that involve Type safety.
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.
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.
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.
Going by SKILL.md and its folder, Removing Typescript Suppressions needs the command-line tools its instructions call (pnpm, git and rg).
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.
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.
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.
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.
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.
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.