% Author: Simon-Pierre Boucher — simon-pierre.boucher@uqo.ca % Standalone TikZ source of the architecture schematic (compiled to fig_architecture.pdf; included by % paper/sections/architecture.tex with \includegraphics). Rebuild: pdflatex fig_architecture.tex \documentclass[border=4pt]{standalone} \usepackage{mathptmx} \usepackage{tikz} \usetikzlibrary{arrows.meta,positioning,fit,calc} \begin{document} \begin{tikzpicture}[ font=\footnotesize, box/.style={draw, rounded corners=1.5pt, align=center, minimum height=9mm, inner sep=4pt, text width=23mm}, small/.style={draw, align=center, minimum height=6mm, inner sep=2pt, text width=12mm, font=\scriptsize}, arr/.style={-{Latex[length=2mm]}, thick}, node distance=6mm and 9mm ] \node[box] (packet) {Evidence packet\\[1pt] {\scriptsize P, C01--C12, M1, G1}}; \node[box, right=of packet] (views) {Least-privilege\\ role views\\[1pt] {\scriptsize 12 roles}}; \node[box, right=of views] (r0) {Round 0\\ independent\\ estimates}; \node[box, right=of r0] (rounds) {Rounds $1\ldots r$\\ critique, then\\ revision}; \node[box, right=of rounds] (agg) {Aggregation\\ in log space\\[1pt] {\scriptsize point, 90\,\% interval}}; \draw[arr] (packet) -- (views); \draw[arr] (views) -- (r0); \draw[arr] (r0) -- (rounds); \draw[arr] (rounds) -- (agg); % annotations \node[below=3mm of packet, text width=26mm, align=center, font=\scriptsize] (a1) {no price, no address;\\ cutoff $=t-1$}; \node[below=3mm of views, text width=26mm, align=center, font=\scriptsize] (a2) {sections per role:\\ subject / comps / market / geo}; \node[below=3mm of r0, text width=26mm, align=center, font=\scriptsize] (a3) {JSON contract,\\ $\le 2$ corrective retries}; \node[below=3mm of rounds, text width=30mm, align=center, font=\scriptsize] (a4) {anonymised table, committee\\ median, evidence ids only;\\ stop if $\Delta$IQR $<1\,\%$ (recorded)}; \node[below=3mm of agg, text width=26mm, align=center, font=\scriptsize] (a5) {weights from\\ validation only}; % arms \node[above=4mm of r0, font=\scriptsize] (armF) {arm F stops here (E: one generalist)}; \draw[arr, dashed] (armF.south) -- (r0.north); \node[above=4mm of rounds, font=\scriptsize] (armG) {arms G, H, I ($r\in\{1,2,4\}$)}; \draw[arr, dashed] (armG.south) -- (rounds.north); \end{tikzpicture} \end{document}