enforcing-stability-in-ci

Configures a CI gate that fails builds on Jetpack Compose stability regressions using committed baselines.

Updated May 31, 2026
One-click install
npx skills add https://github.com/decoutkhanqindev/Lich-Viet-Loc-Phat --skill enforcing-stability-in-ci-decoutkhanqindev
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: enforcing-stability-in-ci
Source: https://github.com/decoutkhanqindev/Lich-Viet-Loc-Phat/tree/main/.claude/skills/enforcing-stability-in-ci
Command: npx skills add https://github.com/decoutkhanqindev/Lich-Viet-Loc-Phat --skill enforcing-stability-in-ci-decoutkhanqindev

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Jetpack Compose stability silently regresses when a new var or unstable parameter slips into a shared data class, disabling skipping across many screens with no build warning. This Skill sets up a CI gate that diffs a committed stability baseline on every pull request and fails the build when stability regresses. ## Core Features & Use Cases - Baseline generation and validation: Applies the skydoves/compose-stability-analyzer Gradle plugin, configures the composeStabilityAnalyzer { stabilityValidation { ... } } DSL, and generates committed .stability baseline files via :stabilityDump. - CI integration: Wires :stabilityCheck into GitHub Actions (or other CI) so regressions block merges, with guidance on ignore lists, local opt-outs, and justified baseline updates. - Multiplatform alternative: Points to j-roskopf/ComposeGuard for Compose Multiplatform, desktop, or iOS projects outside the Android Gradle plugin. - Use Case: A team migrating a large app to strong skipping commits a stability baseline, then a PR changing val to var in a shared data class turns the PR check red and names the regressed composable before it ships. ## Quick Start Ask the AI to set up the compose-stability-analyzer plugin in your Gradle modules, generate a stability baseline, and add a stabilityCheck step to your CI workflow.

Frequently Asked Questions about enforcing-stability-in-ci

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I fail the build on Jetpack Compose stability regressions in CI?▼

Apply the com.github.skydoves.compose.stability.analyzer Gradle plugin, enable stabilityValidation with failOnStabilityChange set to true, commit the .stability baseline generated by :stabilityDump, and run :stabilityCheck in your CI job. The task diffs the current snapshot against the baseline and fails on regression.

What is the difference between compose-stability-analyzer and ComposeGuard?▼

Both commit a stability baseline and fail CI on regressions. The skydoves compose-stability-analyzer is recommended for Android-only projects and integrates with @TraceRecomposition, while ComposeGuard fits Compose Multiplatform targets like desktop and iOS outside the Android Gradle plugin.

Does the compose-stability-analyzer plugin work with Compose Multiplatform?▼

The skydoves plugin targets Android projects built with the Android Gradle plugin. For Compose Multiplatform on desktop or iOS via KMP, use ComposeGuard, which exposes equivalent generate and check tasks with the same baseline-diff workflow.

Why does stabilityCheck always pass or no-op in CI?▼

The most common cause is writing the baseline to the build/ directory, which is gitignored, so CI starts with no baseline. Configure outputDir to a path inside the module, commit the .stability files, and verify failOnStabilityChange is set to true.

When should I not add a stability baseline gate?▼

Skip it for single-developer throwaway prototypes where baseline maintenance costs more than it saves. Also do not baseline a known-broken state; diagnose and fix existing stability problems first, otherwise the gate just locks the brokenness in.