claude-code-autoconfig 1.0.4 → 1.0.6

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.
@@ -4,6 +4,38 @@
4
4
 
5
5
  Analyze this project and configure Claude Code with real context.
6
6
 
7
+ ## Step 0: Migrate Existing Feedback (if CLAUDE.md exists)
8
+
9
+ If a CLAUDE.md already exists, read it and look for **team feedback** that should be preserved:
10
+
11
+ **Feedback patterns to look for:**
12
+ - Corrections: "Don't use X", "Always use Y instead", "Never do Z"
13
+ - Preferences: "We prefer...", "Team convention is...", "Boris's setup uses..."
14
+ - Warnings: "Be careful with...", "Watch out for...", "This is deprecated"
15
+ - Custom guidance: Anything that sounds like learned behavior or team-specific knowledge
16
+ - Notes about past mistakes or things Claude got wrong
17
+
18
+ **NOT feedback (standard config - will be regenerated):**
19
+ - Project name and description
20
+ - Tech stack listing
21
+ - Build/test/run commands
22
+ - File structure descriptions
23
+ - Standard conventions from frameworks
24
+
25
+ **If feedback is found:**
26
+ 1. Extract the feedback sections
27
+ 2. Append them to `.claude/feedback/FEEDBACK.md` with a header:
28
+ ```markdown
29
+ ## [Date]: Migrated from CLAUDE.md
30
+
31
+ The following feedback was preserved from the previous CLAUDE.md during autoconfig:
32
+
33
+ [extracted feedback here]
34
+ ```
35
+ 3. Notify the user: "Migrated team feedback from CLAUDE.md to .claude/feedback/FEEDBACK.md"
36
+
37
+ **If no feedback found:** Proceed silently.
38
+
7
39
  ## Step 1: Detect Environment
8
40
 
9
41
  **Operating System:**
@@ -810,83 +810,9 @@
810
810
  transform: translateY(-1px);
811
811
  }
812
812
 
813
- /* Migration modal content */
814
- .migration-content {
815
- display: flex;
816
- gap: 20px;
817
- }
818
-
819
- .migration-column {
820
- flex: 1;
821
- }
822
-
823
- .migration-column h4 {
824
- font-size: 14px;
825
- color: var(--accent-orange);
826
- margin-bottom: 12px;
827
- text-transform: uppercase;
828
- letter-spacing: 1px;
829
- }
830
-
831
- .migration-column.new h4 {
832
- color: var(--accent-green);
833
- }
834
-
835
- .migration-list {
836
- list-style: none;
837
- font-family: 'SF Mono', 'Fira Code', monospace;
838
- font-size: 13px;
839
- }
840
-
841
- .migration-list li {
842
- padding: 6px 0;
843
- color: var(--text-secondary);
844
- border-bottom: 1px solid var(--bg-elevated);
845
- }
846
-
847
- .migration-list li:last-child {
848
- border-bottom: none;
849
- }
850
-
851
- .migration-arrow {
852
- color: var(--text-dim);
853
- font-size: 24px;
854
- display: flex;
855
- align-items: center;
856
- padding: 0 10px;
857
- }
858
- </style>
813
+ </style>
859
814
  </head>
860
815
  <body>
861
- <!-- Migration Modal -->
862
- <div class="modal-overlay" id="migrationModal">
863
- <div class="modal-content" style="max-width: 700px;">
864
- <div class="modal-header">
865
- <span class="modal-title">📦 Migration Summary</span>
866
- <button class="modal-close" id="migrationModalClose">&times;</button>
867
- </div>
868
- <div class="modal-body">
869
- <p style="color: var(--text-secondary); margin-bottom: 20px;">
870
- Your previous configuration was backed up before installing the new autoconfig files.
871
- </p>
872
- <div class="migration-content">
873
- <div class="migration-column">
874
- <h4>⬅️ Backed Up</h4>
875
- <ul class="migration-list" id="backedUpList"></ul>
876
- </div>
877
- <div class="migration-arrow">→</div>
878
- <div class="migration-column new">
879
- <h4>➡️ New Files</h4>
880
- <ul class="migration-list" id="newFilesList"></ul>
881
- </div>
882
- </div>
883
- <p style="color: var(--text-dim); margin-top: 20px; font-size: 13px;">
884
- Backups are stored in <code style="background: var(--bg-elevated); padding: 2px 6px; border-radius: 4px;">.claude/migration/</code>
885
- </p>
886
- </div>
887
- </div>
888
- </div>
889
-
890
816
  <!-- File Preview Modal -->
