Thank you for your interest in contributing to the Value-Context Protocol. This guide covers everything you need to get started.
- Code of Conduct
- Getting Started
- Development Setup
- Making Changes
- Pull Request Process
- Coding Standards
- Specification Changes
This project adheres to the Contributor Covenant Code of Conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to conduct@creedspace.com.
- Fork the repository and clone your fork locally
- Create a branch from
mainfor your changes - Set up the development environment for the SDK(s) you're working on
- Make your changes with appropriate tests
- Submit a pull request against
main
cd python
python -m venv .venv
source .venv/bin/activate
uv sync
uv pip install -e ".[dev]"
pytest tests/Requires Python 3.10+.
cd rust
cargo build
cargo test
cargo clippy -- -D warningsRequires Rust 1.70+ (2021 edition).
cd webmcp
npm install
npm run check # Type checking
npm run build # Compile to dist/Requires Node.js 18+.
| Prefix | Use Case |
|---|---|
feat/ |
New features |
fix/ |
Bug fixes |
docs/ |
Documentation changes |
spec/ |
Specification amendments |
refactor/ |
Code refactoring |
test/ |
Test additions or fixes |
Follow Conventional Commits:
feat(python): add CSM-1 R-line parsing for personal state
fix(rust): correct identity token namespace validation
docs: update newcomer guide with v1.1 examples
spec: propose UVC registry extension for custom namespaces
- All changes must include tests. Untested code will not be merged.
- Run the full test suite for the SDK(s) you've modified before submitting.
- Cross-SDK changes should be validated against the JSON schemas in
schemas/.
- Ensure all tests pass in the relevant SDK(s)
- Update documentation if your change affects public APIs or behavior
- Reference any related issues in your PR description
- Describe your changes clearly — what, why, and how
- Keep PRs focused — one logical change per pull request
- A maintainer will review your PR and may request changes
## Summary
- Brief description of changes
## Motivation
- Why is this change needed?
## Testing
- How were these changes tested?
## Checklist
- [ ] Tests added/updated
- [ ] Documentation updated
- [ ] Passes all existing tests
- [ ] Conforms to coding standards- Formatter: Ruff
- Type hints: Required on all public functions
- Style: PEP 8, enforced via
ruff check - Docstrings: Google style for public API
- Formatter:
rustfmt - Linter:
clippywith-D warnings - Documentation:
///doc comments on public items - Unsafe: Avoid unless absolutely necessary; document rationale
- Strict mode:
strict: trueintsconfig.json - Style: Consistent with existing codebase
- Types: Explicit types on public exports; avoid
any
Changes to the VCP specification (specs/) follow a more rigorous process:
- Open a discussion issue describing the proposed change and its motivation
- Draft an amendment following the format in
specs/VCP_SPECIFICATION_v1.1_AMENDMENTS.md - Include rationale for why the change is necessary and how it affects existing implementations
- Update all three SDKs to reflect the specification change, or clearly note what remains to be implemented
- Update JSON schemas in
schemas/to match the new specification
Specification changes require approval from a core maintainer.
Open a discussion or reach out to the maintainers — we're happy to help.
Thank you for helping build the future of portable AI context.