Contributing to CloudBurn

September 7, 2026 ยท View on GitHub

Thanks for contributing to CloudBurn.

Prerequisites

  • Node.js 24+
  • pnpm 11 (the exact version is pinned in package.json)

Local Setup

See the local development guide for focused commands and validation options.

pnpm install
pnpm build

pnpm install runs the root prepare script and installs the Husky git hooks for the repo. If you installed with scripts disabled, run:

pnpm prepare

Verify Before Opening a PR

pnpm verify

This runs documentation checks, package boundaries, lint, typecheck, and all test suites across the monorepo. For documentation-only changes, run pnpm docs:check && pnpm docs:test; see the documentation catalog and maintenance policy.

Project Boundaries

See docs/ARCHITECTURE.md for the full package graph and responsibility matrix.

The dependency direction is cli -> sdk -> rules. No reverse imports.

Code Style

  • Add TSDoc docstrings to all exports. Document purpose, parameters, and return values.

Adding a New Rule

See docs/guides/adding-a-rule.md for the full end-to-end walkthrough covering file placement, createRule, dataset dependencies, tests, and registration.

Changesets

See the release guide for the complete contributor and automated release flow.

Write .changeset/<slug>.md files directly for user-facing package changes. Published packages: cloudburn (cli), @cloudburn/sdk, @cloudburn/rules.

One changeset file per package โ€” never list multiple packages in one file.

Do not run the versioning step in feature PRs. Versioning happens in the automated release PR on main.

Maintainer-only release scripts:

pnpm changeset:version
pnpm release

Commits

Use Conventional Commits with package scope:

feat(sdk): add S3 lifecycle rule support
fix(rules): correct evaluator for CLDBRN-AWS-EBS-1
refactor(cli): simplify output formatter

Types: feat|fix|refactor|build|ci|chore|revert|docs|style|perf|test.

Pull Requests

  • Use a conventional commit title matching the primary change (e.g. feat(sdk): short description).
  • Fill in .github/pull_request_template.md.
  • Link related issues.
  • Include what you tested.

Issues

Use GitHub issue forms:

  • Bug Report
  • Feature Request

Security disclosures should not be filed as public issues.