Architecture of affaan-m/ecc
affaan-m/ecc is 4,510 source files holding 16,190 symbols across 21 modules, written mainly in JavaScript, Python, Shell. The largest module is tests, with 499 files, and 37 files are entry points into the dependency graph.
How ecc fits together
Installation starts with the install.sh script or scripts/ecc.js, which copies files into the chosen harness and records what it placed in an install-state file. The --target option selects a harness such as claude or copilot, and --modules chooses which parts are installed. The skills directory holds the skill packages that get copied into a harness. For OpenCode, .opencode/index.ts is the plugin entry point, and the npm package ecc-universal exposes the same plugin module. hooks/hooks.json defines the Claude Code hooks, which the hook runtime registers in settings.json when installed with --enable-hooks. The ecc2 directory is a separate Rust package whose main.rs file starts a terminal dashboard.
Largest modules
- tests: 499 files and 159,346 lines of code
- scripts: 374 files and 86,056 lines of code
- docker: 196 files and 9,527 lines of code
- skills: 138 files and 30,117 lines of code
- src: 23 files and 1,632 lines of code
- ecc2: 17 files and 50,590 lines of code
- .cursor: 16 files and 607 lines of code
- .opencode: 14 files and 1,594 lines of code
Languages
By file count: JavaScript 1,067 files, Python 169 files, Shell 36 files, TypeScript 23 files, Rust 17 files, Dockerfile 2 files.
Documentation
Repowise documents ecc in 1,310 pages generated from the source, 74 of them written explanations of the repository and its modules.
More on ecc: summary and FAQ, codebase overview, code health.
Related guide: Best dependency graph tools for monorepos