claudex-setup 1.16.0 → 1.16.1

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/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # claudex-setup
2
2
 
3
- > Score your repo's Claude Code setup against 84 checks. See what's missing, apply only what you approve with rollback, and benchmark the impact — without breaking existing config.
3
+ > Score your repo's Claude Code setup against 85 checks. See what's missing, apply only what you approve with rollback, and benchmark the impact — without breaking existing config.
4
4
 
5
5
  [![npm version](https://img.shields.io/npm/v/claudex-setup)](https://www.npmjs.com/package/claudex-setup)
6
6
  [![npm downloads](https://img.shields.io/npm/dm/claudex-setup)](https://www.npmjs.com/package/claudex-setup)
@@ -51,7 +51,11 @@ Tested on 4 real projects — not demos:
51
51
 
52
52
  Most common gaps found: missing secrets protection, no deny rules, no mermaid diagram, no hooks in settings.
53
53
 
54
- > Scores measured with claudex-setup@1.10.3 on 2026-04-03. Full case studies: [VTCLE](https://github.com/DnaFin/claudex/blob/main/research/case-study-vtcle-2026-04-03.md) | [Social](https://github.com/DnaFin/claudex/blob/main/research/case-study-social-2026-04-03.md) | [Polymiro](https://github.com/DnaFin/claudex/blob/main/research/case-study-polymiro-2026-04-03.md)
54
+ > Scores measured with claudex-setup@1.10.3 on 2026-04-03. Current npm latest: 1.16.0, so exact scores may differ slightly on the newer release.
55
+ >
56
+ > Canonical proof artifacts: [Index](https://github.com/DnaFin/claudex/blob/main/research/proof-artifacts/README.md) | [CLAUDEX trace](https://github.com/DnaFin/claudex/blob/main/research/proof-artifacts/claudex-self-dogfood-proof-trace-2026-04-03.md) | [VTCLE trace](https://github.com/DnaFin/claudex/blob/main/research/proof-artifacts/vtcle-proof-trace-2026-04-03.md) | [Social trace](https://github.com/DnaFin/claudex/blob/main/research/proof-artifacts/social-proof-trace-2026-04-03.md) | [Polymiro trace](https://github.com/DnaFin/claudex/blob/main/research/proof-artifacts/polymiro-proof-trace-2026-04-03.md)
57
+ >
58
+ > Narrative case studies: [VTCLE](https://github.com/DnaFin/claudex/blob/main/research/case-study-vtcle-2026-04-03.md) | [Social](https://github.com/DnaFin/claudex/blob/main/research/case-study-social-2026-04-03.md) | [Polymiro](https://github.com/DnaFin/claudex/blob/main/research/case-study-polymiro-2026-04-03.md)
55
59
 
56
60
  ## What You Get
57
61
 
@@ -91,7 +95,7 @@ Most common gaps found: missing secrets protection, no deny rules, no mermaid di
91
95
  design: none (0/2)
92
96
  devops: none (0/4)
93
97
 
94
- 29/84 checks passing
98
+ 29/85 checks passing
95
99
  Next command: npx claudex-setup setup
96
100
  ```
97
101
 
@@ -107,7 +111,7 @@ That prints a compact top-3 quick scan with one clear next command.
107
111
 
108
112
  | Command | What it does |
109
113
  |---------|-------------|
110
- | `npx claudex-setup` | **Discover** - Score 0-100 against 84 checks |
114
+ | `npx claudex-setup` | **Discover** - Score 0-100 against 85 checks |
111
115
  | `npx claudex-setup discover` | **Discover** - Alias for audit mode |
112
116
  | `npx claudex-setup setup` | **Starter** - Smart CLAUDE.md + hooks + commands + agents |
113
117
  | `npx claudex-setup starter` | **Starter** - Alias for setup mode |
@@ -119,11 +123,14 @@ That prints a compact top-3 quick scan with one clear next command.
119
123
  | `npx claudex-setup governance` | **Governance** - Permission profiles, hook registry, policy packs, pilot kit |
120
124
  | `npx claudex-setup benchmark` | **Benchmark** - Before/after evidence from an isolated temp copy |
121
125
  | `npx claudex-setup interactive` | **Wizard** - Step-by-step guided tour |
122
- | `npx claudex-setup watch` | **Watch** - Live monitoring with score delta |
126
+ | `npx claudex-setup watch` | **Watch** - Live monitoring with score delta and cross-platform directory fallback |
123
127
  | `npx claudex-setup badge` | **Badge** - Generate shields.io badge for README |
124
- | `npx claudex-setup deep-review` | **Deep Review** - AI-powered config analysis (needs API key) |
128
+ | `npx claudex-setup feedback` | **Feedback** - Record local recommendation outcomes or show outcome summary |
129
+ | `npx claudex-setup deep-review` | **Deep Review** - AI-powered config analysis (Claude Code or API key, selected config only) |
125
130
  | `npx claudex-setup insights` | **Insights** - View community aggregate stats |
126
131
 
132
+ > Note: the `feedback` command is currently validated on the main working tree for the next release. If your installed npm build does not expose it yet, use the rest of the trust-first flow and pick it up on the next publish.
133
+
127
134
  ### Options
128
135
 
129
136
  | Flag | Effect |
@@ -134,6 +141,10 @@ That prints a compact top-3 quick scan with one clear next command.
134
141
  | `--only A,B` | Limit plan/apply to selected proposal ids |
135
142
  | `--profile NAME` | Choose a permission profile for write-capable flows |
136
143
  | `--mcp-pack A,B` | Merge named MCP packs into generated or patched settings |
144
+ | `--key NAME` | Recommendation key for `feedback` logging |
145
+ | `--status VALUE` | Outcome status: `accepted`, `rejected`, or `deferred` |
146
+ | `--effect VALUE` | Outcome effect: `positive`, `neutral`, or `negative` |
147
+ | `--score-delta N` | Optional observed score delta tied to the feedback event |
137
148
  | `--snapshot` | Save a normalized artifact under `.claude/claudex-setup/snapshots/` |
138
149
  | `--lite` | Show a short top-3 quick scan with one clear next command |
139
150
  | `--dry-run` | Preview apply without writing files |
@@ -246,6 +257,19 @@ npx claudex-setup benchmark --snapshot
246
257
 
247
258
  Snapshots are written to `.claude/claudex-setup/snapshots/` with a shared envelope and an `index.json` history file.
248
259
 
260
+ If you want a local-first recommendation loop, record what actually helped:
261
+
262
+ ```bash
263
+ npx claudex-setup feedback --key permissionDeny --status accepted --effect positive --score-delta 12
264
+ npx claudex-setup feedback
265
+ ```
266
+
267
+ Feedback stays under `.claude/claudex-setup/outcomes/` and is used only as a local ranking signal. Recommendations with repeated positive outcomes get a measured boost; recommendations with repeated negative or rejected outcomes get pushed down.
268
+
269
+ If your currently installed npm build does not expose `feedback` yet, treat this as next-release behavior rather than current npm-latest behavior.
270
+
271
+ `watch` uses native `fs.watch` with recursive directory watches where the platform supports them, and an expanded directory fallback elsewhere. That keeps nested `.claude/` and `.github/` changes visible on Linux too, while staying zero-dependency. Native filesystem watch semantics can still be noisier on very large repos or network filesystems, so the command is best treated as fast local feedback rather than a CI-grade signal.
272
+
249
273
  ## Use Inside Claude Code
250
274
 
251
275
  If you want the first Claude-native entry point, copy the shipped skill template into your repo.
@@ -261,26 +285,26 @@ If you are using `npx` only, copy the same file from the GitHub repo at `content
261
285
 
262
286
  The skill runs `npx claudex-setup --json`, summarizes the score, shows the top next actions, and points to the right next command without applying changes.
263
287
 
264
- ## 84 Checks Across 14 Categories
288
+ ## 85 Checks Across 14 Categories
265
289
 
266
290
  The exact applicable count can be lower on a given repo because stack-specific checks are skipped when they do not apply.
267
291
 
268
292
  | Category | Checks | Key items |
269
293
  |----------|-------:|-----------|
270
- | Memory | 8 | CLAUDE.md, architecture, conventions |
271
- | Quality | 7 | verification loops, self-correction |
272
- | Git Safety | 5 | hooks, force-push protection |
273
- | Workflow | 8 | commands, skills, rules, agents |
274
- | Security | 6 | permissions, secrets, deny rules |
275
- | Automation | 5 | PreToolUse, PostToolUse, SessionStart |
276
- | Design | 4 | Mermaid, XML tags, structured prompts |
277
- | DevOps | 6 | Docker, CI, Terraform, K8s, pipelines |
278
- | Hygiene | 7 | .gitignore, cleanup, structure |
279
- | Performance | 3 | context management, compaction |
280
- | MCP | 3 | servers, Context7, integrations |
281
- | Prompting | 5 | constraints, validation, patterns, style |
282
- | Features | 3 | /security-review, Channels, modern features |
283
- | **Quality Deep** | **14** | **freshness, contradictions, deprecated patterns, maxTurns, $ARGUMENTS, hook specificity** |
294
+ | Memory | 8 | CLAUDE.md, architecture, conventions, imports |
295
+ | Quality | 6 | verification loops, test/lint/build, testing strategy |
296
+ | Git Safety | 6 | .gitignore, env protection, attribution, secret detection |
297
+ | Workflow | 12 | commands, skills, rules, agents, snapshots |
298
+ | Security | 7 | permissions, secrets, deny rules, sandbox awareness |
299
+ | Automation | 7 | hook coverage, specificity, session and error hooks |
300
+ | Design | 2 | frontend anti-slop guidance, styling signals |
301
+ | DevOps | 5 | Docker, CI, Terraform, infra signals |
302
+ | Hygiene | 8 | README, changelog, license, env example, version pinning |
303
+ | Performance | 3 | context management, compaction, effort level |
304
+ | MCP & Tools | 4 | servers, Context7, tool companions, env config |
305
+ | Prompting | 6 | constraints, examples, negative rules, style guidance |
306
+ | Features | 2 | channels, worktrees |
307
+ | **Quality Deep** | **9** | **freshness, contradictions, deprecated patterns, maxTurns, $ARGUMENTS, hook specificity** |
284
308
 
285
309
  ## Stack Detection
286
310
 
@@ -307,7 +331,7 @@ jobs:
307
331
  runs-on: ubuntu-latest
308
332
  steps:
309
333
  - uses: actions/checkout@v4
310
- - uses: DnaFin/claudex-setup@v1.15.1
334
+ - uses: DnaFin/claudex-setup@v1.16.0
311
335
  with:
312
336
  threshold: 50
313
337
  ```
@@ -333,6 +357,14 @@ npx claudex-setup deep-review
333
357
 
334
358
  Claude reads your actual config and gives specific feedback: what's strong, what has issues, what's missing for your stack. This is an AI-assisted review, not a local heuristic audit. Your config goes to the Anthropic API only when you run this command; we do not receive it.
335
359
 
360
+ Deep-review trust boundary:
361
+
362
+ - sends only selected Claude-facing config surfaces: `CLAUDE.md`, settings, commands, agents, rules, hooks, and package scripts
363
+ - truncates large files before sending
364
+ - redacts embedded secrets before sending
365
+ - treats embedded repo text as untrusted review data, not as instructions to follow
366
+ - keeps all non-`deep-review` flows local
367
+
336
368
  ### Quality-Deep Checks
337
369
 
338
370
  The v0.4.0 quality-deep checks catch what basic audits miss:
@@ -355,7 +387,8 @@ These checks evaluate **quality**, not just existence. A well-configured project
355
387
 
356
388
  - **Zero dependencies** - nothing extra to audit
357
389
  - **Core flows run locally** - audit, setup, augment, plan, apply, governance, and benchmark run on your machine
358
- - **Deep review is opt-in** - only `deep-review` sends selected config to Anthropic for analysis
390
+ - **Deep review is opt-in** - only `deep-review` sends selected config to Anthropic or your local Claude Code session for analysis
391
+ - **Deep review sanitizes before send** - selected snippets are truncated, secret-redacted, and wrapped as untrusted review data
359
392
  - **Benchmark uses an isolated temp copy** - your live repo is not touched
360
393
  - **Anonymous insights** - opt-in, no PII, no file contents (enable with `--insights`)
361
394
  - **MIT Licensed** - use anywhere
package/bin/cli.js CHANGED
@@ -6,7 +6,7 @@ const { analyzeProject, printAnalysis, exportMarkdown } = require('../src/analyz
6
6
  const { buildProposalBundle, printProposalBundle, writePlanFile, applyProposalBundle, printApplyResult } = require('../src/plans');
7
7
  const { getGovernanceSummary, printGovernanceSummary, ensureWritableProfile, renderGovernanceMarkdown } = require('../src/governance');
8
8
  const { runBenchmark, printBenchmark, writeBenchmarkReport } = require('../src/benchmark');
9
- const { writeSnapshotArtifact } = require('../src/activity');
9
+ const { writeSnapshotArtifact, recordRecommendationOutcome, formatRecommendationOutcomeSummary, getRecommendationOutcomeSummary } = require('../src/activity');
10
10
  const { version } = require('../package.json');
11
11
 
12
12
  const args = process.argv.slice(2);
@@ -18,8 +18,9 @@ const COMMAND_ALIASES = {
18
18
  starter: 'setup',
19
19
  suggest: 'suggest-only',
20
20
  gov: 'governance',
21
+ outcome: 'feedback',
21
22
  };
22
- const KNOWN_COMMANDS = ['audit', 'setup', 'augment', 'suggest-only', 'plan', 'apply', 'governance', 'benchmark', 'deep-review', 'interactive', 'watch', 'badge', 'insights', 'history', 'compare', 'trend', 'scan', 'help', 'version'];
23
+ const KNOWN_COMMANDS = ['audit', 'setup', 'augment', 'suggest-only', 'plan', 'apply', 'governance', 'benchmark', 'deep-review', 'interactive', 'watch', 'badge', 'insights', 'history', 'compare', 'trend', 'scan', 'feedback', 'help', 'version'];
23
24
 
24
25
  function levenshtein(a, b) {
25
26
  const matrix = Array.from({ length: a.length + 1 }, () => Array(b.length + 1).fill(0));
@@ -62,13 +63,19 @@ function parseArgs(rawArgs) {
62
63
  let profile = 'safe-write';
63
64
  let mcpPacks = [];
64
65
  let requireChecks = [];
66
+ let feedbackKey = null;
67
+ let feedbackStatus = null;
68
+ let feedbackEffect = null;
69
+ let feedbackNotes = null;
70
+ let feedbackSource = null;
71
+ let feedbackScoreDelta = null;
65
72
  let commandSet = false;
66
73
  let extraArgs = [];
67
74
 
68
75
  for (let i = 0; i < rawArgs.length; i++) {
69
76
  const arg = rawArgs[i];
70
77
 
71
- if (arg === '--threshold' || arg === '--out' || arg === '--plan' || arg === '--only' || arg === '--profile' || arg === '--mcp-pack' || arg === '--require') {
78
+ if (arg === '--threshold' || arg === '--out' || arg === '--plan' || arg === '--only' || arg === '--profile' || arg === '--mcp-pack' || arg === '--require' || arg === '--key' || arg === '--status' || arg === '--effect' || arg === '--notes' || arg === '--source' || arg === '--score-delta') {
72
79
  const value = rawArgs[i + 1];
73
80
  if (!value || value.startsWith('--')) {
74
81
  throw new Error(`${arg} requires a value`);
@@ -80,6 +87,12 @@ function parseArgs(rawArgs) {
80
87
  if (arg === '--profile') profile = value.trim();
81
88
  if (arg === '--mcp-pack') mcpPacks = value.split(',').map(item => item.trim()).filter(Boolean);
82
89
  if (arg === '--require') requireChecks = value.split(',').map(item => item.trim()).filter(Boolean);
90
+ if (arg === '--key') feedbackKey = value.trim();
91
+ if (arg === '--status') feedbackStatus = value.trim();
92
+ if (arg === '--effect') feedbackEffect = value.trim();
93
+ if (arg === '--notes') feedbackNotes = value;
94
+ if (arg === '--source') feedbackSource = value.trim();
95
+ if (arg === '--score-delta') feedbackScoreDelta = value.trim();
83
96
  i++;
84
97
  continue;
85
98
  }
@@ -119,6 +132,36 @@ function parseArgs(rawArgs) {
119
132
  continue;
120
133
  }
121
134
 
135
+ if (arg.startsWith('--key=')) {
136
+ feedbackKey = arg.split('=').slice(1).join('=').trim();
137
+ continue;
138
+ }
139
+
140
+ if (arg.startsWith('--status=')) {
141
+ feedbackStatus = arg.split('=').slice(1).join('=').trim();
142
+ continue;
143
+ }
144
+
145
+ if (arg.startsWith('--effect=')) {
146
+ feedbackEffect = arg.split('=').slice(1).join('=').trim();
147
+ continue;
148
+ }
149
+
150
+ if (arg.startsWith('--notes=')) {
151
+ feedbackNotes = arg.split('=').slice(1).join('=');
152
+ continue;
153
+ }
154
+
155
+ if (arg.startsWith('--source=')) {
156
+ feedbackSource = arg.split('=').slice(1).join('=').trim();
157
+ continue;
158
+ }
159
+
160
+ if (arg.startsWith('--score-delta=')) {
161
+ feedbackScoreDelta = arg.split('=').slice(1).join('=').trim();
162
+ continue;
163
+ }
164
+
122
165
  if (arg.startsWith('--')) {
123
166
  flags.push(arg);
124
167
  continue;
@@ -134,7 +177,7 @@ function parseArgs(rawArgs) {
134
177
 
135
178
  const normalizedCommand = COMMAND_ALIASES[command] || command;
136
179
 
137
- return { flags, command, normalizedCommand, threshold, out, planFile, only, profile, mcpPacks, requireChecks, extraArgs };
180
+ return { flags, command, normalizedCommand, threshold, out, planFile, only, profile, mcpPacks, requireChecks, feedbackKey, feedbackStatus, feedbackEffect, feedbackNotes, feedbackSource, feedbackScoreDelta, extraArgs };
138
181
  }
139
182
 
140
183
  const HELP = `
@@ -166,8 +209,9 @@ const HELP = `
166
209
  npx claudex-setup benchmark Before/after in isolated temp copy
167
210
  npx claudex-setup deep-review AI-powered config review (opt-in, uses API)
168
211
  npx claudex-setup interactive Step-by-step guided wizard
169
- npx claudex-setup watch Live monitoring on config changes
212
+ npx claudex-setup watch Live monitoring on config changes with cross-platform watch fallback
170
213
  npx claudex-setup badge Generate shields.io badge markdown
214
+ npx claudex-setup feedback Record recommendation outcomes or show local outcome summary
171
215
 
172
216
  Options:
173
217
  --threshold N Exit with code 1 if score is below N (useful for CI)
@@ -177,6 +221,12 @@ const HELP = `
177
221
  --only A,B Limit plan/apply to selected proposal ids or technique keys
178
222
  --profile NAME Choose permission profile (read-only, suggest-only, safe-write, power-user, internal-research)
179
223
  --mcp-pack A,B Merge named MCP packs into generated settings (e.g. context7-docs,next-devtools)
224
+ --key NAME Recommendation key for feedback logging (e.g. permissionDeny)
225
+ --status VALUE Feedback status: accepted, rejected, deferred
226
+ --effect VALUE Feedback effect: positive, neutral, negative
227
+ --notes TEXT Short notes to store with a feedback event
228
+ --source NAME Source label for feedback event (default: manual-cli)
229
+ --score-delta N Optional observed score delta tied to the outcome
180
230
  --snapshot Save a normalized snapshot artifact under .claude/claudex-setup/snapshots/
181
231
  --lite Show a short top-3 quick scan with one clear next command
182
232
  --dry-run Preview apply without writing files
@@ -203,6 +253,8 @@ const HELP = `
203
253
  npx claudex-setup apply --profile power-user --only claude-md,hooks
204
254
  npx claudex-setup governance --json
205
255
  npx claudex-setup benchmark --out benchmark.md
256
+ npx claudex-setup feedback
257
+ npx claudex-setup feedback --key permissionDeny --status accepted --effect positive --score-delta 12
206
258
  npx claudex-setup --json --threshold 60
207
259
  npx claudex-setup setup --auto
208
260
  npx claudex-setup interactive
@@ -439,6 +491,41 @@ async function main() {
439
491
  console.log(' Insights request timed out. Run locally: npx claudex-setup');
440
492
  });
441
493
  return; // keep process alive for http
494
+ } else if (normalizedCommand === 'feedback') {
495
+ if (parsed.feedbackKey) {
496
+ if (!parsed.feedbackStatus) {
497
+ console.error('\n Error: feedback logging requires --status when --key is provided.\n');
498
+ process.exit(1);
499
+ }
500
+ const artifact = recordRecommendationOutcome(options.dir, {
501
+ key: parsed.feedbackKey,
502
+ status: parsed.feedbackStatus,
503
+ effect: parsed.feedbackEffect || 'neutral',
504
+ notes: parsed.feedbackNotes || '',
505
+ source: parsed.feedbackSource || 'manual-cli',
506
+ scoreDelta: parsed.feedbackScoreDelta !== null ? Number(parsed.feedbackScoreDelta) : null,
507
+ });
508
+ const summary = getRecommendationOutcomeSummary(options.dir);
509
+ if (options.json) {
510
+ console.log(JSON.stringify({ artifact, summary }, null, 2));
511
+ } else {
512
+ console.log('');
513
+ console.log(` Feedback recorded for ${parsed.feedbackKey}`);
514
+ console.log(` Artifact: ${artifact.relativePath}`);
515
+ console.log('');
516
+ console.log(formatRecommendationOutcomeSummary(options.dir));
517
+ console.log('');
518
+ }
519
+ } else {
520
+ if (options.json) {
521
+ console.log(JSON.stringify(getRecommendationOutcomeSummary(options.dir), null, 2));
522
+ } else {
523
+ console.log('');
524
+ console.log(formatRecommendationOutcomeSummary(options.dir));
525
+ console.log('');
526
+ }
527
+ }
528
+ process.exit(0);
442
529
  } else if (normalizedCommand === 'augment' || normalizedCommand === 'suggest-only') {
443
530
  const report = await analyzeProject({ ...options, mode: normalizedCommand });
444
531
  const snapshot = options.snapshot ? writeSnapshotArtifact(options.dir, normalizedCommand, report, {
@@ -1,159 +1,226 @@
1
- # Launch Posts — Ready to Publish
1
+ # Launch Posts — Proof-Backed Distribution Assets
2
+
3
+ **Status:** Complete — every asset below is anchored in measured proof, a canonical artifact, or a verified runtime surface
4
+ **Date:** 2026-04-03
5
+
6
+ ## Shared Proof Anchors
7
+
8
+ Use these links as the canonical sources behind public claims:
9
+
10
+ - Proof artifact index: https://github.com/DnaFin/claudex/blob/main/research/proof-artifacts/README.md
11
+ - CLAUDEX self-dogfood trace: https://github.com/DnaFin/claudex/blob/main/research/proof-artifacts/claudex-self-dogfood-proof-trace-2026-04-03.md
12
+ - VTCLE case study: https://github.com/DnaFin/claudex/blob/main/research/case-study-vtcle-2026-04-03.md
13
+ - Social case study: https://github.com/DnaFin/claudex/blob/main/research/case-study-social-2026-04-03.md
14
+ - Polymiro case study: https://github.com/DnaFin/claudex/blob/main/research/case-study-polymiro-2026-04-03.md
15
+ - Public proof metrics source: https://github.com/DnaFin/claudex/blob/main/research/claudex-proof-metrics-source-2026-04-03.md
16
+
17
+ Measured-result boundary to preserve:
18
+
19
+ - before/after scores were measured with `claudex-setup@1.10.3` on `2026-04-03`
20
+ - current npm latest is `1.16.0`
21
+ - current product surface is `85 checks`
2
22
 
3
23
  ## Post 1: Reddit r/ClaudeAI
4
24
 
5
- **Title:** I built a tool that audits your project for Claude Code optimizationscores you 0-100
25
+ **Title:** I built a CLI that audits your Claude Code setup85 checks, measured on 4 real repos
6
26
 
7
27
  **Body:**
8
- After cataloging 1,107 Claude Code entries and verifying 948 of them with evidence, I built a CLI that checks if your project is actually set up to get the most out of Claude Code. It runs 84 checks across CLAUDE.md, hooks, commands, agents, diagrams, and more.
28
+ I built a zero-dependency CLI that audits how well a repo is set up for Claude Code.
9
29
 
10
- I tested it on 4 real repos. A FastAPI marketing engine went from 46 to 64. A React Native social app went from 40 to 48. A Polymiro project jumped from 35 to 48. The CLAUDEX catalog repo itself: 62 to 90.
30
+ It checks `85` things across `CLAUDE.md`, hooks, commands, agents, skills, MCP config, permissions, diagrams, and verification loops.
11
31
 
12
- ```
32
+ Measured on `2026-04-03` with `claudex-setup@1.10.3`:
33
+ - CLAUDEX: `62 -> 90`
34
+ - VTCLE: `46 -> 64`
35
+ - Social: `40 -> 48`
36
+ - Polymiro: `35 -> 48`
37
+
38
+ ```bash
13
39
  npx claudex-setup
14
40
  ```
15
41
 
16
- Then `npx claudex-setup setup` auto-creates everything that's missing, tailored to your stack (React, Python, TypeScript, etc).
42
+ It starts trust-first:
43
+ - audit first
44
+ - plan / suggest-only before writes
45
+ - apply only what you approve
46
+ - rollback artifacts for every applied batch
17
47
 
18
- Zero dependencies. No API keys. Runs entirely local.
48
+ Zero dependencies. No API keys. Runs local.
19
49
 
20
50
  GitHub: https://github.com/DnaFin/claudex-setup
21
51
 
22
- Would love feedback!
52
+ Proof and case studies:
53
+ - https://github.com/DnaFin/claudex/blob/main/research/proof-artifacts/README.md
54
+ - https://github.com/DnaFin/claudex/blob/main/research/case-study-vtcle-2026-04-03.md
55
+ - https://github.com/DnaFin/claudex/blob/main/research/case-study-social-2026-04-03.md
56
+ - https://github.com/DnaFin/claudex/blob/main/research/case-study-polymiro-2026-04-03.md
57
+
58
+ Would love feedback on what checks or rollout surfaces are still missing.
59
+
60
+ **Evidence anchor:** proof artifact index + 3 external case studies + current proof source
23
61
 
24
62
  ---
25
63
 
26
64
  ## Post 2: Reddit r/ChatGPTCoding
27
65
 
28
- **Title:** Your Claude Code project is probably running at 10% efficiency. Here's how to check.
66
+ **Title:** Most Claude Code repos are missing the safety layer, not the model
29
67
 
30
68
  **Body:**
31
- I spent weeks cataloging every Claude Code feature, technique, and best practice — 1,107 total, 948 verified with real evidence.
32
-
33
- Turns out most projects are missing basic stuff that makes a huge difference:
34
- - No CLAUDE.md (Claude doesn't know your project conventions)
35
- - No hooks (no auto-lint, no auto-test)
36
- - No custom commands (repeating the same prompts manually)
37
- - No Mermaid diagrams (wasting 73% more tokens on prose descriptions)
38
-
39
- I tested 4 real repos with 84 checks. Before optimization: scores ranged from 35 to 62. After: 48 to 90. A VTCLE FastAPI project jumped from 46→64 just from adding missing hooks and commands.
40
-
41
- ```
69
+ The interesting problem with Claude Code is not "can it write code?".
70
+ It's "is the repo actually set up so Claude can work safely and predictably?".
71
+
72
+ I built `claudex-setup` to audit that surface:
73
+ - `85` checks
74
+ - zero dependencies
75
+ - local-only by default
76
+ - trust-first flow: audit -> plan -> apply -> rollback
77
+
78
+ Measured on 4 real repos:
79
+ - FastAPI repo: `46 -> 64`
80
+ - React Native repo: `40 -> 48`
81
+ - Python/Docker repo: `35 -> 48`
82
+ - research engine repo: `62 -> 90`
83
+
84
+ ```bash
42
85
  npx claudex-setup
43
86
  ```
44
87
 
45
- Scores your project 0-100, tells you exactly what to fix, and can auto-apply everything.
88
+ The most common misses were not exotic:
89
+ - no deny rules
90
+ - no secrets protection
91
+ - no mermaid architecture
92
+ - no hooks registered in settings
93
+
94
+ Proof:
95
+ https://github.com/DnaFin/claudex/blob/main/research/proof-artifacts/README.md
46
96
 
47
- Free, open source, zero dependencies: https://github.com/DnaFin/claudex-setup
97
+ **Evidence anchor:** measured before/after traces + common gap summary from public proof set
48
98
 
49
99
  ---
50
100
 
51
101
  ## Post 3: Dev.to Article
52
102
 
53
- **Title:** 1,107 Claude Code Entries: What I Learned Building the Most Comprehensive Catalog
103
+ **Title:** What 4 Real Repos Taught Me About Claude Code Readiness
54
104
 
55
105
  **Body (excerpt):**
56
- I set out to catalog every single Claude Code capability, technique, and best practice. After repeated research cycles, I have 1,107 entries — 948 verified with real evidence. I packaged this into an 84-check CLI audit and tested it on 4 real projects scores before optimization ranged from 35 to 62, and after: 48 to 90.
106
+ I tested `claudex-setup` on 4 real repos and the pattern was clear:
57
107
 
58
- Here are the top 10 things most developers are missing:
108
+ - the best teams still miss permission deny rules
109
+ - mature repos often have hooks in files but not actually registered
110
+ - non-standard settings formats are a real adoption trap
111
+ - shared `settings.json` matters more than personal local overrides
59
112
 
60
- 1. **CLAUDE.md** Claude reads this at the start of every session. Without it, Claude doesn't know your build commands, code style, or project rules.
113
+ Measured on `2026-04-03` with `claudex-setup@1.10.3`:
114
+ - CLAUDEX: `62 -> 90`
115
+ - VTCLE: `46 -> 64`
116
+ - Social: `40 -> 48`
117
+ - Polymiro: `35 -> 48`
61
118
 
62
- 2. **Mermaid diagrams** A Mermaid architecture diagram saves 73% tokens compared to describing your project in prose.
119
+ The product today is strongest as:
63
120
 
64
- 3. **Hooks** Auto-lint after every edit. Auto-test before every commit. Hooks fire 100% of the time, CLAUDE.md rules fire ~80%.
121
+ `audit -> plan -> safe apply -> governance -> benchmark`
65
122
 
66
- 4. **Custom commands** `/test`, `/deploy`, `/review` package your repeated workflows.
123
+ Not a code generator. Not an MCP installer. A trust layer for Claude Code repos.
67
124
 
68
- 5. **Verification loops** — Tell Claude how to verify its own work. Include test commands in CLAUDE.md.
125
+ Proof packet:
126
+ https://github.com/DnaFin/claudex/blob/main/research/proof-artifacts/README.md
69
127
 
70
- 6. **Path-specific rules** Different conventions for frontend vs backend files.
71
-
72
- 7. **XML tags** — `<constraints>`, `<validation>` in CLAUDE.md = unambiguous instructions.
73
-
74
- 8. **Custom agents** — Security reviewer, test writer — specialized subagents for focused tasks.
75
-
76
- 9. **Skills** — Domain-specific workflows that load on demand, not every session.
77
-
78
- 10. **MCP servers** — Connect Claude to your database, ticket system, Slack.
79
-
80
- I packaged this into a CLI that checks your project:
81
- ```
82
- npx claudex-setup
83
- ```
84
-
85
- Full catalog: https://github.com/DnaFin/claudex-setup
128
+ **Evidence anchor:** proof artifact index + case-study docs + current proof source
86
129
 
87
130
  ---
88
131
 
89
132
  ## Post 4: Twitter/X Thread
90
133
 
91
134
  **Tweet 1:**
92
- I cataloged 1,107 Claude Code entries and verified 948 of them with evidence.
93
-
94
- Most projects use less than 5% of what Claude Code can do.
135
+ I built a zero-dependency CLI that audits Claude Code readiness across `85` checks.
95
136
 
96
- Tested on 4 real repos — a React Native app scored 40, a FastAPI engine scored 46. After auto-setup: 48 and 64. Here's the free 84-check audit:
137
+ Measured on 4 real repos:
138
+ - `62 -> 90`
139
+ - `46 -> 64`
140
+ - `40 -> 48`
141
+ - `35 -> 48`
97
142
 
98
- npx claudex-setup
143
+ `npx claudex-setup`
99
144
 
100
- Thread 🧵👇
145
+ Proof: github.com/DnaFin/claudex/blob/main/research/proof-artifacts/README.md
101
146
 
102
147
  **Tweet 2:**
103
- The #1 thing you're probably missing: CLAUDE.md
104
-
105
- It's a file Claude reads at the start of every session. Without it, Claude doesn't know your:
106
- - Build commands
107
- - Code style
108
- - Testing framework
109
- - Project architecture
148
+ The most common misses were boring and important:
149
+ - no deny rules
150
+ - no secrets protection
151
+ - no mermaid diagram
152
+ - no hooks registered in settings
110
153
 
111
- Takes 2 minutes to create. Impact: massive.
154
+ It is much more "trust layer" than "AI magic".
112
155
 
113
156
  **Tweet 3:**
114
- #2: Mermaid diagrams in CLAUDE.md
115
-
116
- A few hundred tokens of Mermaid syntax conveys what takes thousands of tokens in prose.
117
-
118
- 73% token savings = faster responses, lower cost, better context.
157
+ What it does well today:
158
+ - audit first
159
+ - suggest / plan before writes
160
+ - apply selectively
161
+ - emit rollback artifacts
162
+ - benchmark on isolated copy
119
163
 
120
164
  **Tweet 4:**
121
- #3: Hooks > CLAUDE.md rules
122
-
123
- CLAUDE.md instructions = ~80% compliance
124
- Hooks = 100% enforcement
165
+ Best result so far:
166
+ - CLAUDEX self-dogfood: `62 -> 90`
125
167
 
126
- Auto-lint after edits. Block commits without tests. Prevent force-push.
168
+ Best external proof:
169
+ - VTCLE: `46 -> 64`
127
170
 
128
- Hooks are deterministic. Instructions are advisory.
171
+ Case studies:
172
+ - github.com/DnaFin/claudex/blob/main/research/case-study-vtcle-2026-04-03.md
173
+ - github.com/DnaFin/claudex/blob/main/research/case-study-social-2026-04-03.md
174
+ - github.com/DnaFin/claudex/blob/main/research/case-study-polymiro-2026-04-03.md
129
175
 
130
176
  **Tweet 5:**
131
- Want to check your project in 10 seconds?
177
+ Measured results were captured on `claudex-setup@1.10.3` on `2026-04-03`.
178
+ Current npm latest is `1.16.0`, so exact scores can move slightly, but the proof packet is explicit about that boundary.
132
179
 
133
- npx claudex-setup
134
-
135
- Scores 0-100. Shows what's missing. Auto-fixes with `setup`.
136
-
137
- Free. Open source. Zero dependencies.
138
-
139
- https://github.com/DnaFin/claudex-setup
180
+ **Evidence anchor:** proof artifact index + per-repo traces
140
181
 
141
182
  ---
142
183
 
143
184
  ## Post 5: Hacker News (Show HN)
144
185
 
145
- **Title:** Show HN: claudex-setup Audit any project for Claude Code optimization (1,107 entries)
186
+ **Title:** Show HN: claudex-setup audit Claude Code readiness with 85 checks
146
187
 
147
188
  **Body:**
148
- I built a CLI tool that scores your project against Claude Code best practices.
149
-
150
- After researching 1,107 entries (948 verified with evidence), I tested 4 real repos with 84 checks. Scores before optimization: 35–62. After auto-setup: 48–90. The biggest jump was a research catalog repo going from 62 to 90.
151
-
152
- npx claudex-setup → audit (84 checks, 0-100 score)
153
- npx claudex-setup setup → auto-fix
154
-
155
- Detects your stack (React, Python, TS, Rust, Go, etc) and tailors recommendations.
156
-
157
- Zero dependencies, no API keys, runs locally.
158
-
159
- https://github.com/DnaFin/claudex-setup
189
+ I built a CLI that audits how well a repo is set up for Claude Code.
190
+
191
+ This is not a code-quality linter and not an MCP installer.
192
+ It focuses on Claude workflow quality:
193
+ - `CLAUDE.md`
194
+ - hooks
195
+ - commands
196
+ - agents
197
+ - skills
198
+ - MCP config
199
+ - permissions / deny rules
200
+ - diagrams
201
+ - verification loops
202
+
203
+ Core workflow:
204
+ - `npx claudex-setup`
205
+ - `npx claudex-setup suggest-only`
206
+ - `npx claudex-setup plan`
207
+ - `npx claudex-setup apply`
208
+ - `npx claudex-setup benchmark`
209
+
210
+ Measured on 4 real repos on `2026-04-03` with `claudex-setup@1.10.3`:
211
+ - CLAUDEX: `62 -> 90`
212
+ - VTCLE: `46 -> 64`
213
+ - Social: `40 -> 48`
214
+ - Polymiro: `35 -> 48`
215
+
216
+ Trust decisions that mattered:
217
+ - zero dependencies
218
+ - audit before write
219
+ - rollback artifacts
220
+ - cross-platform Node hooks
221
+ - explicit proof packets instead of vague claims
222
+
223
+ Proof packet:
224
+ https://github.com/DnaFin/claudex/blob/main/research/proof-artifacts/README.md
225
+
226
+ **Evidence anchor:** proof artifact index + current npm proof source