PhoinixDR

Development Declaration

PHOINIX was developed with extensive use of AI-assisted coding — what is often described as vibecoding.

That does not mean the project was created by simply prompting an AI to generate an application and accepting the result.

PHOINIX has been deliberately designed as a software system. Its architecture, component boundaries, data models, recovery strategies, filesystem abstractions, safety requirements, testing methodology, licensing model, and development roadmap were defined intentionally before and during implementation.

AI tools are used to accelerate implementation, explore alternatives, generate and review code, create tests, analyze technical documentation, and assist with debugging. Technical decisions, however, are evaluated against the requirements of the project rather than accepted solely because they were suggested or generated by an AI system.

Particular attention is given to areas where errors can have serious consequences, including:

PHOINIX therefore embraces vibecoding as a development accelerator, but not as a substitute for software engineering.

A more accurate description of the project is:

AI-assisted, deliberately designed, systematically engineered, and continuously verified.

Every important recovery capability is expected to be explainable, testable, reproducible, and reviewable.

The fact that AI contributed to the implementation should never be considered evidence that the software is correct. Correctness must come from engineering discipline, testing, independent review, and empirical validation.

PHOINIX is open source in part so that these assumptions, algorithms, design decisions, and implementations can be inspected and challenged by others.

How this shows in the repository

principle where to look
read-only access to source media BlockReader has no write primitive (ADR-0002, ADR-0007); the recovery writer refuses destinations on the source disk
bounds and integer safety unsafe_code = "deny" in every recovery crate; clippy forbids indexing, unwraps and lossy casts outside tests; checked arithmetic in phoinix-core::arith
malformed structures every parser is exercised with corruption rounds that flip bytes and truncate images (tests/integration)
deterministic recovery testing fixtures are generated by scripts from known content with recorded SHA-256 digests (tests/generated, tests/fixtures/*/manifest.json)
validation against known images and hashes E01 stored hashes are verified, every recovered file is hashed, every fixture recovery is compared byte-for-byte
evidence, inference and uncertainty recovery likelihood and assessment confidence are separate numbers with printed reasons (health model, ADR-0006)
design decisions the architectural decision records