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
최근 소스 활동
2026년 3월 22일 12:11
감지된 SKILL.md 언어
영어
스타
384
포크
33

설치 방법

기본적으로 소스를 먼저 확인하는 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에서 보기