{"owner":"coil-kt","repo":"coil","hasSkills":true,"totalSkillsCount":1,"totalTokensCount":721,"categories":["root-instruction"],"hasMcp":false,"mcpConfig":null,"found":["AGENTS.md"],"skills":{"AGENTS.md":"# Repository Guidelines\n\n## Project Structure & Module Organization\nThis is a Kotlin Multiplatform monorepo built with Gradle. Public library modules live at the repository root (for example `coil-core`, `coil-compose`, `coil-network-okhttp`, `coil-gif`, `coil-svg`, `coil-video`, `coil-test`, `coil-bom`). Internal tooling and test support modules are under `internal/`, and runnable examples are under `samples/` (`samples:compose`, `samples:compose-android`, `samples:view`).\n\nMost modules use source sets like `src/commonMain`, `src/commonTest`, `src/androidMain`, `src/androidHostTest`, and `src/androidDeviceTest`. Shared build logic and the custom source-set hierarchy live in `buildSrc/`; dependency versions are in `gradle/libs.versions.toml`. Documentation content lives in `docs/`.\n\n## Build, Test, and Development Commands\n- `./gradlew spotlessCheck`: run Kotlin formatting/lint checks.\n- `./gradlew lint`: run Android lint checks.\n- `./gradlew verifySkikoVersionsMatch`: check that Coil and Compose request matching Skiko versions.\n- `./gradlew checkKotlinAbi`: verify public API compatibility.\n- `./gradlew updateKotlinAbi`: refresh ABI baselines when API changes are intentional.\n- `./test.sh`: run style and ABI checks plus unit, instrumentation, and screenshot tests.\n- `./test.sh --skip-instrumentation-tests`: run the suite without connected-device tests.\n- `./test.sh --skip-checks`: skip style and ABI checks when they have already passed.\n- `./gradlew allTests testDebugUnitTest`: run aggregate multiplatform and Android unit tests.\n- `./gradlew connectedDebugAndroidTest`: run Android instrumentation tests (emulator/device required).\n\n## Coding Style & Naming Conventions\nFollow `.editorconfig`: UTF-8, LF endings, 4-space indentation, max line length 100, final newline, no trailing whitespace. Kotlin formatting is enforced via Spotless + ktlint (`intellij_idea` style with project-specific rule overrides).\n\nMatch existing naming patterns: packages under `coil3.*`, types in `UpperCamelCase`, members in `lowerCamelCase`, constants in `UPPER_SNAKE_CASE`. Keep file names aligned with primary types (for example `NetworkFetcher.kt`).\n\n## Testing Guidelines\nTests use Kotlin Test/JUnit, Robolectric, Android instrumentation, and screenshot tooling (Paparazzi/Roborazzi/Compose screenshot validation). Name test files `*Test.kt` and place them in the appropriate source set (`commonTest`, `androidHostTest`, etc.).\n\nFor bug fixes, add or update a failing test first when possible. Run `./test.sh` before opening a PR.\n\n## Commit & Pull Request Guidelines\nUse concise, imperative commit subjects (for example `Fix macOS test flakiness`). Dependency updates commonly use Conventional Commit style (for example `fix(deps): ...` or `chore(deps): ...`).\n\nPRs should include:\n- A clear summary of what changed and why.\n- Linked issue(s) when applicable.\n- Test evidence (commands run, and screenshots for UI/screenshot test changes).\n- Updated ABI files when public API changes are intentional.\n- Add the following text at the end of the last line of the PR description: `review-path-agent`.\n\nBefore submitting, ensure `./test.sh` passes locally.\n"},"files":{"AGENTS.md":"# Repository Guidelines\n\n## Project Structure & Module Organization\nThis is a Kotlin Multiplatform monorepo built with Gradle. Public library modules live at the repository root (for example `coil-core`, `coil-compose`, `coil-network-okhttp`, `coil-gif`, `coil-svg`, `coil-video`, `coil-test`, `coil-bom`). Internal tooling and test support modules are under `internal/`, and runnable examples are under `samples/` (`samples:compose`, `samples:compose-android`, `samples:view`).\n\nMost modules use source sets like `src/commonMain`, `src/commonTest`, `src/androidMain`, `src/androidHostTest`, and `src/androidDeviceTest`. Shared build logic and the custom source-set hierarchy live in `buildSrc/`; dependency versions are in `gradle/libs.versions.toml`. Documentation content lives in `docs/`.\n\n## Build, Test, and Development Commands\n- `./gradlew spotlessCheck`: run Kotlin formatting/lint checks.\n- `./gradlew lint`: run Android lint checks.\n- `./gradlew verifySkikoVersionsMatch`: check that Coil and Compose request matching Skiko versions.\n- `./gradlew checkKotlinAbi`: verify public API compatibility.\n- `./gradlew updateKotlinAbi`: refresh ABI baselines when API changes are intentional.\n- `./test.sh`: run style and ABI checks plus unit, instrumentation, and screenshot tests.\n- `./test.sh --skip-instrumentation-tests`: run the suite without connected-device tests.\n- `./test.sh --skip-checks`: skip style and ABI checks when they have already passed.\n- `./gradlew allTests testDebugUnitTest`: run aggregate multiplatform and Android unit tests.\n- `./gradlew connectedDebugAndroidTest`: run Android instrumentation tests (emulator/device required).\n\n## Coding Style & Naming Conventions\nFollow `.editorconfig`: UTF-8, LF endings, 4-space indentation, max line length 100, final newline, no trailing whitespace. Kotlin formatting is enforced via Spotless + ktlint (`intellij_idea` style with project-specific rule overrides).\n\nMatch existing naming patterns: packages under `coil3.*`, types in `UpperCamelCase`, members in `lowerCamelCase`, constants in `UPPER_SNAKE_CASE`. Keep file names aligned with primary types (for example `NetworkFetcher.kt`).\n\n## Testing Guidelines\nTests use Kotlin Test/JUnit, Robolectric, Android instrumentation, and screenshot tooling (Paparazzi/Roborazzi/Compose screenshot validation). Name test files `*Test.kt` and place them in the appropriate source set (`commonTest`, `androidHostTest`, etc.).\n\nFor bug fixes, add or update a failing test first when possible. Run `./test.sh` before opening a PR.\n\n## Commit & Pull Request Guidelines\nUse concise, imperative commit subjects (for example `Fix macOS test flakiness`). Dependency updates commonly use Conventional Commit style (for example `fix(deps): ...` or `chore(deps): ...`).\n\nPRs should include:\n- A clear summary of what changed and why.\n- Linked issue(s) when applicable.\n- Test evidence (commands run, and screenshots for UI/screenshot test changes).\n- Updated ABI files when public API changes are intentional.\n- Add the following text at the end of the last line of the PR description: `review-path-agent`.\n\nBefore submitting, ensure `./test.sh` passes locally.\n"},"items":[{"name":"AGENTS.md","path":"AGENTS.md","rawUrl":"https://raw.githubusercontent.com/coil-kt/coil/HEAD/AGENTS.md","title":"AI Agent Protocol & Instructions","category":"root-instruction","format":"markdown","content":"# Repository Guidelines\n\n## Project Structure & Module Organization\nThis is a Kotlin Multiplatform monorepo built with Gradle. Public library modules live at the repository root (for example `coil-core`, `coil-compose`, `coil-network-okhttp`, `coil-gif`, `coil-svg`, `coil-video`, `coil-test`, `coil-bom`). Internal tooling and test support modules are under `internal/`, and runnable examples are under `samples/` (`samples:compose`, `samples:compose-android`, `samples:view`).\n\nMost modules use source sets like `src/commonMain`, `src/commonTest`, `src/androidMain`, `src/androidHostTest`, and `src/androidDeviceTest`. Shared build logic and the custom source-set hierarchy live in `buildSrc/`; dependency versions are in `gradle/libs.versions.toml`. Documentation content lives in `docs/`.\n\n## Build, Test, and Development Commands\n- `./gradlew spotlessCheck`: run Kotlin formatting/lint checks.\n- `./gradlew lint`: run Android lint checks.\n- `./gradlew verifySkikoVersionsMatch`: check that Coil and Compose request matching Skiko versions.\n- `./gradlew checkKotlinAbi`: verify public API compatibility.\n- `./gradlew updateKotlinAbi`: refresh ABI baselines when API changes are intentional.\n- `./test.sh`: run style and ABI checks plus unit, instrumentation, and screenshot tests.\n- `./test.sh --skip-instrumentation-tests`: run the suite without connected-device tests.\n- `./test.sh --skip-checks`: skip style and ABI checks when they have already passed.\n- `./gradlew allTests testDebugUnitTest`: run aggregate multiplatform and Android unit tests.\n- `./gradlew connectedDebugAndroidTest`: run Android instrumentation tests (emulator/device required).\n\n## Coding Style & Naming Conventions\nFollow `.editorconfig`: UTF-8, LF endings, 4-space indentation, max line length 100, final newline, no trailing whitespace. Kotlin formatting is enforced via Spotless + ktlint (`intellij_idea` style with project-specific rule overrides).\n\nMatch existing naming patterns: packages under `coil3.*`, types in `UpperCamelCase`, members in `lowerCamelCase`, constants in `UPPER_SNAKE_CASE`. Keep file names aligned with primary types (for example `NetworkFetcher.kt`).\n\n## Testing Guidelines\nTests use Kotlin Test/JUnit, Robolectric, Android instrumentation, and screenshot tooling (Paparazzi/Roborazzi/Compose screenshot validation). Name test files `*Test.kt` and place them in the appropriate source set (`commonTest`, `androidHostTest`, etc.).\n\nFor bug fixes, add or update a failing test first when possible. Run `./test.sh` before opening a PR.\n\n## Commit & Pull Request Guidelines\nUse concise, imperative commit subjects (for example `Fix macOS test flakiness`). Dependency updates commonly use Conventional Commit style (for example `fix(deps): ...` or `chore(deps): ...`).\n\nPRs should include:\n- A clear summary of what changed and why.\n- Linked issue(s) when applicable.\n- Test evidence (commands run, and screenshots for UI/screenshot test changes).\n- Updated ABI files when public API changes are intentional.\n- Add the following text at the end of the last line of the PR description: `review-path-agent`.\n\nBefore submitting, ensure `./test.sh` passes locally.\n","isInternal":false,"tokens":721,"sizeBytes":3165}],"systemPromptSnippet":"<yakaai_skills repo=\"coil-kt/coil\">\n<!-- File: AGENTS.md (Tokens: ~721 | Category: root-instruction) -->\n# Repository Guidelines\n\n## Project Structure & Module Organization\nThis is a Kotlin Multiplatform monorepo built with Gradle. Public library modules live at the repository root (for example `coil-core`, `coil-compose`, `coil-network-okhttp`, `coil-gif`, `coil-svg`, `coil-video`, `coil-test`, `coil-bom`). Internal tooling and test support modules are under `internal/`, and runnable examples are under `samples/` (`samples:compose`, `samples:compose-android`, `samples:view`).\n\nMost modules use source sets like `src/commonMain`, `src/commonTest`, `src/androidMain`, `src/androidHostTest`, and `src/androidDeviceTest`. Shared build logic and the custom source-set hierarchy live in `buildSrc/`; dependency versions are in `gradle/libs.versions.toml`. Documentation content lives in `docs/`.\n\n## Build, Test, and Development Commands\n- `./gradlew spotlessCheck`: run Kotlin formatting/lint checks.\n- `./gradlew lint`: run Android lint checks.\n- `./gradlew verifySkikoVersionsMatch`: check that Coil and Compose request matching Skiko versions.\n- `./gradlew checkKotlinAbi`: verify public API compatibility.\n- `./gradlew updateKotlinAbi`: refresh ABI baselines when API changes are intentional.\n- `./test.sh`: run style and ABI checks plus unit, instrumentation, and screenshot tests.\n- `./test.sh --skip-instrumentation-tests`: run the suite without connected-device tests.\n- `./test.sh --skip-checks`: skip style and ABI checks when they have already passed.\n- `./gradlew allTests testDebugUnitTest`: run aggregate multiplatform and Android unit tests.\n- `./gradlew connectedDebugAndroidTest`: run Android instrumentation tests (emulator/device required).\n\n## Coding Style & Naming Conventions\nFollow `.editorconfig`: UTF-8, LF endings, 4-space indentation, max line length 100, final newline, no trailing whitespace. Kotlin formatting is enforced via Spotless + ktlint (`intellij_idea` style with project-specific rule overrides).\n\nMatch existing naming patterns: packages under `coil3.*`, types in `UpperCamelCase`, members in `lowerCamelCase`, constants in `UPPER_SNAKE_CASE`. Keep file names aligned with primary types (for example `NetworkFetcher.kt`).\n\n## Testing Guidelines\nTests use Kotlin Test/JUnit, Robolectric, Android instrumentation, and screenshot tooling (Paparazzi/Roborazzi/Compose screenshot validation). Name test files `*Test.kt` and place them in the appropriate source set (`commonTest`, `androidHostTest`, etc.).\n\nFor bug fixes, add or update a failing test first when possible. Run `./test.sh` before opening a PR.\n\n## Commit & Pull Request Guidelines\nUse concise, imperative commit subjects (for example `Fix macOS test flakiness`). Dependency updates commonly use Conventional Commit style (for example `fix(deps): ...` or `chore(deps): ...`).\n\nPRs should include:\n- A clear summary of what changed and why.\n- Linked issue(s) when applicable.\n- Test evidence (commands run, and screenshots for UI/screenshot test changes).\n- Updated ABI files when public API changes are intentional.\n- Add the following text at the end of the last line of the PR description: `review-path-agent`.\n\nBefore submitting, ensure `./test.sh` passes locally.\n</yakaai_skills>"}