Structured Data
Capability Metadata
| Field | Value |
|---|---|
| ID | CAP-101 |
| Version | v1.27 |
| Domain | Specialist Domains |
| Group | Knowledge Packs |
| Status | Documented |
| Related | CAP-100, CAP-102, CAP-103 |
| Mastery levels | novice, practitioner, expert |
| State storage | .claude/knowledge/learner-state.json |
Configuration Reference
Mastery levels: novice / practitioner / expert
Adaptation triggers: exercise completion, error rate, concept re-query
Content depth per mastery level:
novice — overview first; full scaffolding; conceptual explanations
practitioner — standard depth; partial scaffolding; technical reference
expert — technical reference first; no scaffolding; API-level detail
interface LearnerState {
domain: string;
pack: string;
mastery: 'novice' | 'practitioner' | 'expert';
concept_scores: Map; // 0-1 per concept
exercise_history: ExerciseResult[];
last_seen: Date;
session_count: number;
}
// Adaptation: adjust section depth based on mastery
function selectContent(state: LearnerState, section: Section) {
if (state.mastery === 'novice') return section.overview;
if (state.mastery === 'expert') return section.technical_reference;
return section.standard;
}
Technical Specifications
Learner model: per-learner state persisted in .claude/knowledge/learner-state.json
Adaptive content selection: novice gets overview first, expert gets technical reference
Exercise difficulty scaling: based on error history from knowledge patterns (CAP-100)
Mastery promotion: concept_score >= 0.8 across 3 sessions triggers mastery level upgrade
Overview
Knowledge Adaptation transforms static domain documentation into a responsive learning experience. The same knowledge pack shows different depth to a novice and an expert, meeting each where they are. A novice encountering an AGC knowledge pack for the first time gets the overview section first, with conceptual explanations and full scaffolding on exercises. An expert gets the technical reference section, with API-level detail and no hand-holding.
The learner model — a per-learner state object tracking mastery level, concept scores, and exercise history — is the engine of adaptation. As a learner completes exercises, their concept scores update. When scores exceed the mastery threshold consistently across sessions, their mastery level upgrades from novice to practitioner, or practitioner to expert. Content selection automatically adjusts to the new level on the next session.
Knowledge Adaptation works in concert with Knowledge Patterns (CAP-100) and Knowledge Scaffolding (CAP-102). Patterns identify what the learner is struggling with; adaptation decides what depth of content to show; scaffolding provides the appropriate level of support for exercises at that depth.
History
The mastery model was motivated by observing that GSD skills served both beginners (who needed concepts explained) and experts (who needed API reference) — but static documentation served neither well. Beginners were overwhelmed by technical detail; experts were frustrated by excessive explanation. A single static document couldn't satisfy both audiences.
The three-level mastery model (novice / practitioner / expert) was chosen over a continuous score specifically because three discrete levels map cleanly to distinct content strategies. A continuous score would require a continuous content selection function — far more complex to author and validate. With three levels, knowledge pack authors write three variants of each section (overview, standard, technical_reference), and the adaptation layer selects the right one. The discrete levels also communicate clearly to the learner: "you are a practitioner in this domain."
Key Concepts
A good tutor doesn't give the same explanation to every student — they pay attention to what each student already knows and adjust their teaching accordingly. Knowledge Adaptation gives the knowledge pack system that same situational awareness.
The mastery level is like a difficulty setting that adjusts itself automatically based on what you demonstrate you know. You start as a novice, and the system explains things from first principles. As you complete exercises successfully and your concept scores improve, the system recognises you've levelled up and starts giving you more advanced content without being asked.
Usage Examples
Example 1: Checking learner state
const state = await learnerStateManager.getState({
learnerId: 'user-123',
domain: 'apollo-agc',
pack: 'apollo-agc-basics'
});
console.log(state.mastery); // 'practitioner'
console.log(state.session_count); // 7
console.log(state.concept_scores); // Map { 'CCS instruction': 0.85, 'TC instruction': 0.92 }
Example 2: Content selected based on mastery
Learner: novice
Selected content: section.overview
→ "The TC instruction (Transfer Control) is AGC's version of a
function call. It loads the next instruction address into the
program counter. Think of it like a road sign directing traffic..."
Learner: expert
Selected content: section.technical_reference
→ "TC addr: loads addr into Z register (program counter). Execution
time: 1 MCT (11.7 µs). Returns from subroutine: TCF NORET..."

