From 851bc04f1e3baac0aa11e5563059311ddd69d02f Mon Sep 17 00:00:00 2001 From: eeminionn <109454414+eeminionn@users.noreply.github.com> Date: Thu, 30 Jul 2026 16:35:49 -0400 Subject: [PATCH] docs: complete community standards --- .github/ISSUE_TEMPLATE/bug.yml | 84 ++++++++++++++++++++++++++ .github/ISSUE_TEMPLATE/config.yml | 9 +++ .github/ISSUE_TEMPLATE/feature.yml | 74 +++++++++++++++++++++++ .github/ISSUE_TEMPLATE/task.yml | 59 ++++++++++++++++++ .github/pull_request_template.md | 48 +++++++++++++++ CODE_OF_CONDUCT.md | 96 ++++++++++++++++++++++++++++++ CONTRIBUTING.md | 62 +++++++++++++------ 7 files changed, 414 insertions(+), 18 deletions(-) create mode 100644 .github/ISSUE_TEMPLATE/bug.yml create mode 100644 .github/ISSUE_TEMPLATE/config.yml create mode 100644 .github/ISSUE_TEMPLATE/feature.yml create mode 100644 .github/ISSUE_TEMPLATE/task.yml create mode 100644 .github/pull_request_template.md create mode 100644 CODE_OF_CONDUCT.md diff --git a/.github/ISSUE_TEMPLATE/bug.yml b/.github/ISSUE_TEMPLATE/bug.yml new file mode 100644 index 0000000..8e518c9 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug.yml @@ -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 + diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..233b72f --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -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. + diff --git a/.github/ISSUE_TEMPLATE/feature.yml b/.github/ISSUE_TEMPLATE/feature.yml new file mode 100644 index 0000000..9099567 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature.yml @@ -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 + diff --git a/.github/ISSUE_TEMPLATE/task.yml b/.github/ISSUE_TEMPLATE/task.yml new file mode 100644 index 0000000..5e3ff64 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/task.yml @@ -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. + diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 0000000..729eda7 --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,48 @@ +## Issue relacionado + +Closes # + +## Qué cambia + + + +- + +## Por qué + + + +## Implementación + + + +## Evidencia visual + + + +## 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 + + + +## 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. + diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..7e42e3c --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -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/). + diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 8e0d076..39191a7 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,26 +1,52 @@ -# Contributing +# Contribuir -Contributions should keep the project educational, original, accessible, and -safe to run in a browser. +Las contribuciones deben mantener el proyecto educativo, original, accesible y +seguro. Lee el [código de conducta](CODE_OF_CONDUCT.md) antes de participar. -## Local workflow +## Issues -1. Create a focused branch from `main`. -2. Make one coherent change. -3. Run `npm run check`. -4. Open a pull request that explains the learning or user impact. +Usa el formulario que corresponda y completa el contexto, las tareas, los +criterios de aceptación y la validación prevista. Cada issue de implementación +debe tener: -## Mission guidelines +- Una persona responsable. +- Labels de tipo y área. +- Un milestone cuando forme parte de una entrega planificada. +- Un GitHub Project solo cuando exista un tablero activo que aporte seguimiento + adicional; no se crea uno para duplicar un milestone. +- Una checklist actualizada durante el trabajo. -- Write original prompts; do not copy course assignments. -- State the objective, starter code, two hints, and at least two executable - checks. -- Keep Chilean references welcoming and understandable without local context. -- Avoid real secrets, personal data, harassment, and deceptive instructions. -- Prefer a clear concept over a joke when the two compete. +Las dudas abiertas pertenecen a Discussions. Nunca publiques secretos, tokens, +soluciones privadas ni datos personales de estudiantes. -## Accessibility +## Flujo local -All controls need a keyboard path and accessible name. Check desktop and mobile -layouts, visible focus, reduced motion, contrast, and long Spanish labels. +1. Crea una rama enfocada desde `main`. +2. Realiza un cambio coherente y vinculado a un issue. +3. Ejecuta `pnpm check`; añade `pnpm test:e2e` y `supabase test db` cuando + corresponda. +4. Abre un pull request con `Closes #…`, impacto, validación, privacidad y + despliegue. +5. Completa responsable, labels y milestone antes de solicitar revisión. +6. Fusiona solo con CI en verde y actualiza la checklist del issue. +## Misiones + +- Escribe enunciados originales; no copies tareas de otros cursos. +- Incluye objetivo, contrato, starter code, pistas progresivas y casos + ejecutables. +- Mantén las referencias locales acogedoras y comprensibles sin contexto + adicional. +- Prefiere un concepto claro antes que un chiste. + +## Privacidad + +Las credenciales, tests ocultos, soluciones de referencia y entregas +estudiantiles son datos de servidor. No deben aparecer en el bundle, fixtures, +logs ni historial de Git. Los cambios de autorización necesitan pruebas RLS. + +## Accesibilidad + +Todos los controles necesitan una ruta de teclado y un nombre accesible. Revisa +escritorio y móvil, foco visible, movimiento reducido, contraste y etiquetas +largas en español.