| 555 | // without further changes here. |
| 556 | const SKILL_COPY_EXCLUDES = new Set([ |
| 557 | 'node_modules', |
| 558 | '.git', |
| 559 | '.DS_Store', |
| 560 | 'Thumbs.db', |
| 561 | // 'agents' is excluded because we generate agents/openai.yaml ourselves; |
| 562 | // any hand-authored sibling under agents/ would be clobbered or would |
| 563 | // race the generator. If a skill needs a checked-in agents/ subtree, |
| 564 | // revisit this exclusion. |
| 565 | 'agents', |
| 566 | ]); |
| 567 | |
| 568 | function copySkillTree(sourceDir, targetDir) { |
| 569 | if (DRY_RUN) { |
| 570 | console.log(` [dry-run] Would copy skill tree: ${sourceDir} -> ${targetDir}`); |
| 571 | return; |
| 572 | } |
| 573 | // fs.cpSync requires Node 16.7+. The project documents Node 18+ as the |