بنقرة واحدة
init-typescript-project
Initialize a new TypeScript project with proper guardrails
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Initialize a new TypeScript project with proper guardrails
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Design beautiful artifacts — slides, decks, prototypes, wireframes, docs, and landing pages — as live HTML you can preview, comment on, and edit in a browser. The model does ALL the design work as an expert designer; a bundled local Bun app only renders the preview and relays the user's comments/edits back. No LLM/API is ever called by the app. Trigger on: "claude design", "design a slide", "design a deck", "make a deck", "design a prototype", "design a wireframe", "design a doc", "design a landing page", "make it beautiful", or any visual-design / mockup ask.
Stress-test the design of a commit / branch / file through a team of opinionated refactor specialists.
Stress-test a planning, design, architecture, or strategy decision through adversarial rounds.
Manage macOS Reminders from the CLI. Triggers on phrases like "remind me to ...", "add a reminder", "list my reminders", "complete the reminder about ...", "delete the reminder"
Generate a walkthrough JSON for the Neovim walkthrough plugin to walk a human through a code execution path — bug explanations, control-flow narration, race-condition timelines, variable evolution.
Spawn and manage remote Claude Code sessions in isolated cloud environments.
| name | init-typescript-project |
| description | Initialize a new TypeScript project with proper guardrails |
| disable-model-invocation | true |
If the project type is not apparent from the conversation context, ask the user what kind of project they want to create (e.g., CLI tool, web app, API server, library, Cloudflare Workers, etc.) before proceeding.
bun init to scaffold the projectbun add -d @biomejs/biome eslint @eslint/js @typescript-eslint/eslint-plugin @typescript-eslint/parser eslint-plugin-eslint-comments eslint-plugin-functional eslint-plugin-unicorn husky knip
bunx husky init then write the pre-commit hookpackage.jsonbun check to verify everything works{
"scripts": {
"typecheck": "tsc --noEmit",
"lint": "eslint .",
"format": "biome format --write .",
"format:check": "biome format .",
"knip": "knip",
"check": "bun format:check && bun typecheck && bun lint && bun knip",
"prepare": "husky"
}
}
{
"$schema": "https://biomejs.dev/schemas/2.4.8/schema.json",
"formatter": {
"enabled": true,
"formatWithErrors": false,
"indentStyle": "space",
"indentWidth": 2,
"lineEnding": "lf",
"lineWidth": 100,
"attributePosition": "auto"
},
"linter": {
"enabled": false
},
"javascript": {
"formatter": {
"jsxQuoteStyle": "double",
"quoteProperties": "asNeeded",
"trailingCommas": "all",
"semicolons": "always",
"arrowParentheses": "always",
"bracketSpacing": true,
"bracketSameLine": false,
"quoteStyle": "double",
"attributePosition": "auto"
}
},
"json": {
"formatter": {
"enabled": true,
"indentStyle": "space",
"indentWidth": 2,
"lineEnding": "lf"
}
},
"files": {
"includes": ["**/*.{ts,tsx,js,jsx,json,jsonc}"],
"ignoreUnknown": false
}
}
Adapt the globals and files sections based on the project type.
import js from "@eslint/js";
import typescript from "@typescript-eslint/eslint-plugin";
import typescriptParser from "@typescript-eslint/parser";
import eslintComments from "eslint-plugin-eslint-comments";
import functional from "eslint-plugin-functional";
import unicorn from "eslint-plugin-unicorn";
export default [
js.configs.recommended,
{
files: ["src/**/*.ts"],
languageOptions: {
parser: typescriptParser,
parserOptions: {
ecmaVersion: "latest",
sourceType: "module",
project: true,
tsconfigRootDir: import.meta.dirname,
},
globals: {
console: "readonly",
process: "readonly",
setTimeout: "readonly",
clearTimeout: "readonly",
setInterval: "readonly",
clearInterval: "readonly",
Bun: "readonly",
AbortController: "readonly",
performance: "readonly",
},
},
plugins: {
"@typescript-eslint": typescript,
functional: functional,
unicorn: unicorn,
"eslint-comments": eslintComments,
},
rules: {
"@typescript-eslint/no-explicit-any": "error",
"@typescript-eslint/no-unsafe-assignment": "error",
"@typescript-eslint/no-unsafe-member-access": "error",
"@typescript-eslint/no-unsafe-call": "error",
"@typescript-eslint/no-unsafe-return": "error",
"@typescript-eslint/no-unsafe-argument": "error",
"@typescript-eslint/consistent-type-assertions": [
"error",
{ assertionStyle: "never" },
],
"@typescript-eslint/consistent-type-definitions": ["error", "type"],
"functional/no-throw-statements": "error",
"@typescript-eslint/no-non-null-assertion": "error",
"@typescript-eslint/strict-boolean-expressions": "error",
"@typescript-eslint/no-floating-promises": "error",
"@typescript-eslint/await-thenable": "error",
"@typescript-eslint/no-misused-promises": "error",
"@typescript-eslint/require-await": "error",
"no-console": "error",
"no-debugger": "error",
"no-alert": "error",
"prefer-const": "error",
"no-var": "error",
eqeqeq: ["error", "always"],
"no-unused-expressions": "error",
"no-unused-vars": "off",
"no-shadow": "off",
"@typescript-eslint/no-shadow": "error",
"no-fallthrough": "off",
"@typescript-eslint/switch-exhaustiveness-check": "error",
"unicorn/prefer-switch": "error",
"no-restricted-syntax": [
"error",
{
selector: "TSTypePredicate",
message:
"Type predicates are not allowed because of the unsoundness. Rethink your type design.",
},
{
selector: 'BinaryExpression[operator="in"]',
message:
"The `in` operator is not allowed. Use sum types so that you won't need them in the first place.",
},
],
"eslint-comments/no-use": ["error", { allow: [] }],
},
},
{
ignores: ["node_modules/", "*.config.js", "dist/"],
},
];
For projects with a CLI entry point or server entry point, add a block to allow no-console on those files.
Adapt entry and project based on the project type.
{
"$schema": "https://unpkg.com/knip@latest/schema.json",
"ignoreExportsUsedInFile": true,
"entry": ["src/index.ts"],
"project": ["src/**/*.ts"],
"eslint": {
"config": ["eslint.config.js"]
},
"typescript": {
"config": ["tsconfig.json"]
},
"biome": {
"config": ["biome.json"]
},
"husky": {
"config": [".husky/pre-commit"]
}
}
bun format && bun check
"jsx": "react-jsx" to tsconfig, "DOM" to lib, add browser globals (window, document, fetch, Request, Response, Headers, URL, HTMLElement, Event, etc.) to eslint config, add "*.tsx" to eslint files globno-console on the CLI entry fileno-console on the server entry file"declaration": true to tsconfig, configure outDir