claude-code-autoconfig 1.0.177 → 1.0.179
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/.claude/docs/autoconfig.docs.html +6 -6
- package/.claude/scripts/sync-docs.js +4 -4
- package/CHANGELOG.md +6 -6
- package/bin/cli.js +13 -9
- package/package.json +1 -1
|
@@ -1268,7 +1268,7 @@
|
|
|
1268
1268
|
title: '.claude/ Directory',
|
|
1269
1269
|
desc: 'Commands, rules, settings, and these docs. Keeps configuration organized as your project grows.'
|
|
1270
1270
|
},
|
|
1271
|
-
|
|
1271
|
+
'rules': {
|
|
1272
1272
|
title: 'rules/',
|
|
1273
1273
|
desc: 'Path-scoped context that loads when Claude works on matching files.'
|
|
1274
1274
|
},
|
|
@@ -1310,12 +1310,12 @@
|
|
|
1310
1310
|
},
|
|
1311
1311
|
'extract-rules': {
|
|
1312
1312
|
title: 'extract-rules.md',
|
|
1313
|
-
desc: 'Scan Claude artifacts and extract structured rules into .claude/rules/<div style="margin-top: 12px;"><strong>Parameters</strong><table style="width: 100%; margin-top: 6px; border-collapse: collapse; font-size: 0.9em; text-align: left;"><tr style="text-align: left; border-bottom: 1px solid var(--border);"><th style="padding: 4px
|
|
1313
|
+
desc: 'Scan Claude artifacts and extract structured rules into .claude/rules/<div style="margin-top: 12px;"><strong>Parameters</strong><table style="width: 100%; margin-top: 6px; border-collapse: collapse; font-size: 0.9em; text-align: left;"><tr style="text-align: left; border-bottom: 1px solid var(--border);"><th style="padding: 4px 12px 4px 0; width: 1%; white-space: nowrap;">Name</th><th style="padding: 4px 12px 4px 0; width: 1%; white-space: nowrap;">Type</th><th style="padding: 4px 12px 4px 0; width: 1%; white-space: nowrap;">Required</th><th style="padding: 4px 8px 4px 0;">Description</th></tr><tr style="border-bottom: 1px solid var(--border);"><td style="padding: 4px 12px 4px 0; vertical-align: top; white-space: nowrap;"><code>select</code></td><td style="padding: 4px 12px 4px 0; vertical-align: top; white-space: nowrap;"><code>string</code></td><td style="padding: 4px 12px 4px 0; vertical-align: top;">optional</td><td style="padding: 4px 8px 4px 0; vertical-align: top;">Write only specific rules by number: "1,3,5". Default: all.</td></tr><tr style="border-bottom: 1px solid var(--border);"><td style="padding: 4px 12px 4px 0; vertical-align: top; white-space: nowrap;"><code>keep-sources</code></td><td style="padding: 4px 12px 4px 0; vertical-align: top; white-space: nowrap;"><code>boolean</code></td><td style="padding: 4px 12px 4px 0; vertical-align: top;">optional</td><td style="padding: 4px 8px 4px 0; vertical-align: top;">Write rules but skip source cleanup (Step 8)</td></tr></table></div><div style="margin-top: 12px;"><strong>Responses</strong><table style="width: 100%; margin-top: 6px; border-collapse: collapse; font-size: 0.9em; text-align: left;"><tr style="text-align: left; border-bottom: 1px solid var(--border);"><th style="padding: 4px 8px 4px 0;">Status</th><th style="padding: 4px 8px 4px 0;">Description</th></tr><tr style="border-bottom: 1px solid var(--border);"><td style="padding: 4px 8px 4px 0; vertical-align: top; white-space: nowrap;"><code>success</code></td><td style="padding: 4px 8px 4px 0; vertical-align: top;">Rules extracted, written, and sources cleaned up.</td></tr><tr style="border-bottom: 1px solid var(--border);"><td style="padding: 4px 8px 4px 0; vertical-align: top; white-space: nowrap;"><code>no-rules</code></td><td style="padding: 4px 8px 4px 0; vertical-align: top;">No extractable rules found in scanned sources.</td></tr></table></div><div style="margin-top: 12px;"><strong>Side Effects</strong><div style="margin-top: 4px; font-size: 0.9em;">Creates .claude/rules/ files and removes extracted content from source files</div></div><div style="margin-top: 12px;"><strong>Examples</strong><div style="margin-top: 6px; background: var(--bg-elevated); border-radius: 6px; padding: 8px 12px; font-family: monospace; font-size: 0.85em;"><div><code>/extract-rules</code> <span style="opacity: 0.6;">— Scan, propose, prompt for approval, write, and clean up</span></div><div><code>/extract-rules --keep-sources</code> <span style="opacity: 0.6;">— Write rules without modifying source files</span></div><div><code>/extract-rules --select 1,3</code> <span style="opacity: 0.6;">— Write only rules #1 and #3</span></div></div></div>',
|
|
1314
1314
|
trigger: '/extract-rules'
|
|
1315
1315
|
},
|
|
1316
1316
|
'gls': {
|
|
1317
1317
|
title: 'gls.md',
|
|
1318
|
-
desc: 'Get the latest screenshot(s) and display them.<div style="margin-top: 12px;"><strong>Parameters</strong><table style="width: 100%; margin-top: 6px; border-collapse: collapse; font-size: 0.9em; text-align: left;"><tr style="text-align: left; border-bottom: 1px solid var(--border);"><th style="padding: 4px
|
|
1318
|
+
desc: 'Get the latest screenshot(s) and display them.<div style="margin-top: 12px;"><strong>Parameters</strong><table style="width: 100%; margin-top: 6px; border-collapse: collapse; font-size: 0.9em; text-align: left;"><tr style="text-align: left; border-bottom: 1px solid var(--border);"><th style="padding: 4px 12px 4px 0; width: 1%; white-space: nowrap;">Name</th><th style="padding: 4px 12px 4px 0; width: 1%; white-space: nowrap;">Type</th><th style="padding: 4px 12px 4px 0; width: 1%; white-space: nowrap;">Required</th><th style="padding: 4px 8px 4px 0;">Description</th></tr><tr style="border-bottom: 1px solid var(--border);"><td style="padding: 4px 12px 4px 0; vertical-align: top; white-space: nowrap;"><code>count</code></td><td style="padding: 4px 12px 4px 0; vertical-align: top; white-space: nowrap;"><code>integer</code></td><td style="padding: 4px 12px 4px 0; vertical-align: top;">optional</td><td style="padding: 4px 8px 4px 0; vertical-align: top;">Number of screenshots to display. Use /gls-N syntax. Default: 1. Min: 1.</td></tr><tr style="border-bottom: 1px solid var(--border);"><td style="padding: 4px 12px 4px 0; vertical-align: top; white-space: nowrap;"><code>path</code></td><td style="padding: 4px 12px 4px 0; vertical-align: top; white-space: nowrap;"><code>string</code></td><td style="padding: 4px 12px 4px 0; vertical-align: top;">optional</td><td style="padding: 4px 8px 4px 0; vertical-align: top;">Screenshot directory path. Saved for future use. Auto-detected if omitted.</td></tr></table></div><div style="margin-top: 12px;"><strong>Responses</strong><table style="width: 100%; margin-top: 6px; border-collapse: collapse; font-size: 0.9em; text-align: left;"><tr style="text-align: left; border-bottom: 1px solid var(--border);"><th style="padding: 4px 8px 4px 0;">Status</th><th style="padding: 4px 8px 4px 0;">Description</th></tr><tr style="border-bottom: 1px solid var(--border);"><td style="padding: 4px 8px 4px 0; vertical-align: top; white-space: nowrap;"><code>success</code></td><td style="padding: 4px 8px 4px 0; vertical-align: top;">Displays requested screenshot(s) from newest to oldest.</td></tr><tr style="border-bottom: 1px solid var(--border);"><td style="padding: 4px 8px 4px 0; vertical-align: top; white-space: nowrap;"><code>no-screenshots</code></td><td style="padding: 4px 8px 4px 0; vertical-align: top;">Directory exists but contains no image files.</td></tr><tr style="border-bottom: 1px solid var(--border);"><td style="padding: 4px 8px 4px 0; vertical-align: top; white-space: nowrap;"><code>no-directory</code></td><td style="padding: 4px 8px 4px 0; vertical-align: top;">Unable to detect screenshot directory — prompts for path.</td></tr></table></div><div style="margin-top: 12px;"><strong>Side Effects</strong><div style="margin-top: 4px; font-size: 0.9em;">Saves detected screenshot path to .claude/cca.config.json on first run</div></div><div style="margin-top: 12px;"><strong>Examples</strong><div style="margin-top: 6px; background: var(--bg-elevated); border-radius: 6px; padding: 8px 12px; font-family: monospace; font-size: 0.85em;"><div><code>/gls</code> <span style="opacity: 0.6;">— Display the most recent screenshot</span></div><div><code>/gls-3</code> <span style="opacity: 0.6;">— Display the 3 most recent screenshots</span></div><div><code>/gls /path/to/dir</code> <span style="opacity: 0.6;">— Use a specific screenshot directory</span></div></div></div>',
|
|
1319
1319
|
trigger: '/gls'
|
|
1320
1320
|
},
|
|
1321
1321
|
'publish': {
|
|
@@ -1325,7 +1325,7 @@
|
|
|
1325
1325
|
},
|
|
1326
1326
|
'recover-context': {
|
|
1327
1327
|
title: 'recover-context.md',
|
|
1328
|
-
desc: 'Recovers conversation context from the session transcript after compaction.<div style="margin-top: 12px;"><strong>Parameters</strong><table style="width: 100%; margin-top: 6px; border-collapse: collapse; font-size: 0.9em; text-align: left;"><tr style="text-align: left; border-bottom: 1px solid var(--border);"><th style="padding: 4px
|
|
1328
|
+
desc: 'Recovers conversation context from the session transcript after compaction.<div style="margin-top: 12px;"><strong>Parameters</strong><table style="width: 100%; margin-top: 6px; border-collapse: collapse; font-size: 0.9em; text-align: left;"><tr style="text-align: left; border-bottom: 1px solid var(--border);"><th style="padding: 4px 12px 4px 0; width: 1%; white-space: nowrap;">Name</th><th style="padding: 4px 12px 4px 0; width: 1%; white-space: nowrap;">Type</th><th style="padding: 4px 12px 4px 0; width: 1%; white-space: nowrap;">Required</th><th style="padding: 4px 8px 4px 0;">Description</th></tr><tr style="border-bottom: 1px solid var(--border);"><td style="padding: 4px 12px 4px 0; vertical-align: top; white-space: nowrap;"><code>minutes</code></td><td style="padding: 4px 12px 4px 0; vertical-align: top; white-space: nowrap;"><code>integer</code></td><td style="padding: 4px 12px 4px 0; vertical-align: top;">required</td><td style="padding: 4px 8px 4px 0; vertical-align: top;">How far back to recover, in minutes. Leading dash optional. Min: 1.</td></tr><tr style="border-bottom: 1px solid var(--border);"><td style="padding: 4px 12px 4px 0; vertical-align: top; white-space: nowrap;"><code>--show</code></td><td style="padding: 4px 12px 4px 0; vertical-align: top; white-space: nowrap;"><code>flag</code></td><td style="padding: 4px 12px 4px 0; vertical-align: top;">optional</td><td style="padding: 4px 8px 4px 0; vertical-align: top;">Opens the extracted transcript in your default editor.</td></tr></table></div><div style="margin-top: 12px;"><strong>Responses</strong><table style="width: 100%; margin-top: 6px; border-collapse: collapse; font-size: 0.9em; text-align: left;"><tr style="text-align: left; border-bottom: 1px solid var(--border);"><th style="padding: 4px 8px 4px 0;">Status</th><th style="padding: 4px 8px 4px 0;">Description</th></tr><tr style="border-bottom: 1px solid var(--border);"><td style="padding: 4px 8px 4px 0; vertical-align: top; white-space: nowrap;"><code>success</code></td><td style="padding: 4px 8px 4px 0; vertical-align: top;">~{tokens} tokens recovered ({N} messages across {sessions} session(s), last {minutes} min).</td></tr><tr style="border-bottom: 1px solid var(--border);"><td style="padding: 4px 8px 4px 0; vertical-align: top; white-space: nowrap;"><code>no-transcript</code></td><td style="padding: 4px 8px 4px 0; vertical-align: top;">No transcript files found.</td></tr><tr style="border-bottom: 1px solid var(--border);"><td style="padding: 4px 8px 4px 0; vertical-align: top; white-space: nowrap;"><code>no-messages</code></td><td style="padding: 4px 8px 4px 0; vertical-align: top;">No messages found in the requested time range.</td></tr></table></div><div style="margin-top: 12px;"><strong>Side Effects</strong><div style="margin-top: 4px; font-size: 0.9em;">Reads .jsonl transcripts from ~/.claude/projects/, writes temp file</div></div><div style="margin-top: 12px;"><strong>Examples</strong><div style="margin-top: 6px; background: var(--bg-elevated); border-radius: 6px; padding: 8px 12px; font-family: monospace; font-size: 0.85em;"><div><code>/recover-context -60</code> <span style="opacity: 0.6;">— Last 60 minutes of conversation</span></div><div><code>/recover-context 120</code> <span style="opacity: 0.6;">— Last 2 hours (dash optional)</span></div><div><code>/recover-context -60 --show</code> <span style="opacity: 0.6;">— Last 60 min + open transcript file</span></div></div></div>',
|
|
1329
1329
|
trigger: '/recover-context'
|
|
1330
1330
|
},
|
|
1331
1331
|
'show-docs': {
|
|
@@ -1335,7 +1335,7 @@
|
|
|
1335
1335
|
},
|
|
1336
1336
|
'test': {
|
|
1337
1337
|
title: 'test.md',
|
|
1338
|
-
desc: 'Runs your test suite. Auto-detects Jest, Vitest, Pytest, Go, RSpec, or falls back to npm test.<div style="margin-top: 12px;"><strong>Parameters</strong><table style="width: 100%; margin-top: 6px; border-collapse: collapse; font-size: 0.9em; text-align: left;"><tr style="text-align: left; border-bottom: 1px solid var(--border);"><th style="padding: 4px
|
|
1338
|
+
desc: 'Runs your test suite. Auto-detects Jest, Vitest, Pytest, Go, RSpec, or falls back to npm test.<div style="margin-top: 12px;"><strong>Parameters</strong><table style="width: 100%; margin-top: 6px; border-collapse: collapse; font-size: 0.9em; text-align: left;"><tr style="text-align: left; border-bottom: 1px solid var(--border);"><th style="padding: 4px 12px 4px 0; width: 1%; white-space: nowrap;">Name</th><th style="padding: 4px 12px 4px 0; width: 1%; white-space: nowrap;">Type</th><th style="padding: 4px 12px 4px 0; width: 1%; white-space: nowrap;">Required</th><th style="padding: 4px 8px 4px 0;">Description</th></tr><tr style="border-bottom: 1px solid var(--border);"><td style="padding: 4px 12px 4px 0; vertical-align: top; white-space: nowrap;"><code>scope</code></td><td style="padding: 4px 12px 4px 0; vertical-align: top; white-space: nowrap;"><code>string</code></td><td style="padding: 4px 12px 4px 0; vertical-align: top;">optional</td><td style="padding: 4px 8px 4px 0; vertical-align: top;">File, directory, or pattern to limit test run. Runs full suite if omitted.</td></tr></table></div><div style="margin-top: 12px;"><strong>Responses</strong><table style="width: 100%; margin-top: 6px; border-collapse: collapse; font-size: 0.9em; text-align: left;"><tr style="text-align: left; border-bottom: 1px solid var(--border);"><th style="padding: 4px 8px 4px 0;">Status</th><th style="padding: 4px 8px 4px 0;">Description</th></tr><tr style="border-bottom: 1px solid var(--border);"><td style="padding: 4px 8px 4px 0; vertical-align: top; white-space: nowrap;"><code>success</code></td><td style="padding: 4px 8px 4px 0; vertical-align: top;">Test suite passes.</td></tr><tr style="border-bottom: 1px solid var(--border);"><td style="padding: 4px 8px 4px 0; vertical-align: top; white-space: nowrap;"><code>failure</code></td><td style="padding: 4px 8px 4px 0; vertical-align: top;">Test suite fails with non-zero exit code.</td></tr></table></div><div style="margin-top: 12px;"><strong>Side Effects</strong><div style="margin-top: 4px; font-size: 0.9em;">Executes detected test runner command</div></div><div style="margin-top: 12px;"><strong>Examples</strong><div style="margin-top: 6px; background: var(--bg-elevated); border-radius: 6px; padding: 8px 12px; font-family: monospace; font-size: 0.85em;"><div><code>/test</code> <span style="opacity: 0.6;">— Run full test suite</span></div><div><code>/test src/auth</code> <span style="opacity: 0.6;">— Run tests in src/auth directory</span></div><div><code>/test --coverage</code> <span style="opacity: 0.6;">— Run tests with coverage report</span></div></div></div>',
|
|
1339
1339
|
trigger: '/test'
|
|
1340
1340
|
},
|
|
1341
1341
|
'validate-cca-install': {
|
|
@@ -1579,7 +1579,7 @@ CRITICAL: A plausible-looking cause from code reading is NOT confirmed evidence.
|
|
|
1579
1579
|
|
|
1580
1580
|
> Run \`/autoconfig\` to populate this based on your project.`
|
|
1581
1581
|
},
|
|
1582
|
-
|
|
1582
|
+
'autoconfig-update': {
|
|
1583
1583
|
filename: 'autoconfig-update.md',
|
|
1584
1584
|
content: `<!-- @applied
|
|
1585
1585
|
-->
|
|
@@ -133,12 +133,12 @@ function buildSwaggerHtml(meta) {
|
|
|
133
133
|
if (meta.params.length > 0) {
|
|
134
134
|
let table = '<div style="margin-top: 12px;"><strong>Parameters</strong>';
|
|
135
135
|
table += '<table style="width: 100%; margin-top: 6px; border-collapse: collapse; font-size: 0.9em; text-align: left;">';
|
|
136
|
-
table += '<tr style="text-align: left; border-bottom: 1px solid var(--border);"><th style="padding: 4px
|
|
136
|
+
table += '<tr style="text-align: left; border-bottom: 1px solid var(--border);"><th style="padding: 4px 12px 4px 0; width: 1%; white-space: nowrap;">Name</th><th style="padding: 4px 12px 4px 0; width: 1%; white-space: nowrap;">Type</th><th style="padding: 4px 12px 4px 0; width: 1%; white-space: nowrap;">Required</th><th style="padding: 4px 8px 4px 0;">Description</th></tr>';
|
|
137
137
|
for (const p of meta.params) {
|
|
138
138
|
table += `<tr style="border-bottom: 1px solid var(--border);">`;
|
|
139
|
-
table += `<td style="padding: 4px
|
|
140
|
-
table += `<td style="padding: 4px
|
|
141
|
-
table += `<td style="padding: 4px
|
|
139
|
+
table += `<td style="padding: 4px 12px 4px 0; vertical-align: top; white-space: nowrap;"><code>${p.name}</code></td>`;
|
|
140
|
+
table += `<td style="padding: 4px 12px 4px 0; vertical-align: top; white-space: nowrap;"><code>${p.type}</code></td>`;
|
|
141
|
+
table += `<td style="padding: 4px 12px 4px 0; vertical-align: top;">${p.required}</td>`;
|
|
142
142
|
table += `<td style="padding: 4px 8px 4px 0; vertical-align: top;">${p.desc}</td>`;
|
|
143
143
|
table += `</tr>`;
|
|
144
144
|
}
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## v1.0.179
|
|
4
|
+
- fix: add settings.local.json to AUTOCONFIG_FILES, tighten docs table columns
|
|
5
|
+
|
|
6
|
+
## v1.0.178
|
|
7
|
+
- fix: move insideClaude check before file copying
|
|
8
|
+
|
|
3
9
|
## v1.0.177
|
|
4
10
|
- feat: add pre-install diagnostic logging and fix AUTOCONFIG_FILES
|
|
5
11
|
|
|
@@ -141,9 +147,3 @@
|
|
|
141
147
|
## v1.0.130
|
|
142
148
|
- fix: block interactive install from inside Claude Code sessions
|
|
143
149
|
|
|
144
|
-
## v1.0.129
|
|
145
|
-
- fix: tighten /recover-context confirmation to single line
|
|
146
|
-
|
|
147
|
-
## v1.0.128
|
|
148
|
-
- fix: show estimated tokens instead of bytes in /recover-context
|
|
149
|
-
|
package/bin/cli.js
CHANGED
|
@@ -27,7 +27,7 @@ const WINDOWS_RESERVED = ['CON', 'PRN', 'AUX', 'NUL', 'COM1', 'COM2', 'COM3', 'C
|
|
|
27
27
|
'LPT6', 'LPT7', 'LPT8', 'LPT9'];
|
|
28
28
|
|
|
29
29
|
// Files/folders installed by autoconfig - don't backup these
|
|
30
|
-
const AUTOCONFIG_FILES = ['commands', 'docs', 'agents', 'migration', 'hooks', 'updates', 'scripts', 'rules', 'feedback', 'settings.json', '.mcp.json', '.autoconfig-version'];
|
|
30
|
+
const AUTOCONFIG_FILES = ['commands', 'docs', 'agents', 'migration', 'hooks', 'updates', 'scripts', 'rules', 'feedback', 'settings.json', 'settings.local.json', '.mcp.json', '.autoconfig-version'];
|
|
31
31
|
|
|
32
32
|
function isReservedName(name) {
|
|
33
33
|
const baseName = name.replace(/\.[^.]*$/, '').toUpperCase();
|
|
@@ -160,6 +160,17 @@ const insideClaude = process.env.CLAUDECODE === '1';
|
|
|
160
160
|
console.log('\x1b[36m%s\x1b[0m', '🚀 Claude Code Autoconfig');
|
|
161
161
|
console.log();
|
|
162
162
|
|
|
163
|
+
// Block early if running inside Claude Code (unless --bootstrap)
|
|
164
|
+
if (insideClaude && !process.argv.includes('--bootstrap')) {
|
|
165
|
+
console.log('\x1b[31m%s\x1b[0m', '● The tool needs to be run from a regular terminal, not from within Claude Code.');
|
|
166
|
+
console.log();
|
|
167
|
+
console.log(' Open a separate terminal window and run:');
|
|
168
|
+
console.log();
|
|
169
|
+
console.log(' \x1b[36mnpx claude-code-autoconfig@latest\x1b[0m');
|
|
170
|
+
console.log();
|
|
171
|
+
process.exit(0);
|
|
172
|
+
}
|
|
173
|
+
|
|
163
174
|
// Step 1: Check if Claude Code is installed
|
|
164
175
|
function isClaudeInstalled() {
|
|
165
176
|
try {
|
|
@@ -659,14 +670,7 @@ const launchCommand = isUpgrade ? '/autoconfig-update' : '/autoconfig';
|
|
|
659
670
|
|
|
660
671
|
// --bootstrap: copy files only, exit silently (used by /autoconfig inside Claude)
|
|
661
672
|
const bootstrapMode = process.argv.includes('--bootstrap');
|
|
662
|
-
if (bootstrapMode
|
|
663
|
-
if (!bootstrapMode) {
|
|
664
|
-
// insideClaude without --bootstrap: block with clear message
|
|
665
|
-
console.log();
|
|
666
|
-
console.log('\x1b[31m%s\x1b[0m', `❌ npx claude-code-autoconfig must be run from a regular terminal.`);
|
|
667
|
-
console.log('\x1b[32m%s\x1b[0m', `✅ Open a terminal outside Claude Code and run 👉 npx claude-code-autoconfig@latest`);
|
|
668
|
-
console.log();
|
|
669
|
-
}
|
|
673
|
+
if (bootstrapMode) {
|
|
670
674
|
process.exit(0);
|
|
671
675
|
}
|
|
672
676
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "claude-code-autoconfig",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.179",
|
|
4
4
|
"description": "Intelligent, self-configuring setup for Claude Code. One command analyzes your project, configures Claude, and shows you what it did.",
|
|
5
5
|
"author": "ADAC 1001 <info@adac1001.com>",
|
|
6
6
|
"license": "MIT",
|