/* Review session — FSRS-driven, multi-shape items, mid-flow The session is the platform's own thing, not Anki bolted on. */ const ReviewSession = () => { 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 ; }; // Queue showing item-shape variation: // derive — re-derive a result // problem — work a fresh problem // identify — name the concept's role // spot — find the misapplication // recall — card-style const queue = [ { n:1, shape:"recall", concept:"slope_line", done:true, rating:"good" }, { n:2, shape:"identify", concept:"limit_compose", done:true, rating:"hard" }, { n:3, shape:"spot", concept:"chain_rule", done:false, current:true }, // mid-flow { n:4, shape:"derive", concept:"sequence", done:false }, { n:5, shape:"problem", concept:"limit_product", done:false }, { n:6, shape:"recall", concept:"slope_line", done:false }, { n:7, shape:"derive", concept:"composition", done:false }, ]; const shapeMeta = { derive: { label:"Derive", glyph:"∂", desc:"re-derive from definition" }, problem: { label:"Problem", glyph:"§", desc:"work a fresh instance" }, identify: { label:"Identify", glyph:"◇", desc:"name the role" }, spot: { label:"Spot the error", glyph:"⊘", desc:"find the misapplication" }, recall: { label:"Recall", glyph:"○", desc:"card-style" }, }; return (
{/* Mode bar — review is paced, focused */}
REVIEW · Session 412 · started 14:18
Pace avg 38s · target 12 items

{/* Progress queue — visualizes session structure */}
Queue
{queue.map((q, i) => (
{q.n.toString().padStart(2,"0")} {shapeMeta[q.shape].glyph} {q.current && NOW} {q.done && {q.rating}}
))}
02 / 07 · ~04:30 left

{/* Current item — "spot the misapplication" shape */}
Spot the error · review item
item.review.spot.0117 · concept · chain_rule
Last seen11d ago
Retention46%
Stability8.4d

A student wrote the following derivation. One step is wrong. Click on the line that contains the error.

01
02
03
04 ▶ selected
05

Now explain
The chain rule requires multiplication, not addition. Step 04 added and instead of multiplying them.
22 / 200 chars · checked against rubric

{/* FSRS rating */}
How was this?
FSRS-6 · stability will update from 8.4d → 14.1d on Good
); }; window.ReviewSession = ReviewSession;