+# Package SHEEP
+
+Main sheep package.
+
+Use sheep to validate that documentation strings on external symbols adhere to a strict format and exist, so that they can be output to markdown format, while looking decent when used within a common lisp process.
+
+## Contents
+
+* **function [export-package](#function-export-package)** - _export-package_ takes in _pkg_ and converts all the documentation for the symbols into markdown with the hope of emulating the hyperspec style.
+* **function [pretty-print-validate-packages](#function-pretty-print-validate-packages)** - _pretty-print-validate-packages_ takes _pkgs_ and runs validation on all of them. It dumps to standard out failures as it comes upon them, finally returning whether it was successful or not.
+* **function [validate-package](#function-validate-package)** - _validate-package_ takes in _pkg_ and validates that all the external symbols adhere to documentation guidelines, exist, and can be parsed to be used for exporting.
+* **condition [validation-failure](#condition-validation-failure)** - Used internally for sheep parts to signal a validation error.
+
+## Function **EXPORT-PACKAGE**
+
+#### Syntax:
+
+**export-package** _pkg_ => _markdown_
+
+#### Arguments and Values:
+
+_pkg_---A package symbol
+_markdown_---A string containing the markdown representation of this packages documentation
+
+#### Description:
+
+_export-package_ takes in _pkg_ and converts all the documentation for the symbols into markdown with the hope of emulating the hyperspec style.
+
+It should only be run after the package has been validated, as it assumes that all documentation it gets will be valid.
+
+## Function **PRETTY-PRINT-VALIDATE-PACKAGES**
+
+#### Syntax:
+
+**pretty-print-validate-packages** _&rest_ _pkgs_ => _success_
+
+```pkgs::= pkg*```
+
+#### Arguments and Values:
+
+_success_---Whether or not all symbols passed validation
+_pkg_---A package symbol
+
+#### Description:
+
+_pretty-print-validate-packages_ takes _pkgs_ and runs validation on all of them. It dumps to standard out failures as it comes upon them, finally returning whether it was successful or not.
+
+This can be used in validation tests to ensure that documentation can be generated at a later date.
+
+#### Examples:
+
+```(pretty-print-validate-packages :pkg1 :pkg2)``` => ```t```
+
+## Function **VALIDATE-PACKAGE**
+
+#### Syntax:
+
+**validate-package** _pkg_ => _failures_
+
+```failures::= failure*```
+```failure::= (:failure symb msg)```
+
+#### Arguments and Values:
+
+_pkg_---A package symbol
+_symb_---Symbol the check failed on
+_msg_---Message containing information about the failure
+
+#### Description:
+
+_validate-package_ takes in _pkg_ and validates that all the external symbols adhere to documentation guidelines, exist, and can be parsed to be used for exporting.
+
+Only one error per symbol will be reported at a time, all concatenated to a list in the aforementioned form.
+
+## Condition VALIDATION-FAILURE
+
+Used internally for sheep parts to signal a validation error.