* Docs: Refresh CONTRIBUTING for extensions-lib 16 - Document lib 16: libVersion, hoster/season flow, resolveVideo, sortHosters/sortVideos, the named Video constructor and the AnimeHttpLegacySource shims - Replace manga leftovers: randomua now requires getAnimeUrl() (also in the Spotless check), Riztranslation intent-filter example - Fix stale advice: rateLimitHost, theme src layout, date format example - Update module counts and versionName note in AGENTS.md/CLAUDE.md Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * Docs: Address review feedback on lib 16 guide - Sort hosters/videos in getHosterList/getVideoList; sortHosters/sortVideos optional - Unresolved videos may have an empty videoUrl - AnimeIto is a legacy-shim example, not fully migrated - URL example: check the /anime/ prefix; single intent-filter host Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * Docs: Fall back to text search for non-anime URLs Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * Docs: Skip empty slugs in URL search example Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * Docs: Guard empty path segments in URL search example Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * Docs: Address second review pass - AnimeUpdateStrategy (UpdateStrategy doesn't exist in extensions-lib) - libVersion 16 also for hoster-only migrations on shim themes - Cite Anikku ExtensionLoader for the accepted lib range - Sorting: either sort before returning or override the sort hooks - Date example sets the timezone Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
1.7 KiB
CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
@AGENTS.md
Everything about this codebase — commands, architecture, conventions, versioning, CI — lives in the
import above (which itself pulls in CONTRIBUTING.md). Claude Code expands @-imports, so both are
already in context; don't re-read them. What follows is only guidance specific to working here
through Claude Code's tooling.
Searching
build/ and .history/ are gitignored but still on disk, and both shadow real source files —
build/spotless-clean/ mirrors every Kotlin file it formats, and .history/ holds ~3.6M of
timestamped Markdown copies. The Grep tool skips them (ripgrep honors .gitignore); grep -r run
through Bash does not, and will report a stale duplicate alongside every real hit. When searching
via Bash, pass --exclude-dir=build --exclude-dir=.history, or use Grep instead.
Editing and verifying
- Pick one extension or theme and verify it with its own
:module:compileDebugKotlin. Gradle configures ~330 modules, so an unscoped invocation is a multi-minute no-op for a one-file change. - Don't reach for the Android Studio workflow
CONTRIBUTING.mddescribes — the Gradle task is the headless equivalent and is what belongs in a tool call. spotlessApplyrewrites files on disk. Re-read anything you have edited before further edits, or run it last.
Scope discipline
Each extension is an independent published artifact with its own version code, so a change that looks repo-wide is usually a change to one module. Before editing a second module, confirm it is actually in scope — a stray edit there means an unwanted version bump and an unrelated APK rebuild in CI.