Auto-commit 2026-09-07 16:21: 17 files changed, 34 insertions(+), 34 deletions(-)

This commit is contained in:
herzogflorian 2026-09-07 16:21:02 +02:00
parent 044327166b
commit 04685e9442
17 changed files with 34 additions and 34 deletions

Binary file not shown.

View File

@ -212,10 +212,10 @@ The next frames show \textbf{low-fidelity sketches} of the platform from the use
\begin{frame}{Three users, one system -- and one working day}
\begin{columns}[T]
\begin{column}{0.62\textwidth}
\begin{column}{0.64\textwidth}
\includegraphics[width=\linewidth]{../project_exercise/ui_sketches/00_user_journey.png}
\end{column}
\begin{column}{0.37\textwidth}
\begin{column}{0.35\textwidth}
\footnotesize
\begin{itemize}\setlength\itemsep{3pt}
\item \textbf{Analyst}: trusts the numbers, checks the explanations
@ -229,10 +229,10 @@ The next frames show \textbf{low-fidelity sketches} of the platform from the use
\begin{frame}{Sketch 1 -- portfolio overview}
\begin{columns}[T]
\begin{column}{0.62\textwidth}
\begin{column}{0.64\textwidth}
\includegraphics[width=\linewidth]{../project_exercise/ui_sketches/01_portfolio_dashboard.png}
\end{column}
\begin{column}{0.37\textwidth}
\begin{column}{0.35\textwidth}
\footnotesize
\begin{itemize}\setlength\itemsep{3pt}
\item Positions from \texttt{PortfolioService}; return and Sharpe from \texttt{PerformanceService}; volatility and VaR from \texttt{RiskService} (Sections 2.3, 2.4)
@ -245,10 +245,10 @@ The next frames show \textbf{low-fidelity sketches} of the platform from the use
\begin{frame}{Sketch 2 -- market data}
\begin{columns}[T]
\begin{column}{0.62\textwidth}
\begin{column}{0.64\textwidth}
\includegraphics[width=\linewidth]{../project_exercise/ui_sketches/02_market_data.png}
\end{column}
\begin{column}{0.37\textwidth}
\begin{column}{0.35\textwidth}
\footnotesize
\begin{itemize}\setlength\itemsep{3pt}
\item Configurable tickers, historical and recent prices; the live API is rate-limited, so the \textbf{mandatory cache/snapshot fallback} takes over and every figure is marked \emph{snapshot} (Section 2.1)
@ -261,10 +261,10 @@ The next frames show \textbf{low-fidelity sketches} of the platform from the use
\begin{frame}{Sketch 3 -- news and insights}
\begin{columns}[T]
\begin{column}{0.62\textwidth}
\begin{column}{0.64\textwidth}
\includegraphics[width=\linewidth]{../project_exercise/ui_sketches/03_news_insights.png}
\end{column}
\begin{column}{0.37\textwidth}
\begin{column}{0.35\textwidth}
\footnotesize
\begin{itemize}\setlength\itemsep{3pt}
\item Raw news stored with provenance by \texttt{NewsIngestionService}; the \texttt{ResearchAgent} returns a strict, schema-validated \texttt{Insight} (Section 2.2)
@ -277,10 +277,10 @@ The next frames show \textbf{low-fidelity sketches} of the platform from the use
\begin{frame}{Sketch 4 -- the advisor}
\begin{columns}[T]
\begin{column}{0.62\textwidth}
\begin{column}{0.64\textwidth}
\includegraphics[width=\linewidth]{../project_exercise/ui_sketches/04_advisor.png}
\end{column}
\begin{column}{0.37\textwidth}
\begin{column}{0.35\textwidth}
\footnotesize
\begin{itemize}\setlength\itemsep{3pt}
\item \texttt{AdvisorAgent} orchestrates \texttt{ResearchAgent}, \texttt{RiskAgent}, \texttt{OptimizationAgent} through \textbf{service contracts only} (Section 2.5)
@ -293,10 +293,10 @@ The next frames show \textbf{low-fidelity sketches} of the platform from the use
\begin{frame}{Sketch 5 -- risk and optimisation}
\begin{columns}[T]
\begin{column}{0.62\textwidth}
\begin{column}{0.64\textwidth}
\includegraphics[width=\linewidth]{../project_exercise/ui_sketches/05_optimisation.png}
\end{column}
\begin{column}{0.37\textwidth}
\begin{column}{0.35\textwidth}
\footnotesize
\begin{itemize}\setlength\itemsep{3pt}
\item Mean--variance optimisation with constraints; the three analysis services are \textbf{pure and deterministic}: same input, same output (Section 2.3)
@ -309,10 +309,10 @@ The next frames show \textbf{low-fidelity sketches} of the platform from the use
\begin{frame}{Sketch 6 -- system status: the measurement contract, live}
\begin{columns}[T]
\begin{column}{0.62\textwidth}
\begin{column}{0.64\textwidth}
\includegraphics[width=\linewidth]{../project_exercise/ui_sketches/06_system_status.png}
\end{column}
\begin{column}{0.37\textwidth}
\begin{column}{0.35\textwidth}
\footnotesize
\begin{itemize}\setlength\itemsep{3pt}
\item \textbf{Basic observability} of cost and latency per request is mandatory (Section 5); budgets, eval threshold, and module-boundary check are \textbf{CI gates} (M2, M5)

