Repository navigation
π How to contribute β read this first (pinned)Β #2035
Description
Contributing to ruflo / claude-flow β read this first
Pin this so new contributors see it.
Full guide:docs/AGENT_CONTRIBUTOR.md
The one rule
File an issue before opening a PR. Even 3 lines. We collaborate on the shape of the change before you sink a weekend into it.
issue β discussion β agreed approach β PR β review β merge
β
not optional
Exceptions: typo fixes, dep bumps, CVE security patches. Everything else β new feature, refactor, plugin, behavior change β starts with an issue.
If you open a PR cold, we'll politely ask you to file the missing issue first. Not punitive, structural: we can't reason about a change without the why.
Where contributions go
| Tier | Where | What |
|---|---|---|
| 1 β most contributions | New plugin under v3/plugins/ or v3/@claude-flow/plugin-* |
Publishes to npm independently; doesn't block core releases |
| 2 | Existing @claude-flow/* package |
Needs an issue; sometimes an ADR |
| 3 β architectural | Core changes (orchestrator, hive-mind, transport, federation) | Requires an ADR draft before implementation |
Reference plugins to model after: @claude-flow/plugin-agent-federation, @claude-flow/plugin-iot-cognitum, @claude-flow/aidefence.
Standards (the short list)
- ESM with explicit
.jsextensions in TypeScript imports (vitest tolerates bare, Node doesn't) - No stubs. Real behavior or a loud
throw new Error('not implemented')β never silent fake success - Contrastive testing for detection code β paired positive + negative-control corpora, both with explicit assertions
- CI smoke for every new contract that crosses a process or package boundary (pattern:
scripts/smoke-<name>.mjs, wired into.github/workflows/v3-ci.yml) - Files under 500 lines. TypeScript strict mode. DDD layout for Tier 2/3.
- Cross-OS β macOS, Linux, Windows. Test path separators on Windows early.
Writing a good issue
Concrete repro, expected behavior, env (node version, OS, alpha vs stable), what you ruled out, optional proposed fix. The fastest-triaged issues look like #2024 and #2034. Use the templates under .github/ISSUE_TEMPLATE/.
Writing a good PR
## Summary
- 1-3 bullets
## Issue / motivation
Closes #NNNN.
## Approach
Design choice in 1 paragraph. Cite ADR if Tier 3.
## Test plan
- [x] Unit tests
- [x] CI smoke (when applicable)
- [x] Manual repro
## Risks / open questions
Anything you're unsure about.Smaller is better. A PR that does 3 things is harder to review than 3 PRs that each do 1.
AI agent contributors
Same conventions apply. No agent-special exceptions. A few specifics:
- Memory-as-bus, not subagent-to-subagent SendMessage. See #2028 for why.
- Cite your trajectory. If a verdict from
agentdb_pattern-searchorhooks_explaindrove the work, mention it. - Don't fabricate. Uncertain? File an issue with what you've ruled out. Plausible-looking-but-wrong is worse than honest "I don't know yet."
- Validate before claiming done. Run the tests. Run the smoke. The codex review of
@claude-flow/codex@3.0.0-alpha.9caught a function returningsuccess: truewithout doing the work. Don't be that function.
Where to ask
- Quick stuff β comment on your issue, ping
@ruvnet - Architecture β ADR draft in
v3/docs/adr/ - Sensitive β
ruv@ruv.net
Full guide with reference plugins, publishing procedure, lockstep rules, and contrastive testing pattern: docs/AGENT_CONTRIBUTOR.md.
Looking forward to your contribution.
β @ruvnet
Activity
Tefa-hup commentedon Jul 7, 2026
05:18:49.414 Running build in Washington, D.C., USA (East) β iad1
05:18:49.415 Build machine configuration: 2 cores, 8 GB
05:18:49.506 Cloning github.com/Tefa-hup/ruflo (Branch: main, Commit: 865dd7d)
05:18:49.507 Previous build caches not available.
05:18:52.690 Cloning completed: 3.184s
05:18:53.792 Running "vercel build"
05:18:53.811 Vercel CLI 54.19.0
05:18:54.861 Warning: Detected "engines": { "node": ">=20.0.0" } in your
package.jsonthat will automatically upgrade when a new major Node.js Version is released. Learn More: https://vercel.link/node-version05:18:54.920 Detected
pnpm-lock.yaml9 which may be generated by pnpm@9.x or pnpm@10.x05:18:54.921 Using pnpm@10.x based on project creation date
05:18:54.921 To use pnpm@9.x, manually opt in using corepack (https://vercel.com/docs/deployments/configure-a-build#corepack)
05:18:54.945 Installing dependencies...
05:18:55.498 βERR_PNPM_OUTDATED_LOCKFILEβ Cannot install with "frozen-lockfile" because pnpm-lock.yaml is not up to date with /package.json
05:18:55.498
05:18:55.498 Note that in CI environments this setting is true by default. If you still need to run install in such cases, use "pnpm install --no-frozen-lockfile"
05:18:55.498
05:18:55.498 Failure reason:
05:18:55.498 specifiers in the lockfile don't match specifiers in package.json:
05:18:55.498 * 11 dependencies are mismatched:
05:18:55.499 - @claude-flow/cli-core (lockfile: ^3.7.0-alpha.5, manifest: 3.7.0-alpha.5)
05:18:55.499 - @claude-flow/mcp (lockfile: ^3.0.0-alpha.8, manifest: 3.0.0-alpha.9)
05:18:55.499 - @claude-flow/neural (lockfile: ^3.0.0-alpha.8, manifest: 3.0.0-alpha.9)
05:18:55.499 - @claude-flow/shared (lockfile: ^3.0.0-alpha.7, manifest: 3.0.0-alpha.8)
05:18:55.499 - @noble/ed25519 (lockfile: ^2.1.0, manifest: 2.3.0)
05:18:55.500 - @ruvector/rabitq-wasm (lockfile: ^0.1.0, manifest: 0.1.0)
05:18:55.500 - semver (lockfile: ^7.6.0, manifest: 7.7.3)
05:18:55.500 - zod (lockfile: ^3.22.4, manifest: 3.25.76)
05:18:55.500 - vitest (lockfile: ^1.0.0, manifest: ^3.2.6)
05:18:55.501 - agentdb (lockfile: ^3.0.0-alpha.9, manifest: ^3.0.0-alpha.17)
05:18:55.501 - agentic-flow (lockfile: ^2.0.7, manifest: ^2.0.14)
05:18:55.501
05:18:55.519 Error: Command "pnpm install" exited with 1