Skip to content
CAI
Software that uses CAICheck a score

sourcerer-io/sourcerer-app

54.2

Adequate · 25 September 2026

7.3k

lines of production code

Kotlin

primary language

4

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

Features

Add Google Analytics tracking and error reporting to the application

The application now integrates Google Analytics for tracking user events and errors, using the Fuel HTTP library for network requests. A new \Analytics\ object handles event tracking and error reporting, which is conditionally enabled based on build configuration. Additionally, the \Logger\ singleton has been updated to integrate with Sentry for error reporting, allowing the application to send crash reports and log events to external services. The \Main\ entry point initializes these services and manages the application's lifecycle, including command-line interface setup and configuration loading.

src/main · high confidence

Initial deployment configuration for Sourcerer App

Added the foundational deployment infrastructure for the Sourcerer application, including a Gradle Dockerfile, a Jenkinsfile for CI/CD pipelines, and Kubernetes manifests (sourcerer-app.yaml) for deploying to Kubernetes clusters. The configuration supports multiple environments (production, staging, sandbox) with specific replica counts (2 for production, 1 for sandbox, 0 for staging) and environment-specific scripts (production\_env.sh, sandbox\_env.sh, staging\_env.sh). A default nginx configuration (default.conf) is also included to handle URL rewriting for the /install endpoint.

deploy · medium confidence

Initial release of Sourcerer App

The Sourcerer App is introduced as a tool that creates visual engineering profiles from git repositories. This release includes the core application script (do.sh), a Dockerfile for containerized deployment, and comprehensive documentation (README, CONTRIBUTING, CODE of conduct, and LICENSE). The app allows users to generate profiles by analyzing local repositories and sending statistics to the Sourcerer.io service, supporting both public and private repositories.

(repo-wide) · high confidence

Introduce automated installation and uninstallation script for the Sourcerer app

A new shell script is added to automate the installation, version detection, and uninstallation of the Sourcerer application. The script detects the installed Java version (supporting Java 8, 9, and 10) and configures the appropriate command-line flags (such as \--add-modules\ or \--add-opens\) to ensure compatibility. It also provides an uninstallation path that removes the application files and cleans up system links.

src/install · high confidence

Test coverage

Added sample files for testing DevOps and language parsers; Added test cleanup script for repository paths; Added unit tests for code analysis components.

Dependencies

Added sample dependency lockfiles and build manifests for multiple languages

Added sample files for dependency management and build configuration across various ecosystems: Elixir (mix.lock), Gradle (build.gradle, builder.gradle), JSON (composer.lock), Maven (pom.xml), Ruby (Gemfile.lock, Podfile), Scala (build.sbt), Rust (Cargo.lock), and C\#/F\#/VB.NET (csproj, fsproj, vbproj). These samples provide reference data for detecting and analyzing project dependencies and build configurations in the respective languages.

(dependencies) · 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 40 → 54 (+14.4)
  • Rubric changed (rubric-2026.08.15 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 84 → 94 (+10.8)
  • Architecture 53 (new)
  • Maturity 55 → 49 (-6.6)
  • Readiness 17 → 49 (+32.5)
  • Security 63 → 81 (+18.1)

Resolved (51)

  • Coverage not measured — test suite did not build
  • Critical IaC: AWS-0104 (src/test/resources/samples/langs/HCL/main.tf)
  • Critical IaC: AWS-0104 (src/test/resources/samples/langs/HCL/main.tf)
  • Critical IaC: AWS-0104 (src/test/resources/samples/langs/HCL/main.tf)
  • Dimension evaluation failed
  • FileTooLong: JavaScript/ccalc-parse.js (src/test/resources/samples/langs/JavaScript/ccalc-parse.js)
  • FileTooLong: JavaScript/constant_fold.mjs (src/test/resources/samples/langs/JavaScript/constant_fold.mjs)
  • FileTooLong: JavaScript/http.js (src/test/resources/samples/langs/JavaScript/http.js)
  • FileTooLong: JavaScript/parser.js (src/test/resources/samples/langs/JavaScript/parser.js)
  • High IaC: AWS-0028 (src/test/resources/samples/langs/HCL/example.tf)
  • High IaC: AWS-0028 (src/test/resources/samples/langs/HCL/main.tf)
  • High IaC: AWS-0053 (src/test/resources/samples/langs/HCL/main.tf)
  • High IaC: AWS-0131 (src/test/resources/samples/langs/HCL/example.tf)
  • High IaC: AWS-0131 (src/test/resources/samples/langs/HCL/main.tf)
  • High IaC: DS-0002 (src/test/resources/samples/devops/docker/Dockerfile)
  • High IaC: DS-0002 (src/test/resources/samples/devops/docker/alpine.Dockerfile)
  • High IaC: DS-0017 (src/test/resources/samples/devops/docker/alpine.Dockerfile)
  • High IaC: DS-0025 (src/test/resources/samples/devops/docker/alpine.Dockerfile)
  • High IaC: DS-0025 (src/test/resources/samples/devops/docker/alpine.Dockerfile)
  • High IaC: KSV-0014 (src/test/resources/samples/devops/k8s/rss-site.json)
  • …and 31 more

New (50)

  • ClassifierManager.estimate (cognitive 20) (src/main/kotlin/app/extractors/ClassifierManager.kt)
  • ClassifierManager.estimate (cyclomatic 20) (src/main/kotlin/app/extractors/ClassifierManager.kt)
  • CodeLongevity.getLinesObservable (cognitive 48) (src/main/kotlin/app/hashers/CodeLongevity.kt)
  • CodeLongevity.getLinesObservable (cyclomatic 20) (src/main/kotlin/app/hashers/CodeLongevity.kt)
  • CommitCrawler.getJGitObservable (cognitive 46) (src/main/kotlin/app/hashers/CommitCrawler.kt)
  • CommitCrawler.getJGitObservable (cyclomatic 26) (src/main/kotlin/app/hashers/CommitCrawler.kt)
  • Coverage not measured — no coverage collector is wired up
  • Dependency hygiene PARTLY measured — Maven/Gradle declarations read, no dependency graph resolved
  • Documentation: no installation or build instructions (README.md)
  • Documentation: no usage examples (README.md)
  • Dormant codebase
  • Duplicated block (12 lines × 2) (src/main/kotlin/app/extractors/CSharpExtractor.kt)
  • Duplicated block (13 lines × 2) (src/main/kotlin/app/extractors/JavaExtractor.kt)
  • Duplicated block (14–15 lines × 2) (src/main/kotlin/app/extractors/ClassifierManager.kt)
  • Duplicated block (21–22 lines × 2) (src/main/kotlin/app/extractors/CrystalExtractor.kt)
  • Duplicated block (5 lines × 11) (src/main/kotlin/app/extractors/CExtractor.kt)
  • Duplicated block (6 lines × 2) (src/main/kotlin/app/extractors/JavaExtractor.kt)
  • Duplicated block (8 lines × 2) (src/main/kotlin/app/config/FileConfigurator.kt)
  • EmailState.doAction (cognitive 40) (src/main/kotlin/app/ui/EmailState.kt)
  • EmailState.doAction (cyclomatic 23) (src/main/kotlin/app/ui/EmailState.kt)
  • …and 30 more

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

Survey your own repository

sourcerer-io/sourcerer-app 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 25 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 af3d7737ba20ccd4734546b03defae10f6627573 — 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-dd72cc24c749.