Contributing
Jacquard.NET is open source under Apache 2.0 and welcomes contributions. This page covers how to get involved — for the full details, see CONTRIBUTING.md in the repo root.
Where to start
Good first issues: Look for issues labeled good-first-issue on GitHub. These are scoped, well-defined tasks that don't require deep framework knowledge.
Areas of need:
- Model providers — Ollama native provider, Azure OpenAI improvements, Cohere, Mistral
- Built-in tools — more tools in
StrandsAgents.Tools(web search, database query, vector store) - Samples — real-world examples showing production patterns
- Documentation — tutorials, how-to guides, concept explanations
- Testing — unit tests, integration tests, edge case coverage
How to submit a PR
- Fork the repository on GitHub
- Branch from
main— use a descriptive name likefeature/ollama-modelorfix/streaming-cancel - Implement your change, following the existing code style (see
Directory.Build.propsfor shared settings) - Test — run
dotnet buildanddotnet testto make sure everything passes.TreatWarningsAsErrorsis enabled, so fix any warnings. - Submit a pull request with a clear description of what changed and why
Code style notes
- All public types are
sealedunless inheritance is required - Data types are
record; mutable state uses classes ConfigureAwait(false)on everyawaitin library codeSystem.Text.Jsononly — no Newtonsoft- No runtime reflection — tool schemas are generated at compile time
What's needed most
In rough priority order:
- Additional model providers — especially Ollama (local development), Cohere, and Mistral. The
IModelinterface is straightforward to implement. - More built-in tools — the
StrandsAgents.Toolspackage currently has calculator, file read/write, and HTTP request. Web search, SQL query, and vector store tools would be valuable. - Real-world samples — production-style examples that go beyond "hello world". Think: RAG pipelines, customer service bots, code generation agents, data analysis workflows.
- Documentation improvements — better explanations, more tutorials, API reference coverage.
Larger proposals
For significant changes — new packages, architectural shifts, breaking API changes — open a GitHub Discussion first. This lets the community weigh in before you invest time in implementation.
Examples of "open a discussion first":
- Adding a new top-level NuGet package
- Changing the
IModelorIToolinterfaces - New orchestration patterns in
StrandsAgents.MultiAgent - Changes to the source generator's output
Running the project locally
# Build everything
dotnet build Jacquard.sln --configuration Release
# Run unit tests
dotnet test tests/StrandsAgents.Core.Tests --configuration Release
dotnet test tests/StrandsAgents.Runtime.Tests --configuration Release
# Run a sample
dotnet run --project samples/CliAgent
Integration tests require AWS credentials and STRANDS_INTEGRATION_TESTS=true:
STRANDS_INTEGRATION_TESTS=true dotnet test tests/StrandsAgents.Integration.Tests
License
All contributions are licensed under Apache 2.0, the same license as the project.