| Test intent | Test names, [Documentation], and tags describe user-visible behavior or API contract. | Action-only tests, vague names, duplicated coverage, tests that verify implementation details only. |
| Assertions | Every test has meaningful outcome assertions after the action. | Run Keyword And Ignore Error around assertions, "visible" as the only oracle for functional behavior, swallowed failures. |
| Setup/teardown | Shared setup/teardown is explicit and local to the required scope. Persistent data is cleaned up. | Order-dependent tests, shared mutable state, UI setup for data that should be seeded by API/fixture. |
| Keywords | User keywords express domain actions and remain small, composable, and readable. | Large procedural keywords, deep nesting, keywords that mix setup, action, assertion, and cleanup. |
| Resources | Shared keywords live in .resource files and suite files remain focused on tests. | Duplicated helper keywords across suites, resource names that conflict, ambiguous keyword imports. |
| Variables | Scope and casing make ownership clear; environment-specific values come from variables/env/config. | Hardcoded domains, credentials, generated IDs, or case/space variants of the same variable name. |
| Waiting | Use library-specific waits, retrying assertions, and event-driven waits. | Sleep, blanket network-idle waits, arbitrary retries, force-clicks hiding readiness problems. |
| Data | Use unique, deterministic test data and assert on the entity created by the test. | Global counts, list positions, shared usernames, tests that only pass in a pre-seeded environment. |
| Parallelism | Tests are safe under randomized order and pabot unless explicitly marked otherwise. | Global state mutation, shared browser/session state across independent tests, cleanup racing with other tests. |
| Style | Follow project formatter/linter settings; otherwise use 4-space cell separation, section order, concise lines, and consistent naming. | Inconsistent spacing, overlong lines, mixed old/new Robot syntax, redundant comments. |