From 19d24893c2ba42d83f7c4bd68ecce8f7fcbae16a Mon Sep 17 00:00:00 2001 From: Thomas Bayes Date: Wed, 2 Sep 2026 12:55:53 -0400 Subject: [PATCH] docs: add condensed external architecture brief with PNG diagrams Seven hand-authored SVG diagrams (context, runtime, memory, safety chain, stack, contracts, evaluation) rendered via headless Chrome; generator and render script included for regeneration and the Chinese edition. Co-Authored-By: Claude Fable 5.1 Claude-Session: https://claude.ai/code/session_01Bg6jx9vHNHzB91qyV64GQ7 --- docs/external/architecture-brief.en.md | 74 ++++++ docs/external/diagrams/gen.mjs | 286 ++++++++++++++++++++++++ docs/external/diagrams/render.sh | 16 ++ docs/external/img/01-system-context.png | Bin 0 -> 195468 bytes docs/external/img/02-agent-runtime.png | Bin 0 -> 192640 bytes docs/external/img/03-context-memory.png | Bin 0 -> 186312 bytes docs/external/img/04-safety-chain.png | Bin 0 -> 152556 bytes docs/external/img/05-tech-stack.png | Bin 0 -> 243577 bytes docs/external/img/06-contracts.png | Bin 0 -> 232263 bytes docs/external/img/07-eval-driven.png | Bin 0 -> 213305 bytes 10 files changed, 376 insertions(+) create mode 100644 docs/external/architecture-brief.en.md create mode 100644 docs/external/diagrams/gen.mjs create mode 100755 docs/external/diagrams/render.sh create mode 100644 docs/external/img/01-system-context.png create mode 100644 docs/external/img/02-agent-runtime.png create mode 100644 docs/external/img/03-context-memory.png create mode 100644 docs/external/img/04-safety-chain.png create mode 100644 docs/external/img/05-tech-stack.png create mode 100644 docs/external/img/06-contracts.png create mode 100644 docs/external/img/07-eval-driven.png diff --git a/docs/external/architecture-brief.en.md b/docs/external/architecture-brief.en.md new file mode 100644 index 0000000..452c5b2 --- /dev/null +++ b/docs/external/architecture-brief.en.md @@ -0,0 +1,74 @@ +# VPP AI Platform — Architecture Brief + +**Virtual Power Plant Multi-Timescale Intelligent Operations Platform, built on the GuangMing Power LLM** + +*Condensed external edition · English · v0.1 · September 2026 · Full version: [system-architecture.en.md](system-architecture.en.md)* + +--- + +The platform is an AI-assisted decision and controlled-execution system for a virtual power plant in Hubei. Five LLM agents propose market bids, dispatch plans and load-control plans. A deterministic safety chain governs everything before any external effect. Three commitments define the design: + +- **Two planes, one channel.** A slow cognitive plane (LLM agents, minutes to days) is separated from a fast control plane (deterministic execution, seconds). The safety chain is the only path between them. +- **The LLM never computes a number.** Prices, volumes and setpoints come only from versioned forecasting, optimisation and simulation tools. Every numeric field in a proposal is a reference to a recorded tool call. +- **Autonomy through envelopes.** Humans approve envelopes (bounded authority with a validity window), not every action. In-envelope actions auto-pass after rule check and simulation. Everything else escalates to a human. Envelopes start empty and widen only on evidence. + +## 1. System context + +![System context](img/01-system-context.png) + +The platform sits between the provincial trading, dispatch and metering systems above and the aggregated flexible resources below (31 MW today, at least 80 MW targeted). Operators work through a Case Desk, where every AI output is attached to an accountable case with an objective, an owner and a deadline. The platform overlays the existing 3060 platform: it reuses master data and the permission system, and it converges every bid and control action into one audited channel so nothing can bypass the safety chain. + +## 2. Agent runtime + +![Agent runtime](img/02-agent-runtime.png) + +Workflows are the entry point, not agents. Every business process (day-ahead bidding, review, intraday correction) is a deterministic, durable chain of steps. Agents are invoked at specific steps with a whitelisted tool set. Scheduled and event triggers instantiate workflow templates without touching the LLM. Only manual requests pass through the router agent, whose output is constrained by schema to a registered template ID plus parameters. The LLM decides *what* to do; the engine decides *how*. Every trigger, step, tool call, transition, approval and permit is written to an event-sourced log. + +## 3. Context management and memory + +![Context and memory](img/03-context-memory.png) + +Context for each agent step is assembled by a deterministic upstream step that reads the versioned ledger, immutable snapshots, explicitly declared semantic memory and effective knowledge entries. The agent does not decide what to look up, so every decision is reproducible. Agent output carries numbers only as references into recorded tool-call lineage. The assembler dereferences them, which means LLM text cannot carry a number into a proposal. + +Three memory layers serve different lifetimes. Working memory lives for one task. Episodic memory is the event log and time-series store, permanent and queried rather than recalled. Semantic memory holds structured lessons written back by the D+1 review workflow, versioned and injected explicitly by each template. Authoritative operational facts always live in the domain database, never in agent memory. + +## 4. Safety chain and state machine + +![Safety chain](img/04-safety-chain.png) + +Every intended action is a `Proposal` with a typed payload, full lineage and an immutable digest. One lifecycle workflow implements the chain for all proposal types: + +| Stage | What happens | +|---|---| +| Rule check | Deterministic policy pack: compliance, constraints, ledger consistency, lineage completeness, separation of duties | +| Simulation | Revenue backtest for bids, power balance for control plans. A warning always escalates to a human | +| Envelope check | Within an approved envelope: auto-approved with a full record. Otherwise the run suspends into the Case Desk inbox | +| Human approval | A resume by an approver whose identity is separated from the origination chain. Binds to the digest and a validity window | +| Fresh-state check | Immediately before release: resources online, constraints satisfied, evidence unchanged. Otherwise `STALE` and re-enter | +| Permit and release | An `ExecutionPermit` is issued: short-lived, revocable, digest-matched. Gateways accept only the `(Proposal, ExecutionPermit)` pair | + +Suspended approvals survive process restarts. Permit revocation is the fastest rollback: the gateway refuses further commands and edge terminals fall back to the last approved plan or a safe curve. + +## 5. Technology stack + +![Technology stack](img/05-tech-stack.png) + +The runtime, agents, workflows, domain schemas and deterministic services are TypeScript on Mastra, chosen for typed tool contracts and durable suspend/resume. The professional-model skills are Python HTTP services. LLM calls go through a capability-oriented port with a model router, so the backend moves from commercial APIs in development to a local open model in pre-production and the GuangMing Power LLM adapter in production with no business-code change. The runtime also has an LLM-down mode: forecasting, optimisation, checking, approval, bidding and control all run without the LLM. Roughly a third of the platform comes from the framework. The differentiating assets are the deterministic services. + +## 6. Interfaces and contracts + +![Interfaces and contracts](img/06-contracts.png) + +Hand-written zod schemas are the single source of truth. The build exports JSON Schema to a committed contracts directory, from which pydantic models are generated and never hand-edited. Golden fixtures, valid and invalid, are validated by both the TypeScript and Python CI, and any disagreement fails the build. Inside the platform, each trust boundary is a port that the LLM cannot call: proposal submission, policy engine, simulation, envelope, authority, gateway, ledger, evidence and Case Desk. Data representation rules are part of the contract: decimal strings for money and energy, units in field names, UTC timestamps, intervals as date plus index, string IDs, upper-case enums. + +## 7. Evaluation-driven development + +![Evaluation-driven development](img/07-eval-driven.png) + +Because every decision is replayable from retained evidence, the audit trail is also the evaluation dataset. Four layers localise problems: L1 LLM tasks, L2 professional-model skills, L3 safety-chain correctness including one automated test per invariant, and L4 end-to-end decision quality through shadow runs and historical backtests. Evaluation is a change gate. Prompt changes require the L1 set and an L4 backtest. A backend switch requires the full L1 set and an L4 shadow comparison. Skill upgrades must update their committed L2 baseline in the same change. Policy-pack upgrades require all rule tests green. Envelope widening is approved only on L4 shadow or online evidence. Every review finding becomes a candidate evaluation case, so failures feed the next baseline. + +--- + +**Status.** Milestones M1 to M4 are delivered: schemas and contract pipeline, deterministic services, Python skills with a committed evaluation baseline, the runtime with the full safety chain, resource dispatch and review workflows, and the Case Desk. All eight invariants have passing automated tests, including the LLM-down run and rejection of AI self-approval. M5, a shadow run on live data with all external effects simulated, is next. Business parameters such as market windows, envelope bounds and loss budgets are held as named configuration pending confirmation by the operations team. + +*Diagrams are generated from `diagrams/gen.mjs` via `diagrams/render.sh`.* diff --git a/docs/external/diagrams/gen.mjs b/docs/external/diagrams/gen.mjs new file mode 100644 index 0000000..b8b2e68 --- /dev/null +++ b/docs/external/diagrams/gen.mjs @@ -0,0 +1,286 @@ +import { writeFileSync } from 'node:fs' + +const C = { + ink: '#1B2331', ink2: '#4A5568', ink3: '#7A8494', line: '#B9C2CE', + teal: '#2C6B70', tealSoft: '#E4F0F0', amber: '#B86A14', amberSoft: '#F7ECDD', + slate: '#EEF1F5', red: '#A23B3B', redSoft: '#F6E3E3', white: '#FFFFFF', +} +const FONT = 'font-family="Helvetica Neue,Helvetica,Arial,sans-serif"' +const esc = (s) => s.replace(/&/g, '&').replace(//g, '>') + +function text(x, y, s, { size = 13, fill = C.ink, anchor = 'middle', weight = 400, mono = false, italic = false } = {}) { + const fam = mono ? 'font-family="Menlo,SFMono-Regular,Consolas,monospace"' : '' + return `${esc(s)}` +} +// title + sub lines centered in box +function box(x, y, w, h, title, sub = [], o = {}) { + const { fill = C.white, stroke = C.line, sw = 1.2, dash = '', tcolor = C.ink, tsize = 14, ssize = 12, scolor = C.ink2, r = 5, tag = null, tagColor = C.amber, mono = false } = o + const lines = 1 + sub.length + const lh = 16 + const total = tsize + 4 + sub.length * lh + let cy = y + h / 2 - total / 2 + tsize - 2 + let s = `` + s += text(x + w / 2, cy, title, { size: tsize, fill: tcolor, weight: 600, mono }) + for (const l of sub) { cy += lh; s += text(x + w / 2, cy, l, { size: ssize, fill: scolor }) } + if (tag) { + const tw = tag.length * 7 + 14 + s += `` + text(x + w - tw / 2 - 6, y + 4, tag, { size: 10, fill: C.white, weight: 700 }) + } + return s +} +function group(x, y, w, h, label, o = {}) { + const { stroke = C.line, fill = 'none', color = C.ink3 } = o + return `` + + text(x + 12, y + 18, label.toUpperCase(), { size: 10.5, fill: color, anchor: 'start', weight: 700 }) +} +function arrow(x1, y1, x2, y2, label = '', o = {}) { + const { dashed = false, both = false, color = C.ink2, lx = 0, ly = -6, path = null, lsize = 11.5, lfill = C.ink2 } = o + const d = path || `M${x1},${y1} L${x2},${y2}` + let s = `` + if (label) { + const mx = (x1 + x2) / 2 + lx, my = (y1 + y2) / 2 + ly + const tw = label.length * 6.4 + 8 + s += `` + text(mx, my + 2, label, { size: lsize, fill: lfill }) + } + return s +} +function svg(w, h, body) { + return ` + + + + + +${body} +` +} +const legend = (x, y, items) => items.map(([fill, stroke, lbl], i) => + `` + text(x + i * 150 + 20, y + 1, lbl, { size: 11, fill: C.ink2, anchor: 'start' })).join('') + +const out = {} + +// ---------- 1. system context ---------- +{ + let b = '' + b += group(30, 40, 250, 420, 'External systems') + const ext = [['Trading platform', ['bids · clearing · disclosures']], ['Dispatch / load mgmt', ['regulation requests']], ['Metering / settlement', ['meter data · statements']], ['Weather & market data', ['read-only feeds']]] + ext.forEach(([t, s], i) => { b += box(50, 70 + i * 95, 210, 70, t, s, { fill: C.slate }) }) + + b += group(330, 40, 600, 490, 'VPP AI Platform') + b += box(360, 70, 540, 90, 'Cognitive plane', ['five LLM agents · agent runtime · workflows', 'minutes to days'], { fill: C.amberSoft, stroke: C.amber, tag: 'LLM' }) + b += box(360, 215, 540, 90, 'Safety chain', ['rule check → simulation → envelope / human approval → fresh check → permit', 'deterministic · the only path between planes'], { fill: C.tealSoft, stroke: C.teal, tag: 'NO LLM', tagColor: C.teal }) + b += box(360, 360, 540, 80, 'Control plane', ['execution engine · edge terminals · seconds'], { fill: C.tealSoft, stroke: C.teal, tag: 'NO LLM', tagColor: C.teal }) + b += box(360, 465, 540, 45, 'Data foundation', [], { fill: C.slate, tsize: 13 }) + b += text(630, 500, 'time-series · relational · knowledge/vector · feature store · event log', { size: 11.5, fill: C.ink2 }) + b += arrow(630, 160, 630, 215, 'Proposal (digest + lineage)', { lx: 110 }) + b += arrow(630, 305, 630, 360, '(Proposal, ExecutionPermit)', { lx: 110 }) + b += arrow(280, 115, 360, 115, '', { both: true }) + b += arrow(360, 260, 280, 100, '', { path: 'M360,260 L300,260 L300,130 L280,130' }) + b += text(292, 253, 'bid + permit', { size: 10.5, fill: C.ink2, anchor: 'end' }) + b += arrow(900, 400, 980, 400, '') + b += arrow(980, 125, 900, 125, '', { both: true }) + b += box(980, 90, 190, 70, 'Operators', ['Case Desk · approvals', 'scenario forks · AI cards'], { fill: C.white }) + b += box(980, 360, 190, 80, 'Flexible resources', ['PV · storage · EV charging', 'HVAC · industrial · microgrids'], { fill: C.white }) + b += arrow(630, 440, 630, 465) + b += arrow(360, 400, 360, 140, '', { path: 'M360,400 L345,400 L345,140 L360,140', dashed: true }) + b += `execution feedback` + b += text(1075, 470, '31 MW today → ≥ 80 MW target', { size: 11, fill: C.ink3 }) + out['01-system-context'] = svg(1200, 550, b) +} + +// ---------- 2. agent runtime ---------- +{ + let b = '' + b += group(30, 40, 250, 330, 'Task triggers') + b += box(50, 70, 210, 70, 'Scheduled', ['day-ahead 06:00 · bid window · D+1 review'], { fill: C.tealSoft, stroke: C.teal }) + b += box(50, 165, 210, 70, 'Event', ['deviation · resource offline · clearing'], { fill: C.tealSoft, stroke: C.teal }) + b += box(50, 260, 210, 70, 'Manual', ['operator question or task'], { fill: C.slate }) + b += box(330, 260, 190, 70, 'Router agent', ['intent → template id + params', 'schema-constrained enum'], { fill: C.amberSoft, stroke: C.amber, tag: 'LLM' }) + b += arrow(260, 295, 330, 295) + b += box(580, 120, 240, 130, 'Workflow engine', ['deterministic step chains', 'durable · suspend/resume', 'one template per business process'], { fill: C.tealSoft, stroke: C.teal, tag: 'NO LLM', tagColor: C.teal }) + b += arrow(260, 105, 580, 160, 'no LLM in the path', { path: 'M260,105 L420,105 L420,160 L580,160', lx: 110, ly: -37 }) + b += arrow(260, 200, 580, 200, 'rule-matched', { lx: -20 }) + b += arrow(520, 295, 580, 240, '', { path: 'M520,295 L560,295 L560,240 L580,240' }) + b += box(880, 70, 260, 80, 'Agent step', ['one of five agents, invoked at a step', 'tools whitelisted per agent'], { fill: C.amberSoft, stroke: C.amber, tag: 'LLM' }) + b += arrow(820, 150, 880, 110, '', { path: 'M820,150 L850,150 L850,110 L880,110' }) + b += box(880, 190, 260, 80, 'Tool registry', ['typed, versioned skill contracts', 'every call snapshotted into lineage'], { fill: C.tealSoft, stroke: C.teal }) + b += arrow(1010, 150, 1010, 190) + b += box(880, 310, 260, 60, 'Python skill services', ['forecast · MILP · simulation'], { fill: C.slate }) + b += arrow(1010, 270, 1010, 310, 'HTTP / JSON', { lx: 60 }) + b += box(580, 300, 240, 70, 'Proposal → safety chain', ['numbers dereferenced from lineage'], { fill: C.white, stroke: C.ink2 }) + b += arrow(700, 250, 700, 300) + b += box(330, 400, 810, 46, 'Event log (event-sourced): triggers, steps, tool calls, transitions, approvals, permits, receipts', [], { fill: C.slate, tsize: 12.5, dash: '' }) + b += arrow(700, 370, 700, 400, '', { dashed: true }) + b += legend(30, 445, [[C.amberSoft, C.amber, 'LLM involved'], [C.tealSoft, C.teal, 'Deterministic']]) + b += text(30, 480, 'Workflows are the entry point, not agents. The LLM decides what to do (pick a template); the engine decides how, step by step.', { size: 12, fill: C.ink2, anchor: 'start', italic: true }) + out['02-agent-runtime'] = svg(1200, 500, b) +} + +// ---------- 3. context & memory ---------- +{ + let b = '' + b += group(30, 40, 1140, 210, 'Context assembly for one agent step') + const src = [['Position ledger', 'versioned read'], ['Time-series / snapshots', 'immutable, checksummed'], ['Semantic memory', 'lessons declared by template'], ['Knowledge base (RAG)', 'effective rules only']] + src.forEach(([t, s], i) => { b += box(50 + i * 180, 70, 165, 60, t, [s], { fill: C.slate, tsize: 12.5, ssize: 11 }) }) + b += box(50, 170, 705, 55, 'fetchContext step (deterministic, reproducible)', ['the agent does not decide what to look up'], { fill: C.tealSoft, stroke: C.teal, tsize: 13 }) + for (let i = 0; i < 4; i++) b += arrow(132 + i * 180, 130, 132 + i * 180, 170) + b += box(790, 70, 170, 155, 'Agent step', ['prose + tool calls', 'numbers only as', '{toolCallId, path}', 'references'], { fill: C.amberSoft, stroke: C.amber, tag: 'LLM' }) + b += arrow(755, 197, 790, 197) + b += box(995, 70, 160, 155, 'Assembler', ['dereferences refs', 'from recorded lineage', '→ Proposal', 'LLM text cannot', 'carry a number'], { fill: C.tealSoft, stroke: C.teal }) + b += arrow(960, 147, 995, 147) + + b += group(30, 280, 1140, 165, 'Three memory layers') + b += box(50, 315, 355, 105, 'Working memory', ['current task context, intermediate results', 'runtime memory · task lifetime', 'step-to-step parameters preferred over memory'], { fill: C.white }) + b += box(423, 315, 355, 105, 'Episodic memory', ['operating states, trading, control, responses', 'event log + time-series · permanent (audit)', 'queried through fetchContext, not recalled'], { fill: C.white }) + b += box(796, 315, 355, 105, 'Semantic memory', ['structured lessons from D+1 review', 'knowledge + strategy store · versioned', 'written by ReviewFinding, injected explicitly'], { fill: C.white }) + b += text(30, 475, 'Authoritative facts live in the domain database, never in agent memory (invariant I8). No automatic memory recall feeds production decisions.', { size: 12, fill: C.ink2, anchor: 'start', italic: true }) + out['03-context-memory'] = svg(1200, 495, b) +} + +// ---------- 4. safety chain state machine ---------- +{ + let b = '' + const Y = 120, H = 56, W = 118, G = 32 + const stages = [ + ['DRAFT', 'agent output'], ['RULE_CHECK', 'policy pack'], ['SIMULATION', 'backtest / balance'], ['ENVELOPE_CHECK', 'within bounds?'], + ['APPROVED', 'auto or human'], ['FRESH_CHECK', 're-verify state'], ['AUTHORIZED', 'permit issued'], ['RELEASED', 'gateway accepts'], + ] + const xs = stages.map((_, i) => 30 + i * (W + G)) + stages.forEach(([t, s], i) => { + const hi = i >= 1 && i <= 6 + b += box(xs[i], Y, W, H, t, [s], { fill: hi ? C.tealSoft : C.white, stroke: hi ? C.teal : C.line, tsize: 12, ssize: 10.5, mono: true }) + if (i < stages.length - 1) b += arrow(xs[i] + W, Y + H / 2, xs[i + 1], Y + H / 2) + }) + b += group(xs[1] - 12, 52, xs[6] + W + 12 - xs[1] + 12, 148, 'Safety chain · deterministic · shared by every proposal type', { stroke: C.teal, color: C.teal }) + // human branch + b += box(xs[3] + 20, 250, 200, 56, 'PENDING_HUMAN', ['suspended run · Case Desk inbox'], { fill: C.amberSoft, stroke: C.amber, tsize: 12, ssize: 10.5, mono: true }) + b += arrow(xs[3] + W / 2, Y + H, xs[3] + 60, 250, 'outside envelope', { path: `M${xs[3] + W / 2},${Y + H} L${xs[3] + W / 2},250`, lx: -70, ly: 8 }) + b += arrow(xs[2] + W / 2, Y + H, xs[3] + 20, 278, 'sim warning', { path: `M${xs[2] + W / 2},${Y + H} L${xs[2] + W / 2},278 L${xs[3] + 20},278`, lx: -45, ly: 40 }) + b += arrow(xs[3] + 220, 278, xs[4] + W / 2, Y + H, 'human resume', { path: `M${xs[3] + 220},278 L${xs[4] + W / 2},278 L${xs[4] + W / 2},${Y + H}`, lx: 40, ly: 40 }) + b += text(xs[4] + W / 2 + 16, 300, 'approver ≠ originator (I1)', { size: 10.5, fill: C.ink3, anchor: 'start' }) + b += arrow(xs[3] + W / 2 + 30, Y, xs[4] + W / 2 - 30, Y, 'within envelope → AUTO_APPROVED', { path: `M${xs[3] + W - 10},${Y} L${xs[3] + W - 10},${Y - 24} L${xs[4] + 10},${Y - 24} L${xs[4] + 10},${Y}`, ly: -26, lx: 0 }) + // rejected + b += box(xs[1], 350, W, 44, 'REJECTED', [], { fill: C.redSoft, stroke: C.red, tsize: 12, mono: true }) + b += arrow(xs[1] + W / 2, Y + H, xs[1] + W / 2, 350, 'rule failure', { lx: 44 }) + b += arrow(xs[3] + 60, 306, xs[1] + W, 372, 'human rejects', { path: `M${xs[3] + 60},306 L${xs[3] + 60},372 L${xs[1] + W},372`, lx: -30, ly: 45 }) + // stale + b += box(xs[5], 350, W, 44, 'STALE', [], { fill: C.redSoft, stroke: C.red, tsize: 12, mono: true }) + b += arrow(xs[5] + W / 2, Y + H, xs[5] + W / 2, 350, 'evidence changed', { lx: 60 }) + b += arrow(xs[5] + W / 2, 350, xs[1] + W - 15, Y + H, 're-enter chain', { path: `M${xs[5] + W / 2 - 30},350 L${xs[5] + W / 2 - 30},330 L${xs[1] + W - 15},330 L${xs[1] + W - 15},${Y + H + 2}`, dashed: true, lx: -172, ly: 59 }) + // after release + b += text(xs[7] + W / 2, 210, 'EXECUTING → COMPLETED', { size: 11, fill: C.ink2, mono: true }) + b += text(xs[7] + W / 2, 226, 'or ROLLED_BACK', { size: 11, fill: C.ink2, mono: true }) + b += text(xs[7] + W / 2, 244, '→ ExecutionReport → review', { size: 10.5, fill: C.ink3 }) + // notes + b += text(30, 430, 'Approval binds to the proposal digest and a validity window (I3). Gateways accept only (Proposal, ExecutionPermit): short-lived, revocable, digest-matched (I4).', { size: 12, fill: C.ink2, anchor: 'start' }) + b += text(30, 452, 'Simulation warnings always escalate to a human. No code path lets the AI reach APPROVED. Envelopes start empty and widen only on shadow-run evidence.', { size: 12, fill: C.ink2, anchor: 'start' }) + out['04-safety-chain'] = svg(1290, 475, b) +} + +// ---------- 5. tech stack ---------- +{ + let b = '' + const row = (y, h, label, items, o = {}) => { + b += text(30, y + h / 2 + 4, label, { size: 11, fill: C.ink3, anchor: 'start', weight: 700 }) + const x0 = 190, W = 980, n = items.length, g = 12, w = (W - g * (n - 1)) / n + items.forEach(([t, s], i) => { b += box(x0 + i * (w + g), y, w, h, t, s, { fill: o.fill || C.white, stroke: o.stroke || C.line, tsize: 13, ssize: 11, tag: o.tag && i === 0 ? o.tag : null, tagColor: o.tagColor }) }) + } + row(40, 64, 'OPERATOR UI', [['Case Desk', ['approval inbox · case view · lineage expansion']], ['AI insight cards', ['read-only projections in existing business pages']]]) + row(120, 80, 'RUNTIME', [['TypeScript + Mastra', ['workflows (durable suspend/resume)', 'agents as controlled steps · tool registry']], ['Trigger service', ['cron · event bus consumers', 'router agent for manual requests']], ['LLM port', ['capability interface + model router', 'LLM-down mode for degraded runs']]], { fill: C.amberSoft, stroke: C.amber }) + row(226, 80, 'SERVICES', [['Policy engine', ['versioned, tested policy packs']], ['Envelope + authority', ['envelope match · fresh check · permits']], ['Ledger + lineage', ['position cascade · snapshots · assembler']], ['Gateways + Case Desk', ['file export · simulation · cases']]], { fill: C.tealSoft, stroke: C.teal, tag: 'NO LLM', tagColor: C.teal }) + row(326, 64, 'CONTRACTS', [['Domain schemas (zod)', ['single source of truth']], ['JSON Schema', ['exported, committed, versioned']], ['Golden fixtures', ['validated by both CIs']]]) + row(406, 72, 'SKILLS', [['Python services (FastAPI)', ['load / PV / price forecasts with quantiles', 'bid MILP · dispatch MILP · potential · report']], ['Generated pydantic models', ['never hand-edited']]], { fill: C.slate }) + row(494, 72, 'DATA', [['PostgreSQL + pgvector', ['relational · knowledge · outbox events']], ['TimescaleDB / IoTDB', ['telemetry curves']], ['Object storage', ['snapshots · archives']], ['Kafka (phase 2)', ['outbox relay, same interface']]]) + row(582, 72, 'LLM BACKENDS', [['Commercial API', ['development']], ['Local open model', ['pre-production']], ['GuangMing Power LLM', ['production, on-prem adapter']]], { fill: C.amberSoft, stroke: C.amber }) + b += text(30, 688, 'Backend swaps are gated by the L1 evaluation set and an L4 shadow comparison, not judgment. About a third of the platform is framework; the differentiating parts are the deterministic services.', { size: 12, fill: C.ink2, anchor: 'start', italic: true }) + out['05-tech-stack'] = svg(1200, 706, b) +} + +// ---------- 6. interfaces & contracts ---------- +{ + let b = '' + b += group(30, 40, 560, 260, 'Contract pipeline (one source of truth)') + b += box(55, 75, 220, 60, 'zod schemas', ['packages/domain · hand-written'], { fill: C.tealSoft, stroke: C.teal, mono: true, tsize: 13 }) + b += box(55, 165, 220, 60, 'JSON Schema', ['contracts/ · committed · versioned'], { fill: C.slate, mono: true, tsize: 13 }) + b += arrow(165, 135, 165, 165, 'build export', { lx: 60 }) + b += box(340, 165, 225, 60, 'pydantic models', ['generated · never hand-edited'], { fill: C.slate, mono: true, tsize: 13 }) + b += arrow(275, 195, 340, 195, 'codegen', { ly: -8 }) + b += box(340, 75, 225, 60, 'Golden fixtures', ['valid + invalid samples per object'], { fill: C.white }) + b += arrow(275, 105, 340, 105, '', {}) + b += arrow(452, 135, 452, 165, '', { dashed: true }) + b += box(55, 245, 510, 40, 'TS CI and Python CI both validate every fixture; any disagreement fails the build', [], { fill: C.white, stroke: C.ink2, tsize: 12 }) + b += arrow(165, 225, 165, 245, '', { dashed: true }) + b += arrow(452, 225, 452, 245, '', { dashed: true }) + + b += group(620, 40, 550, 260, 'Ports = trust boundaries (deterministic, not exposed to the LLM)') + const ports = [ + ['ProposalSubmissionPort', 'the only way into the safety chain'], + ['PolicyEnginePort · SimulationPort', 'rule check and simulation'], + ['EnvelopePort · AuthorityPort', 'envelope match · fresh check · permits · revoke'], + ['GatewayPort', 'accepts (Proposal, ExecutionPermit) only'], + ['LedgerPort · EvidencePort', 'versioned ledger · event-sourced evidence'], + ['CaseDeskPort', 'open · read · apply command · watch'], + ] + ports.forEach(([p, d], i) => { + const y = 78 + i * 36 + b += text(640, y + 12, p, { size: 12, fill: C.teal, anchor: 'start', mono: true, weight: 600 }) + b += text(1150, y + 12, d, { size: 11.5, fill: C.ink2, anchor: 'end' }) + if (i < ports.length - 1) b += `` + }) + + b += group(30, 330, 1140, 150, 'Cross-process interfaces and data representation rules') + const ifs = [['TS runtime → Python skills', 'HTTP/JSON, schema-validated both ends'], ['Case Desk / front end → runtime', 'HTTP/JSON approvals and case API'], ['External systems', 'anti-corruption adapters, raw + translated logged'], ['Edge control link', 'grid protocol stack, outside the JSON domain']] + ifs.forEach(([t, s], i) => { b += box(50 + i * 280, 360, 265, 56, t, [s], { fill: C.white, tsize: 12.5, ssize: 11 }) }) + b += text(50, 448, 'Money, energy and prices as fixed-point decimal strings · units in field names (power_mw, price_yuan_per_mwh) · ISO 8601 UTC · intervals as {date, interval_index}', { size: 11.5, fill: C.ink2, anchor: 'start' }) + b += text(50, 466, 'all IDs strings · enums UPPER_SNAKE · breaking schema changes bump the major version and ship a migration note', { size: 11.5, fill: C.ink2, anchor: 'start' }) + out['06-contracts'] = svg(1200, 500, b) +} + +// ---------- 7. eval-driven development ---------- +{ + let b = '' + b += group(30, 40, 470, 345, 'Four evaluation layers') + const layers = [ + ['L4', 'End-to-end decision quality', 'shadow run · historical backtest · counterfactual attribution'], + ['L3', 'Safety chain correctness', 'policy pack tests · invariant tests I1–I8 · red-team cases'], + ['L2', 'Professional-model skills', 'MAPE · interval coverage · solver quality vs. bounds'], + ['L1', 'LLM tasks', 'routing accuracy · schema compliance · numeric consistency'], + ] + layers.forEach(([l, t, s], i) => { + const y = 70 + i * 72 + b += `` + b += text(72, y + 36, l, { size: 16, fill: C.teal, weight: 700, mono: true }) + b += text(105, y + 26, t, { size: 13, fill: C.ink, anchor: 'start', weight: 600 }) + b += text(105, y + 45, s, { size: 11, fill: C.ink2, anchor: 'start' }) + }) + b += text(50, 370, 'A problem at L4 is localised to the layer that caused it.', { size: 11.5, fill: C.ink3, anchor: 'start', italic: true }) + + b += group(530, 40, 640, 345, 'Change gates: what must pass before a change ships') + const gates = [ + ['Prompt / agent instructions', 'L1 task set + L4 fixed-day backtest, no regression'], + ['LLM backend switch', 'full L1 set + L4 shadow comparison vs. baseline'], + ['Skill model upgrade', 'all L2 metrics for that skill + downstream L4 backtest'], + ['Policy pack upgrade', 'L3 pack tests green + impact analysis on pending proposals'], + ['Contract schema change', 'golden fixtures on both sides + compatibility check'], + ['Envelope widening', 'L4 shadow / online evidence only — no data, no widening'], + ] + gates.forEach(([c, g], i) => { + const y = 78 + i * 46 + b += text(550, y + 14, c, { size: 12.5, fill: C.ink, anchor: 'start', weight: 600 }) + b += text(550, y + 31, g, { size: 11.5, fill: i === 5 ? C.amber : C.ink2, anchor: 'start' }) + if (i < gates.length - 1) b += `` + }) + + // loop + b += group(30, 410, 1140, 130, 'The audit trail is the evaluation dataset') + const loop = [['Production run', ['event log + immutable snapshots']], ['Replay datasets', ['representative days, frozen']], ['Eval run (archived)', ['committed baseline, CI --check']], ['ReviewFinding', ['D+1 attribution']], ['New eval cases', ['every finding → candidate case']]] + loop.forEach(([t, s], i) => { + b += box(50 + i * 228, 445, 200, 60, t, s, { fill: i === 2 ? C.tealSoft : C.white, stroke: i === 2 ? C.teal : C.line, tsize: 12.5, ssize: 11 }) + if (i < loop.length - 1) b += arrow(250 + i * 228, 475, 278 + i * 228, 475) + }) + b += arrow(1062, 505, 150, 505, '', { path: 'M1062,505 L1062,525 L150,525 L150,506', dashed: true }) + out['07-eval-driven'] = svg(1200, 560, b) +} + +for (const [name, html] of Object.entries(out)) writeFileSync(`${process.argv[2]}/${name}.html`, html) +console.log(Object.keys(out).join('\n')) diff --git a/docs/external/diagrams/render.sh b/docs/external/diagrams/render.sh new file mode 100755 index 0000000..cb0f678 --- /dev/null +++ b/docs/external/diagrams/render.sh @@ -0,0 +1,16 @@ +#!/usr/bin/env bash +# Regenerates docs/external/img/*.png from gen.mjs (hand-authored SVG) using headless Chrome. +set -euo pipefail +cd "$(dirname "$0")" +CHROME="${CHROME:-/Applications/Google Chrome.app/Contents/MacOS/Google Chrome}" +tmp=$(mktemp -d) +node gen.mjs "$tmp" >/dev/null +for f in "$tmp"/*.html; do + n=$(basename "${f%.html}") + dims=$(grep -o 'width="[0-9]*" height="[0-9]*" font' "$f" | head -1 | grep -o '[0-9]*' | tr '\n' ' ') + set -- $dims + "$CHROME" --headless=new --disable-gpu --hide-scrollbars --force-device-scale-factor=2 \ + --window-size="$1,$2" --screenshot="../img/$n.png" "$f" >/dev/null 2>&1 +done +rm -rf "$tmp" +ls ../img diff --git a/docs/external/img/01-system-context.png b/docs/external/img/01-system-context.png new file mode 100644 index 0000000000000000000000000000000000000000..fd9b197a4572eea8370cca8afedecb3a2ebdd561 GIT binary patch literal 195468 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%0Dj+Qd6_9*00s;hCA^Is$ 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ƠAoFnP+8cLC=M677$} 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