Non so se esiste una cosa del genere.
Tuttavia, dal momento che stai scrivendo in C, devi incoraggiare esplicitamente la disciplina attorno alla modularità. Ti esorto ad avere un'architettura leggera composta da livelli di astrazione, probabilmente 2 o 3 livelli per iniziare. Ogni livello espone concetti, comportamenti e relazioni a un'utile completezza che il successivo livello di consumo può utilizzare senza dover raggiungere il livello inferiore o il metallo nudo.
All'interno di un livello puoi avere una modularità aggiuntiva, simile alle classi in altre lingue.
Quindi documenterei i livelli e il modo in cui sono disposti l'uno rispetto all'altro, accanto alle interfacce di livello. E poi all'interno di un livello, l'organizzazione al suo interno.
Quando hai questa architettura leggera, avrai una nozione più chiara su dove le cose dovrebbero vivere e, si spera, un'idea migliore di dove cercare l'astrazione e le capacità già esistenti.
Con un'architettura leggera, avrai anche nomi di livelli e altri moduli che facilitano la discussione e accelera la comunicazione con i tuoi colleghi.