PhoinixDR

Declaración de desarrollo

PHOINIX se desarrolló con un uso extensivo de programación asistida por IA, lo que a menudo se describe como vibecoding.

Eso no significa que el proyecto se creara simplemente pidiendo a una IA que generara una aplicación y aceptando el resultado.

PHOINIX ha sido diseñado deliberadamente como un sistema de software. Su arquitectura, los límites entre componentes, los modelos de datos, las estrategias de recuperación, las abstracciones de los sistemas de archivos, los requisitos de seguridad, la metodología de pruebas, el modelo de licencia y la hoja de ruta de desarrollo se definieron intencionadamente antes y durante la implementación.

Las herramientas de IA se utilizan para acelerar la implementación, explorar alternativas, generar y revisar código, crear pruebas, analizar documentación técnica y ayudar en la depuración. Las decisiones técnicas, sin embargo, se evalúan frente a los requisitos del proyecto y no se aceptan solo porque las haya sugerido o generado un sistema de IA.

Se presta especial atención a las áreas en las que los errores pueden tener consecuencias graves, entre ellas:

Por tanto, PHOINIX adopta el vibecoding como acelerador del desarrollo, pero no como sustituto de la ingeniería de software.

Una descripción más precisa del proyecto es:

Asistido por IA, diseñado deliberadamente, ingenierizado sistemáticamente y verificado continuamente.

Se espera que toda capacidad de recuperación importante sea explicable, comprobable, reproducible y revisable.

El hecho de que la IA haya contribuido a la implementación nunca debe considerarse una prueba de que el software es correcto. La corrección debe provenir de la disciplina de ingeniería, las pruebas, la revisión independiente y la validación empírica.

PHOINIX es de código abierto, en parte, para que estas suposiciones, algoritmos, decisiones de diseño e implementaciones puedan ser inspeccionados y cuestionados por otros.

Cómo se refleja esto en el repositorio

principio dónde verlo
acceso de solo lectura a los medios de origen BlockReader no tiene primitiva de escritura (ADR-0002, ADR-0007); el escritor de recuperación rechaza destinos en el disco de origen
límites y seguridad de enteros unsafe_code = "deny" en todos los crates de recuperación; clippy prohíbe la indexación directa, los unwrap y las conversiones con pérdida fuera de las pruebas; aritmética comprobada en phoinix-core::arith
estructuras malformadas cada analizador se ejercita con rondas de corrupción que alteran bytes y truncan imágenes (tests/integration)
pruebas de recuperación deterministas los fixtures se generan con scripts a partir de contenido conocido con resúmenes SHA-256 registrados (tests/generated, tests/fixtures/*/manifest.json)
validación contra imágenes y hashes conocidos se verifican los hashes almacenados en los E01, se calcula el hash de cada archivo recuperado y cada recuperación de fixture se compara byte a byte
evidencia, inferencia e incertidumbre la probabilidad de recuperación y la confianza de la evaluación son números separados con razones impresas (modelo de salud, ADR-0006)
decisiones de diseño los registros de decisiones de arquitectura