@next-vibe/checker 1.0.22 → 1.0.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/.dist/README.md +285 -326
  2. package/.dist/bin/vibe-runtime.js +4736 -3978
  3. package/.dist/bin/vibe-runtime.js.map +38 -32
  4. package/README.md +285 -326
  5. package/check.config.ts +1 -1
  6. package/package.json +4 -3
  7. package/src/app/api/[locale]/system/check/config/create/definition.ts +294 -0
  8. package/src/app/api/[locale]/system/check/config/create/i18n/de/index.ts +162 -0
  9. package/src/app/api/[locale]/system/check/config/create/i18n/en/index.ts +156 -0
  10. package/src/app/api/[locale]/system/check/config/create/i18n/pl/index.ts +159 -0
  11. package/src/app/api/[locale]/system/check/config/create/repository.ts +281 -0
  12. package/src/app/api/[locale]/system/check/config/create/route.ts +21 -0
  13. package/src/app/api/[locale]/system/check/config/repository.ts +1 -11
  14. package/src/app/api/[locale]/system/check/i18n/de/index.ts +4 -0
  15. package/src/app/api/[locale]/system/check/i18n/en/index.ts +4 -0
  16. package/src/app/api/[locale]/system/check/i18n/pl/index.ts +4 -0
  17. package/src/app/api/[locale]/system/check/lint/definition.ts +0 -12
  18. package/src/app/api/[locale]/system/check/lint/repository.ts +2 -2
  19. package/src/app/api/[locale]/system/check/oxlint/definition.ts +0 -12
  20. package/src/app/api/[locale]/system/check/oxlint/repository.ts +2 -2
  21. package/src/app/api/[locale]/system/check/test-project/.vscode/settings.json +48 -0
  22. package/src/app/api/[locale]/system/check/test-project/check.config.ts +1 -1
  23. package/src/app/api/[locale]/system/check/test-project/package.json +1 -0
  24. package/src/app/api/[locale]/system/check/test-project/src/test-issues/eslint-issues.tsx +1 -1
  25. package/src/app/api/[locale]/system/check/test-project/src/test-issues/react-issues.tsx +1 -1
  26. package/src/app/api/[locale]/system/check/test-project/tsconfig.tsbuildinfo +1 -1
  27. package/src/app/api/[locale]/system/check/typecheck/definition.ts +0 -12
  28. package/src/app/api/[locale]/system/check/typecheck/repository.ts +1 -1
  29. package/src/app/api/[locale]/system/check/vibe-check/definition.ts +0 -13
  30. package/src/app/api/[locale]/system/check/vibe-check/repository.ts +10 -11
  31. package/src/app/api/[locale]/system/generated/endpoint.ts +12 -2
  32. package/src/app/api/[locale]/system/generated/endpoints.ts +22 -16
  33. package/src/app/api/[locale]/system/generated/route-handlers.ts +10 -2
  34. package/src/app/api/[locale]/system/help/list/repository.ts +4 -3
  35. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/grouped-list.ts +5 -1
  36. package/src/app/api/[locale]/system/unified-interface/mcp/converter.ts +4 -3
package/.dist/README.md CHANGED
@@ -1,283 +1,234 @@
1
- # vibe-check
1
+ # @next-vibe/checker
2
2
 
3
- > Minimal TypeScript code quality checker with CLI and MCP support
3
+ > Comprehensive TypeScript code quality checker combining Oxlint, ESLint, and TypeScript
4
4
 
