Skip to main content

aidd-javascript

JavaScript and TypeScript best practices and guidance. Use when writing, reviewing, or refactoring JavaScript or TypeScript code.

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

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

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

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

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

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

مستكشف الملفات
2 ملفات

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
aidd-javascript
description
JavaScript and TypeScript best practices and guidance. Use when writing, reviewing, or refactoring JavaScript or TypeScript code.
# JavaScript/TypeScript guide Act as a top-tier software engineer with serious JavaScript/TypeScript discipline to carefully implement high quality software. ## Before Writing Code - Read the lint and formatting rules. - Observe the project's relevant existing code. - Conform to existing code style, patterns, and conventions unless directed otherwise. Note: these instructions count as "directed otherwise" unless the user explicitly overrides them. ## Principles - DOT - YAGNI - KISS - DRY - SDA - Self Describing APIs - Simplicity - "Simplicity is removing the obvious, and adding the meaningful." - Obvious stuff gets hidden in the abstraction. - Meaningful stuff is what needs to be customized and passed in as parameters. - Functions should have default parameters whenever it makes sense so that callers can supply only what is different from the default. Constraints { Be concise. Favor functional programming; keep functions short, pure, and composable. Favor map, filter, reduce over manual loops. Prefer immutability; use const, spread, and rest operators instead of mutation. One job per function; separate mapping from IO. Obey the projects lint and formatting rules. Omit needless code and variables; prefer composition with partial application and point-free style. Chain operations rather than introducing intermediate variables, e.g. `[x].filter(p).map(f)` Avoid loose procedural sequences; compose clear pipelines instead. Avoid `class` and `extends` as much as possible. Prefer composition of functions and data structures over inheritance. Keep related code together; group by feature, not by technical type. Put statements and expressions in positive form. Use parallel code for parallel concepts. Avoid null/undefined arguments; use options objects instead. Use concise syntax: arrow functions, object destructuring, array destructuring, template literals. Avoid verbose property assignments. bad: `const a = obj.a;` good: `const { a } = obj;` Assign reasonable defaults directly in function signatures. `const createExpectedUser = ({ id = createId(), name = '', description = '' } = {}) => ({ id, name, description });` Principle: SDA. This means: Parameter values should be explicitly named and expressed in function signatures: Bad: `const createUser = (payload = {}) => ({` Good: `const createUser = ({ id = createId(), name = '', description = ''} = {}) =>` Notice how default values also provide hints for type inference. Avoid IIFEs. Use block scopes, modules, or normal arrow functions instead. Principle: KISS Avoid using || for defaults. Use parameter defaults instead. See above. Prefer async/await or asyncPipe over raw promise chains. Use strict equality (===). Modularize by feature; one concern per file or function; prefer named exports. } NamingConstraints { Use active voice. Use clear, consistent naming. Functions should be verbs. e.g. `increment()`, `filter()`. Predicates and booleans should read like yes/no questions. e.g. `isActive`, `hasPermission`. Prefer standalone verbs over noun.method. e.g. `createUser()` not `User.create()`. Avoid noun-heavy and redundant names. e.g. `filter(fn, array)` not `matchingItemsFromArray(fn, array)`. Avoid "doSomething" style. e.g. `notify()` not `Notifier.doNotification()`. Lifecycle methods: prefer `beforeX` / `afterX` over `willX` / `didX`. e.g. `beforeUpdate()`. Use strong negatives over weak ones: `isEmpty(thing)` not `!isDefined(thing)`. Mixins and function decorators use `with${Thing}`. e.g. `withUser`, `withFeatures`, `withAuth`. Avoid ALL_CAPS for constants. Since we use functional programming, there's no need for a hard distinction between constants and variables. } Comments { Favor docblocks for public APIs - but keep them minimal. Ensure that any comments are necessary and add value. Never reiterate the style guides. Avoid obvious redundancy with the code, but short one-line comments that aid scannability are okay. Comments should stand-alone months or years later. Assume that the reader is not familiar with the task plan or epic. }
عرض على GitHub