View File

@ -42,7 +42,7 @@
<p class="small" style="margin:2px 0">request id → agent trace → each LLM call (prompt version, model, tokens, latency) → guard verdicts → cited Insight ids → the service calls that produced every number. Exportable as an audit record.</p></div>
</div>
<div class="note" style="left: 40px; top: 560px;"><b>1</b>API-first: every screen only calls the HTTP/JSON API; the dashboard holds no business logic (§2.6).</div>
<div class="note r" style="left: 470px; top: 560px;"><b>2</b>Degrade gracefully and say so in the UI (§4.2) — the demo will hit a failing API.</div>
<div class="note" style="left: 40px; top: 545px;"><b>1</b>API-first: every screen only calls the HTTP/JSON API; the dashboard holds no business logic (§2.6).</div>
<div class="note r" style="left: 470px; top: 545px;"><b>2</b>Degrade gracefully and say so in the UI (§4.2) — the demo will hit a failing API.</div>
<div class="watermark">SKETCH 0/7 · wireframe, not a specification</div>
</div></body></html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 424 KiB

After

Width:  |  Height:  |  Size: 421 KiB

View File

@ -48,8 +48,8 @@
</div>
</div>
<div class="note" style="left: 40px; top: 595px;"><b>1</b>Graceful degradation (§4.2): when the LLM or a data API is down, deterministic analysis still works and the UI says so.</div>
<div class="note r" style="left: 470px; top: 595px;"><b>2</b>Every figure names the deterministic service that computed it (§2.3) — agents never compute numbers.</div>
<div class="note" style="left: 900px; top: 595px;"><b>3</b>Freshness stamp: "as of last completed ingestion" — the advisor may never claim fresher data.</div>
<div class="note" style="left: 40px; top: 570px;"><b>1</b>Graceful degradation (§4.2): when the LLM or a data API is down, deterministic analysis still works and the UI says so.</div>
<div class="note r" style="left: 470px; top: 570px;"><b>2</b>Every figure names the deterministic service that computed it (§2.3) — agents never compute numbers.</div>
<div class="note" style="left: 900px; top: 570px;"><b>3</b>Freshness stamp: "as of last completed ingestion" — the advisor may never claim fresher data.</div>
<div class="watermark">SKETCH 1/7 · wireframe, not a specification</div>
</div></body></html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 429 KiB

After

Width:  |  Height:  |  Size: 427 KiB

View File

@ -56,8 +56,8 @@
</div>
</div>
<div class="note" style="left: 40px; top: 605px;"><b>1</b>Mandatory cache/snapshot fallback when the live API is unavailable or rate-limited (§2.1).</div>
<div class="note r" style="left: 470px; top: 605px;"><b>2</b>Stable, versioned interface for downstream services — the provider's format never leaks (§2.1).</div>
<div class="note" style="left: 900px; top: 605px;"><b>3</b>Resilience on every external call: timeout, retry with backoff, circuit breaker, defined fallback (§4.2).</div>
<div class="note" style="left: 40px; top: 580px;"><b>1</b>Mandatory cache/snapshot fallback when the live API is unavailable or rate-limited (§2.1).</div>
<div class="note r" style="left: 470px; top: 580px;"><b>2</b>Stable, versioned interface for downstream services — the provider's format never leaks (§2.1).</div>
<div class="note" style="left: 900px; top: 580px;"><b>3</b>Resilience on every external call: timeout, retry with backoff, circuit breaker, defined fallback (§4.2).</div>
<div class="watermark">SKETCH 2/7 · wireframe, not a specification</div>
</div></body></html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 424 KiB

After

Width:  |  Height:  |  Size: 418 KiB

View File

