dev-diagnosis-cli 0.1.3 → 0.1.4

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.
package/CHANGELOG.md CHANGED
@@ -1,6 +1,19 @@
1
1
  # Changelog
2
2
 
3
- ## 0.1.3 — unreleased
3
+ ## 0.1.4 — unreleased
4
+
5
+ - Fix: a large file now carries a suggestion — its exact path from the
6
+ repo root — so `context --fix` writes it into `.aiignore` and a
7
+ re-scan comes back clean. Large files used to carry no suggestion, so
8
+ on any repo with one oversized file the fix wrote everything else and
9
+ the next scan still failed on the same file, including this project's
10
+ own demo fixture (its 1.7 MB `data/export.json`). The documented
11
+ "`--fix` followed by a re-scan comes back clean" promise now holds
12
+ for every kind of noise. (54 tests.)
13
+ - Docs: the 0.1.3 entry below is now dated — it went live on npm on
14
+ 2026-11-11 but the entry still said "unreleased".
15
+
16
+ ## 0.1.3 — 2026-11-11
4
17
 
5
18
  - Fix: nested build-output directories are reported by their full path
6
19
  from the repo root (`packages/foo/dist/`) instead of a bare `dist/` —
package/README.md CHANGED
@@ -58,6 +58,7 @@ Worth a look before sharing:
58
58
  .env.example — environment template (usually safe to share)
59
59
  Fix: add these to .aiignore (or the agent's ignore list):
60
60
  *.log
61
+ data/export.json
61
62
  dist/
62
63
  package-lock.json
63
64
  FAIL some context noise found (score 75/100)
@@ -92,7 +93,7 @@ The demo repo is intentionally noisy, so `all` exits 1: the context and flakes c
92
93
 
93
94
  ### `context` — what an AI agent should not read
94
95
 
95
- Walks the repo (skipping `.git`, `node_modules` and other hidden directories) and classifies every file: build output, large files over 1 MB, lockfiles, logs, binary payloads, secret-like files and environment templates. It prints a 0–100 score, the bytes lost per category, the noisy files, the files worth a look before sharing, and the `.aiignore` entries that would fix it. Build-output directories are reported by their full path from the repo root (`packages/foo/dist/`, not a bare `dist/`) and rolled up into one row per directory, so the entry `--fix` writes matches nested build output too. Files the repo's `.aiignore` already lists are excluded from the scan entirely — they are what the agent will not be handed, so they are not noise any more. `context --fix` writes the suggestions into `.aiignore` for you; `--json` includes the fix outcome in the output.
96
+ Walks the repo (skipping `.git`, `node_modules` and other hidden directories) and classifies every file: build output, large files over 1 MB, lockfiles, logs, binary payloads, secret-like files and environment templates. It prints a 0–100 score, the bytes lost per category, the noisy files, the files worth a look before sharing, and the `.aiignore` entries that would fix it. Build-output directories are reported by their full path from the repo root (`packages/foo/dist/`, not a bare `dist/`) and rolled up into one row per directory, so the entry `--fix` writes matches nested build output too. A large file is fixed by its exact path from the repo root — no glob can single one file out — so `--fix` followed by a re-scan comes back clean even when the noise is a single oversized file. Files the repo's `.aiignore` already lists are excluded from the scan entirely — they are what the agent will not be handed, so they are not noise any more. `context --fix` writes the suggestions into `.aiignore` for you; `--json` includes the fix outcome in the output.
96
97
 
97
98
  The score is the *noise-only* part of ai-context-doctor's score: 100 minus the category-weighted share of noise bytes (build 40, large 25, lockfile 20, log 15). The full ai-context-doctor score also weighs context volume, one file dominating, file sprawl and binary payloads, so its composite number reads lower on the same repo. The file classification itself is the same.
98
99
 
@@ -111,7 +112,7 @@ Reads JUnit XML across CI runs — each subdirectory of `<junit-dir>` is one run
111
112
  ## Development
112
113
 
113
114
  ```sh
114
- npm test # node:test, no extra dependencies — 53 tests
115
+ npm test # node:test, no extra dependencies — 54 tests
115
116
  npm run example # run the CLI against the demo fixture
116
117
  ```
117
118
 
package/lib/context.mjs CHANGED
@@ -114,7 +114,13 @@ export function classifyPath(relativePath, size = 0) {
114
114
  return { noise: { label: normalized, reason: 'local log file' }, suggestion: '*.log' };
115
115
  }
116
116
  if (size > LARGE_FILE_THRESHOLD_BYTES) {
117
- return { noise: { label: normalized, reason: 'large file' }, suggestion: null };
117
+ // A large file has no pattern that fixes it — a glob would be wrong —
118
+ // so the fix is its exact path from the repo root. Without that, a
119
+ // repo with one oversized file could never come back clean: --fix
120
+ // would write everything else and the next scan would still fail on
121
+ // the same file, which is exactly what the --fix round-trip promises
122
+ // not to do.
123
+ return { noise: { label: normalized, reason: 'large file' }, suggestion: normalized };
118
124
  }
119
125
  if (isTemplateFile(basename)) {
120
126
  return { review: { label: normalized, reason: 'environment template (usually safe to share)' }, suggestion: null };
package/package.json CHANGED
@@ -1 +1 @@
1
- {"author":"WJDdidi-1","bin":{"dev-diagnosis":"bin/dev-diagnosis.js"},"bugs":{"url":"https://github.com/WJDdidi-1/dev-doctor/issues"},"description":"One offline CLI that diagnoses a repo the way four small tools do: context noise for AI agents, missing CLI commands, build-cache value, and flaky tests.","engines":{"node":">=18"},"files":["bin/","lib/","examples/","README.md","LICENSE","CHANGELOG.md"],"homepage":"https://github.com/WJDdidi-1/dev-doctor#readme","keywords":["cli","diagnostics","ai-coding","context","build-cache","flaky-tests","path","developer-tools","offline"],"license":"Apache-2.0","name":"dev-diagnosis-cli","repository":{"type":"git","url":"git+https://github.com/WJDdidi-1/dev-doctor.git"},"scripts":{"example":"node examples/demo.mjs","test":"node --test"},"type":"module","version":"0.1.3"}
1
+ {"author":"WJDdidi-1","bin":{"dev-diagnosis":"bin/dev-diagnosis.js"},"bugs":{"url":"https://github.com/WJDdidi-1/dev-doctor/issues"},"description":"One offline CLI that diagnoses a repo the way four small tools do: context noise for AI agents, missing CLI commands, build-cache value, and flaky tests.","engines":{"node":">=18"},"files":["bin/","lib/","examples/","README.md","LICENSE","CHANGELOG.md"],"homepage":"https://github.com/WJDdidi-1/dev-doctor#readme","keywords":["cli","diagnostics","ai-coding","context","build-cache","flaky-tests","path","developer-tools","offline"],"license":"Apache-2.0","name":"dev-diagnosis-cli","repository":{"type":"git","url":"git+https://github.com/WJDdidi-1/dev-doctor.git"},"scripts":{"example":"node examples/demo.mjs","test":"node --test"},"type":"module","version":"0.1.4"}