Skip to content
CAI
Software that uses CAICheck a score

andremion/Theatre

53.6

Adequate · 22 September 2026

3.7k

lines of production code

Kotlin

primary language

7

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This is an Android application built on a Clean Architecture, structured into presentation, domain, and data layers. It provides a user interface for browsing and viewing events, ratings, and venues. The system manages local and remote data sources to fetch and cache information about events and venues.

Features

Initial domain layer with use cases and entities

The domain layer is introduced with a base \UseCase\ abstract class that manages RxJava scheduler execution, alongside concrete use cases for retrieving events, event types, ratings, and venues. The update also adds domain entities (Event, EventType, Rating, Review, Venue), gateway interfaces for inventory and system data, and a \MissingUseCaseParameterException\ for validation. A test suite for \EventTypeGetAllUseCase\ and a \TestSchedulers\ utility are included to support the new domain logic.

domain · high confidence

Initial project scaffolding and documentation

The repository was initialized with standard project configuration files, including a .gitignore to exclude IDE and build artifacts, an issue template to standardize bug reports, and a comprehensive README.md detailing the application's Clean Architecture, dependencies, and usage. Additionally, Gradle wrapper scripts (gradlew, gradlew.bat) were added to ensure consistent build environments.

(repo-wide) · high confidence

Introduce event browsing and detail views with multi-window support

The presentation module now includes the full UI for browsing and viewing events. This adds an event list screen that displays available events, and a detail screen that shows event information, descriptions, and user reviews in a tabbed layout. The change also includes the necessary adapters, view models, and data binding adapters to support these screens, along with AndroidX and multidex support to ensure compatibility with older Android versions.

presentation · high confidence

Introduced local and remote data sources for events, ratings, and venues

Added a new data layer that implements local storage using Room databases (InventoryDatabase and SystemDatabase) and remote API integration via the TheatreService. This includes data sources, DAOs, mappers, and repository classes that handle fetching and caching events, ratings, reviews, and venue information.

data · high confidence

Behavioural changes

Upgraded Gradle wrapper to version 7.2

The project's Gradle wrapper has been updated to use Gradle 7.2, as specified in the gradle-wrapper.properties file. This change ensures that the build environment uses a specific, modern version of the Gradle build tool, which may bring performance improvements, new features, and compatibility with newer AndroidX dependencies.

gradle · high confidence

Dependencies

Initial Android project structure with AndroidX and modern dependencies

The project is initialized with a multi-module architecture (presentation, domain, data) using AndroidX libraries, Kotlin 1.5.30, and Gradle 7.0.2. This includes support for multidex, data binding, and updated versions of key libraries such as Dagger 2.38.1, Room 2.3.0, and Retrofit 2.9.0.

(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

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 54 → 54 (-0.7)
  • Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 100 → 100 (+0.2)
  • Architecture 100 → 73 (-26.5)
  • Maturity 57 → 57 (+0.0)
  • Readiness 57 → 57 (+0.0)
  • Security 100 → 80 (-20.3)
  • Domain Modelling 38 → 43 (+4.6)

Resolved (7)

  • Coverage not included — suite not readable by the collector
  • Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
  • Duplicated block (12 lines × 2) (presentation/src/main/kotlin/com/andremion/theatre/event/list/EventListViewModel.kt)
  • Duplicated block (7 lines × 2) (presentation/src/main/kotlin/com/andremion/theatre/event/detail/mapper/EventMapper.kt)
  • No exposed public API
  • Test reliability not included
  • dormant codebase — no living knowledge left to concentrate

New (8)

  • Dependency hygiene PARTLY measured — Maven/Gradle declarations read, no dependency graph resolved
  • Duplicated block (13 lines × 2) (presentation/src/main/kotlin/com/andremion/theatre/event/list/EventListViewModel.kt)
  • Duplicated block (7 lines × 2) (presentation/src/main/kotlin/com/andremion/theatre/event/detail/mapper/EventMapper.kt)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • No ADRs found
  • No dependency advisory monitoring

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

Survey your own repository

andremion/Theatre 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 22 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 654ed1020b5633c3d529adf9cea66372db4a5383 — 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-90d5d2fe38ee.