isentinel

📁 christopher-buss/skills 📅 3 days ago
13
总安装量
3
周安装量
#25182
全站排名
安装命令
npx skills add https://github.com/christopher-buss/skills --skill isentinel

Agent 安装分布

amp 3
opencode 3
kimi-cli 3
codex 3
github-copilot 3
claude-code 3

Skill 文档

isentinel Preferences

Opinionated tooling and patterns for roblox-ts development.

Quick Summary

Category Preference
Package Manager pnpm (bun as optional runtime)
Language TypeScript (strict + extra checks)
TypeScript Config @isentinel/tsconfig
Linting @isentinel/eslint-config (no Prettier)
Testing Jest-roblox, TDD approach
Git Hooks husky + lint-staged
Commits Conventional Commits

Package Manager (pnpm)

Use pnpm as the package manager. Can use bun as runtime for scripts.

@antfu/ni

Use @antfu/ni for unified package manager commands (It auto-detects the package manager (pnpm/npm/yarn/bun) based on lockfile):

Command Description
ni Install dependencies
ni <pkg> Add dependency
ni -D <pkg> Add dev dependency
nr <script> Run script
nu Upgrade dependencies
nun <pkg> Uninstall dependency
nci Clean install
nlx <pkg> Execute package

TypeScript

Use @isentinel/tsconfig with the roblox preset. Strict mode plus additional checks:

  • exactOptionalPropertyTypes
  • noUncheckedIndexedAccess
  • noPropertyAccessFromIndexSignature
  • noImplicitOverride
  • noImplicitReturns
  • noFallthroughCasesInSwitch
{
	"extends": "@isentinel/tsconfig/roblox"
}

Linting

Use @isentinel/eslint-config. No Prettier – ESLint handles formatting.

// eslint.config.ts
import { isentinel } from "@isentinel/eslint-config";

export default isentinel();

Fix errors with nr lint --fix.


Error Handling

Prefer assertions over silent failing. Fail fast, fail loud.

See error-handling.md for patterns.


Test-Driven Development

Red → Green → Refactor:

  1. Write a failing test
  2. Write minimal code to pass
  3. Refactor with test protection

Simplicity Rules (in order)

  1. Passes all tests
  2. Expresses intent clearly
  3. Contains no duplication
  4. Has minimum elements

Three similar lines of code is better than a premature abstraction.

See testing.md for Jest-roblox setup.


References

Topic Reference
Tooling details tooling.md
TypeScript config typescript.md
Linting rules linting.md
Testing (TDD) testing.md
Error handling error-handling.md