Ctrl K
ComunidadGuías…

CONTRIBUTING.md

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

Archivo original ↗Preguntar a KiBot
# Contributing to Negotium

Negotium is an early-stage Bun and TypeScript monorepo. Issues and pull requests should keep the
runtime host-agnostic and preserve the package boundaries described in the architecture documents.

## Set up the repository

Requirements:

- Bun 1.3.5 or newer
- Node.js 20 or newer when testing Codex stdio MCP tools
- macOS, Linux, or Windows

Platform-specific code belongs behind a `process.platform` check, and POSIX
behavior must stay exactly as it was — a Windows fix that changes what macOS or
Linux does is not a fix. Prefer `node:path` helpers (`relative`, `isAbsolute`,
`basename`) over comparing separators by hand: a `startsWith` test anchored on a
literal `/` silently fails on a backslash path.

```bash
git clone git@github.com:maestrojeong/negotium.git
cd negotium
bun install
```

Credentials are not required for the token-free unit tests. Never commit `.env`, provider
credentials, Telegram tokens, a live `NEGOTIUM_STATE_DIR`, or generated vault keys.

## Make a change

- Keep unrelated changes in separate pull requests.
- Add or update tests for behavior changes.
- Update the root and package README files when commands, environment variables, exports, or
  lifecycle semantics change.
- Import across packages through public exports rather than source-relative paths.
- Do not add a built-in skill catalog. Reusable skills belong to the runtime-managed shared wiki
  and should accumulate through `skill_save` and the wiki archiver.

Run the relevant package tests while iterating, then run the repository checks before opening a
pull request:

```bash
bun run check
bun test
bun run release:check
```

For changes that affect package contents or public exports, also run:

```bash
bun run release:dry-run
bun run release:smoke
```

## Pull requests

Describe the user-visible behavior, the package boundaries affected, and how the change was
verified. Call out migrations, compatibility risks, new processes or ports, and changes to stored
state. Maintainers handle version updates and npm publishing after the pull request is merged.