gdamjan/erlang-irc-bot
57.7
Adequate · 2 October 2026
782
lines of production code
Erlang
primary language
2
measurements over time
What this system is
This system is an IRC bot implemented as an OTP application using Erlang. It manages connection lifecycles with state machines, supports SSL/TLS, and provides a unified API for controlling bot interactions. The project includes structured logging for production and development environments, along with a basic test suite for CI validation.
Behavioural changes
Customized logging configuration for development and production
The application now uses a custom log formatter (ircbot\_log\_formatter) in production to structure output, while a new development script (dev.escript) allows users to easily switch the log level to debug and format logs with a simple single-line template during local development.
config · high confidence
IRC bot core rewritten with gen\_statem and new API
The bot's connection and state management have been completely rewritten to use gen\_statem instead of gen\_fsm, introducing a structured lifecycle (standby, connecting, registering, ready, reconnect) with quadratic backoff for reconnection. A new ircbot\_api module provides a unified interface for controlling connections and sending IRC commands (join, part, nick, etc.), while the application now supports SSL/TLS connections with certificate verification and uses the Erlang logger with a systemd-compatible formatter for robust logging.
src · high confidence
Project restructured as a real OTP application with rebar3 and Erlang 25+ support
The project has been refactored into a proper OTP application, migrating the build system to rebar3 and raising the minimum Erlang/OTP version requirement to 25.0. This change includes the addition of a LICENSE file (MIT), a new .gitignore configuration, and a settings.cfg.example file for user configuration. The README has been updated to reflect the new quick-start instructions using rebar3 and the Erlang REPL, and the core state management has been migrated from gen\_fsm to gen\_statem to align with modern OTP standards.
(repo-wide) · high confidence
Test coverage
Added dummy Common Test suite for CI validation
A new dummy Common Test suite (dummy\_SUITE.erl) has been added to the test directory to satisfy CI requirements. The suite contains a single placeholder test that always passes, ensuring the Erlang test runner executes without errors during continuous integration.
test · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 55 → 58 (+2.3)
- Rubric changed (rubric-2026.09.12 → rubric-2026.09.18) — scores are not directly comparable.
Lenses
- Code Health 100 → 100 (+0.0)
- Architecture 69 → 69 (+0.0)
- Maturity 53 → 53 (+0.0)
- Readiness 47 → 50 (+3.1)
- Security 67 → 75 (+8.3)
Resolved (3)
- Coverage not measured — no coverage collector is wired up
- Documentation: no installation or build instructions (README.md)
- Documentation: no usage examples (README.md)
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
gdamjan/erlang-irc-bot was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 2 October 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 204c8dac36f4cf583ec5faf1c2fb5acdcdb05e18 — the exact code this score is about.
- Scored under rubric-2026.09.18 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-e569280dd5e2.