From 44ae403db62dc4d1f16355718d7127e3b1e4a868 Mon Sep 17 00:00:00 2001 From: Alex Verkhovsky Date: Fri, 6 Mar 2026 05:10:11 -0700 Subject: [PATCH] Migrate Auggie installer to native skills --- test/test-installation-components.js | 56 ++++++++++++++++++- .../installers/lib/ide/platform-codes.yaml | 5 +- .../docs/native-skills-migration-checklist.md | 14 ++--- 3 files changed, 65 insertions(+), 10 deletions(-) diff --git a/test/test-installation-components.js b/test/test-installation-components.js index c78959265..8397b016e 100644 --- a/test/test-installation-components.js +++ b/test/test-installation-components.js @@ -322,9 +322,61 @@ async function runTests() { console.log(''); // ============================================================ - // Test 7: QA Agent Compilation + // Test 7: Auggie Native Skills Install // ============================================================ - console.log(`${colors.yellow}Test Suite 7: QA Agent Compilation${colors.reset}\n`); + console.log(`${colors.yellow}Test Suite 7: Auggie Native Skills${colors.reset}\n`); + + try { + clearCache(); + const platformCodes = await loadPlatformCodes(); + const auggieInstaller = platformCodes.platforms.auggie?.installer; + + assert(auggieInstaller?.target_dir === '.augment/skills', 'Auggie target_dir uses native skills path'); + + assert(auggieInstaller?.skill_format === true, 'Auggie installer enables native skill output'); + + assert( + Array.isArray(auggieInstaller?.legacy_targets) && auggieInstaller.legacy_targets.includes('.augment/commands'), + 'Auggie installer cleans legacy command output', + ); + + assert( + auggieInstaller?.ancestor_conflict_check !== true, + 'Auggie installer does not enable ancestor conflict checks without verified inheritance', + ); + + const tempProjectDir = await fs.mkdtemp(path.join(os.tmpdir(), 'bmad-auggie-test-')); + const installedBmadDir = await findInstalledBmadDir(projectRoot); + const legacyDir = path.join(tempProjectDir, '.augment', 'commands', 'bmad-legacy-dir'); + await fs.ensureDir(legacyDir); + await fs.writeFile(path.join(tempProjectDir, '.augment', 'commands', 'bmad-legacy.md'), 'legacy\n'); + await fs.writeFile(path.join(legacyDir, 'SKILL.md'), 'legacy\n'); + + const ideManager = new IdeManager(); + await ideManager.ensureInitialized(); + const result = await ideManager.setup('auggie', tempProjectDir, installedBmadDir, { + silent: true, + selectedModules: ['bmm'], + }); + + assert(result.success === true, 'Auggie setup succeeds against temp project'); + + const skillFile = path.join(tempProjectDir, '.augment', 'skills', 'bmad-master', 'SKILL.md'); + assert(await fs.pathExists(skillFile), 'Auggie install writes SKILL.md directory output'); + + assert(!(await fs.pathExists(path.join(tempProjectDir, '.augment', 'commands'))), 'Auggie setup removes legacy commands dir'); + + await fs.remove(tempProjectDir); + } catch (error) { + assert(false, 'Auggie native skills migration test succeeds', error.message); + } + + console.log(''); + + // ============================================================ + // Test 8: QA Agent Compilation + // ============================================================ + console.log(`${colors.yellow}Test Suite 8: QA Agent Compilation${colors.reset}\n`); try { const builder = new YamlXmlBuilder(); diff --git a/tools/cli/installers/lib/ide/platform-codes.yaml b/tools/cli/installers/lib/ide/platform-codes.yaml index e63f94f51..545c825ed 100644 --- a/tools/cli/installers/lib/ide/platform-codes.yaml +++ b/tools/cli/installers/lib/ide/platform-codes.yaml @@ -32,8 +32,11 @@ platforms: category: cli description: "AI development tool" installer: - target_dir: .augment/commands + legacy_targets: + - .augment/commands + target_dir: .augment/skills template_type: default + skill_format: true claude-code: name: "Claude Code" diff --git a/tools/docs/native-skills-migration-checklist.md b/tools/docs/native-skills-migration-checklist.md index adc223549..346078612 100644 --- a/tools/docs/native-skills-migration-checklist.md +++ b/tools/docs/native-skills-migration-checklist.md @@ -91,13 +91,13 @@ Support assumption: full Agent Skills support. Antigravity docs confirm workspac Support assumption: full Agent Skills support. BMAD currently installs commands to `.augment/commands`; target should move to `.augment/skills`. -- [ ] Confirm Auggie native skills path and whether it also reads `.claude/skills` or `.agents/skills` -- [ ] Implement installer migration to native skills output -- [ ] Add legacy cleanup for `.augment/commands` -- [ ] Test fresh install -- [ ] Test reinstall/upgrade from legacy command output -- [ ] Confirm ancestor conflict protection where applicable -- [ ] Implement/extend automated tests +- [x] Confirm Auggie native skills path and compatibility loading from `.claude/skills` and `.agents/skills` via Augment docs plus local `auggie --print` repros +- [x] Implement installer migration to native skills output +- [x] Add legacy cleanup for `.augment/commands` +- [x] Test fresh install +- [x] Test reinstall/upgrade from legacy command output +- [x] Confirm no ancestor conflict protection is needed because local `auggie --workspace-root` repro showed child-local `.augment/skills` loading `child-only` but not parent `parent-only` +- [x] Implement/extend automated tests - [ ] Commit ## CodeBuddy