OverviewFilesCommitsIssuesDocsReleasesPeers

holepunchto-kb commits / c1e4915

process_repos: preserve enriched skills.md on regeneration
Phase-1A only writes the placeholder API section; re-running it over the full org would clobber the 137 Phase-1B-enriched skills.md (real API docs). Guard the write: skip any existing skills.md that lacks the placeholder marker. Makes a full repo_map refresh non-destructive. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
c1e49156612ff545c57f6d7acb9ea56c21a64366
by plankatron <fleeky@gmail.com> · 2026-06-18T01:44:45.000Z

Changed files (1) +13 -5

process_repos.js +13 -5
……@@ -145,11 +145,19 @@ for (const repo of repos) {
145145
146146 techStack[repo.name].runtime = detectedRuntime;
147147
148 // Create skills.md
149 const skillsContent = generateSkillsMarkdown(repo, packageJson, readme, repoMetadata);
150 fs.writeFileSync(path.join(repoDir, 'skills.md'), skillsContent);
151
152 console.log(` ✓ Created skills.md`);
148 // Create skills.md — but NEVER overwrite a Phase-1B-enriched file. This
149 // Phase-1A generator only writes the placeholder API section; an enriched
150 // skills.md (no placeholder marker) holds real API docs we must preserve.
151 const skillsPath = path.join(repoDir, 'skills.md');
152 const enriched = fs.existsSync(skillsPath) &&
153 !fs.readFileSync(skillsPath, 'utf8').includes('To be enriched in Phase 1B');
154 if (enriched) {
155 console.log(` ↩ Preserved enriched skills.md`);
156 } else {
157 const skillsContent = generateSkillsMarkdown(repo, packageJson, readme, repoMetadata);
158 fs.writeFileSync(skillsPath, skillsContent);
159 console.log(` ✓ Created skills.md`);
160 }
153161
154162 // Rate limiting: sleep briefly every 10 repos
155163 if (processedCount % 10 === 0) {