mgrg will create a Golf directory structure (see "-i" option) when you create your application. While you can keep and compile Golf source files in any directory, the directories used by Golf are always under "$HOME/.golf" directory ("user directory"). This user directory is also available in your environment as $GG_ROOT.
This is the directory structure:
$HOME/.golf/apps/<app name>/.bld
Build directory is where your application executables are built, with name <app name>.srvc for a service and <app name> for a command-line program. This is a scratch-pad directory, thus do not alter files in it, or use for anything else. It is created with 700 privileges.
$HOME/.golf/apps/<app name>
Application directory. All application data is kept here. It is created with 711 privileges.
$HOME/.golf/apps/<app name>/app
Application home directory. This is the current working directory when your application runs. Copy/move here any files and directories your application needs. It is created with 700 privileges.
$HOME/.golf/apps/<app name>/file
This is file-storage used for uploads and new document creation. Do not write there directly; Golf does that for you, such as with uniq-file for instance, or when uploading files. It is created with 700 privileges.
$HOME/.golf/apps/<app name>/trace
This is a trace directory that contains files describing fatal issues with your program(s); information contained in them can help you diagnose the issues and fix them. See debugging. It is created with 700 privileges.
$HOME/.golf/apps/<app name>/db
Database configuration directory contains the database-config-files used by Golf to connect to databases; this directory is maintained by Golf and you should not use it. It is created with 700 privileges.
While Golf directories are fixed, you can effectively change their location by creating a soft link. This way, your directories and files can be elsewhere, even on a different disk. For example, to house your file storage on a different disk: