# Guía del contribuidor

{% hint style="info" %}
Movimos el seguimiento de incidencias de OnlyDust a **GrantFox**:\
<https://www.grantfox.xyz/>
{% endhint %}

Contribuye a los repositorios de Trustless Work con un flujo de PR limpio.

Mantén los cambios pequeños. Mantén los commits claros. Apunta a `develop`.

### Flujo de trabajo

{% stepper %}
{% step %}

### Bifurcar, clonar y sincronizar

1. Bifurca el repo en GitHub.
2. Clona tu fork:

```sh
git clone https://github.com/YOUR_USERNAME/REPOSITORY_NAME.git
cd REPOSITORY_NAME
```

3. Agrega el remote upstream:

```sh
git remote add upstream https://github.com/TrustlessWork/REPOSITORY_NAME.git
```

4. Sincronizar `develop`:

```sh
git checkout develop
git pull upstream develop
```

{% endstep %}

{% step %}

### Crear una rama

Usa `main` para producción. Usa `develop` para trabajo en curso.

Crea una nueva rama para cada cambio:

```sh
git checkout develop
git pull upstream develop
git checkout -b feat/new-feature
```

#### Nomenclatura de ramas

* Características: `feat/nombre-de-la-característica`
* Correcciones: `fix/descripción-del-bug`
* Documentación: `docs/tema`
* Refactorizaciones: `refactor/área`

Ejemplos:

* `feat/escrow-ui`
* `fix/api-timeout`
* `docs/introducción`
* `refactor/limpieza-de-contratos`
  {% endstep %}

{% step %}

### Realiza cambios

Pautas:

* Mantén los cambios pequeños y atómicos.
* Asegúrate de que las pruebas pasen (cuando estén disponibles).
* Sigue las reglas de lint/formato existentes en el repo.
  {% endstep %}

{% step %}

### Commit y push

#### Mensajes de commit

Formato:

```
tipo: breve descripción (<= 72 caracteres)
```

Ejemplos:

* `feat: agregar sistema de aprobación escrow`
* `fix: manejar tiempo de espera de la API`
* `docs: actualizar README con instrucciones de configuración`

Tipos comunes:

* `feat`: Nueva característica
* `fix`: Corrección de bug
* `docs`: Actualización de documentación
* `refactor`: Reestructuración de código
* `style`: Formato de código (sin cambios de lógica)
* `test`: Añadir o actualizar pruebas
* `build`: Cambios en el proceso de build o dependencias
* `ci`: Cambios en la configuración de CI/CD
* `chore`: Actualizaciones misceláneas

Push:

```sh
git add .
git commit -m "feat: add escrow approval system"
git push origin feat/new-feature
```

{% endstep %}

{% step %}

### Abrir un PR

Abre un Pull Request desde tu rama hacia `develop`.

Incluye:

* Qué cambió y por qué.
* Cómo lo probaste.
* Capturas de pantalla para cambios en la UI (si procede).
  {% endstep %}

{% step %}

### Revisión y merge

Los mantenedores revisarán tu PR.

Si recibes comentarios:

1. Haz push de commits de seguimiento a la misma rama.
2. Resuelve las conversaciones.
3. Espera la aprobación y el merge.
   {% endstep %}
   {% endstepper %}

### Enlace

Usa estos para encontrar trabajo, explorar repos y hacer preguntas.

{% columns %}
{% column %}

#### Tareas y recompensas

[GrantFox](https://www.grantfox.xyz/)
{% endcolumn %}

{% column %}

#### Repositorios

[TrustlessWork en GitHub](https://github.com/TrustlessWork)
{% endcolumn %}

{% column %}

#### Comunidad

[Grupo de Telegram](https://t.me/+kmr8tGegxLU0NTA5)
{% endcolumn %}
{% endcolumns %}

{% hint style="info" %}
Si estás bloqueado, deja un mensaje corto en Telegram con el enlace a tu PR.
{% endhint %}
