git-annex's high-level design is mostly inherent in the data that it stores in git, and alongside git. See internals for details.
Here's the other design documents we have:
- adjusted branches
- assistant
- balanced preferred content
- caching database
- encryption
- exporting trees to special remotes
- external backend protocol
- external special remote protocol
- gcrypt
- git-remote-daemon
- iabackup
- importing trees from special remotes
- metadata
- new repo versions
- p2p protocol
- p2p protocol over http
- passthrough proxy
- preferred content
- requests routing
- roadmap