# Correspondence between $k[\epsilon]/(\epsilon^2)$-points of a scheme, and points with tangent vectors

I'm trying to learn about the "functor of points" approach to algebraic geometry, and I get everything here except for why a $k[\epsilon]/(\epsilon^2)$-point of a scheme corresponds to choosing a point and a tangent vector. Am I correct that the $\kappa_i$ must satisfy the $f_j$'s because we can always mod out by $\epsilon$ and get back a $k$-point? Why do the $\epsilon$'s produce information about the derivative? Also, how exactly do we put together all of the $k[\epsilon]/(\epsilon^2)$-points to make a "tangent bundle"? Such a thing seems like it should have the structure of a scheme (by analogy of the case of manifolds), but as far as I can tell, the collection of all $k[\epsilon]/(\epsilon^2)$-valued points, namely $\text{Hom}(\text{Spec}(k[\epsilon]/(\epsilon^2)),X)$, is just a set (this being the whole idea behind the "functor of points" being from $Schemes$ to $Sets$ in the first place).

-

Let $k[V] = k[x_1, ... x_n]/(f_1, ... f_r)$ be the ring of functions on the variety $V = \{ f_1 = ... = f_r = 0 \}$. Then a homomorphism $\phi : k[x_1, ... x_n]/(f_1, ... f_r) \to k[\epsilon]/(\epsilon^2)$ is precisely determined by the images $\phi(x_i) = p_i + \epsilon q_i \in k[\epsilon]/(\epsilon^2)$ subject to the condition that $f_j(p + \epsilon q) = 0$.
$$f_j(p + \epsilon q) = f_j(p) + \epsilon \sum_i q_i \frac{\partial f_j}{\partial x_i}(p).$$
This is just truncated Taylor expansion, and the corresponding statement is true for $k[\epsilon]/(\epsilon^n)$ for every finite $n$. Hence this condition holds if and only if the $p_i$ define a point of $V$ and the $q_i$ define a vector orthogonal to the gradients of each of the $f_j$; this is precisely the condition that they define a tangent vector over $\mathbb{R}$ so we adopt it as our definition of tangent vector in general. It's not hard to see that we can add tangent vectors.
The equations above allow us to give the following definition of the tangent bundle: define the polynomials $g_j = \sum_i y_i \frac{\partial f_j}{\partial x_i}(x) \in k[x_1, ... x_n, y_1, ... y_n]$, and then the tangent bundle ought to be $\text{Spec } k[x_1, ... x_n, y_1, ... y_n]/(f_1, ... f_r, g_1, ... g_r)$. There is probably a coordinate-independent way to state this definition.