Updates

Changelog

Buy me a coffee

17 September 2026

  • The menu behind the button in the top left now scrolls on a phone. Open it on a lesson page, tap a domain, and that domain's lessons appear below the fold. On iOS the list would not scroll down to them. The drawer had one scrolling area sitting inside another that never scrolled itself, and iOS gives the swipe to the inner one and stops there, so the panel felt frozen. There is now a single scrolling area in the drawer, sized to the part of the screen you can actually see, so the browser's own toolbars no longer cover its last inch. A reader on Chrome for iOS reported it
  • The curriculum menu now opens on the domain you are reading, on a phone and in the sidebar alike. Every domain used to start collapsed, so the nav gave no sign of where you were, and reaching the next lesson cost a tap to expand before the tap that moves you. Collapse one yourself and it stays collapsed

16 September 2026

  • Lesson 3.6 (CI/CD Integration) gains a GitHub Actions section: the claude-code-action step, how a prompt input switches it between answering @claude mentions and running on its own, and how CLI flags such as --append-system-prompt, --allowedTools and --max-turns reach it through claude_args. Three matching practice questions join the Domain 3 bank. The exam guide never names GitHub Actions; three readers who sat the exam say it asks about them anyway
  • Lesson 3.6 also explains git worktrees, and lesson 1.5 (Agent SDK Hooks) explains the PreCompact hook. Practice questions have tested both since July with no lesson behind them, which one reader noticed. Both sections are marked as beyond the guide
  • Lesson 2.2 (Structured Error Responses) now separates the MCP specification's two error layers: JSON-RPC protocol errors (unknown tool, invalid arguments, server failure), which never reach the model as a result, and tool execution errors, which come back in the result with isError set. The four categories the guide names live in the second layer. A reader asked for the distinction
  • Lesson 3.4 (Plan Mode) now says how plan mode is entered: claude --permission-mode plan, or Shift+Tab until the status bar shows it. The build exercise used to suggest writing 'in plan mode' into the prompt, which does nothing. A reader caught it
  • Lesson 3.2 opens by saying what a skill is before saying where one lives. Lesson 1.4 adds a side-by-side table and a configuration example for SubagentStart and SubagentStop. Lesson 1.3 gives the parallel-versus-sequential spawning contrast its own heading, and a stray sentence fragment in lesson 2.1 is gone. One reader each
  • The Domain 5 question on the lost-in-the-middle effect now says the middle of the commit sequence goes vague, which is what its answer had claimed all along; the stem used to say 'early'. Two other explanations gained a sentence in reply to reader objections: the PostToolUse normalisation item now says the hook should move the file and fix the declaration together, and the interview-pattern item says the developer does not need to know the answers, only to learn the questions
  • Question text in drill mode, the mock exam and the diagnostic is now a sans-serif face one size smaller. Three readers said the large serif made long stems hard to read
  • Lesson pages show a thin reading-progress bar under the header. The page scrollbar is hidden on purpose, to stop the layout shifting, and six readers asked how much of a lesson was left
  • The diagnostic score card now says how many questions you missed. The per-question review of them has been below it since June; one reader did not scroll that far and asked for it
  • Source links under a drill or results question now open in a new tab, lesson links included. Following one in place ended the sitting, and a reader called the result a mess, fairly
  • The drill rating prompt now says that picking a rating moves you to the next question. A reader looked for a Next button

10 September 2026

  • The build exercise in lesson 1.5 (Agent SDK Hooks) now uses the hook shape the SDK accepts. Its reference hints used to return a hand-rolled { blocked, message } object that nothing in the SDK reads. They now return hookSpecificOutput: a PreToolUse hook denies with permissionDecision and permissionDecisionReason, a PostToolUse hook replaces the result with updatedToolOutput, and the result itself arrives as tool_response. The hints also show how callbacks are registered under matchers, and the verification step no longer reads the tool result from a second hook, which would have seen the original value rather than the normalised one. Every snippet typechecks against the published SDK under strict mode. Nothing the exam keys on has moved

9 September 2026

  • Lesson 1.5 (Agent SDK Hooks) now names what each hook returns. A PreToolUse hook answers allow, deny, ask or defer and can rewrite the tool's input with updatedInput; a PostToolUse hook can replace the tool's output with updatedToolOutput, for built-in and MCP tools alike, and the older MCP-only field is deprecated. The page already said that PostToolUse cannot undo what the tool did, and it still does. A reader asked for the current field names

