> Code is just detailed specifications on how things should operate.

The spec defines how things should operate. Code defines how things operate.

The problem being that if there is only code, then any change to system behaviour is always correct (including bugs). Because that's what the code says.

Relying on tests won't help without a spec to create tests from. So tests are generated from code. So if a test fails, it's the fault of the test, not the code.