Development setup
Adding a channel
- Create
channels/{name}/SKILL.md— followchannels/web-ddgs/SKILL.mdas template - Create
channels/{name}/search.py— exportasync def search(query: str, max_results: int) -> list[dict] - Each result must have
url,title,snippetkeys - Run
PYTHONPATH=. .venv/bin/python3 -m pytest tests/test_channels_smoke.py -xto verify
PR rules
- One logical change per commit
- Source code first, tests second, docs third
ruff check && ruff format --checkmust passpytest -x -q -m "not network"must pass- PR stays under 5 commits
- Feature commits need corresponding test commits
- Bump version with
scripts/bump-version.shif source files changed
Commit convention
This project uses Conventional Commits:scripts/committer "type: message" file1 file2 to commit.
What we won’t accept
- PRs that only refactor without fixing a bug or adding a feature
- PRs that remove channels (channels are a competitive advantage)
- PRs that modify
PROTOCOL.md,lib/judge.py, or meta-skills without prior discussion - PRs with secrets, API keys, or personal paths