891
817
  <div class="modal-overlay" id="fileModal">
892
818
  <div class="modal-content">
@@ -912,6 +838,9 @@
912
838
  <div class="migration-link" id="migrationLink" style="display: none;">
913
839
  <a href="#" id="showMigration">📦 View migrated files</a>
914
840
  </div>
841
+ <div class="migration-link" id="backToInstallLink" style="display: none;">
842
+ <a href="#" id="backToInstall">Back to install view</a>
843
+ </div>
915
844
  <div class="slide-content">
916
845
  <div class="tree-panel">
917
846
  <div class="tree-side">
@@ -1008,6 +937,29 @@
1008
937
  </div>
1009
938
  </div>
1010
939
  </div>
940
+
941
+ <!-- Migration Tree Panel (hidden by default) -->
942
+ <div class="tree-panel" id="migrationTreePanel" style="display: none;">
943
+ <div class="tree-side">
944
+ <div class="tree-item folder-row" data-folder="migration-root">
945
+ <span class="tree-chevron">›</span>
946
+ <span class="tree-folder-icon">📁</span>
947
+ <span class="folder">.claude/migration/</span>
948
+ </div>
949
+ <div class="tree-item indent-1 folder-row" data-folder="backup-folder">
950
+ <span class="tree-chevron">›</span>
951
+ <span class="tree-folder-icon">📦</span>
952
+ <span class="folder" id="backupFolderName">backup/</span>
953
+ </div>
954
+ <div id="backedUpTreeItems"></div>
955
+ </div>
956
+ <div class="info-side">
957
+ <div class="info-panel" id="migrationInfoPanel">
958
+ <div class="info-panel-title">Migration Backup</div>
959
+ <div class="info-panel-desc">Your previous configuration files were backed up here before the new autoconfig was installed.<br><br>You can restore any file by copying it back from this folder.</div>
960
+ </div>
961
+ </div>
962
+ </div>
1011
963
  </div>
1012
964
  </div>
1013
965
 
@@ -1836,74 +1788,70 @@ Use \`test_\` prefix for test databases, not \`dev_\`.`
1836
1788
  });
1837
1789
  });
1838
1790
 
1839
- // Migration detection and modal
1840
- const migrationModal = document.getElementById('migrationModal');
1841
- const migrationModalClose = document.getElementById('migrationModalClose');
1791
+ // Migration detection and toggle view
1842
1792
  const migrationLink = document.getElementById('migrationLink');
1793
+ const backToInstallLink = document.getElementById('backToInstallLink');
1843
1794
  const showMigrationBtn = document.getElementById('showMigration');
1844
- const backedUpList = document.getElementById('backedUpList');
1845
- const newFilesList = document.getElementById('newFilesList');
1846
-
1847
- // New files that autoconfig installs
1848
- const newAutoconfigFiles = [
1849
- 'commands/autoconfig.md',
1850
- 'commands/commit-and-push.md',
1851
- 'commands/enable-retro.md',
1852
- 'commands/show-guide.md',
1853
- 'commands/sync-claude-md.md',
1854
- 'commands/test.md',
1855
- 'feedback/FEEDBACK.md',
1856
- 'guide/autoconfig.guide.html',
1857
- 'settings.json',
1858
- '.mcp.json'
1859
- ];
1795
+ const backToInstallBtn = document.getElementById('backToInstall');
1796
+ const mainTreePanel = document.querySelector('.slide[data-slide="0"] .tree-panel:not(#migrationTreePanel)');
1797
+ const migrationTreePanel = document.getElementById('migrationTreePanel');
1798
+ const backupFolderName = document.getElementById('backupFolderName');
1799
+ const backedUpTreeItems = document.getElementById('backedUpTreeItems');
1800
+
1801
+ let migrationData = null;
1860
1802
 
