Shell themes are shell presets that, when invoked, customize the shell with various useful commands for working on a specific project. For example, I can type Theme perl/nav-menu, and then gain some shell commands that are useful for working on my navigation menu module. Among other things, it will also automatically change my directory to ~/progs/perl/www/Nav-Menu/trunk/module/, where I work on the module.
Setting Up the Themes' Infrastructure
Before you can write shell themes, you need to implement an infrastructure for creating them. I keep the logic of the themes in one directory, $HOME/conf/Bash/Themes. To set them up, fetch my Bash themes archive and unpack it under $HOME/conf/Bash or wherever is convenient for you.