HarmonyOS ArkTS rules for components, state, resources, layout, lifecycle, and accessibility
.cursorrules or .cursor/rules/harmony-arkts.mdc # HarmonyOS ArkTS Rules ## Component Structure - Use `@Component` for component definitions and PascalCase for component structs. - Keep state declarations near the top of the component. - Group lifecycle hooks before `build()`. - Place `build()` last and keep it focused on UI composition. - Extract complex UI into smaller components. ## State and Data Flow - Use `@State` for component-owned state. - Use `@Prop` for parent-to-child data. - Use `@Link` only for intentional two-way binding. - Keep derived values in methods or computed helpers rather than duplicating state. - Avoid broad global state unless the project has an established app-state pattern. ## Layout and Styling - Use `Column`, `Row`, `Stack`, `List`, and other ArkUI primitives intentionally. - Keep layout properties such as width, height, alignment, and layout weight grouped before visual properties. - Use object notation for margin and padding when sides differ. - Use logical pixels consistently. - Use percentage strings for relative sizes. - Keep reusable spacing, colors, and typography in resources when the project supports it. ## Events and Lifecycle - Use arrow functions for event handlers. - Keep event handlers short and delegate complex logic to methods. - Handle async failures explicitly and surface user-facing errors where appropriate. - Use lifecycle hooks for setup and teardown that genuinely depends on component lifecycle. ## Resources and Accessibility - Use `$r()` for app resources. - Group resource references consistently. - Add descriptive labels and focus handling for interactive elements. - Maintain color contrast and touch target size. - Test on representative device sizes and orientations. ## Common Mistakes - Do not bury business logic in `build()`. - Do not use two-way binding when one-way props are enough. - Do not hardcode repeated strings, colors, and dimensions that belong in resources. - Do not leave debug `console.log` calls in production code.
@Component for component definitions and PascalCase for component structs.build().build() last and keep it focused on UI composition.@State for component-owned state.@Prop for parent-to-child data.@Link only for intentional two-way binding.Column, Row, Stack, List, and other ArkUI primitives intentionally.$r() for app resources.build().console.log calls in production code.Quantitative factor research skills for Cursor. Evaluate factors, run backtests, mine new alpha through natural language.
Prevent AI over-engineering by keeping changes scoped, simple, and directly tied to the user's request
Anti-sycophancy directives for code review and generation. Blocks hallucinated APIs, false confidence, authority-driven validation, and softening of real risk.
Cursor rules for Aspnet Abp.
Guidelines and best practices for building applications with [Beefree SDK](https://docs.beefree.io/beefree-sdk), including installation, authentication, configuration, customization, and template management
Cursor rules for embedding Beefree SDK's no-code content editors (for emails, pages, and popups) into a web application.