Mark section as finished

A “sophisticated” solution:

\documentclass{article}
\usepackage{xparse,xcolor}

% remove for the final version
\let\latexsection\section
\newif\ifsectioncompleted

\RenewDocumentCommand{\section}{sO{#3}m}{%
  \IfBooleanTF{#1}
    {\latexsection*{#3}}% starred sections don't go in the TOC
    {\let\greensection\relax % we don't want green in headers
     \ifsectioncompleted
       \latexsection[\greensection#2]{#3}%
     \else
       \latexsection[#2]{#3}%
     \fi
     \global\sectioncompletedfalse
    }%
}

\NewDocumentCommand{\completed}{}{\global\sectioncompletedtrue}
\NewDocumentCommand{\greensection}{}{\color{green!70!red}}
% END of code to remove (remember to remove also \completed in the text)

\begin{document}

\tableofcontents

\bigskip
\hrule
\bigskip

\completed\section{Introduction}

Blah blah

\section{I need to work on this one}

Blah blah

\completed\section{This one is finished}

Blah blah

\end{document}

enter image description here


I'd use

\section{\YeyIveFinished{Foo}}  

with

\newcommand\YeyIveFinished[1]{#1}

or

\newcommand\YeyIveFinished[1]{\protect\textcolor{green}{#1}}

in the preamble, as required.