Skip to content

πŸ“– How to contribute β€” read this first (pinned)Β #2035

Open

Description

@ruvnet

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 .js extensions 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-search or hooks_explain drove 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.9 caught a function returning success: true without 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

  1. pinned this issue on May 17, 2026
  2. Tefa-hup commented on Jul 7, 2026

    @Tefa-hup

    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.json that will automatically upgrade when a new major Node.js Version is released. Learn More: https://vercel.link/node-version
    05:18:54.920 Detected pnpm-lock.yaml 9 which may be generated by pnpm@9.x or pnpm@10.x
    05: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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions