Zero is in every row, column and nonet. One of 1-9 is missing in each row, column and nonet.
Prelims
a) R12C1 = {05/14/23}, no 6,7,8,9
b) R1C89 = {07/16/25/34}, no 8,9
c) R45C6 = {04/13}
d) R56C4 = {39/48/57}, no 0,1,2,6
e) R56C9 = {29/38/47/56}, no 0,1
f) R6C56 = {03/12}
g) R9C12 = {07/16/25/34}, no 8,9
h) R9C34 = {69/78}
i) 19(3) cage at R1C2 = {289/379/469/478/568}, no 0,1
j) 18(3) cage at R1C5 = {189/279/369/378/459/468/567}, no 0
k) 8(3) cage at R2C2 = {017/026/035/125/134}, no 8,9
l) 20(3) cage at R2C9 = {389/479/569/578}, no 0,1,2
m) 21(3) cage at R5C2 = {489/579/678}, no 0,1,2,3
n) 5(3) cage at R5C7 = {014/023}
o) 20(3) cage at R6C1 = {389/479/569/578}, no 0,1,2
p) 6(4) cage at R3C3 = {0123}
q) 8(4) cage at R7C3 = {0125/0134}
1a. R45C6 = {04} (cannot be {13} which clashes with R6C56), locked for C6 and N5, clean-up: no 5,9 in R4C45, no 8 in R56C4, no 3 in R6C56
1b. Naked pair {12} in R6C56, locked for R6 and N5, clean-up: no 7,8 in R4C45, no 9 in R5C9
1c. Naked pair {36} in R4C45, locked for R4 and N5, clean-up: no 9 in R56C4
1d. Naked pair {57} in R56C4, locked for C4 and N5, clean-up: no 8 in R9C3
1e. R5C5 = one of 8,9 with the other missing from N5 and in all other nonets
2a. Naked quad {0123} in 6(4) cage at R3C3, locked for C3
2b. 8(4) cage at R7C3 = {0125/0134}, 0,1 locked for R7 and N8
2c. R7C3 = {45} -> no 4,5 in R7C456
2d. 5(3) cage at R5C7 = {014/023}, 0 locked for C7 and N6
2e. 45 rule on complete grid, taking into account that 1-9 are each missing in one nonet so cells total 360, R4C7 + R5C5 = 10, R5C5 = {89} -> R4C7 = {12}
2f. Killer pair 1,2 in R4C7 and 5(3) cage, locked for C7, 1 locked for N6
[Applying 45 rule to nonets which must total at least 36 but cannot total 45 because that doesn’t provide a space for 0]
3a. 45 rule on R1 cages total 44 -> R1C1 = 0, R2C1 = 5, clean-up: no 7 in R1C89
3b. 45 rule on C1 cages total 42 -> R9C1 = {12}, R9C2 = {56}
3c. 45 rule on C9 cages total 42 -> R1C9 = {12}, R1C8 = {56}
3d. 45 rule on R9 cages total 43 -> R9C9 = {01}
3e. 21(4) cage must have four positive numbers (cannot be {0489/0579/0678} which clash with R9C34), no 0
3f. R9C9 = 0 (hidden single in R9) -> R78C9 = 11 = {29/38/47/56}, no 1
3g. R8C2 = 0 (hidden single in R8) -> R8C34 = 14 = [59/68/86]
3h. 8(3) cage at R2C2 = {125/134}, no 6,7
3i. Killer triple 4,5,6 in 8(3) cage, 21(3) cage at R6C2 and R9C2, locked for C2
3j. 20(3) cage at R6C1 = {389/479}, no 6, 9 locked for C1
3k. 17(3) cage at R3C1 = {368/467} (cannot be {278} which clashes with 20(3) cage), no 1,2
4a. 20(3) cage at R2C9 = {389/479/569} (cannot be {578} because that makes R56C9 = [92] and R78C9 = {29}), 9 locked for C9, clean-up: no 2 in R6C9, no 2 in R78C9
4b. One of 1,2 missing in C9, also one of 1,2 missing in C1 -> all other columns must contain both of 1,2
5a. 19(3) cage at R1C2 = {289/379/469/478}
5b. 18(3) cage at R1C5 = {189/279/369/378/459/468} (cannot be {567} which clashes with R1C8)
5c. 18(3) cage = {369/378/468} (cannot be {189/279/459} which clash with 19(3) cage), no 1,2,5
5d. 19(3) cage = {379/469/478} (cannot be {289} which clashes with 18(3) cage), no 2
5e. Killer pair 6,7 in 18(3) cage and 19(3) cage for R1, locked for R1 -> R1C8 = 5, R1C9 = 2
6a. 1,2 in C2 only in 8(3) cage at R2C2 (step 3h) = {125} -> R23C2 = {12}, locked for N1, R4C2 = 5, R9C2 = 6 -> R9C1 = 1, clean-up: no 7 in 21(3) cage at R6C2, no 9 in R9C34
6b. R9C34 = [78]
6c. R3C3 = 3 -> R6C3 = 0, R5C7 = 0 (hidden single in C7) -> R67C7 = 5 = [32], R4C7 = 1 -> R45C3 = [21], R45C6 = [04], clean-up: no 8 in R5C9, no 7,8 in R6C9
6d. R4C7 + R5C5 = 10 (step 2d), R4C7 = 1 -> R5C5 = 9, R5C2 = 8
6e. Naked pair {49} in R67C2, 9 locked for C2
6f. Naked triple {479} in R4C1 + R6C12, 7 locked for C1
6g. 8 missing from N5, must be in all other nonets
6h. 21(4) cage at R9C5 = {3459} (only remaining combination), no 2
6i. 2 missing from N7 -> 3 in N7 only in R78C1, locked for C1 -> R5C1 = 6, R34C1 = 11 = [47], R6C1 = 9, R67C2 = [49], naked pair {38} in R78C1, 8 locked for N7, R8C3 = 5 -> R8C4 = 9, clean-up: no 7 in R5C9, no 5 in R6C9
6j. R56C9 = [56] -> R56C4 = [75], R5C8 = 2 -> R34C8 = 12 = [84], R6C8 = 7 -> R78C8 = 7 = [61]
6k. R7C3 = 4 -> R7C456 = {013}, 3 locked for R7 and N8 -> R9C56 = [45], R9C78 = [93], clean-up: no 8 in R78C9
6l. R78C9 = [74] -> R8C7 = 8, R8C56 = 8 = {26}
6m. R3C9 = 9, R2C8 = 0 -> R2C67 = 15 = [87/96]
6n. Naked pair {67} in R23C7, locked for C7 -> R1C7 = 4, R1C56 = 14 = {68}, locked for R1 and N2, R2C76 = [96]
6o. R2C3 = 8 -> R2C45 = 9 = [27]
and the rest is naked singles.