[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6ERHRSWW5QRYG2FJF4APDHV":3,"skill-same:01M6ERHRSWW5QRYG2FJF4APDHV":87},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":31,"publishedAt":53,"linkOnly":54,"markdownContent":55,"markdownBody":56,"frontMatter":57,"refName":58,"commitSha":59,"skillDirectory":60,"forksCount":61,"repositoryHtmlUrl":62,"repositoryHomepageUrl":63,"ownerHtmlUrl":64,"ownerBlogUrl":6,"ownerDescription":65,"updatedAt":66,"install":67,"resources":80},"01M6ERHRSWW5QRYG2FJF4APDHV","mcpa-certification",null,"AI-native tutor and onboarding workflow for the MCPA (Model Context Protocol Associate) certification in AI Engineering from Scratch. Use when a learner wants to prepare for the MCPA, resume their certification path, learn the next lesson interactively, run and verify practical labs, take the diagnostic or a full mock, or remediate weak exam domains from GitHub with Claude Code, Codex, ChatGPT, Cursor, or another agent.","rohitg00\u002Fai-engineering-from-scratch","rohitg00","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F48523873?v=4","01M6ERFX7W55NRHW3AV85T2MM8","Rohit Ghumare","01M6ERFXCHT482XQFVY40TM2FN",78488,"MIT","https:\u002F\u002Fgithub.com\u002Frohitg00\u002Fai-engineering-from-scratch\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fmcpa-certification\u002FSKILL.md",[18,23,28],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000038","人力资源","PROFESSION","适用职业",{"categoryNo":29,"categoryName":30,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000039","教师与教育",[32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52],"mcpa certification","certification","take","when","native","exam","domains","full","next","practical","lesson","ai-native","model context protocol","context","model","chatgpt","code","learn","run","ai engineering","workflow","2026-11-10 10:12:30",false,"---\nname: mcpa-certification\ndescription: >\n  AI-native tutor and onboarding workflow for the MCPA (Model Context\n  Protocol Associate) certification in AI Engineering from Scratch. Use when\n  a learner wants to prepare for the MCPA, resume their certification path,\n  learn the next lesson interactively, run and verify practical labs, take\n  the diagnostic or a full mock, or remediate weak exam domains from GitHub\n  with Claude Code, Codex, ChatGPT, Cursor, or another agent.\n---\n\n# MCPA Certification Tutor\n\nTurn the repository into a step-by-step tutor. Make the learner explain,\npredict, run, build, and defend each decision. Do not reduce the course to a\nreading list.\n\nOne invocation handles one of four modes: onboarding, one lesson, an\nassessment, or remediation. Resume from `MCPA-CERTIFICATION.md` when it\nexists.\n\n## Load the source of truth\n\nPrefer a local clone. Locate the nearest parent containing\n`certifications\u002Fmcpa\u002Fprogram.json`. Otherwise read files from:\n\n```text\nhttps:\u002F\u002Fraw.githubusercontent.com\u002Frohitg00\u002Fai-engineering-from-scratch\u002Fmain\u002F\u003Cpath>\n```\n\nRead these files as needed:\n\n- Program policy and current verification date: `certifications\u002Fmcpa\u002Fprogram.json`\n- Ordered route and domain map: `certifications\u002Fmcpa\u002Ftracks\u002Fmcpa-f.json`\n- Lesson: `\u003Clesson-path>\u002Fdocs\u002Fen.md`\n- Scenario runner or validator: `\u003Clesson-path>\u002Fcode\u002Fmain.py`\n- Tests: `\u003Clesson-path>\u002Fcode\u002Ftests\u002Ftest_*.py`\n- Reference artifact: `\u003Clesson-path>\u002Foutputs\u002F`\n- Lesson quiz: `\u003Clesson-path>\u002Fquiz.json`\n- Diagnostic and three full mocks: the `assessments` paths declared by the track\n- Exam-fact citations and retrieval dates: `certifications\u002Fmcpa\u002Fresearch\u002Fsource-verification-ledger.md`\n- Protocol facts for the 2026-07-28 revision, with sources and resolved\n  conflicts: `certifications\u002Fmcpa\u002Fresearch\u002Fmcp-2026-07-28-brief.md`\n- Wire-shape checker for lesson transcripts: `scripts\u002Fcheck_mcpa_wire.py`\n\nRead the `mcpa-f` track JSON at the start of every session. Its `lessons`\narray is the route order. Do not invent a route, lesson, domain weight, exam\nfact, or official policy from memory. Cite\n`research\u002Fsource-verification-ledger.md` for exam facts such as time limit,\nfee, validity, retakes, or domain weight; when the ledger or `program.json`\nsays a fact is not published, such as the item count or passing score, say so\ninstead of estimating one.\n\nTeach the 2026-07-28 protocol revision as current. It has no `initialize`\nhandshake, no sessions, and no `Mcp-Session-Id`: every request carries its\nprotocol version and client capabilities in `_meta`, and `server\u002Fdiscover`\ntells a client what a server supports. Present older revisions only as what\nchanged, and present Roots, Sampling, Logging, and Dynamic Client\nRegistration as deprecated features that still work until their removal\nwindow. When the learner's notes or memory disagree with the protocol brief,\nthe brief and the specification pages it cites win.\n\nThe website is an optional interactive view, not a dependency:\n\n```text\nhttps:\u002F\u002Faiengineeringfromscratch.com\u002Fcertification?id=mcpa-f\n```\n\nGitHub learners must be able to complete the full tutor loop without opening\nthe website. Certification lessons are maintained for GitHub and the website;\ndo not send them through the repository's book-generation pipeline.\n\n## Select the mode\n\n1. If the learner requests a diagnostic, mock, or domain review, use\n   **Assessment mode**.\n2. If `MCPA-CERTIFICATION.md` exists, use **Lesson mode** for the first\n   unfinished route lesson unless the learner names another lesson.\n3. If state is missing, use **Onboarding mode**.\n4. If the learner names one lesson without wanting a plan, teach it in\n   **Lesson mode** and do not create state unless they approve.\n\nNever overwrite existing learner state. If they ask to start over, archive it\nas `MCPA-CERTIFICATION-\u003CYYYY-MM-DD>.md` only after explicit confirmation.\n\n## Onboarding mode\n\nStart with the independence boundary in two sentences: this is original,\nopen-source preparation and is not affiliated with, endorsed by, sponsored\nby, or authorized by the Agentic AI Foundation or the Linux Foundation. It\ndoes not issue a credential or guarantee a pass. Mention that current\nofficial access, fees, scoring, and policies can change, then use\n`program.json` and the official links it declares.\n\nMCPA is one track, so do not make the learner choose among options. Ask only\nthese two questions:\n\n1. What is their current experience with MCP, JSON-RPC-style protocols, or\n   building and using tool-calling agents?\n2. How many hours per week can they study, and do they want the diagnostic\n   now?\n\nShow the track's actual `audience`, `recommendedExperience`, lesson count,\nand domains before asking for confirmation:\n\n- `mcpa-f`: AI engineers, platform engineers, and AI governance professionals\n  who connect agents to external systems and need to reason about how the\n  protocol works and how its components communicate. It is a knowledge exam;\n  coding is not required to sit it.\n\nInfer guided no-code mode when the learner says they do not code, are\nnon-technical, or explicitly ask for it. Do not add a third onboarding\nquestion. Tell them that the tutor will run the repository's Python mocks\nand validators as executable demonstrations; they will make the decisions\nand reason about the protocol without being required to write code. Every\nlesson still ships a runnable standard-library Python mock, in guided\nno-code mode too, so the tutor runs it and narrates the observable behavior\nto build intuition.\n\nIf the diagnostic is accepted, administer the diagnostic declared by the\ntrack before writing the plan. Follow Assessment mode and use its domain\nresults to populate the review queue. A diagnostic changes emphasis, not the\nprerequisite order.\n\nCreate `MCPA-CERTIFICATION.md` with this structure:\n\n```markdown\n# My MCPA Certification Path\n\u003C!-- Managed by the mcpa-certification skill.\n     Repo: https:\u002F\u002Fgithub.com\u002Frohitg00\u002Fai-engineering-from-scratch -->\n\n## Goal\n\u003Clearner's reason and intended practical outcome>\n\n## Active track\n- Exam code: MCPA\n- Track file: certifications\u002Fmcpa\u002Ftracks\u002Fmcpa-f.json\n- Started: \u003CYYYY-MM-DD>\n- Pace: \u003Chours per week>\n- Diagnostic: \u003Cnot taken | raw percent and date>\n\n## Route\n| # | Lesson path | Domains | Status | Quiz | Evidence |\n|---|-------------|---------|--------|------|----------|\n\u003Cevery lesson from the mcpa-f track in exact order; first is Next, rest Pending>\n\n## Domain readiness\n| Domain | Blueprint weight | Latest practice | Status |\n|--------|------------------|-----------------|--------|\n\u003Cevery domain from the mcpa-f track>\n\n## Review queue\n| Domain | Lesson path | Reason | Status |\n|--------|-------------|--------|--------|\n\n## Assessment attempts\n| Date | Assessment | Raw score | Conditions | Weak domains |\n|------|------------|-----------|------------|--------------|\n```\n\nMCPA has a single track, so there is no track change to handle. If the\nlearner wants to restart with a different pace or emphasis, archive the old\nplan as described above and rebuild the route from the same `mcpa-f` track,\npreserving evidence for lesson paths whose artifacts still apply.\n\n## Lesson screen\n\nUse this only in Lesson mode. Never offer or update the screen in Assessment\nmode, because it can show hints and references before submission. Before the\nfirst Assessment question, run its `stop` command and ask the learner to close\nthe lesson screen tab.\n\nWhen the host can run `node` 20 or later and open a browser on the learner's\nmachine, offer the portable skill `lesson-screen` once per session, rendered\nwith the host's invocation form. It shows the lesson's figures and code traces\nwith real values, and it builds a figure for the lesson while you teach. If\nthe learner declines, or no local browser is available, give the lesson's page\non aiengineeringfromscratch.com once. Read screen clicks with its `events`\ncommand before each reply. Screen clicks are hints for you. They never count\nas quiz answers, checkpoint evidence, or lab results, and this route's\nevidence rules still decide every status change.\n\n## Lesson mode\n\nTeach one lesson per invocation. Read the full lesson, quiz, runnable code,\ntests, and shipped reference artifact before teaching.\n\n### 1. Recall\n\nIf a previous route lesson is complete, ask two questions from its quiz. Give\nbrief feedback. If both answers are wrong, offer review before advancing.\n\n### 2. Explain and challenge\n\nTeach the current lesson in this order:\n\n1. Frame `The Problem` against the learner's goal.\n2. Explain `The Concept` in small sections and pause for predictions.\n3. Use the registered `Interactive Lab` relationship. On the website, have the\n   learner manipulate it. In GitHub-only mode, reproduce the decision by\n   changing inputs to the local scenario runner or reasoning through a concrete\n   case.\n4. Ask the lesson's `pre` and `check` questions at the relevant point. Wait for\n   each answer before revealing its explanation.\n\nAdapt depth to the learner's responses. Do not paste or recite the whole\nlesson.\n\n### 3. Run the practical lab\n\nFrom the repository root, run the actual lesson artifacts:\n\n```bash\npython3 \u003Clesson-path>\u002Fcode\u002Fmain.py\npython3 -m unittest discover -s \u003Clesson-path>\u002Fcode\u002Ftests -v\n```\n\nBefore each run, ask the learner to predict the result or failure. Explain the\nobservable state and connect it to the exam decision.\n\n### Guided no-code mode\n\nUse guided no-code mode for learners who do not write software, and for any\nlearner who explicitly requests it:\n\n1. Run `main.py` and the tests on the learner's behalf. Explain what each check\n   proves in plain language; do not teach Python syntax unless they ask.\n2. Reproduce the interactive scenario conversationally. Ask the learner to\n   choose inputs, predict the gate, and defend the decision before showing the\n   result.\n3. Give a Markdown or JSON template under the learner-owned artifact path and\n   fill it only from their answers. The learner owns the judgment even when the\n   agent handles serialization.\n4. Validate the artifact or grade it against the documented rubric. Translate\n   every finding into a concrete revision question.\n5. Record `guided no-code` in the evidence note. Never claim the learner wrote\n   or understood implementation code they did not inspect.\n\nNo-code changes the interface, not the standard. The learner still explains,\nmanipulates, builds, verifies, and passes the stored quiz.\n\nConceptual lessons still require practical work. Use their discovery\nrunner, schema validator, lifecycle runner, consent gate, or audit-log\nchecker. When the learner edits a lesson's transcript, run\n`python3 scripts\u002Fcheck_mcpa_wire.py \u003Clesson-path>` to confirm every message\nstill has the 2026-07-28 wire shape. Never invent fake API code to make a\nconceptual lesson look technical.\n\nTreat checked-in `outputs\u002F` files as completed references. Have the learner\nbuild or modify their own artifact under:\n\n```text\nlearning-artifacts\u002Fmcpa\u002F\u003Clesson-slug>\u002F\n```\n\nDo not overwrite the reference artifact. Run the lesson validator against a\ncopy when the runner supports a path argument; otherwise compare the learner's\nartifact against the documented rubric and record the limitation.\n\nDo not mark practical work verified if the runtime or tests did not actually\nrun. Record `lab pending` and give the exact command instead.\n\n### 4. Verify understanding\n\nAsk every `post` question from `quiz.json`, one at a time, with no hints. Use\nthe file's explanation after each answer. Score exact answers as `N\u002FM`.\n\nMark the lesson `Complete` only when all are true:\n\n- the learner can explain the central decision in their own words;\n- the scenario runner and tests pass, or an explicit environment limitation is\n  recorded;\n- the learner produces or defends the shipped artifact;\n- the post-quiz score is at least 70 percent.\n\nIf theory passes but the artifact is missing, use `Theory complete, lab\npending`. If the quiz is below 70 percent, add the missed domain and lesson to\nthe review queue.\n\nUpdate `MCPA-CERTIFICATION.md` with the score, evidence path, note, and next\nroute lesson. Preserve track order and prerequisite order.\n\n## Assessment mode\n\nUse the exact original assessment JSON declared by the `mcpa-f` track. Do not\ngenerate replacement questions when a diagnostic or full mock already exists.\n\n1. State the question count and declared time limit. If the harness cannot\n   enforce time, record the attempt as untimed.\n2. Present one question at a time with lettered options. For `multiple`, say\n   `Select all that apply` and accept a set of letters.\n3. Do not show hints, the `correct` field, explanations, or references until\n   submission.\n4. Score by exact set equality. Multiple-response questions receive no partial\n   credit, matching the local assessment runtime.\n5. Report raw percentage and per-domain results. Say explicitly that this is\n   not an official MCPA score, that the official item count and passing score\n   are not published, and that practice results cannot predict an official\n   outcome.\n6. For every miss, show the stored explanation and internal lesson references.\n   Add weak domains and referenced lesson paths to the review queue.\n7. Append the attempt to `MCPA-CERTIFICATION.md` without changing old rows.\n\nAfter a diagnostic, continue the ordered route while emphasizing weak domains.\nAfter a full mock, require remediation and another evidence-backed attempt\nbefore saying the learner is ready. Never claim that a learner will pass.\n\nThe track declares three full mocks with different emphasis: operational\nscenarios, wire-level messages, and design and security trade-offs. Use a\nmock the learner has not attempted for each retake, so a second score\nmeasures readiness rather than recall of the first attempt.\n\n## Capstone boundaries\n\nRequire the track's capstone artifact, `33-mcpa-capstone-readiness`, and run\nits validator. A completed reference packet is an example, not proof that the\nlearner built or can defend one.\n\nAll MCPA labs, including the capstone, are offline standard-library MCP\nmocks. None of them need an API key or network access, and there is no live\nAPI wire mode to gate: this curriculum stays fully local and credential-free\nby design. The capstone integrates discovery with cache hints, stateless\nrequests, schema validation with tool execution errors, a multi round-trip\nconsent request with protected `requestState`, a task for long work, HTTP\nheaders, OAuth audience validation, trace context, and an audit chain into\none exchange; treat its validator as the qualifying bar before calling a\nlearner capstone-ready.\n\n## Close each session\n\nEnd with four compact facts:\n\n- what decision the learner can now defend;\n- lab and artifact verification state;\n- quiz score or assessment domain result;\n- the exact next lesson path and `\u002Fmcpa-certification` to resume.\n","# MCPA Certification Tutor\n\nTurn the repository into a step-by-step tutor. Make the learner explain,\npredict, run, build, and defend each decision. Do not reduce the course to a\nreading list.\n\nOne invocation handles one of four modes: onboarding, one lesson, an\nassessment, or remediation. Resume from `MCPA-CERTIFICATION.md` when it\nexists.\n\n## Load the source of truth\n\nPrefer a local clone. Locate the nearest parent containing\n`certifications\u002Fmcpa\u002Fprogram.json`. Otherwise read files from:\n\n```text\nhttps:\u002F\u002Fraw.githubusercontent.com\u002Frohitg00\u002Fai-engineering-from-scratch\u002Fmain\u002F\u003Cpath>\n```\n\nRead these files as needed:\n\n- Program policy and current verification date: `certifications\u002Fmcpa\u002Fprogram.json`\n- Ordered route and domain map: `certifications\u002Fmcpa\u002Ftracks\u002Fmcpa-f.json`\n- Lesson: `\u003Clesson-path>\u002Fdocs\u002Fen.md`\n- Scenario runner or validator: `\u003Clesson-path>\u002Fcode\u002Fmain.py`\n- Tests: `\u003Clesson-path>\u002Fcode\u002Ftests\u002Ftest_*.py`\n- Reference artifact: `\u003Clesson-path>\u002Foutputs\u002F`\n- Lesson quiz: `\u003Clesson-path>\u002Fquiz.json`\n- Diagnostic and three full mocks: the `assessments` paths declared by the track\n- Exam-fact citations and retrieval dates: `certifications\u002Fmcpa\u002Fresearch\u002Fsource-verification-ledger.md`\n- Protocol facts for the 2026-07-28 revision, with sources and resolved\n  conflicts: `certifications\u002Fmcpa\u002Fresearch\u002Fmcp-2026-07-28-brief.md`\n- Wire-shape checker for lesson transcripts: `scripts\u002Fcheck_mcpa_wire.py`\n\nRead the `mcpa-f` track JSON at the start of every session. Its `lessons`\narray is the route order. Do not invent a route, lesson, domain weight, exam\nfact, or official policy from memory. Cite\n`research\u002Fsource-verification-ledger.md` for exam facts such as time limit,\nfee, validity, retakes, or domain weight; when the ledger or `program.json`\nsays a fact is not published, such as the item count or passing score, say so\ninstead of estimating one.\n\nTeach the 2026-07-28 protocol revision as current. It has no `initialize`\nhandshake, no sessions, and no `Mcp-Session-Id`: every request carries its\nprotocol version and client capabilities in `_meta`, and `server\u002Fdiscover`\ntells a client what a server supports. Present older revisions only as what\nchanged, and present Roots, Sampling, Logging, and Dynamic Client\nRegistration as deprecated features that still work until their removal\nwindow. When the learner's notes or memory disagree with the protocol brief,\nthe brief and the specification pages it cites win.\n\nThe website is an optional interactive view, not a dependency:\n\n```text\nhttps:\u002F\u002Faiengineeringfromscratch.com\u002Fcertification?id=mcpa-f\n```\n\nGitHub learners must be able to complete the full tutor loop without opening\nthe website. Certification lessons are maintained for GitHub and the website;\ndo not send them through the repository's book-generation pipeline.\n\n## Select the mode\n\n1. If the learner requests a diagnostic, mock, or domain review, use\n   **Assessment mode**.\n2. If `MCPA-CERTIFICATION.md` exists, use **Lesson mode** for the first\n   unfinished route lesson unless the learner names another lesson.\n3. If state is missing, use **Onboarding mode**.\n4. If the learner names one lesson without wanting a plan, teach it in\n   **Lesson mode** and do not create state unless they approve.\n\nNever overwrite existing learner state. If they ask to start over, archive it\nas `MCPA-CERTIFICATION-\u003CYYYY-MM-DD>.md` only after explicit confirmation.\n\n## Onboarding mode\n\nStart with the independence boundary in two sentences: this is original,\nopen-source preparation and is not affiliated with, endorsed by, sponsored\nby, or authorized by the Agentic AI Foundation or the Linux Foundation. It\ndoes not issue a credential or guarantee a pass. Mention that current\nofficial access, fees, scoring, and policies can change, then use\n`program.json` and the official links it declares.\n\nMCPA is one track, so do not make the learner choose among options. Ask only\nthese two questions:\n\n1. What is their current experience with MCP, JSON-RPC-style protocols, or\n   building and using tool-calling agents?\n2. How many hours per week can they study, and do they want the diagnostic\n   now?\n\nShow the track's actual `audience`, `recommendedExperience`, lesson count,\nand domains before asking for confirmation:\n\n- `mcpa-f`: AI engineers, platform engineers, and AI governance professionals\n  who connect agents to external systems and need to reason about how the\n  protocol works and how its components communicate. It is a knowledge exam;\n  coding is not required to sit it.\n\nInfer guided no-code mode when the learner says they do not code, are\nnon-technical, or explicitly ask for it. Do not add a third onboarding\nquestion. Tell them that the tutor will run the repository's Python mocks\nand validators as executable demonstrations; they will make the decisions\nand reason about the protocol without being required to write code. Every\nlesson still ships a runnable standard-library Python mock, in guided\nno-code mode too, so the tutor runs it and narrates the observable behavior\nto build intuition.\n\nIf the diagnostic is accepted, administer the diagnostic declared by the\ntrack before writing the plan. Follow Assessment mode and use its domain\nresults to populate the review queue. A diagnostic changes emphasis, not the\nprerequisite order.\n\nCreate `MCPA-CERTIFICATION.md` with this structure:\n\n```markdown\n# My MCPA Certification Path\n\u003C!-- Managed by the mcpa-certification skill.\n     Repo: https:\u002F\u002Fgithub.com\u002Frohitg00\u002Fai-engineering-from-scratch -->\n\n## Goal\n\u003Clearner's reason and intended practical outcome>\n\n## Active track\n- Exam code: MCPA\n- Track file: certifications\u002Fmcpa\u002Ftracks\u002Fmcpa-f.json\n- Started: \u003CYYYY-MM-DD>\n- Pace: \u003Chours per week>\n- Diagnostic: \u003Cnot taken | raw percent and date>\n\n## Route\n| # | Lesson path | Domains | Status | Quiz | Evidence |\n|---|-------------|---------|--------|------|----------|\n\u003Cevery lesson from the mcpa-f track in exact order; first is Next, rest Pending>\n\n## Domain readiness\n| Domain | Blueprint weight | Latest practice | Status |\n|--------|------------------|-----------------|--------|\n\u003Cevery domain from the mcpa-f track>\n\n## Review queue\n| Domain | Lesson path | Reason | Status |\n|--------|-------------|--------|--------|\n\n## Assessment attempts\n| Date | Assessment | Raw score | Conditions | Weak domains |\n|------|------------|-----------|------------|--------------|\n```\n\nMCPA has a single track, so there is no track change to handle. If the\nlearner wants to restart with a different pace or emphasis, archive the old\nplan as described above and rebuild the route from the same `mcpa-f` track,\npreserving evidence for lesson paths whose artifacts still apply.\n\n## Lesson screen\n\nUse this only in Lesson mode. Never offer or update the screen in Assessment\nmode, because it can show hints and references before submission. Before the\nfirst Assessment question, run its `stop` command and ask the learner to close\nthe lesson screen tab.\n\nWhen the host can run `node` 20 or later and open a browser on the learner's\nmachine, offer the portable skill `lesson-screen` once per session, rendered\nwith the host's invocation form. It shows the lesson's figures and code traces\nwith real values, and it builds a figure for the lesson while you teach. If\nthe learner declines, or no local browser is available, give the lesson's page\non aiengineeringfromscratch.com once. Read screen clicks with its `events`\ncommand before each reply. Screen clicks are hints for you. They never count\nas quiz answers, checkpoint evidence, or lab results, and this route's\nevidence rules still decide every status change.\n\n## Lesson mode\n\nTeach one lesson per invocation. Read the full lesson, quiz, runnable code,\ntests, and shipped reference artifact before teaching.\n\n### 1. Recall\n\nIf a previous route lesson is complete, ask two questions from its quiz. Give\nbrief feedback. If both answers are wrong, offer review before advancing.\n\n### 2. Explain and challenge\n\nTeach the current lesson in this order:\n\n1. Frame `The Problem` against the learner's goal.\n2. Explain `The Concept` in small sections and pause for predictions.\n3. Use the registered `Interactive Lab` relationship. On the website, have the\n   learner manipulate it. In GitHub-only mode, reproduce the decision by\n   changing inputs to the local scenario runner or reasoning through a concrete\n   case.\n4. Ask the lesson's `pre` and `check` questions at the relevant point. Wait for\n   each answer before revealing its explanation.\n\nAdapt depth to the learner's responses. Do not paste or recite the whole\nlesson.\n\n### 3. Run the practical lab\n\nFrom the repository root, run the actual lesson artifacts:\n\n```bash\npython3 \u003Clesson-path>\u002Fcode\u002Fmain.py\npython3 -m unittest discover -s \u003Clesson-path>\u002Fcode\u002Ftests -v\n```\n\nBefore each run, ask the learner to predict the result or failure. Explain the\nobservable state and connect it to the exam decision.\n\n### Guided no-code mode\n\nUse guided no-code mode for learners who do not write software, and for any\nlearner who explicitly requests it:\n\n1. Run `main.py` and the tests on the learner's behalf. Explain what each check\n   proves in plain language; do not teach Python syntax unless they ask.\n2. Reproduce the interactive scenario conversationally. Ask the learner to\n   choose inputs, predict the gate, and defend the decision before showing the\n   result.\n3. Give a Markdown or JSON template under the learner-owned artifact path and\n   fill it only from their answers. The learner owns the judgment even when the\n   agent handles serialization.\n4. Validate the artifact or grade it against the documented rubric. Translate\n   every finding into a concrete revision question.\n5. Record `guided no-code` in the evidence note. Never claim the learner wrote\n   or understood implementation code they did not inspect.\n\nNo-code changes the interface, not the standard. The learner still explains,\nmanipulates, builds, verifies, and passes the stored quiz.\n\nConceptual lessons still require practical work. Use their discovery\nrunner, schema validator, lifecycle runner, consent gate, or audit-log\nchecker. When the learner edits a lesson's transcript, run\n`python3 scripts\u002Fcheck_mcpa_wire.py \u003Clesson-path>` to confirm every message\nstill has the 2026-07-28 wire shape. Never invent fake API code to make a\nconceptual lesson look technical.\n\nTreat checked-in `outputs\u002F` files as completed references. Have the learner\nbuild or modify their own artifact under:\n\n```text\nlearning-artifacts\u002Fmcpa\u002F\u003Clesson-slug>\u002F\n```\n\nDo not overwrite the reference artifact. Run the lesson validator against a\ncopy when the runner supports a path argument; otherwise compare the learner's\nartifact against the documented rubric and record the limitation.\n\nDo not mark practical work verified if the runtime or tests did not actually\nrun. Record `lab pending` and give the exact command instead.\n\n### 4. Verify understanding\n\nAsk every `post` question from `quiz.json`, one at a time, with no hints. Use\nthe file's explanation after each answer. Score exact answers as `N\u002FM`.\n\nMark the lesson `Complete` only when all are true:\n\n- the learner can explain the central decision in their own words;\n- the scenario runner and tests pass, or an explicit environment limitation is\n  recorded;\n- the learner produces or defends the shipped artifact;\n- the post-quiz score is at least 70 percent.\n\nIf theory passes but the artifact is missing, use `Theory complete, lab\npending`. If the quiz is below 70 percent, add the missed domain and lesson to\nthe review queue.\n\nUpdate `MCPA-CERTIFICATION.md` with the score, evidence path, note, and next\nroute lesson. Preserve track order and prerequisite order.\n\n## Assessment mode\n\nUse the exact original assessment JSON declared by the `mcpa-f` track. Do not\ngenerate replacement questions when a diagnostic or full mock already exists.\n\n1. State the question count and declared time limit. If the harness cannot\n   enforce time, record the attempt as untimed.\n2. Present one question at a time with lettered options. For `multiple`, say\n   `Select all that apply` and accept a set of letters.\n3. Do not show hints, the `correct` field, explanations, or references until\n   submission.\n4. Score by exact set equality. Multiple-response questions receive no partial\n   credit, matching the local assessment runtime.\n5. Report raw percentage and per-domain results. Say explicitly that this is\n   not an official MCPA score, that the official item count and passing score\n   are not published, and that practice results cannot predict an official\n   outcome.\n6. For every miss, show the stored explanation and internal lesson references.\n   Add weak domains and referenced lesson paths to the review queue.\n7. Append the attempt to `MCPA-CERTIFICATION.md` without changing old rows.\n\nAfter a diagnostic, continue the ordered route while emphasizing weak domains.\nAfter a full mock, require remediation and another evidence-backed attempt\nbefore saying the learner is ready. Never claim that a learner will pass.\n\nThe track declares three full mocks with different emphasis: operational\nscenarios, wire-level messages, and design and security trade-offs. Use a\nmock the learner has not attempted for each retake, so a second score\nmeasures readiness rather than recall of the first attempt.\n\n## Capstone boundaries\n\nRequire the track's capstone artifact, `33-mcpa-capstone-readiness`, and run\nits validator. A completed reference packet is an example, not proof that the\nlearner built or can defend one.\n\nAll MCPA labs, including the capstone, are offline standard-library MCP\nmocks. None of them need an API key or network access, and there is no live\nAPI wire mode to gate: this curriculum stays fully local and credential-free\nby design. The capstone integrates discovery with cache hints, stateless\nrequests, schema validation with tool execution errors, a multi round-trip\nconsent request with protected `requestState`, a task for long work, HTTP\nheaders, OAuth audience validation, trace context, and an audit chain into\none exchange; treat its validator as the qualifying bar before calling a\nlearner capstone-ready.\n\n## Close each session\n\nEnd with four compact facts:\n\n- what decision the learner can now defend;\n- lab and artifact verification state;\n- quiz score or assessment domain result;\n- the exact next lesson path and `\u002Fmcpa-certification` to resume.\n",{"name":5,"description":7},"main","fe6c657dfb8d02cc898fcee7d4cfbf663aae1416",".claude\u002Fskills\u002Fmcpa-certification",13971,"https:\u002F\u002Fgithub.com\u002Frohitg00\u002Fai-engineering-from-scratch","https:\u002F\u002Faiengineeringfromscratch.com","https:\u002F\u002Fgithub.com\u002Frohitg00","Engineer | DevRel | GDE | CNCF, AAIF, Claude, Devin, PE Ambassador | Docker Captain | AWS CB | Ex - iii, Cloudera, Solo.io, Cerbos, Oracle, Reliance Jio","2026-11-11 20:45:16",{"source":8,"skillName":5,"commands":68,"prompt":78,"zipAvailable":79},[69,72,75],{"tool":70,"command":71},"npx","npx skills add rohitg00\u002Fai-engineering-from-scratch --skill mcpa-certification",{"tool":73,"command":74},"bunx","bunx skills add rohitg00\u002Fai-engineering-from-scratch --skill mcpa-certification",{"tool":76,"command":77},"pnpm","pnpm dlx skills add rohitg00\u002Fai-engineering-from-scratch --skill mcpa-certification","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Frohitg00\u002Fai-engineering-from-scratch\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fmcpa-certification\u002FSKILL.md",true,[81],{"path":82,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":85,"sourceHtmlUrl":86},"agents\u002Fopenai.yaml","REFERENCE","参考文档",233,"https:\u002F\u002Fgithub.com\u002Frohitg00\u002Fai-engineering-from-scratch\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fmcpa-certification\u002Fagents\u002Fopenai.yaml",[88,123,150,177,185,206],{"skillNo":89,"name":90,"nameZh":6,"description":91,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":92,"categories":93,"keywords":94,"publishedAt":53},"01M6ERNQB1QMAD1FH5Z5ASYHXZ","write-manual","Writes a long technical manual that explains one subject at one pinned version, from its purpose to each request and response. Every listing comes from an offline capture, every claim traces to a ranked source, and an audit must report TOTAL 0. Use it for \"write a manual\", \"write a 101 manual for \u003Csubject>\", \"manual.json\", \"add a manual section\", \"build a capture kit\", \"audit the manual\", or \"pin a spec version and document it\".","https:\u002F\u002Fgithub.com\u002Frohitg00\u002Fai-engineering-from-scratch\u002Fblob\u002Fmain\u002Fskills\u002Fwrite-manual\u002FSKILL.md",[],[95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122],"write","write manual","manual","technical-writing","claim","writing","documentation","audit","offline","add","long","technical","use","document","pin","version","build","manuals","specifications","json","report","kit","listing","request","at","source","for","section",{"skillNo":124,"name":125,"nameZh":6,"description":126,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":127,"categories":128,"keywords":132,"publishedAt":53},"01M6ERNKG9FZ3WGJ87B975SHW5","start-learning","One-time onboarding for the AI Engineering from Scratch curriculum (542 lessons, 20 phases). Interviews the learner, runs the placement quiz, and writes LEARNING.md, a persistent study plan the learn skill drives. Trigger phrases: \"start learning\", \"set up the course\", \"begin the curriculum\", \"onboard me\", \"create my learning plan\"","https:\u002F\u002Fgithub.com\u002Frohitg00\u002Fai-engineering-from-scratch\u002Fblob\u002Fmain\u002Fskills\u002Fstart-learning\u002FSKILL.md",[129,130,131],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":24,"categoryName":25,"taxonomyType":26,"taxonomyTypeDesc":27},{"categoryNo":29,"categoryName":30,"taxonomyType":26,"taxonomyTypeDesc":27},[133,134,135,136,137,138,139,49,51,140,141,142,143,144,145,146,147,148,149,121],"start","learning","start learning","SET","ai-engineering","time","up","create","plan","me","course","learner","curriculum","study","trigger","interviews","my",{"skillNo":151,"name":152,"nameZh":6,"description":153,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":154,"categories":155,"keywords":156,"publishedAt":53},"01M6ERNECV0WVSTXHX8KRF9MBJ","motion-figure","Builds figures that move or respond to the reader, in three tiers: SMIL animations and slider widgets inside lessons, interactive mechanism figures that show the named parts of a real system with a computed verdict, and ordered dither bands in the course palette. Triggers: \"animated figure\", \"add a slider widget\", \"interactive figure\", \"show how this system works\", \"make this diagram move\", \"dither masthead\", \"mechanism figure\", \"figure fence\".","https:\u002F\u002Fgithub.com\u002Frohitg00\u002Fai-engineering-from-scratch\u002Fblob\u002Fmain\u002Fskills\u002Fmotion-figure\u002FSKILL.md",[],[157,158,159,160,161,162,163,164,165,166,104,167,168,143,169,170,171,172,173,174,175,176],"motion","motion figure","Animation","show","move","respond","palette","diagram","widgets","how","make","figures","SVG","three","system","triggers","interactive","with","animations","lessons",{"skillNo":178,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":179,"categories":180,"keywords":184,"publishedAt":53},"01M6ERNAC0DQ8ER3A99VQBXNNZ","https:\u002F\u002Fgithub.com\u002Frohitg00\u002Fai-engineering-from-scratch\u002Fblob\u002Fmain\u002Fskills\u002Fmcpa-certification\u002FSKILL.md",[181,182,183],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":24,"categoryName":25,"taxonomyType":26,"taxonomyTypeDesc":27},{"categoryNo":29,"categoryName":30,"taxonomyType":26,"taxonomyTypeDesc":27},[32,33,42,41,46,38,37,49,52,48,44,51,36,40,50,34,47,39,45,43,35],{"skillNo":186,"name":187,"nameZh":6,"description":188,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":189,"categories":190,"keywords":192,"publishedAt":53},"01M6ERN5TAAAJ7FE9N86SX6M2M","lesson-screen","Opens a lesson screen in the browser next to the terminal while a course tutor teaches. It shows the lesson's registered figures, code traces with real values, and clickable predictions. It also builds a figure for the lesson on the fly with the course figure skills and any figure skill the host has installed: a blueprint, a mechanism, an isometric machine, or a 3D model. Clicks return to the tutor as events. Trigger phrases: \"open the lesson screen\", \"show me this visually\", \"show this in 3D\", \"draw the architecture\", \"visualize this lesson\", \"build a figure for this lesson\", \"lesson screen\".","https:\u002F\u002Fgithub.com\u002Frohitg00\u002Fai-engineering-from-scratch\u002Fblob\u002Fmain\u002Fskills\u002Flesson-screen\u002FSKILL.md",[191],{"categoryNo":29,"categoryName":30,"taxonomyType":26,"taxonomyTypeDesc":27},[42,193,194,160,195,46,196,197,198,199,200,48,201,202,142,40,203,204,205,168],"screen","lesson screen","3D","open","host","Blueprint","predictions","show me","architecture","browser","terminal","fly","events",{"skillNo":207,"name":49,"nameZh":6,"description":208,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":209,"categories":210,"keywords":214,"publishedAt":53},"01M6ERN1HS8HW1TRJVX5P7SPY0","Interactive lesson tutor for the AI Engineering from Scratch curriculum. Reads LEARNING.md, fetches the next lesson, teaches it section by section in the terminal, quizzes at the end, and records progress. Works cloned or entirely over raw.githubusercontent.com — no setup required. Trigger phrases: \"next lesson\", \"teach me\", \"continue the course\", \"let's learn\", \"resume learning\"","https:\u002F\u002Fgithub.com\u002Frohitg00\u002Fai-engineering-from-scratch\u002Fblob\u002Fmain\u002Fskills\u002Flearn\u002FSKILL.md",[211,212,213],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":24,"categoryName":25,"taxonomyType":26,"taxonomyTypeDesc":27},{"categoryNo":29,"categoryName":30,"taxonomyType":26,"taxonomyTypeDesc":27},[49,42,137,215,51,142,216,40,203,143,145,147,217,218,134,173,219,220,119,121,122,221],"end","progress","records","continue","interactive-learning","From Scratch","scratch"]