[{"data":1,"prerenderedAt":4516},["ShallowReactive",2],{"navigation_docs":3,"-developer-experience-developer-docs-command-reference":1185,"-developer-experience-developer-docs-command-reference-surround":4511},[4,231,468,507,728,818,902,959,1181],{"title":5,"path":6,"stem":7,"children":8,"page":78},"Getting Started","/getting-started","01.getting-started",[9,220,225],{"title":10,"order":11,"path":12,"stem":13,"children":14,"page":78},"Admin Onboarding: Getting Started",1,"/getting-started/admin-onboarding-getting-started","01.getting-started/01.admin-onboarding-getting-started",[15,19,23,27,34,38,45,79,128,141,152,156,169,173,182,199,207,213],{"title":16,"path":17,"stem":18},"Setting the Stage: How Predictability becomes Reality in DevStride","/getting-started/admin-onboarding-getting-started/setting-the-stage","01.getting-started/01.admin-onboarding-getting-started/01.setting-the-stage",{"title":20,"path":21,"stem":22},"Admin Onboarding - Getting Started","/getting-started/admin-onboarding-getting-started/admin-onboarding-guide","01.getting-started/01.admin-onboarding-getting-started/02.admin-onboarding-guide",{"title":24,"path":25,"stem":26},"Basic Terms","/getting-started/admin-onboarding-getting-started/basic-terms","01.getting-started/01.admin-onboarding-getting-started/03.basic-terms",{"title":28,"path":29,"stem":30,"children":31},"Setting Up Users and Teams","/getting-started/admin-onboarding-getting-started/setting-up-users-and-teams","01.getting-started/01.admin-onboarding-getting-started/04.setting-up-users-and-teams/index",[32],{"title":33,"path":29,"stem":30},"Admin Onboarding - Setting up  Users and Teams",{"title":35,"path":36,"stem":37},"Admin Onboarding - Configuring Your Work Model","/getting-started/admin-onboarding-getting-started/configuring-your-work-model","01.getting-started/01.admin-onboarding-getting-started/05.configuring-your-work-model",{"title":39,"path":40,"stem":41,"children":42},"Map Value: WorkStreams","/getting-started/admin-onboarding-getting-started/map-value-workstreams","01.getting-started/01.admin-onboarding-getting-started/06.map-value-workstreams/index",[43],{"title":44,"path":40,"stem":41},"Admin Onboarding: Understanding Workstreams",{"title":46,"path":47,"stem":48,"children":49,"page":78},"Items","/getting-started/admin-onboarding-getting-started/items","01.getting-started/01.admin-onboarding-getting-started/07.items",[50,54,61,67,74],{"title":51,"path":52,"stem":53},"Setting up Your Item Type Hierarchy","/getting-started/admin-onboarding-getting-started/items/setting-up-item-type-hierarchy","01.getting-started/01.admin-onboarding-getting-started/07.items/01.setting-up-item-type-hierarchy",{"title":55,"path":56,"stem":57,"children":58},"Items: Setting Up Custom Fields","/getting-started/admin-onboarding-getting-started/items/setting-up-custom-fields","01.getting-started/01.admin-onboarding-getting-started/07.items/02.setting-up-custom-fields/index",[59],{"title":60,"path":56,"stem":57},"Admin Onboarding - Setting up Custom Fields",{"title":62,"path":63,"stem":64,"children":65},"Admin Onboarding - Setting up Tags","/getting-started/admin-onboarding-getting-started/items/setting-up-tags","01.getting-started/01.admin-onboarding-getting-started/07.items/03.setting-up-tags/index",[66],{"title":62,"path":63,"stem":64},{"title":68,"path":69,"stem":70,"children":71},"Items: Creating and Managing Forms","/getting-started/admin-onboarding-getting-started/items/creating-and-managing-forms","01.getting-started/01.admin-onboarding-getting-started/07.items/04.creating-and-managing-forms/index",[72],{"title":73,"path":69,"stem":70},"Admin Onboarding - Creating and Managing Forms",{"title":75,"path":76,"stem":77},"Create Items with AI","/getting-started/admin-onboarding-getting-started/items/create-items-with-ai","01.getting-started/01.admin-onboarding-getting-started/07.items/05.create-items-with-ai",false,{"title":80,"path":81,"stem":82,"children":83,"page":78},"Item Workspace Tour","/getting-started/admin-onboarding-getting-started/item-workspace-tour","01.getting-started/01.admin-onboarding-getting-started/08.item-workspace-tour",[84,88,92,96,100,104,108,112,116,120,124],{"title":85,"path":86,"stem":87},"Admin Onboarding - Item Workspace Header","/getting-started/admin-onboarding-getting-started/item-workspace-tour/header","01.getting-started/01.admin-onboarding-getting-started/08.item-workspace-tour/01.header",{"title":89,"path":90,"stem":91},"Admin Onboarding - Item Workspace Tabs","/getting-started/admin-onboarding-getting-started/item-workspace-tour/tabs","01.getting-started/01.admin-onboarding-getting-started/08.item-workspace-tour/02.tabs",{"title":93,"path":94,"stem":95},"Admin Onboarding - Item Workspace Quick Links","/getting-started/admin-onboarding-getting-started/item-workspace-tour/quick-links","01.getting-started/01.admin-onboarding-getting-started/08.item-workspace-tour/03.quick-links",{"title":97,"path":98,"stem":99},"Admin Onboarding - Item Workspace - Right Bar: Team through Status","/getting-started/admin-onboarding-getting-started/item-workspace-tour/right-bar-team-through-status","01.getting-started/01.admin-onboarding-getting-started/08.item-workspace-tour/04.right-bar-team-through-status",{"title":101,"path":102,"stem":103},"Admin Onboarding - Item Workspace - Right Bar: Point Estimates","/getting-started/admin-onboarding-getting-started/item-workspace-tour/right-bar-point-estimates","01.getting-started/01.admin-onboarding-getting-started/08.item-workspace-tour/05.right-bar-point-estimates",{"title":105,"path":106,"stem":107},"Admin Onboarding - Item Workspace - Right Bar: Time Estimates","/getting-started/admin-onboarding-getting-started/item-workspace-tour/right-bar-time-estimates","01.getting-started/01.admin-onboarding-getting-started/08.item-workspace-tour/06.right-bar-time-estimates",{"title":109,"path":110,"stem":111},"Admin Onboarding - Item Workspace -Right Bar: Best Practice time estimates","/getting-started/admin-onboarding-getting-started/item-workspace-tour/right-bar-best-practice-time-estimates","01.getting-started/01.admin-onboarding-getting-started/08.item-workspace-tour/07.right-bar-best-practice-time-estimates",{"title":113,"path":114,"stem":115},"Admin Onboarding - Item Workspace - Right Bar: Time Spent","/getting-started/admin-onboarding-getting-started/item-workspace-tour/right-bar-time-spent","01.getting-started/01.admin-onboarding-getting-started/08.item-workspace-tour/08.right-bar-time-spent",{"title":117,"path":118,"stem":119},"Admin Onboarding - Item Workspace - Right Bar: Priority","/getting-started/admin-onboarding-getting-started/item-workspace-tour/right-bar-priority","01.getting-started/01.admin-onboarding-getting-started/08.item-workspace-tour/09.right-bar-priority",{"title":121,"path":122,"stem":123},"Admin Onboarding - Item Workspace - Right Bar: Start Dates and Due Dates","/getting-started/admin-onboarding-getting-started/item-workspace-tour/right-bar-start-dates-and-due-dates","01.getting-started/01.admin-onboarding-getting-started/08.item-workspace-tour/10.right-bar-start-dates-and-due-dates",{"title":125,"path":126,"stem":127},"Admin Onboarding - Item Workspace - Right Bar: Progress Tracking","/getting-started/admin-onboarding-getting-started/item-workspace-tour/right-bar-progress-tracking","01.getting-started/01.admin-onboarding-getting-started/08.item-workspace-tour/11.right-bar-progress-tracking",{"title":129,"path":130,"stem":131,"children":132,"page":78},"Creating and Using Statuses","/getting-started/admin-onboarding-getting-started/creating-and-using-statuses","01.getting-started/01.admin-onboarding-getting-started/09.creating-and-using-statuses",[133,137],{"title":134,"path":135,"stem":136},"Admin Onboarding - Setting Up Workflow Statuses","/getting-started/admin-onboarding-getting-started/creating-and-using-statuses/setting-up-workflow-statuses","01.getting-started/01.admin-onboarding-getting-started/09.creating-and-using-statuses/01.setting-up-workflow-statuses",{"title":138,"path":139,"stem":140},"Admin Onboarding - Create Custom Status Collections","/getting-started/admin-onboarding-getting-started/creating-and-using-statuses/create-custom-status-collections","01.getting-started/01.admin-onboarding-getting-started/09.creating-and-using-statuses/02.create-custom-status-collections",{"title":142,"path":143,"stem":144,"children":145},"Populating and Managing WorkStreams","/getting-started/admin-onboarding-getting-started/populating-and-managing-workstreams","01.getting-started/01.admin-onboarding-getting-started/10.populating-and-managing-workstreams/index",[146,148],{"title":147,"path":143,"stem":144},"Admin Onboarding - Populating and Managing Workstreams",{"title":149,"path":150,"stem":151},"Import Templates","/getting-started/admin-onboarding-getting-started/populating-and-managing-workstreams/import-templates","01.getting-started/01.admin-onboarding-getting-started/10.populating-and-managing-workstreams/01.import-templates",{"title":153,"path":154,"stem":155},"Boards: Managing Workflow and Statuses","/getting-started/admin-onboarding-getting-started/boards-managing-workflow-and-statuses","01.getting-started/01.admin-onboarding-getting-started/11.boards-managing-workflow-and-statuses",{"title":157,"path":158,"stem":159,"children":160,"page":78},"Creating Cadences","/getting-started/admin-onboarding-getting-started/creating-cadences","01.getting-started/01.admin-onboarding-getting-started/12.creating-cadences",[161,165],{"title":162,"path":163,"stem":164},"Admin Onboarding - Organizing the When: Understanding Planning Cadences","/getting-started/admin-onboarding-getting-started/creating-cadences/understanding-planning-cadences","01.getting-started/01.admin-onboarding-getting-started/12.creating-cadences/01.understanding-planning-cadences",{"title":166,"path":167,"stem":168},"Admin Onboarding - Setting Up Cadences and Timeboxes","/getting-started/admin-onboarding-getting-started/creating-cadences/setting-up-cadences-and-timeboxes","01.getting-started/01.admin-onboarding-getting-started/12.creating-cadences/02.setting-up-cadences-and-timeboxes",{"title":170,"path":171,"stem":172},"Track Progress - Gantt Charts","/getting-started/admin-onboarding-getting-started/track-progress-gantt-charts","01.getting-started/01.admin-onboarding-getting-started/13.track-progress-gantt-charts",{"title":174,"path":175,"stem":176,"children":177,"page":78},"Using AI in DevStride","/getting-started/admin-onboarding-getting-started/using-ai-in-devstride","01.getting-started/01.admin-onboarding-getting-started/14.using-ai-in-devstride",[178],{"title":179,"path":180,"stem":181},"Creating Items with AI","/getting-started/admin-onboarding-getting-started/using-ai-in-devstride/create-items-with-ai","01.getting-started/01.admin-onboarding-getting-started/14.using-ai-in-devstride/01.create-items-with-ai",{"title":183,"path":184,"stem":185,"children":186,"page":78},"More on Permissions","/getting-started/admin-onboarding-getting-started/permissions","01.getting-started/01.admin-onboarding-getting-started/15.permissions",[187,191,195],{"title":188,"path":189,"stem":190},"Understanding Permissions","/getting-started/admin-onboarding-getting-started/permissions/understanding-permissions","01.getting-started/01.admin-onboarding-getting-started/15.permissions/01.understanding-permissions",{"title":192,"path":193,"stem":194},"Roles & Permissions","/getting-started/admin-onboarding-getting-started/permissions/roles-and-permissions","01.getting-started/01.admin-onboarding-getting-started/15.permissions/02.roles-and-permissions",{"title":196,"path":197,"stem":198},"Sharing & Access","/getting-started/admin-onboarding-getting-started/permissions/sharing-and-access","01.getting-started/01.admin-onboarding-getting-started/15.permissions/03.sharing-and-access",{"title":200,"path":201,"stem":202,"children":203,"page":78},"API Keys","/getting-started/admin-onboarding-getting-started/api-keys","01.getting-started/01.admin-onboarding-getting-started/16.api-keys",[204],{"title":200,"path":205,"stem":206},"/getting-started/admin-onboarding-getting-started/api-keys/api-keys","01.getting-started/01.admin-onboarding-getting-started/16.api-keys/01.api-keys",{"title":208,"path":209,"stem":210,"children":211},"Pulling it all together: Planned Value to Delivery","/getting-started/admin-onboarding-getting-started/overall-flow-and-best-practices","01.getting-started/01.admin-onboarding-getting-started/17.overall-flow-and-best-practices/index",[212],{"title":208,"path":209,"stem":210},{"title":214,"path":215,"stem":216,"children":217},"Best Practices for Project Management in DevStride","/getting-started/admin-onboarding-getting-started/best-practices-for-project-management","01.getting-started/01.admin-onboarding-getting-started/18.best-practices-for-project-management/index",[218],{"title":219,"path":215,"stem":216},"Handling incomplete items from Sprint to Sprint",{"title":24,"path":221,"stem":222,"children":223},"/getting-started/basic-terms","01.getting-started/02.basic-terms/index",[224],{"title":24,"path":221,"stem":222},{"title":226,"path":227,"stem":228,"children":229},"Keyboard Shortcuts","/getting-started/keyboard-shortcuts","01.getting-started/03.keyboard-shortcuts/index",[230],{"title":226,"path":227,"stem":228},{"title":232,"path":233,"stem":234,"children":235,"page":78},"Major Modules","/major-modules","02.major-modules",[236,294,348,369,427],{"title":237,"order":238,"path":239,"stem":240,"children":241,"page":78},"Map Value: Workstreams and Work Items",2,"/major-modules/workstreams-and-work-items","02.major-modules/01.workstreams-and-work-items",[242,246,250,253,257,261,265,269,272],{"title":243,"path":244,"stem":245},"Creating Items","/major-modules/workstreams-and-work-items/creating-work-items","02.major-modules/01.workstreams-and-work-items/01.creating-work-items",{"title":247,"path":248,"stem":249},"The Items Table","/major-modules/workstreams-and-work-items/manage-items-table","02.major-modules/01.workstreams-and-work-items/02.manage-items-table",{"title":179,"path":251,"stem":252},"/major-modules/workstreams-and-work-items/ai-item-creation","02.major-modules/01.workstreams-and-work-items/03.ai-item-creation",{"title":254,"path":255,"stem":256},"Published Lists","/major-modules/workstreams-and-work-items/published-lists","02.major-modules/01.workstreams-and-work-items/04.published-lists",{"title":258,"path":259,"stem":260},"Using the Map","/major-modules/workstreams-and-work-items/using-the-map","02.major-modules/01.workstreams-and-work-items/05.using-the-map",{"title":262,"path":263,"stem":264},"Dependency Graph","/major-modules/workstreams-and-work-items/dependency-graph","02.major-modules/01.workstreams-and-work-items/06.dependency-graph",{"title":266,"path":267,"stem":268},"Workstream & Item Permissions","/major-modules/workstreams-and-work-items/workstream-and-item-permissions","02.major-modules/01.workstreams-and-work-items/07.workstream-and-item-permissions",{"title":149,"path":270,"stem":271},"/major-modules/workstreams-and-work-items/import-templates","02.major-modules/01.workstreams-and-work-items/08.import-templates",{"title":273,"order":274,"path":275,"stem":276,"children":277,"page":78},"Workspace Capabilities",8,"/major-modules/workstreams-and-work-items/workspace-capabilities","02.major-modules/01.workstreams-and-work-items/09.workspace-capabilities",[278,282,286,290],{"title":279,"path":280,"stem":281},"Explore the Workspace","/major-modules/workstreams-and-work-items/workspace-capabilities/explore-the-workspace","02.major-modules/01.workstreams-and-work-items/09.workspace-capabilities/01.explore-the-workspace",{"title":283,"path":284,"stem":285},"Workspace Editor & Collaboration","/major-modules/workstreams-and-work-items/workspace-capabilities/workspace-sidebar","02.major-modules/01.workstreams-and-work-items/09.workspace-capabilities/02.workspace-sidebar",{"title":287,"path":288,"stem":289},"Themes & Appearance","/major-modules/workstreams-and-work-items/workspace-capabilities/themes-and-appearance","02.major-modules/01.workstreams-and-work-items/09.workspace-capabilities/03.themes-and-appearance",{"title":291,"path":292,"stem":293},"Getting Help & Support","/major-modules/workstreams-and-work-items/workspace-capabilities/getting-help-and-support","02.major-modules/01.workstreams-and-work-items/09.workspace-capabilities/04.getting-help-and-support",{"title":295,"order":296,"path":297,"stem":298,"children":299,"page":78},"Plan Delivery: Boards",3,"/major-modules/boards","02.major-modules/02.boards",[300,304,308,312,316,320,324,328,332,336,340,344],{"title":301,"path":302,"stem":303},"How DevStride manages the When: Perpetual vs. Cycle-based Boards","/major-modules/boards/how-devstride-manages-the-when","02.major-modules/02.boards/01.how-devstride-manages-the-when",{"title":305,"path":306,"stem":307},"Working Group Folders: Organizing the Who of the work","/major-modules/boards/working-group-folders","02.major-modules/02.boards/02.working-group-folders",{"title":309,"path":310,"stem":311},"Understanding Board Views","/major-modules/boards/understanding-board-views","02.major-modules/02.boards/03.understanding-board-views",{"title":313,"path":314,"stem":315},"Import Stories and Epics into Boards","/major-modules/boards/import-stories-and-epics-into-boards","02.major-modules/02.boards/04.import-stories-and-epics-into-boards",{"title":317,"path":318,"stem":319},"Adding a Folder","/major-modules/boards/adding-a-folder","02.major-modules/02.boards/05.adding-a-folder",{"title":321,"path":322,"stem":323},"Manage and Edit Dependencies","/major-modules/boards/manage-and-edit-dependencies","02.major-modules/02.boards/06.manage-and-edit-dependencies",{"title":325,"path":326,"stem":327},"Creating Subfolders in DevStride","/major-modules/boards/creating-subfolders-in-devstride","02.major-modules/02.boards/07.creating-subfolders-in-devstride",{"title":329,"path":330,"stem":331},"Setting up and Using Perpetual Boards","/major-modules/boards/setting-up-and-using-perpetual-boards","02.major-modules/02.boards/08.setting-up-and-using-perpetual-boards",{"title":333,"path":334,"stem":335},"Using Cycle Boards","/major-modules/boards/using-cycle-boards","02.major-modules/02.boards/09.using-cycle-boards",{"title":337,"path":338,"stem":339},"Track and Move Work with Board Views","/major-modules/boards/track-and-move-work-with-board-views","02.major-modules/02.boards/10.track-and-move-work-with-board-views",{"title":341,"path":342,"stem":343},"Boards and WIP Limiters","/major-modules/boards/boards-and-wip-limiters","02.major-modules/02.boards/11.boards-and-wip-limiters",{"title":345,"path":346,"stem":347},"Board & Folder Permissions","/major-modules/boards/board-and-folder-permissions","02.major-modules/02.boards/12.board-and-folder-permissions",{"title":349,"path":350,"stem":351,"children":352,"page":78},"Track Progress: Gantts","/major-modules/track-progress-gantts","02.major-modules/03.track-progress-gantts",[353,357,361,365],{"title":354,"path":355,"stem":356},"Track Progress: Setting Up Gantt Charts","/major-modules/track-progress-gantts/setting-up-gantt-charts","02.major-modules/03.track-progress-gantts/01.setting-up-gantt-charts",{"title":358,"path":359,"stem":360},"Viewing Gantt Charts","/major-modules/track-progress-gantts/viewing-gantt-charts","02.major-modules/03.track-progress-gantts/02.viewing-gantt-charts",{"title":362,"path":363,"stem":364},"Using Gantt Charts: Navigating the timeline","/major-modules/track-progress-gantts/navigating-the-timeline","02.major-modules/03.track-progress-gantts/03.navigating-the-timeline",{"title":366,"path":367,"stem":368},"Using Gantt Charts: Navigating the table","/major-modules/track-progress-gantts/navigating-the-table","02.major-modules/03.track-progress-gantts/04.navigating-the-table",{"title":370,"order":371,"path":372,"stem":373,"children":374,"page":78},"Measure Performance: Reports",4,"/major-modules/measure-performance-reports","02.major-modules/04.measure-performance-reports",[375,379,383,387,391,395,399,403,407,411,415,419,423],{"title":376,"path":377,"stem":378},"Reports Overview","/major-modules/measure-performance-reports/viewing-optimization","02.major-modules/04.measure-performance-reports/01.viewing-optimization",{"title":380,"path":381,"stem":382},"Using AI for powerful reports","/major-modules/measure-performance-reports/using-ai-for-powerful-reports","02.major-modules/04.measure-performance-reports/02.using-ai-for-powerful-reports",{"title":384,"path":385,"stem":386},"Report Customization Options","/major-modules/measure-performance-reports/report-filters-and-options","02.major-modules/04.measure-performance-reports/03.report-filters-and-options",{"title":388,"path":389,"stem":390},"What is Current Progress?","/major-modules/measure-performance-reports/what-is-current-progress","02.major-modules/04.measure-performance-reports/04.what-is-current-progress",{"title":392,"path":393,"stem":394},"What is Trending Progress","/major-modules/measure-performance-reports/what-is-trending-progress","02.major-modules/04.measure-performance-reports/05.what-is-trending-progress",{"title":396,"path":397,"stem":398},"What is Cycle Time?","/major-modules/measure-performance-reports/what-is-cycle-time","02.major-modules/04.measure-performance-reports/06.what-is-cycle-time",{"title":400,"path":401,"stem":402},"What is Throughput?","/major-modules/measure-performance-reports/what-is-throughput","02.major-modules/04.measure-performance-reports/07.what-is-throughput",{"title":404,"path":405,"stem":406},"What is Cumulative Flow?","/major-modules/measure-performance-reports/what-is-cumulative-flow","02.major-modules/04.measure-performance-reports/08.what-is-cumulative-flow",{"title":408,"path":409,"stem":410},"What is Velocity?","/major-modules/measure-performance-reports/what-is-velocity","02.major-modules/04.measure-performance-reports/09.what-is-velocity",{"title":412,"path":413,"stem":414},"What is Burn Up?","/major-modules/measure-performance-reports/what-is-burn-up","02.major-modules/04.measure-performance-reports/10.what-is-burn-up",{"title":416,"path":417,"stem":418},"What is Burn Down?","/major-modules/measure-performance-reports/what-is-burn-down","02.major-modules/04.measure-performance-reports/11.what-is-burn-down",{"title":420,"path":421,"stem":422},"What is User Time Completed?","/major-modules/measure-performance-reports/what-is-user-time-completed","02.major-modules/04.measure-performance-reports/12.what-is-user-time-completed",{"title":424,"path":425,"stem":426},"What is Churn?","/major-modules/measure-performance-reports/what-is-churn","02.major-modules/04.measure-performance-reports/13.what-is-churn",{"title":428,"order":274,"path":429,"stem":430,"children":431,"page":78},"Service Desk","/major-modules/service-desk","02.major-modules/05.service-desk",[432,436,440,444,448,452,456,460,464],{"title":433,"path":434,"stem":435},"Overview","/major-modules/service-desk/overview","02.major-modules/05.service-desk/01.overview",{"title":437,"path":438,"stem":439},"Enabling Service Desk","/major-modules/service-desk/enabling-service-desk","02.major-modules/05.service-desk/02.enabling-service-desk",{"title":441,"path":442,"stem":443},"Email Channels & Setup","/major-modules/service-desk/email-channels","02.major-modules/05.service-desk/03.email-channels",{"title":445,"path":446,"stem":447},"Requesters & Companies","/major-modules/service-desk/requesters-and-companies","02.major-modules/05.service-desk/04.requesters-and-companies",{"title":449,"path":450,"stem":451},"Working a Ticket","/major-modules/service-desk/working-a-ticket","02.major-modules/05.service-desk/05.working-a-ticket",{"title":453,"path":454,"stem":455},"Request Forms","/major-modules/service-desk/request-forms","02.major-modules/05.service-desk/06.request-forms",{"title":457,"path":458,"stem":459},"The Suspended Queue","/major-modules/service-desk/suspended-messages","02.major-modules/05.service-desk/07.suspended-messages",{"title":461,"path":462,"stem":463},"Finding & Filtering Tickets","/major-modules/service-desk/finding-and-filtering-tickets","02.major-modules/05.service-desk/08.finding-and-filtering-tickets",{"title":465,"path":466,"stem":467},"Permissions","/major-modules/service-desk/permissions","02.major-modules/05.service-desk/09.permissions",{"title":469,"path":470,"stem":471,"children":472,"page":78},"Personal Workspace","/personal-workspace","03.personal-workspace",[473,479,493,504],{"title":474,"path":475,"stem":476,"children":477},"My Work","/personal-workspace/my-work","03.personal-workspace/01.my-work/index",[478],{"title":474,"path":475,"stem":476},{"title":480,"order":481,"path":482,"stem":483,"children":484,"page":78},"Notifications",7,"/personal-workspace/notifications","03.personal-workspace/02.notifications",[485,489],{"title":486,"path":487,"stem":488},"Notifications in DevStride","/personal-workspace/notifications/overview-of-notification-options","03.personal-workspace/02.notifications/01.overview-of-notification-options",{"title":490,"path":491,"stem":492},"Customizing Notification Settings for Individuals and Teams","/personal-workspace/notifications/customizing-notification-settings-for-individuals-and-teams","03.personal-workspace/02.notifications/02.customizing-notification-settings-for-individuals-and-teams",{"title":494,"path":495,"stem":496,"children":497,"page":78},"My Account","/personal-workspace/my-account","03.personal-workspace/03.my-account",[498,501],{"title":433,"path":499,"stem":500},"/personal-workspace/my-account/overview","03.personal-workspace/03.my-account/01.overview",{"title":200,"path":502,"stem":503},"/personal-workspace/my-account/api-keys","03.personal-workspace/03.my-account/02.api-keys",{"title":226,"path":505,"stem":506},"/personal-workspace/keyboard-shortcuts","03.personal-workspace/04.keyboard-shortcuts",{"title":508,"path":509,"stem":510,"children":511,"page":78},"Workspace Administration","/workspace-administration","04.workspace-administration",[512,532,542,635,648],{"title":513,"path":514,"stem":515,"children":516,"page":78},"Manage Items Module","/workspace-administration/manage-items","04.workspace-administration/01.manage-items",[517,520,524,528],{"title":433,"path":518,"stem":519},"/workspace-administration/manage-items/overview","04.workspace-administration/01.manage-items/01.overview",{"title":521,"path":522,"stem":523},"Finding & Filtering Items","/workspace-administration/manage-items/finding-and-filtering-items","04.workspace-administration/01.manage-items/02.finding-and-filtering-items",{"title":525,"path":526,"stem":527},"Creating & Sharing Views","/workspace-administration/manage-items/creating-and-sharing-views","04.workspace-administration/01.manage-items/03.creating-and-sharing-views",{"title":529,"path":530,"stem":531},"Item Hierarchy","/workspace-administration/manage-items/item-hierarchy","04.workspace-administration/01.manage-items/04.item-hierarchy",{"title":533,"order":534,"path":535,"stem":536,"children":537,"page":78},"Automate Workflows",5,"/workspace-administration/automations","04.workspace-administration/02.automations",[538],{"title":539,"path":540,"stem":541},"Setting Up Basic Automations","/workspace-administration/automations/setting-up-basic-automations","04.workspace-administration/02.automations/01.setting-up-basic-automations",{"title":543,"order":544,"path":545,"stem":546,"children":547,"page":78},"Configure Settings",6,"/workspace-administration/settings","04.workspace-administration/03.settings",[548,561,598,607,631],{"title":549,"path":550,"stem":551,"children":552,"page":78},"Organization","/workspace-administration/settings/organization","04.workspace-administration/03.settings/01.organization",[553,557],{"title":554,"path":555,"stem":556},"Org Configuration","/workspace-administration/settings/organization/org-profile","04.workspace-administration/03.settings/01.organization/01.org-profile",{"title":558,"path":559,"stem":560},"Users, Roles & MFA","/workspace-administration/settings/organization/users-roles-and-mfa","04.workspace-administration/03.settings/01.organization/02.users-roles-and-mfa",{"title":562,"path":563,"stem":564,"children":565,"page":78},"Data Model","/workspace-administration/settings/data-model","04.workspace-administration/03.settings/02.data-model",[566,570,574,578,582,586,590,594],{"title":567,"path":568,"stem":569},"Cadences","/workspace-administration/settings/data-model/cadences","04.workspace-administration/03.settings/02.data-model/01.cadences",{"title":571,"path":572,"stem":573},"Item Types","/workspace-administration/settings/data-model/item-types","04.workspace-administration/03.settings/02.data-model/02.item-types",{"title":575,"path":576,"stem":577},"Tags","/workspace-administration/settings/data-model/tags","04.workspace-administration/03.settings/02.data-model/03.tags",{"title":579,"path":580,"stem":581},"Custom Fields","/workspace-administration/settings/data-model/custom-fields","04.workspace-administration/03.settings/02.data-model/04.custom-fields",{"title":583,"path":584,"stem":585},"Priority Levels","/workspace-administration/settings/data-model/priority-levels","04.workspace-administration/03.settings/02.data-model/05.priority-levels",{"title":587,"path":588,"stem":589},"Effort Points and Time Estimation","/workspace-administration/settings/data-model/effort-points-and-time-estimation","04.workspace-administration/03.settings/02.data-model/06.effort-points-and-time-estimation",{"title":591,"path":592,"stem":593},"Statuses and WIP Limiters","/workspace-administration/settings/data-model/statuses-and-wip-limiters","04.workspace-administration/03.settings/02.data-model/07.statuses-and-wip-limiters",{"title":595,"path":596,"stem":597},"Customizing the Item Drawer","/workspace-administration/settings/data-model/customizing-the-item-drawer","04.workspace-administration/03.settings/02.data-model/08.customizing-the-item-drawer",{"title":599,"path":600,"stem":601,"children":602,"page":78},"Forms","/workspace-administration/settings/forms","04.workspace-administration/03.settings/03.forms",[603],{"title":604,"path":605,"stem":606},"Item Request Forms","/workspace-administration/settings/forms/item-request-forms","04.workspace-administration/03.settings/03.forms/item-request-forms",{"title":608,"path":609,"stem":610,"children":611,"page":78},"Integrations","/workspace-administration/settings/integrations","04.workspace-administration/03.settings/04.integrations",[612,616,620,624,628],{"title":613,"path":614,"stem":615},"GitHub","/workspace-administration/settings/integrations/github","04.workspace-administration/03.settings/04.integrations/01.github",{"title":617,"path":618,"stem":619},"Connect AI & the MCP Server","/workspace-administration/settings/integrations/connect-ai-and-mcp","04.workspace-administration/03.settings/04.integrations/02.connect-ai-and-mcp",{"title":621,"path":622,"stem":623},"Database Access for BI Tools","/workspace-administration/settings/integrations/database-access","04.workspace-administration/03.settings/04.integrations/03.database-access",{"title":625,"path":626,"stem":627},"Jira Integration","/workspace-administration/settings/integrations/jira","04.workspace-administration/03.settings/04.integrations/04.jira",{"title":200,"path":629,"stem":630},"/workspace-administration/settings/integrations/api-keys","04.workspace-administration/03.settings/04.integrations/05.api-keys",{"title":632,"path":633,"stem":634},"Subscription & Billing","/workspace-administration/settings/subscription-and-billing","04.workspace-administration/03.settings/05.subscription-and-billing",{"title":465,"path":636,"stem":637,"children":638,"page":78},"/workspace-administration/permissions","04.workspace-administration/04.permissions",[639,642,645],{"title":188,"path":640,"stem":641},"/workspace-administration/permissions/understanding-permissions","04.workspace-administration/04.permissions/01.understanding-permissions",{"title":192,"path":643,"stem":644},"/workspace-administration/permissions/roles-and-permissions","04.workspace-administration/04.permissions/02.roles-and-permissions",{"title":196,"path":646,"stem":647},"/workspace-administration/permissions/sharing-and-access","04.workspace-administration/04.permissions/03.sharing-and-access",{"title":649,"order":650,"path":651,"stem":652,"children":653,"page":78},"Filters",10,"/workspace-administration/filters","04.workspace-administration/05.filters",[654,657,660,664,668,672,676,679,683,687,707],{"title":474,"path":655,"stem":656},"/workspace-administration/filters/my-work","04.workspace-administration/05.filters/01.my-work",{"title":480,"path":658,"stem":659},"/workspace-administration/filters/notifications","04.workspace-administration/05.filters/02.notifications",{"title":661,"path":662,"stem":663},"Workstreams","/workspace-administration/filters/workstreams","04.workspace-administration/05.filters/03.workstreams",{"title":665,"path":666,"stem":667},"Cycles","/workspace-administration/filters/cycles","04.workspace-administration/05.filters/04.cycles",{"title":669,"path":670,"stem":671},"Boards","/workspace-administration/filters/boards","04.workspace-administration/05.filters/05.boards",{"title":673,"path":674,"stem":675},"Gantt","/workspace-administration/filters/gantt","04.workspace-administration/05.filters/06.gantt",{"title":46,"path":677,"stem":678},"/workspace-administration/filters/items","04.workspace-administration/05.filters/07.items",{"title":680,"path":681,"stem":682},"Reports","/workspace-administration/filters/reports","04.workspace-administration/05.filters/08.reports",{"title":684,"path":685,"stem":686},"Automations","/workspace-administration/filters/automations","04.workspace-administration/05.filters/09.automations",{"title":688,"path":689,"stem":690,"children":691,"page":78},"Sort ","/workspace-administration/filters/sort","04.workspace-administration/05.filters/10.sort",[692,695,698,701,704],{"title":474,"path":693,"stem":694},"/workspace-administration/filters/sort/my-work","04.workspace-administration/05.filters/10.sort/01.my-work",{"title":661,"path":696,"stem":697},"/workspace-administration/filters/sort/workstreams","04.workspace-administration/05.filters/10.sort/02.workstreams",{"title":665,"path":699,"stem":700},"/workspace-administration/filters/sort/cycles","04.workspace-administration/05.filters/10.sort/03.cycles",{"title":669,"path":702,"stem":703},"/workspace-administration/filters/sort/boards","04.workspace-administration/05.filters/10.sort/04.boards",{"title":46,"path":705,"stem":706},"/workspace-administration/filters/sort/items","04.workspace-administration/05.filters/10.sort/05.items",{"title":708,"path":709,"stem":710,"children":711,"page":78},"Options","/workspace-administration/filters/options","04.workspace-administration/05.filters/11.options",[712,715,718,722,725],{"title":474,"path":713,"stem":714},"/workspace-administration/filters/options/my-work","04.workspace-administration/05.filters/11.options/01.my-work",{"title":661,"path":716,"stem":717},"/workspace-administration/filters/options/workstreams","04.workspace-administration/05.filters/11.options/02.workstreams",{"title":719,"path":720,"stem":721},"Cycle","/workspace-administration/filters/options/cycle","04.workspace-administration/05.filters/11.options/03.cycle",{"title":669,"path":723,"stem":724},"/workspace-administration/filters/options/boards","04.workspace-administration/05.filters/11.options/04.boards",{"title":46,"path":726,"stem":727},"/workspace-administration/filters/options/items","04.workspace-administration/05.filters/11.options/05.items",{"title":729,"path":730,"stem":731,"children":732,"page":78},"Planning Concepts & Use Cases","/planning-concepts-and-use-cases","05.planning-concepts-and-use-cases",[733,789],{"title":734,"order":735,"path":736,"stem":737,"children":738,"page":78},"Understanding Project Planning Tools",9,"/planning-concepts-and-use-cases/project-planning-tools","05.planning-concepts-and-use-cases/01.project-planning-tools",[739,772],{"title":740,"path":741,"stem":742,"children":743,"page":78},"Gantt Charts","/planning-concepts-and-use-cases/project-planning-tools/gantt-charts","05.planning-concepts-and-use-cases/01.project-planning-tools/gantt-charts",[744,748,752,756,760,764,768],{"title":745,"path":746,"stem":747},"Gantt Charts Basics","/planning-concepts-and-use-cases/project-planning-tools/gantt-charts/gantt-charts-basics","05.planning-concepts-and-use-cases/01.project-planning-tools/gantt-charts/01.gantt-charts-basics",{"title":749,"path":750,"stem":751},"Create New Gantt","/planning-concepts-and-use-cases/project-planning-tools/gantt-charts/create-new-gantt","05.planning-concepts-and-use-cases/01.project-planning-tools/gantt-charts/02.create-new-gantt",{"title":753,"path":754,"stem":755},"Add to Gantt","/planning-concepts-and-use-cases/project-planning-tools/gantt-charts/add-to-gantt","05.planning-concepts-and-use-cases/01.project-planning-tools/gantt-charts/03.add-to-gantt",{"title":757,"path":758,"stem":759},"Gantt Charts Toolbar","/planning-concepts-and-use-cases/project-planning-tools/gantt-charts/gantt-charts-toolbar","05.planning-concepts-and-use-cases/01.project-planning-tools/gantt-charts/04.gantt-charts-toolbar",{"title":761,"path":762,"stem":763},"Scenario Planning","/planning-concepts-and-use-cases/project-planning-tools/gantt-charts/scenario-planning","05.planning-concepts-and-use-cases/01.project-planning-tools/gantt-charts/05.scenario-planning",{"title":765,"path":766,"stem":767},"Tips for Effective Gantt Chart Planning","/planning-concepts-and-use-cases/project-planning-tools/gantt-charts/tips-for-effective-gantt-chart-planning","05.planning-concepts-and-use-cases/01.project-planning-tools/gantt-charts/06.tips-for-effective-gantt-chart-planning",{"title":769,"path":770,"stem":771},"Link Mode","/planning-concepts-and-use-cases/project-planning-tools/gantt-charts/link-mode","05.planning-concepts-and-use-cases/01.project-planning-tools/gantt-charts/07.link-mode",{"title":773,"path":774,"stem":775,"children":776,"page":78},"Kanban Boards","/planning-concepts-and-use-cases/project-planning-tools/kanban-boards","05.planning-concepts-and-use-cases/01.project-planning-tools/kanban-boards",[777,781,785],{"title":778,"path":779,"stem":780},"Setting Up Your Kanban Board","/planning-concepts-and-use-cases/project-planning-tools/kanban-boards/setting-up-your-kanban-board","05.planning-concepts-and-use-cases/01.project-planning-tools/kanban-boards/01.setting-up-your-kanban-board",{"title":782,"path":783,"stem":784},"Using Kanban for Workflow Visualization","/planning-concepts-and-use-cases/project-planning-tools/kanban-boards/using-kanban-for-workflow-visualization","05.planning-concepts-and-use-cases/01.project-planning-tools/kanban-boards/02.using-kanban-for-workflow-visualization",{"title":786,"path":787,"stem":788},"Kanban Best Practices","/planning-concepts-and-use-cases/project-planning-tools/kanban-boards/kanban-best-practices","05.planning-concepts-and-use-cases/01.project-planning-tools/kanban-boards/03.kanban-best-practices",{"title":790,"order":791,"path":792,"stem":793,"children":794,"page":78},"Use Cases",12,"/planning-concepts-and-use-cases/use-cases","05.planning-concepts-and-use-cases/02.use-cases",[795,798,802,806,810,814],{"title":740,"path":796,"stem":797},"/planning-concepts-and-use-cases/use-cases/gantt-charts","05.planning-concepts-and-use-cases/02.use-cases/01.gantt-charts",{"title":799,"path":800,"stem":801},"Plan a Sprint","/planning-concepts-and-use-cases/use-cases/plan-a-sprint","05.planning-concepts-and-use-cases/02.use-cases/02.plan-a-sprint",{"title":803,"path":804,"stem":805},"Conduct a Standup","/planning-concepts-and-use-cases/use-cases/conduct-a-standup","05.planning-concepts-and-use-cases/02.use-cases/03.conduct-a-standup",{"title":807,"path":808,"stem":809},"Manage Cadences","/planning-concepts-and-use-cases/use-cases/manage-cadences","05.planning-concepts-and-use-cases/02.use-cases/04.manage-cadences",{"title":811,"path":812,"stem":813},"Customizing Item Types","/planning-concepts-and-use-cases/use-cases/customizing-item-types","05.planning-concepts-and-use-cases/02.use-cases/05.customizing-item-types",{"title":815,"path":816,"stem":817},"Backlog Refinement","/planning-concepts-and-use-cases/use-cases/backlog-refinement","05.planning-concepts-and-use-cases/02.use-cases/06.backlog-refinement",{"title":819,"path":820,"stem":821,"children":822,"page":78},"Integrations & Extensibility","/integrations-and-extensibility","06.integrations-and-extensibility",[823,844],{"title":824,"path":825,"stem":826,"children":827,"page":78},"DevStride MCP Server","/integrations-and-extensibility/devstride-mcp-server","06.integrations-and-extensibility/01.devstride-mcp-server",[828,832,836,840],{"title":829,"path":830,"stem":831},"What Is the DevStride MCP Server?","/integrations-and-extensibility/devstride-mcp-server/what-is-the-devstride-mcp-server","06.integrations-and-extensibility/01.devstride-mcp-server/01.what-is-the-devstride-mcp-server",{"title":833,"path":834,"stem":835},"Setting Up Your Connection","/integrations-and-extensibility/devstride-mcp-server/setting-up-your-connection","06.integrations-and-extensibility/01.devstride-mcp-server/02.setting-up-your-connection",{"title":837,"path":838,"stem":839},"Doing Real Work with the DevStride MCP Server","/integrations-and-extensibility/devstride-mcp-server/doing-real-work-with-the-devstride-mcp-server","06.integrations-and-extensibility/01.devstride-mcp-server/03.doing-real-work-with-the-devstride-mcp-server",{"title":841,"path":842,"stem":843},"Best Practices & Tips","/integrations-and-extensibility/devstride-mcp-server/best-practices-and-tips","06.integrations-and-extensibility/01.devstride-mcp-server/04.best-practices-and-tips",{"title":845,"path":846,"stem":847,"children":848},"Plugins","/integrations-and-extensibility/plugins","06.integrations-and-extensibility/02.plugins/index",[849,851],{"title":850,"path":846,"stem":847},"Getting Started With Plugins",{"title":852,"path":853,"stem":854,"children":855,"page":78},"Weekly Logs","/integrations-and-extensibility/plugins/weekly-logs","06.integrations-and-extensibility/02.plugins/01.weekly-logs",[856,859,863,867,871,875,879,883,886,890,894,898],{"title":433,"path":857,"stem":858},"/integrations-and-extensibility/plugins/weekly-logs/overview","06.integrations-and-extensibility/02.plugins/01.weekly-logs/01.overview",{"title":860,"path":861,"stem":862},"Grid","/integrations-and-extensibility/plugins/weekly-logs/grid","06.integrations-and-extensibility/02.plugins/01.weekly-logs/02.grid",{"title":864,"path":865,"stem":866},"Views","/integrations-and-extensibility/plugins/weekly-logs/views","06.integrations-and-extensibility/02.plugins/01.weekly-logs/03.views",{"title":868,"path":869,"stem":870},"Navigation","/integrations-and-extensibility/plugins/weekly-logs/navigation","06.integrations-and-extensibility/02.plugins/01.weekly-logs/04.navigation",{"title":872,"path":873,"stem":874},"Proposed Items","/integrations-and-extensibility/plugins/weekly-logs/proposed-items","06.integrations-and-extensibility/02.plugins/01.weekly-logs/05.proposed-items",{"title":876,"path":877,"stem":878},"Search","/integrations-and-extensibility/plugins/weekly-logs/search","06.integrations-and-extensibility/02.plugins/01.weekly-logs/06.search",{"title":880,"path":881,"stem":882},"Time Logging","/integrations-and-extensibility/plugins/weekly-logs/logging","06.integrations-and-extensibility/02.plugins/01.weekly-logs/07.logging",{"title":649,"path":884,"stem":885},"/integrations-and-extensibility/plugins/weekly-logs/filtering","06.integrations-and-extensibility/02.plugins/01.weekly-logs/08.filtering",{"title":887,"path":888,"stem":889},"Team Logs","/integrations-and-extensibility/plugins/weekly-logs/team-logs","06.integrations-and-extensibility/02.plugins/01.weekly-logs/09.team-logs",{"title":891,"path":892,"stem":893},"Organization Switch","/integrations-and-extensibility/plugins/weekly-logs/organization-switch","06.integrations-and-extensibility/02.plugins/01.weekly-logs/10.organization-switch",{"title":895,"path":896,"stem":897},"Export","/integrations-and-extensibility/plugins/weekly-logs/export","06.integrations-and-extensibility/02.plugins/01.weekly-logs/11.export",{"title":899,"path":900,"stem":901},"Meetings","/integrations-and-extensibility/plugins/weekly-logs/meetings","06.integrations-and-extensibility/02.plugins/01.weekly-logs/12.meetings",{"title":903,"path":904,"stem":905,"children":906,"page":78},"Developer Experience","/developer-experience","07.developer-experience",[907],{"title":908,"path":909,"stem":910,"children":911,"page":78},"Developer Docs","/developer-experience/developer-docs","07.developer-experience/01.developer-docs",[912,916,919,923,927,931,935,939,943,947,951,955],{"title":913,"path":914,"stem":915},"Introduction to the ds CLI","/developer-experience/developer-docs/introduction","07.developer-experience/01.developer-docs/01.introduction",{"title":5,"path":917,"stem":918},"/developer-experience/developer-docs/getting-started","07.developer-experience/01.developer-docs/02.getting-started",{"title":920,"path":921,"stem":922},"Local Development","/developer-experience/developer-docs/local-development","07.developer-experience/01.developer-docs/03.local-development",{"title":924,"path":925,"stem":926},"Deployment","/developer-experience/developer-docs/deployment","07.developer-experience/01.developer-docs/04.deployment",{"title":928,"path":929,"stem":930},"API Development","/developer-experience/developer-docs/api-development","07.developer-experience/01.developer-docs/05.api-development",{"title":932,"path":933,"stem":934},"Golden Dataset","/developer-experience/developer-docs/golden-dataset","07.developer-experience/01.developer-docs/06.golden-dataset",{"title":936,"path":937,"stem":938},"Stripe Integration","/developer-experience/developer-docs/stripe-integration","07.developer-experience/01.developer-docs/07.stripe-integration",{"title":940,"path":941,"stem":942},"Maintenance & Codebase Checks","/developer-experience/developer-docs/maintenance-and-codebase-checks","07.developer-experience/01.developer-docs/08.maintenance-and-codebase-checks",{"title":944,"path":945,"stem":946},"Command Reference","/developer-experience/developer-docs/command-reference","07.developer-experience/01.developer-docs/09.command-reference",{"title":948,"path":949,"stem":950},"Claude Code Skills: AI-Assisted Development","/developer-experience/developer-docs/claude-code-skills-overview","07.developer-experience/01.developer-docs/10.claude-code-skills-overview",{"title":952,"path":953,"stem":954},"The Planning Loop","/developer-experience/developer-docs/claude-skills-planning-loop","07.developer-experience/01.developer-docs/11.claude-skills-planning-loop",{"title":956,"path":957,"stem":958},"The Delivery Loop","/developer-experience/developer-docs/claude-skills-delivery-loop","07.developer-experience/01.developer-docs/12.claude-skills-delivery-loop",{"title":960,"order":961,"path":962,"stem":963,"children":964,"page":78},"Release Notes",11,"/release-notes","08.release-notes",[965,969,973,977,981,985,989,993,997,1001,1005,1009,1013,1017,1021,1025,1029,1033,1037,1041,1045,1049,1053,1057,1061,1065,1069,1073,1077,1081,1085,1089,1093,1097,1101,1105,1109,1113,1117,1121,1125,1129,1133,1137,1141,1145,1149,1153,1157,1161,1165,1169,1173,1177],{"title":966,"path":967,"stem":968},"2026-07-02","/release-notes/2026-07-02","08.release-notes/54.2026-07-02",{"title":970,"path":971,"stem":972},"2026-06-30","/release-notes/2026-06-30","08.release-notes/53.2026-06-30",{"title":974,"path":975,"stem":976},"2026-06-17","/release-notes/2026-06-17","08.release-notes/52.2026-06-17",{"title":978,"path":979,"stem":980},"2026-06-12","/release-notes/2026-06-12","08.release-notes/51.2026-06-12",{"title":982,"path":983,"stem":984},"2026-05-29","/release-notes/2026-05-29","08.release-notes/50.2026-05-29",{"title":986,"path":987,"stem":988},"2026-05-13","/release-notes/2026-05-13","08.release-notes/49.2026-05-13",{"title":990,"path":991,"stem":992},"2026-04-29","/release-notes/2026-04-29","08.release-notes/48.2026-04-29",{"title":994,"path":995,"stem":996},"2026-04-14","/release-notes/2026-04-14","08.release-notes/47.2026-04-14",{"title":998,"path":999,"stem":1000},"2026-04-09","/release-notes/2026-04-09","08.release-notes/46.2026-04-09",{"title":1002,"path":1003,"stem":1004},"2026-03-13","/release-notes/2026-03-13","08.release-notes/45.2026-03-13",{"title":1006,"path":1007,"stem":1008},"2026-02-16","/release-notes/2026-02-16","08.release-notes/44.2026-02-16",{"title":1010,"path":1011,"stem":1012},"2026-02-06","/release-notes/2026-02-06","08.release-notes/43.2026-02-06",{"title":1014,"path":1015,"stem":1016},"2026-01-30","/release-notes/2026-01-30","08.release-notes/42.2026-01-30",{"title":1018,"path":1019,"stem":1020},"2026-01-19","/release-notes/2026-01-19","08.release-notes/41.2026-01-19",{"title":1022,"path":1023,"stem":1024},"2025-09-27","/release-notes/2025-09-27","08.release-notes/40.2025-09-27",{"title":1026,"path":1027,"stem":1028},"2025-07-07","/release-notes/2025-07-07","08.release-notes/39.2025-07-07",{"title":1030,"path":1031,"stem":1032},"2025-06-16","/release-notes/2025-06-16","08.release-notes/38.2025-06-16",{"title":1034,"path":1035,"stem":1036},"2025-05-29","/release-notes/2025-05-29","08.release-notes/37.2025-05-29",{"title":1038,"path":1039,"stem":1040},"2025-04-28","/release-notes/2025-04-28","08.release-notes/36.2025-04-28",{"title":1042,"path":1043,"stem":1044},"2025-03-24","/release-notes/2025-03-24","08.release-notes/35.2025-03-24",{"title":1046,"path":1047,"stem":1048},"2024-12-20","/release-notes/2024-12-20","08.release-notes/34.2024-12-20",{"title":1050,"path":1051,"stem":1052},"2024-10-21","/release-notes/2024-10-21","08.release-notes/33.2024-10-21",{"title":1054,"path":1055,"stem":1056},"2024-10-11","/release-notes/2024-10-11","08.release-notes/32.2024-10-11",{"title":1058,"path":1059,"stem":1060},"2024-09-11","/release-notes/2024-09-11","08.release-notes/31.2024-09-11",{"title":1062,"path":1063,"stem":1064},"2024-08-28","/release-notes/2024-08-28","08.release-notes/30.2024-08-28",{"title":1066,"path":1067,"stem":1068},"2024-07-10","/release-notes/2024-07-10","08.release-notes/29.2024-07-10",{"title":1070,"path":1071,"stem":1072},"2024-06-24","/release-notes/2024-06-24","08.release-notes/28.2024-06-24",{"title":1074,"path":1075,"stem":1076},"2024-05-15","/release-notes/2024-05-15","08.release-notes/27.2024-05-15",{"title":1078,"path":1079,"stem":1080},"2024-04-29","/release-notes/2024-04-29","08.release-notes/26.2024-04-29",{"title":1082,"path":1083,"stem":1084},"2024-03-18","/release-notes/2024-03-18","08.release-notes/25.2024-03-18",{"title":1086,"path":1087,"stem":1088},"2024-03-04","/release-notes/2024-03-04","08.release-notes/24.2024-03-04",{"title":1090,"path":1091,"stem":1092},"2024-02-26","/release-notes/2024-02-26","08.release-notes/23.2024-02-26",{"title":1094,"path":1095,"stem":1096},"2024-01-17","/release-notes/2024-01-17","08.release-notes/22.2024-01-17",{"title":1098,"path":1099,"stem":1100},"2023-12-27","/release-notes/2023-12-27","08.release-notes/21.2023-12-27",{"title":1102,"path":1103,"stem":1104},"2023-11-08","/release-notes/2023-11-08","08.release-notes/20.2023-11-08",{"title":1106,"path":1107,"stem":1108},"2023-10-10","/release-notes/2023-10-10","08.release-notes/19.2023-10-10",{"title":1110,"path":1111,"stem":1112},"2023-09-27","/release-notes/2023-09-27","08.release-notes/18.2023-09-27",{"title":1114,"path":1115,"stem":1116},"2023-09-18","/release-notes/2023-09-18","08.release-notes/17.2023-09-18",{"title":1118,"path":1119,"stem":1120},"2023-09-04","/release-notes/2023-09-04","08.release-notes/16.2023-09-04",{"title":1122,"path":1123,"stem":1124},"2023-08-04","/release-notes/2023-08-04","08.release-notes/15.2023-08-04",{"title":1126,"path":1127,"stem":1128},"2023-07-11","/release-notes/2023-07-11","08.release-notes/14.2023-07-11",{"title":1130,"path":1131,"stem":1132},"2023-06-21","/release-notes/2023-06-21","08.release-notes/13.2023-06-21",{"title":1134,"path":1135,"stem":1136},"2023-05-24","/release-notes/2023-05-24","08.release-notes/12.2023-05-24",{"title":1138,"path":1139,"stem":1140},"2023-04-24","/release-notes/2023-04-24","08.release-notes/11.2023-04-24",{"title":1142,"path":1143,"stem":1144},"2023-04-20","/release-notes/2023-04-20","08.release-notes/10.2023-04-20",{"title":1146,"path":1147,"stem":1148},"2023-03-20","/release-notes/2023-03-20","08.release-notes/09.2023-03-20",{"title":1150,"path":1151,"stem":1152},"2023-02-28","/release-notes/2023-02-28","08.release-notes/08.2023-02-28",{"title":1154,"path":1155,"stem":1156},"2023-01-17","/release-notes/2023-01-17","08.release-notes/07.2023-01-17",{"title":1158,"path":1159,"stem":1160},"2023-01-23","/release-notes/2023-01-23","08.release-notes/06.2023-01-23",{"title":1162,"path":1163,"stem":1164},"2022-12-21","/release-notes/2022-12-21","08.release-notes/05.2022-12-21",{"title":1166,"path":1167,"stem":1168},"2022-12-06","/release-notes/2022-12-06","08.release-notes/04.2022-12-06",{"title":1170,"path":1171,"stem":1172},"2022-11-15","/release-notes/2022-11-15","08.release-notes/03.2022-11-15",{"title":1174,"path":1175,"stem":1176},"2022-11-02","/release-notes/2022-11-02","08.release-notes/02.2022-11-02",{"title":1178,"path":1179,"stem":1180},"2022-10-17","/release-notes/2022-10-17","08.release-notes/01.2022-10-17",{"title":1182,"path":1183,"target":1184},"API","https://api-docs.devstride.com/","_blank",{"id":1186,"title":944,"body":1187,"description":4504,"extension":4505,"links":4506,"meta":4507,"navigation":4508,"path":945,"seo":4509,"stem":946,"__hash__":4510},"docs/07.developer-experience/01.developer-docs/09.command-reference.md",{"type":1188,"value":1189,"toc":4434},"minimark",[1190,1194,1207,1271,1276,1283,1345,1412,1432,1465,1468,1474,1485,1492,1495,1511,1529,1542,1548,1551,1565,1580,1582,1588,1594,1600,1615,1629,1635,1649,1670,1673,1675,1681,1687,1693,1733,1739,1771,1776,1781,1811,1814,1848,1862,1868,1894,1901,1922,1930,1936,1980,1987,2045,2075,2077,2083,2089,2149,2159,2195,2212,2256,2262,2315,2337,2418,2423,2477,2502,2571,2577,2651,2658,2729,2735,2764,2767,2798,2804,2833,2842,2876,2882,2911,2920,2955,2961,3001,3011,3070,3076,3113,3124,3127,3164,3170,3196,3202,3225,3231,3257,3266,3291,3297,3311,3314,3316,3322,3328,3334,3349,3352,3358,3372,3375,3381,3395,3398,3404,3418,3421,3427,3441,3444,3450,3464,3471,3477,3491,3513,3519,3533,3536,3542,3556,3567,3624,3630,3644,3650,3656,3670,3678,3684,3698,3709,3712,3718,3732,3735,3741,3755,3758,3764,3778,3781,3787,3801,3804,3810,3834,3848,3853,3867,3882,3887,3894,3897,3903,3929,3935,3956,3959,3965,3979,3982,3988,4002,4005,4011,4025,4028,4041,4043,4049,4055,4061,4076,4082,4088,4114,4117,4138,4144,4170,4173,4194,4212,4214,4220,4226,4235,4273,4276,4321,4330,4364,4367,4407,4409,4413,4430],[1191,1192,944],"h1",{"id":1193},"command-reference",[1195,1196,1197,1198,1202,1203,1206],"p",{},"This is the complete reference for every ",[1199,1200,1201],"code",{},"ds"," command that actually exists in the codebase today. Every command and flag below was verified directly against ",[1199,1204,1205],{},"cli/commands/*.ts"," — nothing here is aspirational or planned.",[1195,1208,1209,1210,1212,1213,1217,1218,1221,1222,1221,1225,1221,1228,1221,1231,1221,1234,1237,1238,1241,1242,1221,1245,1221,1248,1221,1251,1221,1254,1221,1257,1221,1260,1221,1263,1266,1267,1270],{},"The ",[1199,1211,1201],{}," CLI has exactly ",[1214,1215,1216],"strong",{},"7 top-level commands",": ",[1199,1219,1220],{},"run",", ",[1199,1223,1224],{},"migrations",[1199,1226,1227],{},"data",[1199,1229,1230],{},"golden",[1199,1232,1233],{},"script",[1199,1235,1236],{},"stripe",", and ",[1199,1239,1240],{},"g",". There is no ",[1199,1243,1244],{},"ds setup",[1199,1246,1247],{},"ds deploy",[1199,1249,1250],{},"ds db",[1199,1252,1253],{},"ds local",[1199,1255,1256],{},"ds api",[1199,1258,1259],{},"ds integrations",[1199,1261,1262],{},"ds utils",[1199,1264,1265],{},"ds aws",", or ",[1199,1268,1269],{},"ds help"," — those command surfaces do not exist in this CLI.",[1272,1273,1275],"h2",{"id":1274},"the-global-wrapper","The Global Wrapper",[1195,1277,1278,1279,1282],{},"Every invocation goes through the root ",[1199,1280,1281],{},"./ds"," bash script before Commander ever sees your subcommand. It does three things, in order: an AWS SSO auth gate, a stage/region \"bind\" step, then execution of your actual command.",[1284,1285,1290],"pre",{"className":1286,"code":1287,"language":1288,"meta":1289,"style":1289},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","./ds [-b] [-r] [-u] \u003Ccommand> [subcommand] [args]\n","bash","",[1199,1291,1292],{"__ignoreMap":1289},[1293,1294,1296,1299,1303,1307,1310,1313,1316,1319,1321,1324,1327,1330,1332,1335,1337,1339,1342],"span",{"class":1295,"line":11},"line",[1293,1297,1281],{"class":1298},"sBMFI",[1293,1300,1302],{"class":1301},"sTEyZ"," [-b] ",[1293,1304,1306],{"class":1305},"sMK4o","[",[1293,1308,1309],{"class":1301},"-r",[1293,1311,1312],{"class":1305},"]",[1293,1314,1315],{"class":1305}," [",[1293,1317,1318],{"class":1301},"-u",[1293,1320,1312],{"class":1305},[1293,1322,1323],{"class":1305}," \u003C",[1293,1325,1326],{"class":1301},"command",[1293,1328,1329],{"class":1305},">",[1293,1331,1315],{"class":1305},[1293,1333,1334],{"class":1301},"subcommand",[1293,1336,1312],{"class":1305},[1293,1338,1315],{"class":1305},[1293,1340,1341],{"class":1301},"args",[1293,1343,1344],{"class":1305},"]\n",[1346,1347,1348,1361],"table",{},[1349,1350,1351],"thead",{},[1352,1353,1354,1358],"tr",{},[1355,1356,1357],"th",{},"Flag",[1355,1359,1360],{},"Description",[1362,1363,1364,1379,1395],"tbody",{},[1352,1365,1366,1372],{},[1367,1368,1369],"td",{},[1199,1370,1371],{},"-b",[1367,1373,1374,1375,1378],{},"Force re-bind stage/region config, even if a cached ",[1199,1376,1377],{},".ds/bind/\u003Cstage>-\u003Cregion>.env"," already exists",[1352,1380,1381,1385],{},[1367,1382,1383],{},[1199,1384,1309],{},[1367,1386,1387,1388,1391,1392],{},"Target the remote stage — unsets ",[1199,1389,1390],{},"IS_LOCAL",", sets ",[1199,1393,1394],{},"DEVSTRIDE_REMOTE=true",[1352,1396,1397,1401],{},[1367,1398,1399],{},[1199,1400,1318],{},[1367,1402,1403,1404,1407,1408,1411],{},"Skip the AWS SSO auth check entirely (",[1199,1405,1406],{},"aws sts get-caller-identity"," / ",[1199,1409,1410],{},"aws sso login",")",[1413,1414,1417,1418,1420,1421,1424,1425,1428,1429,1431],"alert",{"title":1415,"type":1416},"Bind caching","note","Unless ",[1199,1419,1371],{}," is passed, the wrapper reuses the cached ",[1199,1422,1423],{},".ds/bind/$DEVSTRIDE_STAGE-$DEVSTRIDE_REGION.env"," file if one exists, and only regenerates it (via ",[1199,1426,1427],{},"cli/bin/store_bind.mjs",") when it's missing. If you change stage/region config and the CLI doesn't seem to pick it up, run with ",[1199,1430,1371],{},".",[1195,1433,1434,1435,1438,1439,1221,1442,1221,1445,1221,1448,1221,1451,1221,1454,1237,1457,1460,1461,1464],{},"Every command in this reference is invoked as ",[1199,1436,1437],{},"./ds \u003Ccommand> \u003Csubcommand> [flags]"," — the ",[1199,1440,1441],{},"run.ts",[1199,1443,1444],{},"migrations.ts",[1199,1446,1447],{},"data.ts",[1199,1449,1450],{},"golden.ts",[1199,1452,1453],{},"script.ts",[1199,1455,1456],{},"stripe.ts",[1199,1458,1459],{},"g.ts"," files under ",[1199,1462,1463],{},"cli/commands/"," are each their own Commander program, resolved by name from the second CLI argument.",[1466,1467],"hr",{},[1272,1469,1471],{"id":1470},"ds-run",[1199,1472,1473],{},"ds run",[1195,1475,1476,1477,1480,1481,1484],{},"Defined in ",[1199,1478,1479],{},"cli/commands/run.ts",", delegating to ",[1199,1482,1483],{},"cli/commands/sst/run.ts",". Two subcommands, no flags on either.",[1486,1487,1489],"h3",{"id":1488},"ds-run-backend",[1199,1490,1491],{},"ds run backend",[1195,1493,1494],{},"Starts the backend: an SST live-lambda dev session against the Hono API.",[1284,1496,1498],{"className":1286,"code":1497,"language":1288,"meta":1289,"style":1289},"ds run backend\n",[1199,1499,1500],{"__ignoreMap":1289},[1293,1501,1502,1504,1508],{"class":1295,"line":11},[1293,1503,1201],{"class":1298},[1293,1505,1507],{"class":1506},"sfazB"," run",[1293,1509,1510],{"class":1506}," backend\n",[1195,1512,1513,1514,1517,1518,1521,1522,1525,1526,1431],{},"Runs, in order: ",[1199,1515,1516],{},"pnpm install",", then ",[1199,1519,1520],{},"deleteOrphanStacks()"," (cleans up orphaned CloudFormation stacks left behind by earlier ",[1199,1523,1524],{},"sst.config.ts"," changes), then ",[1199,1527,1528],{},"pnpm exec sst dev",[1413,1530,1532,1534,1535,1538,1539,1541],{"title":1531,"type":1416},"No Docker required",[1199,1533,1491],{}," does not start Docker or any local services. In normal (non-test) code, DynamoDB access always points at real AWS — local Docker DynamoDB is only used when ",[1199,1536,1537],{},"NODE_ENV=test",", and only the backend test suite spins those containers up (in its own setup code, independent of ",[1199,1540,1491],{},"). Docker is not part of the everyday local-dev loop.",[1486,1543,1545],{"id":1544},"ds-run-ui",[1199,1546,1547],{},"ds run ui",[1195,1549,1550],{},"Starts the Vite frontend dev server.",[1284,1552,1554],{"className":1286,"code":1553,"language":1288,"meta":1289,"style":1289},"ds run ui\n",[1199,1555,1556],{"__ignoreMap":1289},[1293,1557,1558,1560,1562],{"class":1295,"line":11},[1293,1559,1201],{"class":1298},[1293,1561,1507],{"class":1506},[1293,1563,1564],{"class":1506}," ui\n",[1195,1566,1567,1568,1571,1572,1575,1576,1579],{},"Spawns ",[1199,1569,1570],{},"pnpm run dev"," inside ",[1199,1573,1574],{},"frontend/",", injecting ",[1199,1577,1578],{},"VITE_*"," environment variables derived from the bound stage (API/auth/media/importer root URLs, Pusher key/cluster, Stripe public key, GitHub app name, Giphy key, SMTP settings, plugin host allowlist, etc.).",[1466,1581],{},[1272,1583,1585],{"id":1584},"ds-migrations",[1199,1586,1587],{},"ds migrations",[1195,1589,1476,1590,1593],{},[1199,1591,1592],{},"cli/commands/migrations.ts",". Runs Drizzle ORM SQL migrations against the bound database.",[1486,1595,1597],{"id":1596},"ds-migrations-run",[1199,1598,1599],{},"ds migrations run",[1284,1601,1603],{"className":1286,"code":1602,"language":1288,"meta":1289,"style":1289},"ds migrations run\n",[1199,1604,1605],{"__ignoreMap":1289},[1293,1606,1607,1609,1612],{"class":1295,"line":11},[1293,1608,1201],{"class":1298},[1293,1610,1611],{"class":1506}," migrations",[1293,1613,1614],{"class":1506}," run\n",[1195,1616,1617,1618,1621,1622,1621,1625,1628],{},"Runs all pending Drizzle SQL migrations (",[1199,1619,1620],{},"migrate"," → ",[1199,1623,1624],{},"migrateSql",[1199,1626,1627],{},"migrateToLatest",").",[1486,1630,1632],{"id":1631},"ds-migrations-run-sql",[1199,1633,1634],{},"ds migrations run-sql",[1284,1636,1638],{"className":1286,"code":1637,"language":1288,"meta":1289,"style":1289},"ds migrations run-sql\n",[1199,1639,1640],{"__ignoreMap":1289},[1293,1641,1642,1644,1646],{"class":1295,"line":11},[1293,1643,1201],{"class":1298},[1293,1645,1611],{"class":1506},[1293,1647,1648],{"class":1506}," run-sql\n",[1195,1650,1651,1652,1655,1656,1658,1659,1661,1662,1665,1666,1669],{},"Also runs all pending SQL migrations. As of the current source, this is an ",[1214,1653,1654],{},"identical alias"," of ",[1199,1657,1599],{}," — both ultimately call ",[1199,1660,1627],{},". The split into two subcommands is a leftover from a historical separation between SQL and non-SQL migrations; today they do the same thing. ",[1199,1663,1664],{},"run-sql"," is the one invoked by the Seed deploy pipeline's ",[1199,1667,1668],{},"after_deploy"," hook (see the Deployment guide).",[1195,1671,1672],{},"Neither subcommand takes any flags.",[1466,1674],{},[1272,1676,1678],{"id":1677},"ds-data",[1199,1679,1680],{},"ds data",[1195,1682,1476,1683,1686],{},[1199,1684,1685],{},"cli/commands/data.ts",". Bulk SQL table import/export/wipe, plus single-organization copy, against the bound database.",[1486,1688,1690],{"id":1689},"ds-data-import",[1199,1691,1692],{},"ds data import",[1284,1694,1696],{"className":1286,"code":1695,"language":1288,"meta":1289,"style":1289},"ds data import \u003Cpath> [-t \u003Ctables>]\n",[1199,1697,1698],{"__ignoreMap":1289},[1293,1699,1700,1702,1705,1708,1710,1713,1716,1718,1721,1724,1726,1729,1731],{"class":1295,"line":11},[1293,1701,1201],{"class":1298},[1293,1703,1704],{"class":1506}," data",[1293,1706,1707],{"class":1506}," import",[1293,1709,1323],{"class":1305},[1293,1711,1712],{"class":1506},"pat",[1293,1714,1715],{"class":1301},"h",[1293,1717,1329],{"class":1305},[1293,1719,1720],{"class":1301}," [-t ",[1293,1722,1723],{"class":1305},"\u003C",[1293,1725,1346],{"class":1506},[1293,1727,1728],{"class":1301},"s",[1293,1730,1329],{"class":1305},[1293,1732,1344],{"class":1506},[1195,1734,1735,1736,1431],{},"Bulk-restores SQL tables from a directory previously produced by ",[1199,1737,1738],{},"ds data export",[1346,1740,1741,1749],{},[1349,1742,1743],{},[1352,1744,1745,1747],{},[1355,1746,1357],{},[1355,1748,1360],{},[1362,1750,1751,1761],{},[1352,1752,1753,1758],{},[1367,1754,1755],{},[1199,1756,1757],{},"\u003Cpath>",[1367,1759,1760],{},"(required, positional) Directory to import from",[1352,1762,1763,1768],{},[1367,1764,1765],{},[1199,1766,1767],{},"-t, --tables \u003Ctables>",[1367,1769,1770],{},"Comma-separated list of table names to import (default: all tables)",[1413,1772,1775],{"title":1773,"type":1774},"Dev/staging only","warning","Blocked on prod.",[1486,1777,1779],{"id":1778},"ds-data-export",[1199,1780,1738],{},[1284,1782,1784],{"className":1286,"code":1783,"language":1288,"meta":1289,"style":1289},"ds data export [path] [-t \u003Ctables>]\n",[1199,1785,1786],{"__ignoreMap":1289},[1293,1787,1788,1790,1792,1795,1798,1800,1803,1805,1808],{"class":1295,"line":11},[1293,1789,1201],{"class":1298},[1293,1791,1704],{"class":1506},[1293,1793,1794],{"class":1506}," export",[1293,1796,1797],{"class":1301}," [path] ",[1293,1799,1306],{"class":1305},[1293,1801,1802],{"class":1301},"-t ",[1293,1804,1723],{"class":1305},[1293,1806,1807],{"class":1301},"tables",[1293,1809,1810],{"class":1305},">]\n",[1195,1812,1813],{},"Dumps SQL tables to disk as chunked JSON files, one directory per table.",[1346,1815,1816,1824],{},[1349,1817,1818],{},[1352,1819,1820,1822],{},[1355,1821,1357],{},[1355,1823,1360],{},[1362,1825,1826,1839],{},[1352,1827,1828,1833],{},[1367,1829,1830],{},[1199,1831,1832],{},"[path]",[1367,1834,1835,1836],{},"(optional, positional) Output directory. Default: ",[1199,1837,1838],{},".ds/data/\u003CDEVSTRIDE_STAGE>",[1352,1840,1841,1845],{},[1367,1842,1843],{},[1199,1844,1767],{},[1367,1846,1847],{},"Comma-separated list of table names to export (default: all tables)",[1195,1849,1850,1851,1221,1854,1857,1858,1861],{},"Output lands under ",[1199,1852,1853],{},"\u003Cpath>/sql/\u003CtableName>/0.json",[1199,1855,1856],{},"1.json",", … (1000 rows per chunk). The ",[1199,1859,1860],{},"workflowRuns"," table is always excluded.",[1486,1863,1865],{"id":1864},"ds-data-wipe",[1199,1866,1867],{},"ds data wipe",[1284,1869,1871],{"className":1286,"code":1870,"language":1288,"meta":1289,"style":1289},"ds data wipe [-t \u003Ctables>]\n",[1199,1872,1873],{"__ignoreMap":1289},[1293,1874,1875,1877,1879,1882,1884,1886,1888,1890,1892],{"class":1295,"line":11},[1293,1876,1201],{"class":1298},[1293,1878,1704],{"class":1506},[1293,1880,1881],{"class":1506}," wipe",[1293,1883,1720],{"class":1301},[1293,1885,1723],{"class":1305},[1293,1887,1346],{"class":1506},[1293,1889,1728],{"class":1301},[1293,1891,1329],{"class":1305},[1293,1893,1344],{"class":1506},[1195,1895,1896,1897,1900],{},"Deletes all rows from the selected (or all) SQL tables. Temporarily sets ",[1199,1898,1899],{},"session_replication_role = 'replica'"," to bypass FK constraint ordering while deleting.",[1346,1902,1903,1911],{},[1349,1904,1905],{},[1352,1906,1907,1909],{},[1355,1908,1357],{},[1355,1910,1360],{},[1362,1912,1913],{},[1352,1914,1915,1919],{},[1367,1916,1917],{},[1199,1918,1767],{},[1367,1920,1921],{},"Comma-separated list of table names to wipe (default: all tables)",[1413,1923,1926,1927,1431],{"title":1924,"type":1925},"Blocked on prod","danger","Refuses to run when ",[1199,1928,1929],{},"DEVSTRIDE_STAGE === \"prod\"",[1486,1931,1933],{"id":1932},"ds-data-copy",[1199,1934,1935],{},"ds data copy",[1284,1937,1939],{"className":1286,"code":1938,"language":1288,"meta":1289,"style":1289},"ds data copy [-o \u003Corganization>] [-s \u003Csource>]\n",[1199,1940,1941],{"__ignoreMap":1289},[1293,1942,1943,1945,1947,1950,1953,1955,1958,1961,1963,1965,1968,1970,1973,1976,1978],{"class":1295,"line":11},[1293,1944,1201],{"class":1298},[1293,1946,1704],{"class":1506},[1293,1948,1949],{"class":1506}," copy",[1293,1951,1952],{"class":1301}," [-o ",[1293,1954,1723],{"class":1305},[1293,1956,1957],{"class":1506},"organizatio",[1293,1959,1960],{"class":1301},"n",[1293,1962,1329],{"class":1305},[1293,1964,1312],{"class":1506},[1293,1966,1967],{"class":1301}," [-s ",[1293,1969,1723],{"class":1305},[1293,1971,1972],{"class":1506},"sourc",[1293,1974,1975],{"class":1301},"e",[1293,1977,1329],{"class":1305},[1293,1979,1344],{"class":1506},[1195,1981,1982,1983,1986],{},"Org-scoped copy: pulls ",[1214,1984,1985],{},"one"," organization's data from a source database into the bound database.",[1346,1988,1989,1997],{},[1349,1990,1991],{},[1352,1992,1993,1995],{},[1355,1994,1357],{},[1355,1996,1360],{},[1362,1998,1999,2016],{},[1352,2000,2001,2006],{},[1367,2002,2003],{},[1199,2004,2005],{},"-o, --organization \u003Corganization>",[1367,2007,2008,2009,2012,2013,1411],{},"Organization ID to copy. Default: ",[1199,2010,2011],{},"970b8dea-c8b4-44d8-8aaf-febf3f25138a"," (the demo org used by ",[1199,2014,2015],{},"ds script reset-db",[1352,2017,2018,2023],{},[1367,2019,2020],{},[1199,2021,2022],{},"-s, --source \u003CkeyOrUrl>",[1367,2024,2025,2026,2029,2030,2033,2034,2037,2038,2041,2042],{},"Source DB: either the ",[1214,2027,2028],{},"name"," of an env var (e.g. ",[1199,2031,2032],{},"GOLDEN_DB_CONNECTION_STRING",") or a full connection string. Omitted in an interactive terminal, you get a picker over the ",[1199,2035,2036],{},"*_CONNECTION_STRING"," vars in ",[1199,2039,2040],{},".env","; omitted non-interactively, it defaults to ",[1199,2043,2044],{},"SOURCE_DB_CONNECTION_STRING",[1413,2046,2049,2051,2052,2055,2056,2059,2060,2063,2064,2067,2068,2070,2071,2074],{"title":2047,"type":2048},"Steers away from golden orgs","tip",[1199,2050,1935],{}," is marker-",[1214,2053,2054],{},"unaware"," — it shares the underlying ",[1199,2057,2058],{},"copyOrgData"," helper with ",[1199,2061,2062],{},"ds golden import",", but it does not reset the stage's ",[1199,2065,2066],{},"golden_handle.anchorIso"," marker. If the organization ID you pass is one of the golden persona orgs, the command prints a warning and recommends ",[1199,2069,2062],{}," (or a follow-up ",[1199,2072,2073],{},"ds golden reanchor --to today",") instead, so a later reanchor doesn't compute its shift from a stale anchor.",[1466,2076],{},[1272,2078,2080],{"id":2079},"ds-golden",[1199,2081,2082],{},"ds golden",[1195,2084,1476,2085,2088],{},[1199,2086,2087],{},"cli/commands/golden.ts",". Manages the golden demo/test dataset (currently the Acme persona org) on the bound stage. Twelve subcommands, all lazy-imported so only the one you invoke loads the heavy backend graph.",[1195,2090,2091,2092,1217,2095,2098,2099,2102,2103,2106,2107,1221,2110,1221,2113,1237,2116,2119,2120,2122,2123,1221,2126,1221,2129,1221,2132,1237,2135,2138,2139,2141,2142,2145,2146,2148],{},"Every mutating subcommand is guarded by ",[1199,2093,2094],{},"assertGoldenStageWritable",[1214,2096,2097],{},"all mutating golden subcommands refuse to run against prod",". The guard is stricter than just ",[1199,2100,2101],{},"push"," on ",[1199,2104,2105],{},"dev"," — ",[1199,2108,2109],{},"build",[1199,2111,2112],{},"reset",[1199,2114,2115],{},"enrich",[1199,2117,2118],{},"lifecycle"," are also refused on ",[1199,2121,2105],{}," (only ",[1199,2124,2125],{},"import",[1199,2127,2128],{},"reanchor",[1199,2130,2131],{},"refresh-stage",[1199,2133,2134],{},"aichat",[1199,2136,2137],{},"cognito"," are permitted there, since those are additive/non-destructive to the rest of a shared stage). ",[1199,2140,2101],{}," is a whole-DB replace and is refused on both ",[1199,2143,2144],{},"prod"," and ",[1199,2147,2105],{}," — only safe on fresh/disposable stages.",[1486,2150,2152,2155,2156,1411],{"id":2151},"ds-golden-build-alias-load",[1199,2153,2154],{},"ds golden build"," (alias: ",[1199,2157,2158],{},"load",[1284,2160,2162],{"className":1286,"code":2161,"language":1288,"meta":1289,"style":1289},"ds golden build [--no-reset] [--no-verify] [--org \u003Cname>]\n",[1199,2163,2164],{"__ignoreMap":1289},[1293,2165,2166,2168,2171,2174,2177,2179,2182,2184,2186,2189,2191,2193],{"class":1295,"line":11},[1293,2167,1201],{"class":1298},[1293,2169,2170],{"class":1506}," golden",[1293,2172,2173],{"class":1506}," build",[1293,2175,2176],{"class":1301}," [--no-reset] ",[1293,2178,1306],{"class":1305},[1293,2180,2181],{"class":1301},"--no-verify",[1293,2183,1312],{"class":1305},[1293,2185,1315],{"class":1305},[1293,2187,2188],{"class":1301},"--org ",[1293,2190,1723],{"class":1305},[1293,2192,2028],{"class":1301},[1293,2194,1810],{"class":1305},[1195,2196,2197,2198,2201,2202,2205,2206,2208,2209,2211],{},"Rebuilds the golden Acme org, in the bound DB, from the generator spec (real ",[1199,2199,2200],{},"CommandBus"," calls). ",[1214,2203,2204],{},"Scoped"," — only the Acme org's rows are reset/rebuilt; everything else on the stage is untouched. ",[1199,2207,2158],{}," is a Commander alias of ",[1199,2210,2109],{},", not a separate implementation.",[1346,2213,2214,2222],{},[1349,2215,2216],{},[1352,2217,2218,2220],{},[1355,2219,1357],{},[1355,2221,1360],{},[1362,2223,2224,2234,2243],{},[1352,2225,2226,2231],{},[1367,2227,2228],{},[1199,2229,2230],{},"--no-reset",[1367,2232,2233],{},"Layer onto existing Acme rows instead of resetting them first",[1352,2235,2236,2240],{},[1367,2237,2238],{},[1199,2239,2181],{},[1367,2241,2242],{},"Skip the §16 assertion gate after building",[1352,2244,2245,2250],{},[1367,2246,2247],{},[1199,2248,2249],{},"--org \u003Cname>",[1367,2251,2252,2253,1411],{},"Rebuild a specific golden org in place (currently only ",[1199,2254,2255],{},"acme",[1486,2257,2259],{"id":2258},"ds-golden-push",[1199,2260,2261],{},"ds golden push",[1284,2263,2265],{"className":1286,"code":2264,"language":1288,"meta":1289,"style":1289},"ds golden push --force-full-reset [--allow-any-scale] [--skip-aichat] [--skip-cognito] [--dry-run] [--target-db \u003CconnectionString>]\n",[1199,2266,2267],{"__ignoreMap":1289},[1293,2268,2269,2271,2273,2276,2279,2282,2284,2287,2289,2291,2294,2296,2298,2301,2303,2305,2308,2310,2313],{"class":1295,"line":11},[1293,2270,1201],{"class":1298},[1293,2272,2170],{"class":1506},[1293,2274,2275],{"class":1506}," push",[1293,2277,2278],{"class":1506}," --force-full-reset",[1293,2280,2281],{"class":1301}," [--allow-any-scale] ",[1293,2283,1306],{"class":1305},[1293,2285,2286],{"class":1301},"--skip-aichat",[1293,2288,1312],{"class":1305},[1293,2290,1315],{"class":1305},[1293,2292,2293],{"class":1301},"--skip-cognito",[1293,2295,1312],{"class":1305},[1293,2297,1315],{"class":1305},[1293,2299,2300],{"class":1301},"--dry-run",[1293,2302,1312],{"class":1305},[1293,2304,1315],{"class":1305},[1293,2306,2307],{"class":1301},"--target-db ",[1293,2309,1723],{"class":1305},[1293,2311,2312],{"class":1301},"connectionString",[1293,2314,1810],{"class":1305},[1195,2316,2317,2320,2321,2324,2325,2328,2329,2332,2333,2145,2335,1431],{},[1214,2318,2319],{},"Fast"," whole-database seed: ",[1199,2322,2323],{},"pg_dump","s the locally vitest-built golden template DB and ",[1199,2326,2327],{},"pg_restore","s it straight into the bound stage's Postgres, then re-seeds the DynamoDB AI chats and Cognito logins. This is a ",[1214,2330,2331],{},"whole-DB replace",", intended only for fresh/disposable stages — it is refused by the stage guard on both ",[1199,2334,2144],{},[1199,2336,2105],{},[1346,2338,2339,2347],{},[1349,2340,2341],{},[1352,2342,2343,2345],{},[1355,2344,1357],{},[1355,2346,1360],{},[1362,2348,2349,2371,2381,2390,2399,2408],{},[1352,2350,2351,2356],{},[1367,2352,2353],{},[1199,2354,2355],{},"--force-full-reset",[1367,2357,2358,2359,2362,2363,2366,2367,2370],{},"Required to proceed — drops the stage's ",[1199,2360,2361],{},"public"," + ",[1199,2364,2365],{},"drizzle"," schemas and replaces ",[1214,2368,2369],{},"all"," stage data with the golden template",[1352,2372,2373,2378],{},[1367,2374,2375],{},[1199,2376,2377],{},"--allow-any-scale",[1367,2379,2380],{},"Skip the full-scale floor check (allows pushing a dev-scale template)",[1352,2382,2383,2387],{},[1367,2384,2385],{},[1199,2386,2286],{},[1367,2388,2389],{},"Skip the DynamoDB AI-chat leg",[1352,2391,2392,2396],{},[1367,2393,2394],{},[1199,2395,2293],{},[1367,2397,2398],{},"Skip the Cognito login leg",[1352,2400,2401,2405],{},[1367,2402,2403],{},[1199,2404,2300],{},[1367,2406,2407],{},"Run preflight checks (container/template/scale) and print the target + template + row counts, but drop/restore nothing",[1352,2409,2410,2415],{},[1367,2411,2412],{},[1199,2413,2414],{},"--target-db \u003CconnectionString>",[1367,2416,2417],{},"Push to an explicit Postgres connection string instead of the bound stage — used to publish the gated template into the dedicated golden source DB and for CI. Relaxes the stage journal guard and skips the AWS-bound aichat/Cognito legs",[1486,2419,2421],{"id":2420},"ds-golden-import",[1199,2422,2062],{},[1284,2424,2426],{"className":1286,"code":2425,"language":1288,"meta":1289,"style":1289},"ds golden import [--org \u003Cname>] [--skip-aichat] [--source \u003CenvVarName|connectionString>] [--dry-run]\n",[1199,2427,2428],{"__ignoreMap":1289},[1293,2429,2430,2432,2434,2436,2439,2441,2444,2446,2448,2450,2453,2455,2458,2460,2463,2466,2468,2471,2473,2475],{"class":1295,"line":11},[1293,2431,1201],{"class":1298},[1293,2433,2170],{"class":1506},[1293,2435,1707],{"class":1506},[1293,2437,2438],{"class":1301}," [--org ",[1293,2440,1723],{"class":1305},[1293,2442,2443],{"class":1506},"nam",[1293,2445,1975],{"class":1301},[1293,2447,1329],{"class":1305},[1293,2449,1312],{"class":1506},[1293,2451,2452],{"class":1301}," [--skip-aichat] ",[1293,2454,1306],{"class":1305},[1293,2456,2457],{"class":1301},"--source ",[1293,2459,1723],{"class":1305},[1293,2461,2462],{"class":1301},"envVarName",[1293,2464,2465],{"class":1305},"|",[1293,2467,2312],{"class":1301},[1293,2469,2470],{"class":1305},">]",[1293,2472,1315],{"class":1305},[1293,2474,2300],{"class":1301},[1293,2476,1344],{"class":1305},[1195,2478,2479,2482,2483,2485,2486,2488,2489,1407,2491,2493,2494,2497,2498,2501],{},[1214,2480,2481],{},"Additive",", org-scoped seed: copies the golden persona org(s) from the canonical golden source (",[1199,2484,2032],{}," — distinct from the generic ",[1199,2487,2044],{}," used by ",[1199,2490,1935],{},[1199,2492,2015],{},") into the bound stage ",[1214,2495,2496],{},"without wiping it",". This is the safe path for shared/populated stages such as ",[1199,2499,2500],{},"app.devstride.dev",". Cognito logins are created as part of the copy.",[1346,2503,2504,2512],{},[1349,2505,2506],{},[1352,2507,2508,2510],{},[1355,2509,1357],{},[1355,2511,1360],{},[1362,2513,2514,2541,2549,2562],{},[1352,2515,2516,2520],{},[1367,2517,2518],{},[1199,2519,2249],{},[1367,2521,2522,2523,2525,2526,2529,2530,2529,2533,2536,2537,2540],{},"Import one persona org instead of all. Currently ",[1199,2524,2255],{}," is the only golden persona org — the CLI's own help text still lists ",[1199,2527,2528],{},"bright","/",[1199,2531,2532],{},"indie",[1199,2534,2535],{},"brightTrial"," as options, but ",[1199,2538,2539],{},"ORG_IDS"," in the golden spec is Acme-only, so those other names are rejected at runtime",[1352,2542,2543,2547],{},[1367,2544,2545],{},[1199,2546,2286],{},[1367,2548,2389],{},[1352,2550,2551,2556],{},[1367,2552,2553],{},[1199,2554,2555],{},"--source \u003CenvVarName|connectionString>",[1367,2557,2558,2559,2561],{},"Golden source override — a connection string, or the name of an env var. Defaults to ",[1199,2560,2032],{},", then an interactive picker at a TTY",[1352,2563,2564,2568],{},[1367,2565,2566],{},[1199,2567,2300],{},[1367,2569,2570],{},"Run the parity/provenance checks and print the planned orgs, but make no changes",[1486,2572,2574],{"id":2573},"ds-golden-reanchor",[1199,2575,2576],{},"ds golden reanchor",[1284,2578,2580],{"className":1286,"code":2579,"language":1288,"meta":1289,"style":1289},"ds golden reanchor [--to \u003CYYYY-MM-DD|today>] [--shift \u003C±days>] [--org \u003Cname>] [--target-db \u003CconnectionString>] [--dry-run]\n",[1199,2581,2582],{"__ignoreMap":1289},[1293,2583,2584,2586,2588,2591,2594,2596,2599,2601,2604,2606,2608,2611,2613,2616,2618,2620,2622,2624,2626,2628,2630,2632,2634,2637,2639,2642,2644,2646,2648],{"class":1295,"line":11},[1293,2585,1201],{"class":1298},[1293,2587,2170],{"class":1506},[1293,2589,2590],{"class":1506}," reanchor",[1293,2592,2593],{"class":1301}," [--to ",[1293,2595,1723],{"class":1305},[1293,2597,2598],{"class":1506},"YYYY-MM-DD",[1293,2600,2465],{"class":1305},[1293,2602,2603],{"class":1298},"today",[1293,2605,1329],{"class":1301},[1293,2607,1312],{"class":1506},[1293,2609,2610],{"class":1301}," [--shift ",[1293,2612,1723],{"class":1305},[1293,2614,2615],{"class":1506},"±day",[1293,2617,1728],{"class":1301},[1293,2619,1329],{"class":1305},[1293,2621,1312],{"class":1506},[1293,2623,2438],{"class":1301},[1293,2625,1723],{"class":1305},[1293,2627,2443],{"class":1506},[1293,2629,1975],{"class":1301},[1293,2631,1329],{"class":1305},[1293,2633,1312],{"class":1506},[1293,2635,2636],{"class":1301}," [--target-db ",[1293,2638,1723],{"class":1305},[1293,2640,2641],{"class":1506},"connectionStrin",[1293,2643,1240],{"class":1301},[1293,2645,1329],{"class":1305},[1293,2647,1312],{"class":1506},[1293,2649,2650],{"class":1301}," [--dry-run]\n",[1195,2652,2653,2654,2657],{},"Shifts an already-built stage's entire temporal dataset (item dates, transactions, activity logs, timeboxes, roadmaps, custom-field dates, …) by a uniform delta ",[1214,2655,2656],{},"without rebuilding"," — re-anchors the demo to a new \"today\". Transactional, with a post-shift sanity probe.",[1346,2659,2660,2668],{},[1349,2661,2662],{},[1352,2663,2664,2666],{},[1355,2665,1357],{},[1355,2667,1360],{},[1362,2669,2670,2683,2696,2711,2720],{},[1352,2671,2672,2677],{},[1367,2673,2674],{},[1199,2675,2676],{},"--to \u003CYYYY-MM-DD|today>",[1367,2678,2679,2680,2682],{},"Re-anchor to an absolute target date (delta = target − stored anchor). Default when no flag is given: ",[1199,2681,2603],{}," (real wall-clock UTC)",[1352,2684,2685,2690],{},[1367,2686,2687],{},[1199,2688,2689],{},"--shift \u003C±days>",[1367,2691,2692,2693,1411],{},"Relative shift in whole days (mutually exclusive with ",[1199,2694,2695],{},"--to",[1352,2697,2698,2702],{},[1367,2699,2700],{},[1199,2701,2249],{},[1367,2703,2704,2705,2707,2708,2710],{},"Reanchor one persona org instead of all. Currently ",[1199,2706,2255],{},"-only in practice — see the note on ",[1199,2709,2062],{}," above",[1352,2712,2713,2717],{},[1367,2714,2715],{},[1199,2716,2414],{},[1367,2718,2719],{},"Shift an explicit Postgres DB (e.g. the local golden template) instead of the bound stage — for testing; skips the AWS AI-chat leg",[1352,2721,2722,2726],{},[1367,2723,2724],{},[1199,2725,2300],{},[1367,2727,2728],{},"Read the stored anchor, compute the delta, print the plan + row counts, mutate nothing",[1486,2730,2732],{"id":2731},"ds-golden-status",[1199,2733,2734],{},"ds golden status",[1284,2736,2738],{"className":1286,"code":2737,"language":1288,"meta":1289,"style":1289},"ds golden status [--target-db \u003CconnectionString>] [--skip-source]\n",[1199,2739,2740],{"__ignoreMap":1289},[1293,2741,2742,2744,2746,2749,2751,2753,2755,2757,2759,2761],{"class":1295,"line":11},[1293,2743,1201],{"class":1298},[1293,2745,2170],{"class":1506},[1293,2747,2748],{"class":1506}," status",[1293,2750,2636],{"class":1301},[1293,2752,1723],{"class":1305},[1293,2754,2641],{"class":1506},[1293,2756,1240],{"class":1301},[1293,2758,1329],{"class":1305},[1293,2760,1312],{"class":1506},[1293,2762,2763],{"class":1301}," [--skip-source]\n",[1195,2765,2766],{},"Read-only health report: are the persona orgs present, is the dataset anchored at today, is it in sync with the canonical source, does Acme carry the full 5-lane cumulative-flow staircase. Mutates nothing; exits non-zero when missing/stale/out-of-sync.",[1346,2768,2769,2777],{},[1349,2770,2771],{},[1352,2772,2773,2775],{},[1355,2774,1357],{},[1355,2776,1360],{},[1362,2778,2779,2788],{},[1352,2780,2781,2785],{},[1367,2782,2783],{},[1199,2784,2414],{},[1367,2786,2787],{},"Inspect an explicit Postgres connection string instead of the bound stage",[1352,2789,2790,2795],{},[1367,2791,2792],{},[1199,2793,2794],{},"--skip-source",[1367,2796,2797],{},"Skip the comparison against the canonical golden source",[1486,2799,2801],{"id":2800},"ds-golden-refresh-stage",[1199,2802,2803],{},"ds golden refresh-stage",[1284,2805,2807],{"className":1286,"code":2806,"language":1288,"meta":1289,"style":1289},"ds golden refresh-stage [--org \u003Cname>] [--skip-aichat]\n",[1199,2808,2809],{"__ignoreMap":1289},[1293,2810,2811,2813,2815,2818,2820,2822,2824,2826,2828,2830],{"class":1295,"line":11},[1293,2812,1201],{"class":1298},[1293,2814,2170],{"class":1506},[1293,2816,2817],{"class":1506}," refresh-stage",[1293,2819,2438],{"class":1301},[1293,2821,1723],{"class":1305},[1293,2823,2443],{"class":1506},[1293,2825,1975],{"class":1301},[1293,2827,1329],{"class":1305},[1293,2829,1312],{"class":1506},[1293,2831,2832],{"class":1301}," [--skip-aichat]\n",[1195,2834,2835,2836,1621,2838,2841],{},"One-shot recovery command: additive ",[1199,2837,2125],{},[1199,2839,2840],{},"reanchor --to today"," → verify. Use this when a dev stage was reset and the golden orgs disappeared. Rebuilds nothing (pulls the intact gated source); safe to re-run; leaves other tenants untouched.",[1346,2843,2844,2852],{},[1349,2845,2846],{},[1352,2847,2848,2850],{},[1355,2849,1357],{},[1355,2851,1360],{},[1362,2853,2854,2867],{},[1352,2855,2856,2860],{},[1367,2857,2858],{},[1199,2859,2249],{},[1367,2861,2862,2863,2707,2865,2710],{},"Refresh one persona org instead of all. Currently ",[1199,2864,2255],{},[1199,2866,2062],{},[1352,2868,2869,2873],{},[1367,2870,2871],{},[1199,2872,2286],{},[1367,2874,2875],{},"Skip the DynamoDB AI-chat leg of the import",[1486,2877,2879],{"id":2878},"ds-golden-aichat",[1199,2880,2881],{},"ds golden aichat",[1284,2883,2885],{"className":1286,"code":2884,"language":1288,"meta":1289,"style":1289},"ds golden aichat [--org \u003Cname>] [--force]\n",[1199,2886,2887],{"__ignoreMap":1289},[1293,2888,2889,2891,2893,2896,2898,2900,2902,2904,2906,2908],{"class":1295,"line":11},[1293,2890,1201],{"class":1298},[1293,2892,2170],{"class":1506},[1293,2894,2895],{"class":1506}," aichat",[1293,2897,2438],{"class":1301},[1293,2899,1723],{"class":1305},[1293,2901,2443],{"class":1506},[1293,2903,1975],{"class":1301},[1293,2905,1329],{"class":1305},[1293,2907,1312],{"class":1506},[1293,2909,2910],{"class":1301}," [--force]\n",[1195,2912,2913,2914,2916,2917,2919],{},"Seeds the golden AI-assistant chats in DynamoDB. Run after ",[1199,2915,2101],{}," or ",[1199,2918,2109],{}," if the Dynamo leg was skipped or failed.",[1346,2921,2922,2930],{},[1349,2923,2924],{},[1352,2925,2926,2928],{},[1355,2927,1357],{},[1355,2929,1360],{},[1362,2931,2932,2945],{},[1352,2933,2934,2938],{},[1367,2935,2936],{},[1199,2937,2249],{},[1367,2939,2940,2941,2707,2943,2710],{},"Only seed one org's chat. Currently ",[1199,2942,2255],{},[1199,2944,2062],{},[1352,2946,2947,2952],{},[1367,2948,2949],{},[1199,2950,2951],{},"--force",[1367,2953,2954],{},"Delete each persona's existing chat(s) before seeding, so an updated transcript is written instead of the stale one being kept",[1486,2956,2958],{"id":2957},"ds-golden-enrich",[1199,2959,2960],{},"ds golden enrich",[1284,2962,2964],{"className":1286,"code":2963,"language":1288,"meta":1289,"style":1289},"ds golden enrich [--org \u003Cname>] [--aspect \u003Cnames...>]\n",[1199,2965,2966],{"__ignoreMap":1289},[1293,2967,2968,2970,2972,2975,2977,2979,2981,2983,2985,2987,2990,2992,2995,2997,2999],{"class":1295,"line":11},[1293,2969,1201],{"class":1298},[1293,2971,2170],{"class":1506},[1293,2973,2974],{"class":1506}," enrich",[1293,2976,2438],{"class":1301},[1293,2978,1723],{"class":1305},[1293,2980,2443],{"class":1506},[1293,2982,1975],{"class":1301},[1293,2984,1329],{"class":1305},[1293,2986,1312],{"class":1506},[1293,2988,2989],{"class":1301}," [--aspect ",[1293,2991,1723],{"class":1305},[1293,2993,2994],{"class":1506},"names..",[1293,2996,1431],{"class":1301},[1293,2998,1329],{"class":1305},[1293,3000,1344],{"class":1506},[1195,3002,3003,3004,3007,3008,3010],{},"Additively patches an existing golden org in place — descriptions, activity, and similar polish — ",[1214,3005,3006],{},"without a rebuild",". Idempotent, never truncates. Distinct from ",[1199,3009,2109],{},", which rebuilds from scratch.",[1346,3012,3013,3021],{},[1349,3014,3015],{},[1352,3016,3017,3019],{},[1355,3018,1357],{},[1355,3020,1360],{},[1362,3022,3023,3035],{},[1352,3024,3025,3029],{},[1367,3026,3027],{},[1199,3028,2249],{},[1367,3030,3031,3032,3034],{},"The org to enrich. Default: ",[1199,3033,2255],{}," (currently the only scaled org with an enrich profile)",[1352,3036,3037,3042],{},[1367,3038,3039],{},[1199,3040,3041],{},"--aspect \u003Cnames...>",[1367,3043,3044,3045,1221,3048,1221,3051,1221,3054,1221,3057,1221,3060,1221,3063,1221,3066,3069],{},"Which data point(s) to patch: ",[1199,3046,3047],{},"descriptions",[1199,3049,3050],{},"archive-example",[1199,3052,3053],{},"feature-planning",[1199,3055,3056],{},"admin-governance",[1199,3058,3059],{},"pi-objectives",[1199,3061,3062],{},"activity",[1199,3064,3065],{},"comments",[1199,3067,3068],{},"time-entries",". Default: all aspects",[1486,3071,3073],{"id":3072},"ds-golden-lifecycle",[1199,3074,3075],{},"ds golden lifecycle",[1284,3077,3079],{"className":1286,"code":3078,"language":1288,"meta":1289,"style":1289},"ds golden lifecycle [--workers \u003Cn>] [--target-db \u003CconnectionString>]\n",[1199,3080,3081],{"__ignoreMap":1289},[1293,3082,3083,3085,3087,3090,3093,3095,3097,3099,3101,3103,3105,3107,3109,3111],{"class":1295,"line":11},[1293,3084,1201],{"class":1298},[1293,3086,2170],{"class":1506},[1293,3088,3089],{"class":1506}," lifecycle",[1293,3091,3092],{"class":1301}," [--workers ",[1293,3094,1723],{"class":1305},[1293,3096,1960],{"class":1301},[1293,3098,1329],{"class":1305},[1293,3100,1312],{"class":1506},[1293,3102,2636],{"class":1301},[1293,3104,1723],{"class":1305},[1293,3106,2641],{"class":1506},[1293,3108,1240],{"class":1301},[1293,3110,1329],{"class":1305},[1293,3112,1344],{"class":1506},[1413,3114,3116,3117,3123],{"title":3115,"type":1774},"Work in progress","The command's own description marks it ",[1214,3118,3119,3120,3119],{},"\"",[1293,3121,3122],{},"WIP — not yet functional via the CLI",". The partition + walk logic is determinism-verified in-process, but the CLI path needs the DynamoDB item \"state\" read-model alive and populated locally, which vitest tears down after a build. Documented here for completeness, not as a reliable everyday tool.",[1195,3125,3126],{},"Intended purpose: parallel lane walk that gives every scaled Acme item a back-dated PUBLISHED lane/status history across N worker processes. No-op at representative scale; idempotent and deterministic when it does run.",[1346,3128,3129,3137],{},[1349,3130,3131],{},[1352,3132,3133,3135],{},[1355,3134,1357],{},[1355,3136,1360],{},[1362,3138,3139,3155],{},[1352,3140,3141,3146],{},[1367,3142,3143],{},[1199,3144,3145],{},"--workers \u003Cn>",[1367,3147,3148,3149,2916,3152],{},"Number of worker processes. Default: ",[1199,3150,3151],{},"min(8, cores)",[1199,3153,3154],{},"GOLDEN_LIFECYCLE_WORKERS",[1352,3156,3157,3161],{},[1367,3158,3159],{},[1199,3160,2414],{},[1367,3162,3163],{},"Run the walk against an explicit Postgres DB instead of the bound stage — canonical use is the local Docker golden template",[1486,3165,3167],{"id":3166},"ds-golden-reset",[1199,3168,3169],{},"ds golden reset",[1284,3171,3173],{"className":1286,"code":3172,"language":1288,"meta":1289,"style":1289},"ds golden reset [--org \u003Cname>]\n",[1199,3174,3175],{"__ignoreMap":1289},[1293,3176,3177,3179,3181,3184,3186,3188,3190,3192,3194],{"class":1295,"line":11},[1293,3178,1201],{"class":1298},[1293,3180,2170],{"class":1506},[1293,3182,3183],{"class":1506}," reset",[1293,3185,2438],{"class":1301},[1293,3187,1723],{"class":1305},[1293,3189,2443],{"class":1506},[1293,3191,1975],{"class":1301},[1293,3193,1329],{"class":1305},[1293,3195,1344],{"class":1506},[1195,3197,3198,3199,3201],{},"Deletes the golden Acme org's rows in the bound DB. ",[1214,3200,2204],{}," — only the Acme org is removed; all other data on the stage is left intact (never a whole-DB truncate).",[1346,3203,3204,3212],{},[1349,3205,3206],{},[1352,3207,3208,3210],{},[1355,3209,1357],{},[1355,3211,1360],{},[1362,3213,3214],{},[1352,3215,3216,3220],{},[1367,3217,3218],{},[1199,3219,2249],{},[1367,3221,3222,3223,1411],{},"Reset a specific golden org (currently only ",[1199,3224,2255],{},[1486,3226,3228],{"id":3227},"ds-golden-cognito",[1199,3229,3230],{},"ds golden cognito",[1284,3232,3234],{"className":1286,"code":3233,"language":1288,"meta":1289,"style":1289},"ds golden cognito [--org \u003Cname>]\n",[1199,3235,3236],{"__ignoreMap":1289},[1293,3237,3238,3240,3242,3245,3247,3249,3251,3253,3255],{"class":1295,"line":11},[1293,3239,1201],{"class":1298},[1293,3241,2170],{"class":1506},[1293,3243,3244],{"class":1506}," cognito",[1293,3246,2438],{"class":1301},[1293,3248,1723],{"class":1305},[1293,3250,2443],{"class":1506},[1293,3252,1975],{"class":1301},[1293,3254,1329],{"class":1305},[1293,3256,1344],{"class":1506},[1195,3258,3259,3260,3263,3264,1431],{},"Seeds Cognito logins (password ",[1199,3261,3262],{},"Demo@123",") for the golden persona users. Run after ",[1199,3265,2109],{},[1346,3267,3268,3276],{},[1349,3269,3270],{},[1352,3271,3272,3274],{},[1355,3273,1357],{},[1355,3275,1360],{},[1362,3277,3278],{},[1352,3279,3280,3284],{},[1367,3281,3282],{},[1199,3283,2249],{},[1367,3285,3286,3287,2707,3289,2710],{},"Only seed one org's users. Currently ",[1199,3288,2255],{},[1199,3290,2062],{},[1486,3292,3294],{"id":3293},"ds-golden-preview",[1199,3295,3296],{},"ds golden preview",[1284,3298,3300],{"className":1286,"code":3299,"language":1288,"meta":1289,"style":1289},"ds golden preview\n",[1199,3301,3302],{"__ignoreMap":1289},[1293,3303,3304,3306,3308],{"class":1295,"line":11},[1293,3305,1201],{"class":1298},[1293,3307,2170],{"class":1506},[1293,3309,3310],{"class":1506}," preview\n",[1195,3312,3313],{},"Renders the golden spec to text — pure spec-to-text dump, no DB access at all. No flags.",[1466,3315],{},[1272,3317,3319],{"id":3318},"ds-script",[1199,3320,3321],{},"ds script",[1195,3323,1476,3324,3327],{},[1199,3325,3326],{},"cli/commands/script.ts",". A grab-bag of one-off scripts and everyday maintenance commands — most take no flags at all.",[1486,3329,3331],{"id":3330},"ds-script-find-missing-inits",[1199,3332,3333],{},"ds script find-missing-inits",[1284,3335,3337],{"className":1286,"code":3336,"language":1288,"meta":1289,"style":1289},"ds script find-missing-inits\n",[1199,3338,3339],{"__ignoreMap":1289},[1293,3340,3341,3343,3346],{"class":1295,"line":11},[1293,3342,1201],{"class":1298},[1293,3344,3345],{"class":1506}," script",[1293,3347,3348],{"class":1506}," find-missing-inits\n",[1195,3350,3351],{},"Codebase scan for Command/Query handlers that aren't wired up in their module's init file. No flags.",[1486,3353,3355],{"id":3354},"ds-script-find-missing-set-correlation-ids",[1199,3356,3357],{},"ds script find-missing-set-correlation-ids",[1284,3359,3361],{"className":1286,"code":3360,"language":1288,"meta":1289,"style":1289},"ds script find-missing-set-correlation-ids\n",[1199,3362,3363],{"__ignoreMap":1289},[1293,3364,3365,3367,3369],{"class":1295,"line":11},[1293,3366,1201],{"class":1298},[1293,3368,3345],{"class":1506},[1293,3370,3371],{"class":1506}," find-missing-set-correlation-ids\n",[1195,3373,3374],{},"Codebase scan for handlers missing correlation-ID propagation. No flags.",[1486,3376,3378],{"id":3377},"ds-script-find-missing-events-registration",[1199,3379,3380],{},"ds script find-missing-events-registration",[1284,3382,3384],{"className":1286,"code":3383,"language":1288,"meta":1289,"style":1289},"ds script find-missing-events-registration\n",[1199,3385,3386],{"__ignoreMap":1289},[1293,3387,3388,3390,3392],{"class":1295,"line":11},[1293,3389,1201],{"class":1298},[1293,3391,3345],{"class":1506},[1293,3393,3394],{"class":1506}," find-missing-events-registration\n",[1195,3396,3397],{},"Codebase scan for domain/integration events that aren't registered. No flags.",[1486,3399,3401],{"id":3400},"ds-script-find-missing-events-in-stack",[1199,3402,3403],{},"ds script find-missing-events-in-stack",[1284,3405,3407],{"className":1286,"code":3406,"language":1288,"meta":1289,"style":1289},"ds script find-missing-events-in-stack\n",[1199,3408,3409],{"__ignoreMap":1289},[1293,3410,3411,3413,3415],{"class":1295,"line":11},[1293,3412,1201],{"class":1298},[1293,3414,3345],{"class":1506},[1293,3416,3417],{"class":1506}," find-missing-events-in-stack\n",[1195,3419,3420],{},"Codebase scan for event handlers missing from the infrastructure stack. No flags.",[1486,3422,3424],{"id":3423},"ds-script-generate-api-docs",[1199,3425,3426],{},"ds script generate-api-docs",[1284,3428,3430],{"className":1286,"code":3429,"language":1288,"meta":1289,"style":1289},"ds script generate-api-docs\n",[1199,3431,3432],{"__ignoreMap":1289},[1293,3433,3434,3436,3438],{"class":1295,"line":11},[1293,3435,1201],{"class":1298},[1293,3437,3345],{"class":1506},[1293,3439,3440],{"class":1506}," generate-api-docs\n",[1195,3442,3443],{},"Generates the public-facing OpenAPI spec with embedded documentation. No flags.",[1486,3445,3447],{"id":3446},"ds-script-generate-api-client",[1199,3448,3449],{},"ds script generate-api-client",[1284,3451,3453],{"className":1286,"code":3452,"language":1288,"meta":1289,"style":1289},"ds script generate-api-client\n",[1199,3454,3455],{"__ignoreMap":1289},[1293,3456,3457,3459,3461],{"class":1295,"line":11},[1293,3458,1201],{"class":1298},[1293,3460,3345],{"class":1506},[1293,3462,3463],{"class":1506}," generate-api-client\n",[1195,3465,3466,3467,3470],{},"Generates the typed frontend TypeScript API client SDK from backend Hono routes (also writes the canonical ",[1199,3468,3469],{},".ds/tmp/openapi.json","). No flags.",[1486,3472,3474],{"id":3473},"ds-script-generate-api-mcp",[1199,3475,3476],{},"ds script generate-api-mcp",[1284,3478,3480],{"className":1286,"code":3479,"language":1288,"meta":1289,"style":1289},"ds script generate-api-mcp\n",[1199,3481,3482],{"__ignoreMap":1289},[1293,3483,3484,3486,3488],{"class":1295,"line":11},[1293,3485,1201],{"class":1298},[1293,3487,3345],{"class":1506},[1293,3489,3490],{"class":1506}," generate-api-mcp\n",[1195,3492,3493,3494,1621,3497,3500,3501,3504,3505,3508,3509,3512],{},"Orchestrates the full MCP-SDK refresh, in order: ",[1199,3495,3496],{},"generate-api-client",[1199,3498,3499],{},"generate-api-docs"," → regenerates ",[1199,3502,3503],{},"packages/mcp/src/devstride/gen/*"," (sdk, types, schemas, operations, components) by running ",[1199,3506,3507],{},"packages/mcp/scripts/generate.ts",". Run this after any backend OpenAPI change — the generated ",[1199,3510,3511],{},"packages/mcp"," files are committed to git. No flags.",[1486,3514,3516],{"id":3515},"ds-script-delete-orphaned-items",[1199,3517,3518],{},"ds script delete-orphaned-items",[1284,3520,3522],{"className":1286,"code":3521,"language":1288,"meta":1289,"style":1289},"ds script delete-orphaned-items\n",[1199,3523,3524],{"__ignoreMap":1289},[1293,3525,3526,3528,3530],{"class":1295,"line":11},[1293,3527,1201],{"class":1298},[1293,3529,3345],{"class":1506},[1293,3531,3532],{"class":1506}," delete-orphaned-items\n",[1195,3534,3535],{},"Deletes orphaned folders, work items, activity, comments, and assets from the database. No flags.",[1486,3537,3539],{"id":3538},"ds-script-set-config",[1199,3540,3541],{},"ds script set-config",[1284,3543,3545],{"className":1286,"code":3544,"language":1288,"meta":1289,"style":1289},"ds script set-config\n",[1199,3546,3547],{"__ignoreMap":1289},[1293,3548,3549,3551,3553],{"class":1295,"line":11},[1293,3550,1201],{"class":1298},[1293,3552,3345],{"class":1506},[1293,3554,3555],{"class":1506}," set-config\n",[1195,3557,3558,3559,3562,3563,3566],{},"Validates 22 unconditionally-required environment variables (DB connection strings including the read-only replica, Stripe keys, OpenAI key, Azure DevOps + Jira app credentials, all four Pusher vars, GitHub app credentials, and more), plus 5 more that are required only if SMTP is configured, then ",[1214,3560,3561],{},"pushes"," them up as ",[1199,3564,3565],{},"sst secrets set DEVSTRIDE_CONFIG"," (base64-encoded JSON). No flags.",[1413,3568,3570,3610],{"title":3569,"type":1774},"Pushes up, does not pull down",[1195,3571,3572,3574,3575,3578,3579,3581,3582,3585,3586,3589,3590,3592,3593,3595,3596,3598,3599,3602,3603,3605,3606,3609],{},[1199,3573,3541],{}," writes your ",[1214,3576,3577],{},"local"," ",[1199,3580,2040],{}," values ",[1214,3583,3584],{},"up"," into the SST ",[1199,3587,3588],{},"DEVSTRIDE_CONFIG"," secret — it does not pull anything down. There is no automated secrets-pull command in this CLI; new developers get ",[1199,3591,2040],{}," values from a teammate and fill ",[1199,3594,2040],{}," in by hand. The running backend does not read ",[1199,3597,2040],{}," directly at runtime — the CLI-side ",[1199,3600,3601],{},"dotenv.config()"," only feeds the CLI/build-time process used to synth ",[1199,3604,1524],{},". The actual Lambda / ",[1199,3607,3608],{},"sst dev"," process reads secrets via the SST Config binding, which is exactly what this command populates.",[1195,3611,3612,3613,3615,3616,3619,3620,3623],{},"The correct command name is ",[1199,3614,3541],{},". ",[1199,3617,3618],{},"ds script set-secrets"," does ",[1214,3621,3622],{},"not"," exist in this CLI.",[1486,3625,3627],{"id":3626},"ds-script-check-orphan-stacks",[1199,3628,3629],{},"ds script check-orphan-stacks",[1284,3631,3633],{"className":1286,"code":3632,"language":1288,"meta":1289,"style":1289},"ds script check-orphan-stacks\n",[1199,3634,3635],{"__ignoreMap":1289},[1293,3636,3637,3639,3641],{"class":1295,"line":11},[1293,3638,1201],{"class":1298},[1293,3640,3345],{"class":1506},[1293,3642,3643],{"class":1506}," check-orphan-stacks\n",[1195,3645,3646,3647,3649],{},"Reports orphaned CloudFormation stacks left behind by earlier ",[1199,3648,1524],{}," changes. No flags.",[1486,3651,3653],{"id":3652},"ds-script-delete-orphan-stacks",[1199,3654,3655],{},"ds script delete-orphan-stacks",[1284,3657,3659],{"className":1286,"code":3658,"language":1288,"meta":1289,"style":1289},"ds script delete-orphan-stacks\n",[1199,3660,3661],{"__ignoreMap":1289},[1293,3662,3663,3665,3667],{"class":1295,"line":11},[1293,3664,1201],{"class":1298},[1293,3666,3345],{"class":1506},[1293,3668,3669],{"class":1506}," delete-orphan-stacks\n",[1195,3671,3672,3673,2145,3675,3677],{},"Deletes the orphaned CloudFormation stacks found by the check above. Also invoked internally by ",[1199,3674,1491],{},[1199,3676,2015],{},". No flags.",[1486,3679,3681],{"id":3680},"ds-script-assistant",[1199,3682,3683],{},"ds script assistant",[1284,3685,3687],{"className":1286,"code":3686,"language":1288,"meta":1289,"style":1289},"ds script assistant\n",[1199,3688,3689],{"__ignoreMap":1289},[1293,3690,3691,3693,3695],{"class":1295,"line":11},[1293,3692,1201],{"class":1298},[1293,3694,3345],{"class":1506},[1293,3696,3697],{"class":1506}," assistant\n",[1413,3699,3701,3702,1221,3705,3708],{"title":3700,"type":1774},"Likely stale","Built on an old LangChain-based CLI assistant (imports from ",[1199,3703,3704],{},"langchain/chat_models",[1199,3706,3707],{},"langchain/agents","). Not a reliable everyday tool — flagged here as likely unmaintained.",[1195,3710,3711],{},"No flags.",[1486,3713,3715],{"id":3714},"ds-script-get-active-emails",[1199,3716,3717],{},"ds script get-active-emails",[1284,3719,3721],{"className":1286,"code":3720,"language":1288,"meta":1289,"style":1289},"ds script get-active-emails\n",[1199,3722,3723],{"__ignoreMap":1289},[1293,3724,3725,3727,3729],{"class":1295,"line":11},[1293,3726,1201],{"class":1298},[1293,3728,3345],{"class":1506},[1293,3730,3731],{"class":1506}," get-active-emails\n",[1195,3733,3734],{},"Dumps active users' emails across organizations. No flags.",[1486,3736,3738],{"id":3737},"ds-script-maintenance-on",[1199,3739,3740],{},"ds script maintenance-on",[1284,3742,3744],{"className":1286,"code":3743,"language":1288,"meta":1289,"style":1289},"ds script maintenance-on\n",[1199,3745,3746],{"__ignoreMap":1289},[1293,3747,3748,3750,3752],{"class":1295,"line":11},[1293,3749,1201],{"class":1298},[1293,3751,3345],{"class":1506},[1293,3753,3754],{"class":1506}," maintenance-on\n",[1195,3756,3757],{},"Enables maintenance mode by toggling a Lambda environment variable. No flags.",[1486,3759,3761],{"id":3760},"ds-script-maintenance-off",[1199,3762,3763],{},"ds script maintenance-off",[1284,3765,3767],{"className":1286,"code":3766,"language":1288,"meta":1289,"style":1289},"ds script maintenance-off\n",[1199,3768,3769],{"__ignoreMap":1289},[1293,3770,3771,3773,3775],{"class":1295,"line":11},[1293,3772,1201],{"class":1298},[1293,3774,3345],{"class":1506},[1293,3776,3777],{"class":1506}," maintenance-off\n",[1195,3779,3780],{},"Disables maintenance mode. No flags.",[1486,3782,3784],{"id":3783},"ds-script-backfill-access-permissions",[1199,3785,3786],{},"ds script backfill-access-permissions",[1284,3788,3790],{"className":1286,"code":3789,"language":1288,"meta":1289,"style":1289},"ds script backfill-access-permissions\n",[1199,3791,3792],{"__ignoreMap":1289},[1293,3793,3794,3796,3798],{"class":1295,"line":11},[1293,3795,1201],{"class":1298},[1293,3797,3345],{"class":1506},[1293,3799,3800],{"class":1506}," backfill-access-permissions\n",[1195,3802,3803],{},"Idempotent SQL backfill of baseline module-access permission keys. No flags.",[1486,3805,3807],{"id":3806},"ds-script-inspect-user-permissions",[1199,3808,3809],{},"ds script inspect-user-permissions",[1284,3811,3813],{"className":1286,"code":3812,"language":1288,"meta":1289,"style":1289},"ds script inspect-user-permissions \u003Cusername>\n",[1199,3814,3815],{"__ignoreMap":1289},[1293,3816,3817,3819,3821,3824,3826,3829,3831],{"class":1295,"line":11},[1293,3818,1201],{"class":1298},[1293,3820,3345],{"class":1506},[1293,3822,3823],{"class":1506}," inspect-user-permissions",[1293,3825,1323],{"class":1305},[1293,3827,3828],{"class":1506},"usernam",[1293,3830,1975],{"class":1301},[1293,3832,3833],{"class":1305},">\n",[1195,3835,3836,3837,2145,3840,3843,3844,3847],{},"Diagnostic dump of every organization membership for a username, including the role's ",[1199,3838,3839],{},"permissions",[1199,3841,3842],{},"is_system_owner"," flag — useful for telling a stale DB role apart from a stale frontend session. The username is read positionally from ",[1199,3845,3846],{},"process.argv",", not a Commander-declared argument; omitting it prints a usage message and exits non-zero. No flags.",[1486,3849,3851],{"id":3850},"ds-script-reset-db",[1199,3852,2015],{},[1284,3854,3856],{"className":1286,"code":3855,"language":1288,"meta":1289,"style":1289},"ds script reset-db\n",[1199,3857,3858],{"__ignoreMap":1289},[1293,3859,3860,3862,3864],{"class":1295,"line":11},[1293,3861,1201],{"class":1298},[1293,3863,3345],{"class":1506},[1293,3865,3866],{"class":1506}," reset-db\n",[1195,3868,3869,3870,3872,3873,3875,3876,3878,3879,3881],{},"Full local reset: terminates other DB connections, drops and recreates the ",[1199,3871,2361],{}," schema (and drops ",[1199,3874,2365],{},"), deletes every Cognito user, re-runs SQL migrations, re-adds Stripe products, copies the demo organization (",[1199,3877,2011],{},") from ",[1199,3880,2044],{},", and cleans up orphan stacks. No flags.",[1413,3883,3884,3885,1431],{"title":1924,"type":1925},"Throws immediately if ",[1199,3886,1929],{},[1486,3888,3890,1407,3892],{"id":3889},"ds-script-maintenance-on-ds-script-maintenance-off",[1199,3891,3740],{},[1199,3893,3763],{},[1195,3895,3896],{},"Covered above — both toggle the same Lambda env var, no flags on either.",[1486,3898,3900],{"id":3899},"ds-script-remove-org",[1199,3901,3902],{},"ds script remove-org",[1284,3904,3906],{"className":1286,"code":3905,"language":1288,"meta":1289,"style":1289},"ds script remove-org [-o \u003Corganization>]\n",[1199,3907,3908],{"__ignoreMap":1289},[1293,3909,3910,3912,3914,3917,3919,3921,3923,3925,3927],{"class":1295,"line":11},[1293,3911,1201],{"class":1298},[1293,3913,3345],{"class":1506},[1293,3915,3916],{"class":1506}," remove-org",[1293,3918,1952],{"class":1301},[1293,3920,1723],{"class":1305},[1293,3922,1957],{"class":1506},[1293,3924,1960],{"class":1301},[1293,3926,1329],{"class":1305},[1293,3928,1344],{"class":1506},[1195,3930,3931,3932,3934],{},"Deletes ",[1214,3933,2369],{}," rows for one organization.",[1346,3936,3937,3945],{},[1349,3938,3939],{},[1352,3940,3941,3943],{},[1355,3942,1357],{},[1355,3944,1360],{},[1362,3946,3947],{},[1352,3948,3949,3953],{},[1367,3950,3951],{},[1199,3952,2005],{},[1367,3954,3955],{},"Organization ID to remove",[1195,3957,3958],{},"Dev-only guard applies (not safe to run on prod).",[1486,3960,3962],{"id":3961},"ds-script-create-slack-workflows",[1199,3963,3964],{},"ds script create-slack-workflows",[1284,3966,3968],{"className":1286,"code":3967,"language":1288,"meta":1289,"style":1289},"ds script create-slack-workflows\n",[1199,3969,3970],{"__ignoreMap":1289},[1293,3971,3972,3974,3976],{"class":1295,"line":11},[1293,3973,1201],{"class":1298},[1293,3975,3345],{"class":1506},[1293,3977,3978],{"class":1506}," create-slack-workflows\n",[1195,3980,3981],{},"One-off historical migration: provisions Slack notification workflows for existing users. No flags.",[1486,3983,3985],{"id":3984},"ds-script-migrate-workitem-timespent-to-timeentry",[1199,3986,3987],{},"ds script migrate-workitem-timespent-to-timeentry",[1284,3989,3991],{"className":1286,"code":3990,"language":1288,"meta":1289,"style":1289},"ds script migrate-workitem-timespent-to-timeentry\n",[1199,3992,3993],{"__ignoreMap":1289},[1293,3994,3995,3997,3999],{"class":1295,"line":11},[1293,3996,1201],{"class":1298},[1293,3998,3345],{"class":1506},[1293,4000,4001],{"class":1506}," migrate-workitem-timespent-to-timeentry\n",[1195,4003,4004],{},"One-off historical migration: converts legacy work-item time-spent data into time-entry records. No flags.",[1486,4006,4008],{"id":4007},"ds-script-add-default-sidebar-form-group",[1199,4009,4010],{},"ds script add-default-sidebar-form-group",[1284,4012,4014],{"className":1286,"code":4013,"language":1288,"meta":1289,"style":1289},"ds script add-default-sidebar-form-group\n",[1199,4015,4016],{"__ignoreMap":1289},[1293,4017,4018,4020,4022],{"class":1295,"line":11},[1293,4019,1201],{"class":1298},[1293,4021,3345],{"class":1506},[1293,4023,4024],{"class":1506}," add-default-sidebar-form-group\n",[1195,4026,4027],{},"One-off historical migration: backfills a default sidebar form group. No flags.",[1413,4029,4031,1221,4034,1237,4037,4040],{"title":4030,"type":1416},"One-off scripts, not everyday tools",[1199,4032,4033],{},"create-slack-workflows",[1199,4035,4036],{},"migrate-workitem-timespent-to-timeentry",[1199,4038,4039],{},"add-default-sidebar-form-group"," are historical, single-use migration scripts kept for the record — not part of the regular development loop.",[1466,4042],{},[1272,4044,4046],{"id":4045},"ds-stripe",[1199,4047,4048],{},"ds stripe",[1195,4050,1476,4051,4054],{},[1199,4052,4053],{},"cli/commands/stripe.ts",". Three subcommands for managing Stripe products, customers, and subscription quantities.",[1486,4056,4058],{"id":4057},"ds-stripe-add-products",[1199,4059,4060],{},"ds stripe add-products",[1284,4062,4064],{"className":1286,"code":4063,"language":1288,"meta":1289,"style":1289},"ds stripe add-products\n",[1199,4065,4066],{"__ignoreMap":1289},[1293,4067,4068,4070,4073],{"class":1295,"line":11},[1293,4069,1201],{"class":1298},[1293,4071,4072],{"class":1506}," stripe",[1293,4074,4075],{"class":1506}," add-products\n",[1195,4077,4078,4079,3677],{},"Creates Stripe products/prices via ",[1199,4080,4081],{},"CreateProductCommand",[1486,4083,4085],{"id":4084},"ds-stripe-create-customers",[1199,4086,4087],{},"ds stripe create-customers",[1284,4089,4091],{"className":1286,"code":4090,"language":1288,"meta":1289,"style":1289},"ds stripe create-customers [-o \u003Corganization>]\n",[1199,4092,4093],{"__ignoreMap":1289},[1293,4094,4095,4097,4099,4102,4104,4106,4108,4110,4112],{"class":1295,"line":11},[1293,4096,1201],{"class":1298},[1293,4098,4072],{"class":1506},[1293,4100,4101],{"class":1506}," create-customers",[1293,4103,1952],{"class":1301},[1293,4105,1723],{"class":1305},[1293,4107,1957],{"class":1506},[1293,4109,1960],{"class":1301},[1293,4111,1329],{"class":1305},[1293,4113,1344],{"class":1506},[1195,4115,4116],{},"Creates Stripe customers for organizations.",[1346,4118,4119,4127],{},[1349,4120,4121],{},[1352,4122,4123,4125],{},[1355,4124,1357],{},[1355,4126,1360],{},[1362,4128,4129],{},[1352,4130,4131,4135],{},[1367,4132,4133],{},[1199,4134,2005],{},[1367,4136,4137],{},"Organization ID. Omit to create customers for all organizations",[1486,4139,4141],{"id":4140},"ds-stripe-find-subscription-quantity",[1199,4142,4143],{},"ds stripe find-subscription-quantity",[1284,4145,4147],{"className":1286,"code":4146,"language":1288,"meta":1289,"style":1289},"ds stripe find-subscription-quantity [-o \u003Corganization>]\n",[1199,4148,4149],{"__ignoreMap":1289},[1293,4150,4151,4153,4155,4158,4160,4162,4164,4166,4168],{"class":1295,"line":11},[1293,4152,1201],{"class":1298},[1293,4154,4072],{"class":1506},[1293,4156,4157],{"class":1506}," find-subscription-quantity",[1293,4159,1952],{"class":1301},[1293,4161,1723],{"class":1305},[1293,4163,1957],{"class":1506},[1293,4165,1960],{"class":1301},[1293,4167,1329],{"class":1305},[1293,4169,1344],{"class":1506},[1195,4171,4172],{},"Reports subscription seat quantity for organization(s).",[1346,4174,4175,4183],{},[1349,4176,4177],{},[1352,4178,4179,4181],{},[1355,4180,1357],{},[1355,4182,1360],{},[1362,4184,4185],{},[1352,4186,4187,4191],{},[1367,4188,4189],{},[1199,4190,2005],{},[1367,4192,4193],{},"Organization ID. Omit to report for all organizations",[1413,4195,4197,4198,1221,4201,1221,4204,4207,4208,4211],{"title":4196,"type":1416},"No sync commands","There is no ",[1199,4199,4200],{},"ds stripe sync-products",[1199,4202,4203],{},"sync-customers",[1199,4205,4206],{},"check-quantities",", or any Slack ",[1199,4209,4210],{},"backfill-notifications"," command — those do not exist in this CLI.",[1466,4213],{},[1272,4215,4217],{"id":4216},"ds-g",[1199,4218,4219],{},"ds g",[1195,4221,1476,4222,4225],{},[1199,4223,4224],{},"cli/commands/g.ts",". CQRS codegen — scaffolds a new command or query into a backend module.",[1486,4227,4229,2155,4232,1411],{"id":4228},"ds-g-command-alias-c",[1199,4230,4231],{},"ds g command",[1199,4233,4234],{},"c",[1284,4236,4238],{"className":1286,"code":4237,"language":1288,"meta":1289,"style":1289},"ds g command \u003Cname> -m \u003Cmodule> [-f]\n",[1199,4239,4240],{"__ignoreMap":1289},[1293,4241,4242,4244,4247,4250,4252,4254,4256,4258,4261,4263,4266,4268,4270],{"class":1295,"line":11},[1293,4243,1201],{"class":1298},[1293,4245,4246],{"class":1506}," g",[1293,4248,4249],{"class":1506}," command",[1293,4251,1323],{"class":1305},[1293,4253,2443],{"class":1506},[1293,4255,1975],{"class":1301},[1293,4257,1329],{"class":1305},[1293,4259,4260],{"class":1506}," -m",[1293,4262,1323],{"class":1305},[1293,4264,4265],{"class":1506},"modul",[1293,4267,1975],{"class":1301},[1293,4269,1329],{"class":1305},[1293,4271,4272],{"class":1301}," [-f]\n",[1195,4274,4275],{},"Scaffolds a new CQRS command (command artifact, init, service handler, Lambda handler) in the given module.",[1346,4277,4278,4286],{},[1349,4279,4280],{},[1352,4281,4282,4284],{},[1355,4283,1357],{},[1355,4285,1360],{},[1362,4287,4288,4298,4308],{},[1352,4289,4290,4295],{},[1367,4291,4292],{},[1199,4293,4294],{},"\u003Cname>",[1367,4296,4297],{},"(required, positional) Command name",[1352,4299,4300,4305],{},[1367,4301,4302],{},[1199,4303,4304],{},"-m, --module \u003Cmodule>",[1367,4306,4307],{},"(required) Module to generate the command in — throws if omitted",[1352,4309,4310,4315],{},[1367,4311,4312],{},[1199,4313,4314],{},"-f, --force",[1367,4316,4317,4318],{},"Overwrite existing files. Default: ",[1199,4319,4320],{},"false",[1486,4322,4324,2155,4327,1411],{"id":4323},"ds-g-query-alias-q",[1199,4325,4326],{},"ds g query",[1199,4328,4329],{},"q",[1284,4331,4333],{"className":1286,"code":4332,"language":1288,"meta":1289,"style":1289},"ds g query \u003Cname> -m \u003Cmodule> [-f]\n",[1199,4334,4335],{"__ignoreMap":1289},[1293,4336,4337,4339,4341,4344,4346,4348,4350,4352,4354,4356,4358,4360,4362],{"class":1295,"line":11},[1293,4338,1201],{"class":1298},[1293,4340,4246],{"class":1506},[1293,4342,4343],{"class":1506}," query",[1293,4345,1323],{"class":1305},[1293,4347,2443],{"class":1506},[1293,4349,1975],{"class":1301},[1293,4351,1329],{"class":1305},[1293,4353,4260],{"class":1506},[1293,4355,1323],{"class":1305},[1293,4357,4265],{"class":1506},[1293,4359,1975],{"class":1301},[1293,4361,1329],{"class":1305},[1293,4363,4272],{"class":1301},[1195,4365,4366],{},"Scaffolds a new CQRS query in the given module.",[1346,4368,4369,4377],{},[1349,4370,4371],{},[1352,4372,4373,4375],{},[1355,4374,1357],{},[1355,4376,1360],{},[1362,4378,4379,4388,4397],{},[1352,4380,4381,4385],{},[1367,4382,4383],{},[1199,4384,4294],{},[1367,4386,4387],{},"(required, positional) Query name",[1352,4389,4390,4394],{},[1367,4391,4392],{},[1199,4393,4304],{},[1367,4395,4396],{},"(required) Module to generate the query in — throws if omitted",[1352,4398,4399,4403],{},[1367,4400,4401],{},[1199,4402,4314],{},[1367,4404,4317,4405],{},[1199,4406,4320],{},[1466,4408],{},[1272,4410,4412],{"id":4411},"next-steps","Next Steps",[4414,4415,4416,4424],"ul",{},[4417,4418,4419,4423],"li",{},[4420,4421,928],"a",{"href":4422},"/developer-docs/api-development"," — Generating the typed API client SDK and OpenAPI documentation",[4417,4425,4426,4429],{},[4420,4427,920],{"href":4428},"/developer-docs/local-development"," — The day-to-day dev loop",[4431,4432,4433],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}",{"title":1289,"searchDepth":238,"depth":238,"links":4435},[4436,4437,4441,4445,4451,4466,4492,4497,4503],{"id":1274,"depth":238,"text":1275},{"id":1470,"depth":238,"text":1473,"children":4438},[4439,4440],{"id":1488,"depth":296,"text":1491},{"id":1544,"depth":296,"text":1547},{"id":1584,"depth":238,"text":1587,"children":4442},[4443,4444],{"id":1596,"depth":296,"text":1599},{"id":1631,"depth":296,"text":1634},{"id":1677,"depth":238,"text":1680,"children":4446},[4447,4448,4449,4450],{"id":1689,"depth":296,"text":1692},{"id":1778,"depth":296,"text":1738},{"id":1864,"depth":296,"text":1867},{"id":1932,"depth":296,"text":1935},{"id":2079,"depth":238,"text":2082,"children":4452},[4453,4455,4456,4457,4458,4459,4460,4461,4462,4463,4464,4465],{"id":2151,"depth":296,"text":4454},"ds golden build (alias: load)",{"id":2258,"depth":296,"text":2261},{"id":2420,"depth":296,"text":2062},{"id":2573,"depth":296,"text":2576},{"id":2731,"depth":296,"text":2734},{"id":2800,"depth":296,"text":2803},{"id":2878,"depth":296,"text":2881},{"id":2957,"depth":296,"text":2960},{"id":3072,"depth":296,"text":3075},{"id":3166,"depth":296,"text":3169},{"id":3227,"depth":296,"text":3230},{"id":3293,"depth":296,"text":3296},{"id":3318,"depth":238,"text":3321,"children":4467},[4468,4469,4470,4471,4472,4473,4474,4475,4476,4477,4478,4479,4480,4481,4482,4483,4484,4485,4486,4488,4489,4490,4491],{"id":3330,"depth":296,"text":3333},{"id":3354,"depth":296,"text":3357},{"id":3377,"depth":296,"text":3380},{"id":3400,"depth":296,"text":3403},{"id":3423,"depth":296,"text":3426},{"id":3446,"depth":296,"text":3449},{"id":3473,"depth":296,"text":3476},{"id":3515,"depth":296,"text":3518},{"id":3538,"depth":296,"text":3541},{"id":3626,"depth":296,"text":3629},{"id":3652,"depth":296,"text":3655},{"id":3680,"depth":296,"text":3683},{"id":3714,"depth":296,"text":3717},{"id":3737,"depth":296,"text":3740},{"id":3760,"depth":296,"text":3763},{"id":3783,"depth":296,"text":3786},{"id":3806,"depth":296,"text":3809},{"id":3850,"depth":296,"text":2015},{"id":3889,"depth":296,"text":4487},"ds script maintenance-on / ds script maintenance-off",{"id":3899,"depth":296,"text":3902},{"id":3961,"depth":296,"text":3964},{"id":3984,"depth":296,"text":3987},{"id":4007,"depth":296,"text":4010},{"id":4045,"depth":238,"text":4048,"children":4493},[4494,4495,4496],{"id":4057,"depth":296,"text":4060},{"id":4084,"depth":296,"text":4087},{"id":4140,"depth":296,"text":4143},{"id":4216,"depth":238,"text":4219,"children":4498},[4499,4501],{"id":4228,"depth":296,"text":4500},"ds g command (alias: c)",{"id":4323,"depth":296,"text":4502},"ds g query (alias: q)",{"id":4411,"depth":238,"text":4412},"Exhaustive, flag-by-flag reference for every real ds CLI command, verified directly against cli/commands/*.ts.","md",null,{},true,{"title":944,"description":4504},"x_0HiKq3U6sHFHj7bAhkjdF4pIR4VRbXRYkIP8JDYL0",[4512,4514],{"title":940,"path":941,"stem":942,"description":4513,"children":-1},"Codebase wiring audits, data cleanup and repair scripts, operational toggles, and historical one-off migrations available via ds script.",{"title":948,"path":949,"stem":950,"description":4515,"children":-1},"What the /ds-* Claude Code skills are, why they exist, and the safety model every one of them shares.",1783015133897]