Contribuir
TomaNote es un proyecto de código abierto y cualquier ayuda es bienvenida: reportes de errores, propuestas de funcionalidades, traducciones o mejoras de código.
Hay dos repositorios a los que puedes contribuir:
- TomaNote (la app) — github.com/Tomanote/TomaNote
- TomaNote-Docs (este sitio) — github.com/Tomanote/TomaNote-Docs
Ambos siguen las mismas convenciones: rama default master, rama de integración dev, commits en inglés.
Contribuir a la app
Sección titulada «Contribuir a la app»Stack técnico
Sección titulada «Stack técnico»- Astro (SSG) + Tailwind CSS + SCSS.
- Módulos JavaScript en tiempo de ejecución, verificados con TypeScript.
- Se requiere Node.js >= 22.12.0.
Configuración
Sección titulada «Configuración»git clone https://github.com/Tomanote/TomaNote.gitcd TomaNotegit remote add upstream https://github.com/Tomanote/TomaNote.gitgit checkout -b feature/nombre-de-tu-feature # o fix/nombre-de-tu-fixnpm ciComandos útiles
Sección titulada «Comandos útiles»| Comando | Descripción |
|---|---|
npm run dev |
Iniciar el servidor de desarrollo (sincroniza el roadmap antes) |
npm run test:run |
Ejecutar todos los tests unitarios una vez |
npm run build |
Build de producción (sincroniza roadmap + changelog) |
npx astro check |
Type-check del proyecto Astro |
npm run changelog |
Regenerar CHANGELOG.md desde el roadmap |
npm run sync:roadmap |
Sincronizar las traducciones del roadmap |
npm run security:check |
Auditar dependencias |
Flujo de trabajo con git
Sección titulada «Flujo de trabajo con git»- Nunca hagas push directo a
master. Las ramas feature se integran primero endevmediante un pull request;dev→masterlo mergea manualmente la mantenedora. masterestá protegida: se requiere un PR y el status checkbuild-and-testdebe pasar.- Mantén los commits autocontenidos y revertibles de forma independiente: un cambio lógico por commit, cada uno deja el proyecto en un estado funcional.
Convenciones de commits
Sección titulada «Convenciones de commits»Usa Conventional Commits en inglés:
feat(scope): add ...fix(scope): correct ...refactor(scope): restructure ...docs(scope): update ...test(scope): cover ...chore(scope): ...Ejemplo: fix(editor): apply saved font-size to new tabs.
Convenciones de código
Sección titulada «Convenciones de código»- Estructura basada en features: los componentes viven en
src/features/[name]/(componente Astro, estilos SCSS, lógica JS, tests). - Módulos JS basados en clases con un patrón
init(). - i18n: nunca escribas textos de interfaz directamente — usa los archivos de locale
src/locales/en.jsonyes.json; ambos deben mantenerse sincronizados. - Roadmap:
src/features/roadmap/roadmap-data.jsones la fuente de verdad única; no edites las claves de locale generadas niCHANGELOG.mda mano. - Logging: usa la utilidad
devLoggeren lugar deconsole.*directamente.
Puertas de calidad (obligatorias antes de un PR)
Sección titulada «Puertas de calidad (obligatorias antes de un PR)»npm run test:runnpm run buildnpx astro check
CI / CD
Sección titulada «CI / CD»build-and-test— ejecutaastro check, los tests unitarios y el build en cada PR y en los pushes amaster. Bloquea el merge.- Auditoría de seguridad —
npm auditmás un informe de dependencias desactualizadas; solo informativo. - Deploy — publica en GitHub Pages en cada push a
master. El sitio se sirve desde la ramagh-pagesy requiere un archivo.nojekyllendist/.
Reportar issues
Sección titulada «Reportar issues»- ¿Encontraste un bug? Abre un issue con la plantilla
Bug Report. - ¿Propones un cambio grande? Abre primero un issue o una discusión.
- Consulta también SECURITY.md para reportar problemas de seguridad.
Contribuir a esta documentación
Sección titulada «Contribuir a esta documentación»La documentación sigue el mismo flujo de trabajo que la app. Algunas particularidades:
- Cada página debe existir en inglés (
src/content/docs/) y en español (src/content/docs/es/) con el mismo slug — un test de paridad lo verifica. - La barra lateral vive en
astro.config.mjs(etiquetas + traducciones). - Las capturas pendientes se marcan con una caja discontinua de marcador; las capturas van en
public/screenshots/. - Antes de pushear:
npm run test:run,npm run buildynpx astro checkdeben pasar.

