[{"data":1,"prerenderedAt":860},["ShallowReactive",2],{"navigation_docs":3,"-guides-add-review-agents":270,"-guides-add-review-agents-surround":855},[4,28,51,110,243],{"title":5,"path":6,"stem":7,"children":8},"Get started","\u002Fget-started","1.get-started",[9,12,16,20,24],{"title":10,"path":6,"stem":11},"Overview","1.get-started\u002Findex",{"title":13,"path":14,"stem":15},"Why Kraft","\u002Fget-started\u002Fwhy-kraft","1.get-started\u002F0.why-kraft",{"title":17,"path":18,"stem":19},"Install","\u002Fget-started\u002Finstall","1.get-started\u002F1.install",{"title":21,"path":22,"stem":23},"Your first work item","\u002Fget-started\u002Ffirst-work-item","1.get-started\u002F2.first-work-item",{"title":25,"path":26,"stem":27},"Troubleshooting and FAQ","\u002Fget-started\u002Ftroubleshooting","1.get-started\u002F3.troubleshooting",{"title":29,"path":30,"stem":31,"children":32},"Concepts","\u002Fconcepts","2.concepts",[33,35,39,43,47],{"title":10,"path":30,"stem":34},"2.concepts\u002Findex",{"title":36,"path":37,"stem":38},"Vocabulary","\u002Fconcepts\u002Fvocabulary","2.concepts\u002F1.vocabulary",{"title":40,"path":41,"stem":42},"How a work item runs","\u002Fconcepts\u002Fhow-a-work-item-runs","2.concepts\u002F2.how-a-work-item-runs",{"title":44,"path":45,"stem":46},"Caps and budgets","\u002Fconcepts\u002Fcaps-and-budgets","2.concepts\u002F3.caps-and-budgets",{"title":48,"path":49,"stem":50},"Why a permission gate","\u002Fconcepts\u002Fpermission-gate","2.concepts\u002F4.permission-gate",{"title":52,"path":53,"stem":54,"children":55},"Guides","\u002Fguides","3.guides",[56,58,62,66,70,74,78,82,86,90,94,98,102,106],{"title":10,"path":53,"stem":57},"3.guides\u002Findex",{"title":59,"path":60,"stem":61},"Use Kraft from your agent","\u002Fguides\u002Fagent-integration","3.guides\u002F01.agent-integration",{"title":63,"path":64,"stem":65},"Kraft Lite","\u002Fguides\u002Fkraft-lite","3.guides\u002F02.kraft-lite",{"title":67,"path":68,"stem":69},"Remote access","\u002Fguides\u002Fremote-access","3.guides\u002F03.remote-access",{"title":71,"path":72,"stem":73},"Add or override a harness","\u002Fguides\u002Fadding-a-harness","3.guides\u002F04.adding-a-harness",{"title":75,"path":76,"stem":77},"Schedule or webhook work","\u002Fguides\u002Fschedule-and-webhook-work","3.guides\u002F05.schedule-and-webhook-work",{"title":79,"path":80,"stem":81},"Add a security review or a gate reviewer","\u002Fguides\u002Fadd-review-agents","3.guides\u002F06.add-review-agents",{"title":83,"path":84,"stem":85},"Kraft for VS Code","\u002Fguides\u002Fvscode","3.guides\u002F07.vscode",{"title":87,"path":88,"stem":89},"Reviewing a change","\u002Fguides\u002Freview-a-change","3.guides\u002F08.review-a-change",{"title":91,"path":92,"stem":93},"Write your own chain","\u002Fguides\u002Fwrite-your-own-chain","3.guides\u002F09.write-your-own-chain",{"title":95,"path":96,"stem":97},"Switch a harness","\u002Fguides\u002Fswitch-harness","3.guides\u002F10.switch-harness",{"title":99,"path":100,"stem":101},"Upgrade your templates","\u002Fguides\u002Fupgrading-templates","3.guides\u002F11.upgrading-templates",{"title":103,"path":104,"stem":105},"Operations","\u002Fguides\u002Foperations","3.guides\u002F12.operations",{"title":107,"path":108,"stem":109},"Worker Kit","\u002Fguides\u002Fworker-kit","3.guides\u002F13.worker-kit",{"title":111,"path":112,"stem":113,"children":114},"Reference","\u002Freference","4.reference",[115,117,139,183,201,205,227,231,235,239],{"title":10,"path":112,"stem":116},"4.reference\u002Findex",{"title":118,"path":119,"stem":120,"children":121},"CLI","\u002Freference\u002Fcli","4.reference\u002F1.cli\u002Findex",[122,123,127,131,135],{"title":10,"path":119,"stem":120},{"title":124,"path":125,"stem":126},"Item verbs","\u002Freference\u002Fcli\u002Fitem","4.reference\u002F1.cli\u002F2.item",{"title":128,"path":129,"stem":130},"View verbs","\u002Freference\u002Fcli\u002Fview","4.reference\u002F1.cli\u002F3.view",{"title":132,"path":133,"stem":134},"Repo verbs","\u002Freference\u002Fcli\u002Frepo","4.reference\u002F1.cli\u002F4.repo",{"title":136,"path":137,"stem":138},"Admin verbs","\u002Freference\u002Fcli\u002Fadmin","4.reference\u002F1.cli\u002F5.admin",{"title":140,"path":141,"stem":142,"children":143},"Configuration","\u002Freference\u002Fconfiguration","4.reference\u002F2.configuration\u002Findex",[144,145,155,159,163,167,171,175,179],{"title":10,"path":141,"stem":142},{"title":146,"path":147,"stem":148,"children":149},"Repos","\u002Freference\u002Fconfiguration\u002Frepos","4.reference\u002F2.configuration\u002F2.repos\u002Findex",[150,151],{"title":10,"path":147,"stem":148},{"title":152,"path":153,"stem":154},"Workspaces","\u002Freference\u002Fconfiguration\u002Frepos\u002Fworkspaces","4.reference\u002F2.configuration\u002F2.repos\u002F3.workspaces",{"title":156,"path":157,"stem":158},"Policy","\u002Freference\u002Fconfiguration\u002Fpolicy","4.reference\u002F2.configuration\u002F3.policy",{"title":160,"path":161,"stem":162},"Library and chains","\u002Freference\u002Fconfiguration\u002Flibrary-and-chains","4.reference\u002F2.configuration\u002F4.library-and-chains",{"title":164,"path":165,"stem":166},"Harnesses file","\u002Freference\u002Fconfiguration\u002Fharnesses-file","4.reference\u002F2.configuration\u002F5.harnesses-file",{"title":168,"path":169,"stem":170},"Access","\u002Freference\u002Fconfiguration\u002Faccess","4.reference\u002F2.configuration\u002F6.access",{"title":172,"path":173,"stem":174},"Intake","\u002Freference\u002Fconfiguration\u002Fintake","4.reference\u002F2.configuration\u002F7.intake",{"title":176,"path":177,"stem":178},"Sandbox host","\u002Freference\u002Fconfiguration\u002Fsandbox","4.reference\u002F2.configuration\u002F8.sandbox",{"title":180,"path":181,"stem":182},"Environment variables","\u002Freference\u002Fconfiguration\u002Fenvironment-variables","4.reference\u002F2.configuration\u002F9.environment-variables",{"title":184,"path":185,"stem":186,"children":187},"Chain nodes","\u002Freference\u002Fchain-nodes","4.reference\u002F3.chain-nodes\u002Findex",[188,189,193,197],{"title":10,"path":185,"stem":186},{"title":190,"path":191,"stem":192},"Subprocess tasks","\u002Freference\u002Fchain-nodes\u002Fsubprocess-tasks","4.reference\u002F3.chain-nodes\u002F2.subprocess-tasks",{"title":194,"path":195,"stem":196},"Fix loop and judge","\u002Freference\u002Fchain-nodes\u002Ffix-loop","4.reference\u002F3.chain-nodes\u002F3.fix-loop",{"title":198,"path":199,"stem":200},"Result file","\u002Freference\u002Fchain-nodes\u002Fresult-file","4.reference\u002F3.chain-nodes\u002F4.result-file",{"title":202,"path":203,"stem":204},"Permission gate","\u002Freference\u002Fpermissions","4.reference\u002F4.permissions",{"title":206,"path":207,"stem":208,"children":209},"Agent harnesses","\u002Freference\u002Fharnesses","4.reference\u002F5.harnesses\u002Findex",[210,211,215,219,223],{"title":10,"path":207,"stem":208},{"title":212,"path":213,"stem":214},"Unattended runs","\u002Freference\u002Fharnesses\u002Funattended-runs","4.reference\u002F5.harnesses\u002F2.unattended-runs",{"title":216,"path":217,"stem":218},"Agent profiles","\u002Freference\u002Fharnesses\u002Fagent-profiles","4.reference\u002F5.harnesses\u002F3.agent-profiles",{"title":220,"path":221,"stem":222},"Harness files","\u002Freference\u002Fharnesses\u002Fharness-files","4.reference\u002F5.harnesses\u002F4.harness-files",{"title":224,"path":225,"stem":226},"Fallback and escalation","\u002Freference\u002Fharnesses\u002Ffallback-and-escalation","4.reference\u002F5.harnesses\u002F5.fallback-and-escalation",{"title":228,"path":229,"stem":230},"Inbound triggers","\u002Freference\u002Ftriggers","4.reference\u002F6.triggers",{"title":232,"path":233,"stem":234},"HTTP API","\u002Freference\u002Fhttp-api","4.reference\u002F7.http-api",{"title":236,"path":237,"stem":238},"MCP tools","\u002Freference\u002Fmcp-tools","4.reference\u002F8.mcp-tools",{"title":240,"path":241,"stem":242},"Events","\u002Freference\u002Fevents","4.reference\u002F9.events",{"title":244,"path":245,"stem":246,"children":247},"Project","\u002Fproject","5.project",[248,250,254,258,262,266],{"title":10,"path":245,"stem":249},"5.project\u002Findex",{"title":251,"path":252,"stem":253},"Architecture","\u002Fproject\u002Farchitecture","5.project\u002F1.architecture",{"title":255,"path":256,"stem":257},"Contributing","\u002Fproject\u002Fcontributing","5.project\u002F2.contributing",{"title":259,"path":260,"stem":261},"Security","\u002Fproject\u002Fsecurity","5.project\u002F3.security",{"title":263,"path":264,"stem":265},"Data and privacy","\u002Fproject\u002Fdata-and-privacy","5.project\u002F4.data-and-privacy",{"title":267,"path":268,"stem":269},"Status and support","\u002Fproject\u002Fstatus-and-support","5.project\u002F5.status-and-support",{"id":271,"title":79,"body":272,"description":848,"extension":849,"links":850,"meta":851,"navigation":852,"path":80,"seo":853,"stem":81,"__hash__":854},"docs\u002F3.guides\u002F06.add-review-agents.md",{"type":273,"value":274,"toc":843},"minimark",[275,291,311,314,319,588,592,602,711,728,761,765,821,839],[276,277,278,279,283,284,287,288,290],"p",{},"Kraft ships two review skills that no shipped chain runs. This guide adds each\nto a copy of the ",[280,281,282],"code",{},"default"," chain. You need a running Kraft server. The keys used\nare in ",[285,286,184],"a",{"href":185}," and\n",[285,289,160],{"href":161},".",[292,293,294,305],"ul",{},[295,296,297,300,301,304],"li",{},[280,298,299],{},"kraft:security-review"," reviews a change that touches authentication,\nsessions, tokens, secrets or permission checks. It reports findings the way\n",[280,302,303],{},"kraft:code-review"," does, so they enter the same fix loop.",[295,306,307,310],{},[280,308,309],{},"kraft:gate-review"," reads the document a gate is about and reports a verdict,\nso a gate that needs no person stops reaching one. It never clears the gate\nitself.",[276,312,313],{},"Both are opt-in on purpose. A security pass costs an extra agent session per\nreview round on every item, and a gate reviewer decides whether a human sees a\ngate at all, so neither belongs in a chain you did not choose them for.",[315,316,318],"h2",{"id":317},"add-a-security-review-to-verification","Add a security review to verification",[320,321,322,428],"ol",{},[295,323,324,325,328,329,332,333],{},"Add the task to ",[280,326,327],{},"$KRAFT_HOME\u002Ftemplates\u002Flibrary.yaml",", under ",[280,330,331],{},"tasks:",":",[334,335,340],"pre",{"className":336,"code":337,"language":338,"meta":339,"style":339},"language-yaml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","security_review:\n  kind: agent\n  harness: claude\n  prompt: Review this work item's change for security defects.\n  skill: kraft:security-review\n  inputs: [review_package, carried_findings, previous_review]\n","yaml","",[280,341,342,355,367,378,389,400],{"__ignoreMap":339},[343,344,347,351],"span",{"class":345,"line":346},"line",1,[343,348,350],{"class":349},"swJcz","security_review",[343,352,354],{"class":353},"sMK4o",":\n",[343,356,358,361,363],{"class":345,"line":357},2,[343,359,360],{"class":349},"  kind",[343,362,332],{"class":353},[343,364,366],{"class":365},"sfazB"," agent\n",[343,368,370,373,375],{"class":345,"line":369},3,[343,371,372],{"class":349},"  harness",[343,374,332],{"class":353},[343,376,377],{"class":365}," claude\n",[343,379,381,384,386],{"class":345,"line":380},4,[343,382,383],{"class":349},"  prompt",[343,385,332],{"class":353},[343,387,388],{"class":365}," Review this work item's change for security defects.\n",[343,390,392,395,397],{"class":345,"line":391},5,[343,393,394],{"class":349},"  skill",[343,396,332],{"class":353},[343,398,399],{"class":365}," kraft:security-review\n",[343,401,403,406,408,411,414,417,420,422,425],{"class":345,"line":402},6,[343,404,405],{"class":349},"  inputs",[343,407,332],{"class":353},[343,409,410],{"class":353}," [",[343,412,413],{"class":365},"review_package",[343,415,416],{"class":353},",",[343,418,419],{"class":365}," carried_findings",[343,421,416],{"class":353},[343,423,424],{"class":365}," previous_review",[343,426,427],{"class":353},"]\n",[295,429,430,431,434,435,438,439,442,443,446,447,584,587],{},"Copy ",[280,432,433],{},"chains\u002Fdefault.yaml"," to ",[280,436,437],{},"chains\u002Freviewed.yaml",", change its ",[280,440,441],{},"id",", and\nreplace the ",[280,444,445],{},"verification"," node with one that runs the security review beside\nthe code review. Lists replace when a node extends, so write both steps out:",[334,448,450],{"className":336,"code":449,"language":338,"meta":339,"style":339},"- id: verification\n  extends: verification\n  steps:\n    - id: tests\n      tasks:\n        - id: test_changed_scopes\n          extends: verify_changed_scopes\n    - id: review\n      tasks:\n        - id: code_review\n          extends: code_review\n        - id: security_review\n          extends: security_review\n",[280,451,452,465,474,481,493,500,512,523,535,542,554,563,575],{"__ignoreMap":339},[343,453,454,457,460,462],{"class":345,"line":346},[343,455,456],{"class":353},"-",[343,458,459],{"class":349}," id",[343,461,332],{"class":353},[343,463,464],{"class":365}," verification\n",[343,466,467,470,472],{"class":345,"line":357},[343,468,469],{"class":349},"  extends",[343,471,332],{"class":353},[343,473,464],{"class":365},[343,475,476,479],{"class":345,"line":369},[343,477,478],{"class":349},"  steps",[343,480,354],{"class":353},[343,482,483,486,488,490],{"class":345,"line":380},[343,484,485],{"class":353},"    -",[343,487,459],{"class":349},[343,489,332],{"class":353},[343,491,492],{"class":365}," tests\n",[343,494,495,498],{"class":345,"line":391},[343,496,497],{"class":349},"      tasks",[343,499,354],{"class":353},[343,501,502,505,507,509],{"class":345,"line":402},[343,503,504],{"class":353},"        -",[343,506,459],{"class":349},[343,508,332],{"class":353},[343,510,511],{"class":365}," test_changed_scopes\n",[343,513,515,518,520],{"class":345,"line":514},7,[343,516,517],{"class":349},"          extends",[343,519,332],{"class":353},[343,521,522],{"class":365}," verify_changed_scopes\n",[343,524,526,528,530,532],{"class":345,"line":525},8,[343,527,485],{"class":353},[343,529,459],{"class":349},[343,531,332],{"class":353},[343,533,534],{"class":365}," review\n",[343,536,538,540],{"class":345,"line":537},9,[343,539,497],{"class":349},[343,541,354],{"class":353},[343,543,545,547,549,551],{"class":345,"line":544},10,[343,546,504],{"class":353},[343,548,459],{"class":349},[343,550,332],{"class":353},[343,552,553],{"class":365}," code_review\n",[343,555,557,559,561],{"class":345,"line":556},11,[343,558,517],{"class":349},[343,560,332],{"class":353},[343,562,553],{"class":365},[343,564,566,568,570,572],{"class":345,"line":565},12,[343,567,504],{"class":353},[343,569,459],{"class":349},[343,571,332],{"class":353},[343,573,574],{"class":365}," security_review\n",[343,576,578,580,582],{"class":345,"line":577},13,[343,579,517],{"class":349},[343,581,332],{"class":353},[343,583,574],{"class":365},[585,586],"br",{},"Tasks in one step run in parallel, so both reviews read the same tests-green\nchange. Their findings share the node's fix loop.",[315,589,591],{"id":590},"add-a-gate-reviewer-to-a-gate","Add a gate reviewer to a gate",[276,593,594,595,598,599,332],{},"Add ",[280,596,597],{},"auto_review"," to any gate node in your chain. It takes a whole agent task,\nnot an ",[280,600,601],{},"extends",[334,603,605],{"className":336,"code":604,"language":338,"meta":339,"style":339},"- id: spec_approval\n  kind: gate\n  message: Review and approve the specification.\n  artifact: spec\n  reject_to: spec\n  auto_review:\n    id: reviewer\n    kind: agent\n    harness: claude\n    prompt: Decide whether this gate needs a person.\n    skill: kraft:gate-review\n",[280,606,607,618,627,637,647,656,663,673,682,691,701],{"__ignoreMap":339},[343,608,609,611,613,615],{"class":345,"line":346},[343,610,456],{"class":353},[343,612,459],{"class":349},[343,614,332],{"class":353},[343,616,617],{"class":365}," spec_approval\n",[343,619,620,622,624],{"class":345,"line":357},[343,621,360],{"class":349},[343,623,332],{"class":353},[343,625,626],{"class":365}," gate\n",[343,628,629,632,634],{"class":345,"line":369},[343,630,631],{"class":349},"  message",[343,633,332],{"class":353},[343,635,636],{"class":365}," Review and approve the specification.\n",[343,638,639,642,644],{"class":345,"line":380},[343,640,641],{"class":349},"  artifact",[343,643,332],{"class":353},[343,645,646],{"class":365}," spec\n",[343,648,649,652,654],{"class":345,"line":391},[343,650,651],{"class":349},"  reject_to",[343,653,332],{"class":353},[343,655,646],{"class":365},[343,657,658,661],{"class":345,"line":402},[343,659,660],{"class":349},"  auto_review",[343,662,354],{"class":353},[343,664,665,668,670],{"class":345,"line":514},[343,666,667],{"class":349},"    id",[343,669,332],{"class":353},[343,671,672],{"class":365}," reviewer\n",[343,674,675,678,680],{"class":345,"line":525},[343,676,677],{"class":349},"    kind",[343,679,332],{"class":353},[343,681,366],{"class":365},[343,683,684,687,689],{"class":345,"line":537},[343,685,686],{"class":349},"    harness",[343,688,332],{"class":353},[343,690,377],{"class":365},[343,692,693,696,698],{"class":345,"line":544},[343,694,695],{"class":349},"    prompt",[343,697,332],{"class":353},[343,699,700],{"class":365}," Decide whether this gate needs a person.\n",[343,702,703,706,708],{"class":345,"line":556},[343,704,705],{"class":349},"    skill",[343,707,332],{"class":353},[343,709,710],{"class":365}," kraft:gate-review\n",[276,712,713,714,716,717,720,721,724,725,727],{},"A gate is reviewed when it declares ",[280,715,597],{}," and the work item has not\nopted out with ",[280,718,719],{},"--no-auto-gate",". Auto-gate is on by default for an item you\nfile from the CLI, MCP or the API; an item filed by a cron trigger,\n",[280,722,723],{},"POST \u002Fapi\u002Ftriggers"," or auto-intake has it off. Adding ",[280,726,597],{}," to a gate\ntherefore starts a paid reviewer agent on every item that reaches it, unless\nthe item opted out.",[276,729,730,731,734,735,734,738,741,742,745,746,748,749,752,753,756,757,760],{},"The reviewer runs as a worker, so Kraft refuses it if it tries to approve or\nreject. It reports one of ",[280,732,733],{},"approve",", ",[280,736,737],{},"reject",[280,739,740],{},"fixed"," or ",[280,743,744],{},"undecided",", and Kraft\napplies the verdict. The default is ",[280,747,744],{},", which leaves the gate for a\nperson with the reviewer's concerns to read first. ",[280,750,751],{},"auto_review_attempts"," in\n",[280,754,755],{},"policy.yaml"," (default ",[280,758,759],{},"1",") bounds how many attempts one pending gate gets.",[315,762,764],{"id":763},"check-it-and-use-it","Check it and use it",[334,766,770],{"className":767,"code":768,"language":769,"meta":339,"style":339},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","kraft admin templates lint\nkraft admin reload\nkraft item create \"title\" --chain reviewed\n","bash",[280,771,772,787,796],{"__ignoreMap":339},[343,773,774,778,781,784],{"class":345,"line":346},[343,775,777],{"class":776},"sBMFI","kraft",[343,779,780],{"class":365}," admin",[343,782,783],{"class":365}," templates",[343,785,786],{"class":365}," lint\n",[343,788,789,791,793],{"class":345,"line":357},[343,790,777],{"class":776},[343,792,780],{"class":365},[343,794,795],{"class":365}," reload\n",[343,797,798,800,803,806,809,812,815,818],{"class":345,"line":369},[343,799,777],{"class":776},[343,801,802],{"class":365}," item",[343,804,805],{"class":365}," create",[343,807,808],{"class":353}," \"",[343,810,811],{"class":365},"title",[343,813,814],{"class":353},"\"",[343,816,817],{"class":365}," --chain",[343,819,820],{"class":365}," reviewed\n",[276,822,823,824,826,827,830,831,834,835,838],{},"Pass ",[280,825,719],{}," to leave that item's gates to a person. ",[280,828,829],{},"lint"," must report no errors before you reload, and\n",[280,832,833],{},"kraft admin templates show reviewed --resolved"," prints the chain with the\nlibrary expanded so you can see both additions. A failing security finding\nappears in ",[280,836,837],{},"findings_measured"," events like any review finding.",[840,841,842],"style",{},"html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}",{"title":339,"searchDepth":357,"depth":357,"links":844},[845,846,847],{"id":317,"depth":357,"text":318},{"id":590,"depth":357,"text":591},{"id":763,"depth":357,"text":764},"Add the shipped security-review and gate-review skills to a chain of your own, since no shipped chain uses them.","md",null,{},true,{"title":79,"description":848},"XZQVt82iI8dOwv0-HPtP6vHkFBQcSbZJvfEZIvoWgjU",[856,858],{"title":75,"path":76,"stem":77,"description":857,"children":-1},"File a paused work item on a cron schedule or from a webhook, then check that it arrived.",{"title":83,"path":84,"stem":85,"description":859,"children":-1},"Install the Kraft extension to clear gates, review a branch's diff, and edit Kraft config files without leaving VS Code.",1790824541232]