[guided]The reduction turns the task “choose one true literal from every clause without contradiction” into the graph task “choose one mutually adjacent vertex from every clause.” We define one vertex for each literal occurrence, not merely for each literal, because the same literal may appear in several clauses and each clause must contribute its own choice.
Let $\varphi$ be a $3$-CNF formula with clauses $C_1,\dots,C_m$. For each clause index $i \in \{1,\dots,m\}$, write
\begin{align*}
C_i = \ell_{i1} \vee \ell_{i2} \vee \ell_{i3},
\end{align*}
where each $\ell_{ij}$ is either a Boolean variable $x$ or the negated literal $\neg x$.
We define the graph $G_\varphi = (V_\varphi,E_\varphi)$ by
\begin{align*}
V_\varphi := \{(i,j) : 1 \leq i \leq m,\ 1 \leq j \leq 3\}.
\end{align*}
The meaning of $(i,j)$ is “select literal $\ell_{ij}$ from clause $C_i$.” We connect two distinct vertices $(i,j)$ and $(r,s)$ if and only if two conditions hold: first, $i \neq r$, so the two choices come from different clauses; second, $\ell_{ij}$ and $\ell_{rs}$ are not complementary literals. Formally,
\begin{align*}
\{(i,j),(r,s)\} \in E_\varphi \iff i \neq r \text{ and } \ell_{ij} \text{ is not the complement of } \ell_{rs}.
\end{align*}
Why exclude edges inside a single clause? Because a clique of size $m$ should represent one selected literal from each of the $m$ clauses, not multiple choices from the same clause. Why exclude complementary literals? Because no Boolean assignment can make both $x$ and $\neg x$ true.
The target instance is $(G_\varphi,m)$. The graph has $3m$ vertices, and there are at most
\begin{align*}
\binom{3m}{2}
\end{align*}
unordered pairs of vertices to inspect when forming the edge set. For each pair, checking whether the clause indices are distinct and whether the two literals are complements is polynomial in the formula size. Thus the reduction is computable in polynomial time.[/guided]