How is t-test on non-normal distribution justified? I have heard that when the sample size n is large enough, we can apply the t-test to non-normal distribution due to the CLT. But as far as I can see, the CLT only justify the normality of the sample mean. To apply t-test, we need $S^2(n-1)/\sigma^2$ to follow a $\chi^2$ distribution, where $S^2$ is the corrected sample variance. How does the CLT justify this then? The only thing I can think of is to resample the data as the mean of many batches. That is we create a new data set $\{y_i\}$ from the data set $\{x_i\}$ by defining $y_i = \frac{1}{k}\sum_{j=ki+1}^{ki+k}x_j$. The $\{y_i\}$ will be approximately normal due to CLT, so we can apply the t-test to $\{y_i\}$ instead of $\{x_i\}$. Is this how the t-test is justified for non-normal observation when n is large? The computation would be quite different though.

This focuses on one-sample t-tests.

as far as I can see, the CLT only justify the normality of the sample mean.

More specifically, under some conditions, in the limit as $n\to\infty$, $Z_n=(\bar{Y}_n-\mu)/(\sigma/\sqrt{n})$ converges in distribution to a standard normal.

To apply t-test, we need $S^2(n−1)/σ^2$
to follow a $χ^2$ distribution

Sure, and you also need that numerator and denominator are independent.

How does the CLT justify this then?

Of itself, it doesn't; it's one piece of the story but several more pieces would be needed, and they don't get you to the t-test statistic actually having a t-distribution (not that you need it, exactly).
Note that $T_n=Z_n / (s/\sigma)$. We could, for example apply Slutsky's theorem to this to show that $T_n$ is also asymptotically normal.
There are conditions for these theorems, so they must hold to be sure to get the result that $T_n$ is asymptotically standard normal.
Then we'd need to show that the error in using $t$ in place of the standard normal would also 'work', asymptotically (which it does; indeed, in the regions people usually worry about it tends to come in more quickly than the other parts, unless you go to the extreme tail - say as a result of a Bonferroni-type adjustment and a lot of comparisons).
So eventually we should expect the distribution of the t-statistic to be well approximated by the t-distribution (under $H_0$). This would suggest that at some sufficiently large sample size, if all the conditions hold, the null distribution t-statistic should be reasonably approximated by a t-statistic, and so a t-test conducted this way should have about the right significance level, $\alpha$.
It doesn't give you a guarantee about how large $n$ might need to be but in recent times there's been progress on getting Berry-Esseen like bounds for t-statistics.
There's also a potential worry about how good the relative power might be (if your sample was large because you're looking to pick up a small effect size, you may need all the power you can get).
Nevertheless, in many "not too nasty" cases the t-test does pretty well. (At the same time, it's not hard to find cases where sample sizes need to be pretty big.)

The only thing I can think of is to resample the data as the mean of many batches. That is we create a new data set ${y_i}$ from the data set ${x_i}$  by defining $y_i = \frac{1}{k}\sum_{j=ki+1}^{ki+k}x_j$. The ${y_i}$  will be approximately normal due to CLT, so we can apply the t-test to ${y_i}$  instead of ${x_i}$ . Is this how the t-test is justified for non-normal observation when n is large?

No, it's not; a potential justification is as above, and then there's practical evidence from simulations to see when it becomes useful under a variety of skewed or heavy-tailed etc possibilities.
However, if you're comfortable with resampling (as this suggests), you can get that significance-level guarantee* at any sample size, across any distribution via a permutation test. You can even use the t-statistic itself as the statistic in that test if you wish; no concerns there with "is n=80 enough?" or whatever.
That doesn't fix the potential power issue, of course.
* to not exceed it; in very small samples you may end up below it, even with a simple null.
