Skip to content

Commit 6004e7c

Browse files
committed
fix(claude): correct stale codebase facts in agent and skill prompts
bug-triage still told the agent that RxJava 3 and SQLCipher were in use. RxJava was removed in 715f9ec and no build file declares SQLCipher, so the agent would look for threading and encryption bugs that cannot occur. The async and persistence lines now match CLAUDE.md. dependency-impact named ui:navigation and libs:locale:public as leaking RxJava and coroutines-rx3. Neither declares those api() dependencies. Its list of non-catalog dependencies also named sol4k, which is gone, and webkit, which is in the catalog. Both lines now describe how to find the answer instead of a list that goes stale. pr-reviewer pointed IO work at Dispatchers.IO, while CLAUDE.md says dispatchers are injected through DispatcherProvider. Also drops the all-caps ALWAYS in the release-notes prompt and rewords the "no longer vendored" line in fetch-protos to state the current setup.
1 parent f0c2e00 commit 6004e7c

5 files changed

Lines changed: 11 additions & 11 deletions

File tree

‎.claude/agents/bug-triage.md‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ When given a bug report (Bugsnag link, stack trace, error description, or user r
2525
3. **Trace the Execution Path**: Follow the code path that leads to the crash. Examine:
2626
- The throwing method and its callers
2727
- State management (MVI/MVVM patterns, reactive streams)
28-
- Threading (Coroutines, RxJava 3) — look for race conditions, missing dispatchers
28+
- Threading (Coroutines + Flow, dispatchers from `DispatcherProvider`) — look for race conditions, missing dispatchers
2929
- Dependency injection (Hilt) — look for missing bindings or scoping issues
3030
- Null safety — look for unsafe casts, Java interop nullability gaps
3131
- CompositionLocal access — check if locals are accessed outside their provider scope
@@ -34,7 +34,7 @@ When given a bug report (Bugsnag link, stack trace, error description, or user r
3434
- Crypto operations — look for key management edge cases, encryption failures
3535

3636
4. **Identify Patterns**: When the user mentions patterns (e.g., "same device", "repeated", "after update"), specifically investigate:
37-
- Device-specific state corruption (Room/SQLCipher, DataStore)
37+
- Device-specific state corruption (Room, DataStore)
3838
- Cached state inconsistencies
3939
- Migration issues
4040
- Retry loops or infinite error cycles
@@ -79,8 +79,8 @@ Concrete code changes with file paths and rationale.
7979

8080
- Namespaces: `com.flipcash.app.android`, `com.getcode`, `com.flipcash.features.*`, `com.flipcash.shared.*`
8181
- DI: Hilt with CompositionLocal injection pattern
82-
- Async: Kotlin Coroutines + RxJava 3 coexist
83-
- DB: Room with SQLCipher encryption
82+
- Async: Kotlin Coroutines + Flow; dispatchers injected via `DispatcherProvider`
83+
- DB: Room, one database per user (name derived from account entropy, not encrypted); DataStore for preferences
8484
- Network: gRPC + Protobuf
8585
- Convention plugins handle module setup — check `build-logic/` if build config is relevant
8686

‎.claude/agents/dependency-impact.md‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,5 +85,5 @@ Proceed / Proceed with caution / Investigate further — with reasoning.
8585
- `flipcash.android.library` → `timber`, `kotlinx-coroutines-core`
8686
- `flipcash.android.library.compose` → Compose BOM, `compose-ui`, `compose-foundation`
8787
- `flipcash.android.feature` → Hilt, full Compose bundle, project deps
88-
- `api()` declarations leak transitively — check `ui:navigation` (leaks RxJava), `libs:locale:public` (leaks coroutines-rx3)
89-
- Some dependencies are hardcoded outside the catalog (emoji2, guava, sol4k, jsoup, webkit)
88+
- `api()` declarations leak transitively — read the `api(...)` lines of every module that declares the dependency, then follow its consumers
89+
- Some dependencies are declared as string coordinates outside the catalog; find them with `grep -rn 'implementation("' --include=*.kts .`

‎.claude/agents/pr-reviewer.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ Review code changes (PR diff or local changes) and provide actionable, prioritiz
3030

3131
### Kotlin & Coroutines
3232
- Structured concurrency — no leaked coroutine scopes, proper cancellation
33-
- Dispatcher usage — IO work on `Dispatchers.IO`, no blocking on Main
33+
- Dispatcher usage — IO work on the dispatcher injected via `DispatcherProvider`, no blocking on Main
3434
- `Result` handling — MockK double-boxes `Result` inline class; Mockito should be used for `Result`-returning mocks in tests
3535
- Null safety — especially at Java/proto interop boundaries
3636

‎.claude/skills/fetch-protos/SKILL.md‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@ allowed-tools:
1717

1818
# Fetch Protos
1919

20-
The protos are no longer vendored here. Both contracts arrive as published
21-
artifacts, so "fetching" is bumping a version pin and reacting to what the new
22-
version changed.
20+
Both contracts arrive as published artifacts, not as protos in this repo, so
21+
"fetching" is bumping a version pin and reacting to what the new version
22+
changed.
2323

2424
| Target | Artifact | Client repo | Upstream contract |
2525
|--------|----------|-------------|-------------------|

‎.claude/skills/release-notes/SKILL.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ Use the Agent tool with `model: "haiku"`. Pass the raw changelog output with thi
4848
> - One short sentence per item
4949
> - Group related commits into a single bullet when they address the same area
5050
> - Use scope as context but write in plain language; keep scope in **bold** prefix when it adds clarity
51-
> - ALWAYS include bug fixes — only drop pure refactors, CI pipeline changes, and release/manifest bookkeeping
51+
> - Include every bug fix; drop only pure refactors, CI pipeline changes, and release/manifest bookkeeping
5252
> - Feature bullets start with a lowercase verb (e.g., "add", "support", "enable")
5353
> - Bug fix bullets start with "Fixed" (capitalized)
5454
> - **Dependencies** section: list each dependency bump as `Name X.Y.Z → A.B.C` (use the human-readable library name, not the Maven coordinate). Include targetSdkVersion and Gradle wrapper bumps in this section too.

0 commit comments

Comments
 (0)