Ctrl K
ComunidadGuías…

CONTRIBUTING.md

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

Archivo original ↗Preguntar a KiBot
# Contributing to Scalytics Copilot

Thanks for contributing. This document defines the expected workflow for issues, changes, and pull requests.

## Ground Rules

- Be respectful and constructive. Follow `CODE_OF_CONDUCT.md`.
- Keep changes focused and reviewable.
- Write clear commit messages and PR descriptions.
- Include tests or explain why tests are not applicable.
- Never commit secrets, keys, or credentials.

## Development Setup

Prerequisites:

- Node.js 20+
- npm 10+
- Python 3.11+ (for Python services and sanity checks)

Backend setup:

```bash
npm install
npm run setup
npm run dev
```

Frontend setup (separate shell):

```bash
cd frontend
npm install
npm start
```

## Branching and Commits

- Branch from `main`.
- Use short, descriptive branch names:
  - `feat/<name>`
  - `fix/<name>`
  - `docs/<name>`
  - `chore/<name>`
- Keep PRs small enough for targeted review.

## Coding Standards

- Follow existing project patterns in `src/`, `frontend/`, and `scripts/`.
- **Pre-Commit Check:** We use a standardized validation script to ensure code quality and security. Run this command locally before pushing or opening a PR:

```bash
npm run commit-check
```

This script performs:
1.  **Backend Tests:** Runs Jest unit and integrity tests.
2.  **Frontend Validation:** Runs linting (`eslint`) and smoke tests.
3.  **Python Sanity:** Compiles all Python services to detect syntax errors.
4.  **Security Audit:** Scans dependencies for known vulnerabilities.
5.  **Local CodeQL:** (Optional) Performs deep static analysis if the `codeql` CLI is installed.

### Local CodeQL (Deep Analysis)

For deep security analysis mirroring our CI, we recommend installing the [CodeQL CLI](https://github.com/github/codeql-cli-binaries/releases). If found in your `PATH`, `commit-check` will automatically run it and output results to `.tmp/codeql/`.

If you need to increase memory for a local run:
```bash
CODEQL_JS_RAM_MB=8192 npm run commit-check
```

## Pull Request Process

1. Open an issue first for large or breaking changes.
2. Open a PR with:
   - concise summary
   - rationale
   - testing notes
   - migration notes if applicable
3. Link related issues (`Fixes #<id>`).
4. Ensure CI is green before requesting final review.
5. Obtain approval from a code owner/maintainer.

## Release and Versioning

- This project uses Semantic Versioning (`MAJOR.MINOR.PATCH`).
- User-facing notable changes should be recorded in `CHANGELOG.md`.
- `RELEASE_NOTES.md` can be used for richer release narratives.

## Security

If you find a vulnerability, do not open a public issue. Follow `SECURITY.md`.