Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
84 changes: 84 additions & 0 deletions .github/ISSUE_TEMPLATE/bug.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
name: Reportar un error
description: Informa un comportamiento incorrecto o una regresión reproducible.
title: "[Bug]: "
labels:
- bug
assignees:
- eeminionn
body:
- type: markdown
attributes:
value: |
Gracias por ayudar a mejorar Tomatin Code Lab. No incluyas tokens, contraseñas, soluciones privadas ni datos personales de estudiantes.
- type: dropdown
id: area
attributes:
label: Área afectada
options:
- Aula del estudiante
- Panel del mentor
- Misiones o evaluador
- Autenticación e invitaciones
- Sincronización con GitHub
- Accesibilidad o diseño responsive
- Documentación o infraestructura
validations:
required: true
- type: textarea
id: summary
attributes:
label: Descripción
description: Explica qué ocurrió y cuál es el impacto.
placeholder: Al intentar..., la aplicación...
validations:
required: true
- type: textarea
id: reproduction
attributes:
label: Pasos para reproducir
description: Incluye el recorrido mínimo y datos de ejemplo no sensibles.
placeholder: |
1. Iniciar sesión como...
2. Abrir...
3. Presionar...
validations:
required: true
- type: textarea
id: expected
attributes:
label: Resultado esperado
validations:
required: true
- type: textarea
id: actual
attributes:
label: Resultado actual y evidencia
description: Puedes arrastrar capturas o pegar errores ya redactados.
validations:
required: true
- type: input
id: environment
attributes:
label: Entorno
description: URL, navegador, sistema operativo y tamaño de pantalla.
placeholder: Beta, Safari 18, macOS, 1440 × 900
validations:
required: true
- type: textarea
id: acceptance
attributes:
label: Criterios de aceptación sugeridos
description: ¿Qué debería comprobarse para cerrar este issue?
placeholder: |
- [ ] El recorrido termina sin errores.
- [ ] Existe una prueba de regresión.
- type: checkboxes
id: checks
attributes:
label: Confirmaciones
options:
- label: Busqué issues existentes y no encontré uno equivalente.
required: true
- label: Eliminé secretos y datos personales de la evidencia.
required: true

9 changes: 9 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
blank_issues_enabled: false
contact_links:
- name: Preguntas y conversación
url: https://github.com/eeminionn/tomatin-code-lab/discussions/categories/q-a
about: Usa Discussions para preguntas de uso que no describan un error ni una tarea concreta.
- name: Reporte privado de seguridad
url: https://github.com/eeminionn/tomatin-code-lab/security/advisories/new
about: Informa vulnerabilidades, secretos expuestos o accesos indebidos sin publicar detalles.

74 changes: 74 additions & 0 deletions .github/ISSUE_TEMPLATE/feature.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
name: Proponer una mejora
description: Propón una capacidad nueva a partir de una necesidad concreta.
title: "[Mejora]: "
labels:
- enhancement
assignees:
- eeminionn
body:
- type: markdown
attributes:
value: |
Describe primero el problema. Una buena propuesta permite comparar alternativas antes de elegir una implementación.
- type: dropdown
id: audience
attributes:
label: Persona beneficiada
options:
- Estudiante
- Mentor o administrador
- Creador de contenido
- Contribuidor
- Varias de las anteriores
validations:
required: true
- type: textarea
id: problem
attributes:
label: Problema u oportunidad
description: Explica qué necesidad existe y cómo se resuelve actualmente.
validations:
required: true
- type: textarea
id: proposal
attributes:
label: Propuesta
description: Describe el resultado deseado sin asumir detalles técnicos innecesarios.
validations:
required: true
- type: textarea
id: alternatives
attributes:
label: Alternativas consideradas
description: Incluye opciones descartadas y sus principales compromisos.
- type: textarea
id: acceptance
attributes:
label: Criterios de aceptación
placeholder: |
- [ ] ...
- [ ] ...
validations:
required: true
- type: textarea
id: privacy
attributes:
label: Privacidad, seguridad y accesibilidad
description: Indica si toca datos estudiantiles, permisos, autenticación o interacción por teclado.
validations:
required: true
- type: textarea
id: references
attributes:
label: Referencias o diseños
description: Enlaces, capturas o productos de referencia.
- type: checkboxes
id: checks
attributes:
label: Confirmaciones
options:
- label: Busqué propuestas existentes y no encontré una equivalente.
required: true
- label: Entiendo que el proyecto está en desarrollo y la propuesta puede iterarse.
required: true

59 changes: 59 additions & 0 deletions .github/ISSUE_TEMPLATE/task.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
name: Registrar una tarea técnica
description: Define mantenimiento, documentación, deuda técnica o trabajo interno verificable.
title: "[Tarea]: "
labels:
- maintenance
assignees:
- eeminionn
body:
- type: dropdown
id: area
attributes:
label: Área
options:
- Frontend
- Backend y Supabase
- Contenido de misiones
- Pruebas y accesibilidad
- GitHub Actions y despliegue
- Documentación y comunidad
validations:
required: true
- type: textarea
id: context
attributes:
label: Contexto
description: Explica por qué la tarea existe y qué riesgo o costo evita.
validations:
required: true
- type: textarea
id: work
attributes:
label: Tareas
placeholder: |
- [ ] ...
- [ ] ...
validations:
required: true
- type: textarea
id: acceptance
attributes:
label: Criterios de aceptación
placeholder: |
- [ ] ...
- [ ] ...
validations:
required: true
- type: textarea
id: validation
attributes:
label: Validación prevista
description: Comandos, recorridos o métricas que demostrarán que quedó terminado.
validations:
required: true
- type: textarea
id: rollout
attributes:
label: Despliegue y reversión
description: Completa esta sección cuando la tarea cambie producción, datos o permisos.

