[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6ERNQB1QMAD1FH5Z5ASYHXZ":3,"skill-same:01M6ERNQB1QMAD1FH5Z5ASYHXZ":103},{"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":18,"publishedAt":47,"linkOnly":48,"markdownContent":49,"markdownBody":50,"frontMatter":51,"refName":54,"commitSha":55,"skillDirectory":56,"forksCount":57,"repositoryHtmlUrl":58,"repositoryHomepageUrl":59,"ownerHtmlUrl":60,"ownerBlogUrl":6,"ownerDescription":61,"updatedAt":62,"install":63,"resources":76},"01M6ERNQB1QMAD1FH5Z5ASYHXZ","write-manual",null,"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\".","rohitg00\u002Fai-engineering-from-scratch","rohitg00","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F48523873?v=4","01M6ERFX7W55NRHW3AV85T2MM8","Rohit Ghumare","01M6ERFXCHT482XQFVY40TM2FN",78316,"MIT","https:\u002F\u002Fgithub.com\u002Frohitg00\u002Fai-engineering-from-scratch\u002Fblob\u002Fmain\u002Fskills\u002Fwrite-manual\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],"write","manual","write manual","long","listing","section","request","source","for","at","kit","specifications","manuals","technical-writing","add","writing","claim","build","document","version","use","technical","pin","json","audit","offline","report","documentation","2026-11-10 10:12:30",false,"---\nname: using-git-worktrees\ndescription: Use when starting feature work that needs an isolated workspace (git worktree), or before executing an implementation plan\n---\n\n# Using Git Worktrees\n\nPut the work in an isolated workspace and **write down where it is**. A\nworktree nobody recorded is a worktree the next turn loses — and lost\nworkspaces are how commits end up on main.\n\n**One mechanism:** the native `EnterWorktree` tool. It creates the worktree,\nswitches this session into it, and lets the harness manage cleanup. Reaching\nfor `git worktree add` while that tool exists creates a workspace the harness\ncannot see — that is the mistake this skill exists to prevent. Invoking this\nskill *is* the project instruction `EnterWorktree` asks for.\n\n## Step 0 — already isolated?\n\n```bash\ngit rev-parse --git-dir --git-common-dir --show-toplevel\ngit branch --show-current\ngit rev-parse --show-superproject-working-tree   # non-empty ⇒ submodule, not a worktree\n```\n\nDifferent git-dir and git-common-dir (and not a submodule) means you are\nalready in a linked worktree. Do not create another — record it (Step 2) and\ngo to Step 3.\n\nOtherwise you are in a normal checkout. CLAUDE.md workflow rule 5 — a run is\nimplemented in a worktree — is the consent; do not stop to ask for it\nagain. Ask only if the user has said otherwise in this session, and if they\ndecline isolation, work in place: create a feature branch first if HEAD is on\nmain\u002Fmaster, then record it with Step 2's block anyway — `worktree` pointing at\nthis checkout. Skipping the record leaves the run without a workspace, which\nbreaks resuming *and* blocks `stage=finish` later.\n\n## Step 1 — create it\n\n**Before creating it, make sure the spec and plan are committed.** The worktree\nbranches from your current local HEAD (`worktree.baseRef: \"head\"` in\nsettings.json — with the harness default `\"fresh\"` it would branch from\n`origin\u002F\u003Cdefault>` and contain neither). Uncommitted, they are absent from the\nbranch the run builds on and from its history, and the spec is not there\nfor anyone reading the branch later.\n\n**Also before creating it, confirm the worktree directory is ignored** — in the\nmain checkout, which is where an unignored worktree directory shows up in `git\nstatus` and where `git add -A` would stage it as an embedded repository. Run\nthis in the main checkout, as is:\n\n```bash\nmkdir -p .claude\u002Fworktrees && git check-ignore -q .claude\u002Fworktrees || { echo '.claude\u002Fworktrees\u002F' >> .gitignore && git add .gitignore && git commit -m \"chore: ignore worktrees\"; }\n```\n\nThe `mkdir` makes the directory exist, so `check-ignore` answers correctly; the\ncommit lands on HEAD before the branch is cut, so the worktree contains it.\n\nCall `EnterWorktree` with a name derived from the work (`feat\u002Fjson-export`). It\ncreates the worktree under `.claude\u002Fworktrees\u002F`, switches this session into it,\nand lets the harness handle cleanup.\n\nFallback, only if `EnterWorktree` is unavailable: `git worktree add\n.worktrees\u002F\u003Cbranch> -b \u003Cbranch>` (same ignore check), and then\n`EnterWorktree` with `path` pointing at it — that is what moves this session's\ncwd into the worktree. Skip that and every subagent inherits the main\ncheckout's directory while the run believes it is isolated. If creation fails\non a sandbox permission error, say so and work in place.\n\n## Step 2 — record the workspace\n\n```bash\n~\u002F.claude\u002Fhooks\u002Fflow-state set stage=isolate worktree=. branch=. base=HEAD\n```\n\n`flow-state` resolves the three literals itself, from the current directory:\n`worktree=.` is the toplevel, `branch=.` the current branch, `base=HEAD` the\nSHA. Run it from inside the worktree.\n\nIf that prints \"no run state\", nobody opened the run: `flow-state init\n\u003Ctask-slug>` and re-run the block. An unrecorded workspace is one a resumed\nsession cannot find.\n\nRecording is what turns the workspace from something remembered into something\nthe tooling can act on: from here on every subagent is told which tree to read\n(a SubagentStart hook injects it), a second workspace is refused,\nand \"kontynuuj\" in a fresh session finds the tree again. `base` is the branch's\nstarting commit, which the whole-branch review reads instead of guessing a merge\nbase.\n\nOn a detached HEAD, record the worktree and note that a branch has to be created\nat finish time.\n\n## Step 3 — setup and clean baseline\n\nInstall what the project needs with its own package manager, then run the test\nsuite and the build. Tests alone can pass on a tree that does not build: a\nconfig that resolves from the main checkout (a `tsconfig.json` `extends`) needs\nthe main checkout's dependencies installed too.\n\nTests must be green *before* your changes exist — otherwise you cannot tell\nyour bugs from the ones you inherited. If they fail, report the failures and\nask whether to proceed or investigate.\n\nRecord that it happened, so a resumed run does not pay for the install and the\nfull suite twice — and so nothing infers \"baseline done\" from the workspace\nbeing recorded, which happens one step earlier:\n\n```bash\n~\u002F.claude\u002Fhooks\u002Fflow-state task 0 done \"baseline green: \u003Cresult>\"\n```\n\nReport: worktree path, branch, test result, and what you are about to\nimplement.\n\n## Never\n\n- Create a worktree when Step 0 already found one — including any subagent\n  creating its own. Subagents read the tree they are given.\n- Use `git worktree add` when `EnterWorktree` is available.\n- Start implementation on main\u002Fmaster without explicit consent.\n- Skip the baseline run, or proceed past failing baseline tests silently.\n","# Using Git Worktrees\n\nPut the work in an isolated workspace and **write down where it is**. A\nworktree nobody recorded is a worktree the next turn loses — and lost\nworkspaces are how commits end up on main.\n\n**One mechanism:** the native `EnterWorktree` tool. It creates the worktree,\nswitches this session into it, and lets the harness manage cleanup. Reaching\nfor `git worktree add` while that tool exists creates a workspace the harness\ncannot see — that is the mistake this skill exists to prevent. Invoking this\nskill *is* the project instruction `EnterWorktree` asks for.\n\n## Step 0 — already isolated?\n\n```bash\ngit rev-parse --git-dir --git-common-dir --show-toplevel\ngit branch --show-current\ngit rev-parse --show-superproject-working-tree   # non-empty ⇒ submodule, not a worktree\n```\n\nDifferent git-dir and git-common-dir (and not a submodule) means you are\nalready in a linked worktree. Do not create another — record it (Step 2) and\ngo to Step 3.\n\nOtherwise you are in a normal checkout. CLAUDE.md workflow rule 5 — a run is\nimplemented in a worktree — is the consent; do not stop to ask for it\nagain. Ask only if the user has said otherwise in this session, and if they\ndecline isolation, work in place: create a feature branch first if HEAD is on\nmain\u002Fmaster, then record it with Step 2's block anyway — `worktree` pointing at\nthis checkout. Skipping the record leaves the run without a workspace, which\nbreaks resuming *and* blocks `stage=finish` later.\n\n## Step 1 — create it\n\n**Before creating it, make sure the spec and plan are committed.** The worktree\nbranches from your current local HEAD (`worktree.baseRef: \"head\"` in\nsettings.json — with the harness default `\"fresh\"` it would branch from\n`origin\u002F\u003Cdefault>` and contain neither). Uncommitted, they are absent from the\nbranch the run builds on and from its history, and the spec is not there\nfor anyone reading the branch later.\n\n**Also before creating it, confirm the worktree directory is ignored** — in the\nmain checkout, which is where an unignored worktree directory shows up in `git\nstatus` and where `git add -A` would stage it as an embedded repository. Run\nthis in the main checkout, as is:\n\n```bash\nmkdir -p .claude\u002Fworktrees && git check-ignore -q .claude\u002Fworktrees || { echo '.claude\u002Fworktrees\u002F' >> .gitignore && git add .gitignore && git commit -m \"chore: ignore worktrees\"; }\n```\n\nThe `mkdir` makes the directory exist, so `check-ignore` answers correctly; the\ncommit lands on HEAD before the branch is cut, so the worktree contains it.\n\nCall `EnterWorktree` with a name derived from the work (`feat\u002Fjson-export`). It\ncreates the worktree under `.claude\u002Fworktrees\u002F`, switches this session into it,\nand lets the harness handle cleanup.\n\nFallback, only if `EnterWorktree` is unavailable: `git worktree add\n.worktrees\u002F\u003Cbranch> -b \u003Cbranch>` (same ignore check), and then\n`EnterWorktree` with `path` pointing at it — that is what moves this session's\ncwd into the worktree. Skip that and every subagent inherits the main\ncheckout's directory while the run believes it is isolated. If creation fails\non a sandbox permission error, say so and work in place.\n\n## Step 2 — record the workspace\n\n```bash\n~\u002F.claude\u002Fhooks\u002Fflow-state set stage=isolate worktree=. branch=. base=HEAD\n```\n\n`flow-state` resolves the three literals itself, from the current directory:\n`worktree=.` is the toplevel, `branch=.` the current branch, `base=HEAD` the\nSHA. Run it from inside the worktree.\n\nIf that prints \"no run state\", nobody opened the run: `flow-state init\n\u003Ctask-slug>` and re-run the block. An unrecorded workspace is one a resumed\nsession cannot find.\n\nRecording is what turns the workspace from something remembered into something\nthe tooling can act on: from here on every subagent is told which tree to read\n(a SubagentStart hook injects it), a second workspace is refused,\nand \"kontynuuj\" in a fresh session finds the tree again. `base` is the branch's\nstarting commit, which the whole-branch review reads instead of guessing a merge\nbase.\n\nOn a detached HEAD, record the worktree and note that a branch has to be created\nat finish time.\n\n## Step 3 — setup and clean baseline\n\nInstall what the project needs with its own package manager, then run the test\nsuite and the build. Tests alone can pass on a tree that does not build: a\nconfig that resolves from the main checkout (a `tsconfig.json` `extends`) needs\nthe main checkout's dependencies installed too.\n\nTests must be green *before* your changes exist — otherwise you cannot tell\nyour bugs from the ones you inherited. If they fail, report the failures and\nask whether to proceed or investigate.\n\nRecord that it happened, so a resumed run does not pay for the install and the\nfull suite twice — and so nothing infers \"baseline done\" from the workspace\nbeing recorded, which happens one step earlier:\n\n```bash\n~\u002F.claude\u002Fhooks\u002Fflow-state task 0 done \"baseline green: \u003Cresult>\"\n```\n\nReport: worktree path, branch, test result, and what you are about to\nimplement.\n\n## Never\n\n- Create a worktree when Step 0 already found one — including any subagent\n  creating its own. Subagents read the tree they are given.\n- Use `git worktree add` when `EnterWorktree` is available.\n- Start implementation on main\u002Fmaster without explicit consent.\n- Skip the baseline run, or proceed past failing baseline tests silently.\n",{"name":52,"description":53},"using-git-worktrees","Use when starting feature work that needs an isolated workspace (git worktree), or before executing an implementation plan","main","a798b7e54451c55d06dfee7b423f8bc7b6fab28d","skills\u002Fwrite-manual",13936,"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-10 13:24:29",{"source":8,"skillName":52,"commands":64,"prompt":74,"zipAvailable":75},[65,68,71],{"tool":66,"command":67},"npx","npx skills add rohitg00\u002Fai-engineering-from-scratch --skill using-git-worktrees",{"tool":69,"command":70},"bunx","bunx skills add rohitg00\u002Fai-engineering-from-scratch --skill using-git-worktrees",{"tool":72,"command":73},"pnpm","pnpm dlx skills add rohitg00\u002Fai-engineering-from-scratch --skill using-git-worktrees","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Frohitg00\u002Fai-engineering-from-scratch\u002Fblob\u002Fmain\u002Fskills\u002Fwrite-manual\u002FSKILL.md",true,[77,83,87,91,95,99],{"path":78,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":81,"sourceHtmlUrl":82},"references\u002Faudit.md","REFERENCE","参考文档",4322,"https:\u002F\u002Fgithub.com\u002Frohitg00\u002Fai-engineering-from-scratch\u002Fblob\u002Fmain\u002Fskills\u002Fwrite-manual\u002Freferences\u002Faudit.md",{"path":84,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":85,"sourceHtmlUrl":86},"references\u002Fcapture-kit.md",3417,"https:\u002F\u002Fgithub.com\u002Frohitg00\u002Fai-engineering-from-scratch\u002Fblob\u002Fmain\u002Fskills\u002Fwrite-manual\u002Freferences\u002Fcapture-kit.md",{"path":88,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":89,"sourceHtmlUrl":90},"references\u002Fmanual-json.md",6216,"https:\u002F\u002Fgithub.com\u002Frohitg00\u002Fai-engineering-from-scratch\u002Fblob\u002Fmain\u002Fskills\u002Fwrite-manual\u002Freferences\u002Fmanual-json.md",{"path":92,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":93,"sourceHtmlUrl":94},"references\u002Fprose-rules.md",3594,"https:\u002F\u002Fgithub.com\u002Frohitg00\u002Fai-engineering-from-scratch\u002Fblob\u002Fmain\u002Fskills\u002Fwrite-manual\u002Freferences\u002Fprose-rules.md",{"path":96,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":97,"sourceHtmlUrl":98},"references\u002Fresearch-and-sources.md",4926,"https:\u002F\u002Fgithub.com\u002Frohitg00\u002Fai-engineering-from-scratch\u002Fblob\u002Fmain\u002Fskills\u002Fwrite-manual\u002Freferences\u002Fresearch-and-sources.md",{"path":100,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":101,"sourceHtmlUrl":102},"references\u002Fsection-template.md",3759,"https:\u002F\u002Fgithub.com\u002Frohitg00\u002Fai-engineering-from-scratch\u002Fblob\u002Fmain\u002Fskills\u002Fwrite-manual\u002Freferences\u002Fsection-template.md",[104,143,170,199,220,236],{"skillNo":105,"name":106,"nameZh":6,"description":107,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":108,"categories":109,"keywords":123,"publishedAt":47},"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",[110,115,120],{"categoryNo":111,"categoryName":112,"taxonomyType":113,"taxonomyTypeDesc":114},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",{"categoryNo":116,"categoryName":117,"taxonomyType":118,"taxonomyTypeDesc":119},"01JBSEEDCAT000000000000038","人力资源","PROFESSION","适用职业",{"categoryNo":121,"categoryName":122,"taxonomyType":118,"taxonomyTypeDesc":119},"01JBSEEDCAT000000000000039","教师与教育",[124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,27],"start","learning","start learning","SET","ai-engineering","time","up","learn","ai engineering","create","plan","me","course","learner","curriculum","study","trigger","interviews","my",{"skillNo":144,"name":145,"nameZh":6,"description":146,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":147,"categories":148,"keywords":149,"publishedAt":47},"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",[],[150,151,152,153,154,155,156,157,158,159,33,160,161,136,162,163,164,165,166,167,168,169],"motion","motion figure","Animation","show","move","respond","palette","diagram","widgets","how","make","figures","SVG","three","system","triggers","interactive","with","animations","lessons",{"skillNo":171,"name":172,"nameZh":6,"description":173,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":174,"categories":175,"keywords":179,"publishedAt":47},"01M6ERNAC0DQ8ER3A99VQBXNNZ","mcpa-certification","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.","https:\u002F\u002Fgithub.com\u002Frohitg00\u002Fai-engineering-from-scratch\u002Fblob\u002Fmain\u002Fskills\u002Fmcpa-certification\u002FSKILL.md",[176,177,178],{"categoryNo":111,"categoryName":112,"taxonomyType":113,"taxonomyTypeDesc":114},{"categoryNo":116,"categoryName":117,"taxonomyType":118,"taxonomyTypeDesc":119},{"categoryNo":121,"categoryName":122,"taxonomyType":118,"taxonomyTypeDesc":119},[180,181,182,183,184,185,186,131,187,188,189,132,190,191,192,193,194,195,196,197,198],"mcpa certification","certification","lesson","practical","model","domains","exam","workflow","code","model context protocol","native","next","run","take","chatgpt","full","context","ai-native","when",{"skillNo":200,"name":201,"nameZh":6,"description":202,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":203,"categories":204,"keywords":206,"publishedAt":47},"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",[205],{"categoryNo":121,"categoryName":122,"taxonomyType":118,"taxonomyTypeDesc":119},[182,207,208,153,209,184,210,211,212,213,214,188,215,216,135,191,217,218,219,161],"screen","lesson screen","3D","open","host","Blueprint","predictions","show me","architecture","browser","terminal","fly","events",{"skillNo":221,"name":131,"nameZh":6,"description":222,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":223,"categories":224,"keywords":228,"publishedAt":47},"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",[225,226,227],{"categoryNo":111,"categoryName":112,"taxonomyType":113,"taxonomyTypeDesc":114},{"categoryNo":116,"categoryName":117,"taxonomyType":118,"taxonomyTypeDesc":119},{"categoryNo":121,"categoryName":122,"taxonomyType":118,"taxonomyTypeDesc":119},[131,182,128,229,132,135,230,191,217,136,138,140,231,232,125,166,233,234,28,27,24,235],"end","progress","records","continue","interactive-learning","From Scratch","scratch",{"skillNo":237,"name":238,"nameZh":6,"description":239,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":240,"categories":241,"keywords":243,"publishedAt":47},"01M6ERMX6FFWGB9NPDN8FV4QYG","learn-reverse-engineering","Focused interactive tutor for the Reverse Engineering path in AI Engineering from Scratch. Start or resume this route when a learner wants to read a compiled program: file formats, disassembly, control flow, lifting, evidence, proof, calling conventions, compiler idioms, linking, types, debugging, bytecode, diffing, symbolic execution, and AI-assisted analysis. Teaches one lesson per invocation and records evidence in REVERSE-ENGINEERING-LEARNING.md.","https:\u002F\u002Fgithub.com\u002Frohitg00\u002Fai-engineering-from-scratch\u002Fblob\u002Fmain\u002Fskills\u002Flearn-reverse-engineering\u002FSKILL.md",[242],{"categoryNo":121,"categoryName":122,"taxonomyType":118,"taxonomyTypeDesc":119},[131,244,245,246,247,182,248,249,250,251,132,252,253,254,124,255,256,137,231,125,257,258,198,259,260,261,262],"learn reverse engineering","engineering","reverse","reverse engineering","types","reverse-engineering","debugging","analysis","route","read","flow","disassembly","evidence","execution","calling","program","linking","formats","path"]