Create

Aikido Rule

Complex ternaries (or ternaries within ternaries) are not ok

const accessLevel = user.isAdmin 
  ? 'admin' 
  : user.isManager 
    ? (user.teamSize > 10 ? 'senior-manager' : 'manager') 
    : user.isContractor 
      ? 'contractor' 
      : 'guest';

Aikido comment

Avoid nested ternaries — this logic is hard to scan and should be rewritten with clear conditionals.

Create

Aikido Rule

Avoid the use of break, especially in inner loops

function findUserPermission(users: User[], permission: string): boolean {
  for (const user of users) {
    for (const perm of user.permissions) {
      if (perm === permission) {
        return true;
      }
      if (perm === 'restricted') {
        break;
      }
    }
  }
  return false;
}

Aikido comment

Avoid using break in inner loops — it complicates control flow and can lead to subtle bugs or confusion.