8 September 2026

  • Lesson 2.5 (Built-in Tools) now gives one answer on what to do when Edit reports a non-unique match. A May correction taught the recovery current Claude Code documents (widen old_string, or set replace_all), and a September note added that the exam guide names Read + Write. Two exam traps and the key-concept box still treated the guide's answer as the mistake, so the page argued with itself. A reader spotted it. The body now keeps both, labelled: widen the anchor in real work, answer Read + Write on the exam, which is what every question on the site already keys
  • Step 3 of the incremental-discovery list in lesson 2.5 (Grep again to trace usage) now explains itself, with a worked example: a function re-exported from a barrel file under a new name, whose callers never mention the original, so the first Grep cannot see them. The lesson's exam-simulator prompt had a question on the same idea built on a faulty premise, a namespace import that a plain Grep would in fact have matched. It now uses the rename case, where the miss is real. Two readers, one report each
  • Lessons 1.3 and 1.7 carry a current-state note on fork_session. In the Agent SDK it is a modifier on resume rather than an alternative to it: you pass resume with the session ID and fork_session: true to branch instead of append, and the CLI pairs --fork-session with --resume the same way. The exam guide lists them as two controls and the distinction it tests, continue versus branch, is unchanged, so no keyed answer moves
  • Lesson 4.5 (Batch Processing) adds a current-state note beside the guide's rule that a batch request cannot run multi-turn tool calling. Anthropic's batch docs now run the server-side agentic loop for server tools (web search, code execution, MCP connectors) inside a batch request, with pause_turn continuation. Client tools, the ones your own code executes, still cannot complete a loop inside one batch item. The guide's rule stays the exam answer, and the practice prompt for the lesson says the same

7 September 2026

  • Lesson 1.3 now says what fork_session and --resume actually are. --resume is a Claude Code CLI flag with a matching SDK option; fork_session is the SDK option, also on the CLI as --fork-session. The same lesson carries a current-state note beside the exam guide's rule that a coordinator's allowedTools must include Task: the SDK docs now describe allowedTools as an auto-approve list, so leaving Agent off sends every spawn through the permission callback rather than removing the tool. The guide's rule stays the exam answer
  • Lesson 2.4 adds one precision from the MCP specification: resources are application-controlled. The server lists them and the client decides when to attach one, so the agent sees a resource only when the host surfaces it. The guide's catalogue framing stays the exam answer
  • Lesson 3.2's body now carries the same two-part note on allowed-tools that the quick reference and the Concept Check already had. The exam guide says the field restricts a skill's tools, and that is the keyed answer; current Claude Code pre-approves the listed tools instead. Several readers asked which one to trust on the exam, and the answer is now on the page they were reading
  • Lesson 4.3 names the fourth tool_choice mode, none, alongside the guide's three. It also says plainly that extract_metadata in the examples is a tool you define yourself, and that tool_choice applies per request: drop the forced setting on the next call, or the model is obliged to call the same tool again
  • A Domain 1 hooks question now states that the project is version-controlled, which its explanation had assumed when it called a missed backup recoverable

3 September 2026

  • Lesson 2.2 (Structured Error Responses): the validation-error example reads isRetryable: false again. The content sweep that went live on 1 September wrapped every example in structuredContent and, while doing that, restored an older copy of this one block with isRetryable: true, so the JSON contradicted the explanation right beneath it. It's a one-line regression on our side. The value now matches the prose, the category table and the build exercise: only transient errors are retryable as-is. A validation error needs corrected input first, and errorCategory is what tells the agent so. Thanks to the seven readers who reported it within two days of it going live

24 August 2026

  • Moving to the next lesson now starts you at the top of it. The Next Lesson button sits at the foot of the page, so clicking it used to drop you into the bottom of the following lesson and leave you scrolling back up. Eleven of you reported it. The sidebar links behave the same way now, and going Back still returns you to where you were reading
  • Answer options in the mock exam, the diagnostic, and drill mode are now lettered by where they land on screen rather than by how they were written. The options were already shuffled, but each one kept the letter it was authored with, so the letters stayed clustered: across the Architect (Foundations) bank, B was the correct answer 63% of the time. Picking B every time scored 63% without reading a word. Several of you spotted that and told us. Nothing about the questions or the marking has changed, only which letter sits beside each option
  • The Buy Me a Coffee button is now on the About page. It only ever appeared here on the changelog and on the two results screens, so anyone who worked through the material without sitting a mock exam never saw it. One reader who wanted to say thanks went looking, could not find it, and asked whether they had imagined it

