ContributingΒΆ
How to contribute to Perspt.
Getting StartedΒΆ
Fork the repository on GitHub
Clone your fork:
git clone https://github.com/YOUR_USERNAME/perspt.git cd perspt
Create a branch:
git checkout -b feat/your-feature
Development SetupΒΆ
# Install Rust (if needed)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# Build
cargo build
# Run tests
cargo test
# Run with debug
cargo run -- chat
Code StyleΒΆ
Rust: Follow
rustfmtandclippyCommit messages: Conventional Commits format
Documentation: Update docs for API changes
# Format code
cargo fmt
# Run linter
cargo clippy --all-targets
Commit MessagesΒΆ
Use Conventional Commits:
feat: add new agent tool
fix: correct energy calculation
docs: update SRBN documentation
refactor: simplify orchestrator
test: add integration tests
chore: update dependencies
Pull Request ProcessΒΆ
Ensure all tests pass:
cargo test --all
Update documentation if needed
Create a PR with clear description
Address review feedback
Squash and merge when approved
PSP ProcessΒΆ
For significant changes, create a PSP (Perspt Specification Proposal):
Get PSP number from maintainers
Create
docs/psps/source/psp-00000N.rstSubmit for review
Implement after acceptance
See PSP: Perspt Specification Proposals for details.
Crate StructureΒΆ
crates/
βββ perspt-cli/ # CLI entry point
βββ perspt-core/ # LLM provider
βββ perspt-tui/ # Terminal UI
βββ perspt-agent/ # SRBN engine
βββ perspt-policy/ # Security
βββ perspt-sandbox/ # Isolation
When contributing, add to the appropriate crate.
See AlsoΒΆ
Architecture - Crate design
Testing - Testing guide
PSP: Perspt Specification Proposals - PSP process