Modules and profiles
Keep capabilities small and compose the configuration your environment needs.
A module owns one capability and its input files. A profile selects modules for a purpose, such as a developer environment. Both live in your consumer repository.
A module is local configuration
The starter keeps Git configuration under modules/git/. Its module.conf
declares a name, schema version, and actions; files/gitconfig is a module-owned
asset. Etch reads literal configuration data rather than executing it as Python.
Repository-wide defaults.conf holds default provider options and explicit plugin
paths. Actions can override supported defaults. Profiles live under profiles/.
Select deliberately
./etch plan git
./etch plan --profile developer
Dependencies describe ordering and required selected modules. They do not silently
select modules or fetch remote dependencies. Imports copy a module into the fixed
modules/<name>/ destination and refuse an existing destination.
See the configuration reference and the import guide for current syntax and limits.