Skip to content
CAI
Software that uses CAICheck a score

ferd/recon

62.4

Adequate · 23 September 2026

3k

lines of production code

Erlang

primary language

5

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

Recon is an Erlang library providing a suite of diagnostic and debugging tools for Erlang applications. It offers capabilities for memory allocation inspection, process tracing, and crash dump analysis to help developers monitor system health and performance. The system includes utilities for generating dependency graphs and formatting internal data structures, all supported by comprehensive test coverage.

Features

Add Recon application overview documentation

A new \doc/overview.edoc\ file has been added, providing a structured overview of the Recon library. It describes the main modules (recon, recon\_alloc, recon\_lib, recon\_trace, recon\_rec) and lists utility scripts in the \script/\ directory for DevOps tasks such as dependency graphing and crash dump analysis.

doc · high confidence

Added diagnostic and dependency-analysis scripts

Three new scripts were added to the 'script' directory to aid in debugging and analysis. 'erl\_crashdump\_analyzer.sh' parses Erlang crash dumps to extract memory usage, process counts, and file descriptor statistics. 'queue\_fun.awk' analyzes crash dumps to correlate process mailbox sizes with the currently executing function. 'app\_deps.erl' generates a Graphviz graph of application dependencies, distinguishing between library and regular applications.

script · high confidence

Added memory allocator, tracing, and record formatting modules

The library now includes new modules for deeper diagnostics: \recon\_alloc\ provides functions to inspect Erlang's memory allocators and take snapshots for offline analysis; \recon\_trace\ offers a production-safe interface for tracing function calls with rate-limiting and custom formatters; \recon\_rec\ and \recon\_map\ enable formatting of records and maps by allowing users to import definitions and limit output to specific fields. Additionally, \recon\_lib\ was introduced to centralize shared utilities like port and process attribute fetching. The main \recon\ module was expanded to expose these new capabilities, and the deprecated \redsnap\ module was removed.

src · high confidence

Behavioural changes

Migrate documentation site to ex\_doc and update build tooling

The project has switched its documentation generation from EDoc to ex\_doc, requiring Rebar3 for building. A new \docsite.erl\ script and \rebar.config\ configuration manage the static site generation, while the README is updated to reflect the new build process and documentation URL. The CHANGELOG.md and LICENSE files are also added to the documentation structure.

(repo-wide) · high confidence

New site styling for the static documentation

A new stylesheet (screen.css) has been added to the site directory, defining the visual appearance of the static documentation pages. This includes specific color schemes for headers, links, and code blocks, as well as layout rules for navigation and definition lists.

site · high confidence

Updated main documentation to ex\_doc format

The main project overview and documentation have been converted from the legacy .edoc format to .md (Markdown), aligning with the ex\_doc tooling. This change updates how the library's core modules (recon, recon\_alloc, recon\_lib, recon\_trace, recon\_rec) and utility scripts are described to users, ensuring the documentation is consistent with the rest of the project's tooling.

_src\doc · medium confidence

Test coverage

Added comprehensive test suites for recon, recon\_alloc, recon\_lib, recon\_rec, and recon\_trace modules

Added new Common Test suites (recon\_SUITE, recon\_alloc\_SUITE, recon\_lib\_SUITE, recon\_rec\_SUITE, and recon\_trace\_SUITE) covering interface conformance and behavior for the recon module's info, process counting, and binary leak detection; recon\_alloc's memory, fragmentation, and snapshotting features; recon\_lib's scheduler usage and term-to-PID conversion; recon\_rec's record import and limit management; and recon\_trace's dangerous call combinations. These tests validate core diagnostic capabilities and edge cases such as division by zero, dead process handling, and restricted tracing targets.

test · high confidence

Dependencies

Added minimal mix.exs for Recon 2.5.6

A minimal mix.exs file was added to the project root, defining the Recon application with version 2.5.6 and no external dependencies. This change establishes the basic build configuration for the project, likely to support the release of version 2.5.6.

(dependencies) · medium 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

This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings — which rule fired, in which file, on which line, and how to fix it — are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.

Score

  • CAI 60 → 62 (+2.0)
  • Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 85 → 95 (+9.8)
  • Architecture 100 → 100 (+0.0)
  • Maturity 34 → 35 (+1.0)
  • Readiness 78 → 80 (+2.3)
  • Security 92 → 90 (-2.1)

Resolved (6)

  • Coverage not included — suite not readable by the collector
  • Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
  • No exposed public API
  • Off-boarding risk: anonymized user #1
  • Test reliability not included
  • complexity unreadable for .erl, .exs — churn × complexity hotspots could not be measured

New (11)

  • Coverage not measured — no coverage collector is wired up
  • Duplicated block (16 lines × 2) (src/recon_map.erl)
  • Duplicated block (8 lines × 3) (src/recon_map.erl)
  • Duplicated block (9 lines × 3) (src/recon_map.erl)
  • High: security finding (details withheld)
  • Hotspot: src/recon_trace.erl (src/recon_trace.erl)
  • Medium: security finding (details withheld)
  • No dependency advisory monitoring
  • Off-boarding risk: anonymized user #1
  • Workflow token permissions not restricted
  • recon.port_info (cyclomatic 19) (src/recon.erl)

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

ferd/recon 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 23 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit cb45e7b19808bbae1796f934a9d00aa2b24d648f — the exact code this score is about.
  • Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-955b9cee9818.