Writing effective README sections inside repositories
module-level documentation, directory README files, architecture decision records, codebase navigation docs, monorepo documentation, internal developer documentation
Internal Repository Documentation
Internal documentation β for contributors and teammates, not end users β follows different rules. The audience already has context. They need navigation, decision rationale, and maintenance guidance, not tutorials.
Module-Level READMEs
In large codebases and monorepos, every significant module or package deserves its own README:
## auth-service
Handles user authentication and session management.
### Owns
- JWT issuance and validation
- Session storage (Redis)
- OAuth provider integration
### Does NOT own
- User profile data (see `user-service`)
- Authorization/permissions (see `rbac-service`)
### Local development
```bash
npm run dev:auth
```
### Key files
- `src/jwt.ts` β Token creation and verification
- `src/session.ts` β Redis session management
- `src/oauth/` β Provider-specific adaptersArchitecture Decision Records
Architectural decisions made once are forgotten and relitigated endlessly without documentation. An ADR records: the decision, the context, and the alternatives considered. Store them in docs/decisions/ as numbered Markdown files. Future contributors stop asking "why did you do it this way?" β they read the ADR.
