diff --git a/character-builder/frontend/src/App.vue b/character-builder/frontend/src/App.vue
index d867c10..ef79cb3 100644
--- a/character-builder/frontend/src/App.vue
+++ b/character-builder/frontend/src/App.vue
@@ -3,6 +3,7 @@ import { computed, onMounted, ref, shallowRef, watch } from 'vue';
import XpProgressCard from './components/XpProgressCard.vue';
import FactionTrack from './components/FactionTrack.vue';
import SkillTree from './components/SkillTree.vue';
+import CharacterSummary from './components/CharacterSummary.vue';
import {
applyBuild,
build,
@@ -130,33 +131,20 @@ const totalSpentAcrossClasses = computed(() =>
Object.values(build.skills).reduce((a, b) => a + (b || 0), 0),
);
-// Per-class summary: { classId: { spent, allocations: [{node, points}] } }
-const summaryByClass = computed(() => {
- const out: Record<
- ClassId,
- { spent: number; allocations: { tag: string; name: string; kind: string; points: number; max: number }[] }
- > = {
- benegesserit: { spent: 0, allocations: [] },
- mentat: { spent: 0, allocations: [] },
- planetologist: { spent: 0, allocations: [] },
- swordmaster: { spent: 0, allocations: [] },
- trooper: { spent: 0, allocations: [] },
+// Per-class spent counts — used by the skill-tree tab chips.
+const spentByClass = computed