Skip to content
CAI
Software that uses CAICheck a score

wceng/SuFei

48.6

Weak · 21 September 2026

6.4k

lines of production code

Kotlin

primary language

4

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This system is an Android application built with Kotlin and Jetpack Compose, designed to display Chinese poetry and dynastic history. It utilizes a Room database for data persistence and includes features for app widgets and code obfuscation. The codebase is supported by comprehensive documentation, automated migration tests, and a defined open-source license.

Features

Added project documentation and baseline configuration files

The repository now includes essential project documentation and configuration files to support development and distribution. A CLAUDE.md file was added to provide build, test, and architecture guidance for AI coding assistants and developers, detailing the Kotlin/Jetpack Compose stack, Hilt DI, Room database, and Navigation 3 usage. An MIT LICENSE file was added to clarify the project's open-source terms. The README.md was updated with comprehensive project information, including feature descriptions, dataset details, and download links for GitHub and F-Droid. Additionally, the .gitignore file was updated to exclude IDE settings, build artifacts, and signing keys, while the gradlew script was made executable.

(repo-wide) · high confidence

Removals

Removed release build metadata file

The output-metadata.json file, which previously tracked release build artifacts and baseline profile configurations for the app, has been removed from the project.

app/release · high confidence

Behavioural changes

Updated Gradle wrapper to version 9.3.1

The project's Gradle wrapper has been updated to use Gradle 9.3.1. This change updates the distribution URL and removes the SHA-256 checksum verification for the Gradle binary, which may affect how the build environment is initialized.

gradle · high confidence

The app's ProGuard configuration was updated to preserve classes and members for OpenCC4J, its dependency Heaven, and nlp-common, ensuring that reflection-based instantiation and serialization logic are not stripped during the release build process.

app · high confidence

Test coverage

Added database migration tests and poem data assets

Added an instrumentation test for Room database migrations (v5→v6 and v8→v9) to verify data cleaning and content sanitization logic. Additionally, introduced new asset files containing a list of Chinese dynasties and a large dataset of Tang poetry, providing the underlying data for the app's content.

app/src · high confidence

Dependencies

Update Android build configuration and add new dependencies

The app's minimum supported Android version is raised from API 26 to 23. Build settings are updated to enable code shrinking and resource shrinking for release builds, and debug builds are suffixed to avoid conflicts. The Gradle version catalog is updated, including the Android Gradle Plugin to 8.13.2 and Kotlin to 2.3.0. New dependencies are added for AndroidX Core Splashscreen, OpenCC4J, and AndroidX Glance (for app widgets), alongside test dependencies for MockK, KotlinX Coroutines Test, and AndroidX Room Testing.

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

Lenses

  • Code Health 99 → 98 (-1.6)
  • Architecture 100 → 88 (-11.5)
  • Maturity 74 → 74 (+0.0)
  • Readiness 24 → 26 (+1.4)
  • Security 60 → 60 (+0.0)
  • Domain Modelling 100 → 70 (-30.3)

Resolved (16)

  • 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) (app/src/main/java/dev/wceng/sufei/ui/components/PoemCard.kt)
  • Duplicated block (13 lines × 2) (app/src/main/java/dev/wceng/sufei/widget/BedsidePoemWidget.kt)
  • Duplicated block (14 lines × 2) (app/src/main/java/dev/wceng/sufei/widget/DailyPoemWidget.kt)
  • Duplicated block (9 lines × 2) (app/src/main/java/dev/wceng/sufei/di/ScreensModule.kt)
  • No exposed public API
  • Secret: square-access-token (app/src/main/assets/poems_0.jsonl)
  • Secret: square-access-token (app/src/main/assets/poems_0.jsonl)
  • Secret: square-access-token (app/src/main/assets/poems_3.jsonl)
  • Secret: square-access-token (app/src/main/assets/poems_3.jsonl)
  • Secret: square-access-token (app/src/main/assets/poems_4.jsonl)
  • Secret: square-access-token (app/src/main/assets/poems_4.jsonl)
  • Test reliability not included
  • early-stage repository — too little history to judge knowledge freshness
  • single-maintainer — knowledge-concentration (bus factor) risk

New (18)

  • 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)
  • Duplicated block (12 lines × 2) (app/src/main/java/dev/wceng/sufei/widget/BedsidePoemWidget.kt)
  • Duplicated block (13–17 lines × 2) (app/src/main/java/dev/wceng/sufei/widget/BedsidePoemWidget.kt)
  • Duplicated block (14 lines × 2) (app/src/main/java/dev/wceng/sufei/ui/components/PoemCard.kt)
  • Duplicated block (15 lines × 2) (app/src/main/java/dev/wceng/sufei/widget/DailyPoemWidget.kt)
  • Duplicated block (16 lines × 2) (app/src/main/java/dev/wceng/sufei/di/ScreensModule.kt)
  • MethodTooLong: ExploreScreenKt.ExploreContent (app/src/main/java/dev/wceng/sufei/ui/screens/explore/ExploreScreen.kt)
  • MethodTooLong: PoetDetailScreenKt.PoetDetailScrollableContent (app/src/main/java/dev/wceng/sufei/ui/screens/poet/PoetDetailScreen.kt)
  • No ADRs found
  • Secret: square-access-token (app/src/main/assets/poems_0.jsonl)
  • Secret: square-access-token (app/src/main/assets/poems_0.jsonl)
  • Secret: square-access-token (app/src/main/assets/poems_3.jsonl)
  • Secret: square-access-token (app/src/main/assets/poems_3.jsonl)
  • Secret: square-access-token (app/src/main/assets/poems_4.jsonl)
  • Secret: square-access-token (app/src/main/assets/poems_4.jsonl)
  • TodoComment (app/src/main/java/dev/wceng/sufei/ui/screens/poet/PoetDetailViewModel.kt)

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

Survey your own repository

wceng/SuFei 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 21 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 df710e5b4f49c00b42683b10911e904bcee001b6 — 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-fa71c66cabd8.