AGPL-3.0 Compliance Guide
Explains AGPL-3.0 obligations for using, modifying, or distributing the SOMA project, including network-use source release requirements.
What this file does
Explains AGPL-3.0 obligations for using, modifying, or distributing the SOMA project, including network-use source release requirements.
When to use it
- You distribute SOMA or a modified version
- You run a modified SOMA as a network service
- You need to add source-code download to your AGPL app
- You want a quick reference for AGPL compliance steps
AGPL-3.0 Compliance Guide
This document provides guidance on how to comply with the GNU Affero General Public License v3.0 (AGPL-3.0) when using, modifying, or distributing the SOMA (Self-Organizing Memory Architecture) project.
Overview of AGPL-3.0
The AGPL-3.0 is a copyleft license that requires anyone who distributes the software or modified versions of it to make the source code available under the same license. The AGPL-3.0 extends this requirement to include users who interact with the software over a network.
Key Requirements
When using SOMA, you must comply with the following key requirements:
1. Source Code Distribution
If you distribute copies of SOMA, whether modified or unmodified, you must:
- Provide the complete corresponding source code
- Include a copy of the AGPL-3.0 license
- Preserve copyright notices and license statements in the code
2. Network Use Provision (Section 13)
If you modify SOMA and run it on a server that users can interact with over a network (e.g., as a web application), you must:
- Provide a way for users to download the source code of your modified version
- This is the key difference between the AGPL and the regular GPL
3. License Notices
You must keep intact all notices that refer to the AGPL-3.0 license and the absence of any warranty.
4. User Notices
You must make sure that users who interact with SOMA can access the license text and understand their rights.
Practical Compliance Steps
For Developers
-
Keep the License File: Always include the
LICENSEfile with any distribution. -
Maintain Copyright Headers: All source files should include the copyright and license notice. Use the provided
add_copyright_headers.pyscript to add headers to new files:./add_copyright_headers.py --dir path/to/your/files -
Document Changes: When modifying the code, document your changes clearly.
-
Network Applications: If you deploy a modified version of SOMA as a network service, add a feature to allow users to download the source code. For example:
- Add a "Source Code" link in the user interface
- Provide an API endpoint that serves the source code
- Document how users can request and receive the source code
For Users
-
Understand Your Rights: As a user of SOMA, you have the right to:
- Use the software for any purpose
- Study how the software works and modify it
- Redistribute the software
- Distribute your modifications
-
Network Use: If you interact with a modified version of SOMA over a network, you have the right to receive its source code.
Common Compliance Scenarios
Scenario 1: Internal Use Only
If you're only using SOMA internally within your organization and not distributing it or making it available over a network to external users, you don't need to share your modifications.
Scenario 2: Distribution of Modified Version
If you distribute a modified version of SOMA:
- Make your source code available under AGPL-3.0
- Include the original license and copyright notices
- Document your changes
- Provide clear instructions on how to obtain the complete source code
Scenario 3: Network Service
If you run a modified version of SOMA on a server:
- Provide a way for users to download the source code
- Include a notice informing users of their right to the source code
- Ensure the download includes the complete source code of your modified version
Additional Resources
Contact
If you have questions about AGPL-3.0 compliance for this project, please contact Cadenzai, Inc.
What's inside
Overview, 4 key requirements, 2 practical compliance sections, 3 common scenarios, 3 external resources.
Change this for your project
- Replace
SOMA (Self-Organizing Memory Architecture)with your project name - Replace
anthonymartin/soma-agentxwith your repository path - Replace
Cadenzai, Inc.with your contact info - Replace
add_copyright_headers.pywith your own header script
Where it goes
Keep in docs/ or alongside the feature. Agents read it to implement against a defined contract.
Worth borrowing
- Scenario-based compliance checklist (internal use, distribution, network service)
- Separating developer obligations from user rights in the same document
Related Documents
GPU Selection Guide for Large Language Models (LLMs)
Guides GPU selection for LLM inference, fine-tuning, and training by mapping model sizes, precision levels, and budgets to VRAM requirements.
Community AI Agent Skills Discovery Sources
Catalogs 50+ platforms, repositories, directories, and communities for discovering and sharing AI agent skills across multiple coding tools.
ReleaseKit - Technical Requirements Document
Specifies a Go library and CLI for release automation with conventional commit parsing, validation checks, and workflow orchestration.
api_llm Specification
Defines a workspace of thin HTTP API clients for major LLM providers with no abstraction layer and explicit developer control.