Thank you for your interest in contributing to Chub! This guide covers both code contributions and documentation/skill contributions.
- Rust 1.70+ (install via rustup)
- Git
git clone https://github.com/nrl-ai/chub.git
cd chub
cargo buildcargo run -- --help
cargo run -- build content/ --validate-only
cargo run -- search "stripe"cargo test # run all tests
cargo test -- --nocapture # with stdout outputcargo fmt --check # check formatting
cargo clippy # lint- Fork the repo and create a branch from
main - Make your changes
- Add or update tests as needed
- Ensure all tests pass:
cargo test - Ensure formatting:
cargo fmt - Ensure no clippy warnings:
cargo clippy - Validate the build:
cargo run -- build content/ --validate-only - Submit a pull request
- Follow standard Rust conventions (
cargo fmt) - Minimal dependencies — prefer std library where practical
- Dual-mode output: every command supports
--jsonfor machine-readable output - Business logic in
chub-core, CLI/MCP inchub-cli
crates/
chub-core/ # Library: types, search, build, cache, registry
chub-cli/ # Binary: CLI commands + MCP server
content/ # Public content registry source
docs/ # Design docs and roadmap
tests/fixtures/ # Test fixtures
npm/ # npm distribution packages
Contributing curated documentation or skills is one of the most impactful ways to help.
- Create a directory under
content/<author>/docs/<name>/ - Add a
DOC.mdwith YAML frontmatter:
---
name: my-api
description: Short description of what this doc covers
metadata:
languages: "python,javascript"
versions: "1.0.0"
source: community
tags: "api,rest"
updated-on: "2026-03-21"
---
# Content here...- Add reference files in a
references/subdirectory if needed - Validate:
cargo run -- build content/ --validate-only
- Create a directory under
content/<author>/skills/<name>/ - Add a
SKILL.mdwith YAML frontmatter:
---
name: my-skill
description: What this skill teaches agents to do
metadata:
source: community
tags: "automation,testing"
updated-on: "2026-03-21"
---
# Skill content here...- Write for LLMs: clear structure, code examples, explicit parameter names
- Use progressive disclosure: entry point (DOC.md/SKILL.md) should be < 500 lines
- Put detailed references in companion files with relative links
- Keep content up to date with the latest API versions
- Include practical code examples, not just API signatures
- Bugs: Open an issue
- Features: Request a feature
- Security: See SECURITY.md
By contributing, you agree that your contributions will be licensed under the MIT License.