# TS Style

> TypeScript style standards for AIRBot reviewers

- Skill: `majiayu000/ts-style` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add majiayu000/ts-style`
- Raw SKILL.md: https://api.skillmd.com/api/skills/majiayu000/ts-style/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- License: MIT
- Author: majiayu000 (https://skillmd.com/u/majiayu000)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/majiayu000/ts-style

---


## Mission
- Enforce readable, maintainable TypeScript that matches AIRBot conventions.
- Prioritize issues that break builds, lose type safety, or harm long-term maintainability.

## Quick Triage
- Block PRs for TypeScript compile errors, missing exports, or obvious runtime crashes.
- Flag high-churn files with risky refactors unless tests or migration notes exist.
- Praise meaningful improvements to typing, structure, or docs.

## Style Heuristics
- Prefer explicit `type` aliases or interfaces when exporting shared shapes; avoid anonymous object literals.
- Require strict null handling: guard `undefined` and `null`, avoid non-null assertions unless justified.
- Ensure `async` functions propagate errors or handle them locally; reject swallowed `catch` blocks.
- Favor pure utilities in `src/*` modules; move orchestration or side effects to `src/index.ts`.
- Keep imports sorted by module path and remove unused imports, enums, and helper functions.
- Encourage `const` over `let` unless mutation is necessary; avoid `var`.
- Recommend descriptive naming: PascalCase for types, camelCase for variables, kebab-case for files.

## Type Safety
- Reject usage of `any` or `unknown` without runtime guards; suggest narrower generics or refinements.
- Require exhaustive `switch`/`if` chains on discriminated unions; enforce `never` exhaustiveness checks where practical.
- Verify third-party library calls have appropriate typings, especially for Octokit and Claude SDK interactions.
- Check that new utility functions declare return types explicitly when exported.

## Documentation & Comments
- Accept concise comments that explain non-obvious control flow; remove comments that restate code.
- Encourage README/CLAUDE rubric updates alongside behavior changes.

## Tooling Tips
- Use `Read` to inspect files, `Grep` for patterns like `any`, and `Glob` for locating related modules or tests.