5
5
  [![License: GPL-3.0](https://img.shields.io/badge/License-GPL--3.0-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)
6
- [![npm version](https://badge.fury.io/js/vibe-check.svg)](https://www.npmjs.com/package/vibe-check)
7
6
  [![Node.js Version](https://img.shields.io/badge/node-%3E%3D18.0.0-brightgreen)](https://nodejs.org)
8
7
 
9
- A lightning-fast, zero-config code quality tool that combines **Oxlint**, **ESLint**, and **TypeScript** checking with built-in release management and MCP server support.
8
+ Run parallel code quality checks (Oxlint + ESLint + TypeScript) with auto-fix enabled by default. Built with Rust-powered Oxlint for maximum performance.
10
9
 
11
10
  ## Features
12
11
 
13
- ### 🚀 Code Quality
12
+ - **Parallel execution** - All checks run simultaneously
13
+ - **Smart caching** - Dramatically faster on subsequent runs
14
+ - **Auto-fix** - Automatically fixes issues (enabled by default)
15
+ - **100+ rules** - React, TypeScript, a11y, Next.js, Node.js
16
+ - **Custom plugins** - i18n validation, JSX capitalization, restricted syntax
17
+ - **MCP server** - Expose tools via Model Context Protocol
18
+ - **Fast type checking** - Uses tsgo (2-3x faster than tsc)
14
19
 
15
- - **Triple-layer validation**: Oxlint (Rust-powered speed) + ESLint (custom rules) + TypeScript (type safety)
16
- - **Zero configuration**: Works out of the box with sensible defaults
17
- - **Parallel execution**: Multi-core processing for maximum performance
18
- - **Auto-fix support**: Automatically fix linting and formatting issues
19
- - **Comprehensive rules**: 100+ built-in rules for React, TypeScript, a11y, and more
20
+ ## Performance
20
21
 
21
- ### 📦 Release Management
22
+ Times vary by project size and cache state. **tsgo is enabled by default** (2-3x faster than tsc).
22
23
 
23
- - **Semantic versioning**: Automated version bumping (major, minor, patch)
24
- - **Git integration**: Automatic tagging, committing, and pushing
25
- - **Interactive prompts**: Guided release workflow with confirmations
26
- - **npm publishing**: Built-in support for publishing to npm registry
27
- - **Changelog generation**: Optional automated changelog creation
28
- - **Multi-package support**: Manage monorepo releases
24
+ ### With tsgo (default)
29
25
 
30
- ### 🤖 MCP Server
26
+ **Small project:**
27
+ - With cache: ~1s total (Oxlint: 0.5s, ESLint: 1.1s, TypeScript: 0.2s)
28
+ - Without cache: ~1s total (Oxlint: 0.5s, ESLint: 1.1s, TypeScript: 0.2s)
31
29
 
32
- - **Claude Desktop integration**: Use vibe-check as a Model Context Protocol server
33
- - **AI-powered code review**: Let Claude analyze your codebase quality
34
- - **Interactive debugging**: Real-time feedback on code issues
30
+ **Medium project:**
31
+ - With cache: ~3s total (Oxlint: 2.5s, ESLint: 2.8s, TypeScript: 0.6s)
32
+ - Without cache: ~6s total (Oxlint: 3.2s, ESLint: 4.4s, TypeScript: 5.8s)
35
33
 
36
- ### 🛠️ Developer Experience
34
+ **Large project:**
35
+ - With cache: ~10s total (Oxlint: 9.8s, ESLint: 3.7s, TypeScript: 3.8s)
36
+ - Without cache: ~51s total (Oxlint: 16.8s, ESLint: 23.9s, TypeScript: 51.3s)
37
37
 
38
- - **Fast**: Rust-based oxlint + parallel processing
39
- - **Smart**: Auto-detects project structure and configuration
40
- - **Flexible**: Customize via `check.config.ts`
41
- - **Universal**: Works with any TypeScript/JavaScript project
38
+ ### With tsc (if tsgo disabled)
42
39
 
43
- ## Installation
40
+ **Small project:**
41
+ - With cache: ~1s total (Oxlint: 0.4s, ESLint: 1.1s, TypeScript: 1.0s)
42
+ - Without cache: ~2s total (Oxlint: 0.5s, ESLint: 1.4s, TypeScript: 1.5s)
44
43
 
45
- ### NPM
44
+ **Medium project:**
45
+ - With cache: ~13s total (Oxlint: 2.8s, ESLint: 2.1s, TypeScript: 12.5s)
46
+ - Without cache: ~14s total (Oxlint: 3.3s, ESLint: 4.8s, TypeScript: 13.9s)
46
47
 
47
- ```bash
48
- npm install -g vibe-check
49
- ```
48
+ **Large project:**
49
+ - With cache: ~13s total (Oxlint: 10.8s, ESLint: 2.9s, TypeScript: 12.7s)
50
+ - Without cache: ~73s total (Oxlint: 16.3s, ESLint: 24.2s, TypeScript: 72.9s)
50
51
 
51
- ### Bun (Recommended)
52
+ **Key insights:**
53
+ - **Caching provides 5x speedup on large projects**
54
+ - **tsgo is 2-3x faster than tsc for TypeScript checking**
55
+ - **ESLint can be disabled** if you only need Oxlint rules (saves ~3s on large projects)
52
56
 
53
- ```bash
54
- bun add -g vibe-check
55
- ```
57
+ ## Installation
56
58
 
57
- ### Local Installation
59
+ ### Required: Install in Your Project
58
60
 
59
61
  ```bash
60
- npm install --save-dev vibe-check
62
+ npm install --save-dev @next-vibe/checker
63
+ # or
64
+ bun add -d @next-vibe/checker
61
65
  ```
62
66
 
63
- ## Quick Start
67
+ ### Optional: Install Globally
64
68
 
65
- ### 1. Initialize Configuration
69
+ For the `vibe` command:
66
70
 
67
71
  ```bash
68
- vibe check --create-config
72
+ npm install -g @next-vibe/checker
73
+ # or
74
+ bun add -g @next-vibe/checker
69
75
  ```
70
76
 
71
- This creates a `check.config.ts` file with sensible defaults.
77
+ Without global install, use `npx @next-vibe/checker` instead of `vibe`.
72
78
 
73
- ### 2. Run Code Quality Checks
79
+ ## Quick Start
74
80
 
75
81
  ```bash
76
- vibe check
77
- ```
78
-
79
- This runs:
80
- - ✓ **Oxlint** - Fast Rust linter (1-2s for most projects)
81
- - ✓ **ESLint** - Custom rules (import sorting, React hooks, i18n)
82
- - ✓ **TypeScript** - Type checking with tsgo
82
+ # 1. Install in your project
83
+ npm install --save-dev @next-vibe/checker
83
84
 
84
- ### 3. Auto-fix Issues
85
-
86
- ```bash
87
- vibe check --fix
88
- ```
85
+ # 2. Create configuration (interactive)
86
+ vibe config-create
89
87
 
90
- Automatically fixes:
91
- - Formatting issues
92
- - Import order
93
- - Common linting violations
94
-
95
- ## CLI Commands
96
-
97
- ### Code Quality
98
-
99
- ```bash
100
- # Run all checks
88
+ # 3. Run checks
101
89
  vibe check
102
-
103
- # Run with auto-fix
104
- vibe check --fix
105
-
106
- # Run specific checks
107
- vibe check --skip-lint # Skip linting
108
- vibe check --skip-typecheck # Skip type checking
109
-
110
- # Verbose output
111
- vibe check --verbose
112
- ```
113
-
114
- ### Release Management
115
-
116
- ```bash
117
- # Interactive release (recommended)
118
- vibe release
119
-
120
- # Automated release with version increment
121
- vibe release --version-increment patch # 1.0.0 → 1.0.1
122
- vibe release --version-increment minor # 1.0.0 → 1.1.0
123
- vibe release --version-increment major # 1.0.0 → 2.0.0
124
-
125
- # CI/CD mode (non-interactive)
126
- vibe release --ci
127
-
128
- # Dry run (preview changes)
129
- vibe release --dry-run
130
90
  ```
131
91
 
132
- ### Build & Setup
92
+ The `config-create` command interactively sets up:
93
+ - `check.config.ts` - Main configuration
94
+ - ESLint enable/disable - Only needed for rules not in Oxlint (import sorting, React hooks)
95
+ - `.mcp.json` - MCP server config (optional)
96
+ - `.vscode/settings.json` - VSCode integration (optional)
97
+ - `package.json` scripts - npm run check/lint/typecheck (optional)
133
98
 
134
- ```bash
135
- # Build the project
136
- vibe builder
137
-
138
- # Setup/update CLI
139
- vibe setup install
140
- vibe setup status
141
- vibe setup update
142
- vibe setup uninstall
143
- ```
144
-
145
- ### MCP Server
99
+ ## Commands
146
100
 
147
101
  ```bash
148
- # Start MCP server for Claude Desktop
149
- vibe mcp
150
-
151
- # Test MCP server
152
- bunx @modelcontextprotocol/inspector bun vibe mcp
102
+ vibe check # Run all checks (auto-fix enabled)
103
+ vibe check src # Check specific paths
104
+ vibe check src public # Check multiple paths
105
+ vibe check some/path.ts # Check specific file
106
+ vibe check --limit=50 # Limit displayed issues
107
+ vibe config-create # Create/update configuration
108
+ vibe mcp # Start MCP server
109
+ vibe list # List all commands
153
110
  ```
154
111
 
155
112
  ## Configuration
156
113
 
157
- ### check.config.ts
158
-
159
- Create `check.config.ts` in your project root:
114
+ The `check.config.ts` file controls all behavior:
160
115
 
161
116
  ```typescript
162
- import type { CheckConfig } from "vibe-check/system/check/config/types";
117
+ import type { CheckConfig } from "@next-vibe/checker/system/check/config/types";
163
118
 
164
119
  const config: CheckConfig = {
165
- // Oxlint (fast Rust linter)
120
+ vibeCheck: {
121
+ fix: true, // Auto-fix (default: true)
122
+ limit: 200, // Max issues to display
123
+ timeout: 3600, // Max execution time (seconds)
124
+ },
125
+
166
126
  oxlint: {
167
127
  enabled: true,
168
128
  configPath: ".tmp/.oxlintrc.json",
169
- cachePath: ".tmp/oxlint-cache",
129
+ cachePath: ".tmp/oxlint-cache", // Enable caching
170
130
  },
171
131
 
172
- // ESLint (custom rules)
173
132
  eslint: {
174
133
  enabled: true,
175
134
  configPath: ".tmp/eslint.config.mjs",
176
- cachePath: ".tmp/eslint-cache",
135
+ cachePath: ".tmp/eslint-cache", // Enable caching
177
136
  },
178
137
 
179
- // TypeScript type checking
180
138
  typecheck: {
181
139
  enabled: true,
182
- cachePath: ".tmp/typecheck-cache",
183
- useTsgo: true, // Use tsgo instead of tsc (faster)
184
- },
185
-
186
- // Prettier formatting
187
- prettier: {
188
- enabled: true,
189
- configPath: ".tmp/.oxfmtrc.json",
190
- },
191
-
192
- // VSCode integration
193
- vscode: {
194
- enabled: true,
195
- autoGenerateSettings: true,
140
+ useTsgo: true, // 2-3x faster than tsc
196
141
  },
197
142
  };
198
143
 
199
144
  export default config;
200
145
  ```
201
146
 
202
- ### release.config.ts
147
+ See [check.config.ts](./check.config.ts) for complete example with all options.
203
148
 
204
- Create `release.config.ts` for release automation:
149
+ ## What Gets Checked
205
150
 
206
- ```typescript
207
- import type { ReleaseFileConfig } from "vibe-check/system/release-tool/definition";
151
+ ### Oxlint (Rust-powered)
152
+ - 100+ built-in rules for React, TypeScript, a11y
153
+ - Custom plugins:
154
+ - i18n validation (no hardcoded strings)
155
+ - JSX capitalization enforcement
156
+ - Restricted syntax (no `throw`, `unknown`, `object` types)
157
+ - Promise best practices
158
+ - Node.js patterns
159
+ - Unicorn modern JS rules
160
+ - **Uses cache** for faster subsequent runs
208
161
 
209
- const releaseConfig: ReleaseFileConfig = {
210
- packageManager: "bun", // or "npm", "yarn", "pnpm"
211
- globalVersion: "1.0.0", // Synchronized version
162
+ ### ESLint (Optional)
163
+ - Import/export sorting
164
+ - React hooks validation
165
+ - React compiler rules
166
+ - **Uses cache** for faster subsequent runs
167
+ - **Can be disabled** if you don't need these rules (Oxlint covers most cases)
168
+ - Only needed for rules not yet supported by Oxlint
212
169
 
213
- branch: {
214
- main: "main",
215
- develop: "dev",
216
- allowNonMain: false,
217
- },
170
+ ### TypeScript
171
+ - Full type checking with tsgo or tsc
172
+ - Strict type rules (optional)
218
173
 
219
- packages: [
220
- {
221
- directory: "./",
222
- updateDeps: true,
223
- typecheck: "bun run vibe check",
224
- build: true,
225
-
226
- release: {
227
- tagPrefix: "v",
228
-
229
- git: {
230
- skipPush: false,
231
- skipTag: false,
232
- commitMessage: "chore(release): ${version}",
233
- remote: "origin",
234
- },
235
-
236
- npm: {
237
- enabled: true,
238
- access: "public",
239
- provenance: true,
240
- },
241
-
242
- changelog: {
243
- enabled: true,
244
- file: "CHANGELOG.md",
245
- },
246
- },
247
- },
248
- ],
249
- };
174
+ All checks run **in parallel** for maximum speed.
175
+
176
+ ## MCP Server
250
177
 
251
- export default releaseConfig;
178
+ Configure in `.mcp.json` (created by `vibe config-create`):
179
+
180
+ ```json
181
+ {
182
+ "mcpServers": {
183
+ "vibe": {
184
+ "command": "npx",
185
+ "args": ["@next-vibe/checker", "mcp"],
186
+ "env": {
187
+ "PROJECT_ROOT": "/path/to/your/project"
188
+ }
189
+ }
190
+ }
191
+ }
252
192
  ```
253
193
 
254
- ## Advanced Usage
194
+ The MCP server exposes:
195
+ - `check` - Run comprehensive code quality checks
255
196
 
256
- ### Custom Rules
197
+ Compatible with any MCP client.
257
198
 
258
- Customize linting rules in `check.config.ts`:
199
+ ## Usage in Projects
259
200
 
260
- ```typescript
261
- const config: CheckConfig = {
262
- oxlint: {
263
- enabled: true,
264
- rules: {
265
- "no-console": "error",
266
- "no-debugger": "error",
267
- "typescript/no-explicit-any": "error",
268
- },
269
- ignorePatterns: ["dist", "node_modules", ".next"],
270
- },
271
- };
201
+ ### With npm Scripts
202
+
203
+ If you selected package.json update during `config-create`:
204
+
205
+ ```json
206
+ {
207
+ "scripts": {
208
+ "check": "vibe check",
209
+ "lint": "vibe check",
210
+ "typecheck": "vibe check"
211
+ }
212
+ }
272
213
  ```
273
214
 
274
- ### CI/CD Integration
215
+ Then run:
216
+ ```bash
217
+ npm run check
218
+ ```
219
+
220
+ ### Without Global Install
275
221
 
276
- #### GitHub Actions
222
+ ```bash
223
+ npx @next-vibe/checker check
224
+ ```
225
+
226
+ ## CI/CD Integration
227
+
228
+ ### GitHub Actions
277
229
 
278
230
  ```yaml
279
231
  name: Code Quality
280
-
281
232
  on: [push, pull_request]
282
233
 
283
234
  jobs:
@@ -285,173 +236,181 @@ jobs:
285
236
  runs-on: ubuntu-latest
286
237
  steps:
287
238
  - uses: actions/checkout@v4
288
- - uses: oven-sh/setup-bun@v2
289
- - run: bun install
290
- - run: bun vibe check
239
+ - uses: actions/setup-node@v4
240
+ - run: npm install
241
+ - run: npm run check
291
242
  ```
292
243
 
293
- #### GitLab CI
244
+ ### GitLab CI
294
245
 
295
246
  ```yaml
296
247
  check:
297
- image: oven/bun:latest
248
+ image: node:18
298
249
  script:
299
- - bun install
300
- - bun vibe check
250
+ - npm install
251
+ - npm run check
301
252
  ```
302
253
 
303
- ### Programmatic Usage
254
+ ## Caching
304
255
 
305
- ```typescript
306
- import { vibeCheck } from "vibe-check/system/check/vibe-check/repository";
307
- import { EndpointLogger } from "vibe-check/system/unified-interface/shared/logger/endpoint";
256
+ The checker uses caching to speed up subsequent runs:
308
257
 
309
- const logger = new EndpointLogger({ level: "info" });
258
+ - **Oxlint cache**: `.tmp/oxlint-cache`
259
+ - **ESLint cache**: `.tmp/eslint-cache`
310
260
 
311
- const result = await vibeCheck.execute(
312
- {
313
- path: "./src",
314
- fix: true,
315
- skipTypecheck: false,
316
- },
317
- logger,
318
- );
261
+ Cache directories are created automatically. Add `.tmp/` to your `.gitignore`.
319
262
 
320
- if (!result.success) {
321
- console.error("Check failed:", result.data.issues);
322
- process.exit(1);
323
- }
324
- ```
263
+ On first run (cold cache), checks are slower. Subsequent runs are significantly faster.
325
264
 
326
- ## MCP Server Setup
265
+ ## Migrating from Existing Linters
327
266
 
328
- ### Claude Desktop Configuration
329
-
330
- Add to your Claude Desktop config (`~/Library/Application Support/Claude/claude_desktop_config.json` on macOS):
331
-
332
- ```json
333
- {
334
- "mcpServers": {
335
- "vibe-check": {
336
- "command": "bun",
337
- "args": ["vibe", "mcp"]
338
- }
339
- }
340
- }
341
- ```
267
+ If you have existing ESLint, Prettier, or other linter configurations, use this AI agent prompt to migrate cleanly to vibe-check. The agent will port your custom rules to **Oxlint plugins** (preferred, faster) or ESLint where necessary.
342
268
 
343
- ### Available MCP Tools
269
+ ### AI Agent Migration Prompt
344
270
 
345
- - `check_code_quality` - Run comprehensive code quality checks
346
- - `fix_code_issues` - Auto-fix linting and formatting issues
347
- - `analyze_typescript` - Deep TypeScript analysis
348
- - `get_lint_config` - View current linting configuration
271
+ Copy and paste this into your AI agent (Claude, Cursor, etc.):
349
272
 
350
- ## Performance
351
-
352
- ### Benchmark Results
353
-
354
- Tested on a typical Next.js project (500 files, 50k LoC):
355
-
356
- | Tool | Time | Files/sec |
357
- | --------- | ------ | --------- |
358
- | Oxlint | 1.2s | ~417 |
359
- | ESLint | 3.5s | ~143 |
360
- | TypeScript| 2.8s | ~179 |
361
- | **Total** | **3.9s** | **~128** |
362
-
363
- *Parallel execution ensures total time ≈ slowest check, not sum of all checks*
364
-
365
- ### Optimization Tips
366
-
367
- 1. **Use tsgo**: 2-3x faster than `tsc`
368
- 2. **Enable caching**: Reuse results across runs
369
- 3. **Parallel workers**: Auto-scales to CPU cores
370
- 4. **Incremental checks**: Only check changed files
371
-
372
- ## Troubleshooting
373
-
374
- ### Common Issues
375
-
376
- **Q: "Config file not found"**
377
- ```bash
378
- vibe check --create-config
379
273
  ```
380
-
381
- **Q: "Oxlint fails to parse config"**
382
- - Ensure you're using `ignorePatterns` not `ignores`
383
- - Check schema URL: `./node_modules/oxlint/configuration_schema.json`
384
-
385
- **Q: "Type checking is slow"**
386
- ```typescript
387
- // In check.config.ts
388
- typecheck: {
389
- enabled: true,
390
- useTsgo: true, // Enable tsgo instead of tsc
391
- }
274
+ I need to migrate my project to @next-vibe/checker and port all existing linting configurations.
275
+
276
+ PROJECT CONTEXT:
277
+ - Current linters: [list your linters: ESLint, Prettier, TSLint, etc.]
278
+ - Custom rules: [describe any custom rules you have]
279
+ - Config files: [list: .eslintrc.js, .prettierrc, etc.]
280
+
281
+ MIGRATION REQUIREMENTS:
282
+
283
+ 1. INSTALL & SETUP
284
+ - Install: npm install --save-dev @next-vibe/checker
285
+ - Run: vibe config-create (interactive setup)
286
+ - Select all relevant options (React, Next.js, i18n, etc.)
287
+
288
+ 2. PORT CUSTOM RULES TO OXLINT PLUGINS (PREFERRED)
289
+ - Analyze my existing custom ESLint rules
290
+ - Create Oxlint plugins as TypeScript files in oxlint-plugins/
291
+ - Follow the pattern from check.config.ts jsPlugins configuration
292
+ - Oxlint plugins are FASTER than ESLint - prefer this approach
293
+ - Only use ESLint for rules that absolutely cannot be implemented in Oxlint
294
+
295
+ 3. OXLINT PLUGIN STRUCTURE
296
+ Each plugin should be a TypeScript file that exports rules:
297
+ ```typescript
298
+ // oxlint-plugins/my-custom-rule.ts
299
+ export default {
300
+ rules: {
301
+ 'my-rule-name': {
302
+ create(context) {
303
+ // Rule implementation
304
+ }
305
+ }
306
+ }
307
+ };
308
+ ```
309
+
310
+ Register in check.config.ts:
311
+ ```typescript
312
+ jsPlugins: [
313
+ "oxlint-plugins/my-custom-rule.ts"
314
+ ]
315
+ ```
316
+
317
+ 4. UPDATE check.config.ts
318
+ - Port all rule configurations from old config files
319
+ - Map ESLint rules to equivalent Oxlint rules where possible
320
+ - Configure custom Oxlint plugins
321
+ - Only add ESLint rules that have no Oxlint equivalent
322
+ - Set appropriate severity levels (error/warn)
323
+
324
+ 5. CLEAN UP OLD CONFIGS
325
+ - Remove old config files: .eslintrc.*, .prettierrc, etc.
326
+ - Remove old linter packages from package.json
327
+ - Update package.json scripts to use vibe check
328
+ - Remove old linter-specific ignore files
329
+
330
+ 6. TEST THE MIGRATION
331
+ - Run: vibe check
332
+ - Verify all custom rules are working
333
+ - Test auto-fix functionality
334
+ - Compare results with old linter to ensure nothing is missed
335
+ - Run on a few test files with known issues
336
+ - Verify TypeScript checking works correctly
337
+
338
+ 7. VERIFY CUSTOM RULES
339
+ - Create test files that should trigger each custom rule
340
+ - Confirm rules are enforced correctly
341
+ - Test that auto-fix works for fixable rules
342
+ - Document any rules that couldn't be migrated and why
343
+
344
+ 8. UPDATE DOCUMENTATION
345
+ - Update project README with new lint commands
346
+ - Document any custom Oxlint plugins created
347
+ - Add notes about which rules are Oxlint vs ESLint
348
+
349
+ PREFERENCES:
350
+ - ALWAYS prefer Oxlint plugins over ESLint (much faster)
351
+ - Use ESLint only when absolutely necessary
352
+ - Maintain the same strictness level as before
353
+ - Preserve all custom rule logic
354
+ - Enable auto-fix where possible
355
+
356
+ OUTPUT REQUIREMENTS:
357
+ - List of all custom Oxlint plugins created
358
+ - Explanation of which ESLint rules couldn't be ported and why
359
+ - Summary of migration changes
360
+ - Test results showing rules work correctly
361
+ - Any recommendations for further optimization
362
+
363
+ Please proceed with the migration step by step, asking for clarification if needed.
392
364
  ```
393
365
 
394
- **Q: "Release tool doesn't bump version correctly"**
395
- - Ensure `globalVersion` in `release.config.ts` matches your package.json
396
- - Version increments work from max(git tag, configured version)
366
+ ### After Migration
397
367
 
398
- ### Debug Mode
368
+ 1. **Verify everything works:**
369
+ ```bash
370
+ vibe check
371
+ ```
399
372
 
400
- ```bash
401
- vibe check --debug
402
- ```
373
+ 2. **Test on specific files:**
374
+ ```bash
375
+ vibe check src/problematic-file.ts
376
+ ```
403
377
 
404
- Shows detailed execution logs, file discovery, and rule evaluation.
378
+ 3. **Check CI/CD:**
379
+ Update your CI configuration to use `npm run check`
405
380
 
406
- ## Contributing
381
+ 4. **Commit changes:**
382
+ ```bash
383
+ git add .
384
+ git commit -m "Migrate to @next-vibe/checker with custom Oxlint plugins"
385
+ ```
407
386
 
408
- Contributions are welcome! This project is built with:
387
+ ### Oxlint Plugin Resources
409
388
 
410
- - **Bun** - Fast JavaScript runtime
411
- - **TypeScript** - Type safety
412
- - **Oxlint** - Rust-based linter
413
- - **Next.js** - Framework patterns
389
+ - See `oxlint-plugins/` directory in this repository for examples
390
+ - Oxlint plugins are TypeScript files that export rule definitions
391
+ - Much faster than ESLint (Rust-powered execution)
392
+ - Full access to AST for powerful custom rules
414
393
 
415
- ### Development Setup
394
+ ## Contributing
395
+
396
+ This project lives on the `vibe-check` branch:
416
397
 
417
398
  ```bash
418
- git clone https://github.com/maxbrandstatter/next-vibe.git
399
+ git clone https://github.com/techfreaque/next-vibe.git
419
400
  cd next-vibe
420
401
  git checkout vibe-check
421
402
  bun install
422
403
  bun vibe check
423
404
  ```
424
405
 
425
- ### Running Tests
426
-
427
- ```bash
428
- bun test
429
- ```
406
+ See [CONTRIBUTING.md](./CONTRIBUTING.md) for detailed guidelines.
430
407
 
431
408
  ## License
432
409
 
433
- GPL-3.0-only - see [LICENSE](LICENSE) for details.
434
-
435
- ## Credits
436
-
437
- Created by **Max Brandstätter** ([@maxbrandstatter](https://github.com/maxbrandstatter))
438
-
439
- Built with contributions from:
440
- - Claude Code
441
- - Augment
442
- - t3.chat
443
- - Cursor
444
-
445
- ### Special Thanks
446
-
447
- Tools that didn't make the cut (RIP):
448
- - ~~ChatGPT~~ (fired)
449
- - ~~Copilot~~ (fired)
450
- - ~~v0.dev~~ (fired)
451
- - ~~Devin~~ (fired)
452
-
453
- ---
410
+ GPL-3.0-only - see [LICENSE](LICENSE)
454
411
 
455
- **Need help?** [Open an issue](https://github.com/maxbrandstatter/next-vibe/issues)
412
+ ## Links
456
413
 
457
- **Love vibe-check?** [Star the repo](https://github.com/maxbrandstatter/next-vibe)
414
+ - [GitHub Repository](https://github.com/techfreaque/next-vibe/tree/vibe-check)
415
+ - [npm Package](https://www.npmjs.com/package/@next-vibe/checker)
416
+ - [Report Issues](https://github.com/techfreaque/next-vibe/issues)