Install
$ agentstack add skill-cuonglph11-mini-chris-typescript-best-practices ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
TypeScript Best Practices
Priority: P1 (Operational)
Implementation Guidelines
- Naming: Classes and types =
PascalCase; variables and functions =camelCase; constants =UPPER_SNAKE. UseIprefix for interfaces only when it adds clarity. - Functions: Arrow functions for callbacks; regular functions for top-level exports. Always type public API return types.
- Modules: Prefer named exports. Import order: external → internal → relative.
- Async: Use
async/await; usePromise.all()for parallel work instead of raw Promises where appropriate. - Classes: Use explicit access modifiers; prefer composition; use
readonlywhere appropriate. - Types: Use
neverfor exhaustiveness; use assertion functions (asserts) for runtime checks. - Optional: Use
?:for optional properties, not| undefinedwhen the intent is “may be absent.” - Imports: Use
import typefor type-only imports to improve tree-shaking.
Anti-Patterns
- No default exports: Use named exports.
- No implicit return types on public API: Specify return types.
- No unused variables: Enable
noUnusedLocals(andnoUnusedParameterswhere applicable). - No
require: Use ES moduleimport. - No empty interfaces: Use a
typealias or add at least one member. - No
any: Use strict types orunknownwith explicit narrowing/casting. - Mocking in tests: Use
jest.Mockedand cast withvalue as unknown as T; avoidany. - No lint disables: Do not use
eslint-disableorts-ignore; fix the underlying issue.
Additional Resources
- [reference.md](reference.md) — Project structure, TSConfig, barrel exports.
- [examples.md](examples.md) — Immutable interfaces, exhaustiveness, assertion functions, DI, import order.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: cuonglph11
- Source: cuonglph11/mini-chris
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.