summaryrefslogtreecommitdiff
path: root/CLAUDE.md
AgeCommit message (Collapse)Author
2026-09-18Require the devtools wrappers for build/test and launch verificationPeter Stone
Each of these happened here and was reported as fact: Gradle running against a different directory after a silent `cd` failure; `adb shell monkey` reporting a healthy app as crashed and a crashed app as healthy on the same emulator minutes apart; and `adb install` refusing a filename into /dev/null, leaving the previous build installed and under test. Points at /workspace/devtools, which reports from exit codes, parsed JUnit XML, and a logcat capture started before launch. Documentation only — no production code touched, so no red step applies.
2026-08-24Add TDD quality gate: detekt, coverage tracking, pre-commit hook; fix theme ↵Peter Stone
crash risk CLAUDE.md now documents mandatory red-green-refactor TDD, a per-commit quality gate (build, tests, lint, detekt, coverage-non-decrease, WebView-JS justification, manifest permission diff, secret scan), and why each check exists (tracing back to real bugs this audit found). Wires up detekt (static analysis) and a standalone Jacoco setup (scoped to data/readability/opml/work/stash -- ui/ Compose screens are impractical to unit-test for coverage) via app/build.gradle.kts. Bumped Kotlin/KSP to 2.0.21/2.0.21-1.0.28 to match detekt 1.23.8's compatibility requirement. Also fixes the themes.xml bug the lint gate immediately caught: Theme.FeedReader's parent required API 29 while minSdk is 26 -- a real crash risk on Android 8.0-9.0 devices. Swapped to the plain (non-DayNight) DeviceDefault parent, since Compose already owns all real theming via a hardcoded darkColorScheme() regardless of system day/night state. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017GMEkHeqKz6FLkmizowBTK