@cloudkinetix/bmad-enhanced
Version:
Cloud-Kinetix enhanced fork of BMAD-METHOD - Breakthrough Method of Agile AI-driven Development with robust versioning and unified validation.
103 lines (76 loc) • 3.38 kB
Markdown
# Cloud Kinetix Layered Architecture
## Overview
The Cloud Kinetix Enhanced fork now uses a **true layered architecture** that cleanly separates CK enhancements from upstream BMAD content. This enables conflict-free upstream syncing while maintaining all enterprise features.
## Directory Structure
```
bmad-enhanced/
├── bmad-core/ # Pure upstream BMAD (never modify)
├── ck-layer/ # Cloud Kinetix code additions
│ ├── lib/ # Enterprise features
│ ├── config/ # CK configuration
│ ├── scripts/ # Build and release scripts
│ ├── bin/ # CLI entry points
│ └── docs/ # CK technical documentation
├── docs-ck/ # CK user documentation (exception #1)
├── expansion-packs/ # All expansion packs (exception #2)
│ ├── bmad-* # Upstream expansion packs
│ └── ck-* # Cloud Kinetix expansion packs
├── tools/ # Upstream build tools
├── dist/ # Build outputs (both layers)
└── package.json # Minimal, delegates to both
```
**Exceptions to the layered architecture:**
1. **`docs-ck/`** - User documentation at root for better discoverability
2. **`expansion-packs/ck-*`** - CK expansion packs alongside upstream packs for consistency
## Key Benefits
1. **Clean Upstream Syncs**
- No more modify/delete conflicts
- Upstream changes flow through automatically
- CK changes isolated in ck-layer/
2. **Clear Ownership**
- Upstream owns: bmad-core/, tools/, expansion-packs/bmad-\*
- CK owns: ck-layer/, expansion-packs/ck-\*, docs-ck/
- No file conflicts between layers
3. **Build-Time Integration**
- Installer reads from both layers
- Merges content during installation
- Git repository stays clean
## Migration Steps
### For Development
1. Pull the restructured branch
2. Update any scripts that reference old paths:
- `lib/` → `ck-layer/lib/`
- `config/` → `ck-layer/config/`
- `scripts/` → `ck-layer/scripts/`
- `bin/` → `ck-layer/bin/`
3. Test the installer:
```bash
node ck-layer/bin/bmad-enhanced.js install --default
```
### For CI/CD
Update any CI scripts that reference:
- `bin/bmad-enhanced.js` → `ck-layer/bin/bmad-enhanced.js`
- Direct lib imports → Use ck-layer paths
## Upstream Sync Process
With the new structure, upstream syncs are simple:
```bash
# Fetch upstream changes
git fetch upstream-main
# Merge - should have minimal conflicts
git merge upstream-main/main
# Conflicts should only be in:
# - README.md (keep CK section at bottom)
# - package.json (if needed, use package-minimal.json)
```
## Important Rules
1. **Never modify files in bmad-core/** - These come from upstream
2. **Most CK changes go in ck-layer/** - This is our territory
3. **Use .gitignore for upstream dist/** - Prevents modify/delete conflicts
4. **Build process handles integration** - Don't merge in git
5. **Two exceptions for user-facing content:**
- **docs-ck/** - User documentation at root for accessibility
- **expansion-packs/ck-\*/** - CK packs alongside upstream for consistency
## Future Improvements
1. Consider making CK a true NPM dependency of upstream
2. Contribute generic improvements back to upstream
3. Further minimize overlap between layers