Phase 1: Next Steps for Aditi Implementation
✅ Phase 0 Completion Summary
You have successfully completed Phase 0! Here’s what’s been accomplished:
Implemented Components
- Vale Container Integration (
src/aditi/vale_container.py
)- Automatic Podman/Docker detection
- Container lifecycle management
- JSON output parsing
- Comprehensive error handling
- Init Command (
src/aditi/commands/init.py
)- User-friendly initialization with Rich progress bars
- Automatic Vale image pulling
- AsciiDocDITA style downloading via Vale’s package system
- Testing Infrastructure
test_vale_integration.py
- Validates container functionalitytest_asciidocdita_rules.py
- Tests AsciiDocDITA rule application
- Documentation
- Container setup guide
- Implementation documentation
- Updated CLAUDE.md with current state
🚀 Phase 1: Core Infrastructure - What to Do Next
Step 1: Create pyproject.toml
Start your next session with:
Create a pyproject.toml file for the Aditi project with:
- Modern Python packaging configuration
- Dependencies: typer, rich, pydantic for config
- Dev dependencies: pytest, mypy, ruff, black
- Entry points for the CLI commands
Step 2: Implement Main CLI (cli.py)
Create src/aditi/cli.py that:
- Sets up the main Typer app
- Imports and registers the init command
- Adds placeholder commands for check, fix, and journey
- Configures logging
Step 3: Create Package Structure
Create src/aditi/__init__.py to make it a proper package
Set up version info and package metadata
Step 4: Configuration Manager (config.py)
Implement src/aditi/config.py with:
- Pydantic models for configuration schema
- Load/save functionality for ~/aditi-data/config.json
- Repository settings (root, branches, permissions)
- Session state management
Step 5: Git Guidance Module (git.py)
Create src/aditi/git.py that:
- Provides functions to guide users through git operations
- Generates git command suggestions
- Helps with branch naming
- Assists with commit message formatting
Step 6: Testing Setup
Set up the tests/ directory structure:
- tests/unit/ for unit tests
- tests/integration/ for integration tests
- Create pytest configuration
- Write tests for the new modules
📋 Recommended Implementation Order
- Start with pyproject.toml - This enables proper package installation and dependency management
- Create basic CLI structure - Get
aditi --help
working - Wire up existing init command - Verify the CLI can call your existing code
- Add configuration management - Essential for subsequent features
- Implement git guidance - Needed for the full workflow
- Write tests - Ensure everything works together
💡 Tips for Phase 1
- Test Incrementally: After each component, run the CLI to ensure it works
- Use Type Hints: Leverage Typer’s type hint support for better CLI UX
- Keep It Simple: Focus on getting the structure right before adding features
- Document as You Go: Add docstrings to all functions and classes
🎯 Success Criteria for Phase 1
By the end of Phase 1, you should be able to:
- Run
pip install -e .
to install Aditi in development mode - Execute
aditi --help
and see all commands - Run
aditi init
through the proper CLI structure - Have configuration load/save working
- See placeholder messages for unimplemented commands
📚 Reference Implementation Pattern
When asking Claude to implement each component, use this pattern:
Implement [component] for the Aditi project following these requirements:
- [Specific requirements from the implementation plan]
- Use the existing ValeContainer class for Vale operations
- Follow the established patterns from Phase 0
- Include comprehensive error handling and user feedback
- Add appropriate type hints and docstrings
- Write unit tests for the module
🔄 After Phase 1
Once Phase 1 is complete, you’ll be ready for:
- Phase 2: Rule Engine Implementation (parsing Vale output, applying fixes)
- Phase 3: CLI Experience (journey command, interactive workflows)
- Phase 4: Reporting and Distribution
Good luck with Phase 1! The foundation you’ve built in Phase 0 sets you up for success.