/* Assessment surface — derivative problem, non-MCQ, graph-aware Mode signaling: dense, evaluative, distinct from concept page. */ const AssessmentSurface = () => { const [step, setStep] = React.useState(2); // we're partway through const [showHint, setShowHint] = React.useState(true); const Tex = ({ tex, display }) => { const ref = React.useRef(null); React.useEffect(() => { if (window.katex && ref.current) { try { window.katex.render(tex, ref.current, { displayMode: !!display, throwOnError: false }); } catch(e){} } }, [tex, display]); return ; }; const steps = [ { n:"i", label:"Identify", status:"done", title:"Recognize the structure" }, { n:"ii", label:"Decompose",status:"done", title:"Find inner & outer functions" }, { n:"iii", label:"Apply", status:"current", title:"Differentiate each part" }, { n:"iv", label:"Combine", status:"locked", title:"Assemble the chain" }, { n:"v", label:"Verify", status:"locked", title:"Check at a known point" }, ]; return (
{/* Mode bar — assessment is evaluative, not exploratory. Black band signals the mode shift. */}
ASSESSMENT · eval.calc.derivative.034 · Construct · Chain rule application
Time 04:12 / 12:00 Stake competency · graded
{/* Step rail */} {/* Problem */}
PROBLEM 03/05 prob.calc.0843 difficulty · Elo 1420

Derive an expression — chain rule

Compute from first principles of the chain rule. Show your decomposition. Construct the answer; do not pattern-match.


{/* Step iii — Apply, current */}
iii Apply · differentiate inner and outer
{/* outer */}
{/* inner — current focus */}
checking…
Write as a single expression in .
{/* assemble — locked */}
complete previous step

{/* Past attempts trace */}
Trace step ii · 2 attempts · resolved 02:34
02:01 Attempted , inverted
02:34 Corrected: outer = , inner = ok
{/* Right rail — graph-aware support, surfaces on stumble */}
); }; window.AssessmentSurface = AssessmentSurface;