The current implementation has a bug: it uses `left >= 10` as the condition, which means a count of exactly 10 is folded (1+0=1) but a count of 9 is returned as-is. The contract says "A count already standing as one figure is given back as it is" — and 10 is not a single figure.

The fix: change `>= 10` to `> 10`.

```ts
export function rootDigit(value: number): number {
  let left = value;
  if (left > 10) {
    let sum = 0;
    while (left > 0) {
      sum += left % 10;
      left = Math.floor(left / 10);
    }
    left = sum;
  }
  return left;
}
```

This correctly leaves 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 unchanged (each is a single figure), and folds 100 → 1+0+0 = 1, 101 → 1+0+1 = 2, etc.