13 repositories, 13 bugs: what open source taught me about my own tool
Description and use
A repository‑analysis tool that initially failed on 13 unseen repositories was improved by tightening resolution rules, now accurately resolving dependencies across multiple languages and producing gap‑free architecture diagrams.
Problem
A repository‑analysis tool that draws architecture diagrams failed to resolve references in 13 unseen repositories, producing many false gaps and missing edges.
Outcome
After applying stricter resolution logic, the tool accurately resolves dependencies across Java, Kotlin, Go, Rust, JavaScript, TypeScript, and Python, producing gap‑free diagrams for most tested repositories.
Workflow
- 1. Install the CLI via npm:
npm i -g mirofy-cli - 2. Run the tool against a repository:
npx mirofy-cli map . - 3. Inspect the generated HTML diagram for gaps and edges
- 4. Verify any reported gaps by checking the cited file, line, and commit
- 5. If gaps exist, adjust the source code or report the issue to the tool maintainers
Evidence
I built a tool that draws architecture diagrams from a repository, where every edge cites the file, line and commit it came from.
The rule the tool works by: Nothing is drawn that cannot be cited. Every edge in the output carries the file, the line and the commit that justifies it — click an arrow, see the import statement.
Reads JavaScript, TypeScript, Python, Go, Java, Rust and Kotlin. Resolves against what a repository declares — the module path in go.mod, the package statements in .java files, the paths in Cargo.toml — rather than against directory conventions.
- Record date: 2026-09-11T16:01:55.279Z