Skip to content
Agentmart
Submit a tool

project-tooling

Tooling guidance for Vite, Vitest, TypeScript, ESLint/Biome, package scripts, path aliases, and build/test tooling.

Skill by prachwal-archive

IndexedMIT★ 1
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/prachwal-archive-project-tooling

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Tooling guidance for Vite, Vitest, TypeScript, ESLint/Biome, package scripts, path aliases, and build/test tooling.

Use cases: testing

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/project-tooling

What's inside

Skill name
project-tooling
Description
Tooling guidance for Vite, Vitest, TypeScript, ESLint/Biome, package scripts, path aliases, and build/test tooling.
License
MIT
Instructions
86 lines in SKILL.md · view on GitHub

Files (1)

  • SKILL.md

SKILL.md (first lines)

# Project Tooling

Use this skill when configuring or modifying project tooling: build tools, linters, test runners, package management.

## Package manager

- Use the project's declared package manager: `npm`, `pnpm`, or `yarn`.
- Run `install` after changing dependencies.
- Use `--save-exact` or `^` ranges consistently per project convention.
- Keep `package-lock.json` / `pnpm-lock.yaml` in version control.
- Do not mix package managers in the same repository unless the repo explicitly supports it.
- Keep workspace/package manager behavior documented if the repo is a monorepo.

## Linting and formatting

- Check which tool the project uses: ESLint (flat config), Biome, Prettier, or a combination.
- Linting and formatting are often combined into a single check command.
- Type-checking is typically separate (e.g., `tsc --noEmit`).
- Configure lint/format/type-check commands in `package.json` scripts for CI.
- Keep rule/tool selection aligned with the repo's actual source tree, not a template preset.

## Path aliases

- If the project uses path aliases (e.g., `@/` → `src/`), ensure they're consistent across:
  - `vite.config.ts` or bundler config (resolve alias)
  - `tsconfig.json` (compilerOptions.paths)
  - Vitest config (if separate from vite config)
  - Any ESLint import resolver
- Keep alias names short, stable, and reused consistently in imports and tests.

## Vitest / test config

- Test config may be inline in `vite.config.ts` or in a separate `vitest.config.ts` using `mergeConfig`.
- Common environment: `jsdom` for DOM tests, `node` for Node tests.
- Setup files run before each test file — use for global mocks (matchMedia, ResizeObserver).
- Coverage config: provider (`v8` or `istanbul`), reporter (`text`, `lcov`, `html`), thresholds.
- Prefer one source of truth for test aliases and environment setup.
- If setup files stub globals (matchMedia, ResizeObserver), keep them minimal and idempotent.

```ts
// vitest.config.ts
import { defineConfig, mergeConfig } from 'vitest/config'
import viteConfig from './vite.config'

export default mergeConfig(viteConfig, defineConfig({
  test: {
    globals: true,
    environment: 'jsdom',
    setupFiles: './src/setupTests.ts',
    coverage: {
      provider: 'v8',
      reporter: ['text', 'lcov', 'html'],
      thresholds: { statements: 80, branches: 70 },
    },
  },
}))
```

## Common scripts

```json
{
  "scripts": {
    "dev": "vite",
    "build": "tsc -b && vite build",
    "test": "vitest run",
    "test:watch": "vitest",
    "coverage": "vitest run --coverage",
    "lint": "tsc --noEmit",
    "check": "biome check --write",
    "format": "biome format --write",
    "precommit": "npm run check && npm run lint && npm test && npm run build"
  }
}
```

## Debugging tooling issues

- Vite dev server won't start → check port availability, plugin compatibility, Node version.
- Type errors that Vite ignores but `tsc` catches → run `tsc --noEmit` separately.
- Path alias not resolving → check both `vite.config.ts` and `tsconfig.json` `paths`.
- Test can't find DOM APIs → ensure `environment: 'jsdom'` is set in vitest config.
- Coverage too low → adjust `include`/`exclude` patterns, check thresholds.
- A script works in CI but not locally → compare Node version, package manager, and environment variables.

From prachwal-archive/web-ui-skills, MIT.

More from prachwal-archive/web-ui-skills

Signals

Stars
1
Forks
0
Open issues
0
Last commit (this folder)
May 22, 2026 (5 months ago)
Last release
Apr 23, 2026 (6 months ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from prachwal-archive

Cite this page

project-tooling skill. Agent Mart. https://agentmart.dev/skills/prachwal-archive-project-tooling (last updated 2026-10-24)