There are two kind of packages:
Native package
The source code and debian spec are in one directory tree. Example: base-files, apt, etc. The end result of pipeline should be:
*.dsc - dsc
*.deb - Debian pacakge
*.tar.* - source code
Third party package
The package that does not have debian spec in their source tree. Example: gnome, firefox, etc. We'll define the debian spec ourself. The end result are:
*.dsc - dsc
*.deb
*.tar.* - the source code after patches get applied
*.orig.tar.* - original source code before we apply any patches.
*.orig.tar.* only need to be updated if we update the software to higher version. The *.orig.tar.* should respects the source code of the new version.
Any kind of patch should be happen in debian spec directory.