Shape reusable library APIs for Compose modules. Design public composables, split sample-app code from reusable library code, review naming and extensibility.
The English summary is being prepared. Showing the original description.
ALWAYS invoke this skill before writing, editing, generating, or refactoring ANY code. Do not write or modify code directly without first loading and following these Clean Code guidelines. Use when writing new functions/classes, refactoring existing code, reviewing code, fixing bugs, or any task that produces code output.
The English summary is being prepared. Showing the original description.
See how to installReview the instructions the agent will receive before you install.
These rules apply to ALL code you produce. No exceptions.
naming.md and functions.md are already pre-loaded by the prehook — apply them directlyclasses.md from the absolute path provided at the end of this prehook contexterror-handling.md from the same pathNOTE: The prehook injects the absolute path to the references directory at the end of its context. Use that path for any file reads — relative paths will NOT work.
Naming — for every name, ask these questions:
Functions — for every function, check:
row-1, col+1 appear inline, extract exploreNorth(), exploreSouth(), etc.File-level stepdown: Entry point function FIRST → class definition → helpers → primitives. Reader hits "what" before "how".
Code speaks: No comments explaining WHAT. If you need a comment, rename or extract instead. Only comment WHY when non-obvious. No section-header comments (// --- Section ---, // ===== Setup =====) — use blank lines between concept groups. If headers are needed, the class has too many responsibilities.
Errors: Exceptions, not error codes. Never return null. Never pass null. Fail fast.
Classes: One reason to change. High cohesion. Law of Demeter — never chain a.getB().getC().
Organization: Stepdown rule for function ordering. Group related concepts. Blank lines between concepts. 80-120 char lines.
DRY: No duplication. But no premature abstraction for single use.
The UserPromptSubmit hook injects ./references/rules-card.md — a condensed summary of ALL clean code rules (~50 lines). This is always available in your context. USE IT.
./references/functions.md — function design, stepdown rule, extraction patterns (includes Number of Islands canonical example)./references/naming.md — naming conventions with domain examples./references/classes.md — SOLID, cohesion, encapsulation./references/error-handling.md — exception patterns, null handling./references/comments.md — when to comment (almost never)./references/formatting.md — vertical/horizontal layout./references/testing.md — TDD, F.I.R.S.T. principlesNo reviews yet. Tell others what you thought.
No login needed. Share how it worked for you, ask a question, or note where it did not run.
No comments yet. Be the first to write one.
Shape reusable library APIs for Compose modules. Design public composables, split sample-app code from reusable library code, review naming and extensibility.
The English summary is being prepared. Showing the original description.
Build sample/demo screens that make library options explorable. Add controls, previews, presets, sample data, and QA surfaces in the app module.
The English summary is being prepared. Showing the original description.
Keep module structure, naming, and build configuration ready for future publishing. Handle new Gradle modules, library metadata, namespace and artifact readiness.
The English summary is being prepared. Showing the original description.
Implement Google's Material Design 3 (Material You) UI system. Primary: Jetpack Compose Material3 (MaterialTheme, components, adaptive layout). Also Flutter and limited web (@material/web, maintenance mode). Covers tokens, 30+ components, layout, theming, M3 Expressive (platform matrix), and accessibility. Use when: "material design", "MD3", "material you", "Jetpack Compose", "MaterialTheme", "material component", "md3 button".
The English summary is being prepared. Showing the original description.
Implement tasks from an OpenSpec change. Use when the user wants to start implementing, continue implementation, or work through tasks.
The English summary is being prepared. Showing the original description.
Archive a completed change in the experimental workflow. Use when the user wants to finalize and archive a change after implementation is complete.
The English summary is being prepared. Showing the original description.