wceng/SuFei
48.6
Weak · 21 September 2026
6.4k
lines of production code
Kotlin
primary language
4
measurements over time
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
Updated ProGuard rules for OpenCC4J and related dependencies
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.