@ -40,8 +40,8 @@
</div>
</div>
<div class="note" style="left: 40px; top: 595px;"><b>1</b>Ontology as run-time guard: valid ticker? valid sector? plausible event type? (§3.2, §4.2)</div>
<div class="note r" style="left: 470px; top: 595px;"><b>2</b>Strict, schema-validated Insight — reject or repair non-conforming responses (§4.1).</div>
<div class="note" style="left: 900px; top: 595px;"><b>3</b>News text is untrusted input: a prompt-injection vector — treat it as data, never as instructions (§4 pitfalls).</div>
<div class="note" style="left: 40px; top: 570px;"><b>1</b>Ontology as run-time guard: valid ticker? valid sector? plausible event type? (§3.2, §4.2)</div>
<div class="note r" style="left: 470px; top: 570px;"><b>2</b>Strict, schema-validated Insight — reject or repair non-conforming responses (§4.1).</div>
<div class="note" style="left: 900px; top: 570px;"><b>3</b>News text is untrusted input: a prompt-injection vector — treat it as data, never as instructions (§4 pitfalls).</div>
<div class="watermark">SKETCH 3/7 · wireframe, not a specification</div>
</div></body></html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 520 KiB

After

Width:  |  Height:  |  Size: 517 KiB

View File

@ -48,8 +48,8 @@
</div>
</div>
<div class="note" style="left: 40px; top: 605px;"><b>1</b>Agents interpret and explain; services compute (§2.5). An agent that "estimates" a volatility is an architecture defect.</div>
<div class="note r" style="left: 470px; top: 605px;"><b>2</b>Sub-agents cooperate only through service contracts, never by sharing internal state (§2.5).</div>
<div class="note" style="left: 900px; top: 605px;"><b>3</b>Every claim carries a citation to a validated Insight; the freshness stamp bounds what may be claimed.</div>
<div class="note" style="left: 40px; top: 580px;"><b>1</b>Agents interpret and explain; services compute (§2.5). An agent that "estimates" a volatility is an architecture defect.</div>
<div class="note r" style="left: 470px; top: 580px;"><b>2</b>Sub-agents cooperate only through service contracts, never by sharing internal state (§2.5).</div>
<div class="note" style="left: 900px; top: 580px;"><b>3</b>Every claim carries a citation to a validated Insight; the freshness stamp bounds what may be claimed.</div>
<div class="watermark">SKETCH 4/7 · wireframe, not a specification</div>
</div></body></html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 582 KiB

After

Width:  |  Height:  |  Size: 579 KiB

View File

@ -51,7 +51,7 @@
</div>
</div>
<div class="note" style="left: 40px; top: 615px;"><b>1</b>Performance, Risk, Optimization services are pure and deterministic; exact tests against the provided reference vectors (§2.3, §4.3).</div>
<div class="note r" style="left: 470px; top: 615px;"><b>2</b>Agents explain the numbers; the OptimizationAgent calls OptimizationService and never computes an allocation itself (§2.5).</div>
<div class="note" style="left: 40px; top: 608px;"><b>1</b>Performance, Risk, Optimization services are pure and deterministic; exact tests against the provided reference vectors (§2.3, §4.3).</div>
<div class="note r" style="left: 470px; top: 608px;"><b>2</b>Agents explain the numbers; the OptimizationAgent calls OptimizationService and never computes an allocation itself (§2.5).</div>
<div class="watermark">SKETCH 5/7 · wireframe, not a specification</div>
</div></body></html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 417 KiB

After

Width:  |  Height:  |  Size: 415 KiB

View File

@ -59,8 +59,8 @@
</div>
</div>
<div class="note" style="left: 40px; top: 615px;"><b>1</b>Basic observability of cost and latency per request is mandatory (§5); budgets are CI-gated fitness functions (M2).</div>
<div class="note r" style="left: 470px; top: 615px;"><b>2</b>Eval harness as a CI gate with accuracy and failure modes, not "it works" (§4.3, M5).</div>
<div class="note" style="left: 900px; top: 615px;"><b>3</b>Threat model incl. prompt injection via news; basic hardening (M5).</div>
<div class="note" style="left: 40px; top: 590px;"><b>1</b>Basic observability of cost and latency per request is mandatory (§5); budgets are CI-gated fitness functions (M2).</div>
<div class="note r" style="left: 470px; top: 590px;"><b>2</b>Eval harness as a CI gate with accuracy and failure modes, not "it works" (§4.3, M5).</div>
<div class="note" style="left: 900px; top: 590px;"><b>3</b>Threat model incl. prompt injection via news; basic hardening (M5).</div>
<div class="watermark">SKETCH 6/7 · wireframe, not a specification</div>
</div></body></html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 462 KiB

After

Width:  |  Height:  |  Size: 460 KiB

View File

@ -8,7 +8,7 @@
* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; background: var(--paper); color: var(--ink);
font-family: "Chalkboard SE", "Comic Sans MS", "Marker Felt", cursive; font-size: 15px; }
.app { width: 1280px; height: 800px; position: relative; overflow: hidden; padding: 14px 18px; }
.app { width: 1280px; height: 720px; position: relative; overflow: hidden; padding: 14px 18px; }
.sk { border: 2.2px solid var(--line); background: var(--card);
border-radius: 255px 15px 225px 15px / 15px 225px 15px 255px; }
.sk.grey { background: var(--grey); }