@aiready/consistency 0.6.8 → 0.6.12

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.
@@ -1,6 +1,6 @@
1
1
 
2
2
  
3
- > @aiready/consistency@0.6.8 build /Users/pengcao/projects/aiready/packages/consistency
3
+ > @aiready/consistency@0.6.12 build /Users/pengcao/projects/aiready/packages/consistency
4
4
  > tsup src/index.ts src/cli.ts --format cjs,esm --dts
5
5
 
6
6
  CLI Building entry: src/cli.ts, src/index.ts
@@ -10,15 +10,15 @@
10
10
  CJS Build start
11
11
  ESM Build start
12
12
  CJS dist/index.js 47.29 KB
13
- CJS dist/cli.js 46.58 KB
14
- CJS ⚡️ Build success in 99ms
15
- ESM dist/cli.mjs 8.55 KB
13
+ CJS dist/cli.js 46.80 KB
14
+ CJS ⚡️ Build success in 215ms
15
+ ESM dist/cli.mjs 8.76 KB
16
+ ESM dist/chunk-7PHHJOGC.mjs 36.87 KB
16
17
  ESM dist/index.mjs 9.40 KB
17
- ESM dist/chunk-HPG7P6PD.mjs 36.87 KB
18
- ESM ⚡️ Build success in 99ms
18
+ ESM ⚡️ Build success in 215ms
19
19
  DTS Build start
20
- DTS ⚡️ Build success in 1083ms
20
+ DTS ⚡️ Build success in 1940ms
21
21
  DTS dist/cli.d.ts 20.00 B
22
- DTS dist/index.d.ts 2.77 KB
22
+ DTS dist/index.d.ts 2.99 KB
23
23
  DTS dist/cli.d.mts 20.00 B
24
- DTS dist/index.d.mts 2.77 KB
24
+ DTS dist/index.d.mts 2.99 KB
@@ -1,69 +1,299 @@
1
1
 
2
2
  
3
- > @aiready/consistency@0.6.8 test /Users/pengcao/projects/aiready/packages/consistency
3
+ > @aiready/consistency@0.6.12 test /Users/pengcao/projects/aiready/packages/consistency
4
4
  > vitest run
5
5
 
6
6
 
7
7
   RUN  v2.1.9 /Users/pengcao/projects/aiready/packages/consistency
8
8
 
