Base components (a.k.a. presentational, dumb, or pure components) that apply app-specific styling and conventions should all begin with a specific prefix, such as `Base`, `App`, or `V`.
stack-vuestyle-conventions
Low
Centralize string constants
Define shared string literals (route names, keys, claim types) as constants/enums in a single place.
duplication-complexitymaintainability+1
Low
Clarify persistence/serialization with annotations
Annotate fields/props to explicitly control persistence and serialization (e.g., transient/ignored fields).
style-conventions
Low
Classify HTTP errors with type-safe narrowing
Define a discriminated union or error class hierarchy and use user-defined type guards before handling specific cases.
error-handlingstyle-conventions
Low
Component name casing in JS/JSX
Component names in JS/JSX should always be PascalCase, though they may be kebab-case inside strings for simpler applications that only use global component registration through `app.component`.
stack-vuestyle-conventions
Low
Component name casing in templates
In most projects, component names should always be PascalCase in Single-File Components and string templates - but kebab-case in in-DOM templates.
stack-vuestyle-conventions
Low
Component/instance options order
Component options (like `name`, `props`, `data`, `computed`, `methods`, lifecycle hooks, etc.) should be ordered consistently according to a predefined sequence.
stack-vuestyle-conventions
Low
Continue should not be used in loops
Detect the use of 'continue' inside loops. This practice can make control flow harder to follow. Recommend restructuring the loop for better readability.
readability-refactorstyle-conventions
Low
Declare Variables Near Their First Use
Ensure that variables are declared as close as possible to their first use to improve readability.
readability-refactorstyle-conventions
Low
Declare Variables Separately
Ensure that each variable is declared separately instead of using multiple declarations in one statement.
readability-refactorstyle-conventions
Low
Declare Visibility on Properties and Methods
Always specify access levels (public, private, protected) when declaring class properties and methods. Don’t use the old `var` keyword for properties. Explicit visibility clarifies intent and prevents unintended access.
module-architecturereadability-refactor+2
Low
Define constants to avoid re-creation
Hoist constant Regex/Formatters/Collections into top-level vals or companion objects; avoid recreating in hot paths.
performance-efficiencystyle-conventions
Low
Define hardcoded strings as shared constants
Replace magic strings with constants or enums sealed classes; keep them in a single source of truth.
duplication-complexitymaintainability+1
Low
Define reusable constants for repeated values
Create theme-like constants (radii, gaps, durations) and reuse across widgets.
duplication-complexitymaintainability+2
Low
Derive TypeScript types from validation schemas
Avoid duplicating runtime schemas and TypeScript types; derive types from constants/functions or declare as const tuples.
duplication-complexitystyle-conventions
Low
Directive shorthands
Directive shorthands (`:` for `v-bind:`, `@` for `v-on:` and `#` for `v-slot`) should be used always or never.
stack-vuestyle-conventions
Low
Do Not Use Block Comments for Documentation
Use `///` for documentation instead of block comments to improve tooling support and ensure better formatting in generated docs.
docs-adrsstack-flutter+1
Low
Do not use the Array constructor
Detect occurrences of the Array constructor. It behaves inconsistently depending on arguments. Recommend using array literals [] instead for clarity and predictability.
error-handlingreadability-refactor+1
Low
Do not use the Object constructor
Ensure that the Object constructor is not used. Object literals are clearer, more predictable, and improve readability.
readability-refactorstyle-conventions
Low
DO title extensions using UpperCamelCase
Ensure that extensions use UpperCamelCase naming conventions (e.g., `MyExtension`). Avoid other casing styles that could reduce readability.
stack-flutterstyle-conventions
Low
DO title import prefixes using lowercase_with_underscores
Check that import prefixes use lowercase_with_underscores (e.g., `my_library`), following Dart's style guide.
stack-flutterstyle-conventions
Low
DO title other identifiers using lowerCamelCase
Ensure that identifiers such as variables and method titles are written in lowerCamelCase (e.g., `myVariable`). Avoid using other naming conventions.
stack-flutterstyle-conventions
Low
DO type annotate fields and top-level variables if the type isn't obvious
Check that fields and top-level variables are type-annotated explicitly when the type is not obvious from the context. This avoids ambiguity.
readability-refactorstack-flutter+1
Low
Document async/Promise behavior and errors
For async functions or functions returning Promise, document resolve value, rejection conditions, and usage with await; include @throws or @returns {Promise<Type>}.