بنقرة واحدة
ts
TypeScript/Node.js. NOT for .tsx (use tsx).
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
TypeScript/Node.js. NOT for .tsx (use tsx).
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Development wisdom and workflow rules. NOT for project-specific conventions (those live in CLAUDE.md, edit via wisdom).
The `BUGS.md` open-issues queue — entry format, lifecycle, pruning to diary. NOT for the record-don't-fix policy (that's CLAUDE.md Bug Triage Protocol), NOT for resolved-bug history (use /diary), NOT for feature backlog (use TODO.md/specs).
Terminal demo GIF + MP4 recordings for READMEs and social (asciinema + agg + ffmpeg). NOT for general Makefile targets (use software) or GUI screenshots (use visual).
Go development. NOT for non-Go code (use rs, py, ts, tsx, or sh).
Humanize text: strip AI-isms and add real voice. NOT for drafting new copy (use writing).
Python development. NOT for shell scripting (use sh) or non-Python code.
| name | ts |
| description | TypeScript/Node.js. NOT for .tsx (use tsx). |
| when_to_use | editing .ts files or writing TypeScript |
Requires the software skill's code.md for shared naming, style, and design
rules. Below are TypeScript-specific additions and deltas.
function keyword for top-level functions where possible; arrow functions only for callbacks and inline lambdasgst lint rules; match existing style when changing codearr.find(v => v.id === x))if (x)
return y
if (x) { return y } on one line — either braces+newline or no braces+newlinefilter(), map(), slice() already create new arraysarr.push(...otherArr) — blows call stack at >65k items. Use concat or loopsatisfies T over as T to validate without widening. NEVER as to escape a type error.type UserId = string & {__brand:'UserId'}) when two string IDs would otherwise be interchangeable.default: const _:never = x in switches.any — use unknown and narrow. ALWAYS import type { T } for type-only imports.export * from './module'as Type@Type(() => NestedClass) + @ValidateNested()test(...) / it(...) call: what it
does, what preconditions it assumes, what it verifies — one sentence per
point. (The "NEVER JSDoc self-explanatory functions" rule does NOT apply
to test cases — a test's intent and preconditions are never self-evident
from its body.)*.test.ts next to code (Bun), E2E: *.spec.ts in playwright/bunfig.toml root to exclude Playwright files from Bun:
[test]
root = "src"
make e2e: Playwright, make smoke: against running server, bun test: unit only