Files
gh-sids-airbot-plugins-airb…/skills/ts-style/SKILL.md
2025-11-30 08:57:10 +08:00

2.0 KiB

name, description, license
name description license
ts-style TypeScript style standards for AIRBot reviewers MIT

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.