The architecture guide at the moment is quite weak.  It is presumed that more architecture documentation will be added as more people write modules and extensions to Enunciate.  For now, we'll limit the discussion of the architecture to a few brief topics.

Enunciate Modules 

An Enunciate module is simply a class that implements org.codehaus.enunciate.modules.DeploymentModule.  If you're writing you're own module, you may want to start by extending BasicDeploymentModule, or if you want to use Freemarker templates during your generate step (as do most of the current Enunciate modules), then you may want to extend FreemarkerDeploymentModule.

Package your module into a jar, making sure your module class FQN is put in a file META-INF/services/org.codehaus.enunciate.modules.DeploymentModule in the jar (see Sun's discovery process for details).  Then, as long as your jar is on the classpath when you invoke Enunciate, it should included as part of the engine.

Further Reading

If you want to know more, the best place to get a concrete example is by checking out the Enunciate source code, picking a module, and seeing how it's done.  You'll probably refer to the Javadocs a lot, and feel free to post a question on the appropriate mailing list as well.