The Debian Policy is the set of requrements for the Debian distribution.
It covers many things including
- Rules for packages
- Structure of the archive
- Information on how dpkg installs packages
... and much more.
If you are serious about packaging you should read this document and refer to it often when dealing with packages.
The Debian Policy is normative within Debian, this means that it must be followed.
There are two types of rules in the policy. Those that use "must" or "required". These must be followed by all packages. If your package doesn't follow these rules then it either wont be accepted, or it will have a ReleaseCritical BugReport filed against it.
The other type uses words like "should" and "reccomended". Your package should have a very good reason for breaking these rules if it does, but breaking them does not have the results that breaking a "must" rule does.
There are also other policies that are being used, such as the PerlPolicy, but these don't carry the force of the full Policy.
Anything that doesn't have the consensus to become part of the Policy, or deals with and area that the Policy doesn't usually goes in the DevelopersReference.