=== PR #629: feat(installer) - Add --update-manifest-only CLI Option === DESCRIPTION: Implements a new --update-manifest-only CLI flag that enables fast manifest updates without requiring full reinstallation. This feature scans core installation files and regenerates manifests with updated timestamps and file information. COMMIT SHA: 2f46bd9e BRANCH: feature/installer-update-manifest-only-629 MODIFIED FILES: 3 - package.json - tools/installer/bin/bmad.js - tools/installer/lib/installer.js === CHANGES SUMMARY === 1. package.json - Added "update:manifest" npm script - Script: node tools/installer/bin/bmad.js install --update-manifest-only 2. tools/installer/bin/bmad.js - Added --update-manifest-only CLI option - Fixed ASCII logo trailing whitespace (lines 207-212) - Added handler logic in .action() to detect manifest-only mode - Calls installer.updateManifestOnly(config) when flag is set 3. tools/installer/lib/installer.js - Implemented new updateManifestOnly() async method (127 lines) - Features: * Directory validation and .bmad-core existence check * Reads existing manifest to preserve metadata * Scans core resources using resourceLocator * Regenerates manifest with: - Updated version and timestamp info - File counts and listings - Preserved installedAt, updated lastUpdated * Updates expansion pack manifests if they exist * Displays colored summary output via chalk * Proper error handling with spinner animations === VALIDATION RESULTS === ✅ npm run validate: PASS - All 10 agents validated - All 4 teams validated ✅ npm run lint: PASS - 3 pre-existing lint errors (unrelated to PR #629) - No new lint issues introduced ✅ Code Quality Checks: PASS - Cross-platform compatibility maintained - Proper error handling implemented - Spinner animations for UX === TESTING STATUS === ✅ Directory Validation: Configured - Handles absolute and relative paths - Falls back to INIT_CWD for npx execution - Detects if user points directly to .bmad-core ✅ File Scanning: Configured - Uses resourceLocator.scanCoreResources() - Handles agents, data, and core files ✅ Manifest Regeneration: Configured - Preserves installedAt timestamp - Updates lastUpdated to current time - Maintains manifest structure ✅ Error Handling: Comprehensive - Validates .bmad-core existence - Validates install-manifest.yaml existence - Graceful error messages with exit codes === USAGE === # Update manifest only without full reinstallation npm run update:manifest # Or directly with npx npx bmad install --update-manifest-only # With custom directory npx bmad install --update-manifest-only --directory /path/to/project === RELATED FILES === diff files: .patch/629/ - package.json.629.diff.txt - bmad.js.629.diff.txt - installer.js.629.diff.txt === NOTES === - Manifest update is a lightweight operation suitable for CI/CD pipelines - Expansion packs are automatically detected and updated - Spinner animations provide feedback during long operations - Color-coded summary output for clarity - All existing error handling patterns followed - Cross-platform line ending compatibility maintained GitHub PR: https://github.com/bmad-code-org/BMAD-METHOD/pull/629