26 July 2026

  • The site now covers Anthropic's whole Claude certification programme. Alongside the free Architect (Foundations) track, Architect (Professional), Associate (Foundations), and Developer (Foundations) each have a page of their own with that exam's facts from its v1.0 guide: domains and weights, question count, time limit, delivery, and scoring. Prep content for the three new tracks is on the build plan, and each page says plainly what exists today
  • The homepage now opens with the mock exam and shows all four certifications as cards. A switcher in the header moves between them, and the five Architect (Foundations) domain links have moved to the footer
  • Each coming-soon certification page has a waitlist: leave your address and we send one email when that track goes live, and nothing else. Brevo holds the addresses (stored in the EU), every email carries an unsubscribe link, and the privacy policy has the details

24 July 2026

  • Refreshed lesson claims that had drifted from current Anthropic docs. The stop_reason production list in lesson 1.1 and the Domain 1 glossary now includes model_context_window_exceeded; lesson 1.7 and its build exercise name sessions with --name/-n and reserve --resume for resuming (it never creates a session); and lesson 3.6, its build exercise, and its practice-prompt pack now read schema-validated CI output from the JSON envelope's structured_output field rather than the top level
  • Lesson 1.4 now describes what the SubagentStart and SubagentStop hooks can actually do: SubagentStart observes a spawn (it cannot block or modify it), SubagentStop can validate a result and send the subagent back to work, and transforming what the coordinator sees is a PreToolUse/PostToolUse job on the Agent tool. The exam-keyed facts in these lessons are unchanged

