Thank you for your interest in contributing to Agent Process Manager! This document provides guidelines for contributing to the project.
- Rust 1.70+
- Git
- GitHub CLI (
gh) - recommended for issue management - tmux (for terminal integration features)
# Clone the repository
git clone https://github.com/sunnya97/agent-process-manager.git
cd agent-process-manager
# Build the project
cargo build
# Run tests
cargo test
# Start development daemon
RUST_LOG=agent_process_manager=debug cargo run -- startWe use GitHub Issues as our single source of truth for project management. All tasks, bugs, and feature requests are tracked through GitHub Issues with a comprehensive labeling system.
- 🐛 Bug Report: Something isn't working correctly
- ✨ Feature Request: New functionality or enhancements
- 📋 Development Task: Maintenance, refactoring, or general improvements
Critical: Urgent issues affecting core functionality
High: Important features for next release
Medium: Nice-to-have improvements
Low: Future enhancements
component: api- REST API and handlerscomponent: cli- Command line interfacecomponent: logs- Log storage and pattern detectioncomponent: process- Process management and supervisioncomponent: tmux- Terminal integrationcomponent: websocket- Real-time streamingcomponent: ai-agent- AI agent API featurescomponent: config- Configuration management
- Browse open issues
- Filter by
good-first-issuefor newcomer-friendly tasks - Check
status: readyfor issues ready for implementation
- Comment on the issue to let others know you're working on it
- Ask questions if anything is unclear
- Check for dependencies or blockers
git checkout -b feature/issue-number-short-description
# Example: git checkout -b feature/123-add-config-support- Follow existing code patterns and conventions
- Add tests for new functionality
- Update documentation as needed
- Ensure all tests pass:
cargo test
- Reference the issue number in your PR description
- Provide a clear description of changes
- Include screenshots/examples for UI changes
- Ensure CI passes
- Address review feedback promptly
- Keep discussions focused and constructive
- Update PR based on feedback
We maintain comprehensive test coverage across multiple categories:
# Unit tests
cargo test --lib
# Integration tests
cargo test --test agent_api_test # AI Agent API
cargo test --test log_summarizer_test # Log summarization
cargo test --test log_patterns_test # Pattern detection
cargo test --test api_integration_test # API endpoints
# End-to-end tests
cargo test --test cli_e2e_test # CLI commands
# Run all tests
cargo test- Add unit tests for new functions/modules
- Include integration tests for API endpoints
- Test error conditions and edge cases
- Update existing tests when modifying functionality
- Follow standard Rust conventions (
cargo fmt) - Use
cargo clippyfor linting - Add documentation for public APIs
- Handle errors appropriately (avoid
unwrap()in production code)
- Keep modules focused and cohesive
- Use descriptive variable and function names
- Add inline comments for complex logic
- Follow existing project structure
- Use conventional commit format
- Reference issue numbers:
feat: add config validation (#123) - Keep first line under 50 characters
- Provide details in commit body if needed
Use our Bug Report template which includes:
- Clear description of the issue
- Steps to reproduce
- Expected vs actual behavior
- Environment information
- Relevant logs or error messages
Use our Feature Request template which includes:
- Problem statement and use case
- Proposed solution
- Alternative approaches considered
- Usage examples
- Implementation suggestions
- New features and APIs
- Breaking changes
- Configuration options
- Deployment guides
- Troubleshooting tips
README.md- Project overview and quick startCLAUDE.md- Detailed development guidance- Inline code documentation
- GitHub Issues for feature specifications
For significant architectural changes:
- Open a GitHub Discussion for initial proposal
- Create an issue with
architecturelabel - Provide detailed technical design
- Consider backward compatibility
- Plan migration strategy if needed
- Be respectful and inclusive
- Focus on constructive feedback
- Help newcomers learn and contribute
- Maintain professional communication
- Check existing documentation first
- Search closed issues for solutions
- Ask questions in GitHub Discussions
- Tag maintainers for urgent issues
- Needs Research → Investigation required
- Ready → Available for implementation
- In Progress → Currently being worked on
- Needs Review → Pull request submitted
- Completed → Merged and deployed
- Features are merged to
mainbranch - Releases are tagged with semantic versioning
- Release notes highlight new features and breaking changes
- Critical fixes may trigger patch releases
rust-analyzer- Rust language supportCodeLLDB- Debugging supportEven Better TOML- Configuration file support
# View repository issues
gh issue list
# Create new issue
gh issue create --template feature_request.yml
# View issue details
gh issue view 123
# Assign issue to yourself
gh issue edit 123 --add-assignee @me- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Security: Report via GitHub Security Advisories
Thank you for contributing to Agent Process Manager! 🚀