     # the cleanup of everything that could have been generated by the
     # build system; such as documentation, compiled JavaScript artifact,
     # and every other piece of generated data that the system knows of.
+    # Please see the implementation for the exact clean up mechanics.
     task "cleanup", "remove everything generated by build", (options) ->
         knm = "clean-modules" of options or Object()
         modules = options.modules or DEFAULT_MODULES

# application created within the framework. This very same template
# is also used by the framework itself for the Cakefile of its own.
# This method should satisfy the basic boilerplating needs of apps.
module.exports = ->

    # Here follows the definition of the options required for some of
    # the tasks defined in this Cakefile. Remember that the scope of
    # definition of the options is global to a Cakefile, therefore the
    # options are shared among all of the tasks and the entire file!
    option "-l", "--library [PATH]", "Path to the library sources"
    option "-m", "--modules [PATH]", "Path to the modules directory"
    option "-a", "--artifact [PATH]", "Path to the artifact directory"

    # the compilatation of the library source code from CoffeeScript
    # to JavaScript, taking into account the supplied options or the
    # assumed defaults if the options are not supplied via CLI call.
    # Please see the implementation for some of the important details
    task "compile", "compile CoffeeScript into JavaScript", (options) ->
        assert library = options.library or DEFAULT_LIBRARY
        assert artifact = options.artifact or DEFAULT_ARTIFACT
