2025-07-30 11:51:39 -07:00
# Documentation Organization
This document explains the new documentation structure and workflow for managing markdown files in the Brainy project.
## Overview
The documentation has been reorganized from 29 scattered markdown files at the root level to a clean, organized structure with only essential files at the root and categorized documentation in the `docs/` directory.
## New Structure
### Root Level Files (GitHub/NPM Standards)
- `README.md` - Main project documentation
- `CONTRIBUTING.md` - Contribution guidelines
- `CODE_OF_CONDUCT.md` - Community standards
- `CHANGELOG.md` - Version history and release notes
### Documentation Directory Structure
```
docs/
├── technical/ # Technical documentation and analysis
2025-08-01 16:21:35 -07:00
│ ├── CONCURRENCY_ANALYSIS.md
│ ├── STORAGE_CONCURRENCY_ANALYSIS.md
│ ├── THREADING.md
│ ├── STATISTICS.md
│ ├── TESTING.md
│ ├── VITEST_IMPROVEMENTS.md
│ ├── REALTIME_UPDATES.md
│ ├── METADATA_HANDLING.md
│ ├── VECTOR_DIMENSION_STANDARDIZATION.md
│ ├── USE_MODEL_LOADING_EXPLANATION.md
│ ├── STORAGE_TESTING.md
│ ├── TECHNICAL_GUIDES.md
│ ├── ENVIRONMENT_TESTING.md
│ └── SCALING_STRATEGY.md
2025-07-30 11:51:39 -07:00
├── development/ # Development and contributor documentation
2025-08-01 16:21:35 -07:00
│ ├── DEVELOPERS.md
│ ├── DOCUMENTATION_STANDARDS.md
│ ├── MARKDOWN_CONVENTIONS.md
│ ├── EXPECTED_TEST_MESSAGES.md
│ └── PRETTY_TEST_REPORTER.md
2025-07-30 11:51:39 -07:00
└── guides/ # User guides and migration documentation
2025-08-01 16:21:35 -07:00
├── cache-configuration.md
├── hnsw-field-search.md
├── json-document-search.md
├── model-management.md
├── optional-model-bundling.md
├── production-migration-guide.md
└── service-identification.md
2025-07-30 11:51:39 -07:00
```
## CHANGELOG.md Management
### Automated Workflow
The project now uses automated changelog management:
1. **Adding Changes** : Add entries to the `[Unreleased]` section in `CHANGELOG.md`
2. **Version Bumping** : Use npm scripts that automatically update the changelog:
- `npm run version:patch` - Patch version bump + changelog update
- `npm run version:minor` - Minor version bump + changelog update
- `npm run version:major` - Major version bump + changelog update
3. **Manual Updates** : Use `npm run changelog:update` to manually update the changelog
### Changelog Format
The changelog follows the [Keep a Changelog ](https://keepachangelog.com/ ) standard:
- **Added** - New features
- **Changed** - Changes in existing functionality
- **Deprecated** - Soon-to-be removed features
- **Removed** - Now removed features
- **Fixed** - Bug fixes
- **Security** - Vulnerability fixes
### GitHub Integration
The CHANGELOG.md is automatically used for:
- GitHub releases (via `scripts/create-github-release.js` )
- NPM package release notes
- Version history tracking
## Benefits of New Structure
2025-08-01 16:21:35 -07:00
1. **Clean Root Directory** : Only 4 essential markdown files at root level
2. **Better Organization** : Logical categorization of documentation in docs/ subdirectories
2025-07-30 11:51:39 -07:00
3. **GitHub Compliance** : Follows GitHub and NPM best practices
4. **Automated Maintenance** : Changelog updates are automated
5. **Easy Navigation** : Clear directory structure for different doc types
2025-08-01 16:21:35 -07:00
6. **Reduced Clutter** : Temporary and outdated files have been removed
2025-07-30 11:51:39 -07:00
## Workflow for Contributors
### Adding Documentation
1. **Technical docs** → `docs/technical/`
2. **Development docs** → `docs/development/`
3. **User guides** → `docs/guides/`
2025-08-01 16:21:35 -07:00
4. **Temporary files** → Should be avoided; use issues or PRs for temporary documentation
2025-07-30 11:51:39 -07:00
### Making Changes
1. Add changes to `[Unreleased]` section in `CHANGELOG.md`
2. Use appropriate category (Added, Changed, Fixed, etc.)
3. When ready to release, use `npm run version:patch/minor/major`
4. The changelog will be automatically updated with version and date
### Release Process
1. Ensure `[Unreleased]` section has all changes
2. Run `npm run version:patch/minor/major`
3. Run `npm run deploy` to publish and create GitHub release
4. GitHub release will use CHANGELOG.md content
## Migration Notes
2025-08-01 16:21:35 -07:00
- All technical documentation organized in `docs/technical/`
- Development documentation organized in `docs/development/`
- User guides organized in `docs/guides/`
- Temporary summary files and archived content have been cleaned up
2025-07-30 11:51:39 -07:00
- Links in existing documentation may need updates
- New automation ensures changelog stays current
This reorganization provides a sustainable, scalable approach to documentation management that follows industry best practices and integrates seamlessly with GitHub and NPM workflows.