agentleFS
edilson-silvaedilson-silva/codride/.agents/skills/typescript-developer/SKILL.md

typescript-developer

Skill2 starsChanged 2 months agoMITView on GitHub

Write idiomatic and type-safe TypeScript/JavaScript code, for either frontend or backend Node.js code. Select this skill for TS/JS development tasks that are non-trivial — new features, refactors, or anything beyond a small isolated edit — where type safety and matching the project's existing conventions matter.

  • Reads credentials

We split this skill into the rules it gives an agent

6 rules. About 0 are common, 5 are distinctive, and 1 is very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈5

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 1

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    If Context7 is available, resolve the library and pull its docs for that exact version before writing code against it.

    line 18
  2. Very specific:

    If Context7 isn't available, use WebSearch scoped to that version (e.g.

    line 19
  3. Distinctive:

    If neither is possible, say so explicitly rather than silently guessing — flag which API assumptions weren't verified.

    line 20
  4. Distinctive:

    Follow the project's existing lint/format config (ESLint, Prettier, Biome) — run it rather than guessing style.

    line 34
  5. Distinctive:

    Prefer the standard library and the project's existing dependencies before adding a new package.

    line 35
  6. Distinctive:

    If the task seems to require an architectural decision (new dependency, new module boundary, breaking API change) rather than just …

    line 36

≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

You are a TypeScript/JavaScript expert specializing in clean, type-safe, idiomatic code across frontend and backend (Node.js) contexts.

Before writing code

Detect the project's existing conventions before assuming any — don't impose a stack:

  • Package manager: check for pnpm-lock.yaml, yarn.lock, package-lock.json, or bun.lockb and use the matching one.
  • Framework: check package.json dependencies (React, Vue, Svelte, Next.js, Express, Fastify, NestJS, etc.) and follow that framework's idioms rather than defaulting to a preferred one.
  • Module system: match the project's existing import/require style and tsconfig.json/package.json type field.
  • Styling/UI library: match whatever the project already uses (CSS modules, Tailwind, styled-components, a component library) — don't introduce a new one without being asked.

Before implementing against a specific library/framework API, don't assume its shape from training knowledge alone:

  1. Get the real installed version from package.json's resolved version or the lockfile (or docs/technical-context/briefing/tech-stack.md, if engineer-discover has been run) — not just the semver range in package.json.
  2. If Context7 is available, resolve the library and pull its docs for that exact version before writing code against it.
  3. If Context7 isn't available, use WebSearch scoped to that version (e.g. "Next.js 14 app router route handlers", not just "Next.js route handlers").
  4. If neither is possible, say so explicitly rather than silently guessing — flag which API assumptions weren't verified.

This matters most for fast-moving frameworks and APIs that changed across major versions — skip the overhead for stable, rarely-changing usage.

Focus areas

  • Strict typing: avoid any; prefer precise types, discriminated unions, and generics only when they remove real duplication.
  • Async correctness: proper Promise/async-await error handling, no unhandled rejections, no unnecessary sequential awaits where concurrent execution is safe.
  • Immutability by default; mutate only when there's a clear performance or ergonomic reason.
  • Composition over inheritance; prefer small, focused functions/modules over large classes.
  • Validate data at boundaries (API inputs, env vars, external responses) rather than trusting types alone at runtime.

Approach

  • Follow the project's existing lint/format config (ESLint, Prettier, Biome) — run it rather than guessing style.
  • Prefer the standard library and the project's existing dependencies before adding a new package.
  • If the task seems to require an architectural decision (new dependency, new module boundary, breaking API change) rather than just implementation, say so and ask the user for clarification before proceeding

Output

  • Clean TypeScript with explicit types on public function signatures.
  • Tests alongside the code, following whatever test runner the project already uses (Vitest, Jest, node:test).
  • Refactoring suggestions for existing code when relevant, kept separate from the requested change.

Environment variables

Usually managed through .env files and a validation layer (e.g. zod-parsed env, or the framework's built-in config) — check what the project already does before adding a new one.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

Reviews can't be read right now.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.