Stakeholder Content Generator

Architecture of a multi-level course generator — from the orchestrator down to the last CSS token

Key highlights at a glance + 31 deep-dive pages available
01

Orchestrator & Phase Pipeline

The Orchestrator controls the entire build process. It runs through 7 phases in a fixed order. Each phase produces artifacts that subsequent phases consume. An error in Phase N prevents Phase N+1 from starting.

The system is built as a Pipeline — not a DAG, not an event loop. The linearity is intentional: it simplifies debugging and guarantees data availability.

📦Phase 0Bootstrap
🔍Phase 1Analysis
📊Phase 2Curricula
🎨Phase 3CSS/JS
⚙️Phase 4Pipelines
🔗Phase 5Cross-Links
🗺️Phase 6Depth-Map
The phase sequence at a glance: Phase 0 — Bootstrap: Identify sources, parse repo structure Phase 1 — Analysis: Deep-scan the codebase (AST, dependencies, patterns) Phase 2 — Curricula: Per audience: compute topics + Helpfulness Scores Phase 3 — Foundation: Generate shared CSS variables, JS modules, font stack Phase 4 — Pipelines: Launch parallel audience pipelines (one per audience) Phase 5 — Cross-Links: Insert breadcrumbs, deep-dive links, sibling navigation Phase 6 — Depth-Map: Output final sitemap with all paths and depths
function orchestrate(config) { const sources = phase0_bootstrap(config.repo); const analysis = phase1_analyze(sources); const curricula = phase2_curricula(analysis, config.audiences); const foundation = phase3_css_js(config.brand); const pages = await Promise.all( curricula.map(c => phase4_pipeline(c, foundation)) ); const linked = phase5_crosslinks(pages); return phase6_depthmap(linked); }
Learn more Orchestrator Architecture in Detail → Phase contracts, error handling, and state management between stages
02

Helpfulness Scoring System

The system decides per topic and audience how deep the content should go. To do this, it computes a Helpfulness Score (HS). A topic like “CSS Variables” receives a higher HS for developers than for executives — same topic, different scores.

HS = C + R + L + I
0 – 3 Complexity (C)
0 – 3 Relevance (R)
0 – 2 Learning value (L)
0 – 2 Independence (I)
🔧 ≥ 6
Developer threshold
👤 ≥ 7
End User threshold
📊 ≥ 8
Executive threshold
✏️ Calculate HS

Topic “Breadcrumb Logic” for developers: Complexity = 2, Relevance = 3, Learning value = 1, Independence = 1. Will a dedicated page be created?

No — HS = 6, that is not enough
Yes — HS = 7, which is above the threshold of 6
Yes — HS = 8, even above the Executive threshold
Learn more Scoring Algorithm and Thresholds → How the four dimensions are weighted and when level upgrades are triggered
03

Audience Pipelines & Parallelization

Each audience gets its own build pipeline. The pipelines run in parallel and independently of each other. Within a pipeline, levels are generated sequentially (each level needs data from the previous one), but topics and languages can be generated in parallel.

The architecture distinguishes two agent types: Pipeline Agents (one per audience) and File Agents (one per output file).

Parallel pipeline execution (different depth per audience)
📊
Executive · 2 Levels
👤
End User · 3 Levels
🔧
Developer · 4 Levels
Overview Deep dive Detail Max. depth
✏️ Quick check

Why are levels within a pipeline generated sequentially, even though parallelization would be possible?

To save memory
Because Claude only supports one thread at a time
Because each level needs data from the previous level (e.g., for navigation and linking)
Learn more Pipeline Architecture and Agent Coordination → Pipeline agents vs. file agents, parallelization strategy, and error boundaries
04

Design System & Brand Tokens

Every generated HTML file is fully self-contained — no external stylesheet, no CDN dependency. The entire design is embedded as CSS variables in each file. Three brand colors and three font families form the visual foundation.

