As an independent vendor being contracted to write a product for a company, is it reasonable to ship only the source code and user documentation while leaving out design documents, architecture diagrams, unit tests etc (basically anything else not strictly needed to run the product or extend it)?
The goal is to make the end product extensible for the client so they can further its development internally, but not for free. They would have dig deeply into source to make sense of some design decisions etc, and they'll be responsible for writing their own comprehensive tests to guard against regressions being introduced.
The idea here is not to make the code unintelligible. I would just like to create future opportunity for being contracted to write extensions by virtue of the "inside knowledge" and expertise I have from being the original author.
Would this be considered unethical?
Edit: The contract is currently being negotiated, so the issue of what constitutes final deliverables hasn't been firmly decided. Additionally, I should have mentioned I will maintain ownership of the product. I will only grant to the client a usage license. Does this detail make a difference in whether this is regarded as bad form?