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