23 July 2026

  • Aligned the site with Anthropic's Exam Guide v1.0 (effective July 2026), which re-issues the Architect Foundations exam under exam code CCAR-F with its domains, weights, and task statements unchanged. What did change: the exam is now delivered through Pearson VUE (online proctored or at a test centre), items can be multiple-response as well as multiple-choice, and results report a scaled score from 100 to 1,000 (720 to pass) together with your percent-correct by domain. The landing-page FAQ, mock exam, and Exam Domains pages now show the v1.0 facts
  • The landing-page FAQ now covers the guide's retake and renewal policies: waiting periods of 14, 30, and 90 days after failed attempts (up to four attempts in a rolling twelve months, fee per attempt), free on-time renewal via a non-proctored assessment on the Anthropic Partner Academy, and a full retake at the full fee if the credential lapses
  • Mock exam results now carry a note that the real exam reports a scaled score rather than raw percentages, so your mock percentages read as a readiness gauge, not a predicted score
  • Drill mode's answer reveal now explains your pick when it is wrong: alongside the existing why-the-correct-answer-is-right note, a second panel shows the one-line explanation for each incorrect option you selected. Every option in the bank carries such an explanation, and the content validator now enforces this for all future questions
  • Domain 3 practice questions are now filed under the correct exam-guide task statements. The bank previously used a pre-guide numbering (3.1 configuration, 3.2 CLAUDE.md, 3.3 hooks, 3.4 permissions, 3.5 commands), so twenty-two questions sat under the wrong task: path-rule questions now sit under 3.3, skills and slash-command questions under 3.2, @import and CLAUDE.md-organisation questions under 3.1, and the worktree workflow questions under 3.6. Hook questions, which the guide covers in Domain 1 rather than Domain 3, are grouped under 3.1 with the rest of the configuration material. Every question carries an up-to-date task label, and your drill and question history carries over automatically
  • Added two Domain 3 practice questions covering guide points that were not previously tested: test-driven iteration with a failing-test feedback loop (3.5), and using the /memory command to diagnose which configuration files a session has loaded (3.1)
  • Domain 5 practice questions are now filed under the correct exam-guide task statements. The bank previously used retired topic labels (prompt caching, rate limiting, monitoring), so 5.2 now reads escalation and ambiguity, 5.3 error propagation, 5.4 codebase exploration, 5.5 human review and calibration, and 5.6 information provenance. Five questions testing material the exam excludes or covers elsewhere were removed: two on prompt-caching internals and one on rate-limit retries (both out of scope per the guide's appendix), and two batch-vs-realtime routing questions that duplicate Domain 4.5 coverage. Your drill and question history carries over automatically
  • Added two Domain 5 practice questions covering guide points that were not previously tested: escalating on a policy gap rather than improvising a rule (5.2), and crash recovery for multi-agent codebase exploration via structured state manifests (5.4)
  • Mock exam scenarios now carry the guide's own domain mappings: Customer Support and Multi-Agent Research cover domains 1, 2, and 5; Code Generation covers 3 and 5; Developer Productivity covers 1, 2, and 3. Thirteen questions whose scenario did not match their domain were re-attached to a scenario that does, so no question is ever briefed by a scenario whose domain mix excludes it

15 July 2026

  • Your mock exam progress now survives page reloads and mobile tab discards. If a sitting is interrupted, the start screen offers to resume it — same questions, same order, answers and flags intact. The clock keeps counting while you are away, just like the real exam; if it runs out before you return, you get your results for the questions you answered instead of losing the attempt
  • After finishing a mock exam or the diagnostic, you can now filter the question-by-question review to just your incorrect, correct, or skipped answers — each pill shows its count, and question numbers keep their original positions
  • Lesson 3.2 and its Concept Check prompt now state the file-structure rule for the unified Skills system precisely: a skill is a directory containing a SKILL.md file (.claude/skills/deploy/SKILL.md), while a command is a flat Markdown file (.claude/commands/deploy.md). A flat file dropped straight into .claude/skills/ does not create a command — the previous wording could read as if the two directories were interchangeable, and the Concept Check tutor could wrongly “correct” a right answer as a result
  • Lesson 1.3 no longer ends a sentence with the idiom “full stop”, which read as a typo
  • The Exam Domains page now shows the real exam's key facts (60 questions in 120 minutes, $125 USD, pass mark 720 on a 1,000-point scale, 12-month validity), so you no longer need to hunt for them on the landing page
  • Fixed mock exam question q-4-6-002, whose correct answer showed the wrong text: the stem asks how to fix overly favourable self-review, and the keyed option now says to use a separate Claude instance without the generation context (as its explanation always did) instead of the per-file/integration-pass split that belongs to a different question
  • The Domain 3 quick reference no longer contradicts the lessons: CLAUDE.md files concatenate rather than override, the allowed-tools note carries both the exam guide's answer and current Claude Code behaviour, the skills and commands entries follow the merged system's file-structure rule, and the batch-vs-sequential tip now matches the guide (batch interacting issues in one message, fix independent ones sequentially)
  • Lesson 4.3 now says explicitly that the tool's JSON schema constrains the output shape while the separate tool_choice parameter forces the tool call, after a reader mistook the two
  • A full sweep of the reference material — all five quick references, all five glossaries, and the 30 in-lesson prompt packs — checked every claim against the corrected lessons and Exam Guide v0.2. The Domain 5 glossary was rebuilt around the current task statements (escalation triggers, error propagation, codebase exploration, confidence calibration, provenance) in place of the retired rate-limiting and monitoring topics, with out-of-scope notes where the guide excludes material; the Domain 5 quick reference gained an escalation-and-ambiguity section
  • Domain 2 quick reference: error categories now match the guide's four (transient, validation, business, permission) — “not found” was removed as an error category because a query that finds nothing is a valid empty result, not an error; tool_choice "any" is now documented as the guaranteed-structured-output answer when the document type is unknown, in both the Domain 2 and Domain 4 sheets
  • Domain 1: subagent tool scoping corrected to the tools field on an AgentDefinition (two places still said allowedTools); the multi-agent glossary entry no longer presents direct peer-to-peer subagent communication as a valid topology; the stop_reason entry now lists the production values beyond the exam's two
  • Fifteen prompt packs carried the title of the lesson that previously occupied their slot (e.g. the slash-commands pack was titled “CLAUDE.md Files”) — all renamed to their current lessons, and more than forty glossary cross-links now point at the right lesson under its current name and canonical URL
  • The Domain 3 glossary now teaches concatenation rather than override for CLAUDE.md, corrects .claude/CLAUDE.md to a valid version-controlled project location, lists the real permission modes, and carries the allowed-tools guide-vs-current note consistently through lesson 3.2's build exercise and prompt pack

13 July 2026

  • The answer options across all five domains have been rewritten so the correct answer is no longer the longest one. Across the practice bank the correct option was previously the longest about 87% of the time, so you could score well on the mock exam and in Drill Mode just by picking the longest answer; that is now down to roughly chance. Correct answers were trimmed to the essential claim, and the shorter, weaker options were rewritten to be genuinely plausible. No correct answers changed, so your drill and question history carries over
  • Many throwaway distractors are now specific and tempting rather than obviously wrong, so the questions test how well you know the material rather than test-taking instinct

8 July 2026

  • Domain 1 practice questions are now filed under the correct exam-guide task statements. Questions that were actually testing hooks, handoff, decomposition, or scoped tools have moved to their proper task (for example, PostToolUse-hook questions now sit under 1.5 rather than 1.3), and every question carries an up-to-date task label. Your drill and question history carries over automatically
  • Domain 1 lessons and questions now lead with the exam guide's "Task tool" terminology, with a note that current Claude Code renamed it to Agent in v2.1.63 (the old name still works as an alias). The subagent tool-scoping field is corrected to `tools` on an AgentDefinition
  • Added three Domain 1 practice questions covering guide points that were not previously tested: appending tool results to the conversation, iterative refinement by the coordinator, and goal-oriented subagent prompts
  • Lesson 1.1 now notes the stop_reason values a production loop must handle beyond the exam's two (`pause_turn`, `refusal`), and Lesson 1.2 notes that current Claude Code allows nested sub-agents, so its hub-and-spoke absolute is an exam simplification
  • Domain 2 practice questions are now filed under the correct exam-guide task statements. Questions that sat under the wrong task have moved to where they belong (for example, the `.mcp.json` configuration-scope questions now sit under 2.4, the structured-error questions under 2.2, and the tool-count-limit question under 2.3), and every question carries an up-to-date task label. Your drill and question history carries over automatically
  • Added a Domain 2 practice question on exposing MCP resources as content catalogues, a guide point that was not previously tested

7 July 2026

  • New full-length mock exam mode: 60 questions in 120 minutes, matching the real exam's format exactly. The quick 28-question mock stays for shorter readiness checks — pick your sitting on the start screen
  • Domain 4 lesson numbering now matches the official exam guide: 4.2 is Few-Shot Prompting, 4.3 is Structured Output, and 4.4 is Validation-Retry Loops (the site previously taught these under different numbers). Old lesson URLs redirect, drill and lesson progress carries over automatically, and practice questions are retagged to the correct task statements
  • Aligned the site with Anthropic's updated Exam Guide v0.2 (30 June 2026). The real exam is 60 questions in 120 minutes — earlier copy here wrongly described it as 60 minutes. The guide also now states the exam fee ($125 USD), delivery (online proctored or test centre), and a 12-month credential validity; these appear in the landing-page FAQ and on the mock exam page
  • Verified against the official diff: all 30 task statements, all 6 exam scenarios, and the guide's sample questions are unchanged between v0.1 and v0.2, so lesson content did not need rewriting for this update
  • The mock exam timer is now 56 minutes for its 28 questions, matching the real exam's pace of 2 minutes per question
  • The exam review screen now explains that the real exam platform requires an answer to every question before you can advance (the mock still lets you skip while practising)
  • Question-count references updated: the practice bank has grown past 230 questions

6 July 2026

  • Drilling now moves your exam-readiness score. Previously only fully-mastered cards counted, so a few drill sessions showed no change; each drilled card now earns credit toward readiness that grows as it approaches mastery
  • The curriculum sidebar now shows a green tick beside each lesson you have marked complete, so your progress is visible at a glance. The “Mark Complete” button is also easier to see before a lesson is completed
  • The Build Exercise on Lesson 1.4 now includes Python versions of the starter code alongside the TypeScript snippets

1 July 2026

  • Lesson 3.2: corrected how `allowed-tools` works. It pre-approves the listed tools so Claude can use them without a permission prompt; it does not restrict which tools are available (that is what `disallowed-tools` does)
  • Added prompt caching coverage to Lesson 5.1 (cache_control breakpoints and static-then-dynamic ordering), and pointed the caching questions at it instead of the batch-processing lesson
  • Lesson 2.2: added a short explanation of what `isRetryable` actually means, so retrying as-is (transient errors) and fixing-then-retrying (validation errors) are no longer easy to confuse
  • Lesson 3.6: clarified why an already-addressed CI review finding can resurface on the next run, and reworded the “do not re-report” instruction
  • Lesson 3.2: the skill frontmatter example now shows where the file lives on disk

29 June 2026

  • The Quick Reference button at the bottom of each lesson now opens the matching domain cheat sheet instead of a 404 page
  • In-lesson practice questions now shuffle their answer options, so the correct choice is no longer disproportionately option B
  • Lesson practice questions now show a clear “Correct” or “Not quite” verdict after you check an answer, and the reset button reads “Reset” rather than “Try Again”, so a correct answer no longer looks like a failure
  • Drill mode hides the spaced-repetition interval label on a brand-new card, where all four ratings would otherwise show the same “1d”
  • Lesson 2.2 (Structured Error Responses): fixed a verb-agreement slip in the opening line (“flails” → “flail”)

8 June 2026

  • Lesson URLs now match their titles: 19 lessons whose web address still described an old topic were renamed (for example /1-4-claude-agent-sdk is now /1-4-workflow-enforcement-handoff), with redirects from the old addresses so existing links and bookmarks keep working
  • Lesson 1.5 and its practice questions now use Anthropic's canonical PreToolUse hook name instead of the informal “tool call interception”
  • Lesson 3.1 questions: firm-wide standards belong in version-controlled project config, not personal user config; also corrected a precedence question to match how CLAUDE.md files actually load (concatenated, not strict override)
  • Lesson 3.2: clarified that custom slash commands and Skills share the same frontmatter and create the same command, with Skills as the recommended, fuller-featured path
  • Mock exam now guarantees a scenario-heavy question mix and caps plain recall, and the start screen notes it is a shortened practice run with scaled scoring
  • Fixed an agentic-loop drill question (q-1-1-002) that had two near-identical answer options
  • Lesson 3.5: input and expected-output code examples now render on separate lines instead of collapsing onto one

25 May 2026

  • Lesson 3.1 (CLAUDE.md): corrected the @ path import syntax — there is no @import keyword, the directive is @ followed by a path. Imports load eagerly, so they're a source-organisation tool, not a context-reduction tool
  • Lesson 3.1: added a CLAUDE.local.md subsection covering loading order, gitignore convention, and intended use
  • Lesson 2.5 (Built-in Tools): corrected the Edit non-unique-match recovery — widen old_string with surrounding context, or use replace_all: true; Read + Write is the last-resort fallback, not the standard response
  • Drill question on bloated CLAUDE.md: correct answer is now path-scoped .claude/rules/ files, not @ imports (which don't reduce per-session context)
  • Drill stem now shows the canonical question ID, so reports can pinpoint the exact question
  • Drill summary now shows your Again/Hard/Good/Easy self-rating distribution alongside accuracy
  • Mock exam now guarantees at least 3 questions per domain, with the remaining 13 distributed by weight — no more single-question domains wiping out big point chunks
  • Feedback widget no longer appears in print previews, doesn't show during a mock exam (less chance of stray taps on mobile), and steps out of the way of footer links
  • Question 3-5-003 (team-shared custom commands): tightened to explicitly ask about the slash-command format, with a clearer skills-vs-commands distinction in distractor D
  • Three of the most length-biased questions trimmed so the correct option isn't visibly longer than its distractors

21 May 2026

  • Mark Complete button restored to the lesson metadata row (top-right next to the Domain badges) in addition to the footer placement, with a useStorage fix so both buttons stay in sync

19 May 2026

  • Per-URL audit of 24 lesson and question files to repair docs.anthropic.com/en/docs/agents/* and /build-with-claude/* link rot
  • Lesson 2.5: Grep → Glob → Grep sequence now covers indirect coverage via wrapper functions; practice-question option C narrowed to sibling-test matching
  • MCP scope question (q-2-3-005) rewritten — descriptions alone can't disambiguate near-identical Postgres tools; rename + scoped instruction is the fix
  • Validation-error question (q-2-4-003) rewritten to the four-category model (transient / validation / business / permission) matching lesson 2.2

15 May 2026

  • Drill mode now shuffles answer options so the correct answer is no longer biased toward position B
  • Mark Complete button moved to the bottom of each lesson, beside the Next Lesson link
  • Hover tooltips added to the Questions Seen, Mastered, and Due Today stats on the progress page
  • Drill progress is now resilient to drilling in multiple tabs at once
  • Lesson 2.3 (MCP Client Integration): Coordinator tool renamed from Task to Agent
  • Lesson 4.4 (Few-Shot Examples): false-positive example now renders as a proper code block
  • Lesson 4.5 (Prompt Optimisation): corrected the Batch API SLA submission window

9 April 2026

  • Mock exam scoring fixed — answering all questions correctly now properly scores 1000/1000
  • Question bank expanded from 165 to 239 practice questions across all 10 exam scenarios

1 April 2026

  • Independent sidebar scrolling on the learn page

29 March 2026

  • Mobile navigation scroll fix

24 March 2026

  • Content freshness update across all 5 exam domains