Ctrl K
ComunidadGuías…

CONTRIBUTING.md

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
# Contributing to Havemind

Thanks for your interest. Havemind is a small, deliberately narrow project: a
self-hosted, local-first sync layer for Obsidian built for two people sharing
one vault. Contributions are welcome within that scope.

## Before you start

- Read the [README](README.md) for the architecture and the trust model.
- This is a **technical alpha**. Use disposable vaults only; never test against
  a vault with real notes.
- Open an issue to discuss non-trivial changes before writing code, so we can
  agree the approach early.

## Development

Requires Node.js 22 and npm 10.

```bash
npm ci
npm run build
npm run typecheck
npm run lint
npm test
```

## Ground rules

- **Test-driven.** Write a failing test first, then the implementation. New
  logic ships with tests.
- **The server stays opaque.** It stores content-addressed blobs and revision
  headers only, it never computes diffs, merges, or provenance. Keep that
  boundary intact.
- **No new heavy dependencies.** React, Redis, PostgreSQL, message brokers,
  ORMs, custom cryptography, and Kubernetes are out of scope by design.
- **No secrets in the repo.** Never commit tokens, keys, invitations, or any
  private infrastructure details (addresses, hostnames, credentials).

## Pull requests

- Keep changes focused; one logical change per PR.
- Use [Conventional Commits](https://www.conventionalcommits.org) for messages
  (`feat:`, `fix:`, `refactor:`, `test:`, `docs:`, `chore:`).
- Ensure `build`, `typecheck`, `lint`, and `test` all pass before requesting
  review. CI runs the same checks plus the release acceptance tests.

## Code of conduct

By participating you agree to abide by the [Code of Conduct](CODE_OF_CONDUCT.md).