원클릭으로
javascript-practices
// JavaScript/TypeScript conventions: ES modules, Deno runtime, React patterns, async/await, and type handling. Use when writing .ts, .tsx, or .js files, configuring imports, or building React components.
// JavaScript/TypeScript conventions: ES modules, Deno runtime, React patterns, async/await, and type handling. Use when writing .ts, .tsx, or .js files, configuring imports, or building React components.
Development tooling: Deno runtime, JSR package registry, deno.json and package.json configuration, and editor settings. Use when setting up projects, choosing packages, or configuring build tools.
Agent roles, safety rules, file ownership, and cross-package change protocol. Use when AI agents work on this codebase, plan multi-package changes, or need boundary guidance.
Security practices: secrets in env vars, input validation, SSRF prevention, error sanitization, and production hardening. Use when handling authentication, secrets, user input, or preparing production deployments.
System architecture: ES modules, hexagonal architecture, project structure, ADRs, and testing strategy. Use when designing systems, planning directory layout, writing ADRs, or reviewing architecture.
CI/CD operations: GitHub Actions, Kubernetes, ArgoCD, and CI timeout configuration. Use when configuring pipelines, debugging deployments, or working with GitHub Actions. Do NOT use for general development workflow.
Code quality: error handling, validation, logging, DRY, and self-documenting code. Use when writing or reviewing code quality, handling errors, or validating inputs. Do NOT use for language-specific syntax (use javascript-practices or go-practices).
| name | javascript-practices |
| description | JavaScript/TypeScript conventions: ES modules, Deno runtime, React patterns, async/await, and type handling. Use when writing .ts, .tsx, or .js files, configuring imports, or building React components. |
Conventions for JS/TS syntax, modules, types, and runtime behavior.
import * as path from "@std/path"; // namespace import
import { utils } from "./utils.ts"; // explicit extension
export function buildConfig() {} // direct named export
const port = config.port ?? 8000; // nullish coalescing
Modules: Direct named exports, namespace imports, explicit .ts extensions,
avoid export * re-exports (use direct imports from specific modules)
Syntax: const over let, always semicolons, === strict equality, ??
over ||
Types: Number() over +, instanceof over typeof, prefer null over
undefined
Runtime: import.meta.dirname, globalThis over window, optional
projectRoot params
Async: Use return await consistently for better stack traces and correct
error handling
Deno: Scripts in package.json (not deno.json tasks), use package aliases
directly, no wrapper scripts for built-in commands
Avoid: eval, prototype mutation, truthy/falsy checks on non-booleans
See rules.md for complete guidelines with examples.