Module: FT00 — The Steering Stack Diagram count: 6 Tool: Mermaid (primary). Each diagram validated in Mermaid Live Editor.
Type: Layered architecture Purpose: The single diagram that anchors the entire course. Every module maps to one layer. Reading the diagram: Bottom-up. The base is what you inherit; every layer above is something you can change or add. The arrow on the right is the key property — you can swap any layer above the base without touching the one below.
block-beta
columns 1
Boundary["5. THE BOUNDARY\n(the harness)\nCourses 1 & 2A"]
Export["4. THE EXPORT\nquant + serve\nGGUF · vLLM · Ollama · MLX"]
Steer["3. THE STEER\nfine-tuning\nSFT · DPO · GRPO · abliteration"]
Adapter["2. THE ADAPTER\nLoRA · DoRA\n<1% of params, swappable"]
Base["1. THE BASE\npretrained weights\nthe world model + openness"]
Base --> Adapter
Adapter --> Steer
Steer --> Export
Export --> Boundary
style Base fill:#14141f,stroke:#5eead4,stroke-width:1.5px,color:#e4e4e8
style Adapter fill:#14141f,stroke:rgba(94,234,212,0.5),color:#e4e4e8
style Steer fill:#14141f,stroke:rgba(94,234,212,0.5),color:#e4e4e8
style Export fill:#14141f,stroke:rgba(94,234,212,0.5),color:#e4e4e8
style Boundary fill:#14141f,stroke:#5eead4,stroke-width:1.5px,color:#e4e4e8
Type: Comparison / decision boundary Purpose: The most important judgment in fine-tuning. Is your goal a steering problem or a knowledge problem? Reading the diagram: Left column = what fine-tuning does well. Right column = what it does NOT do well. The diagonal arrow is the rule: if the base could already do it with a perfect prompt, it's steering. If not, you need a different base, CPT, or RAG.
flowchart LR
subgraph Steer["STEERING — fine-tuning does this"]
S1["Format & style"]
S2["Instruction following"]
S3["Preference alignment"]
S4["Reasoning activation"]
S5["Refusal removal"]
end
subgraph Know["KNOWLEDGE — fine-tuning does NOT do this well"]
K1["New facts"]
K2["New languages"]
K3["Deep domain vocab"]
K4["Genuine new reasoning"]
end
subgraph Methods
M1["SFT · DPO · GRPO ·\nabliteration"]
M2["Continued pretraining\n(de-emphasized) or RAG"]
end
Methods -.->|"the line"| Methods
Steer --> M1
Know --> M2
style Steer fill:#14141f,stroke:#5eead4,stroke-width:1.5px,color:#e4e4e8
style Know fill:#14141f,stroke:rgba(255,255,255,0.12),color:#9494a0
style M1 fill:#08080c,stroke:rgba(94,234,212,0.3),color:#e4e4e8
style M2 fill:#08080c,stroke:rgba(255,255,255,0.08),color:#9494a0
Type: Decision tree Purpose: Before you fine-tune, prompt the base. The outcome tells you which layer to intervene at. Reading the diagram: Run the base with a perfect prompt. Three branches. Each branch maps to a module.
flowchart TD
Start["Prompt the base model\nwith ideal input + great system prompt"]
Start --> Q{What happens?}
Q -->|"Produces behavior unreliably\nor in wrong format"| SFT["STEERING problem\n-> SFT (Module FT12)"]
Q -->|"Refuses or wrong kind of\nbehavior, but capability is there"| Pref["PREFERENCE problem\n-> DPO / abliteration\n(Modules FT13, FT17)"]
Q -->|"Genuinely foreign domain\n— no idea what you mean"| Know["KNOWLEDGE gap\n-> Different base, CPT,\nor RAG (usually RAG)"]
style Start fill:#14141f,stroke:rgba(255,255,255,0.12),color:#e4e4e8
style SFT fill:#14141f,stroke:#5eead4,stroke-width:1.5px,color:#e4e4e8
style Pref fill:#14141f,stroke:#5eead4,stroke-width:1.5px,color:#e4e4e8
style Know fill:#14141f,stroke:rgba(255,255,255,0.12),color:#9494a0
Type: Sequence / layer-independence Purpose: The single property that makes the whole field tractable — you can swap any layer above the base without touching the one below. Reading the diagram: Three horizontal tracks, each showing a swap at one layer. Notice the base (Layer 1) never changes in any track.
flowchart LR
subgraph T1["Swap an adapter"]
B1["Base"] --> A1a["Adapter A (medical)"]
B1 --> A1b["Adapter B (legal)"]
A1a -.swap.-> A1b
end
subgraph T2["Change the steer"]
B2["Base + Adapter"] --> S2a["SFT'd for JSON output"]
B2 --> S2b["DPO'd for conciseness"]
S2a -.re-train.-> S2b
end
subgraph T3["Re-quantize"]
B3["Trained model"] --> Q3a["GGUF Q4_K_M\n(Ollama local)"]
B3 --> Q3b["AWQ 4-bit\n(vLLM prod)"]
Q3a -.re-export.-> Q3b
end
style B1 fill:#14141f,stroke:#5eead4,stroke-width:1.5px,color:#e4e4e8
style B2 fill:#14141f,stroke:#5eead4,stroke-width:1.5px,color:#e4e4e8
style B3 fill:#14141f,stroke:#5eead4,stroke-width:1.5px,color:#e4e4e8
Type: Mapping table-as-diagram Purpose: Every module lives at a layer. This is the navigation map. Reading the diagram: Left = pillar. Right = layer. Read across to see what each pillar operates on.
flowchart LR
P00["P00 Foundations\nFT00-FT03"] --> L1["Layer 1: Base\n+ mental model"]
P01["P01 Data\nFT04-FT07"] --> LS["substrate\n(the steering wheel)"]
P02["P02 PEFT\nFT08-FT11"] --> L2["Layer 2: Adapter\n+ Layer 3: Steer"]
P03["P03 Alignment\nFT12-FT13"] --> L3["Layer 3: Steer"]
P04["P04 Reasoning\nFT14-FT15"] --> L3
P05["P05 Alignment Control\nFT16-FT18"] --> L3
P06["P06 Deploy\nFT19-FT20"] --> L4["Layer 4: Export"]
P07["P07 Sensitive Domains\nFT21-FT23"] --> L5["Layer 5: Boundary"]
style P00 fill:#14141f,stroke:rgba(255,255,255,0.12),color:#e4e4e8
style P01 fill:#14141f,stroke:rgba(255,255,255,0.12),color:#e4e4e8
style P02 fill:#14141f,stroke:rgba(255,255,255,0.12),color:#e4e4e8
style P03 fill:#14141f,stroke:rgba(255,255,255,0.12),color:#e4e4e8
style P04 fill:#14141f,stroke:rgba(255,255,255,0.12),color:#e4e4e8
style P05 fill:#14141f,stroke:rgba(255,255,255,0.12),color:#e4e4e8
style P06 fill:#14141f,stroke:rgba(255,255,255,0.12),color:#e4e4e8
style P07 fill:#14141f,stroke:rgba(255,255,255,0.12),color:#e4e4e8
style L1 fill:#14141f,stroke:#5eead4,stroke-width:1.5px,color:#e4e4e8
style L2 fill:#14141f,stroke:#5eead4,color:#e4e4e8
style L3 fill:#14141f,stroke:#5eead4,color:#e4e4e8
style L4 fill:#14141f,stroke:#5eead4,color:#e4e4e8
style L5 fill:#14141f,stroke:#5eead4,stroke-width:1.5px,color:#e4e4e8
Type: Layered with annotation Purpose: How this course relates to the Harness Engineering courses. The model steers; the harness bounds. Reading the diagram: The bottom half is this course (Layers 1–4). The top half is Courses 1 and 2A (Layer 5). The annotation in the middle is the synthesis principle.
block-beta
columns 1
subgraph C1["COURSES 1 & 2A — Layer 5: The Boundary"]
H["Harness: policy gates, audit logs, threat model\npermission-safety, error handling, security"]
end
Note["THE SYNTHESIS:\nUncensor the model so it executes\nHarness the model so it executes only what it should"]
subgraph C3["COURSE 3 — Layers 1-4"]
E["Export: GGUF, vLLM, Ollama"]
S["Steer: SFT, DPO, GRPO, abliteration"]
A["Adapter: LoRA, DoRA"]
B["Base: pretrained weights"]
end
C3 --> Note
Note --> C1
style H fill:#14141f,stroke:#5eead4,stroke-width:1.5px,color:#e4e4e8
style Note fill:#08080c,stroke:rgba(94,234,212,0.4),stroke-dasharray: 4 2,color:#5eead4
style E fill:#14141f,stroke:rgba(94,234,212,0.5),color:#e4e4e8
style S fill:#14141f,stroke:rgba(94,234,212,0.5),color:#e4e4e8
style A fill:#14141f,stroke:rgba(94,234,212,0.5),color:#e4e4e8
style B fill:#14141f,stroke:#5eead4,stroke-width:1.5px,color:#e4e4e8
#14141f panel fill, #5eead4 accent for primary, rgba(255,255,255,0.12) for secondary borders, #e4e4e8 / #9494a0 for text.block-beta, flowchart) supported in current Mermaid (v10.4+).# Diagrams — Module FT00: The Steering Stack
**Module**: FT00 — The Steering Stack
**Diagram count**: 6
**Tool**: Mermaid (primary). Each diagram validated in [Mermaid Live Editor](https://mermaid.live).
---
## Diagram 1 — The Steering Stack (the course's central mental model)
**Type**: Layered architecture
**Purpose**: The single diagram that anchors the entire course. Every module maps to one layer.
**Reading the diagram**: Bottom-up. The base is what you inherit; every layer above is something you can change or add. The arrow on the right is the key property — you can swap any layer above the base without touching the one below.
```mermaid
block-beta
columns 1
Boundary["5. THE BOUNDARY\n(the harness)\nCourses 1 & 2A"]
Export["4. THE EXPORT\nquant + serve\nGGUF · vLLM · Ollama · MLX"]
Steer["3. THE STEER\nfine-tuning\nSFT · DPO · GRPO · abliteration"]
Adapter["2. THE ADAPTER\nLoRA · DoRA\n<1% of params, swappable"]
Base["1. THE BASE\npretrained weights\nthe world model + openness"]
Base --> Adapter
Adapter --> Steer
Steer --> Export
Export --> Boundary
style Base fill:#14141f,stroke:#5eead4,stroke-width:1.5px,color:#e4e4e8
style Adapter fill:#14141f,stroke:rgba(94,234,212,0.5),color:#e4e4e8
style Steer fill:#14141f,stroke:rgba(94,234,212,0.5),color:#e4e4e8
style Export fill:#14141f,stroke:rgba(94,234,212,0.5),color:#e4e4e8
style Boundary fill:#14141f,stroke:#5eead4,stroke-width:1.5px,color:#e4e4e8
```
---
## Diagram 2 — Steering vs Knowledge: The Line
**Type**: Comparison / decision boundary
**Purpose**: The most important judgment in fine-tuning. Is your goal a steering problem or a knowledge problem?
**Reading the diagram**: Left column = what fine-tuning does well. Right column = what it does NOT do well. The diagonal arrow is the rule: if the base could already do it with a perfect prompt, it's steering. If not, you need a different base, CPT, or RAG.
```mermaid
flowchart LR
subgraph Steer["STEERING — fine-tuning does this"]
S1["Format & style"]
S2["Instruction following"]
S3["Preference alignment"]
S4["Reasoning activation"]
S5["Refusal removal"]
end
subgraph Know["KNOWLEDGE — fine-tuning does NOT do this well"]
K1["New facts"]
K2["New languages"]
K3["Deep domain vocab"]
K4["Genuine new reasoning"]
end
subgraph Methods
M1["SFT · DPO · GRPO ·\nabliteration"]
M2["Continued pretraining\n(de-emphasized) or RAG"]
end
Methods -.->|"the line"| Methods
Steer --> M1
Know --> M2
style Steer fill:#14141f,stroke:#5eead4,stroke-width:1.5px,color:#e4e4e8
style Know fill:#14141f,stroke:rgba(255,255,255,0.12),color:#9494a0
style M1 fill:#08080c,stroke:rgba(94,234,212,0.3),color:#e4e4e8
style M2 fill:#08080c,stroke:rgba(255,255,255,0.08),color:#9494a0
```
---
## Diagram 3 — The Three-Outcome Test
**Type**: Decision tree
**Purpose**: Before you fine-tune, prompt the base. The outcome tells you which layer to intervene at.
**Reading the diagram**: Run the base with a perfect prompt. Three branches. Each branch maps to a module.
```mermaid
flowchart TD
Start["Prompt the base model\nwith ideal input + great system prompt"]
Start --> Q{What happens?}
Q -->|"Produces behavior unreliably\nor in wrong format"| SFT["STEERING problem\n-> SFT (Module FT12)"]
Q -->|"Refuses or wrong kind of\nbehavior, but capability is there"| Pref["PREFERENCE problem\n-> DPO / abliteration\n(Modules FT13, FT17)"]
Q -->|"Genuinely foreign domain\n— no idea what you mean"| Know["KNOWLEDGE gap\n-> Different base, CPT,\nor RAG (usually RAG)"]
style Start fill:#14141f,stroke:rgba(255,255,255,0.12),color:#e4e4e8
style SFT fill:#14141f,stroke:#5eead4,stroke-width:1.5px,color:#e4e4e8
style Pref fill:#14141f,stroke:#5eead4,stroke-width:1.5px,color:#e4e4e8
style Know fill:#14141f,stroke:rgba(255,255,255,0.12),color:#9494a0
```
---
## Diagram 4 — The Swappability Property
**Type**: Sequence / layer-independence
**Purpose**: The single property that makes the whole field tractable — you can swap any layer above the base without touching the one below.
**Reading the diagram**: Three horizontal tracks, each showing a swap at one layer. Notice the base (Layer 1) never changes in any track.
```mermaid
flowchart LR
subgraph T1["Swap an adapter"]
B1["Base"] --> A1a["Adapter A (medical)"]
B1 --> A1b["Adapter B (legal)"]
A1a -.swap.-> A1b
end
subgraph T2["Change the steer"]
B2["Base + Adapter"] --> S2a["SFT'd for JSON output"]
B2 --> S2b["DPO'd for conciseness"]
S2a -.re-train.-> S2b
end
subgraph T3["Re-quantize"]
B3["Trained model"] --> Q3a["GGUF Q4_K_M\n(Ollama local)"]
B3 --> Q3b["AWQ 4-bit\n(vLLM prod)"]
Q3a -.re-export.-> Q3b
end
style B1 fill:#14141f,stroke:#5eead4,stroke-width:1.5px,color:#e4e4e8
style B2 fill:#14141f,stroke:#5eead4,stroke-width:1.5px,color:#e4e4e8
style B3 fill:#14141f,stroke:#5eead4,stroke-width:1.5px,color:#e4e4e8
```
---
## Diagram 5 — Course Map: Pillars to Layers
**Type**: Mapping table-as-diagram
**Purpose**: Every module lives at a layer. This is the navigation map.
**Reading the diagram**: Left = pillar. Right = layer. Read across to see what each pillar operates on.
```mermaid
flowchart LR
P00["P00 Foundations\nFT00-FT03"] --> L1["Layer 1: Base\n+ mental model"]
P01["P01 Data\nFT04-FT07"] --> LS["substrate\n(the steering wheel)"]
P02["P02 PEFT\nFT08-FT11"] --> L2["Layer 2: Adapter\n+ Layer 3: Steer"]
P03["P03 Alignment\nFT12-FT13"] --> L3["Layer 3: Steer"]
P04["P04 Reasoning\nFT14-FT15"] --> L3
P05["P05 Alignment Control\nFT16-FT18"] --> L3
P06["P06 Deploy\nFT19-FT20"] --> L4["Layer 4: Export"]
P07["P07 Sensitive Domains\nFT21-FT23"] --> L5["Layer 5: Boundary"]
style P00 fill:#14141f,stroke:rgba(255,255,255,0.12),color:#e4e4e8
style P01 fill:#14141f,stroke:rgba(255,255,255,0.12),color:#e4e4e8
style P02 fill:#14141f,stroke:rgba(255,255,255,0.12),color:#e4e4e8
style P03 fill:#14141f,stroke:rgba(255,255,255,0.12),color:#e4e4e8
style P04 fill:#14141f,stroke:rgba(255,255,255,0.12),color:#e4e4e8
style P05 fill:#14141f,stroke:rgba(255,255,255,0.12),color:#e4e4e8
style P06 fill:#14141f,stroke:rgba(255,255,255,0.12),color:#e4e4e8
style P07 fill:#14141f,stroke:rgba(255,255,255,0.12),color:#e4e4e8
style L1 fill:#14141f,stroke:#5eead4,stroke-width:1.5px,color:#e4e4e8
style L2 fill:#14141f,stroke:#5eead4,color:#e4e4e8
style L3 fill:#14141f,stroke:#5eead4,color:#e4e4e8
style L4 fill:#14141f,stroke:#5eead4,color:#e4e4e8
style L5 fill:#14141f,stroke:#5eead4,stroke-width:1.5px,color:#e4e4e8
```
---
## Diagram 6 — The Bridge to Course 1 (the synthesis)
**Type**: Layered with annotation
**Purpose**: How this course relates to the Harness Engineering courses. The model steers; the harness bounds.
**Reading the diagram**: The bottom half is this course (Layers 1–4). The top half is Courses 1 and 2A (Layer 5). The annotation in the middle is the synthesis principle.
```mermaid
block-beta
columns 1
subgraph C1["COURSES 1 & 2A — Layer 5: The Boundary"]
H["Harness: policy gates, audit logs, threat model\npermission-safety, error handling, security"]
end
Note["THE SYNTHESIS:\nUncensor the model so it executes\nHarness the model so it executes only what it should"]
subgraph C3["COURSE 3 — Layers 1-4"]
E["Export: GGUF, vLLM, Ollama"]
S["Steer: SFT, DPO, GRPO, abliteration"]
A["Adapter: LoRA, DoRA"]
B["Base: pretrained weights"]
end
C3 --> Note
Note --> C1
style H fill:#14141f,stroke:#5eead4,stroke-width:1.5px,color:#e4e4e8
style Note fill:#08080c,stroke:rgba(94,234,212,0.4),stroke-dasharray: 4 2,color:#5eead4
style E fill:#14141f,stroke:rgba(94,234,212,0.5),color:#e4e4e8
style S fill:#14141f,stroke:rgba(94,234,212,0.5),color:#e4e4e8
style A fill:#14141f,stroke:rgba(94,234,212,0.5),color:#e4e4e8
style B fill:#14141f,stroke:#5eead4,stroke-width:1.5px,color:#e4e4e8
```
---
## Validation notes
- All six diagrams use the course design system colors: `#14141f` panel fill, `#5eead4` accent for primary, `rgba(255,255,255,0.12)` for secondary borders, `#e4e4e8` / `#9494a0` for text.
- Paste each into [Mermaid Live Editor](https://mermaid.live) to render. All use stable Mermaid syntax (`block-beta`, `flowchart`) supported in current Mermaid (v10.4+).
- For the slide deck (artifact 03), these are rendered as static SVG/PNG captures from Mermaid Live, inlined into reveal.js.