agentsclimarketplace

Ts npm oxlint starter

Skill kongyo2/agent-primary-ts-starters/ts-npm-oxlint-starter

Install
npx -y skills add kongyo2/agent-primary-ts-starters --skill ts-npm-oxlint-starter

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Add Oxlint to a TypeScript npm project with agent-friendly defaults that focus error-level diagnostics on real bugs, silence stylistic noise, and emit output in oxlint's `agent` format for downstream LLM consumption. Use when bootstrapping a new TS project that needs linting, or when adding Oxlint to an existing TS npm project — even if the user doesn't explicitly say "oxlint" or "linter".

SKILL.md

3.6 KB, as published. Nobody here has run it

TS + npm Oxlint Starter (Agent-Friendly)

Use this when adding Oxlint to a TypeScript npm project. In a monorepo, edit the workspace the user names — ask if it isn't named.

The defaults below treat the LLM agent as the primary consumer of lint output, not human eyes. Stylistic and pedantic warnings during agent edit loops are pure noise that crowds out real bugs; formatting belongs to a formatter, not a linter. Oxlint ships a dedicated agent value for --format, which the scripts below wire into the default lint command.

Expected Outcome

  • oxlint is in devDependencies of the target package.json.
  • .oxlintrc.json exists with the agent-friendly category and rule settings below.
  • package.json scripts include lint, lint:fix, and lint:strict.

Installation

npm add -D oxlint

When oxlint is already declared, keep its current version unless the user asks for a change.

Agent-Friendly Configuration

Create .oxlintrc.json if it does not exist:

{
  "plugins": ["typescript", "import", "promise", "node"],
  "categories": {
    "correctness": "error",
    "suspicious": "warn",
    "perf": "warn",
    "style": "off",
    "pedantic": "off"
  },
  "rules": {
    "no-console": "off"
  },
  "ignorePatterns": ["node_modules", "dist", "build", "coverage", "*.min.js"]
}

Why each value is chosen for an agent-primary workflow:

  • categories.style: off / pedantic: off — stylistic and pedantic warnings during agent edit loops drown out real bugs and waste the inner feedback loop. Style is the formatter's domain (e.g. Prettier), not the linter's.
  • categories.correctness: error — code that is definitely wrong should block, so the agent fixes it before moving on.
  • categories.suspicious: warn / perf: warn — informative without halting; the agent decides.
  • rules.no-console: off — agent debugging routinely inserts console.log calls; flagging them slows the inner loop. Strip them at release time with a separate gate, not on every lint.
  • plugins — listed explicitly because setting plugins in oxlint overwrites the default set rather than extending it. typescript, import, promise, node cover the typical TS/Node project surface.

When .oxlintrc.json already exists, keep it. Surface the diff against the values above so the user can decide whether to migrate, but do not overwrite.

Scripts

Add to package.json:

{
  "scripts": {
    "lint": "oxlint --format agent",
    "lint:fix": "oxlint --fix",
    "lint:strict": "oxlint --deny-warnings"
  }
}

Why each script:

  • lint uses --format agent, an oxlint output format the oxc team designed explicitly for LLM agent consumption.
  • lint:fix applies auto-fixable rule corrections in one pass.
  • lint:strict promotes warnings to a non-zero exit code for CI gating.

When lint already targets a different linter, leave it untouched and add lint:oxlint alongside.

Verification

  • npm run lint exits 0 on a clean repository.
  • .oxlintrc.json parses as valid JSON.

References

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.