48 changes: 48 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
## Issue relacionado

Closes #

## Qué cambia

<!-- Resume el resultado observable y las áreas modificadas. -->

-

## Por qué

<!-- Explica el problema, su causa y el impacto para estudiantes o mentores. -->

## Implementación

<!-- Incluye decisiones relevantes, alternativas descartadas y compatibilidad. -->

## Evidencia visual

<!-- Para cambios de interfaz, agrega capturas de escritorio y móvil. Usa "No aplica" en otros casos. -->

## Validación

- [ ] `pnpm check`
- [ ] `pnpm test:e2e`
- [ ] `supabase test db` o no aplica
- [ ] Probé el recorrido afectado en local o beta

## Privacidad, seguridad y accesibilidad

- [ ] No añadí secretos, soluciones privadas ni datos personales al código, fixtures o logs.
- [ ] Revisé RLS/permisos si cambié acceso a datos o autenticación.
- [ ] Revisé teclado, nombres accesibles, contraste y responsive si cambié la interfaz.
- [ ] Documenté cualquier riesgo residual.

## Despliegue

<!-- Migraciones, variables, orden de despliegue, compatibilidad y plan de reversión. -->

## Checklist de entrega

- [ ] El PR tiene responsable, labels y milestone cuando corresponde.
- [ ] Actualicé pruebas y documentación.
- [ ] No contiene cambios ajenos al issue.
- [ ] CI está en verde.
- [ ] Está listo para revisión.

96 changes: 96 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
# Código de conducta

## Nuestro compromiso

Como miembros, contribuidores y responsables de Tomatin Code Lab, nos
comprometemos a hacer de nuestra comunidad una experiencia libre de acoso para
todas las personas, sin importar edad, tamaño corporal, discapacidad visible o
invisible, etnia, características sexuales, identidad y expresión de género,
nivel de experiencia, educación, situación socioeconómica, nacionalidad,
apariencia, raza, religión, identidad u orientación sexual.

Nos comprometemos a actuar de formas que contribuyan a una comunidad abierta,
acogedora, diversa, inclusiva y saludable.

## Nuestros estándares

Algunos comportamientos que ayudan a crear un entorno positivo son:

- Demostrar empatía y amabilidad.
- Respetar opiniones, puntos de vista y experiencias diferentes.
- Dar y recibir retroalimentación constructiva con respeto.
- Asumir responsabilidad, disculparse y aprender de los errores.
- Priorizar el bienestar de la comunidad, especialmente el de estudiantes.

No se acepta:

- Lenguaje o imágenes sexualizadas, ni atención sexual no deseada.
- Insultos, comentarios despectivos, ataques personales o políticos.
- Acoso público o privado.
- Publicar datos privados, código estudiantil, credenciales o información
personal sin autorización explícita.
- Cualquier conducta que razonablemente resulte inapropiada en un entorno
educativo o profesional.

## Responsabilidades

Las personas responsables del proyecto deben aclarar y aplicar estos estándares
de manera justa. Pueden eliminar, editar o rechazar comentarios, commits,
código, issues u otras contribuciones que no respeten este código, y explicarán
las decisiones de moderación cuando corresponda.

## Alcance

Este código se aplica en todos los espacios del proyecto y cuando una persona
representa oficialmente a Tomatin Code Lab en espacios públicos.

## Reportes

Las conductas abusivas, acosadoras o inaceptables deben reportarse en privado a
la persona responsable del proyecto, [@eeminionn](https://github.com/eeminionn).
No publiques nombres, capturas, datos personales ni otros antecedentes sensibles
en un issue público. Si todavía no tienes un canal privado acordado, abre un
issue que solo solicite contacto privado y espera instrucciones antes de
compartir detalles.

Todo reporte será revisado de forma oportuna y justa. Quienes administran el
proyecto deben respetar la privacidad y seguridad de la persona que reporta.

## Guía de aplicación

### 1. Corrección

**Impacto:** lenguaje inapropiado u otra conducta considerada poco profesional
o no deseada.

**Consecuencia:** advertencia privada con una explicación clara. Se puede
solicitar una disculpa pública.

### 2. Advertencia

**Impacto:** una infracción aislada o una serie de acciones.

**Consecuencia:** advertencia con consecuencias para conductas posteriores y
restricción temporal de interacción cuando sea necesario.

### 3. Suspensión temporal

**Impacto:** una infracción grave, incluida una conducta inapropiada sostenida.

**Consecuencia:** suspensión temporal de interacciones públicas o privadas con
la comunidad.

### 4. Suspensión permanente

**Impacto:** un patrón de infracciones, acoso sostenido o agresión contra
personas o grupos.

**Consecuencia:** prohibición permanente de participar en la comunidad.

## Atribución

Este código está adaptado del
[Contributor Covenant](https://www.contributor-covenant.org/), versión 2.0,
disponible bajo licencia
[CC BY 4.0](https://creativecommons.org/licenses/by/4.0/).

Loading