-
Notifications
You must be signed in to change notification settings - Fork 6.8k
Contributing
How to contribute to Ruflo.
# Clone the repository
git clone https://github.com/ruvnet/ruflo.git
cd ruflo
# Install dependencies
npm install
# Start daemon
npx ruflo@latest daemon start
# Run tests
npm test-
TypeScript — Strict mode, no
any - Formatting — Prettier (auto-run on commit)
- Linting — ESLint + TypeScript strict
- Testing — Jest (London school TDD preferred)
-
Create a branch from
main:git checkout -b feat/my-feature
-
Test your changes:
npm test npm run build npx ruflo@latest doctor -
Commit with message (no
--no-verify):git commit -m "feat: add my feature"Commit message format:
-
feat:— New feature -
fix:— Bug fix -
refactor:— Code improvement -
docs:— Documentation -
test:— Test-related
-
-
Push and open PR against
main:git push origin feat/my-feature
When publishing (maintainers only), ALL THREE packages must be updated together:
# STEP 1: Publish @claude-flow/cli
cd v3/@claude-flow/cli
npm version patch # or minor/major
npm run build
npm publish
# STEP 2: Publish claude-flow (umbrella)
cd /Users/cohen/Projects/ruflo
npm version patch
npm publish
# STEP 3: Publish ruflo (CLI wrapper — CRITICAL)
cd ruflo
npm version patch
npm publishAll three packages must have the same version number and be published within the same CI run.
Ruflo maintains a test baseline of 1,999 passing tests:
npm test -- --coverageIf you add features:
- Add tests (TDD first)
- Maintain or improve coverage (>80%)
- Don't skip tests (even flaky ones — fix them)
When committing via Git, you'll see hooks ask for permissions. Allow them:
-
pre-commit— Format and lint check -
commit-msg— Message validation -
post-commit— Update ADR index if needed
Never use --no-verify to skip hooks.
Before claiming performance improvements, run the benchmark suite:
npx ruflo@latest performance benchmark --suite allDocument baseline and new metrics in your PR.
When you add a feature:
- Update README.md if it's user-facing
- Update docs/USERGUIDE.md for CLI/MCP changes
- Add ADR if it's an architectural decision (ADR-130+)
- Update this wiki (see deployment below)
- Create
v3/@claude-flow/cli/src/commands/my-command.ts - Export from
v3/@claude-flow/cli/src/index.ts - Add tests in
v3/@claude-flow/cli/src/__tests__/ - Document in CLI-Reference wiki page
- Create
v3/@claude-flow/cli/src/mcp-tools/my-tool.ts - Export from
v3/@claude-flow/cli/src/mcp-tools/index.ts - Register in
v3/@claude-flow/cli/src/mcp-server.ts - Add tests
- Create
plugins/ruflo-my-plugin/ - Include
plugin.json(metadata) - Implement commands, skills, agents
- Publish to npm with
ruflo-prefix - Submit PR to add to registry
Before submitting:
- Branch is up-to-date with
main - All tests pass:
npm test - Build succeeds:
npm run build - No new warnings:
npx ruflo@latest doctor - Commit messages are clear
- No
--no-verifyused - Tests added for new code
- Documentation updated (if needed)
- No API key / secret commits
Three-package lockstep:
- Merge PR to
main - Update all three
package.jsonversions - Publish all three to npm in sequence
- Tag release:
git tag v<version> - Push tags:
git push --tags - Create GitHub release with notes
For architectural decisions:
- Create
v3/docs/adr/ADR-XXX-my-decision.md - Use template: Title, Status, Context, Decision, Consequences
- Link to related ADRs (supersedes, amends, depends-on)
- Submit PR for discussion
- Once accepted, run
npx ruflo@latest adr indexto update causal graph
We look for:
- Correctness — Does it work?
- Testing — Is it tested?
- Performance — Is it fast?
- Security — Are inputs validated?
- Documentation — Is it clear?
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Maintainers: @ruvnet and team
Ruflo v3.10.1 · GitHub · Contributing Guidelines
Ruflo v3.10.1 · npm · GitHub · Benchmarks