1861
1803
  // Check for migration
1862
1804
  async function checkMigration() {
1863
1805
  try {
1864
- // Try to fetch migration/latest.json relative to guide location
1865
1806
  const guidePath = window.location.pathname;
1866
1807
  const claudeDir = guidePath.substring(0, guidePath.lastIndexOf('/guide/'));
1867
1808
  const migrationPath = claudeDir + '/migration/latest.json';
1868
1809
 
1869
1810
  const response = await fetch(migrationPath);
1870
1811
  if (response.ok) {
1871
- const migration = await response.json();
1872
-
1873
- // Show migration link
1812
+ migrationData = await response.json();
1874
1813
  migrationLink.style.display = 'block';
1875
1814
 
1876
- // Populate backed up files
1877
- backedUpList.innerHTML = migration.backedUpFiles
1878
- .map(f => `<li>${f}</li>`)
1879
- .join('');
1815
+ // Set backup folder name
1816
+ backupFolderName.textContent = migrationData.timestamp + '/';
1880
1817
 
1881
- // Populate new files
1882
- newFilesList.innerHTML = newAutoconfigFiles
1883
- .map(f => `<li>${f}</li>`)
1884
- .join('');
1818
+ // Build tree items for backed up files
1819
+ const itemsHtml = migrationData.backedUpFiles.map(f => `
1820
+ <div class="tree-item indent-2">
1821
+ <span class="tree-spacer"></span>
1822
+ <span class="tree-file-icon">📄</span>
1823
+ <span class="file">${f}</span>
1824
+ </div>
1825
+ `).join('');
1826
+ backedUpTreeItems.innerHTML = itemsHtml;
1885
1827
  }
1886
1828
  } catch (e) {
1887
- // No migration or can't read file - that's fine
1829
+ // No migration - that's fine
1888
1830
  }
1889
1831
  }
1890
1832
 
1891
- function openMigrationModal() {
1892
- migrationModal.classList.add('visible');
1833
+ function showMigrationView() {
1834
+ mainTreePanel.style.display = 'none';
1835
+ migrationTreePanel.style.display = 'flex';
1836
+ migrationLink.style.display = 'none';
1837
+ backToInstallLink.style.display = 'block';
1893
1838
  }
1894
1839
 
1895
- function closeMigrationModal() {
1896
- migrationModal.classList.remove('visible');
1840
+ function showInstallView() {
1841
+ migrationTreePanel.style.display = 'none';
1842
+ mainTreePanel.style.display = 'flex';
1843
+ backToInstallLink.style.display = 'none';
1844
+ migrationLink.style.display = 'block';
1897
1845
  }
1898
1846
 
1899
1847
  showMigrationBtn?.addEventListener('click', (e) => {
1900
1848
  e.preventDefault();
1901
- openMigrationModal();
1849
+ showMigrationView();
1902
1850
  });
1903
1851
 
1904
- migrationModalClose?.addEventListener('click', closeMigrationModal);
1905
- migrationModal?.addEventListener('click', (e) => {
1906
- if (e.target === migrationModal) closeMigrationModal();
1852
+ backToInstallBtn?.addEventListener('click', (e) => {
1853
+ e.preventDefault();
1854
+ showInstallView();
1907
1855
  });
1908
1856
 
1909
1857
  // Check for migration on load
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-code-autoconfig",
3
- "version": "1.0.4",
3
+ "version": "1.0.6",
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",