6.8 KiB
Contributing to OpenClaw Command Center
"Join the Swarm. Evolve together."
First off, thank you for considering contributing to OpenClaw Command Center! This project thrives on community involvement.
📋 Table of Contents
- Code of Conduct
- Getting Started
- Development Setup
- Making Contributions
- Pull Request Process
- Style Guidelines
- Publishing to ClawHub
- For AI Contributors
📜 Code of Conduct
This project adheres to our Code of Conduct. By participating, you're expected to uphold this code. Please report unacceptable behavior to the maintainers.
🚀 Getting Started
Prerequisites
- Node.js v20 or higher
- npm v10 or higher
- Git
Development Setup
-
Fork the repository
Click the "Fork" button on GitHub to create your own copy.
-
Clone your fork
git clone https://github.com/YOUR_USERNAME/openclaw-command-center.git cd openclaw-command-center -
Add upstream remote
git remote add upstream https://github.com/jontsai/openclaw-command-center.git -
Install dependencies
npm install -
Create configuration
cp config/dashboard.example.json config/dashboard.json -
Install pre-commit hooks
make install-hooksThis enforces project rules automatically on each commit.
-
Start development server
npm run dev
🛠️ Making Contributions
Types of Contributions
We welcome:
- 🐛 Bug fixes
- ✨ New features
- 📚 Documentation improvements
- 🧪 Test coverage
- 🎨 UI/UX enhancements
- 🔧 Performance optimizations
Before You Start
- Check existing issues — Someone might already be working on it
- Open an issue first — For major changes, discuss before implementing
- Keep scope focused — One feature/fix per PR
Branch Naming
Use descriptive branch names:
feat/add-session-filtering
fix/overlord-connection-timeout
docs/update-api-reference
refactor/simplify-creep-cache
📤 Pull Request Process
1. Create Your Branch
git checkout main
git pull upstream main
git checkout -b feat/your-feature-name
2. Make Your Changes
- Write clean, documented code
- Add tests for new functionality
- Update documentation if needed
- Follow the style guidelines
3. Test Your Changes
npm test
npm run lint
4. Commit Your Changes
Follow Conventional Commits:
git commit -m "feat: add overlord heartbeat indicator"
git commit -m "fix: resolve session timeout on reconnect"
git commit -m "docs: clarify API authentication flow"
5. Push and Create PR
git push origin feat/your-feature-name
Then open a Pull Request on GitHub.
6. PR Review
- Maintainers will review your PR
- Address any requested changes
- Once approved, a maintainer will merge
PR Checklist
Before submitting, ensure:
- Code follows project style guidelines
- Tests pass locally (
npm test) - Lint passes (
npm run lint) - Documentation updated if needed
- Commit messages follow convention
- PR description explains the change
🎨 Style Guidelines
Code Style
- Use ESLint configuration provided
- Use Prettier for formatting
- Prefer
constoverlet, avoidvar - Use meaningful variable names
- Add JSDoc comments for public functions
Thematic Naming
Embrace the Starcraft theme when naming:
// Good
const overlordStatus = await checkEssence();
const creepCache = new CreepLayer();
// Less thematic
const monitorStatus = await healthCheck();
const cacheLayer = new CacheService();
Documentation
- Use clear, concise language
- Include code examples where helpful
- Keep README and docs in sync with code
- Add inline comments for complex logic
📦 Publishing to ClawHub
This skill is distributed via ClawHub. After changes are merged to main, maintainers publish updates to the registry.
Prerequisites
# Install clawhub CLI (if not already installed)
# See https://clawhub.ai for installation instructions
# Authenticate
clawhub login
clawhub whoami # verify
Publishing a New Version
-
Bump the version in
package.json -
Tag the release (see Git Tags for Releases)
-
Publish:
clawhub publish . --registry https://www.clawhub.ai \ --slug command-center --version <new-version> \ --changelog "Description of changes"
Note: The
--registryflag is required until the upstream.well-knownredirect is fixed. You can also setexport CLAWHUB_REGISTRY=https://www.clawhub.aito avoid passing it each time.
Git Tags for Releases
Tag each release so the release workflow can generate GitHub Releases automatically:
# Tag the current commit
git tag -a v<version> -m "v<version> — short description"
# Push tags
git push origin --tags
Version Bumping
Follow semver:
| Change type | Bump | Example |
|---|---|---|
| Bug fixes, minor tweaks | patch |
0.1.0 → 0.1.1 |
| New features, backward compat | minor |
0.1.0 → 0.2.0 |
| Breaking changes | major |
0.1.0 → 1.0.0 |
⚠️ Important: When bumping version, update both files:
package.json—"version": "X.Y.Z"SKILL.md—version: X.Y.Z(in frontmatter)
The pre-commit hook will block commits if these versions don't match.
Verifying a Publish
# Check the published version
clawhub inspect command-center
# Install into a workspace to test
clawhub install command-center
🤖 For AI Contributors
AI agents are welcome contributors! If you're an AI working on this project:
-
Read the context files first
-
Follow the same PR process as human contributors
-
Document your changes thoroughly — Future AI (and humans) will thank you
-
When in doubt, ask — Open an issue to discuss before major changes
💬 Getting Help
- Questions? Open a GitHub Discussion
- Found a bug? Open an Issue
- Security concern? Email maintainers directly (don't open public issue)
🙏 Recognition
Contributors will be recognized in:
- GitHub Contributors list
- Release notes for significant contributions
- Our eternal gratitude 🐛
"The Swarm welcomes all who serve the greater purpose."