Thank you for your interest in contributing to Agentry! This document provides guidelines for contributors.
- Go 1.21 or higher
- Git
-
Fork the repository
-
Clone your fork:
git clone https://github.com/yourusername/agentry.git cd agentry -
Install dependencies:
go mod download
-
Install the development version:
go install ./cmd/agentry
-
Verify the installation:
agentry version
# Run all tests
go test ./...
# Run tests with coverage
go test -cover ./...
# Run specific test files
go test ./tests/# Build all components
make build
# Build specific components
go build ./cmd/agentry
go build ./cmd/agent-hub
go build ./cmd/agent-nodego build in the repository root directory as this creates build artifacts that should not be committed. Use go install for installing binaries or go build ./cmd/... for building specific components.
- Follow standard Go formatting with
gofmt - Run
go vetto check for common issues - Use meaningful variable and function names
- Add comments for exported functions and types
- Create a feature branch from
main - Make your changes
- Add tests for new functionality
- Ensure all tests pass
- Commit with a clear message
- Push to your fork
- Create a pull request
- Keep commits atomic and focused
- Write clear commit messages
- Rebase feature branches before submitting PRs
- Use
git statusto verify you're not committing build artifacts
If you accidentally run go build in the root and have agentry or agentry.exe files:
# Remove the artifacts
rm -f agentry agentry.exe
# They should already be in .gitignore, but verify:
git statusWhen adding new built-in tools:
- Register the tool in an
init()(see existing builtins files) - Add comprehensive tests in
tests/ - Update documentation in
docs/api.mdanddocs/usage.md - Add examples to configuration files if appropriate
- Update relevant documentation for any user-facing changes
- Add examples for new features
- Keep README.md and docs/ in sync
The plugin registry lives in docs/registry/plugins.json. To add your plugin:
- Append a new JSON object with your plugin's
name,description,urland asignaturefield. - The signature is an Ed25519 signature of the string
name|url|sha256wheresha256is the checksum of your plugin release archive. Encode the signature as hex. - Open a pull request with the updated file. The GitHub Pages site will automatically update on merge.
If you have questions about contributing, please open an issue or start a discussion on GitHub.