[{"data":1,"prerenderedAt":1540},["ShallowReactive",2],{"page-\u002Fdethereal\u002Fcommand-reference":3,"navigation":1227},{"id":4,"title":5,"body":6,"description":1212,"extension":1213,"meta":1214,"navigation":1222,"path":1223,"seo":1224,"stem":1225,"__hash__":1226},"docs\u002F03.dethereal\u002F03.command-reference.md","Command Reference",{"type":7,"value":8,"toc":1177},"minimark",[9,13,30,33,38,43,53,56,60,63,141,145,148,154,156,160,166,169,175,215,220,226,241,244,246,252,255,261,264,266,272,275,281,284,290,292,298,301,306,334,340,342,346,352,355,409,415,424,434,440,442,448,451,457,460,466,476,481,489,491,497,500,506,509,515,526,528,534,537,543,546,552,555,564,566,570,576,585,588,592,600,606,612,618,624,630,636,642,644,650,653,658,678,683,720,725,733,739,742,748,759,771,778,789,794,799,801,805,811,814,819,825,833,838,844,847,854,856,862,865,871,874,901,906,908,912,918,921,926,932,961,966,972,978,983,989,1006,1011,1017,1027,1033,1043,1049,1052,1069,1075,1077,1081,1087,1090,1096,1099,1105,1108,1123,1146,1158,1165,1167],[10,11,5],"h1",{"id":12},"command-reference",[14,15,16,17,21,22,25,26,29],"p",{},"All Dethereal commands use the ",[18,19,20],"code",{},"\u002Fdethereal:"," prefix. Run ",[18,23,24],{},"\u002Fdethereal:help"," for context-aware suggestions, or ",[18,27,28],{},"\u002Fdethereal:help \u003Ccommand>"," for usage details.",[31,32],"hr",{},[34,35,37],"h2",{"id":36},"how-commands-work","How Commands Work",[39,40,42],"h3",{"id":41},"slash-command-syntax","Slash Command Syntax",[44,45,50],"pre",{"className":46,"code":48,"language":49},[47],"language-text","\u002Fdethereal:\u003Ccommand> [arguments]\n","text",[18,51,48],{"__ignoreMap":52},"",[14,54,55],{},"Arguments can be natural language, paths, or flags. Most commands work without arguments by using the Model Resolution Protocol — if you have a single model, it's used automatically. If you have multiple, the plugin asks you to choose.",[39,57,59],{"id":58},"agent-delegation","Agent Delegation",[14,61,62],{},"Most commands delegate to a specific AI agent, which determines what tools and behaviors are available. The rest run in the main conversation:",[64,65,71],"div",{"className":66,"tabIndex":68,"role":69,"ariaLabel":70},[67],"table-frame",0,"region","Table: Agent Delegation",[72,73,74,90],"table",{},[75,76,77],"thead",{},[78,79,80,84,87],"tr",{},[81,82,83],"th",{},"Agent",[81,85,86],{},"Role",[81,88,89],{},"Commands",[91,92,93,108,119,130],"tbody",{},[78,94,95,102,105],{},[96,97,98],"td",{},[99,100,101],"em",{},"(no agent)",[96,103,104],{},"Runs in the main conversation — no dedicated agent, so no agent-level tool allowlist applies",[96,106,107],{},"status, login, help, view, sync",[78,109,110,113,116],{},[96,111,112],{},"threat-modeler",[96,114,115],{},"Creates and modifies model files",[96,117,118],{},"create, discover, add, remove, threat-model",[78,120,121,124,127],{},[96,122,123],{},"security-enricher",[96,125,126],{},"Classification and security attributes",[96,128,129],{},"classify, enrich",[78,131,132,135,138],{},[96,133,134],{},"model-reviewer",[96,136,137],{},"Read-only quality analysis",[96,139,140],{},"review, surface",[39,142,144],{"id":143},"post-action-footer","Post-Action Footer",[14,146,147],{},"Every command that modifies model files ends with a footer showing quality and recommended next steps:",[44,149,152],{"className":150,"code":151,"language":49},[47],"[done] Action complete. Quality: X\u002F100.\n[next] \u002Fdethereal:foo (reason for next step)\n",[18,153,151],{"__ignoreMap":52},[31,155],{},[34,157,159],{"id":158},"foundation-commands","Foundation Commands",[39,161,163],{"id":162},"detherealstatus-show-models-controlid",[18,164,165],{},"\u002Fdethereal:status [show models \u003CcontrolId>]",[14,167,168],{},"Show connection status, authentication state, local model summary, and a per-model control-library roll-up.",[44,170,173],{"className":171,"code":172,"language":49},[47],"> \u002Fdethereal:status\n\nDethernety Connection Status\n─────────────────────────────────────────\nPlatform URL:  https:\u002F\u002Fdethernety.example.com\nAuth status:   Authenticated (user@example.com, 59 min remaining)\n─────────────────────────────────────────\n\nLocal Models:\n  Production Stack  .\u002Fthreat-models\u002Fprod  56\u002F100 (ENRICHING)  synced 2h ago\n  Dev Environment   .\u002Fthreat-models\u002Fdev   23\u002F100 (DISCOVERED) never synced\n\nControl library (Production Stack):\n  Lifecycle:      greenfield: 0 | partially-pushed: 0 | brownfield: 12 | tombstoned: 1\n\n  Pending edits:  2 controls queued for push\n    - Azure Firewall (Hub) [Firewall Policy]: 5 keys edited by agent\n    - NSG Least-Privilege Ingress [Network Access Control]: 2 keys edited by operator\n\n  Drift warnings: 1 control has asymmetric state (external edit suspected)\n    - TLS 1.3 (API Gateway) [TLS Config]: attributes differ from platformAttributes\n      with no pendingEdit.\n      Recovery: \u002Fdethereal:sync promote-external-edit \u003CcontrolId> \u003CclassId>\n\n  Stale-sync:     1 control last synced > 15 min ago\n    - Vault KMS Rotation: last synced 3h ago — consider \u002Fdethereal:enrich --focus controls\n\n  Orphan files:   1 control file not referenced by structure or dataflows\n    - ctrl-abc-123.json — remove with manual cleanup or re-link via \u002Fdethereal:enrich\n",[18,174,172],{"__ignoreMap":52},[14,176,177,178,181,182,185,186,189,190,189,193,189,196,189,199,202,203,206,207,210,211,214],{},"A ",[18,179,180],{},"Control library (\u003Cmodel-name>):"," block is rendered per model that has a ",[18,183,184],{},"controls\u002F"," directory; each row (",[18,187,188],{},"Lifecycle",", ",[18,191,192],{},"Pending edits",[18,194,195],{},"Drift warnings",[18,197,198],{},"Stale-sync",[18,200,201],{},"Orphan files",") is omitted when its set is empty. ",[204,205,195],"strong",{}," is the only place a suspected external edit is surfaced proactively — it is what routes you to ",[18,208,209],{},"\u002Fdethereal:sync promote-external-edit",". Long lists are capped at five entries with a ",[18,212,213],{},"(N more — ...)"," footer.",[14,216,217],{},[204,218,219],{},"Sub-verb:",[44,221,224],{"className":222,"code":223,"language":49},[47],"> \u002Fdethereal:status show models \u003CcontrolId>\n",[18,225,223],{"__ignoreMap":52},[14,227,228,229,232,233,236,237,240],{},"Lists the model IDs assigned to a Control, read from the ",[18,230,231],{},"platformState.assignedModelIds"," cached in the local ",[18,234,235],{},"controls\u002F\u003CcontrolId>.json"," — no fresh platform query. If the Control has not been pulled locally, the command says so and points you at ",[18,238,239],{},"\u002Fdethereal:enrich --focus controls",". Model names, owners, and freshness are not shown.",[14,242,243],{},"Model and control-library data come from local files. The connection and authentication lines come from the plugin's MCP server, which may contact the platform to load its configuration and refresh an expired session (bounded to 10 seconds). Session tokens are never read into the conversation.",[31,245],{},[39,247,249],{"id":248},"dethereallogin",[18,250,251],{},"\u002Fdethereal:login",[14,253,254],{},"Authenticate with the Dethernety platform via browser-based OAuth.",[44,256,259],{"className":257,"code":258,"language":49},[47],"> \u002Fdethereal:login\n\nOpening browser for authentication...\n\nAuthenticated successfully.\nPlatform:     https:\u002F\u002Fdethernety.example.com\nUser:         user@example.com\nToken valid:  60 minutes remaining\n",[18,260,258],{"__ignoreMap":52},[14,262,263],{},"If already authenticated, returns immediately without opening the browser. Expired tokens are refreshed automatically when possible. If the platform has auth disabled (no-auth mode), all tools work without login.",[31,265],{},[39,267,269],{"id":268},"detherealhelp-command",[18,270,271],{},"\u002Fdethereal:help [command]",[14,273,274],{},"Show available commands with context-aware suggestions.",[44,276,279],{"className":277,"code":278,"language":49},[47],"> \u002Fdethereal:help\n",[18,280,278],{"__ignoreMap":52},[14,282,283],{},"Shows command categories with suggestions based on your current model state. For detailed usage on a specific command:",[44,285,288],{"className":286,"code":287,"language":49},[47],"> \u002Fdethereal:help enrich\n",[18,289,287],{"__ignoreMap":52},[31,291],{},[39,293,295],{"id":294},"detherealview-model-path-format-yamljsontree",[18,296,297],{},"\u002Fdethereal:view [model-path] [--format yaml|json|tree]",[14,299,300],{},"Display a read-only summary of a threat model.",[14,302,303],{},[204,304,305],{},"Arguments:",[307,308,309,316,322,328],"ul",{},[310,311,312,315],"li",{},[18,313,314],{},"[model-path]"," — path to model directory (optional if you have one model)",[310,317,318,321],{},[18,319,320],{},"--format tree"," — hierarchical tree view (default)",[310,323,324,327],{},[18,325,326],{},"--format json"," — raw JSON",[310,329,330,333],{},[18,331,332],{},"--format yaml"," — YAML view",[44,335,338],{"className":336,"code":337,"language":49},[47],"> \u002Fdethereal:view\n\nProduction Stack (56\u002F100 quality, ENRICHING)\n\n├── Internet Zone\n│   └── [EXTERNAL_ENTITY] End Users\n├── DMZ\n│   └── [PROCESS] Web Server (classified: Web Application)\n└── Internal Network\n    ├── Application Tier\n    │   └── [PROCESS] API Server (classified: REST API)\n    └── Data Tier\n        ├── [STORE] Database (classified: PostgreSQL)\n        └── [STORE] Cache (classified: Redis)\n\nData Flows (5):\n  1. End Users → Web Server: HTTP requests\n  2. Web Server → API Server: API calls (HTTPS)\n  3. API Server → Database: SQL queries\n  4. API Server → Cache: Cache lookups\n  5. Database → API Server: Query results\n\nQuality: 56\u002F100 (In Progress)\n  Component classification:  60%  (3\u002F5 classified)\n  Attribute completion:      40%  (2\u002F5 with attributes)\n\nSync: last pushed 2h ago | Platform model ID: abc123\n",[18,339,337],{"__ignoreMap":52},[31,341],{},[34,343,345],{"id":344},"modeling-commands","Modeling Commands",[39,347,349],{"id":348},"detherealcreate-description-or-template",[18,350,351],{},"\u002Fdethereal:create [description or template]",[14,353,354],{},"Create a new threat model. Four entry points:",[64,356,359],{"className":357,"tabIndex":68,"role":69,"ariaLabel":358},[67],"Table: \u002Fdethereal:create [description or template]",[72,360,361,371],{},[75,362,363],{},[78,364,365,368],{},[81,366,367],{},"Input",[81,369,370],{},"Mode",[91,372,373,381,391,399],{},[78,374,375,378],{},[96,376,377],{},"Natural language description",[96,379,380],{},"Describe",[78,382,383,388],{},[96,384,385],{},[18,386,387],{},"template web_app",[96,389,390],{},"Template",[78,392,393,396],{},[96,394,395],{},"Path to IaC files",[96,397,398],{},"Import",[78,400,401,406],{},[96,402,403],{},[18,404,405],{},"pull",[96,407,408],{},"Pull from platform",[44,410,413],{"className":411,"code":412,"language":49},[47],"> \u002Fdethereal:create a microservices system with API gateway, 3 services, and PostgreSQL\n",[18,414,412],{"__ignoreMap":52},[14,416,417,418,423],{},"The plugin collects scope information through conversation (crown jewels, compliance drivers, trust assumptions), then creates the model directory with initial structure. See ",[419,420,422],"a",{"href":421},"\u002Fdethereal\u002Fgetting-started","Getting Started"," for a detailed walkthrough.",[14,425,426,429,430,433],{},[204,427,428],{},"Creates:"," Model directory at ",[18,431,432],{},".\u002Fthreat-models\u002F\u003Cname>\u002F"," with manifest, structure, dataflows, data-items, scope, state, and README.",[14,435,436,439],{},[204,437,438],{},"State after:"," SCOPE_DEFINED",[31,441],{},[39,443,445],{"id":444},"detherealdiscover-scope-path",[18,446,447],{},"\u002Fdethereal:discover [scope] [path]",[14,449,450],{},"Scan your codebase for infrastructure components using the infrastructure-scout agent.",[44,452,455],{"className":453,"code":454,"language":49},[47],"> \u002Fdethereal:discover\n",[18,456,454],{"__ignoreMap":52},[14,458,459],{},"The plugin scans 10 source categories (IaC, containers, K8s, APIs, CI\u002FCD, etc.), presents a batch confirmation table, then runs a blind-spots interview to catch commonly missed elements.",[14,461,462,465],{},[204,463,464],{},"Prerequisites:"," A model must exist. If you have IaC files (Terraform, CloudFormation, Kubernetes manifests), discovery produces the best results.",[14,467,468,471,472,475],{},[204,469,470],{},"Output:"," Sources-checked summary, batch confirmation table, discovery provenance saved to ",[18,473,474],{},".dethereal\u002Fdiscovery.json",".",[14,477,478,480],{},[204,479,438],{}," DISCOVERED",[14,482,483,484,488],{},"See ",[419,485,487],{"href":486},"\u002Fdethereal\u002Fdiscovery-and-enrichment","Discovery and Enrichment"," for details on the discovery process.",[31,490],{},[39,492,494],{"id":493},"detherealadd-element-description",[18,495,496],{},"\u002Fdethereal:add [element description]",[14,498,499],{},"Add components, boundaries, data flows, or data items using natural language.",[44,501,504],{"className":502,"code":503,"language":49},[47],"> \u002Fdethereal:add a Redis cache in the data tier\n> \u002Fdethereal:add a flow from API Server to Redis for session lookups\n> \u002Fdethereal:add a DMZ boundary for internet-facing services\n> \u002Fdethereal:add PII data item on the user registration flow\n",[18,505,503],{"__ignoreMap":52},[14,507,508],{},"The plugin infers the element type from your description, determines placement and connections, and shows a preview before writing:",[44,510,513],{"className":511,"code":512,"language":49},[47],"Adding to \"Production Stack\":\n  Component: \"Redis Cache\" (STORE) in Data Tier boundary\n  New data flows:\n    API Server → Redis Cache: \"Cache read\u002Fwrite\"\n\nConfirm? (yes \u002F adjust)\n",[18,514,512],{"__ignoreMap":52},[14,516,517,520,521,525],{},[204,518,519],{},"State behavior:"," No change at DISCOVERED or STRUCTURE_COMPLETE. At ENRICHING or later, triggers a backward transition to STRUCTURE_COMPLETE (see ",[419,522,524],{"href":523},"\u002Fdethereal\u002Fguided-workflow#backward-transitions","Backward Transitions",").",[31,527],{},[39,529,531],{"id":530},"detherealremove-element-reference",[18,532,533],{},"\u002Fdethereal:remove [element reference]",[14,535,536],{},"Remove elements with dependency checking.",[44,538,541],{"className":539,"code":540,"language":49},[47],"> \u002Fdethereal:remove Redis Cache\n",[18,542,540],{"__ignoreMap":52},[14,544,545],{},"Before removal, the plugin shows all dependent elements (connected flows, associated data items, attribute files):",[44,547,550],{"className":548,"code":549,"language":49},[47],"Removing [STORE] \"Redis Cache\" will also affect:\n  Data flows (will be removed):\n    - \"API Server → Redis Cache\" (Cache read\u002Fwrite)\n  Attribute files (will be deleted):\n    - attributes\u002Fcomponents\u002Fabc123.json\n\nProceed? (yes \u002F no \u002F remove component only)\n",[18,551,549],{"__ignoreMap":52},[14,553,554],{},"If removing a boundary, child components are relocated to the parent boundary — they're never silently deleted.",[14,556,557,559,560,563],{},[204,558,519],{}," Same as ",[18,561,562],{},"\u002Fdethereal:add"," — backward transition at ENRICHING or later.",[31,565],{},[34,567,569],{"id":568},"classification-and-enrichment-commands","Classification and Enrichment Commands",[39,571,573],{"id":572},"detherealclassify",[18,574,575],{},"\u002Fdethereal:classify",[14,577,578,581,582],{},[204,579,580],{},"Usage:"," ",[18,583,584],{},"\u002Fdethereal:classify [--type components|flows|boundaries|data-items]",[14,586,587],{},"Assign classes to unclassified elements using a two-pass process.",[14,589,590],{},[204,591,305],{},[307,593,594],{},[310,595,596,599],{},[18,597,598],{},"--type"," — filter to a specific element type (optional; classifies all types by default)",[44,601,604],{"className":602,"code":603,"language":49},[47],"> \u002Fdethereal:classify\n",[18,605,603],{"__ignoreMap":52},[14,607,608,611],{},[204,609,610],{},"Pass 1 (Deterministic):"," Queries the platform's class library and matches by name\u002Ftype (e.g., \"PostgreSQL\" matches \"Database\" class). High confidence, no LLM needed.",[14,613,614,617],{},[204,615,616],{},"Pass 2 (LLM-Assisted):"," For remaining unclassified elements, proposes classes using boundary context and peer inference.",[14,619,620,623],{},[204,621,622],{},"Crown jewel tagging:"," Fuzzy-matches crown jewel names from your scope definition to components and tags them.",[44,625,628],{"className":626,"code":627,"language":49},[47],"Classification Proposal\n\n| # | Element | Type | Proposed Class | Confidence | Crown Jewel |\n|---|---------|------|----------------|------------|-------------|\n| 1 | PostgreSQL | STORE | Database | high (IaC) | yes |\n| 2 | Redis | STORE | Key-Value Store | high (IaC) | — |\n| 3 | API Server | PROCESS | Web Application | medium (LLM) | — |\n\nApply all? (yes \u002F modify \u002F skip)\n",[18,629,627],{"__ignoreMap":52},[14,631,632,635],{},[204,633,634],{},"Quality gate:"," 100% of STORE components must be classified. 80% overall target.",[14,637,638,641],{},[204,639,640],{},"State:"," No transition — classification is tracked by the quality score.",[31,643],{},[39,645,647],{"id":646},"detherealenrich-tier1allpick-focus-credentialsmonitoringcompliancecontrols-pick-element-id",[18,648,649],{},"\u002Fdethereal:enrich [tier1|all|pick] [--focus credentials|monitoring|compliance|controls] [--pick \u003Celement-id>]",[14,651,652],{},"Populate security attributes, credentials, MITRE ATT&CK references, monitoring tools, and security controls.",[14,654,655],{},[204,656,657],{},"Scope arguments:",[307,659,660,666,672],{},[310,661,662,665],{},[18,663,664],{},"tier1"," — crown jewels only (fastest)",[310,667,668,671],{},[18,669,670],{},"all"," — all components in tier order (default)",[310,673,674,677],{},[18,675,676],{},"pick"," — manual selection (interactive list)",[14,679,680],{},[204,681,682],{},"Focus arguments:",[307,684,685,691,697,703],{},[310,686,687,690],{},[18,688,689],{},"--focus credentials"," — credential topology only",[310,692,693,696],{},[18,694,695],{},"--focus monitoring"," — monitoring tools only",[310,698,699,702],{},[18,700,701],{},"--focus compliance"," — compliance-driven prompts only",[310,704,705,708,709,712,713,716,717,475],{},[18,706,707],{},"--focus controls"," — control assignment pass (separate invocation, own 40-turn budget). Auto-pulls referenced Controls, lets you edit per-instance attributes, and queues ",[18,710,711],{},"pendingEdit"," blocks for the next push. Greenfield Controls get a temporary ID; brownfield Controls write to ",[18,714,715],{},"controls\u002F\u003Cid>.json",". See ",[419,718,487],{"href":719},"\u002Fdethereal\u002Fdiscovery-and-enrichment#part-4-control-enrichment",[14,721,722],{},[204,723,724],{},"Targeted flag:",[307,726,727],{},[310,728,729,732],{},[18,730,731],{},"--pick \u003Celement-id>"," — target a single element by id, skipping the interactive selector. Drift detection on resume uses it to re-enrich an element whose technology or attributes changed in your source; also available for direct invocation when you know the element id.",[44,734,737],{"className":735,"code":736,"language":49},[47],"> \u002Fdethereal:enrich tier1\n",[18,738,736],{"__ignoreMap":52},[14,740,741],{},"Presents enrichment in batches by tier:",[44,743,746],{"className":744,"code":745,"language":49},[47],"Enrichment scope: 13 components\n  Tier 1 (crown jewels):    2 — payment-db, user-db\n  Tier 2 (cross-boundary):  5\n  Tier 3 (internet-facing): 2\n  Tier 4 (internal):        4\n\nProcessing: tier1 only. Confirm? (yes \u002F all \u002F pick)\n",[18,747,745],{"__ignoreMap":52},[14,749,750,751,754,755,758],{},"Enrichment is driven by each element's ",[204,752,753],{},"class template",", not by a fixed question list. The attribute stub written during classification contains every field the assigned class declares, seeded to ",[18,756,757],{},"null","; those null fields are the checklist, and every one of them must be resolved to a concrete value. The plugin looks for values in code, IaC, and config first, then asks you only about what it could not find.",[14,760,761,762,765,766,770],{},"The ",[204,763,764],{},"six key attributes"," are a floor applied after the template pass — checked on every in-scope component regardless of what its class template happened to cover. See ",[419,767,769],{"href":768},"\u002Fdethereal\u002Fmodel-concepts#the-6-key-component-attributes","The 6 Key Component Attributes"," for the exact key names, which must be written literally.",[14,772,773,774,777],{},"Enrichment also covers credential mapping and monitoring tools. It does ",[204,775,776],{},"not"," write MITRE ATT&CK technique IDs onto attribute files — tactic coverage is derived on the platform from analysis exposures.",[14,779,780,781,784,785,788],{},"Because ",[18,782,783],{},"attribute_completion_rate"," (20 points of the quality score) counts resolved ",[204,786,787],{},"template"," fields, answering only the six and stopping leaves the score low — the remaining null fields in each attribute file are the outstanding work.",[14,790,791,793],{},[204,792,438],{}," ENRICHING (first confirmed batch triggers the transition if not already there)",[14,795,483,796,798],{},[419,797,487],{"href":486}," for the full enrichment workflow.",[31,800],{},[34,802,804],{"id":803},"review-and-analysis-commands","Review and Analysis Commands",[39,806,808],{"id":807},"detherealreview-directory-path-structure-only",[18,809,810],{},"\u002Fdethereal:review [directory-path] [--structure-only]",[14,812,813],{},"Quality dashboard with score breakdown, gap analysis, and readiness assessment. This command does not modify model files.",[14,815,816],{},[204,817,818],{},"Full review:",[44,820,823],{"className":821,"code":822,"language":49},[47],"> \u002Fdethereal:review\n",[18,824,822],{"__ignoreMap":52},[14,826,827,828,832],{},"Shows quality score (7-factor breakdown), quality gate evaluation (Gate 1\u002F2\u002F3), common gaps checklist, top issues, analysis readiness assessment, and — if the model carries trust zoning — an advisory ",[419,829,831],{"href":830},"\u002Fdethereal\u002Freview-and-analysis#zoning-coherence-advisory","zoning-coherence roll-up"," (the six findings, never sync-blocking).",[14,834,835],{},[204,836,837],{},"Structure-only review:",[44,839,842],{"className":840,"code":841,"language":49},[47],"> \u002Fdethereal:review --structure-only\n",[18,843,841],{"__ignoreMap":52},[14,845,846],{},"Lightweight structural validation — checks required fields, ID uniqueness, reference integrity, orphaned components, and schema compliance. Useful for catching errors before enrichment.",[14,848,483,849,853],{},[419,850,852],{"href":851},"\u002Fdethereal\u002Freview-and-analysis","Review and Analysis"," for output format details.",[31,855],{},[39,857,859],{"id":858},"detherealsurface-directory-path",[18,860,861],{},"\u002Fdethereal:surface [directory-path]",[14,863,864],{},"Attack surface summary with component breakdown, trust boundary crossings, and control gap analysis. This command does not modify model files.",[44,866,869],{"className":867,"code":868,"language":49},[47],"> \u002Fdethereal:surface\n",[18,870,868],{"__ignoreMap":52},[14,872,873],{},"Produces 8 analysis sections:",[875,876,877,880,883,886,889,892,895,898],"ol",{},[310,878,879],{},"Component breakdown by boundary and type",[310,881,882],{},"Trust boundary crossing matrix (encryption and authentication status)",[310,884,885],{},"Exposure counts (requires platform sync)",[310,887,888],{},"Control gap analysis by enrichment tier",[310,890,891],{},"MITRE ATT&CK tactic coverage",[310,893,894],{},"Credential topology and blast radius",[310,896,897],{},"Detection coverage and SOC blind spots",[310,899,900],{},"Cross-model analysis boundaries",[14,902,483,903,905],{},[419,904,852],{"href":851}," for details.",[31,907],{},[34,909,911],{"id":910},"sync-commands","Sync Commands",[39,913,915],{"id":914},"detherealsync-pushpullstatusrepair-walpromote-external-edittombstone",[18,916,917],{},"\u002Fdethereal:sync push|pull|status|repair-wal|promote-external-edit|tombstone [...]",[14,919,920],{},"Synchronize local model with the Dethernety platform, plus four recovery verbs for the control-library workflow.",[14,922,923],{},[204,924,925],{},"Push (publish local to platform):",[44,927,930],{"className":928,"code":929,"language":49},[47],"> \u002Fdethereal:sync push\n",[18,931,929],{"__ignoreMap":52},[14,933,934,935,938,939,189,942,945,946,949,950,953,954,716,957,475],{},"Validates the model (Gate 2 pre-flight), checks for conflicts with the platform version, and publishes. Server-generated IDs are written back to local files. If your model has Controls assigned to multiple Models, the push pauses on the ",[204,936,937],{},"shared-ownership prompt"," — you choose ",[18,940,941],{},"cancel",[18,943,944],{},"push-anyway",", or ",[18,947,948],{},"push-unverified"," per Control (",[18,951,952],{},"clone-and-swap"," is not yet available). Decisions are recorded in ",[18,955,956],{},".dethereal\u002Fcontrol-audit.log",[419,958,960],{"href":959},"\u002Fdethereal\u002Fsync-and-version-control#shared-ownership-prompts","Sync and Version Control",[14,962,963],{},[204,964,965],{},"Pull (import from platform):",[44,967,970],{"className":968,"code":969,"language":49},[47],"> \u002Fdethereal:sync pull\n",[18,971,969],{"__ignoreMap":52},[14,973,974,975,977],{},"Lists platform models, lets you select one, and exports it to local files. If a local model already exists at the target path, offers to backup, overwrite, or cancel. Pulling also materialises ",[18,976,715],{}," for every Control referenced by the model.",[14,979,980],{},[204,981,982],{},"Status:",[44,984,987],{"className":985,"code":986,"language":49},[47],"> \u002Fdethereal:sync status\n",[18,988,986],{"__ignoreMap":52},[14,990,991,992,994,995,998,999,1002,1003,475],{},"Shows sync state, last push\u002Fpull timestamps, whether local changes have been pushed, and the count of pending shared-edit prompts (Controls with un-pushed ",[18,993,711],{}," blocks). If drift between local ",[18,996,997],{},"attributes"," and ",[18,1000,1001],{},"platformAttributes"," is detected, surfaces a hint to run ",[18,1004,1005],{},"promote-external-edit",[14,1007,1008],{},[204,1009,1010],{},"Recovery verbs (control-library workflow):",[44,1012,1015],{"className":1013,"code":1014,"language":49},[47],"> \u002Fdethereal:sync repair-wal [directory-path]\n",[18,1016,1014],{"__ignoreMap":52},[14,1018,1019,1020,1023,1024,475],{},"Surface a stranded WAL journal (",[18,1021,1022],{},".dethereal\u002Fpending-id-rewrite.json",") and walk through three recovery actions: delete journal, retry replay, or manually rename. Use when any push\u002Fpull\u002Fstatus returns ",[18,1025,1026],{},"WAL_REPLAY_FAILED",[44,1028,1031],{"className":1029,"code":1030,"language":49},[47],"> \u002Fdethereal:sync promote-external-edit \u003CcontrolId> \u003CclassId>\n",[18,1032,1030],{"__ignoreMap":52},[14,1034,1035,1036,1039,1040,1042],{},"Unblock a push stopped by the external-edit guard (",[18,1037,1038],{},"EXTERNAL_EDIT_DETECTED","). When someone else changed the Control on the platform between your pull and push, this promotes the platform's current state into your local ",[18,1041,711],{}," so the next push runs the shared-ownership check against your effective intent. No platform mutation; purely local.",[44,1044,1047],{"className":1045,"code":1046,"language":49},[47],"> \u002Fdethereal:sync tombstone \u003CcontrolId>\n",[18,1048,1046],{"__ignoreMap":52},[14,1050,1051],{},"Mark a Control as tombstoned locally so future pulls don't resurrect it. Useful when retiring a Control without waiting for it to be deleted on the platform and for a later pull to notice.",[14,1053,1054,1060,1061,1064,1065,1068],{},[204,1055,1056,1059],{},[18,1057,1058],{},"merge-from-file"," (in-prompt verb)."," During a shared-ownership prompt with large per-key payloads, the operator can stage edits via ",[18,1062,1063],{},"merge-from-file \u003Cn>.\u003Ckey> = \u003Cpath>"," instead of pasting them inline. The file lives under ",[18,1066,1067],{},".dethereal\u002Fmerge-staging\u002F"," (auto-created if absent).",[14,1070,483,1071,1074],{},[419,1072,960],{"href":1073},"\u002Fdethereal\u002Fsync-and-version-control"," for conflict handling and the control-library push flow.",[31,1076],{},[34,1078,1080],{"id":1079},"guided-workflow","Guided Workflow",[39,1082,1084],{"id":1083},"detherealthreat-model-system-description-or-model-path-full-scan",[18,1085,1086],{},"\u002Fdethereal:threat-model [system description or model path] [--full-scan]",[14,1088,1089],{},"The complete 11-step guided workflow — scope definition through validation and platform sync.",[44,1091,1094],{"className":1092,"code":1093,"language":49},[47],"> \u002Fdethereal:threat-model a payment processing API with PostgreSQL and Redis\n",[18,1095,1093],{"__ignoreMap":52},[14,1097,1098],{},"Or to resume an existing model:",[44,1100,1103],{"className":1101,"code":1102,"language":49},[47],"> \u002Fdethereal:threat-model .\u002Fthreat-models\u002Fpayment-api\n",[18,1104,1102],{"__ignoreMap":52},[14,1106,1107],{},"This is the recommended approach for new models. It chains together discovery, classification, enrichment, validation, and sync with checkpoints between phases. You can stop at any point and resume later.",[14,1109,1110,1113,1114,1117,1118,1122],{},[204,1111,1112],{},"Trust zoning"," is ratified inline as you go: the trust skeleton (zones, planes) at Step 4, approved channels (conduits) at Step 5, ",[18,1115,1116],{},"RESTRICTED"," promotion at Step 7, and advisory zoning-coherence findings at Step 9. See ",[419,1119,1121],{"href":1120},"\u002Fplatform\u002Fboundary-trust-zones","Boundary Trust Zones"," for the concepts and the GUI equivalent.",[14,1124,1125,1128,1129,1132,1133,1135,1136,1135,1139,716,1142,475],{},[204,1126,1127],{},"Resume + drift detection."," When resuming a model with a prior baseline (",[18,1130,1131],{},"state.lastReconcileCommit"," set at end of discovery), the workflow detects in-scope file changes since the baseline and routes them through ",[18,1134,562],{}," \u002F ",[18,1137,1138],{},"\u002Fdethereal:remove",[18,1140,1141],{},"\u002Fdethereal:enrich",[419,1143,1145],{"href":1144},"\u002Fdethereal\u002Fguided-workflow#drift-detection-on-resume","Drift detection on resume",[14,1147,1148,1153,1154,1157],{},[204,1149,1150],{},[18,1151,1152],{},"--full-scan"," bypasses drift detection and re-runs ",[18,1155,1156],{},"\u002Fdethereal:discover"," end-to-end. Use this after a history rewrite, when the baseline is no longer in your branch's ancestry, or when you want to re-baseline against the current source tree.",[14,1159,483,1160,1164],{},[419,1161,1163],{"href":1162},"\u002Fdethereal\u002Fguided-workflow","The 11-Step Guided Workflow"," for the complete walkthrough.",[31,1166],{},[14,1168,1169,581,1172,1176],{},[204,1170,1171],{},"Next:",[419,1173,1175],{"href":1174},"\u002Fdethereal\u002Fmodel-concepts","Model Concepts"," — components, boundaries, data flows, classes, and quality scoring",{"title":52,"searchDepth":1178,"depth":1178,"links":1179},3,[1180,1186,1192,1198,1202,1206,1209],{"id":36,"depth":1181,"text":37,"children":1182},2,[1183,1184,1185],{"id":41,"depth":1178,"text":42},{"id":58,"depth":1178,"text":59},{"id":143,"depth":1178,"text":144},{"id":158,"depth":1181,"text":159,"children":1187},[1188,1189,1190,1191],{"id":162,"depth":1178,"text":165},{"id":248,"depth":1178,"text":251},{"id":268,"depth":1178,"text":271},{"id":294,"depth":1178,"text":297},{"id":344,"depth":1181,"text":345,"children":1193},[1194,1195,1196,1197],{"id":348,"depth":1178,"text":351},{"id":444,"depth":1178,"text":447},{"id":493,"depth":1178,"text":496},{"id":530,"depth":1178,"text":533},{"id":568,"depth":1181,"text":569,"children":1199},[1200,1201],{"id":572,"depth":1178,"text":575},{"id":646,"depth":1178,"text":649},{"id":803,"depth":1181,"text":804,"children":1203},[1204,1205],{"id":807,"depth":1178,"text":810},{"id":858,"depth":1178,"text":861},{"id":910,"depth":1181,"text":911,"children":1207},[1208],{"id":914,"depth":1178,"text":917},{"id":1079,"depth":1181,"text":1080,"children":1210},[1211],{"id":1083,"depth":1178,"text":1086},"Complete reference for all 14 Dethereal slash commands","md",{"category":1215,"position":1216,"tags":1217},"documentation",4,[1218,1219,1220,1221],"dethereal","commands","reference","skills",true,"\u002Fdethereal\u002Fcommand-reference",{"title":5,"description":1212},"03.dethereal\u002F03.command-reference","HAdQMVbXNUIdtRrseovBu6DB_yKKDnYUaj6_RIG5ZLM",[1228,1281,1316,1358,1392,1435,1450,1520],{"title":1229,"description":1230,"path":1231,"stem":1232,"children":1233,"page":-1},"Platform","Modelling, analysis, findings and controls in the Dethernety platform.","\u002Fplatform","01.platform",[1234,1238,1243,1248,1253,1258,1263,1268,1271,1276],{"title":1235,"path":1231,"stem":1236,"description":1237},"Dethernety User Documentation","01.platform\u002Findex","User guide for the Dethernety threat modeling platform",{"title":1239,"path":1240,"stem":1241,"description":1242},"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":1244,"path":1245,"stem":1246,"description":1247},"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":1249,"path":1250,"stem":1251,"description":1252},"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":1254,"path":1255,"stem":1256,"description":1257},"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":1259,"path":1260,"stem":1261,"description":1262},"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":1264,"path":1265,"stem":1266,"description":1267},"Issue Management Guide","\u002Fplatform\u002Fissue-management-guide","01.platform\u002F06.issue-management-guide","Issue tracking, filtering, and management in Dethernety.",{"title":1121,"path":1120,"stem":1269,"description":1270},"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":1272,"path":1273,"stem":1274,"description":1275},"Understanding Modules","\u002Fplatform\u002Funderstanding-modules","01.platform\u002F08.understanding-modules","How Dethernety's module system extends your threat modeling capabilities.",{"title":1277,"path":1278,"stem":1279,"description":1280},"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":1282,"description":1283,"path":1284,"stem":1285,"children":1286,"page":-1},"BYODt cloud","Deploying the platform yourself and connecting it to the BYODt cloud.","\u002Fbyodt-cloud","02.byodt-cloud",[1287,1291,1296,1301,1306,1311],{"title":1288,"path":1284,"stem":1289,"description":1290},"BYODt Deployment","02.byodt-cloud\u002Findex","Run Dethernety on your own machine: install, configure, operate, and recover",{"title":1292,"path":1293,"stem":1294,"description":1295},"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":1297,"path":1298,"stem":1299,"description":1300},"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":1302,"path":1303,"stem":1304,"description":1305},"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":1307,"path":1308,"stem":1309,"description":1310},"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":1312,"path":1313,"stem":1314,"description":1315},"Troubleshooting the BYODt Deployment","\u002Fbyodt-cloud\u002Ftroubleshooting","02.byodt-cloud\u002F05.troubleshooting","Symptom, cause, and fix for the failures this deployment reports",{"title":1317,"description":1318,"path":1319,"stem":1320,"children":1321,"page":-1},"Dethereal","The Claude Code plugin: build a threat model in conversation and publish it to the platform.","\u002Fdethereal","03.dethereal",[1322,1326,1330,1333,1334,1338,1341,1344,1348,1353],{"title":1323,"path":1319,"stem":1324,"description":1325},"Dethereal — Claude Code Plugin for Threat Modeling","03.dethereal\u002Findex","Comprehensive documentation for the Dethereal threat modeling plugin",{"title":1327,"path":421,"stem":1328,"description":1329},"Getting Started with Dethereal","03.dethereal\u002F01.getting-started","Install the plugin, authenticate, and create your first threat model",{"title":1163,"path":1162,"stem":1331,"description":1332},"03.dethereal\u002F02.guided-workflow","Complete walkthrough of the \u002Fdethereal:threat-model guided process",{"title":5,"path":1223,"stem":1225,"description":1212},{"title":1335,"path":1174,"stem":1336,"description":1337},"Threat Model Concepts","03.dethereal\u002F04.model-concepts","Components, boundaries, data flows, classes, attributes, and quality scoring",{"title":487,"path":486,"stem":1339,"description":1340},"03.dethereal\u002F05.discovery-and-enrichment","Infrastructure scanning, security attributes, MITRE ATT&CK, credentials, and compliance",{"title":960,"path":1073,"stem":1342,"description":1343},"03.dethereal\u002F06.sync-and-version-control","Push\u002Fpull workflow, conflict handling, git integration, and multi-model projects",{"title":1345,"path":851,"stem":1346,"description":1347},"Review and Attack Surface Analysis","03.dethereal\u002F07.review-and-analysis","Quality review, attack surface summary, and platform analysis integration",{"title":1349,"path":1350,"stem":1351,"description":1352},"Agents, Tools, and Hooks","\u002Fdethereal\u002Fagents-and-architecture","03.dethereal\u002F08.agents-and-architecture","How the 5 AI agents, 22 MCP tools, and 3 lifecycle hooks work together",{"title":1354,"path":1355,"stem":1356,"description":1357},"Dethereal Glossary","\u002Fdethereal\u002Fglossary","03.dethereal\u002F09.glossary","Definitions for Dethereal-specific terminology",{"title":1359,"description":1360,"path":1361,"stem":1362,"children":1363,"page":-1},"Threat Report","The residual-risk report over a threat model: reading it, filtering it and exporting it.","\u002Fthreat-report","04.threat-report",[1364,1367,1372,1377,1382,1387],{"title":1359,"path":1361,"stem":1365,"description":1366},"04.threat-report\u002Findex","Read, filter, drill into, and export a residual-risk report over a threat model",{"title":1368,"path":1369,"stem":1370,"description":1371},"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":1373,"path":1374,"stem":1375,"description":1376},"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":1378,"path":1379,"stem":1380,"description":1381},"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":1383,"path":1384,"stem":1385,"description":1386},"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":1388,"path":1389,"stem":1390,"description":1391},"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":1393,"description":1394,"path":1395,"stem":1396,"children":1397,"page":-1},"Risk assessment","The risk assessment module: the register, the reports and the method behind them.","\u002Frisk-assessment","05.risk-assessment",[1398,1402,1407,1412,1416,1421,1425,1430],{"title":1399,"path":1395,"stem":1400,"description":1401},"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":1403,"path":1404,"stem":1405,"description":1406},"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":1408,"path":1409,"stem":1410,"description":1411},"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":422,"path":1413,"stem":1414,"description":1415},"\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":1417,"path":1418,"stem":1419,"description":1420},"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":1373,"path":1422,"stem":1423,"description":1424},"\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":1426,"path":1427,"stem":1428,"description":1429},"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":1431,"path":1432,"stem":1433,"description":1434},"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":1436,"description":1437,"path":1438,"stem":1439,"children":1440,"page":-1},"Threat Patterns","The Threat Patterns module and its modelling checklist.","\u002Fthreat-patterns","06.threat-patterns",[1441,1445],{"title":1442,"path":1438,"stem":1443,"description":1444},"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":1446,"path":1447,"stem":1448,"description":1449},"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":1451,"description":1452,"path":1453,"stem":1454,"children":1455,"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",[1456,1460,1465,1470,1475,1480,1485,1490,1495,1500,1505,1510,1515],{"title":1457,"path":1453,"stem":1458,"description":1459},"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":1461,"path":1462,"stem":1463,"description":1464},"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":1466,"path":1467,"stem":1468,"description":1469},"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":1471,"path":1472,"stem":1473,"description":1474},"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":1476,"path":1477,"stem":1478,"description":1479},"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":1481,"path":1482,"stem":1483,"description":1484},"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":1486,"path":1487,"stem":1488,"description":1489},"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":1491,"path":1492,"stem":1493,"description":1494},"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":1496,"path":1497,"stem":1498,"description":1499},"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":1501,"path":1502,"stem":1503,"description":1504},"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":1506,"path":1507,"stem":1508,"description":1509},"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":1511,"path":1512,"stem":1513,"description":1514},"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":1516,"path":1517,"stem":1518,"description":1519},"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":1521,"description":1522,"path":1523,"stem":1524,"children":1525,"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",[1526,1530,1535],{"title":1527,"path":1523,"stem":1528,"description":1529},"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":1531,"path":1532,"stem":1533,"description":1534},"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":1536,"path":1537,"stem":1538,"description":1539},"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",1793748184840]