CLI tool for AI-powered project specification review
Project description
Bootkicker - Project Specification Review Tool
An AI-powered CLI tool that analyzes project specifications and provides intelligent improvement suggestions using multiple Large Language Models.
Features
- 🤖 Multi-Model Analysis: Leverages multiple LLMs for comprehensive reviews
- ⚡ Parallel Processing: Calls multiple models simultaneously for faster results
- 🔄 Robust Error Handling: Automatic retries and graceful failure handling
- 📊 Progress Tracking: Real-time progress bars for long-running operations
- 📝 Markdown Support: Processes and merges multiple markdown specification files
- ⚙️ Configurable: YAML-based configuration for model selection and settings
- 🔑 OpenRouter Integration: Uses OpenRouter API for access to various LLM providers
Installation
From PyPI (Recommended)
pip install bootkicker
From Source
git clone <repository-url>
cd bootkicker
pip install -e .
Quick Start
-
Set up your API key:
export OPENROUTER_API_KEY="your_api_key_here"
-
Create a configuration file (
.review.conf.yml) in your project directory:models: - "openai/gpt-4" - "anthropic/claude-3-sonnet" - "google/gemini-pro" - "meta-llama/llama-2-70b-chat" summarizer: "google/gemini-2.5-flash"
-
Add your project specification as markdown files in the same directory
-
Run the review:
bootkicker /path/to/your/project/directory
Configuration
Configuration File Format
Create a .review.conf.yml file in your project directory:
# Required: List of models to use for review
models:
- "openai/gpt-4"
- "anthropic/claude-3-sonnet"
- "google/gemini-pro"
- "deepseek/deepseek-chat"
# Optional: Model for final summarization (default: google/gemini-2.5-flash)
summarizer: "google/gemini-2.5-flash"
Environment Variables
OPENROUTER_API_KEY: Your OpenRouter API key (required)
Supported File Types
- All
.md(Markdown) files in the specified directory - Files are processed in alphabetical order
- Content is merged with proper headers and separators
Usage Examples
Basic Usage
bootkicker ./my-project
With Custom Directory
bootkicker /path/to/project/specs
Example Output
# Project Review Results
Based on analysis from 4 model(s):
## Review 1
[Detailed feedback from first model...]
---
## Review 2
[Detailed feedback from second model...]
---
[Final summarized recommendations...]
Algorithm Implementation
The tool implements a comprehensive review workflow:
✅ A1 - Configuration Reading
- Reads
.review.conf.ymlfrom specified directory - Validates model list and configuration format
- Supports optional summarizer model configuration
✅ A2 - Markdown File Processing
- Discovers all
.mdfiles in alphabetical order - Validates file existence and readability
- Fails gracefully if no markdown files found
✅ A3 - Content Merging
- Merges multiple markdown files with proper headers
- Preserves file structure and organization
- Handles empty files gracefully
✅ A4 - Multi-Model Analysis
- Uses OpenRouter API with environment-based authentication
- Executes model calls in parallel for efficiency
- Implements retry logic (2 retries per model)
- Reports failures to stderr while continuing with successful models
- Aggregates all successful responses into structured output
✅ A5 - Intelligent Summarization
- Uses dedicated summarizer model for final synthesis
- Organizes feedback by themes and priorities
- Provides actionable recommendations
- Falls back to aggregated review if summarization fails
Error Handling
The tool provides comprehensive error handling:
- Missing configuration: Clear error with file path
- Invalid YAML: Detailed parsing error information
- Missing API key: Environment variable guidance
- API failures: Automatic retries with progress reporting
- No markdown files: Helpful error message
- Network issues: Graceful degradation and fallback
Development
Requirements
- Python 3.12+
- OpenRouter API key
- Dependencies:
openai,langchain,tqdm,pyyaml,aiohttp
Testing
Run with the provided test configuration:
export OPENROUTER_API_KEY="your_key"
bootkicker test
License
MIT License - see LICENSE file for details.
Contributing
Contributions are welcome! Please feel free to submit issues and enhancement requests.
Changelog
See CHANGELOG.md for version history and changes.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file bootkicker-0.1.0.tar.gz.
File metadata
- Download URL: bootkicker-0.1.0.tar.gz
- Upload date:
- Size: 7.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
50303a20640bd92f80844673a65e6d405f829efc6f09f11178f82de54392b883
|
|
| MD5 |
dc2abf44c44da4a0a134e73ee7c139d7
|
|
| BLAKE2b-256 |
c548d0310b610a87c3927cb3fc85adb2b6e99632e7c5c7e2e1a43256c5eb431d
|
File details
Details for the file bootkicker-0.1.0-py3-none-any.whl.
File metadata
- Download URL: bootkicker-0.1.0-py3-none-any.whl
- Upload date:
- Size: 8.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d3356e187bf40ef8b48bac035438672d142b833a2a71235a383ebb810e633151
|
|
| MD5 |
07be3ee9a42e6694db5f8918c9339669
|
|
| BLAKE2b-256 |
b0aa3ac6e850c741562cabbf59f18587d71c685e6da83f3748df5e97aed18407
|