[{"data":1,"prerenderedAt":1706},["ShallowReactive",2],{"page-\u002Fdethereal\u002Fagents-and-architecture":3,"navigation":1383},{"id":4,"title":5,"body":6,"description":1366,"extension":1367,"meta":1368,"navigation":1378,"path":1379,"seo":1380,"stem":1381,"__hash__":1382},"docs\u002F03.dethereal\u002F08.agents-and-architecture.md","Agents, Tools, and Hooks",{"type":7,"value":8,"toc":1335},"minimark",[9,13,17,20,25,28,33,36,105,111,116,135,139,142,200,205,209,226,230,233,286,291,295,309,313,316,367,372,376,396,400,403,454,459,463,480,482,486,489,499,504,519,522,524,528,531,535,583,589,593,629,633,659,663,729,733,786,790,818,822,858,861,865,980,984,1010,1012,1016,1019,1023,1029,1058,1062,1067,1082,1086,1091,1096,1103,1105,1109,1112,1118,1122,1194,1198,1205,1209,1216,1307,1318,1320,1331],[10,11,5],"h1",{"id":12},"agents-tools-and-hooks",[14,15,16],"p",{},"Under the hood, Dethereal uses 5 specialized AI agents, 22 MCP tools for platform communication, and 3 lifecycle hooks for workflow automation. You don't need to know these details to use the plugin — this page is for users who want to understand what's happening behind the scenes.",[18,19],"hr",{},[21,22,24],"h2",{"id":23},"the-5-ai-agents","The 5 AI Agents",[14,26,27],{},"Each agent has a specific role, tool access, and constraints. Slash commands invoke agents automatically — you don't select them manually.",[29,30,32],"h3",{"id":31},"threat-modeler-orchestrator","threat-modeler (Orchestrator)",[14,34,35],{},"The primary agent for creating and editing threat models. Orchestrates the 11-step guided workflow by delegating to sub-agents for specialized tasks.",[37,38,44],"div",{"className":39,"tabIndex":41,"role":42,"ariaLabel":43},[40],"table-frame",0,"region","Table: threat-modeler (Orchestrator)",[45,46,47,60],"table",{},[48,49,50],"thead",{},[51,52,53,57],"tr",{},[54,55,56],"th",{},"Property",[54,58,59],{},"Value",[61,62,63,75,85,95],"tbody",{},[51,64,65,72],{},[66,67,68],"td",{},[69,70,71],"strong",{},"Effort",[66,73,74],{},"High",[51,76,77,82],{},[66,78,79],{},[69,80,81],{},"Max turns",[66,83,84],{},"60",[51,86,87,92],{},[66,88,89],{},[69,90,91],{},"Tools",[66,93,94],{},"Read, Write, Edit, Glob, Grep, Bash, all MCP tools",[51,96,97,102],{},[66,98,99],{},[69,100,101],{},"Delegates to",[66,103,104],{},"infrastructure-scout, infrastructure-scout-scoped, security-enricher, model-reviewer",[14,106,107,110],{},[69,108,109],{},"Used by commands:"," create, discover, add, remove, threat-model",[14,112,113],{},[69,114,115],{},"Key behaviors:",[117,118,119,123,126,129,132],"ul",{},[120,121,122],"li",{},"Reads model files from disk at the start of each operation",[120,124,125],{},"Handles all file writes for discovery (the scout is read-only)",[120,127,128],{},"Manages state transitions and backward transitions",[120,130,131],{},"Presents batch confirmation tables before writing",[120,133,134],{},"Never modifies security attributes (that's the security-enricher's domain)",[29,136,138],{"id":137},"infrastructure-scout-discovery","infrastructure-scout (Discovery)",[14,140,141],{},"A read-only agent that scans codebases for infrastructure components. Returns structured data to the calling skill — never writes model files.",[37,143,146],{"className":144,"tabIndex":41,"role":42,"ariaLabel":145},[40],"Table: infrastructure-scout (Discovery)",[45,147,148,156],{},[48,149,150],{},[51,151,152,154],{},[54,153,56],{},[54,155,59],{},[61,157,158,167,176,190],{},[51,159,160,164],{},[66,161,162],{},[69,163,71],{},[66,165,166],{},"Medium",[51,168,169,173],{},[66,170,171],{},[69,172,81],{},[66,174,175],{},"30",[51,177,178,182],{},[66,179,180],{},[69,181,91],{},[66,183,184,185,189],{},"Read, Glob, Grep, Bash (read-only), ",[186,187,188],"code",{},"get_classes"," MCP tool",[51,191,192,197],{},[66,193,194],{},[69,195,196],{},"Constraint",[66,198,199],{},"Read-only — returns data, does not write files",[14,201,202,204],{},[69,203,109],{}," discover, threat-model (Step 2)",[14,206,207],{},[69,208,115],{},[117,210,211,214,217,220,223],{},[120,212,213],{},"Scans 10 source categories with signal strength ranking",[120,215,216],{},"Pre-classifies components using IaC mapping tables",[120,218,219],{},"Validates pre-classifications against the platform's class library",[120,221,222],{},"Never includes secret values — extracts names and endpoints only",[120,224,225],{},"Returns a compact discovery report; full provenance is read from disk",[29,227,229],{"id":228},"infrastructure-scout-scoped-drift-re-verification","infrastructure-scout-scoped (Drift Re-Verification)",[14,231,232],{},"A deliberately narrowed companion to infrastructure-scout. Drift reconciliation uses it to re-verify the elements touched by a file diff without re-scanning the whole repository.",[37,234,237],{"className":235,"tabIndex":41,"role":42,"ariaLabel":236},[40],"Table: infrastructure-scout-scoped (Drift Re-Verification)",[45,238,239,247],{},[48,240,241],{},[51,242,243,245],{},[54,244,56],{},[54,246,59],{},[61,248,249,257,266,277],{},[51,250,251,255],{},[66,252,253],{},[69,254,71],{},[66,256,166],{},[51,258,259,263],{},[66,260,261],{},[69,262,81],{},[66,264,265],{},"20",[51,267,268,272],{},[66,269,270],{},[69,271,91],{},[66,273,274,275,189],{},"Read, ",[186,276,188],{},[51,278,279,283],{},[66,280,281],{},[69,282,196],{},[66,284,285],{},"No Glob, Grep, or Bash — reads only the files on the allowlist it is handed",[14,287,288,290],{},[69,289,109],{}," threat-model (resume, when drift is detected)",[14,292,293],{},[69,294,115],{},[117,296,297,300,303,306],{},[120,298,299],{},"Receives a pre-computed file allowlist from the calling skill and reads nothing outside it",[120,301,302],{},"Answers one of four scoped questions: discover elements, re-verify element attributes, propose reclassification, check element existence",[120,304,305],{},"Shares classification rules with the full-scope infrastructure-scout",[120,307,308],{},"Stops and reports rather than widening its own scope when it needs a file outside the allowlist",[29,310,312],{"id":311},"security-enricher-attributes-and-classification","security-enricher (Attributes and Classification)",[14,314,315],{},"Populates security attributes, handles classification, and identifies security controls. This is the only sub-agent with write access to attribute files.",[37,317,320],{"className":318,"tabIndex":41,"role":42,"ariaLabel":319},[40],"Table: security-enricher (Attributes and Classification)",[45,321,322,330],{},[48,323,324],{},[51,325,326,328],{},[54,327,56],{},[54,329,59],{},[61,331,332,340,349,358],{},[51,333,334,338],{},[66,335,336],{},[69,337,71],{},[66,339,74],{},[51,341,342,346],{},[66,343,344],{},[69,345,81],{},[66,347,348],{},"40",[51,350,351,355],{},[66,352,353],{},[69,354,91],{},[66,356,357],{},"Read, Write, Edit, Glob, Grep, all MCP tools",[51,359,360,364],{},[66,361,362],{},[69,363,196],{},[66,365,366],{},"Does not annotate MITRE techniques on attribute files — tactic coverage is derived platform-side from analysis exposures",[14,368,369,371],{},[69,370,109],{}," classify, enrich, threat-model (Steps 6, 8)",[14,373,374],{},[69,375,115],{},[117,377,378,381,384,387,390,393],{},[120,379,380],{},"Two-pass classification: deterministic matching first, LLM-assisted for ambiguous cases",[120,382,383],{},"Crown jewel tagging with fuzzy matching from scope definition",[120,385,386],{},"Looks MITRE techniques up against the platform when explaining an exposure — never generates technique IDs from memory",[120,388,389],{},"Credential enrichment in 4 phases: inventory → flow mapping → STORE scope → shared analysis",[120,391,392],{},"Compliance-driven prompts based on scope compliance drivers",[120,394,395],{},"Presents all proposals in batch confirmation tables",[29,397,399],{"id":398},"model-reviewer-validation","model-reviewer (Validation)",[14,401,402],{},"A read-only auditor that assesses model quality and produces analysis reports. Cannot modify any files.",[37,404,407],{"className":405,"tabIndex":41,"role":42,"ariaLabel":406},[40],"Table: model-reviewer (Validation)",[45,408,409,417],{},[48,410,411],{},[51,412,413,415],{},[54,414,56],{},[54,416,59],{},[61,418,419,427,436,445],{},[51,420,421,425],{},[66,422,423],{},[69,424,71],{},[66,426,166],{},[51,428,429,433],{},[66,430,431],{},[69,432,81],{},[66,434,435],{},"15",[51,437,438,442],{},[66,439,440],{},[69,441,91],{},[66,443,444],{},"Read, Glob, Grep, MCP tools (read-only subset)",[51,446,447,451],{},[66,448,449],{},[69,450,196],{},[66,452,453],{},"Strictly read-only — no file modifications",[14,455,456,458],{},[69,457,109],{}," review, surface, threat-model (Step 9)",[14,460,461],{},[69,462,115],{},[117,464,465,468,471,474,477],{},[120,466,467],{},"Computes quality score with 7-factor breakdown",[120,469,470],{},"Evaluates 3 quality gates (creation, sync, analysis)",[120,472,473],{},"Produces attack surface analysis across 8 dimensions",[120,475,476],{},"Detects cross-model gaps and credential blast radius",[120,478,479],{},"Cannot write quality.json — the threat-modeler handles persistence after validation",[18,481],{},[21,483,485],{"id":484},"agent-delegation","Agent Delegation",[14,487,488],{},"The threat-modeler orchestrates complex workflows by delegating to sub-agents:",[490,491,496],"pre",{"className":492,"code":494,"language":495},[493],"language-text","threat-modeler\n├── delegates to infrastructure-scout (discovery scanning)\n│   └── returns: compact report (element counts, sources, confidence)\n├── delegates to infrastructure-scout-scoped (drift re-verification)\n│   └── returns: re-verified elements for an allowlisted file diff\n├── delegates to security-enricher (enrichment)\n│   └── returns: enriched element count + quality delta\n└── delegates to model-reviewer (validation)\n    └── returns: quality score + top 3 issues\n","text",[186,497,494],{"__ignoreMap":498},"",[14,500,501],{},[69,502,503],{},"How it works:",[505,506,507,510,513,516],"ol",{},[120,508,509],{},"The threat-modeler passes the model directory path to the sub-agent",[120,511,512],{},"The sub-agent reads current model state from disk independently",[120,514,515],{},"The sub-agent does its work and returns a compact summary",[120,517,518],{},"The threat-modeler reads the full output from disk",[14,520,521],{},"This file-based communication pattern keeps sub-agent responses compact and avoids passing large serialized model content between agents.",[18,523],{},[21,525,527],{"id":526},"mcp-tools","MCP Tools",[14,529,530],{},"The MCP (Model Context Protocol) server exposes 22 tools for platform communication. These tools are used by agents internally — you interact with them through slash commands, not directly.",[29,532,534],{"id":533},"authentication-3-tools","Authentication (3 tools)",[37,536,539],{"className":537,"tabIndex":41,"role":42,"ariaLabel":538},[40],"Table: Authentication (3 tools)",[45,540,541,551],{},[48,542,543],{},[51,544,545,548],{},[54,546,547],{},"Tool",[54,549,550],{},"Purpose",[61,552,553,563,573],{},[51,554,555,560],{},[66,556,557],{},[186,558,559],{},"login",[66,561,562],{},"Browser-based OAuth authentication with PKCE",[51,564,565,570],{},[66,566,567],{},[186,568,569],{},"logout",[66,571,572],{},"Delete the locally stored session (does not revoke it at the identity provider)",[51,574,575,580],{},[66,576,577],{},[186,578,579],{},"auth_status",[66,581,582],{},"Report the platform URL, whether you are signed in, as whom, and how long the session has left",[14,584,585,586,588],{},"The MCP server keeps your session in your home directory, keyed by platform URL, and refreshes an expired session automatically on the next tool call. Session tokens never leave the server: no tool returns them, and the agents check authentication through ",[186,587,579],{}," rather than by reading the token store.",[29,590,592],{"id":591},"reference-2-tools","Reference (2 tools)",[37,594,597],{"className":595,"tabIndex":41,"role":42,"ariaLabel":596},[40],"Table: Reference (2 tools)",[45,598,599,607],{},[48,600,601],{},[51,602,603,605],{},[54,604,547],{},[54,606,550],{},[61,608,609,619],{},[51,610,611,616],{},[66,612,613],{},[186,614,615],{},"get_model_schema",[66,617,618],{},"Returns the complete JSON schema for threat model files",[51,620,621,626],{},[66,622,623],{},[186,624,625],{},"get_example_models",[66,627,628],{},"Provides example model templates (web app, API service, microservices)",[29,630,632],{"id":631},"validation-1-tool","Validation (1 tool)",[37,634,637],{"className":635,"tabIndex":41,"role":42,"ariaLabel":636},[40],"Table: Validation (1 tool)",[45,638,639,647],{},[48,640,641],{},[51,642,643,645],{},[54,644,547],{},[54,646,550],{},[61,648,649],{},[51,650,651,656],{},[66,652,653],{},[186,654,655],{},"validate_model_json",[66,657,658],{},"Structural validation + quality score computation",[29,660,662],{"id":661},"model-crud-5-tools","Model CRUD (5 tools)",[37,664,667],{"className":665,"tabIndex":41,"role":42,"ariaLabel":666},[40],"Table: Model CRUD (5 tools)",[45,668,669,677],{},[48,670,671],{},[51,672,673,675],{},[54,674,547],{},[54,676,550],{},[61,678,679,689,699,709,719],{},[51,680,681,686],{},[66,682,683],{},[186,684,685],{},"create_threat_model",[66,687,688],{},"Create a new empty model on the platform",[51,690,691,696],{},[66,692,693],{},[186,694,695],{},"import_model",[66,697,698],{},"Import a local model directory to the platform",[51,700,701,706],{},[66,702,703],{},[186,704,705],{},"export_model",[66,707,708],{},"Export a platform model to a local directory",[51,710,711,716],{},[66,712,713],{},[186,714,715],{},"update_model",[66,717,718],{},"Update an existing platform model from local files",[51,720,721,726],{},[66,722,723],{},[186,724,725],{},"list_models",[66,727,728],{},"List models available on the platform",[29,730,732],{"id":731},"elements-3-tools","Elements (3 tools)",[37,734,737],{"className":735,"tabIndex":41,"role":42,"ariaLabel":736},[40],"Table: Elements (3 tools)",[45,738,739,747],{},[48,740,741],{},[51,742,743,745],{},[54,744,547],{},[54,746,550],{},[61,748,749,762,776],{},[51,750,751,755],{},[66,752,753],{},[186,754,188],{},[66,756,757,758,761],{},"Queries available classes from installed modules. Used for browsing\u002Fexploration (\"what classes exist?\"). Classification workflow uses ",[186,759,760],{},"match_classes"," instead.",[51,763,764,769],{},[66,765,766],{},[186,767,768],{},"update_attributes",[66,770,771,772,775],{},"Incremental attribute updates without full model push. Attribute keys whose local value is still ",[186,773,774],{},"null"," are withheld rather than sent — the tool reports the withheld count, and a locally nulled key does not clear the value the platform already holds.",[51,777,778,783],{},[66,779,780],{},[186,781,782],{},"generate_attribute_stubs",[66,784,785],{},"Deterministically writes class template attribute stubs to disk for classified elements",[29,787,789],{"id":788},"classification-1-tool","Classification (1 tool)",[37,791,794],{"className":792,"tabIndex":41,"role":42,"ariaLabel":793},[40],"Table: Classification (1 tool)",[45,795,796,804],{},[48,797,798],{},[51,799,800,802],{},[54,801,547],{},[54,803,550],{},[61,805,806],{},[51,807,808,812],{},[66,809,810],{},[186,811,760],{},[66,813,814,815,817],{},"Server-side batch class matching. Replaces the per-module ",[186,816,188],{}," loop with a single call that returns ranked candidates per element. Multi-priority pipeline: exact-name → fuzzy-name → vector similarity → type heuristic. Used by the classify skill (Pass 1) and the security-enricher's classification protocol.",[29,819,821],{"id":820},"mitre-integration-2-tools","MITRE Integration (2 tools)",[37,823,826],{"className":824,"tabIndex":41,"role":42,"ariaLabel":825},[40],"Table: MITRE Integration (2 tools)",[45,827,828,836],{},[48,829,830],{},[51,831,832,834],{},[54,833,547],{},[54,835,550],{},[61,837,838,848],{},[51,839,840,845],{},[66,841,842],{},[186,843,844],{},"search_mitre_attack",[66,846,847],{},"Query ATT&CK techniques, tactics, and mitigations",[51,849,850,855],{},[66,851,852],{},[186,853,854],{},"get_mitre_defend",[66,856,857],{},"Browse D3FEND defensive techniques",[14,859,860],{},"All MITRE data comes from the platform's graph database — the plugin never generates technique IDs from memory.",[29,862,864],{"id":863},"security-elements-4-tools","Security Elements (4 tools)",[37,866,869],{"className":867,"tabIndex":41,"role":42,"ariaLabel":868},[40],"Table: Security Elements (4 tools)",[45,870,871,879],{},[48,872,873],{},[51,874,875,877],{},[54,876,547],{},[54,878,550],{},[61,880,881,891,952,962],{},[51,882,883,888],{},[66,884,885],{},[186,886,887],{},"manage_exposures",[66,889,890],{},"Read platform-computed exposures (list\u002Fget only — exposures are computed by the analysis engine, not created by users)",[51,892,893,898],{},[66,894,895],{},[186,896,897],{},"manage_controls",[66,899,900,901,904,905,904,908,904,911,904,914,917,918,921,922,925,926,904,929,904,932,904,935,904,938,904,941,944,945,904,948,951],{},"Multi-action tool for the control library: CRUD (",[186,902,903],{},"list",", ",[186,906,907],{},"get",[186,909,910],{},"create",[186,912,913],{},"update",[186,915,916],{},"delete","), assignment (",[186,919,920],{},"assign","), ranking (",[186,923,924],{},"rank","), and the control-library workflow (",[186,927,928],{},"pull-controls",[186,930,931],{},"push-greenfield",[186,933,934],{},"push-brownfield",[186,936,937],{},"set-local-edited",[186,939,940],{},"promote-external-edit",[186,942,943],{},"tombstone",") plus two write-ahead-log repair actions (",[186,946,947],{},"inspect-wal",[186,949,950],{},"clear-wal","). The control-library actions enforce the two-write rule and the shared-ownership safety check.",[51,953,954,959],{},[66,955,956],{},[186,957,958],{},"manage_countermeasures",[66,960,961],{},"Link security controls to exposures",[51,963,964,969],{},[66,965,966],{},[186,967,968],{},"get_control_gaps",[66,970,971,972,975,976,979],{},"Framework-grounded gap analysis. Walks the chain ",[186,973,974],{},"Exposure → ATT&CK Technique → ATT&CK Mitigation → Countermeasure → Control"," in a single Cypher query and returns unmitigated exposures with recommended controls. Used by ",[186,977,978],{},"\u002Fdethereal:surface",".",[29,981,983],{"id":982},"analysis-1-tool","Analysis (1 tool)",[37,985,988],{"className":986,"tabIndex":41,"role":42,"ariaLabel":987},[40],"Table: Analysis (1 tool)",[45,989,990,998],{},[48,991,992],{},[51,993,994,996],{},[54,995,547],{},[54,997,550],{},[61,999,1000],{},[51,1001,1002,1007],{},[66,1003,1004],{},[186,1005,1006],{},"manage_analyses",[66,1008,1009],{},"List analysis classes, create\u002Frun\u002Fpoll\u002Fget analysis results",[18,1011],{},[21,1013,1015],{"id":1014},"lifecycle-hooks","Lifecycle Hooks",[14,1017,1018],{},"Three hooks automate workflow tasks at key moments:",[29,1020,1022],{"id":1021},"sessionstart-first-session-orientation","SessionStart — First-Session Orientation",[14,1024,1025,1028],{},[69,1026,1027],{},"When:"," A new Claude Code session starts with the plugin loaded.",[14,1030,1031,1034,1035,1038,1039,1042,1043,1046,1047,1051,1052,1057],{},[69,1032,1033],{},"What it does:"," Counts the models in ",[186,1036,1037],{},".dethernety\u002Fmodels.json",". With none — whether the file is missing or simply empty — it prints the orientation block with quick-start commands. With models present it prints a resume hint instead. Either way, if ",[186,1040,1041],{},"DETHERNETY_URL"," is unset and nothing answers on ",[186,1044,1045],{},"http:\u002F\u002Flocalhost:3003",", it appends a ",[1048,1049,1050],"em",{},"Platform: not connected"," line. See ",[1053,1054,1056],"a",{"href":1055},"\u002Fdethereal\u002Fgetting-started#your-first-session","Getting Started"," for the exact output.",[29,1059,1061],{"id":1060},"posttooluse-auto-validate-after-edits","PostToolUse — Auto-Validate After Edits",[14,1063,1064,1066],{},[69,1065,1027],{}," After the Write or Edit tool modifies a model file.",[14,1068,1069,1071,1072,1074,1075,1078,1079,979],{},[69,1070,1033],{}," Checks whether the written path belongs to a registered model directory, and if so prints a one-line reminder to run ",[186,1073,655],{},". The hook is a prompt, not a check — it does not run validation and cannot report an error. Broken references and schema violations stay undetected until you run ",[186,1076,1077],{},"\u002Fdethereal:review"," or the Gate 2 pre-flight on ",[186,1080,1081],{},"\u002Fdethereal:sync push",[29,1083,1085],{"id":1084},"precompact-context-preservation","PreCompact — Context Preservation",[14,1087,1088,1090],{},[69,1089,1027],{}," Before Claude Code compresses conversation context (approaching context limits).",[14,1092,1093,1095],{},[69,1094,1033],{}," Writes a structured snapshot of every model in your local registry — its name, path, workflow state, stale-element count, and quality score with its label. That snapshot survives compaction, so the conversation can carry on knowing which model you are working on and how far along it is.",[14,1097,1098,1099,1102],{},"It preserves ",[69,1100,1101],{},"state, not history."," No record of what you just did is carried across: no tool calls, no edits, no decisions. If the reasoning behind a change matters after compaction, say it out loud in the conversation or write it into the model — don't assume the hook will remember it for you.",[18,1104],{},[21,1106,1108],{"id":1107},"the-state-machine","The State Machine",[14,1110,1111],{},"Models progress through 6 workflow states:",[490,1113,1116],{"className":1114,"code":1115,"language":495},[493],"INITIALIZED → SCOPE_DEFINED → DISCOVERED → STRUCTURE_COMPLETE → ENRICHING → REVIEWED\n",[186,1117,1115],{"__ignoreMap":498},[29,1119,1121],{"id":1120},"forward-transitions","Forward Transitions",[37,1123,1126],{"className":1124,"tabIndex":41,"role":42,"ariaLabel":1125},[40],"Table: Forward Transitions",[45,1127,1128,1141],{},[48,1129,1130],{},[51,1131,1132,1135,1138],{},[54,1133,1134],{},"From",[54,1136,1137],{},"To",[54,1139,1140],{},"Trigger",[61,1142,1143,1154,1164,1174,1184],{},[51,1144,1145,1148,1151],{},[66,1146,1147],{},"INITIALIZED",[66,1149,1150],{},"SCOPE_DEFINED",[66,1152,1153],{},"Scope definition complete",[51,1155,1156,1158,1161],{},[66,1157,1150],{},[66,1159,1160],{},"DISCOVERED",[66,1162,1163],{},"Discovery confirmed",[51,1165,1166,1168,1171],{},[66,1167,1160],{},[66,1169,1170],{},"STRUCTURE_COMPLETE",[66,1172,1173],{},"Boundaries refined",[51,1175,1176,1178,1181],{},[66,1177,1170],{},[66,1179,1180],{},"ENRICHING",[66,1182,1183],{},"Data flow mapping complete",[51,1185,1186,1188,1191],{},[66,1187,1180],{},[66,1189,1190],{},"REVIEWED",[66,1192,1193],{},"Validation passes Gate 3",[29,1195,1197],{"id":1196},"backward-transitions","Backward Transitions",[14,1199,1200,1201,1204],{},"Adding or removing elements at ENRICHING or REVIEWED reverts the state to STRUCTURE_COMPLETE. Existing enrichment is preserved; new elements are tracked as stale. See ",[1053,1202,1197],{"href":1203},"\u002Fdethereal\u002Fguided-workflow#backward-transitions"," for the full explanation.",[29,1206,1208],{"id":1207},"state-storage","State Storage",[14,1210,1211,1212,1215],{},"State is tracked in ",[186,1213,1214],{},"\u003Cmodel-path>\u002F.dethereal\u002Fstate.json",":",[490,1217,1221],{"className":1218,"code":1219,"language":1220,"meta":498,"style":498},"language-json shiki shiki-themes github-light github-dark-dimmed","{\n  \"currentState\": \"ENRICHING\",\n  \"completedStates\": [\"INITIALIZED\", \"SCOPE_DEFINED\", \"DISCOVERED\", \"STRUCTURE_COMPLETE\"],\n  \"lastModified\": \"2026-03-27T14:30:00Z\",\n  \"staleElements\": []\n}\n","json",[186,1222,1223,1232,1249,1279,1292,1301],{"__ignoreMap":498},[1224,1225,1228],"span",{"class":1226,"line":1227},"line",1,[1224,1229,1231],{"class":1230},"sYgZi","{\n",[1224,1233,1235,1239,1242,1246],{"class":1226,"line":1234},2,[1224,1236,1238],{"class":1237},"snmFh","  \"currentState\"",[1224,1240,1241],{"class":1230},": ",[1224,1243,1245],{"class":1244},"s-HuK","\"ENRICHING\"",[1224,1247,1248],{"class":1230},",\n",[1224,1250,1252,1255,1258,1261,1263,1266,1268,1271,1273,1276],{"class":1226,"line":1251},3,[1224,1253,1254],{"class":1237},"  \"completedStates\"",[1224,1256,1257],{"class":1230},": [",[1224,1259,1260],{"class":1244},"\"INITIALIZED\"",[1224,1262,904],{"class":1230},[1224,1264,1265],{"class":1244},"\"SCOPE_DEFINED\"",[1224,1267,904],{"class":1230},[1224,1269,1270],{"class":1244},"\"DISCOVERED\"",[1224,1272,904],{"class":1230},[1224,1274,1275],{"class":1244},"\"STRUCTURE_COMPLETE\"",[1224,1277,1278],{"class":1230},"],\n",[1224,1280,1282,1285,1287,1290],{"class":1226,"line":1281},4,[1224,1283,1284],{"class":1237},"  \"lastModified\"",[1224,1286,1241],{"class":1230},[1224,1288,1289],{"class":1244},"\"2026-03-27T14:30:00Z\"",[1224,1291,1248],{"class":1230},[1224,1293,1295,1298],{"class":1226,"line":1294},5,[1224,1296,1297],{"class":1237},"  \"staleElements\"",[1224,1299,1300],{"class":1230},": []\n",[1224,1302,1304],{"class":1226,"line":1303},6,[1224,1305,1306],{"class":1230},"}\n",[14,1308,1309,1310,1313,1314,1317],{},"The ",[186,1311,1312],{},"completedStates"," array enables the guided workflow to show which steps are done. The ",[186,1315,1316],{},"staleElements"," array tracks elements that were added during enrichment and need to be enriched before the model is complete.",[18,1319],{},[14,1321,1322,1325,1326,1330],{},[69,1323,1324],{},"Next:"," ",[1053,1327,1329],{"href":1328},"\u002Fdethereal\u002Fglossary","Glossary"," — plugin-specific terminology",[1332,1333,1334],"style",{},"html pre.shiki code .sYgZi, html code.shiki .sYgZi{--shiki-default:#24292E;--shiki-dark:#ADBAC7}html pre.shiki code .snmFh, html code.shiki .snmFh{--shiki-default:#005CC5;--shiki-dark:#8DDB8C}html pre.shiki code .s-HuK, html code.shiki .s-HuK{--shiki-default:#032F62;--shiki-dark:#96D0FF}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);}",{"title":498,"searchDepth":1251,"depth":1251,"links":1336},[1337,1344,1345,1356,1361],{"id":23,"depth":1234,"text":24,"children":1338},[1339,1340,1341,1342,1343],{"id":31,"depth":1251,"text":32},{"id":137,"depth":1251,"text":138},{"id":228,"depth":1251,"text":229},{"id":311,"depth":1251,"text":312},{"id":398,"depth":1251,"text":399},{"id":484,"depth":1234,"text":485},{"id":526,"depth":1234,"text":527,"children":1346},[1347,1348,1349,1350,1351,1352,1353,1354,1355],{"id":533,"depth":1251,"text":534},{"id":591,"depth":1251,"text":592},{"id":631,"depth":1251,"text":632},{"id":661,"depth":1251,"text":662},{"id":731,"depth":1251,"text":732},{"id":788,"depth":1251,"text":789},{"id":820,"depth":1251,"text":821},{"id":863,"depth":1251,"text":864},{"id":982,"depth":1251,"text":983},{"id":1014,"depth":1234,"text":1015,"children":1357},[1358,1359,1360],{"id":1021,"depth":1251,"text":1022},{"id":1060,"depth":1251,"text":1061},{"id":1084,"depth":1251,"text":1085},{"id":1107,"depth":1234,"text":1108,"children":1362},[1363,1364,1365],{"id":1120,"depth":1251,"text":1121},{"id":1196,"depth":1251,"text":1197},{"id":1207,"depth":1251,"text":1208},"How the 5 AI agents, 22 MCP tools, and 3 lifecycle hooks work together","md",{"category":1369,"position":1370,"tags":1371},"documentation",9,[1372,1373,1374,1375,1376,1377],"dethereal","agents","mcp","tools","hooks","architecture",true,"\u002Fdethereal\u002Fagents-and-architecture",{"title":5,"description":1366},"03.dethereal\u002F08.agents-and-architecture","ZZYQxU9XBsO2TGnLiGkMn8sOgdT1F6H-IvQsef-fdYg",[1384,1439,1474,1524,1558,1601,1616,1686],{"title":1385,"description":1386,"path":1387,"stem":1388,"children":1389,"page":-1},"Platform","Modelling, analysis, findings and controls in the Dethernety platform.","\u002Fplatform","01.platform",[1390,1394,1399,1404,1409,1414,1419,1424,1429,1434],{"title":1391,"path":1387,"stem":1392,"description":1393},"Dethernety User Documentation","01.platform\u002Findex","User guide for the Dethernety threat modeling platform",{"title":1395,"path":1396,"stem":1397,"description":1398},"Quick Start","\u002Fplatform\u002Fquick-start","01.platform\u002F01.quick-start","Install Dethernety on your own machine, draw a four-element model and read its first threat finding.",{"title":1400,"path":1401,"stem":1402,"description":1403},"Building Your First Model","\u002Fplatform\u002Fbuilding-your-first-model","01.platform\u002F02.building-your-first-model","Build a threat model of an online store in about 30 minutes, run a Threat Report on it, and raise an issue from a finding.",{"title":1405,"path":1406,"stem":1407,"description":1408},"Security Analysis Workflow","\u002Fplatform\u002Fsecurity-analysis-workflow","01.platform\u002F03.security-analysis-workflow","How to run security analysis and interpret results to improve your threat models.",{"title":1410,"path":1411,"stem":1412,"description":1413},"Managing Findings","\u002Fplatform\u002Fmanaging-findings","01.platform\u002F04.managing-findings","Record decisions on system-generated exposures and countermeasures — affirm them as confirmed live risk, or mute them as not applicable, false positive, waived, or superseded — instead of deleting them.",{"title":1415,"path":1416,"stem":1417,"description":1418},"Working with Security Controls","\u002Fplatform\u002Fworking-with-security-controls","01.platform\u002F05.working-with-security-controls","Learn how to create, manage, and assign reusable security controls in Dethernety to protect your threat models.",{"title":1420,"path":1421,"stem":1422,"description":1423},"Issue Management Guide","\u002Fplatform\u002Fissue-management-guide","01.platform\u002F06.issue-management-guide","Issue tracking, filtering, and management in Dethernety.",{"title":1425,"path":1426,"stem":1427,"description":1428},"Boundary Trust Zones","\u002Fplatform\u002Fboundary-trust-zones","01.platform\u002F07.boundary-trust-zones","Record each security boundary's trust zone, business domains, operational role, and approved channels to document how your system is meant to be segmented.",{"title":1430,"path":1431,"stem":1432,"description":1433},"Understanding Modules","\u002Fplatform\u002Funderstanding-modules","01.platform\u002F08.understanding-modules","How Dethernety's module system extends your threat modeling capabilities.",{"title":1435,"path":1436,"stem":1437,"description":1438},"Component Configuration Guide","\u002Fplatform\u002Fcomponent-configuration-guide","01.platform\u002F09.component-configuration-guide","Detailed guide on configuring different types of components and their security implications.",{"title":1440,"description":1441,"path":1442,"stem":1443,"children":1444,"page":-1},"BYODt cloud","Deploying the platform yourself and connecting it to the BYODt cloud.","\u002Fbyodt-cloud","02.byodt-cloud",[1445,1449,1454,1459,1464,1469],{"title":1446,"path":1442,"stem":1447,"description":1448},"BYODt Deployment","02.byodt-cloud\u002Findex","Run Dethernety on your own machine: install, configure, operate, and recover",{"title":1450,"path":1451,"stem":1452,"description":1453},"Installing the BYODt Deployment","\u002Fbyodt-cloud\u002Finstallation","02.byodt-cloud\u002F01.installation","Install Dethernety on your own machine: check the requirements, download and verify the signed bundle, start it, and confirm the deployment is healthy",{"title":1455,"path":1456,"stem":1457,"description":1458},"Configuring the BYODt Deployment","\u002Fbyodt-cloud\u002Fconfiguration","02.byodt-cloud\u002F02.configuration","The .env settings reference, the generated secret file, database storage, and how to apply a change",{"title":1460,"path":1461,"stem":1462,"description":1463},"Operating the BYODt Deployment","\u002Fbyodt-cloud\u002Foperations","02.byodt-cloud\u002F03.operations","The byodt command reference and the day-to-day tasks: start, stop, inspect, back up, restore, TLS, upgrade, remove",{"title":1465,"path":1466,"stem":1467,"description":1468},"Connecting the BYODt Deployment to the Cloud","\u002Fbyodt-cloud\u002Fcloud","02.byodt-cloud\u002F04.cloud","Add cloud sign-in and content packages from the operator console, and disconnect again",{"title":1470,"path":1471,"stem":1472,"description":1473},"Troubleshooting the BYODt Deployment","\u002Fbyodt-cloud\u002Ftroubleshooting","02.byodt-cloud\u002F05.troubleshooting","Symptom, cause, and fix for the failures this deployment reports",{"title":1475,"description":1476,"path":1477,"stem":1478,"children":1479,"page":-1},"Dethereal","The Claude Code plugin: build a threat model in conversation and publish it to the platform.","\u002Fdethereal","03.dethereal",[1480,1484,1489,1494,1499,1504,1509,1514,1519,1520],{"title":1481,"path":1477,"stem":1482,"description":1483},"Dethereal — Claude Code Plugin for Threat Modeling","03.dethereal\u002Findex","Comprehensive documentation for the Dethereal threat modeling plugin",{"title":1485,"path":1486,"stem":1487,"description":1488},"Getting Started with Dethereal","\u002Fdethereal\u002Fgetting-started","03.dethereal\u002F01.getting-started","Install the plugin, authenticate, and create your first threat model",{"title":1490,"path":1491,"stem":1492,"description":1493},"The 11-Step Guided Workflow","\u002Fdethereal\u002Fguided-workflow","03.dethereal\u002F02.guided-workflow","Complete walkthrough of the \u002Fdethereal:threat-model guided process",{"title":1495,"path":1496,"stem":1497,"description":1498},"Command Reference","\u002Fdethereal\u002Fcommand-reference","03.dethereal\u002F03.command-reference","Complete reference for all 14 Dethereal slash commands",{"title":1500,"path":1501,"stem":1502,"description":1503},"Threat Model Concepts","\u002Fdethereal\u002Fmodel-concepts","03.dethereal\u002F04.model-concepts","Components, boundaries, data flows, classes, attributes, and quality scoring",{"title":1505,"path":1506,"stem":1507,"description":1508},"Discovery and Enrichment","\u002Fdethereal\u002Fdiscovery-and-enrichment","03.dethereal\u002F05.discovery-and-enrichment","Infrastructure scanning, security attributes, MITRE ATT&CK, credentials, and compliance",{"title":1510,"path":1511,"stem":1512,"description":1513},"Sync and Version Control","\u002Fdethereal\u002Fsync-and-version-control","03.dethereal\u002F06.sync-and-version-control","Push\u002Fpull workflow, conflict handling, git integration, and multi-model projects",{"title":1515,"path":1516,"stem":1517,"description":1518},"Review and Attack Surface Analysis","\u002Fdethereal\u002Freview-and-analysis","03.dethereal\u002F07.review-and-analysis","Quality review, attack surface summary, and platform analysis integration",{"title":5,"path":1379,"stem":1381,"description":1366},{"title":1521,"path":1328,"stem":1522,"description":1523},"Dethereal Glossary","03.dethereal\u002F09.glossary","Definitions for Dethereal-specific terminology",{"title":1525,"description":1526,"path":1527,"stem":1528,"children":1529,"page":-1},"Threat Report","The residual-risk report over a threat model: reading it, filtering it and exporting it.","\u002Fthreat-report","04.threat-report",[1530,1533,1538,1543,1548,1553],{"title":1525,"path":1527,"stem":1531,"description":1532},"04.threat-report\u002Findex","Read, filter, drill into, and export a residual-risk report over a threat model",{"title":1534,"path":1535,"stem":1536,"description":1537},"Getting Started with the Threat Report","\u002Fthreat-report\u002Fgetting-started","04.threat-report\u002F01.getting-started","Generate, open, refresh, and export a threat report over a model",{"title":1539,"path":1540,"stem":1541,"description":1542},"Reading the Report","\u002Fthreat-report\u002Freading-the-report","04.threat-report\u002F02.reading-the-report","Navigating the report, the shared visual language, and the Posture and Boundary Crossings views",{"title":1544,"path":1545,"stem":1546,"description":1547},"Understanding Coverage and Gaps","\u002Fthreat-report\u002Funderstanding-coverage","04.threat-report\u002F03.understanding-coverage","Reading the MITRE ATT&CK coverage matrix: tiers, prevent vs detect, off-grid notes, and what coverage does and does not mean",{"title":1549,"path":1550,"stem":1551,"description":1552},"Reachability and Flow Routes","\u002Fthreat-report\u002Freachability","04.threat-report\u002F04.reachability","Exploring flow routes to crown-jewel assets and between any two elements — and what the analysis does and does not model",{"title":1554,"path":1555,"stem":1556,"description":1557},"Working with Findings","\u002Fthreat-report\u002Fworking-with-findings","04.threat-report\u002F05.working-with-findings","The Residual Risk ledger, triaging findings, filtering, and the per-element Component Profile",{"title":1559,"description":1560,"path":1561,"stem":1562,"children":1563,"page":-1},"Risk assessment","The risk assessment module: the register, the reports and the method behind them.","\u002Frisk-assessment","05.risk-assessment",[1564,1568,1573,1578,1582,1587,1591,1596],{"title":1565,"path":1561,"stem":1566,"description":1567},"Dethernety Risk Assessment User Guide","05.risk-assessment\u002Findex","Dethernety Risk Assessment turns a threat model you have built on the Dethernety platform into a grounded, board-ready draft risk report. From one point-in-time assessment of your model you get a prioritized worklist, a likelihood × impact risk matrix, a security-coverage posture, ten kinds of finding, a management risk register your team authors and maintains, and audience-tiered stakeholder reports — Board, Risk Committee, and Technical — plus machine-readable data exports.",{"title":1569,"path":1570,"stem":1571,"description":1572},"FAQ and Troubleshooting","\u002Frisk-assessment\u002Ffaq","05.risk-assessment\u002F01.faq","Short answers to the questions analysts, risk managers, and compliance officers ask most often about the Risk Assessment. Each answer links to the guide that covers it in full.",{"title":1574,"path":1575,"stem":1576,"description":1577},"Findings","\u002Frisk-assessment\u002Ffindings","05.risk-assessment\u002F02.findings","A finding is a specific observation the Risk Assessment makes about your threat model. Every finding is grounded in something concrete you have declared — an element, a data flow, a trust zone, a crown jewel — and it points you at a place worth a closer look. This guide is the reference to open when you see a finding and want to know what it means and what to do about it.",{"title":1056,"path":1579,"stem":1580,"description":1581},"\u002Frisk-assessment\u002Fgetting-started","05.risk-assessment\u002F03.getting-started","Risk Assessment turns a threat model you have built on the Dethernety platform into a grounded, board-ready draft risk report — a prioritized worklist, a likelihood × impact matrix, a security-coverage posture, ten kinds of finding, a risk register your team authors, and audience-tiered stakeholder reports and exports.",{"title":1583,"path":1584,"stem":1585,"description":1586},"Methodology and Trust","\u002Frisk-assessment\u002Fmethodology-and-trust","05.risk-assessment\u002F04.methodology-and-trust","Every number in a Risk Assessment is meant to survive scrutiny. This chapter explains why you can trust the report and — just as importantly — what it deliberately declines to claim, so you can put it in front of your board, a regulator, or an external auditor and defend every line.",{"title":1539,"path":1588,"stem":1589,"description":1590},"\u002Frisk-assessment\u002Freading-the-report","05.risk-assessment\u002F05.reading-the-report","The Risk Assessment turns your threat model into a single, scannable draft risk report: an executive summary at the top and a set of analytical tabs below it. This guide explains how to read what you see — what a matrix cell means, how coverage is stated, what a severity band is (and is not), and how to interpret each tab.",{"title":1592,"path":1593,"stem":1594,"description":1595},"Stakeholder Reports and Exports","\u002Frisk-assessment\u002Fstakeholder-reports","05.risk-assessment\u002F06.stakeholder-reports","One assessment produces reporting for every audience you answer to. From a single generated Risk Assessment you can hand your board a one-page brief, give your risk committee the full reconciliation, keep the complete technical detail for your own team, and export the underlying data into your GRC tool — without ever re-running anything or reconciling one document against another.",{"title":1597,"path":1598,"stem":1599,"description":1600},"The Risk Register","\u002Frisk-assessment\u002Fthe-risk-register","05.risk-assessment\u002F07.the-risk-register","The Risk Register is where your team records and manages the real risks your organisation is carrying — on top of, but separate from, what the analysis computed for you. Each entry is written by a person: a plain-language risk statement, your own assessment of how likely it is and how much it would hurt, the findings and elements from the analysis that back it up, a treatment decision, an owner, a review date, and a reference handle you can quote in a ticket or a board pack.",{"title":1602,"description":1603,"path":1604,"stem":1605,"children":1606,"page":-1},"Threat Patterns","The Threat Patterns module and its modelling checklist.","\u002Fthreat-patterns","06.threat-patterns",[1607,1611],{"title":1608,"path":1604,"stem":1609,"description":1610},"Threat Patterns User Guide","06.threat-patterns\u002Findex","Threat Patterns finds threats in your model that no single element shows on its own. Each one appears only when several elements line up. For example, an agent may read content anyone can write, hold private data, and be able to send data where an outsider reads it. Each element can look acceptable alone, but together they form a path an attacker can use.",{"title":1612,"path":1613,"stem":1614,"description":1615},"Modelling Checklist","\u002Fthreat-patterns\u002Fmodelling-checklist","06.threat-patterns\u002F01.modelling-checklist","Threat Patterns decides a leg only from what your model states. An unanswered attribute or field is undetermined, never read as \"no\". This checklist lists the facts and drawings the analysis asks for most often. For each one it says where to set it and which leg it settles. Attribute names are shown as they appear on the class, in code.",{"title":1617,"description":1618,"path":1619,"stem":1620,"children":1621,"page":-1},"Agentic modelling","A hands-on training: model one agentic system step by step, with Threat Patterns after each step.","\u002Fagentic-modelling","07.agentic-modelling",[1622,1626,1631,1636,1641,1646,1651,1656,1661,1666,1671,1676,1681],{"title":1623,"path":1619,"stem":1624,"description":1625},"Model an Agentic Architecture","07.agentic-modelling\u002Findex","A hands-on training in modelling systems that run AI agents, so that Threat Patterns can analyse them. You build one system, a fictional customer-support copilot, in eleven short lessons. Each lesson adds one thing to the model, and you run Threat Patterns after each one to see what the change did.",{"title":1627,"path":1628,"stem":1629,"description":1630},"Lesson 1: Draw the Agent and What It Talks To","\u002Fagentic-modelling\u002F01-draw-the-agent","07.agentic-modelling\u002F01.01-draw-the-agent","Training overview · Lesson 1 of 11 · Next: Say what data moves",{"title":1632,"path":1633,"stem":1634,"description":1635},"Lesson 2: Say What Data Moves","\u002Fagentic-modelling\u002F02-say-what-data-moves","07.agentic-modelling\u002F02.02-say-what-data-moves","Training overview · Lesson 2 of 11 · Previous: Draw the agent · Next: Mark who is outside",{"title":1637,"path":1638,"stem":1639,"description":1640},"Lesson 3: Mark Who Is Outside","\u002Fagentic-modelling\u002F03-mark-who-is-outside","07.agentic-modelling\u002F03.03-mark-who-is-outside","Training overview · Lesson 3 of 11 · Previous: Say what data moves · Next: Draw a tool that reaches any host",{"title":1642,"path":1643,"stem":1644,"description":1645},"Lesson 4: Draw a Tool That Reaches Any Host","\u002Fagentic-modelling\u002F04-draw-a-tool-that-reaches-any-host","07.agentic-modelling\u002F04.04-draw-a-tool-that-reaches-any-host","Training overview · Lesson 4 of 11 · Previous: Mark who is outside · Next: State what the agent can do",{"title":1647,"path":1648,"stem":1649,"description":1650},"Lesson 5: State What the Agent Can Do","\u002Fagentic-modelling\u002F05-state-what-the-agent-can-do","07.agentic-modelling\u002F05.05-state-what-the-agent-can-do","Training overview · Lesson 5 of 11 · Previous: Draw a tool that reaches any host · Next: Fix a finding with a fact",{"title":1652,"path":1653,"stem":1654,"description":1655},"Lesson 6: Fix a Finding With a Fact","\u002Fagentic-modelling\u002F06-fix-a-finding-with-a-fact","07.agentic-modelling\u002F06.06-fix-a-finding-with-a-fact","Training overview · Lesson 6 of 11 · Previous: State what the agent can do · Next: Record a compensating control",{"title":1657,"path":1658,"stem":1659,"description":1660},"Lesson 7: Record a Compensating Control","\u002Fagentic-modelling\u002F07-record-a-compensating-control","07.agentic-modelling\u002F07.07-record-a-compensating-control","Training overview · Lesson 7 of 11 · Previous: Fix a finding with a fact · Next: Leave what you don't know open",{"title":1662,"path":1663,"stem":1664,"description":1665},"Lesson 8: Leave What You Don't Know Open","\u002Fagentic-modelling\u002F08-leave-unknowns-open","07.agentic-modelling\u002F08.08-leave-unknowns-open","Training overview · Lesson 8 of 11 · Previous: Record a compensating control · Next: Follow a credential",{"title":1667,"path":1668,"stem":1669,"description":1670},"Lesson 9: Follow a Credential","\u002Fagentic-modelling\u002F09-follow-a-credential","07.agentic-modelling\u002F09.09-follow-a-credential","Training overview · Lesson 9 of 11 · Previous: Leave what you don't know open · Next: Watch what gets into knowledge and memory",{"title":1672,"path":1673,"stem":1674,"description":1675},"Lesson 10: Watch What Gets Into Knowledge and Memory","\u002Fagentic-modelling\u002F10-what-gets-in","07.agentic-modelling\u002F10.10-what-gets-in","Training overview · Lesson 10 of 11 · Previous: Follow a credential · Next: Draw tools from others and hand-offs",{"title":1677,"path":1678,"stem":1679,"description":1680},"Lesson 11: Draw Tools From Others and Hand-offs","\u002Fagentic-modelling\u002F11-tools-and-handoffs","07.agentic-modelling\u002F11.11-tools-and-handoffs","Training overview · Lesson 11 of 11 · Previous: Watch what gets into knowledge and memory",{"title":1682,"path":1683,"stem":1684,"description":1685},"The recipe at a glance","\u002Fagentic-modelling\u002Frecipe-at-a-glance","07.agentic-modelling\u002F12.recipe-at-a-glance","The ten steps of the training on one page. Each lesson teaches one or two of them.",{"title":1687,"description":1688,"path":1689,"stem":1690,"children":1691,"page":-1},"BYODt subscription","Subscribing on the BYODt Portal, and moving a deployment you already run to a new team.","\u002Fbyodt-subscription","08.byodt-subscription",[1692,1696,1701],{"title":1693,"path":1689,"stem":1694,"description":1695},"BYODt Subscription","08.byodt-subscription\u002Findex","Buy content for the deployment you run yourself, and decide where that deployment goes when you buy a team edition",{"title":1697,"path":1698,"stem":1699,"description":1700},"Your Subscription","\u002Fbyodt-subscription\u002Fyour-subscription","08.byodt-subscription\u002F01.your-subscription","Create an account, subscribe by card, and find the values your deployment needs on the portal",{"title":1702,"path":1703,"stem":1704,"description":1705},"Moving a Deployment to a New Team","\u002Fbyodt-subscription\u002Fmoving-a-deployment-to-a-new-team","08.byodt-subscription\u002F02.moving-a-deployment-to-a-new-team","What to do with the deployment you already run once you buy a team edition: three ways forward, best first",1793748185244]