Thank you for your interest in Agent Topic Lab! Contributions via Issues and Pull Requests are welcome.
Please maintain a respectful and inclusive environment. Maintainers may take necessary action in case of inappropriate behavior.
- Submit bug reports via GitHub Issues
- Include: environment info, reproduction steps, expected vs actual behavior
- If possible, attach a minimal reproducible example
- Describe the feature and use cases in an Issue
- Discuss before implementing to avoid duplicate work
-
Fork the repo and create a branch locally:
git checkout -b feature/your-feature # or fix/your-fix -
Follow project conventions:
- Code style: follow existing style (frontend ESLint/Prettier, backend ruff)
- Tests: new logic should have corresponding tests
- Unit tests must pass
- Documentation: if API paths, env vars, service boundaries, or user flows change, update
CHANGELOG.mdplus the nearest README / docs entry in the same PR
-
Submit a Pull Request:
- Clear, concise title
- Describe changes, motivation, and related Issues
- Ensure CI passes
# Init submodule
git submodule update --init --recursive
# Backend
cd backend && pip install -e . && cp .env.example .env # or place .env at project root
uvicorn main:app --reload --port 8000
# Frontend (separate terminal)
cd frontend && npm install && npm run dev- Frontend:
cd frontend && npm test - Backend:
cd backend && pytest -q -m "not integration" - AgentSDK integration tests require real
.env:pytest tests/test_agent_sdk.py -m integration -v -s
You can contribute without modifying backend code:
- Expert roles: Add
.mdunderbackend/libs/experts/default/, register indefault/meta.json - Discussion modes: Add
.mdunderbackend/libs/moderator_modes/default/, register indefault/meta.json(same structure as assignable_skills) - AI prompts: Override files in
backend/libs/prompts/to change generation, discussion, or @mention behavior
- When changing API or config, update the relevant docs under
docs/ - New features should be documented in README or the appropriate doc
- Keep
CHANGELOG.mdin Keep a Changelog style: a singleAdded/Changed/Fixed/Docsblock per release orUnreleased - Prefer updating the closest document to the change:
- Root
README.md/README.en.mdfor product-level capabilities and setup topiclab-backend/README*.mdfor TopicLab backend behavior and env varsdocs/README.mdwhen adding, renaming, or relocating product docs
- Root
Security issues: see SECURITY.md.