Thank you for your interest in contributing to AgentForge! This guide will help you get started.
- Go 1.24 or later
- Make
- Terraform 1.5+ (for infrastructure changes, optional)
- AWS CLI v2 (optional, only needed for production deployment)
-
Fork the repository and clone your fork:
git clone https://github.com/<your-username>/agent-forge.git cd agent-forge
-
Verify the build:
make ci
Build all binaries:
make buildThis compiles the Lambda handlers and CLI tools into the bin/ directory.
Run the full test suite:
make testRun tests with race detection:
make test-raceRun only unit tests (no AWS credentials required):
go test -short ./...-
Follow standard Go conventions (
gofmt,go vet). -
Before opening a PR, run:
make fmt make ci
-
Keep functions focused and well-documented. Exported functions must have doc comments.
-
Error messages should be lowercase and should not end with punctuation.
-
Prefer introducing configuration via environment variables under
internal/configinstead of ad-hoc parsing in command entrypoints.
-
Create a feature branch from
main:git checkout -b feature/my-change main
-
Make your changes in small, focused commits. Each commit should compile and pass tests.
-
Write or update tests to cover your changes.
-
Ensure all checks pass:
make ci
-
Push your branch and open a pull request against
main. -
In your PR description, include:
- What the change does
- Why the change is needed
- How you tested it
-
A maintainer will review your PR. Please respond to feedback promptly.
Before requesting review, confirm:
-
make cipassed for Go/runtime changes - Tests were added or updated for behavior changes
- Security impact was reviewed (authz/data exposure/dependencies)
- Docs/config were updated when interfaces or behavior changed
| Change type | Required local checks |
|---|---|
| Go runtime/API/engine changes | make ci |
Terraform (deploy/terraform/**) |
terraform -chdir=deploy/terraform fmt -check -recursive and terraform -chdir=deploy/terraform validate |
| Docs-only changes | Verify referenced commands/paths exist in current repo |
If your change modifies infrastructure in deploy/terraform/:
- Run
terraform fmtto format your configuration. - Run
terraform validateto check for syntax errors. - Include
terraform planoutput in the PR description (with sensitive values redacted).
- Use
.env.exampleas the baseline for local and aws runtime variables. AGENTFORGE_RUNTIME=localis default for development.AGENTFORGE_RUNTIME=awsrequires DynamoDB/S3/SQS environment variables documented inREADME.md.
- Use GitHub Issues to report bugs or request features.
- For security vulnerabilities, see SECURITY.md.
By contributing, you agree that your contributions will be licensed under the Apache License 2.0.