Deep Blue #000099
Impulse Orange #FE8F11
Warm Gray #E4DAD4
Bricolage Grotesque
Headlines
DM Sans
Body text
JetBrains Mono
Code & Labels
The three brand colors as CSS Custom Properties: Deep Blue → Backgrounds, navigation, code blocks Impulse Orange → Accents, CTAs, active states, progress bar Warm Gray → Surface backgrounds, borders, subtle separators Three font stacks with Google Fonts fallback: Display: Bricolage Grotesque → Georgia → serif Body: DM Sans → system-ui → sans-serif Mono: JetBrains Mono → Fira Code → monospace
:root { /* Brand Colors */ --color-deep-blue: #000099; --color-impulse-orange: #FE8F11; --color-warm-gray: #E4DAD4; /* Derived Surfaces */ --color-bg-code: #000066; --color-surface-warm: #F8F5F2; --color-accent-light: #FFF3E5; /* Font Stacks */ --font-display: 'Bricolage Grotesque', Georgia, serif; --font-body: 'DM Sans', -apple-system, sans-serif; --font-mono: 'JetBrains Mono', 'Fira Code', monospace; }
Learn more Complete Token System and Component Library → All CSS variables, spacing scale, shadow tokens, and breakpoints
05

Cross-Level Navigation

The system generates four navigation components that together provide complete orientation. In addition, overview pages include an Audience Switch and every page features Language Flags.

✏️ Quick check

What distinguishes breadcrumbs from sibling nav?

Breadcrumbs show the vertical hierarchy (parent → child), sibling nav shows horizontal peers
Breadcrumbs are clickable, sibling nav is not
Breadcrumbs only exist on the overview page
Learn more Navigation Components and Link Generation → How Phase 5 builds and validates the linking between all pages
06

Template System & Page Anatomy

Every generated page follows a fixed structure. There are no “bare” sections — everything is wrapped in .module containers. Within each module, a nested hierarchy ensures consistent layouts across all pages and levels.

Hero sections on deep-dive pages additionally contain a page-overview component with anchor links to the sections.

Page anatomy (every page)
.module <section>
.module-content max-width: 820px
.module-header Number (large, faded) + title
.module-body flex-column, gap: 2rem
.screen Visual section (text, viz, quiz)
.screen Additional sections...
.deep-dive-link Optional link to next level
Every page follows this schema: 1. .module wraps a topic block (full viewport height) 2. .module-content constrains width to 820px 3. .module-header contains the large, faded number + the title 4. .module-body stacks the screen blocks vertically 5. .screen is the smallest visible unit (text, viz, or quiz) 6. .deep-dive-link optionally links to the next depth level Rule: No content outside of .module. No section without .screen.
<section class="module"> <div class="module-content"> <header class="module-header"> <span class="module-number">01</span> <h1 class="module-title">Title</h1> </header> <div class="module-body"> <section class="screen">...</section> <section class="screen">...</section> </div> <a class="deep-dive-link">...</a> </div> </section>
Learn more Template Variants and Hero Patterns → Hero with page-overview, card grids, file trees, and all component recipes
07

Quality Assurance & Checklist

The skill validates every output against a 28-point checklist. Each item is a hard gate — if a check fails, the affected file is reworked before it enters the final output. The checklist covers structural, content, and visual criteria.

Interactive QA Checklist (Selection)
Audience separation: No file serves two audiences simultaneously
Depth profile: Maximum depth matches audience specifications (🔧 4, 👤 3, 📊 2)
No dead links: Every href points to an existing file in the output
Correct breadcrumbs: Every page has a complete path back to the overview
Both languages: For every DE file there is an EN file (and vice versa)
WCAG contrast: At least 4.5:1 ratio for all body text, rgba(255,255,255,.85) on #000099
Tooltips: Every technical term has a data-tooltip attribute with a clear explanation
Self-contained: Every HTML file works without external stylesheets or scripts
Module structure: No content outside of .module containers, no bare sections
Audience switch: Overview pages have the perspective toggle, sub-pages do not
0 / 10 checked
✏️ Quick check

A developer course has a link to l2/auth_dev_de.html, but the file does not exist. What happens?

The link is marked red and stays in the output
The QA checklist fails and the file is regenerated or the link is removed
Nothing — dead links are acceptable for optional pages
Learn more The Complete 28-Point Checklist → All validation criteria, severity levels, and automatic correction strategies