RuleStack

Configs

Stacks

Compare

Diff

RuleStack

Configs

Stacks

Compare

Diff

Read API

RuleStack

Configs

Stacks

Compare

Diff

Read API

Configs/CLAUDE.md/kurikomi-labs/komi-store

CLAUDE.md

feature/details/CLAUDE.md
CLAUDE.md

Quality

53/100

Scores the file, not the repository.

Length

518 words

4 headings · 1 code blocks

Repository

17k

— · pushed 5 days ago

Last changed

3 days ago

First indexed 3 days ago.
kurikomi-labs/komi-store/feature/details/CLAUDE.mdRawGitHub
1# Details Feature
2 
3Repository detail screen — owner, stats, releases with download/install, readme (with translation), per-app install/update flow. Most complex feature.
4 
5## Structure
6 
7```
8feature/details/
9├── domain/ # DetailsRepository, TranslationRepository; ReleaseCategory, RepoStats, SupportedLanguage, TranslationResult
10├── data/ # impls + ReadmeLocalizationHelper, preprocessMarkdown
11└── presentation/
12 ├── DetailsViewModel.kt / State / Action / Event / Root
13 ├── model/ # DownloadStage, InstallLogItem, LogResult, ShowDowngradeWarning, SupportedLanguages, TranslationState
14 ├── components/
15 │ ├── AppHeader, ReleaseAssetsPicker, VersionPicker, VersionTypePicker, SmartInstallButton, InspectApkButton, ApkInspectSheet, LanguagePicker, TranslationControls, StatItem
16 │ └── sections/ About, Header, Logs, Owner, ReportIssue, Stats, WhatsNew, ReleaseChannel
17 ├── states/ErrorState
18 └── utils/ # MarkdownImageTransformer, MarkdownUtils, SystemArchitecture, LocalTopbarLiquidState, LogResultAsText
19```
20 
21## Navigation
22 
23`GithubStoreGraph.DetailsScreen(repositoryId, owner, repo, isComingFromUpdate, sourceHost)`. By ID or owner+name (deep links use latter; `repositoryId == -1` falls back to owner+name lookup). `sourceHost` non-null routes all `DetailsRepository` calls through `ForgejoClientRegistry` (Codeberg / Forgejo / custom forge).
24 
25## Notes
26 
27- Readme localized via `ReadmeLocalizationHelper`; markdown via `multiplatform-markdown-renderer` + `MarkdownImageTransformer`. Translation via `TranslationRepository` + `LanguagePicker`. `TranslationProvider` enum = `GOOGLE` / `YOUDAO` / `LIBRE_TRANSLATE` / `DEEPL` / `MICROSOFT`.
28- Download stages: `DownloadStage` idle→downloading→installing→done. `SmartInstallButton` adapts to install state. Downgrade warning before installing older version.
29- Injects (lots): `DetailsRepository`, `TranslationRepository`, `FavouritesRepository`, `StarredRepository`, `InstalledAppsRepository`, `SeenReposRepository`, `TweaksRepository`, `TelemetryRepository`, `ExternalImportRepository`, `AuthenticationState`, `ProfileRepository`, `Downloader`, `Installer`, `PackageMonitor`, `SystemInstallSerializer`, `BrowserHelper`, `ShareManager`, `Platform`, `SyncInstalledAppsUseCase`, `InstallationManager`, `AttestationVerifier`, `DownloadOrchestrator`, `ApkInspector`, `GitHubStoreLogger`. Data layer additionally injects `ForgejoClientRegistry`.
30- Android installer paths: Default / Shizuku / Dhizuku / Root. Root via raw `su` (`RootServiceManager`). Dhizuku 14+ retries without installer attribution.
31- **Multi-OS picker (E15):** `ReleaseAssetsItemsPicker` toggle flips `TweaksRepository.showAllPlatforms`. ON → assets group by `assetPlatformOf` into `PlatformSectionCard`s with "Your device"/"For transfer" chips. Non-current asset → `OnDownloadForTransfer` → `BrowserHelper.openUrl`.
32- **Coachmarks:** APK Inspect button pulse + ReleaseChannel chip Popup. One-shot via `TweaksRepository.get*CoachmarkShown`.
33- **Self-owned ✓ badge (E20):** `AppHeader` ✓ next to owner login when `state.isCurrentUserOwner`. Reactive via `combine(profileRepo.getUser(), state.repository.owner.login)`.
34- **Skip release (E542):** per-app `skippedReleaseTag` on `InstalledApp`. `SmartInstallButton` suppresses CTA; auto-clears on strictly-newer release.
35- **Forgejo / Codeberg branch:** `DetailsRepositoryImpl.getRepositoryByOwnerAndName / getAllReleases / getReadme / getRepoStats / getLatestPublishedRelease` accept `sourceHost: String? = null`. Non-null → `ForgejoApiClient` direct call (no backend mediator). README from `/contents/README.md?ref={branch}` (Forgejo lacks `/readme`); license sniffed from `/contents/LICENSE` via SPDX regex; downloads aggregated by summing asset `download_count`. CRLF release bodies normalized so GFM tables render. Foreign-source `getUserProfile` skipped (GitHub-only). `AppHeader` avatar falls back to `repository.owner.avatarUrl` when profile null.
36- **Multi-flavor primary picker (#638):** `pickPrimaryInstalledApp` prefers asset-filter match → `isUpdateAvailable=false` variant → `first()`. Prevents false "Update" CTA when a project ships multiple packages (e.g. generic + Play APK) and only one variant is current.
37- **Content width:** `LocalContentWidth` (`COMPACT` 680dp default, `WIDE` 960dp, `EXTRA_WIDE` fills window). Set in `Tweaks → Appearance` (desktop). Outer Box's `Modifier.scrollable(state=listState, reverseDirection=true, enabled = !ANDROID)` forwards mouse-wheel events from empty side gutters to the LazyColumn — gated to non-Android to avoid double scrollable contending with LazyColumn touch.
38- **Markdown perf:** Chunked progressive rendering (`splitMarkdownIntoChunks`, ~4000 chars). Pre-processing (theme-aware images + `separateAdjacentImageLinks`) on `Dispatchers.Default`. `onAction` lambda hoisted via `remember`; `MarkdownComponents` memoized; `TranslationState @Immutable`. Together kills download-progress-driven recomp storms.
39- **Markdown image link awareness:** `LinkAwareMarkdownImage` walks `ASTNode.parent` for `INLINE_LINK`, makes badge images clickable to outer href. `MarkdownImageTransformer` adds browser-like User-Agent + accept header to bypass CDN hotlink protection on common badge services.
40 

Sections

  • Details Feature
  • Structure
  • Navigation
  • Notes

What it covers

architecture

Stack — with the evidence

kotlin

(1.00)

java

(0.60)

github-actions

(0.60)

Format

CLAUDE.md

Claude Code's memory file. Shaped like AGENTS.md but with two things it lacks: @path imports, so shared rules live in one place, and a user-scope layer that follows the developer across repos rather than shipping with the code.

What the corpus says about it

Repository

Owner
kurikomi-labs
Language
—
License
—
Archived
no

All configs in this repo

Also in kurikomi-labs/komi-store

Diff this repo’s formats

One repository carrying more than one format is the comparison this product exists for: does anyone actually write different content in each file, or is one a copy of the other?

The other instruction files in this repository
RepositoryFormatStackCoversScoreChanged
kurikomi-labs/komi-storefeature/dev-profile/CLAUDE.md · 17kCLAUDE.mdkotlinjava+1arch40/1003 days ago
kurikomi-labs/komi-storefeature/favourites/CLAUDE.md · 17kCLAUDE.mdkotlinjava+1arch40/1003 days ago
kurikomi-labs/komi-storefeature/home/CLAUDE.md · 17kCLAUDE.mdkotlinjava+1arch54/1003 days ago
kurikomi-labs/komi-storefeature/profile/CLAUDE.md · 17kCLAUDE.mdkotlinjava+1arch54/1003 days ago
kurikomi-labs/komi-storefeature/tweaks/CLAUDE.md · 17kCLAUDE.mdkotlinjava+1archmonorepo54/1003 days ago
kurikomi-labs/komi-storefeature/recently-viewed/CLAUDE.md · 17kCLAUDE.mdkotlinjava+1arch35/1003 days ago
kurikomi-labs/komi-storefeature/search/CLAUDE.md · 17kCLAUDE.mdkotlinjava+1arch54/1003 days ago
kurikomi-labs/komi-storefeature/starred/CLAUDE.md · 17kCLAUDE.mdkotlinjava+1arch54/1003 days ago
kurikomi-labs/komi-storeAGENTS.md · 17kAGENTS.mdkotlinjava+1buildlint-formatstylearch+197/1003 days ago
kurikomi-labs/komi-storeCLAUDE.md · 17kCLAUDE.mdkotlinjava+1buildstylearchgit78/1003 days ago
kurikomi-labs/komi-storefeature/apps/CLAUDE.md · 17kCLAUDE.mdkotlinjava+1arch58/1003 days ago
kurikomi-labs/komi-storefeature/auth/CLAUDE.md · 17kCLAUDE.mdkotlinjava+1archsecurity58/1003 days ago
Diff against feature/dev-profile/CLAUDE.md Diff against feature/favourites/CLAUDE.md Diff against feature/home/CLAUDE.md Diff against feature/profile/CLAUDE.md Diff against feature/tweaks/CLAUDE.md Diff against feature/recently-viewed/CLAUDE.md Diff against feature/search/CLAUDE.md Diff against feature/starred/CLAUDE.md Diff against AGENTS.md Diff against CLAUDE.md Diff against feature/apps/CLAUDE.md Diff against feature/auth/CLAUDE.md

Similar configs

Same format, overlapping stack, ranked by quality.

Same format, overlapping stack, ranked by quality
RepositoryFormatStackCoversScoreChanged
livewire/livewireCLAUDE.md · 24kCLAUDE.mdphpvitest+4setupbuildteststyle+4100/1003 days ago
filamentphp/filamentCLAUDE.md · 32kCLAUDE.mdphplaravel+5buildtestlint-formatstyle+7100/1003 days ago
stacklok/toolhiveCLAUDE.md · 2.0kCLAUDE.mdgogithub-actionsbuildteststylearch+4100/1003 days ago
dotCMS/corecore-web/CLAUDE.md · 949CLAUDE.mdjavanode+13teststylearchtesting-strategy+3100/1003 days ago
Adit-Jain-srm/NightmareNetCLAUDE.md · 45CLAUDE.mdtypescriptpython+18buildtestlint-formatstyle+6100/1003 days ago
microsoft/playwrightCLAUDE.md · 94kCLAUDE.mdtypescriptjavascript+10buildtestlint-formatstyle+7100/1003 days ago
nimbalyst/nimbalystpackages/android/CLAUDE.md · 1.4kCLAUDE.mdtypescriptnode+16setupbuildstylearch+2100/1003 days ago
bagisto/bagistoCLAUDE.md · 28kCLAUDE.mdphplaravel+8setupbuildteststyle+5100/1003 days ago
RuleStack

Built by

Kynth Studio

Directory

Configs
Stacks
Compare formats
Diff two configs
Best AGENTS.md examples

Formats

AGENTS.md
CLAUDE.md
Cursor rules
Copilot instructions

Reference

Read API
Corpus health
Privacy Policy
Terms

RuleStack

RuleStack

Built by

Kynth Studio

Directory

Configs
Stacks
Compare formats
Diff two configs
Best AGENTS.md examples

Formats

AGENTS.md
CLAUDE.md
Cursor rules
Copilot instructions

Reference

Read API
Corpus health
Privacy Policy
Terms

RuleStack

RuleStack

Built by

Kynth Studio

Directory

Configs
Stacks
Compare formats
Diff two configs
Best AGENTS.md examples

Formats

AGENTS.md
CLAUDE.md
Cursor rules
Copilot instructions

Reference

Read API
Corpus health
Privacy Policy
Terms

RuleStack