A separate specification works much better as long as that specification is also enforced during the build.
A separate openapi spec that is not enforced can quickly become outdated, then an auto-generated from code is better.
A separate openapi spec that is not enforced can quickly become outdated, then an auto-generated from code is better.
Then tasks cannot move to your "Done" column unless documentation is written and passes review. If you enforce column limits documentation it will also block other tasks if not completed.
[1] https://help.github.com/en/articles/creating-a-pull-request-...