02. Restricciones No Funcionales
Fase: 02 — Project Kickoff
Entregable: 02
Proyecto: NoteVault (PC, Mac, Android, iPhone)
1. Restricciones No Negociables por Capa
- Almacenamiento Local Obligatorio: Queda prohibido el uso de bases de datos relacionales cliente-servidor (PostgreSQL, MySQL) o bases de datos propietarias en la nube. Todo dato debe residir en texto plano en disco (Markdown y JSON).
- Preservación Estricta de Datos: Si un cliente lee un frontmatter o JSON con campos desconocidos, debe escribirlos de vuelta sin alterarlos (Zero Data Loss).
- Seguridad de Hilo Principal (Electron): Obligatorio
contextIsolation: trueynodeIntegration: falseen la ventana principal. - Restricción de Red Móvil: La aplicación móvil no debe requerir conexión a internet para iniciar, navegar ni guardar datos en la bóveda.
- Idioma: Todo texto visible para el usuario en la interfaz gráfica debe estar en Español.
2. Marco Conceptual: Restricción No Negociable
1. **Entidad principal e independiente.**
2. **Es la entidad líder del conjunto de datos:** posee un identificador global único que fija una regla de ingeniería inviolable (`non_negotiable_constraint_id`: `CONSTRAINT-LOCAL-TEXT-STORAGE`) consultado en las revisiones de código de Pull Requests.
3. **Existe por sí misma en el marco de gobierno del proyecto sin depender de la comodidad de implementación**, y es la única responsable de vetar cualquier solución que comprometa la soberanía de los datos.
4. **Punto de entrada y límite de consistencia:** Un Pull Request que viole una restricción no negociable es rechazado automáticamente.