9
- [?25l · should detect unclear boolean names
10
- · should allow common abbreviations
11
- · should NOT flag multi-line arrow function parameters (Phase 3)
12
- · should NOT flag short-lived comparison variables (Phase 3)
9
+ [?25l · src/__tests__/analyzer.test.ts (18)
10
+ [?25l · src/__tests__/analyzer.test.ts (18)
11
+ · src/__tests__/language-filter.test.ts (3)
12
+ [?25l ❯ src/__tests__/analyzer.test.ts (18)
13
+ ❯ analyzeConsistency (2)
14
+ ⠙ should analyze naming issues
15
+ · should detect minimum severity filtering
16
+ · analyzeNaming (8)
13
17
  · analyzePatterns (3)
14
- · should detect mixed error handling
15
- · should detect mixed async patterns
16
- · should detect mixed import styles
17
18
  · consistency scoring (2)
18
- · should calculate consistency score correctly
19
- · should weight critical issues more than info
20
19
  · recommendations (3)
21
- · should generate relevant recommendations
22
- · should suggest standardizing error handling
23
- · should suggest using async/await consistently
24
- [?25l[?25l[?25l[?25l[?25l[?25l[?25l ✓ should detect unclear boolean names
25
- ✓ should allow common abbreviations
26
- ✓ should NOT flag multi-line arrow function parameters (Phase 3)
27
- ✓ should NOT flag short-lived comparison variables (Phase 3)
20
+ · src/__tests__/language-filter.test.ts (3)
21
+ [?25l ❯ src/__tests__/analyzer.test.ts (18)
22
+ ❯ analyzeConsistency (2)
23
+ ⠹ should analyze naming issues
24
+ · should detect minimum severity filtering
25
+ · analyzeNaming (8)
26
+ · analyzePatterns (3)
27
+ · consistency scoring (2)
28
+ · recommendations (3)
29
+ · src/__tests__/language-filter.test.ts (3)
30
+ [?25l ❯ src/__tests__/analyzer.test.ts (18)
31
+ ❯ analyzeConsistency (2)
32
+ ⠸ should analyze naming issues
33
+ · should detect minimum severity filtering
34
+ · analyzeNaming (8)
35
+ · analyzePatterns (3)
36
+ · consistency scoring (2)
37
+ · recommendations (3)
38
+ · src/__tests__/language-filter.test.ts (3)
39
+ [?25l ❯ src/__tests__/analyzer.test.ts (18)
40
+ ❯ analyzeConsistency (2)
41
+ ⠼ should analyze naming issues
42
+ · should detect minimum severity filtering
43
+ · analyzeNaming (8)
44
+ · analyzePatterns (3)
45
+ · consistency scoring (2)
46
+ · recommendations (3)
47
+ · src/__tests__/language-filter.test.ts (3)
48
+ [?25l ❯ src/__tests__/analyzer.test.ts (18)
49
+ ❯ analyzeConsistency (2)
50
+ ⠴ should analyze naming issues
51
+ · should detect minimum severity filtering
52
+ · analyzeNaming (8)
53
+ · analyzePatterns (3)
54
+ · consistency scoring (2)
55
+ · recommendations (3)
56
+ · src/__tests__/language-filter.test.ts (3)
57
+ [?25l ❯ src/__tests__/analyzer.test.ts (18)
58
+ ❯ analyzeConsistency (2)
59
+ ⠦ should analyze naming issues
60
+ · should detect minimum severity filtering
61
+ · analyzeNaming (8)
62
+ · analyzePatterns (3)
63
+ · consistency scoring (2)
64
+ · recommendations (3)
65
+ · src/__tests__/language-filter.test.ts (3)
66
+ [?25l ❯ src/__tests__/analyzer.test.ts (18)
67
+ ❯ analyzeConsistency (2)
68
+ ⠧ should analyze naming issues
69
+ · should detect minimum severity filtering
70
+ · analyzeNaming (8)
71
+ · analyzePatterns (3)
72
+ · consistency scoring (2)
73
+ · recommendations (3)
74
+ ✓ src/__tests__/language-filter.test.ts (3)
75
+ [?25l ❯ src/__tests__/analyzer.test.ts (18)
76
+ ❯ analyzeConsistency (2)
77
+ ⠇ should analyze naming issues
78
+ · should detect minimum severity filtering
79
+ · analyzeNaming (8)
80
+ · analyzePatterns (3)
81
+ · consistency scoring (2)
82
+ · recommendations (3)
83
+ ✓ src/__tests__/language-filter.test.ts (3)
84
+ [?25l ❯ src/__tests__/analyzer.test.ts (18)
85
+ ❯ analyzeConsistency (2)
86
+ ⠏ should analyze naming issues
87
+ · should detect minimum severity filtering
88
+ · analyzeNaming (8)
89
+ · analyzePatterns (3)
90
+ · consistency scoring (2)
91
+ · recommendations (3)
92
+ ✓ src/__tests__/language-filter.test.ts (3)
93
+ [?25l ❯ src/__tests__/analyzer.test.ts (18)
94
+ ❯ analyzeConsistency (2)
95
+ ⠋ should analyze naming issues
96
+ · should detect minimum severity filtering
97
+ · analyzeNaming (8)
98
+ · analyzePatterns (3)
99
+ · consistency scoring (2)
100
+ · recommendations (3)
101
+ ✓ src/__tests__/language-filter.test.ts (3)
102
+ [?25l ❯ src/__tests__/analyzer.test.ts (18)
103
+ ❯ analyzeConsistency (2)
104
+ ⠙ should analyze naming issues
105
+ · should detect minimum severity filtering
106
+ · analyzeNaming (8)
107
+ · analyzePatterns (3)
108
+ · consistency scoring (2)
109
+ · recommendations (3)
110
+ ✓ src/__tests__/language-filter.test.ts (3)
111
+ [?25l ❯ src/__tests__/analyzer.test.ts (18)
112
+ ❯ analyzeConsistency (2)
113
+ ⠹ should analyze naming issues
114
+ · should detect minimum severity filtering
115
+ · analyzeNaming (8)
116
+ · analyzePatterns (3)
117
+ · consistency scoring (2)
118
+ · recommendations (3)
119
+ ✓ src/__tests__/language-filter.test.ts (3)
120
+ [?25l ❯ src/__tests__/analyzer.test.ts (18)
121
+ ❯ analyzeConsistency (2)
122
+ ⠸ should analyze naming issues
123
+ · should detect minimum severity filtering
124
+ · analyzeNaming (8)
125
+ · analyzePatterns (3)
126
+ · consistency scoring (2)
127
+ · recommendations (3)
128
+ ❯ analyzeConsistency (2)
129
+ ⠼ should analyze naming issues
130
+ · should detect minimum severity filtering
131
+ · analyzeNaming (8)
132
+ · analyzePatterns (3)
133
+ · consistency scoring (2)
134
+ · recommendations (3)
135
+ ✓ src/__tests__/language-filter.test.ts (3)
136
+ [?25l ❯ src/__tests__/analyzer.test.ts (18)
137
+ ❯ analyzeConsistency (2)
138
+ ⠴ should analyze naming issues
139
+ · should detect minimum severity filtering
140
+ · analyzeNaming (8)
141
+ · analyzePatterns (3)
142
+ · consistency scoring (2)
143
+ · recommendations (3)
144
+ ✓ src/__tests__/language-filter.test.ts (3)
145
+ [?25l ❯ src/__tests__/analyzer.test.ts (18)
146
+ ❯ analyzeConsistency (2)
147
+ ⠦ should analyze naming issues
148
+ · should detect minimum severity filtering
149
+ · analyzeNaming (8)
150
+ · analyzePatterns (3)
151
+ · consistency scoring (2)
152
+ · recommendations (3)
153
+ ✓ src/__tests__/language-filter.test.ts (3)
154
+ [?25l ❯ src/__tests__/analyzer.test.ts (18)
155
+ ❯ analyzeConsistency (2)
156
+ ⠧ should analyze naming issues
157
+ · should detect minimum severity filtering
158
+ · analyzeNaming (8)
159
+ · analyzePatterns (3)
160
+ · consistency scoring (2)
161
+ · recommendations (3)
162
+ ✓ src/__tests__/language-filter.test.ts (3)
163
+ [?25l ❯ src/__tests__/analyzer.test.ts (18)
164
+ ❯ analyzeConsistency (2)
165
+ ✓ should analyze naming issues 312ms
166
+ ⠙ should detect minimum severity filtering
167
+ · analyzeNaming (8)
168
+ · analyzePatterns (3)
169
+ · consistency scoring (2)
170
+ · recommendations (3)
171
+ ✓ src/__tests__/language-filter.test.ts (3)
172
+ [?25l ❯ src/__tests__/analyzer.test.ts (18)
173
+ ❯ analyzeConsistency (2)
174
+ ✓ should analyze naming issues 312ms
175
+ ⠹ should detect minimum severity filtering
176
+ · analyzeNaming (8)
177
+ · analyzePatterns (3)
178
+ · consistency scoring (2)
179
+ · recommendations (3)
180
+ ✓ src/__tests__/language-filter.test.ts (3)
181
+ [?25l ❯ src/__tests__/analyzer.test.ts (18)
182
+ ❯ analyzeConsistency (2)
183
+ ✓ should analyze naming issues 312ms
184
+ ⠸ should detect minimum severity filtering
185
+ · analyzeNaming (8)
186
+ · analyzePatterns (3)
187
+ · consistency scoring (2)
188
+ · recommendations (3)
189
+ ✓ src/__tests__/language-filter.test.ts (3)
190
+ [?25l ❯ src/__tests__/analyzer.test.ts (18)
191
+ ❯ analyzeConsistency (2)
192
+ ✓ should analyze naming issues 312ms
193
+ ⠼ should detect minimum severity filtering
194
+ · analyzeNaming (8)
195
+ · analyzePatterns (3)
196
+ · consistency scoring (2)
197
+ · recommendations (3)
198
+ ✓ src/__tests__/language-filter.test.ts (3)
199
+ [?25l ❯ src/__tests__/analyzer.test.ts (18)
200
+ ❯ analyzeConsistency (2)
201
+ ✓ should analyze naming issues 312ms
202
+ ⠴ should detect minimum severity filtering
203
+ · analyzeNaming (8)
204
+ · analyzePatterns (3)
205
+ · consistency scoring (2)
206
+ · recommendations (3)
207
+ ✓ src/__tests__/language-filter.test.ts (3)
208
+ [?25l ❯ src/__tests__/analyzer.test.ts (18)
209
+ ❯ analyzeConsistency (2)
210
+ ✓ should analyze naming issues 312ms
211
+ ⠦ should detect minimum severity filtering
212
+ · analyzeNaming (8)
213
+ · analyzePatterns (3)
214
+ · consistency scoring (2)
215
+ · recommendations (3)
216
+ ✓ src/__tests__/language-filter.test.ts (3)
217
+  ✓ src/__tests__/analyzer.test.ts (18) 415ms
218
+ ✓ src/__tests__/language-filter.test.ts (3)
219
+
220
+  Test Files  2 passed (2)
221
+  Tests  21 passed (21)
222
+  Start at  18:01:20
223
+  Duration  2.38s (transform 742ms, setup 0ms, collect 2.26s, tests 425ms, environment 0ms, prepare 531ms)
224
+
225
+ [?25h[?25h
226
+ ms
227
+ ✓ analyzeNaming (8)
28
228
  ✓ analyzePatterns (3)
29
- ✓ should detect mixed error handling
30
- ✓ should detect mixed async patterns
31
- ✓ should detect mixed import styles
32
229
  ✓ consistency scoring (2)
33
- ✓ should calculate consistency score correctly
34
- ✓ should weight critical issues more than info
35
230
  ❯ recommendations (3)
36
231
  ⠙ should generate relevant recommendations
37
232
  · should suggest standardizing error handling
38
233
  · should suggest using async/await consistently
39
-  ✓ src/__tests__/analyzer.test.ts (18)
40
- ✓ analyzeConsistency (2)
234
+ ✓ src/__tests__/language-filter.test.ts (3)
235
+  ✓ src/__tests__/analyzer.test.ts (18) 451ms
236
+ ✓ src/__tests__/language-filter.test.ts (3)
237
+
238
+  Test Files  2 passed (2)
239
+  Tests  21 passed (21)
240
+  Start at  18:01:19
241
+  Duration  2.72s (transform 1.07s, setup 0ms, collect 3.76s, tests 456ms, environment 0ms, prepare 214ms)
242
+
243
+ [?25h[?25h
244
+ st.ts (3)
245
+ [?25l ❯ src/__tests__/analyzer.test.ts (18)
246
+ ❯ analyzeConsistency (2)
247
+ ✓ should analyze naming issues
248
+ ⠹ should detect minimum severity filtering
249
+ · analyzeNaming (8)
250
+ · analyzePatterns (3)
251
+ · consistency scoring (2)
252
+ · recommendations (3)
253
+ ✓ src/__tests__/language-filter.test.ts (3)
254
+ [?25l ❯ src/__tests__/analyzer.test.ts (18)
255
+ ❯ analyzeConsistency (2)
256
+ ✓ should analyze naming issues
257
+ ⠸ should detect minimum severity filtering
258
+ · analyzeNaming (8)
259
+ · analyzePatterns (3)
260
+ · consistency scoring (2)
261
+ · recommendations (3)
262
+ ✓ src/__tests__/language-filter.test.ts (3)
263
+ [?25l ❯ src/__tests__/analyzer.test.ts (18)
264
+ ❯ analyzeConsistency (2)
41
265
  ✓ should analyze naming issues
42
- ✓ should detect minimum severity filtering
266
+ ⠼ should detect minimum severity filtering
267
+ · analyzeNaming (8)
268
+ · analyzePatterns (3)
269
+ · consistency scoring (2)
270
+ · recommendations (3)
271
+ ✓ src/__tests__/language-filter.test.ts (3)
272
+ [?25l ❯ src/__tests__/analyzer.test.ts (18)
273
+ ❯ analyzeConsistency (2)
274
+ ✓ should analyze naming issues
275
+ ⠴ should detect minimum severity filtering
276
+ · analyzeNaming (8)
277
+ · analyzePatterns (3)
278
+ · consistency scoring (2)
279
+ · recommendations (3)
280
+ ✓ src/__tests__/language-filter.test.ts (3)
281
+ [?25l ❯ src/__tests__/analyzer.test.ts (18)
282
+ ✓ analyzeConsistency (2) 553ms
43
283
  ✓ analyzeNaming (8)
44
- ✓ should detect single letter variables
45
- ✓ should NOT flag acceptable abbreviations
46
- ✓ should NOT flag common short English words
47
- ✓ should detect snake_case in TypeScript files
48
- ✓ should detect unclear boolean names
49
- ✓ should allow common abbreviations
50
- ✓ should NOT flag multi-line arrow function parameters (Phase 3)
51
- ✓ should NOT flag short-lived comparison variables (Phase 3)
52
284
  ✓ analyzePatterns (3)
53
- ✓ should detect mixed error handling
54
- ✓ should detect mixed async patterns
55
- ✓ should detect mixed import styles
56
285
  ✓ consistency scoring (2)
57
- ✓ should calculate consistency score correctly
58
- ✓ should weight critical issues more than info
59
- ✓ recommendations (3)
60
- ✓ should generate relevant recommendations
61
- ✓ should suggest standardizing error handling
62
- ✓ should suggest using async/await consistently
286
+ ❯ recommendations (3)
287
+ ⠙ should generate relevant recommendations
288
+ · should suggest standardizing error handling
289
+ · should suggest using async/await consistently
290
+ ✓ src/__tests__/language-filter.test.ts (3)
291
+  ✓ src/__tests__/analyzer.test.ts (18) 596ms
292
+ ✓ src/__tests__/language-filter.test.ts (3)
63
293
 
64
-  Test Files  1 passed (1)
65
-  Tests  18 passed (18)
66
-  Start at  20:58:11
67
-  Duration  769ms (transform 126ms, setup 0ms, collect 331ms, tests 135ms, environment 0ms, prepare 55ms)
294
+  Test Files  2 passed (2)
295
+  Tests  21 passed (21)
296
+  Start at  18:01:19
297
+  Duration  2.68s (transform 1.41s, setup 0ms, collect 2.94s, tests 724ms, environment 0ms, prepare 693ms)
68
298
 
69
299
  [?25h[?25h
@@ -0,0 +1,154 @@
1
+ # Language Support Fix - Python Files Issue
2
+
3
+ ## Issue Report
4
+
5
+ **Date:** 2026-01-20
6
+ **Reporter:** Consumer testing on receiptclaimer project
7
+ **Package:** @aiready/consistency
8
+
9
+ ### Problem Description
10
+
11
+ The `@aiready/consistency` tool was attempting to parse **Python files (.py)** using a **TypeScript/JavaScript parser** (`@typescript-eslint/typescript-estree`), causing parse failures with misleading error messages.
12
+
13
+ ### Error Messages
14
+
15
+ ```
16
+ Failed to parse /path/to/compute_weighted_ranking.py: Unterminated string literal.
17
+ Failed to parse /path/to/search_console_to_bq.py: Unterminated string literal.
18
+ Failed to parse /path/to/merge-web-coverage.ts: Invalid character.
19
+ Failed to parse /path/to/merge-all-coverage.ts: '>' expected.
20
+ ```
21
+
22
+ ### Root Cause Analysis
23
+
24
+ 1. **File Scanner:** The core `scanFiles()` utility includes multiple language patterns by default:
25
+ ```typescript
26
+ include = ['**/*.{ts,tsx,js,jsx,py,java}']
27
+ ```
28
+
29
+ 2. **Parser Limitation:** The `@aiready/consistency` tool uses `@typescript-eslint/typescript-estree` which only supports TypeScript/JavaScript syntax.
30
+
31
+ 3. **No Language Filter:** The tool was processing all files returned by the scanner without filtering by supported language extensions.
32
+
33
+ ### Issue Classification
34
+
35
+ | File Type | Status | Root Cause |
36
+ |-----------|--------|------------|
37
+ | Python files (.py) | **Tool Issue** | Tool tried to parse with wrong parser |
38
+ | TypeScript files (.ts) | **File Issue** | Actual syntax errors in source files |
39
+
40
+ ## Fix Implementation
41
+
42
+ ### Changes Made
43
+
44
+ #### 1. Added Language Filtering ([naming-ast.ts](packages/consistency/src/analyzers/naming-ast.ts))
45
+
46
+ ```typescript
47
+ // Filter to only JS/TS files that the TypeScript parser can handle
48
+ const supportedFiles = files.filter(file =>
49
+ /\.(js|jsx|ts|tsx)$/i.test(file)
50
+ );
51
+ ```
52
+
53
+ #### 2. Updated Documentation
54
+
55
+ - **README.md:** Added "Supported Languages" section at the top
56
+ - **README.md:** Added "Language Support" subsection explaining which files are skipped
57
+ - **CLI Help:** Added language support information
58
+ - **Code Comments:** Documented limitations in analyzer and parser functions
59
+
60
+ #### 3. Improved Error Handling ([ast-parser.ts](packages/consistency/src/utils/ast-parser.ts))
61
+
62
+ - Removed noisy `console.warn()` for parse failures
63
+ - Added comments explaining that non-JS/TS files should be filtered upstream
64
+ - Made parse failures silent (returns `null`) since they're now expected for excluded files
65
+
66
+ #### 4. Added Test Coverage ([language-filter.test.ts](packages/consistency/src/__tests__/language-filter.test.ts))
67
+
68
+ - Tests that Python/Java/Ruby files are filtered out
69
+ - Verifies all JS/TS extensions are accepted
70
+ - Ensures no crashes on mixed language projects
71
+
72
+ ### Design Decision: Core Scanner vs Tool Filtering
73
+
74
+ **Question:** Should the core scanner exclude Python files, or should each tool filter?
75
+
76
+ **Decision:** **Tool-level filtering** (implemented)
77
+
78
+ **Rationale:**
79
+ - Core scanner is designed for future multi-language support
80
+ - Other tools (e.g., future Python linter) may need `.py` files
81
+ - Each tool knows its language capabilities best
82
+ - Follows separation of concerns principle
83
+
84
+ ### Verification
85
+
86
+ ✅ Build successful
87
+ ✅ Tests passing (3 new tests added)
88
+ ✅ Documentation updated
89
+ ✅ No breaking changes
90
+
91
+ ## For Users
92
+
93
+ ### What Changed
94
+
95
+ **Before:** Tool attempted to parse Python/Java files and showed confusing errors
96
+
97
+ **After:** Tool silently skips unsupported languages and only analyzes JS/TS files
98
+
99
+ ### Migration Guide
100
+
101
+ No action required. This is a non-breaking improvement.
102
+
103
+ ### New Behavior
104
+
105
+ When running on a mixed-language project:
106
+ ```bash
107
+ npx @aiready/consistency ./src
108
+ ```
109
+
110
+ The tool will:
111
+ 1. ✅ Analyze all `.ts`, `.tsx`, `.js`, `.jsx` files
112
+ 2. ⏭️ Skip `.py`, `.java`, and other language files
113
+ 3. 📊 Report only on supported languages
114
+ 4. ❌ No more "Failed to parse" warnings for Python files
115
+
116
+ ## Future Enhancements
117
+
118
+ Potential improvements for future versions:
119
+
120
+ 1. **Multi-Language Support**
121
+ - Add Python AST parser for Python files
122
+ - Add Java parser for Java files
123
+ - Create language-specific analyzers
124
+
125
+ 2. **Better Diagnostics**
126
+ - Count and report skipped files by language
127
+ - Suggest language-specific tools for unsupported files
128
+
129
+ 3. **Configuration Option**
130
+ - Allow users to explicitly specify supported languages
131
+ - Add `--strict` mode to error on unsupported files
132
+
133
+ ## Related Files
134
+
135
+ - [packages/consistency/src/analyzers/naming-ast.ts](packages/consistency/src/analyzers/naming-ast.ts) - Added filtering
136
+ - [packages/consistency/src/analyzer.ts](packages/consistency/src/analyzer.ts) - Updated docs
137
+ - [packages/consistency/src/cli.ts](packages/consistency/src/cli.ts) - Updated help text
138
+ - [packages/consistency/src/utils/ast-parser.ts](packages/consistency/src/utils/ast-parser.ts) - Improved error handling
139
+ - [packages/consistency/README.md](packages/consistency/README.md) - Added language support section
140
+ - [packages/core/src/utils/file-scanner.ts](packages/core/src/utils/file-scanner.ts) - Documented broad defaults
141
+
142
+ ## Testing
143
+
144
+ Run the new tests:
145
+ ```bash
146
+ cd packages/consistency
147
+ pnpm test language-filter.test.ts
148
+ ```
149
+
150
+ Verify on a mixed-language project:
151
+ ```bash
152
+ # Should work without Python parse errors
153
+ npx @aiready/consistency /path/to/mixed-project
154
+ ```
package/README.md CHANGED
@@ -4,6 +4,10 @@
4
4
 
5
5
  Helps teams maintain consistent coding practices across their codebase, making it easier for AI tools to understand and work with your code.
6
6
 
7
+ **Supported Languages:** TypeScript, JavaScript (`.ts`, `.tsx`, `.js`, `.jsx`)
8
+
9
+ > **Note:** Python, Java, and other language files in your project will be safely ignored during analysis.
10
+
7
11
  ## 🚀 Quick Start
8
12
 
9
13
  **Zero config, works out of the box:**
@@ -54,6 +58,19 @@ CRITICAL (2 files)
54
58
 
55
59
  Inconsistent code patterns confuse AI models and reduce their effectiveness. This tool analyzes:
56
60
 
61
+ ### 🔧 Language Support
62
+
63
+ **Fully Supported:**
64
+ - TypeScript (`.ts`, `.tsx`)
65
+ - JavaScript (`.js`, `.jsx`)
66
+
67
+ **Not Yet Supported:**
68
+ - Python (`.py`) - Files will be skipped
69
+ - Java (`.java`) - Files will be skipped
70
+ - Other languages - Files will be skipped
71
+
72
+ If you see "Failed to parse" warnings for non-JS/TS files, this is expected behavior and won't affect the analysis of your JavaScript/TypeScript code.
73
+
57
74
  ### 🏷️ Naming Quality & Conventions
58
75
  - **Single-letter variables** - Detects unclear variable names (skips common iterators: i, j, k, l, x, y, z in appropriate contexts)
59
76
  - **Abbreviations** - Identifies unclear abbreviations while allowing 60+ standard ones (env, req, res, ctx, max, min, etc.)