[{"data":1,"prerenderedAt":3003},["ShallowReactive",2],{"navigation_docs":3,"-developer-experience-guide-set-up-your-machine":1532,"-developer-experience-guide-set-up-your-machine-surround":2998},[4,237,583,622,882,972,1060,1194,1528],{"title":5,"path":6,"stem":7,"children":8,"page":84},"Getting Started","/getting-started","01.getting-started",[9,15,226,231],{"title":10,"path":11,"stem":12,"children":13},"Creating Your Account","/getting-started/creating-your-account","01.getting-started/00.creating-your-account/index",[14],{"title":10,"path":11,"stem":12},{"title":16,"order":17,"path":18,"stem":19,"children":20,"page":84},"Admin Onboarding: Getting Started",1,"/getting-started/admin-onboarding-getting-started","01.getting-started/01.admin-onboarding-getting-started",[21,25,29,33,40,44,51,85,134,147,158,162,175,179,188,205,213,219],{"title":22,"path":23,"stem":24},"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":26,"path":27,"stem":28},"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":30,"path":31,"stem":32},"Basic Terms","/getting-started/admin-onboarding-getting-started/basic-terms","01.getting-started/01.admin-onboarding-getting-started/03.basic-terms",{"title":34,"path":35,"stem":36,"children":37},"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",[38],{"title":39,"path":35,"stem":36},"Admin Onboarding - Setting up Users and Teams",{"title":41,"path":42,"stem":43},"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":45,"path":46,"stem":47,"children":48},"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",[49],{"title":50,"path":46,"stem":47},"Admin Onboarding: Understanding Workstreams",{"title":52,"path":53,"stem":54,"children":55,"page":84},"Items","/getting-started/admin-onboarding-getting-started/items","01.getting-started/01.admin-onboarding-getting-started/07.items",[56,60,67,73,80],{"title":57,"path":58,"stem":59},"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":61,"path":62,"stem":63,"children":64},"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",[65],{"title":66,"path":62,"stem":63},"Admin Onboarding - Setting up Custom Fields",{"title":68,"path":69,"stem":70,"children":71},"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",[72],{"title":68,"path":69,"stem":70},{"title":74,"path":75,"stem":76,"children":77},"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",[78],{"title":79,"path":75,"stem":76},"Admin Onboarding - Creating and Managing Forms",{"title":81,"path":82,"stem":83},"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":86,"path":87,"stem":88,"children":89,"page":84},"Item Workspace Tour","/getting-started/admin-onboarding-getting-started/item-workspace-tour","01.getting-started/01.admin-onboarding-getting-started/08.item-workspace-tour",[90,94,98,102,106,110,114,118,122,126,130],{"title":91,"path":92,"stem":93},"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":95,"path":96,"stem":97},"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":99,"path":100,"stem":101},"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":103,"path":104,"stem":105},"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":107,"path":108,"stem":109},"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":111,"path":112,"stem":113},"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":115,"path":116,"stem":117},"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":119,"path":120,"stem":121},"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":123,"path":124,"stem":125},"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":127,"path":128,"stem":129},"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":131,"path":132,"stem":133},"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":135,"path":136,"stem":137,"children":138,"page":84},"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",[139,143],{"title":140,"path":141,"stem":142},"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":144,"path":145,"stem":146},"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":148,"path":149,"stem":150,"children":151},"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",[152,154],{"title":153,"path":149,"stem":150},"Admin Onboarding - Populating and Managing Workstreams",{"title":155,"path":156,"stem":157},"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":159,"path":160,"stem":161},"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":163,"path":164,"stem":165,"children":166,"page":84},"Creating Cadences","/getting-started/admin-onboarding-getting-started/creating-cadences","01.getting-started/01.admin-onboarding-getting-started/12.creating-cadences",[167,171],{"title":168,"path":169,"stem":170},"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":172,"path":173,"stem":174},"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":176,"path":177,"stem":178},"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":180,"path":181,"stem":182,"children":183,"page":84},"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",[184],{"title":185,"path":186,"stem":187},"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":189,"path":190,"stem":191,"children":192,"page":84},"More on Permissions","/getting-started/admin-onboarding-getting-started/permissions","01.getting-started/01.admin-onboarding-getting-started/15.permissions",[193,197,201],{"title":194,"path":195,"stem":196},"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":198,"path":199,"stem":200},"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":202,"path":203,"stem":204},"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":206,"path":207,"stem":208,"children":209,"page":84},"API Keys","/getting-started/admin-onboarding-getting-started/api-keys","01.getting-started/01.admin-onboarding-getting-started/16.api-keys",[210],{"title":206,"path":211,"stem":212},"/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":214,"path":215,"stem":216,"children":217},"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",[218],{"title":214,"path":215,"stem":216},{"title":220,"path":221,"stem":222,"children":223},"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",[224],{"title":225,"path":221,"stem":222},"Handling incomplete items from Sprint to Sprint",{"title":30,"path":227,"stem":228,"children":229},"/getting-started/basic-terms","01.getting-started/02.basic-terms/index",[230],{"title":30,"path":227,"stem":228},{"title":232,"path":233,"stem":234,"children":235},"Keyboard Shortcuts","/getting-started/keyboard-shortcuts","01.getting-started/03.keyboard-shortcuts/index",[236],{"title":232,"path":233,"stem":234},{"title":238,"path":239,"stem":240,"children":241,"page":84},"Major Modules","/major-modules","02.major-modules",[242,300,354,375,441,502,530],{"title":243,"order":244,"path":245,"stem":246,"children":247,"page":84},"Map Value: Workstreams and Work Items",2,"/major-modules/workstreams-and-work-items","02.major-modules/01.workstreams-and-work-items",[248,252,256,259,263,267,271,275,278],{"title":249,"path":250,"stem":251},"Creating Items","/major-modules/workstreams-and-work-items/creating-work-items","02.major-modules/01.workstreams-and-work-items/01.creating-work-items",{"title":253,"path":254,"stem":255},"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":185,"path":257,"stem":258},"/major-modules/workstreams-and-work-items/ai-item-creation","02.major-modules/01.workstreams-and-work-items/03.ai-item-creation",{"title":260,"path":261,"stem":262},"Shared Lists","/major-modules/workstreams-and-work-items/published-lists","02.major-modules/01.workstreams-and-work-items/04.published-lists",{"title":264,"path":265,"stem":266},"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":268,"path":269,"stem":270},"Dependency Graph","/major-modules/workstreams-and-work-items/dependency-graph","02.major-modules/01.workstreams-and-work-items/06.dependency-graph",{"title":272,"path":273,"stem":274},"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":155,"path":276,"stem":277},"/major-modules/workstreams-and-work-items/import-templates","02.major-modules/01.workstreams-and-work-items/08.import-templates",{"title":279,"order":280,"path":281,"stem":282,"children":283,"page":84},"Workspace Capabilities",8,"/major-modules/workstreams-and-work-items/workspace-capabilities","02.major-modules/01.workstreams-and-work-items/09.workspace-capabilities",[284,288,292,296],{"title":285,"path":286,"stem":287},"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":289,"path":290,"stem":291},"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":293,"path":294,"stem":295},"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":297,"path":298,"stem":299},"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":301,"order":302,"path":303,"stem":304,"children":305,"page":84},"Plan Delivery: Boards",3,"/major-modules/boards","02.major-modules/02.boards",[306,310,314,318,322,326,330,334,338,342,346,350],{"title":307,"path":308,"stem":309},"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":311,"path":312,"stem":313},"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":315,"path":316,"stem":317},"Understanding Board Views","/major-modules/boards/understanding-board-views","02.major-modules/02.boards/03.understanding-board-views",{"title":319,"path":320,"stem":321},"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":323,"path":324,"stem":325},"Adding a Folder","/major-modules/boards/adding-a-folder","02.major-modules/02.boards/05.adding-a-folder",{"title":327,"path":328,"stem":329},"Manage and Edit Dependencies","/major-modules/boards/manage-and-edit-dependencies","02.major-modules/02.boards/06.manage-and-edit-dependencies",{"title":331,"path":332,"stem":333},"Creating Subfolders in DevStride","/major-modules/boards/creating-subfolders-in-devstride","02.major-modules/02.boards/07.creating-subfolders-in-devstride",{"title":335,"path":336,"stem":337},"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":339,"path":340,"stem":341},"Using Cycle Boards","/major-modules/boards/using-cycle-boards","02.major-modules/02.boards/09.using-cycle-boards",{"title":343,"path":344,"stem":345},"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":347,"path":348,"stem":349},"Boards and WIP Limiters","/major-modules/boards/boards-and-wip-limiters","02.major-modules/02.boards/11.boards-and-wip-limiters",{"title":351,"path":352,"stem":353},"Board & Folder Permissions","/major-modules/boards/board-and-folder-permissions","02.major-modules/02.boards/12.board-and-folder-permissions",{"title":355,"path":356,"stem":357,"children":358,"page":84},"Track Progress: Gantts","/major-modules/track-progress-gantts","02.major-modules/03.track-progress-gantts",[359,363,367,371],{"title":360,"path":361,"stem":362},"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":364,"path":365,"stem":366},"Viewing Gantt Charts","/major-modules/track-progress-gantts/viewing-gantt-charts","02.major-modules/03.track-progress-gantts/02.viewing-gantt-charts",{"title":368,"path":369,"stem":370},"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":372,"path":373,"stem":374},"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":376,"order":377,"path":378,"stem":379,"children":380,"page":84},"Measure Performance: Reports",4,"/major-modules/measure-performance-reports","02.major-modules/04.measure-performance-reports",[381,385,389,393,397,401,405,409,413,417,421,425,429,433,437],{"title":382,"path":383,"stem":384},"Reports Overview","/major-modules/measure-performance-reports/viewing-optimization","02.major-modules/04.measure-performance-reports/01.viewing-optimization",{"title":386,"path":387,"stem":388},"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":390,"path":391,"stem":392},"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":394,"path":395,"stem":396},"Report: Current Progress","/major-modules/measure-performance-reports/current-progress","02.major-modules/04.measure-performance-reports/04.current-progress",{"title":398,"path":399,"stem":400},"Report: Trending Progress","/major-modules/measure-performance-reports/trending-progress","02.major-modules/04.measure-performance-reports/05.trending-progress",{"title":402,"path":403,"stem":404},"Report: Cycle Time","/major-modules/measure-performance-reports/cycle-time","02.major-modules/04.measure-performance-reports/06.cycle-time",{"title":406,"path":407,"stem":408},"Report: Throughput","/major-modules/measure-performance-reports/throughput","02.major-modules/04.measure-performance-reports/07.throughput",{"title":410,"path":411,"stem":412},"Report: Cumulative Flow","/major-modules/measure-performance-reports/cumulative-flow","02.major-modules/04.measure-performance-reports/08.cumulative-flow",{"title":414,"path":415,"stem":416},"Report: Velocity","/major-modules/measure-performance-reports/velocity","02.major-modules/04.measure-performance-reports/09.velocity",{"title":418,"path":419,"stem":420},"Report: Burn Up","/major-modules/measure-performance-reports/burn-up","02.major-modules/04.measure-performance-reports/10.burn-up",{"title":422,"path":423,"stem":424},"Report: Burn Down","/major-modules/measure-performance-reports/burn-down","02.major-modules/04.measure-performance-reports/11.burn-down",{"title":426,"path":427,"stem":428},"Report: User Time Completed","/major-modules/measure-performance-reports/user-time-completed","02.major-modules/04.measure-performance-reports/12.user-time-completed",{"title":430,"path":431,"stem":432},"Report: Churn","/major-modules/measure-performance-reports/churn","02.major-modules/04.measure-performance-reports/13.churn",{"title":434,"path":435,"stem":436},"Report: Time Allocation Matrix","/major-modules/measure-performance-reports/time-allocation-matrix","02.major-modules/04.measure-performance-reports/14.time-allocation-matrix",{"title":438,"path":439,"stem":440},"Report: Cycle Carry-Forward","/major-modules/measure-performance-reports/cycle-carry-forward","02.major-modules/04.measure-performance-reports/15.cycle-carry-forward",{"title":442,"order":280,"path":443,"stem":444,"children":445,"page":84},"Service Desk","/major-modules/service-desk","02.major-modules/05.service-desk",[446,450,454,458,462,466,470,474,478,482,486,490,494,498],{"title":447,"path":448,"stem":449},"Overview","/major-modules/service-desk/overview","02.major-modules/05.service-desk/01.overview",{"title":451,"path":452,"stem":453},"Enabling Service Desk","/major-modules/service-desk/enabling-service-desk","02.major-modules/05.service-desk/02.enabling-service-desk",{"title":455,"path":456,"stem":457},"Email Channels & Setup","/major-modules/service-desk/email-channels","02.major-modules/05.service-desk/03.email-channels",{"title":459,"path":460,"stem":461},"Requesters & Companies","/major-modules/service-desk/requesters-and-companies","02.major-modules/05.service-desk/04.requesters-and-companies",{"title":463,"path":464,"stem":465},"Customer Support Portal","/major-modules/service-desk/customer-support-portal","02.major-modules/05.service-desk/05.customer-support-portal",{"title":467,"path":468,"stem":469},"Working a Ticket","/major-modules/service-desk/working-a-ticket","02.major-modules/05.service-desk/06.working-a-ticket",{"title":471,"path":472,"stem":473},"Request Forms","/major-modules/service-desk/request-forms","02.major-modules/05.service-desk/07.request-forms",{"title":475,"path":476,"stem":477},"The Suspended Queue","/major-modules/service-desk/suspended-messages","02.major-modules/05.service-desk/08.suspended-messages",{"title":479,"path":480,"stem":481},"Finding & Filtering Tickets","/major-modules/service-desk/finding-and-filtering-tickets","02.major-modules/05.service-desk/09.finding-and-filtering-tickets",{"title":483,"path":484,"stem":485},"Permissions","/major-modules/service-desk/permissions","02.major-modules/05.service-desk/10.permissions",{"title":487,"path":488,"stem":489},"Service Level Agreements (SLA)","/major-modules/service-desk/sla","02.major-modules/05.service-desk/10.sla",{"title":491,"path":492,"stem":493},"Time-Based Ticket Automations","/major-modules/service-desk/time-based-automations","02.major-modules/05.service-desk/11.time-based-automations",{"title":495,"path":496,"stem":497},"Reports","/major-modules/service-desk/reports","02.major-modules/05.service-desk/12.reports",{"title":499,"path":500,"stem":501},"How email replies find their ticket","/major-modules/service-desk/how-email-replies-find-their-ticket","02.major-modules/05.service-desk/13.how-email-replies-find-their-ticket",{"title":503,"path":504,"stem":505,"children":506,"page":84},"Templates","/major-modules/templates","02.major-modules/06.templates",[507,510,514,518,522,526],{"title":447,"path":508,"stem":509},"/major-modules/templates/overview","02.major-modules/06.templates/01.overview",{"title":511,"path":512,"stem":513},"Creating a template","/major-modules/templates/creating-a-template","02.major-modules/06.templates/02.creating-a-template",{"title":515,"path":516,"stem":517},"Variables","/major-modules/templates/variables","02.major-modules/06.templates/03.variables",{"title":519,"path":520,"stem":521},"Applying a template","/major-modules/templates/applying-a-template","02.major-modules/06.templates/04.applying-a-template",{"title":523,"path":524,"stem":525},"Sharing templates","/major-modules/templates/sharing-templates","02.major-modules/06.templates/05.sharing-templates",{"title":527,"path":528,"stem":529},"Template health","/major-modules/templates/template-health","02.major-modules/06.templates/06.template-health",{"title":531,"path":532,"stem":533,"children":534,"page":84},"Knowledge Base","/major-modules/knowledge-base","02.major-modules/07.knowledge-base",[535,539,543,547,551,555,559,563,567,571,575,579],{"title":536,"path":537,"stem":538},"Knowledge Base Overview","/major-modules/knowledge-base/overview","02.major-modules/07.knowledge-base/01.overview",{"title":540,"path":541,"stem":542},"Write and Publish Your First Article","/major-modules/knowledge-base/write-and-publish-your-first-article","02.major-modules/07.knowledge-base/02.write-and-publish-your-first-article",{"title":544,"path":545,"stem":546},"Organizing with Categories","/major-modules/knowledge-base/organizing-with-categories","02.major-modules/07.knowledge-base/03.organizing-with-categories",{"title":548,"path":549,"stem":550},"Who Can See an Article","/major-modules/knowledge-base/who-can-see-an-article","02.major-modules/07.knowledge-base/04.who-can-see-an-article",{"title":552,"path":553,"stem":554},"The Article Lifecycle and URLs","/major-modules/knowledge-base/article-lifecycle-and-urls","02.major-modules/07.knowledge-base/05.article-lifecycle-and-urls",{"title":556,"path":557,"stem":558},"Article History and Restore","/major-modules/knowledge-base/article-history-and-restore","02.major-modules/07.knowledge-base/06.article-history-and-restore",{"title":560,"path":561,"stem":562},"Searching and Browsing","/major-modules/knowledge-base/searching-and-browsing","02.major-modules/07.knowledge-base/07.searching-and-browsing",{"title":564,"path":565,"stem":566},"The Customer Help Center","/major-modules/knowledge-base/the-customer-help-center","02.major-modules/07.knowledge-base/08.the-customer-help-center",{"title":568,"path":569,"stem":570},"Sharing Articles and Categories","/major-modules/knowledge-base/sharing-articles-and-categories","02.major-modules/07.knowledge-base/09.sharing-articles-and-categories",{"title":572,"path":573,"stem":574},"Article Review Comments","/major-modules/knowledge-base/article-review-comments","02.major-modules/07.knowledge-base/10.article-review-comments",{"title":576,"path":577,"stem":578},"Knowledge Base Permissions","/major-modules/knowledge-base/knowledge-base-permissions","02.major-modules/07.knowledge-base/11.knowledge-base-permissions",{"title":580,"path":581,"stem":582},"Customer Comments on Articles","/major-modules/knowledge-base/customer-comments-on-articles","02.major-modules/07.knowledge-base/12.customer-comments-on-articles",{"title":584,"path":585,"stem":586,"children":587,"page":84},"Personal Workspace","/personal-workspace","03.personal-workspace",[588,594,608,619],{"title":589,"path":590,"stem":591,"children":592},"My Work","/personal-workspace/my-work","03.personal-workspace/01.my-work/index",[593],{"title":589,"path":590,"stem":591},{"title":595,"order":596,"path":597,"stem":598,"children":599,"page":84},"Notifications",7,"/personal-workspace/notifications","03.personal-workspace/02.notifications",[600,604],{"title":601,"path":602,"stem":603},"Notifications in DevStride","/personal-workspace/notifications/overview-of-notification-options","03.personal-workspace/02.notifications/01.overview-of-notification-options",{"title":605,"path":606,"stem":607},"Customizing Notification Settings","/personal-workspace/notifications/customizing-notification-settings-for-individuals-and-teams","03.personal-workspace/02.notifications/02.customizing-notification-settings-for-individuals-and-teams",{"title":609,"path":610,"stem":611,"children":612,"page":84},"My Account","/personal-workspace/my-account","03.personal-workspace/03.my-account",[613,616],{"title":447,"path":614,"stem":615},"/personal-workspace/my-account/overview","03.personal-workspace/03.my-account/01.overview",{"title":206,"path":617,"stem":618},"/personal-workspace/my-account/api-keys","03.personal-workspace/03.my-account/02.api-keys",{"title":232,"path":620,"stem":621},"/personal-workspace/keyboard-shortcuts","03.personal-workspace/04.keyboard-shortcuts",{"title":623,"path":624,"stem":625,"children":626,"page":84},"Workspace Administration","/workspace-administration","04.workspace-administration",[627,647,657,790,803],{"title":628,"path":629,"stem":630,"children":631,"page":84},"Manage Items Module","/workspace-administration/manage-items","04.workspace-administration/01.manage-items",[632,635,639,643],{"title":447,"path":633,"stem":634},"/workspace-administration/manage-items/overview","04.workspace-administration/01.manage-items/01.overview",{"title":636,"path":637,"stem":638},"Finding & Filtering Items","/workspace-administration/manage-items/finding-and-filtering-items","04.workspace-administration/01.manage-items/02.finding-and-filtering-items",{"title":640,"path":641,"stem":642},"Creating & Sharing Views","/workspace-administration/manage-items/creating-and-sharing-views","04.workspace-administration/01.manage-items/03.creating-and-sharing-views",{"title":644,"path":645,"stem":646},"Item Hierarchy","/workspace-administration/manage-items/item-hierarchy","04.workspace-administration/01.manage-items/04.item-hierarchy",{"title":648,"order":649,"path":650,"stem":651,"children":652,"page":84},"Automate Workflows",5,"/workspace-administration/automations","04.workspace-administration/02.automations",[653],{"title":654,"path":655,"stem":656},"Setting Up Basic Automations","/workspace-administration/automations/setting-up-basic-automations","04.workspace-administration/02.automations/01.setting-up-basic-automations",{"title":658,"order":659,"path":660,"stem":661,"children":662,"page":84},"Configure Settings",6,"/workspace-administration/settings","04.workspace-administration/03.settings",[663,696,733,742,786],{"title":664,"path":665,"stem":666,"children":667,"page":84},"Organization","/workspace-administration/settings/organization","04.workspace-administration/03.settings/01.organization",[668,672,676,680,684,688,692],{"title":669,"path":670,"stem":671},"Org Configuration","/workspace-administration/settings/organization/org-profile","04.workspace-administration/03.settings/01.organization/01.org-profile",{"title":673,"path":674,"stem":675},"Users, Roles & MFA","/workspace-administration/settings/organization/users-roles-and-mfa","04.workspace-administration/03.settings/01.organization/02.users-roles-and-mfa",{"title":677,"path":678,"stem":679},"Time Tracking Lock & Soft Close","/workspace-administration/settings/organization/time-tracking-lock","04.workspace-administration/03.settings/01.organization/03.time-tracking-lock",{"title":681,"path":682,"stem":683},"Training Sandboxes","/workspace-administration/settings/organization/training-sandboxes","04.workspace-administration/03.settings/01.organization/04.training-sandboxes",{"title":685,"path":686,"stem":687},"Personas","/workspace-administration/settings/organization/personas","04.workspace-administration/03.settings/01.organization/05.personas",{"title":689,"path":690,"stem":691},"Teams","/workspace-administration/settings/organization/teams","04.workspace-administration/03.settings/01.organization/06.teams",{"title":693,"path":694,"stem":695},"Import History","/workspace-administration/settings/organization/import-history","04.workspace-administration/03.settings/01.organization/07.import-history",{"title":697,"path":698,"stem":699,"children":700,"page":84},"Data Model","/workspace-administration/settings/data-model","04.workspace-administration/03.settings/02.data-model",[701,705,709,713,717,721,725,729],{"title":702,"path":703,"stem":704},"Cadences","/workspace-administration/settings/data-model/cadences","04.workspace-administration/03.settings/02.data-model/01.cadences",{"title":706,"path":707,"stem":708},"Item Types","/workspace-administration/settings/data-model/item-types","04.workspace-administration/03.settings/02.data-model/02.item-types",{"title":710,"path":711,"stem":712},"Tags","/workspace-administration/settings/data-model/tags","04.workspace-administration/03.settings/02.data-model/03.tags",{"title":714,"path":715,"stem":716},"Custom Fields","/workspace-administration/settings/data-model/custom-fields","04.workspace-administration/03.settings/02.data-model/04.custom-fields",{"title":718,"path":719,"stem":720},"Priority Levels","/workspace-administration/settings/data-model/priority-levels","04.workspace-administration/03.settings/02.data-model/05.priority-levels",{"title":722,"path":723,"stem":724},"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":726,"path":727,"stem":728},"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":730,"path":731,"stem":732},"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":734,"path":735,"stem":736,"children":737,"page":84},"Forms","/workspace-administration/settings/forms","04.workspace-administration/03.settings/03.forms",[738],{"title":739,"path":740,"stem":741},"Item Request Forms","/workspace-administration/settings/forms/item-request-forms","04.workspace-administration/03.settings/03.forms/item-request-forms",{"title":743,"path":744,"stem":745,"children":746,"page":84},"Integrations","/workspace-administration/settings/integrations","04.workspace-administration/03.settings/04.integrations",[747,751,755,759,763,766,770,774,778,782],{"title":748,"path":749,"stem":750},"GitHub","/workspace-administration/settings/integrations/github","04.workspace-administration/03.settings/04.integrations/01.github",{"title":752,"path":753,"stem":754},"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":756,"path":757,"stem":758},"Database Access for BI Tools","/workspace-administration/settings/integrations/database-access","04.workspace-administration/03.settings/04.integrations/03.database-access",{"title":760,"path":761,"stem":762},"Jira Integration","/workspace-administration/settings/integrations/jira","04.workspace-administration/03.settings/04.integrations/04.jira",{"title":206,"path":764,"stem":765},"/workspace-administration/settings/integrations/api-keys","04.workspace-administration/03.settings/04.integrations/05.api-keys",{"title":767,"path":768,"stem":769},"Enterprise SSO","/workspace-administration/settings/integrations/enterprise-sso","04.workspace-administration/03.settings/04.integrations/06.enterprise-sso",{"title":771,"path":772,"stem":773},"Microsoft Teams","/workspace-administration/settings/integrations/microsoft-teams","04.workspace-administration/03.settings/04.integrations/07.microsoft-teams",{"title":775,"path":776,"stem":777},"Slack","/workspace-administration/settings/integrations/slack","04.workspace-administration/03.settings/04.integrations/08.slack",{"title":779,"path":780,"stem":781},"Connected Apps","/workspace-administration/settings/integrations/connected-apps","04.workspace-administration/03.settings/04.integrations/09.connected-apps",{"title":783,"path":784,"stem":785},"Azure DevOps Integration","/workspace-administration/settings/integrations/azure-devops","04.workspace-administration/03.settings/04.integrations/10.azure-devops",{"title":787,"path":788,"stem":789},"Subscription & Billing","/workspace-administration/settings/subscription-and-billing","04.workspace-administration/03.settings/05.subscription-and-billing",{"title":483,"path":791,"stem":792,"children":793,"page":84},"/workspace-administration/permissions","04.workspace-administration/04.permissions",[794,797,800],{"title":194,"path":795,"stem":796},"/workspace-administration/permissions/understanding-permissions","04.workspace-administration/04.permissions/01.understanding-permissions",{"title":198,"path":798,"stem":799},"/workspace-administration/permissions/roles-and-permissions","04.workspace-administration/04.permissions/02.roles-and-permissions",{"title":202,"path":801,"stem":802},"/workspace-administration/permissions/sharing-and-access","04.workspace-administration/04.permissions/03.sharing-and-access",{"title":804,"order":805,"path":806,"stem":807,"children":808,"page":84},"Filters",10,"/workspace-administration/filters","04.workspace-administration/05.filters",[809,812,815,819,823,827,831,834,837,841,861],{"title":589,"path":810,"stem":811},"/workspace-administration/filters/my-work","04.workspace-administration/05.filters/01.my-work",{"title":595,"path":813,"stem":814},"/workspace-administration/filters/notifications","04.workspace-administration/05.filters/02.notifications",{"title":816,"path":817,"stem":818},"Workstreams","/workspace-administration/filters/workstreams","04.workspace-administration/05.filters/03.workstreams",{"title":820,"path":821,"stem":822},"Cycles","/workspace-administration/filters/cycles","04.workspace-administration/05.filters/04.cycles",{"title":824,"path":825,"stem":826},"Boards","/workspace-administration/filters/boards","04.workspace-administration/05.filters/05.boards",{"title":828,"path":829,"stem":830},"Gantt","/workspace-administration/filters/gantt","04.workspace-administration/05.filters/06.gantt",{"title":52,"path":832,"stem":833},"/workspace-administration/filters/items","04.workspace-administration/05.filters/07.items",{"title":495,"path":835,"stem":836},"/workspace-administration/filters/reports","04.workspace-administration/05.filters/08.reports",{"title":838,"path":839,"stem":840},"Automations","/workspace-administration/filters/automations","04.workspace-administration/05.filters/09.automations",{"title":842,"path":843,"stem":844,"children":845,"page":84},"Sort ","/workspace-administration/filters/sort","04.workspace-administration/05.filters/10.sort",[846,849,852,855,858],{"title":589,"path":847,"stem":848},"/workspace-administration/filters/sort/my-work","04.workspace-administration/05.filters/10.sort/01.my-work",{"title":816,"path":850,"stem":851},"/workspace-administration/filters/sort/workstreams","04.workspace-administration/05.filters/10.sort/02.workstreams",{"title":820,"path":853,"stem":854},"/workspace-administration/filters/sort/cycles","04.workspace-administration/05.filters/10.sort/03.cycles",{"title":824,"path":856,"stem":857},"/workspace-administration/filters/sort/boards","04.workspace-administration/05.filters/10.sort/04.boards",{"title":52,"path":859,"stem":860},"/workspace-administration/filters/sort/items","04.workspace-administration/05.filters/10.sort/05.items",{"title":862,"path":863,"stem":864,"children":865,"page":84},"Options","/workspace-administration/filters/options","04.workspace-administration/05.filters/11.options",[866,869,872,876,879],{"title":589,"path":867,"stem":868},"/workspace-administration/filters/options/my-work","04.workspace-administration/05.filters/11.options/01.my-work",{"title":816,"path":870,"stem":871},"/workspace-administration/filters/options/workstreams","04.workspace-administration/05.filters/11.options/02.workstreams",{"title":873,"path":874,"stem":875},"Cycle","/workspace-administration/filters/options/cycle","04.workspace-administration/05.filters/11.options/03.cycle",{"title":824,"path":877,"stem":878},"/workspace-administration/filters/options/boards","04.workspace-administration/05.filters/11.options/04.boards",{"title":52,"path":880,"stem":881},"/workspace-administration/filters/options/items","04.workspace-administration/05.filters/11.options/05.items",{"title":883,"path":884,"stem":885,"children":886,"page":84},"Planning Concepts & Use Cases","/planning-concepts-and-use-cases","05.planning-concepts-and-use-cases",[887,943],{"title":888,"order":889,"path":890,"stem":891,"children":892,"page":84},"Understanding Project Planning Tools",9,"/planning-concepts-and-use-cases/project-planning-tools","05.planning-concepts-and-use-cases/01.project-planning-tools",[893,926],{"title":894,"path":895,"stem":896,"children":897,"page":84},"Gantt Charts","/planning-concepts-and-use-cases/project-planning-tools/gantt-charts","05.planning-concepts-and-use-cases/01.project-planning-tools/gantt-charts",[898,902,906,910,914,918,922],{"title":899,"path":900,"stem":901},"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":903,"path":904,"stem":905},"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":907,"path":908,"stem":909},"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":911,"path":912,"stem":913},"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":915,"path":916,"stem":917},"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":919,"path":920,"stem":921},"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":923,"path":924,"stem":925},"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":927,"path":928,"stem":929,"children":930,"page":84},"Kanban Boards","/planning-concepts-and-use-cases/project-planning-tools/kanban-boards","05.planning-concepts-and-use-cases/01.project-planning-tools/kanban-boards",[931,935,939],{"title":932,"path":933,"stem":934},"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":936,"path":937,"stem":938},"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":940,"path":941,"stem":942},"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":944,"order":945,"path":946,"stem":947,"children":948,"page":84},"Use Cases",12,"/planning-concepts-and-use-cases/use-cases","05.planning-concepts-and-use-cases/02.use-cases",[949,952,956,960,964,968],{"title":894,"path":950,"stem":951},"/planning-concepts-and-use-cases/use-cases/gantt-charts","05.planning-concepts-and-use-cases/02.use-cases/01.gantt-charts",{"title":953,"path":954,"stem":955},"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":957,"path":958,"stem":959},"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":961,"path":962,"stem":963},"Manage Cadences","/planning-concepts-and-use-cases/use-cases/manage-cadences","05.planning-concepts-and-use-cases/02.use-cases/04.manage-cadences",{"title":965,"path":966,"stem":967},"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":969,"path":970,"stem":971},"Backlog Refinement","/planning-concepts-and-use-cases/use-cases/backlog-refinement","05.planning-concepts-and-use-cases/02.use-cases/06.backlog-refinement",{"title":973,"path":974,"stem":975,"children":976,"page":84},"Integrations & Extensibility","/integrations-and-extensibility","06.integrations-and-extensibility",[977,1002],{"title":978,"path":979,"stem":980,"children":981,"page":84},"DevStride MCP Server","/integrations-and-extensibility/devstride-mcp-server","06.integrations-and-extensibility/01.devstride-mcp-server",[982,986,990,994,998],{"title":983,"path":984,"stem":985},"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":987,"path":988,"stem":989},"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":991,"path":992,"stem":993},"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":995,"path":996,"stem":997},"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":999,"path":1000,"stem":1001},"Tool Reference","/integrations-and-extensibility/devstride-mcp-server/tool-reference","06.integrations-and-extensibility/01.devstride-mcp-server/05.tool-reference",{"title":1003,"path":1004,"stem":1005,"children":1006},"Plugins","/integrations-and-extensibility/plugins","06.integrations-and-extensibility/02.plugins/index",[1007,1009],{"title":1008,"path":1004,"stem":1005},"Getting Started With Plugins",{"title":1010,"path":1011,"stem":1012,"children":1013,"page":84},"Weekly Logs","/integrations-and-extensibility/plugins/weekly-logs","06.integrations-and-extensibility/02.plugins/01.weekly-logs",[1014,1017,1021,1025,1029,1033,1037,1041,1044,1048,1052,1056],{"title":447,"path":1015,"stem":1016},"/integrations-and-extensibility/plugins/weekly-logs/overview","06.integrations-and-extensibility/02.plugins/01.weekly-logs/01.overview",{"title":1018,"path":1019,"stem":1020},"Grid","/integrations-and-extensibility/plugins/weekly-logs/grid","06.integrations-and-extensibility/02.plugins/01.weekly-logs/02.grid",{"title":1022,"path":1023,"stem":1024},"Views","/integrations-and-extensibility/plugins/weekly-logs/views","06.integrations-and-extensibility/02.plugins/01.weekly-logs/03.views",{"title":1026,"path":1027,"stem":1028},"Navigation","/integrations-and-extensibility/plugins/weekly-logs/navigation","06.integrations-and-extensibility/02.plugins/01.weekly-logs/04.navigation",{"title":1030,"path":1031,"stem":1032},"Proposed Items","/integrations-and-extensibility/plugins/weekly-logs/proposed-items","06.integrations-and-extensibility/02.plugins/01.weekly-logs/05.proposed-items",{"title":1034,"path":1035,"stem":1036},"Search","/integrations-and-extensibility/plugins/weekly-logs/search","06.integrations-and-extensibility/02.plugins/01.weekly-logs/06.search",{"title":1038,"path":1039,"stem":1040},"Time Logging","/integrations-and-extensibility/plugins/weekly-logs/logging","06.integrations-and-extensibility/02.plugins/01.weekly-logs/07.logging",{"title":804,"path":1042,"stem":1043},"/integrations-and-extensibility/plugins/weekly-logs/filtering","06.integrations-and-extensibility/02.plugins/01.weekly-logs/08.filtering",{"title":1045,"path":1046,"stem":1047},"Team Logs","/integrations-and-extensibility/plugins/weekly-logs/team-logs","06.integrations-and-extensibility/02.plugins/01.weekly-logs/09.team-logs",{"title":1049,"path":1050,"stem":1051},"Organization Switch","/integrations-and-extensibility/plugins/weekly-logs/organization-switch","06.integrations-and-extensibility/02.plugins/01.weekly-logs/10.organization-switch",{"title":1053,"path":1054,"stem":1055},"Export","/integrations-and-extensibility/plugins/weekly-logs/export","06.integrations-and-extensibility/02.plugins/01.weekly-logs/11.export",{"title":1057,"path":1058,"stem":1059},"Meetings","/integrations-and-extensibility/plugins/weekly-logs/meetings","06.integrations-and-extensibility/02.plugins/01.weekly-logs/12.meetings",{"title":1061,"path":1062,"stem":1063,"children":1064,"page":84},"Developer Experience","/developer-experience","07.developer-experience",[1065,1101,1157],{"title":1066,"path":1067,"stem":1068,"children":1069,"page":84},"Developer Guide","/developer-experience/guide","07.developer-experience/00.guide",[1070,1073,1077,1081,1085,1089,1093,1097],{"title":447,"path":1071,"stem":1072},"/developer-experience/guide/overview","07.developer-experience/00.guide/01.overview",{"title":1074,"path":1075,"stem":1076},"Set up your machine","/developer-experience/guide/set-up-your-machine","07.developer-experience/00.guide/02.set-up-your-machine",{"title":1078,"path":1079,"stem":1080},"Credentials and access","/developer-experience/guide/credentials-and-access","07.developer-experience/00.guide/03.credentials-and-access",{"title":1082,"path":1083,"stem":1084},"Plan work","/developer-experience/guide/plan-work","07.developer-experience/00.guide/04.plan-work",{"title":1086,"path":1087,"stem":1088},"Develop","/developer-experience/guide/develop","07.developer-experience/00.guide/05.develop",{"title":1090,"path":1091,"stem":1092},"Release","/developer-experience/guide/release","07.developer-experience/00.guide/06.release",{"title":1094,"path":1095,"stem":1096},"Troubleshooting","/developer-experience/guide/troubleshooting","07.developer-experience/00.guide/07.troubleshooting",{"title":1098,"path":1099,"stem":1100},"For admins: access, keys and stages","/developer-experience/guide/for-admins","07.developer-experience/00.guide/08.for-admins",{"title":1102,"path":1103,"stem":1104,"children":1105,"page":84},"Intro","/developer-experience/intro","07.developer-experience/01.intro",[1106,1110,1113,1117,1121,1125,1129,1133,1137,1141,1145,1149,1153],{"title":1107,"path":1108,"stem":1109},"How DevStride Is Built, and Why","/developer-experience/intro/how-we-build","07.developer-experience/01.intro/00.how-we-build",{"title":5,"path":1111,"stem":1112},"/developer-experience/intro/getting-started","07.developer-experience/01.intro/01.getting-started",{"title":1114,"path":1115,"stem":1116},"Introduction to the ds CLI","/developer-experience/intro/introduction","07.developer-experience/01.intro/02.introduction",{"title":1118,"path":1119,"stem":1120},"Command Reference","/developer-experience/intro/command-reference","07.developer-experience/01.intro/03.command-reference",{"title":1122,"path":1123,"stem":1124},"Local Development","/developer-experience/intro/local-development","07.developer-experience/01.intro/04.local-development",{"title":1126,"path":1127,"stem":1128},"Dockerized Worktree Development","/developer-experience/intro/dockerized-worktree-development","07.developer-experience/01.intro/05.dockerized-worktree-development",{"title":1130,"path":1131,"stem":1132},"Golden Dataset","/developer-experience/intro/golden-dataset","07.developer-experience/01.intro/06.golden-dataset",{"title":1134,"path":1135,"stem":1136},"Deployment","/developer-experience/intro/deployment","07.developer-experience/01.intro/07.deployment",{"title":1138,"path":1139,"stem":1140},"API Development","/developer-experience/intro/api-development","07.developer-experience/01.intro/08.api-development",{"title":1142,"path":1143,"stem":1144},"Stripe Integration","/developer-experience/intro/stripe-integration","07.developer-experience/01.intro/09.stripe-integration",{"title":1146,"path":1147,"stem":1148},"Maintenance & Codebase Checks","/developer-experience/intro/maintenance-and-codebase-checks","07.developer-experience/01.intro/10.maintenance-and-codebase-checks",{"title":1150,"path":1151,"stem":1152},"AI Development","/developer-experience/intro/ai-development","07.developer-experience/01.intro/11.ai-development",{"title":1154,"path":1155,"stem":1156},"Data Conversion Utilities","/developer-experience/intro/data-conversion-utilities","07.developer-experience/01.intro/12.data-conversion-utilities",{"title":1158,"path":1159,"stem":1160,"children":1161,"page":84},"Agentic Skills","/developer-experience/agentic-skills","07.developer-experience/02.agentic-skills",[1162,1166,1170,1174,1178,1182,1186,1190],{"title":1163,"path":1164,"stem":1165},"The Idea Behind the Loop","/developer-experience/agentic-skills/the-idea-behind-the-loop","07.developer-experience/02.agentic-skills/00.the-idea-behind-the-loop",{"title":1167,"path":1168,"stem":1169},"DevStride for Claude Code","/developer-experience/agentic-skills/claude-code-skills-overview","07.developer-experience/02.agentic-skills/01.claude-code-skills-overview",{"title":1171,"path":1172,"stem":1173},"Getting the Skills","/developer-experience/agentic-skills/getting-the-skills","07.developer-experience/02.agentic-skills/02.getting-the-skills",{"title":1175,"path":1176,"stem":1177},"Guided Setup","/developer-experience/agentic-skills/setup-guide","07.developer-experience/02.agentic-skills/03.setup-guide",{"title":1179,"path":1180,"stem":1181},"Skill Audit","/developer-experience/agentic-skills/skill-audit","07.developer-experience/02.agentic-skills/04.skill-audit",{"title":1183,"path":1184,"stem":1185},"The Planning Loop","/developer-experience/agentic-skills/claude-skills-planning-loop","07.developer-experience/02.agentic-skills/05.claude-skills-planning-loop",{"title":1187,"path":1188,"stem":1189},"The Delivery Loop","/developer-experience/agentic-skills/claude-skills-delivery-loop","07.developer-experience/02.agentic-skills/06.claude-skills-delivery-loop",{"title":1191,"path":1192,"stem":1193},"Configuration Reference","/developer-experience/agentic-skills/configuration-reference","07.developer-experience/02.agentic-skills/07.configuration-reference",{"title":1195,"order":1196,"path":1197,"stem":1198,"children":1199,"page":84},"Release Notes",11,"/release-notes","08.release-notes",[1200,1204,1208,1212,1216,1220,1224,1228,1232,1236,1240,1244,1248,1252,1256,1260,1264,1268,1272,1276,1280,1284,1288,1292,1296,1300,1304,1308,1312,1316,1320,1324,1328,1332,1336,1340,1344,1348,1352,1356,1360,1364,1368,1372,1376,1380,1384,1388,1392,1396,1400,1404,1408,1412,1416,1420,1424,1428,1432,1436,1440,1444,1448,1452,1456,1460,1464,1468,1472,1476,1480,1484,1488,1492,1496,1500,1504,1508,1512,1516,1520,1524],{"title":1201,"path":1202,"stem":1203},"2026-10-03","/release-notes/2026-10-03","08.release-notes/82.2026-10-03",{"title":1205,"path":1206,"stem":1207},"2026-09-17","/release-notes/2026-09-17","08.release-notes/81.2026-09-17",{"title":1209,"path":1210,"stem":1211},"2026-09-13","/release-notes/2026-09-13","08.release-notes/80.2026-09-13",{"title":1213,"path":1214,"stem":1215},"2026-09-11","/release-notes/2026-09-11","08.release-notes/79.2026-09-11",{"title":1217,"path":1218,"stem":1219},"2026-09-01","/release-notes/2026-09-01","08.release-notes/78.2026-09-01",{"title":1221,"path":1222,"stem":1223},"2026-08-29","/release-notes/2026-08-29","08.release-notes/77.2026-08-29",{"title":1225,"path":1226,"stem":1227},"2026-08-27","/release-notes/2026-08-27","08.release-notes/76.2026-08-27",{"title":1229,"path":1230,"stem":1231},"2026-08-25","/release-notes/2026-08-25","08.release-notes/75.2026-08-25",{"title":1233,"path":1234,"stem":1235},"2026-08-22","/release-notes/2026-08-22","08.release-notes/74.2026-08-22",{"title":1237,"path":1238,"stem":1239},"2026-08-21","/release-notes/2026-08-21","08.release-notes/73.2026-08-21",{"title":1241,"path":1242,"stem":1243},"2026-08-17","/release-notes/2026-08-17","08.release-notes/72.2026-08-17",{"title":1245,"path":1246,"stem":1247},"2026-08-16","/release-notes/2026-08-16","08.release-notes/71.2026-08-16",{"title":1249,"path":1250,"stem":1251},"2026-08-14","/release-notes/2026-08-14","08.release-notes/70.2026-08-14",{"title":1253,"path":1254,"stem":1255},"2026-08-11","/release-notes/2026-08-11","08.release-notes/69.2026-08-11",{"title":1257,"path":1258,"stem":1259},"2026-08-07","/release-notes/2026-08-07","08.release-notes/68.2026-08-07",{"title":1261,"path":1262,"stem":1263},"2026-08-05","/release-notes/2026-08-05","08.release-notes/67.2026-08-05",{"title":1265,"path":1266,"stem":1267},"2026-08-01","/release-notes/2026-08-01","08.release-notes/66.2026-08-01",{"title":1269,"path":1270,"stem":1271},"2026-07-30","/release-notes/2026-07-30","08.release-notes/65.2026-07-30",{"title":1273,"path":1274,"stem":1275},"2026-07-28","/release-notes/2026-07-28","08.release-notes/64.2026-07-28",{"title":1277,"path":1278,"stem":1279},"2026-07-22","/release-notes/2026-07-22","08.release-notes/63.2026-07-22",{"title":1281,"path":1282,"stem":1283},"2026-07-19","/release-notes/2026-07-19","08.release-notes/62.2026-07-19",{"title":1285,"path":1286,"stem":1287},"2026-07-17","/release-notes/2026-07-17","08.release-notes/61.2026-07-17",{"title":1289,"path":1290,"stem":1291},"2026-07-15","/release-notes/2026-07-15","08.release-notes/60.2026-07-15",{"title":1293,"path":1294,"stem":1295},"2026-07-12","/release-notes/2026-07-12","08.release-notes/59.2026-07-12",{"title":1297,"path":1298,"stem":1299},"2026-07-11","/release-notes/2026-07-11","08.release-notes/58.2026-07-11",{"title":1301,"path":1302,"stem":1303},"2026-07-09","/release-notes/2026-07-09","08.release-notes/57.2026-07-09",{"title":1305,"path":1306,"stem":1307},"2026-07-07","/release-notes/2026-07-07","08.release-notes/56.2026-07-07",{"title":1309,"path":1310,"stem":1311},"2026-07-06","/release-notes/2026-07-06","08.release-notes/55.2026-07-06",{"title":1313,"path":1314,"stem":1315},"2026-07-02","/release-notes/2026-07-02","08.release-notes/54.2026-07-02",{"title":1317,"path":1318,"stem":1319},"2026-06-30","/release-notes/2026-06-30","08.release-notes/53.2026-06-30",{"title":1321,"path":1322,"stem":1323},"2026-06-17","/release-notes/2026-06-17","08.release-notes/52.2026-06-17",{"title":1325,"path":1326,"stem":1327},"2026-06-12","/release-notes/2026-06-12","08.release-notes/51.2026-06-12",{"title":1329,"path":1330,"stem":1331},"2026-05-29","/release-notes/2026-05-29","08.release-notes/50.2026-05-29",{"title":1333,"path":1334,"stem":1335},"2026-05-13","/release-notes/2026-05-13","08.release-notes/49.2026-05-13",{"title":1337,"path":1338,"stem":1339},"2026-04-29","/release-notes/2026-04-29","08.release-notes/48.2026-04-29",{"title":1341,"path":1342,"stem":1343},"2026-04-14","/release-notes/2026-04-14","08.release-notes/47.2026-04-14",{"title":1345,"path":1346,"stem":1347},"2026-04-09","/release-notes/2026-04-09","08.release-notes/46.2026-04-09",{"title":1349,"path":1350,"stem":1351},"2026-03-13","/release-notes/2026-03-13","08.release-notes/45.2026-03-13",{"title":1353,"path":1354,"stem":1355},"2026-02-16","/release-notes/2026-02-16","08.release-notes/44.2026-02-16",{"title":1357,"path":1358,"stem":1359},"2026-02-06","/release-notes/2026-02-06","08.release-notes/43.2026-02-06",{"title":1361,"path":1362,"stem":1363},"2026-01-30","/release-notes/2026-01-30","08.release-notes/42.2026-01-30",{"title":1365,"path":1366,"stem":1367},"2026-01-19","/release-notes/2026-01-19","08.release-notes/41.2026-01-19",{"title":1369,"path":1370,"stem":1371},"2025-09-27","/release-notes/2025-09-27","08.release-notes/40.2025-09-27",{"title":1373,"path":1374,"stem":1375},"2025-07-07","/release-notes/2025-07-07","08.release-notes/39.2025-07-07",{"title":1377,"path":1378,"stem":1379},"2025-06-16","/release-notes/2025-06-16","08.release-notes/38.2025-06-16",{"title":1381,"path":1382,"stem":1383},"2025-05-29","/release-notes/2025-05-29","08.release-notes/37.2025-05-29",{"title":1385,"path":1386,"stem":1387},"2025-04-28","/release-notes/2025-04-28","08.release-notes/36.2025-04-28",{"title":1389,"path":1390,"stem":1391},"2025-03-24","/release-notes/2025-03-24","08.release-notes/35.2025-03-24",{"title":1393,"path":1394,"stem":1395},"2024-12-20","/release-notes/2024-12-20","08.release-notes/34.2024-12-20",{"title":1397,"path":1398,"stem":1399},"2024-10-21","/release-notes/2024-10-21","08.release-notes/33.2024-10-21",{"title":1401,"path":1402,"stem":1403},"2024-10-11","/release-notes/2024-10-11","08.release-notes/32.2024-10-11",{"title":1405,"path":1406,"stem":1407},"2024-09-11","/release-notes/2024-09-11","08.release-notes/31.2024-09-11",{"title":1409,"path":1410,"stem":1411},"2024-08-28","/release-notes/2024-08-28","08.release-notes/30.2024-08-28",{"title":1413,"path":1414,"stem":1415},"2024-07-10","/release-notes/2024-07-10","08.release-notes/29.2024-07-10",{"title":1417,"path":1418,"stem":1419},"2024-06-24","/release-notes/2024-06-24","08.release-notes/28.2024-06-24",{"title":1421,"path":1422,"stem":1423},"2024-05-15","/release-notes/2024-05-15","08.release-notes/27.2024-05-15",{"title":1425,"path":1426,"stem":1427},"2024-04-29","/release-notes/2024-04-29","08.release-notes/26.2024-04-29",{"title":1429,"path":1430,"stem":1431},"2024-03-18","/release-notes/2024-03-18","08.release-notes/25.2024-03-18",{"title":1433,"path":1434,"stem":1435},"2024-03-04","/release-notes/2024-03-04","08.release-notes/24.2024-03-04",{"title":1437,"path":1438,"stem":1439},"2024-02-26","/release-notes/2024-02-26","08.release-notes/23.2024-02-26",{"title":1441,"path":1442,"stem":1443},"2024-01-17","/release-notes/2024-01-17","08.release-notes/22.2024-01-17",{"title":1445,"path":1446,"stem":1447},"2023-12-27","/release-notes/2023-12-27","08.release-notes/21.2023-12-27",{"title":1449,"path":1450,"stem":1451},"2023-11-08","/release-notes/2023-11-08","08.release-notes/20.2023-11-08",{"title":1453,"path":1454,"stem":1455},"2023-10-10","/release-notes/2023-10-10","08.release-notes/19.2023-10-10",{"title":1457,"path":1458,"stem":1459},"2023-09-27","/release-notes/2023-09-27","08.release-notes/18.2023-09-27",{"title":1461,"path":1462,"stem":1463},"2023-09-18","/release-notes/2023-09-18","08.release-notes/17.2023-09-18",{"title":1465,"path":1466,"stem":1467},"2023-09-04","/release-notes/2023-09-04","08.release-notes/16.2023-09-04",{"title":1469,"path":1470,"stem":1471},"2023-08-04","/release-notes/2023-08-04","08.release-notes/15.2023-08-04",{"title":1473,"path":1474,"stem":1475},"2023-07-11","/release-notes/2023-07-11","08.release-notes/14.2023-07-11",{"title":1477,"path":1478,"stem":1479},"2023-06-21","/release-notes/2023-06-21","08.release-notes/13.2023-06-21",{"title":1481,"path":1482,"stem":1483},"2023-05-24","/release-notes/2023-05-24","08.release-notes/12.2023-05-24",{"title":1485,"path":1486,"stem":1487},"2023-04-24","/release-notes/2023-04-24","08.release-notes/11.2023-04-24",{"title":1489,"path":1490,"stem":1491},"2023-04-20","/release-notes/2023-04-20","08.release-notes/10.2023-04-20",{"title":1493,"path":1494,"stem":1495},"2023-03-20","/release-notes/2023-03-20","08.release-notes/09.2023-03-20",{"title":1497,"path":1498,"stem":1499},"2023-02-28","/release-notes/2023-02-28","08.release-notes/08.2023-02-28",{"title":1501,"path":1502,"stem":1503},"2023-01-17","/release-notes/2023-01-17","08.release-notes/07.2023-01-17",{"title":1505,"path":1506,"stem":1507},"2023-01-23","/release-notes/2023-01-23","08.release-notes/06.2023-01-23",{"title":1509,"path":1510,"stem":1511},"2022-12-21","/release-notes/2022-12-21","08.release-notes/05.2022-12-21",{"title":1513,"path":1514,"stem":1515},"2022-12-06","/release-notes/2022-12-06","08.release-notes/04.2022-12-06",{"title":1517,"path":1518,"stem":1519},"2022-11-15","/release-notes/2022-11-15","08.release-notes/03.2022-11-15",{"title":1521,"path":1522,"stem":1523},"2022-11-02","/release-notes/2022-11-02","08.release-notes/02.2022-11-02",{"title":1525,"path":1526,"stem":1527},"2022-10-17","/release-notes/2022-10-17","08.release-notes/01.2022-10-17",{"title":1529,"path":1530,"target":1531},"API","https://api-docs.devstride.com/","_blank",{"id":1533,"title":1074,"body":1534,"description":2991,"extension":2992,"links":2993,"meta":2994,"navigation":2995,"path":1075,"seo":2996,"stem":1076,"__hash__":2997},"docs/07.developer-experience/00.guide/02.set-up-your-machine.md",{"type":1535,"value":1536,"toc":2971},"minimark",[1537,1541,1556,1561,1564,1623,1627,1630,1922,1925,1949,1955,1969,1973,1978,1989,1993,1996,2004,2014,2046,2053,2057,2060,2074,2083,2090,2100,2104,2107,2162,2165,2218,2223,2233,2237,2240,2260,2273,2276,2286,2319,2322,2328,2331,2367,2370,2373,2376,2426,2429,2436,2461,2470,2473,2566,2572,2578,2615,2618,2670,2680,2684,2715,2733,2736,2749,2752,2815,2825,2837,2846,2849,2852,2894,2907,2911,2924,2928,2943,2952,2960,2967],[1538,1539,1074],"h1",{"id":1540},"set-up-your-machine",[1542,1543,1544,1545,1549,1550,1555],"p",{},"On this page you take a Mac with nothing on it to a working DevStride machine. You paste one line into Terminal; setup installs and configures the rest, stops only when it needs you, builds your machine its own AWS stage, and finishes by proving the machine works with the word ",[1546,1547,1548],"strong",{},"READY",". The same page covers an agent machine (one that runs Claude Code with nobody at the keyboard): the differences are under ",[1551,1552,1554],"a",{"href":1553},"#agent-machines","Agent machines",".",[1557,1558,1560],"h2",{"id":1559},"before-you-start","Before you start",[1542,1562,1563],{},"Have these ready:",[1565,1566,1567,1574,1607,1617],"ul",{},[1568,1569,1570,1573],"li",{},[1546,1571,1572],{},"An administrator account on the Mac."," Homebrew's installer and Docker's installer ask for its password.",[1568,1575,1576,1579,1580,1583,1584],{},[1546,1577,1578],{},"Your GitHub and AWS access."," An admin gives you both with one command (see ",[1551,1581,1582],{"href":1099},"For admins","). You then:\n",[1565,1585,1586,1598],{},[1568,1587,1588,1589,1593,1594,1597],{},"accept the two GitHub invitations, to ",[1590,1591,1592],"code",{},"devstride/devstride"," (the product) and ",[1590,1595,1596],{},"devstride/ds-docs"," (these docs, which setup clones beside it);",[1568,1599,1600,1601,1606],{},"set your AWS password: sign in at ",[1551,1602,1603],{"href":1603,"rel":1604},"https://devstride.awsapps.com/start",[1605],"nofollow"," with your work email, and follow the code or link AWS emails you. If nothing arrives, ask the admin: their command printed the one step that sends it.",[1568,1608,1609,1612,1613,1616],{},[1546,1610,1611],{},"A claude.ai account"," for Claude Code and ",[1546,1614,1615],{},"a ChatGPT account"," for Codex.",[1568,1618,1619,1622],{},[1546,1620,1621],{},"Enough Mac for Docker."," Setup checks that Docker has at least 4 CPUs and 8 GB of memory, which the test suite needs.",[1557,1624,1626],{"id":1625},"_1-paste-the-one-line","1. Paste the one line",[1542,1628,1629],{},"Open Terminal and paste this line, all of it:",[1631,1632,1637],"pre",{"className":1633,"code":1634,"language":1635,"meta":1636,"style":1636},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{ command -v brew >/dev/null || [ -x /opt/homebrew/bin/brew ] || [ -x /usr/local/bin/brew ] || /bin/bash -c \"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)\"; } && eval \"$(command -v brew >/dev/null && brew shellenv || /opt/homebrew/bin/brew shellenv 2>/dev/null || /usr/local/bin/brew shellenv)\" && { command -v gh >/dev/null || brew install gh; } && { gh auth status -h github.com >/dev/null 2>&1 || gh auth login -h github.com -p https -w; } && { [ -d ~/dev/devstride/.git ] || gh repo clone devstride/devstride ~/dev/devstride || { echo \"Your GitHub account cannot see devstride/devstride yet: ask an admin to run ds team add-developer for you, accept the invitation, then paste this line again.\"; false; }; } && cd ~/dev/devstride && ./setup\n","bash","",[1590,1638,1639],{"__ignoreMap":1636},[1640,1641,1643,1647,1651,1655,1658,1661,1664,1667,1670,1673,1677,1680,1682,1684,1686,1689,1691,1693,1697,1700,1703,1706,1709,1712,1715,1718,1721,1724,1726,1729,1732,1735,1738,1741,1743,1746,1749,1752,1754,1757,1759,1761,1764,1767,1769,1771,1774,1776,1778,1781,1783,1785,1787,1789,1792,1794,1796,1798,1800,1802,1804,1807,1810,1813,1816,1818,1820,1823,1825,1827,1829,1832,1834,1836,1839,1842,1845,1847,1849,1851,1853,1855,1858,1861,1864,1866,1868,1870,1873,1876,1879,1882,1884,1886,1889,1892,1895,1898,1900,1903,1905,1908,1910,1912,1915,1917,1919],"span",{"class":1642,"line":17},"line",[1640,1644,1646],{"class":1645},"sMK4o","{",[1640,1648,1650],{"class":1649},"s2Zo4"," command",[1640,1652,1654],{"class":1653},"sfazB"," -v",[1640,1656,1657],{"class":1653}," brew",[1640,1659,1660],{"class":1645}," >",[1640,1662,1663],{"class":1653},"/dev/null",[1640,1665,1666],{"class":1645}," ||",[1640,1668,1669],{"class":1645}," [",[1640,1671,1672],{"class":1645}," -x",[1640,1674,1676],{"class":1675},"sTEyZ"," /opt/homebrew/bin/brew ",[1640,1678,1679],{"class":1645},"]",[1640,1681,1666],{"class":1645},[1640,1683,1669],{"class":1645},[1640,1685,1672],{"class":1645},[1640,1687,1688],{"class":1675}," /usr/local/bin/brew ",[1640,1690,1679],{"class":1645},[1640,1692,1666],{"class":1645},[1640,1694,1696],{"class":1695},"sBMFI"," /bin/bash",[1640,1698,1699],{"class":1653}," -c",[1640,1701,1702],{"class":1645}," \"$(",[1640,1704,1705],{"class":1695},"curl",[1640,1707,1708],{"class":1653}," -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh",[1640,1710,1711],{"class":1645},")\"",[1640,1713,1714],{"class":1645},";",[1640,1716,1717],{"class":1645}," }",[1640,1719,1720],{"class":1645}," &&",[1640,1722,1723],{"class":1649}," eval",[1640,1725,1702],{"class":1645},[1640,1727,1728],{"class":1649},"command",[1640,1730,1731],{"class":1653}," -v brew ",[1640,1733,1734],{"class":1645},">",[1640,1736,1737],{"class":1653},"/dev/null ",[1640,1739,1740],{"class":1645},"&&",[1640,1742,1657],{"class":1695},[1640,1744,1745],{"class":1653}," shellenv ",[1640,1747,1748],{"class":1645},"||",[1640,1750,1751],{"class":1695}," /opt/homebrew/bin/brew",[1640,1753,1745],{"class":1653},[1640,1755,1756],{"class":1645},"2>",[1640,1758,1737],{"class":1653},[1640,1760,1748],{"class":1645},[1640,1762,1763],{"class":1695}," /usr/local/bin/brew",[1640,1765,1766],{"class":1653}," shellenv",[1640,1768,1711],{"class":1645},[1640,1770,1720],{"class":1645},[1640,1772,1773],{"class":1645}," {",[1640,1775,1650],{"class":1649},[1640,1777,1654],{"class":1653},[1640,1779,1780],{"class":1653}," gh",[1640,1782,1660],{"class":1645},[1640,1784,1663],{"class":1653},[1640,1786,1666],{"class":1645},[1640,1788,1657],{"class":1695},[1640,1790,1791],{"class":1653}," install",[1640,1793,1780],{"class":1653},[1640,1795,1714],{"class":1645},[1640,1797,1717],{"class":1645},[1640,1799,1720],{"class":1645},[1640,1801,1773],{"class":1645},[1640,1803,1780],{"class":1695},[1640,1805,1806],{"class":1653}," auth",[1640,1808,1809],{"class":1653}," status",[1640,1811,1812],{"class":1653}," -h",[1640,1814,1815],{"class":1653}," github.com",[1640,1817,1660],{"class":1645},[1640,1819,1663],{"class":1653},[1640,1821,1822],{"class":1645}," 2>&1",[1640,1824,1666],{"class":1645},[1640,1826,1780],{"class":1695},[1640,1828,1806],{"class":1653},[1640,1830,1831],{"class":1653}," login",[1640,1833,1812],{"class":1653},[1640,1835,1815],{"class":1653},[1640,1837,1838],{"class":1653}," -p",[1640,1840,1841],{"class":1653}," https",[1640,1843,1844],{"class":1653}," -w",[1640,1846,1714],{"class":1645},[1640,1848,1717],{"class":1645},[1640,1850,1720],{"class":1645},[1640,1852,1773],{"class":1645},[1640,1854,1669],{"class":1645},[1640,1856,1857],{"class":1645}," -d",[1640,1859,1860],{"class":1645}," ~",[1640,1862,1863],{"class":1675},"/dev/devstride/.git ",[1640,1865,1679],{"class":1645},[1640,1867,1666],{"class":1645},[1640,1869,1780],{"class":1695},[1640,1871,1872],{"class":1653}," repo",[1640,1874,1875],{"class":1653}," clone",[1640,1877,1878],{"class":1653}," devstride/devstride",[1640,1880,1881],{"class":1653}," ~/dev/devstride",[1640,1883,1666],{"class":1645},[1640,1885,1773],{"class":1645},[1640,1887,1888],{"class":1649}," echo",[1640,1890,1891],{"class":1645}," \"",[1640,1893,1894],{"class":1653},"Your GitHub account cannot see devstride/devstride yet: ask an admin to run ds team add-developer for you, accept the invitation, then paste this line again.",[1640,1896,1897],{"class":1645},"\"",[1640,1899,1714],{"class":1645},[1640,1901,1902],{"class":1649}," false",[1640,1904,1714],{"class":1645},[1640,1906,1907],{"class":1645}," };",[1640,1909,1717],{"class":1645},[1640,1911,1720],{"class":1645},[1640,1913,1914],{"class":1649}," cd",[1640,1916,1881],{"class":1653},[1640,1918,1720],{"class":1645},[1640,1920,1921],{"class":1695}," ./setup\n",[1542,1923,1924],{},"It does five things, skipping any that are already done:",[1926,1927,1928,1931,1934,1937,1943],"ol",{},[1568,1929,1930],{},"installs Homebrew, the Mac's package manager (it asks for your Mac password once, and adds Apple's command line tools and git on the way);",[1568,1932,1933],{},"installs the GitHub CLI;",[1568,1935,1936],{},"signs you in to GitHub in the browser;",[1568,1938,1939,1940,1714],{},"clones the repository to ",[1590,1941,1942],{},"~/dev/devstride",[1568,1944,1945,1946,1555],{},"runs ",[1590,1947,1948],{},"./setup",[1542,1950,1951,1952,1555],{},"Pasting it again on a machine that has some or all of this just carries on, and an existing clone keeps its branch and your changes. If it stops with \"Your GitHub account cannot see devstride/devstride yet\", your access has not been granted or accepted: see ",[1551,1953,1560],{"href":1954},"#before-you-start",[1542,1956,1957,1958,1961,1962,1965,1966,1968],{},"For an agent machine, answer ",[1546,1959,1960],{},"agent"," at setup's first question, or run ",[1590,1963,1964],{},"./setup --agent \u003Cname>"," (see ",[1551,1967,1554],{"href":1553},").",[1557,1970,1972],{"id":1971},"_2-answer-the-first-questions","2. Answer the first questions",[1542,1974,1975,1977],{},[1590,1976,1948],{}," first installs what it needs to run at all: mise (a tool that installs the exact Node and pnpm versions the repository pins), Node, pnpm and the repository's dependencies. Then it asks a few questions, each remembered for later runs:",[1565,1979,1980,1983,1986],{},[1568,1981,1982],{},"whether this is your own machine or an agent machine (press Enter for your own);",[1568,1984,1985],{},"this machine's name (press Enter to keep the one shown, or type another: 2 to 41 lowercase letters, digits and hyphens). It also becomes the name of your AWS stage;",[1568,1987,1988],{},"when git has none yet, your name and email for commits (GitHub's are offered; press Enter to take them).",[1557,1990,1992],{"id":1991},"_3-read-the-plan-then-say-yes-once","3. Read the plan, then say yes once",[1542,1994,1995],{},"Setup checks everything and lists every change it would make, stage by stage, then the moments it will wait for you, then the changes to what your agents may do. On a blank Mac the list is long; its last part reads like this:",[1631,1997,2002],{"className":1998,"code":2000,"language":2001,"meta":1636},[1999],"language-text","It stops and waits for you at:\n  containers: install Docker Desktop and run its installer (accepts Docker's licence) — asks for your Mac password\n  agents: sign in to Claude Code in the browser\n  agents: sign in to Codex in the browser\n  aws: sign in to AWS once in the browser\n  machine: wait for you to sign in to GitHub when the GitHub CLI is signed out (gh auth login)\nThen it proves the machine works:\n  proof: ...\nAnswering y also allows these changes to what your agents may do (--yes never does):\n  plugin: Setup is about to change what Claude Code may do on this machine without asking you: ...\n  plugin: Setup is about to mark ~/dev/devstride trusted in Claude Code: ...\n  plugin: Setup is about to make ~/dev/devstride a trusted Codex project and approve its committed hooks, ...\nNothing that is already right is touched, and running this again is safe.\n\nProceed? [y/N]\n","text",[1590,2003,2000],{"__ignoreMap":1636},[1542,2005,2006,2013],{},[1546,2007,2008,2009,2012],{},"Type ",[1590,2010,2011],{},"y"," and press Enter."," That one answer covers everything listed, including the three changes to what your agents may do:",[1565,2015,2016,2022,2028],{},[1568,2017,2018,2021],{},[1546,2019,2020],{},"Claude Code's permission settings",": every rule setup adds is printed, so you can read what Claude Code may then do here without asking you.",[1568,2023,2024,2027],{},[1546,2025,2026],{},"Claude Code trusting this repository",", so its committed settings and hooks apply in all three checkouts without a first-session prompt.",[1568,2029,2030,2033,2034,2037,2038,2041,2042,2045],{},[1546,2031,2032],{},"Codex's approval of the repository's hooks"," (the merge guard, which stops a push straight to ",[1590,2035,2036],{},"develop"," or ",[1590,2039,2040],{},"master",", and the AWS sign-in check). Setup records it exactly as Codex's own ",[1590,2043,2044],{},"/hooks"," screen would, and lists the commands Codex will then run.",[1542,2047,2048,2049,2052],{},"Pressing Enter alone means no: setup then only reports and changes nothing. ",[1590,2050,2051],{},"./setup --yes"," answers the plan for you but never allows those three changes, and setup never makes them when an agent ran it.",[1557,2054,2056],{"id":2055},"_4-the-moments-it-waits-for-you","4. The moments it waits for you",[1542,2058,2059],{},"Setup stops at each of these, says exactly what to do, and carries on by itself once you have done it:",[1565,2061,2062,2068],{},[1568,2063,2064,2067],{},[1546,2065,2066],{},"Your Mac password, for Docker's installer."," Installing Docker Desktop runs Docker's own installer, which accepts Docker's licence for you and sets up its helper. Setup forgets the password straight after.",[1568,2069,2070,2073],{},[1546,2071,2072],{},"Browser sign-ins:"," Claude Code (with your claude.ai account), Codex (with your ChatGPT account), AWS (once, with the sign-in your admin created), and GitHub again only if the GitHub CLI has been signed out. Each opens a browser window; approve the sign-in there. Where no browser can open, setup shows a link and a code instead.",[1542,2075,2076,2077,2079,2080,1555],{},"If Codex still does not run the repository's hooks after setup recorded the approval (because a new Codex release changed its record, say), setup opens Codex for you to approve them by hand once: type ",[1590,2078,2044],{},", approve the repository's hooks, then type ",[1590,2081,2082],{},"/quit",[1542,2084,2085,2086,2089],{},"Every question and sign-in comes before the last stages. ",[1546,2087,2088],{},"Once the demo data starts building, setup needs nobody",": the demo data takes a few minutes, and your AWS stage after it about half an hour more. A good moment to get a coffee.",[1542,2091,2092,2093,2096,2097,2099],{},"For a sign-in or an installer, setup runs it first and, if it did not finish, offers ",[1590,2094,2095],{},"s"," to skip it for now. Setup then finishes everything that does not depend on that step and lists what is left. Ctrl-C stops setup at any point. Either way, run ",[1590,2098,1948],{}," again later: it picks up from where it stopped.",[1557,2101,2103],{"id":2102},"what-setup-installs","What setup installs",[1542,2105,2106],{},"You install none of this by hand:",[1565,2108,2109,2126,2132,2142,2152],{},[1568,2110,2111,2114,2115,2118,2119,2122,2123,2125],{},[1546,2112,2113],{},"Tools",", from the repository's ",[1590,2116,2117],{},"Brewfile",": the AWS CLI and AWS's credential helper, git, jq, Neon's command-line tool, OpenSSL 3, ",[1590,2120,2121],{},"psql"," (PostgreSQL 15's client, linked onto your PATH only when you have no ",[1590,2124,2121],{}," already) and poppler (which turns PDF pages into images, for the agents). Node and pnpm at the versions the repository pins, unless the right ones are already there.",[1568,2127,2128,2131],{},[1546,2129,2130],{},"Docker Desktop",", started and checked for enough CPUs and memory.",[1568,2133,2134,2137,2138,2141],{},[1546,2135,2136],{},"Claude Code and Codex",", signed in, with the DevStride plugin (the ",[1590,2139,2140],{},"/devstride:*"," commands), the connection to DevStride and the settings both agents need here.",[1568,2143,2144,2147,2148,1968],{},[1546,2145,2146],{},"Google Chrome",", with the Claude in Chrome extension waiting to be enabled. Agents do their browser work through it (see ",[1551,2149,2151],{"href":2150},"#after-setup","After setup",[1568,2153,2154,2157,2158,1968],{},[1546,2155,2156],{},"On your own Mac only",": the Claude and ChatGPT desktop apps, iTerm2 and Oh My Zsh (see ",[1551,2159,2161],{"href":2160},"#your-own-tools","Your own tools",[1542,2163,2164],{},"It then:",[1565,2166,2167,2178,2188,2191,2198,2212],{},[1568,2168,2169,2170,2173,2174,2177],{},"makes the two extra checkouts, ",[1590,2171,2172],{},"~/dev/devstride/.worktrees/wt1"," and ",[1590,2175,2176],{},"wt2"," (agents work there; the clone itself is the main checkout, where you work), with their dependencies and their own generated types;",[1568,2179,2180,2181,2184,2185,2187],{},"writes each checkout's ",[1590,2182,2183],{},".env"," from the team's secrets (see ",[1551,2186,1078],{"href":1079},");",[1568,2189,2190],{},"starts the main checkout's app in Docker, and fills all three checkouts with the demo data;",[1568,2192,2193,2194,2187],{},"builds this machine's own AWS stage (see ",[1551,2195,2197],{"href":2196},"#your-aws-stage","Your AWS stage",[1568,2199,2200,2201,2204,2205,2208,2209,2211],{},"adds a marked block to your shell's startup files, and puts ",[1590,2202,2203],{},"ds"," on your PATH (",[1590,2206,2207],{},"~/.local/bin/ds"," runs the ",[1590,2210,2203],{}," of whichever DevStride checkout you are in);",[1568,2213,2214,2215,1555],{},"clones the docs site to ",[1590,2216,2217],{},"~/dev/ds-docs",[2219,2220,2222],"h3",{"id":2221},"your-node-stays-your-node","Your Node stays your Node",[1542,2224,2225,2226,2229,2230,1555],{},"If you already run Node through nvm, fnm, Homebrew or another version manager, setup's shell block keeps the Node your terminal runs today. After writing the block, setup opens a fresh login shell, compares the Node and pnpm it finds with the ones before, and if either would change it takes its block back out and tells you. Your startup files are then exactly as they were (setup also keeps a copy of each file it changed, ending ",[1590,2227,2228],{},".before-devstride-setup","). See ",[1551,2231,1094],{"href":2232},"/developer-experience/guide/troubleshooting#setup-stopped-a-new-terminal-would-run-another-node",[1557,2234,2236],{"id":2235},"_5-when-it-finishes","5. When it finishes",[1542,2238,2239],{},"Setup ends by listing what it changed and, when anything is left, up to three lists:",[1565,2241,2242,2248,2254],{},[1568,2243,2244,2247],{},[1546,2245,2246],{},"Needs you:"," a step only you can do, with the command to do it.",[1568,2249,2250,2253],{},[1546,2251,2252],{},"Waiting on the above:"," steps that wait for one of those.",[1568,2255,2256,2259],{},[1546,2257,2258],{},"When you can (nothing waits on these):"," notes that never stop the machine being ready, such as enabling Claude in Chrome.",[1542,2261,2262,2265,2266,2268,2269,2272],{},[1546,2263,2264],{},"Open a new terminal now."," ",[1590,2267,2203],{}," and the pinned Node come from the startup block setup just added, so a new terminal finds them. (In the terminal setup ran in, use ",[1590,2270,2271],{},"./ds",".) Setup writes that block for zsh and bash; for any other shell it prints the lines to add yourself.",[2219,2274,1548],{"id":2275},"ready",[1542,2277,2278,2279,2282,2283,2285],{},"Setup's last stage proves the machine works: ",[1590,2280,2281],{},"ds machine ready",". It ends with one word. ",[1546,2284,1548],{}," means no proof failed. Check again at any time:",[1631,2287,2289],{"className":1633,"code":2288,"language":1635,"meta":1636,"style":1636},"ds machine ready           # the full proof: a few minutes, it starts apps and runs a landing check\nds machine ready --quick   # in seconds: no app started, no model called (what the hourly check runs)\n",[1590,2290,2291,2305],{"__ignoreMap":1636},[1640,2292,2293,2295,2298,2301],{"class":1642,"line":17},[1640,2294,2203],{"class":1695},[1640,2296,2297],{"class":1653}," machine",[1640,2299,2300],{"class":1653}," ready",[1640,2302,2304],{"class":2303},"sHwdD","           # the full proof: a few minutes, it starts apps and runs a landing check\n",[1640,2306,2307,2309,2311,2313,2316],{"class":1642,"line":244},[1640,2308,2203],{"class":1695},[1640,2310,2297],{"class":1653},[1640,2312,2300],{"class":1653},[1640,2314,2315],{"class":1653}," --quick",[1640,2317,2318],{"class":2303},"   # in seconds: no app started, no model called (what the hourly check runs)\n",[1542,2320,2321],{},"A quick proof right after setup looks like this (shortened):",[1631,2323,2326],{"className":2324,"code":2325,"language":2001,"meta":1636},[1999],"Proving this machine (jane-mac, a person's own machine) — quick: no app started, no model called:\n  pass  tools: node, pnpm, git, gh, aws, jq, neonctl, OpenSSL 3, psql, pdftoppm, docker, claude, codex, python3\n  pass  aws: dev account, secrets\n  pass  github: your sign-in\n  pass  devstride: agent key, Claude Code's connection, Codex's connection\n  pass  checkouts: main dependencies, main demo data, main database, wt1 ..., wt2 ...\n  pass  claude: signed in, plugin, settings, trusts this repository, hooks, guard refuses a push to develop, ...\n  pass  codex: signed in, reads all of AGENTS.md, review engine settings, plugin\n  pass  machine: git identity, shell startup files, ds from anywhere, docs repository\n  pass  credentials: main .env, wt1 .env, wt2 .env, agent file\n  pass  stage: recorded, stacks, config, database\nREADY\n",[1590,2327,2325],{"__ignoreMap":1636},[1542,2329,2330],{},"Each line is one of:",[1565,2332,2333,2339,2349,2355,2361],{},[1568,2334,2335,2338],{},[1546,2336,2337],{},"pass:"," proven.",[1568,2340,2341,2344,2345,2348],{},[1546,2342,2343],{},"FAIL:"," not working, with the fix on the same line. Any FAIL makes the verdict ",[1546,2346,2347],{},"NOT READY",", which names the first failure.",[1568,2350,2351,2354],{},[1546,2352,2353],{},"held:"," another session is using that checkout, so it could not be proven. Not a failure; run the proof again when it is free.",[1568,2356,2357,2360],{},[1546,2358,2359],{},"you:"," a step only you can take, for example Claude Code's settings when an agent ran setup.",[1568,2362,2363,2366],{},[1546,2364,2365],{},"note:"," something to do when you can. Never a failure.",[1542,2368,2369],{},"The full proof also starts each checkout's app and signs in as the demo user, runs the landing check (the same check every change runs before it lands) in a free checkout, and asks Codex one line.",[1557,2371,2151],{"id":2372},"after-setup",[1542,2374,2375],{},"A few things only you can do, once:",[1565,2377,2378,2394,2400],{},[1568,2379,2380,2383,2384,2387,2388,2390,2391,1555],{},[1546,2381,2382],{},"Enable Claude in Chrome."," Open Chrome. It offers the Claude extension: click ",[1546,2385,2386],{},"Enable",", then sign in to Claude in it. Until you do, setup and ",[1590,2389,2281],{}," remind you under ",[1546,2392,2393],{},"When you can",[1568,2395,2396,2399],{},[1546,2397,2398],{},"Sign in to the desktop apps"," (your own Mac): open Claude and ChatGPT from Applications and sign in.",[1568,2401,2402,2405,2406,2410,2411,2414,2415,2418,2419,2422,2423,2425],{},[1546,2403,2404],{},"Open the app."," The main checkout's app is running at ",[1551,2407,2408],{"href":2408,"rel":2409},"http://localhost:8080",[1605],". Sign in with a demo login: ",[1590,2412,2413],{},"acme.devstride",", password ",[1590,2416,2417],{},"Demo@123"," (a username, not an email). After a restart, start Docker Desktop, then run ",[1590,2420,2421],{},"ds worktree up main",". ",[1551,2424,1122],{"href":1123}," explains the local stack.",[1557,2427,2197],{"id":2428},"your-aws-stage",[1542,2430,2431,2432,2435],{},"Every machine gets its own AWS stage: a full copy of DevStride in the dev account, named after the machine, that you and your agents can deploy to and test against without touching anyone else's. Setup's ",[1590,2433,2434],{},"stage"," step builds it once the demo data is in place, in about 30–40 minutes, unattended:",[1565,2437,2438,2449,2452],{},[1568,2439,2440,2441,2444,2445,2448],{},"a copy of the demo data on its own Neon database branch (",[1590,2442,2443],{},"stage-\u003Cstage>",", made from the team's ",[1590,2446,2447],{},"golden-data"," branch);",[1568,2450,2451],{},"the stage's config and its first deploy;",[1568,2453,2454,2455,2457,2458,2460],{},"the database migrations, the demo logins (",[1590,2456,2413],{}," and the others, password ",[1590,2459,2417],{},") and today's dates.",[1542,2462,2463,2464,2466,2467,2469],{},"Its name and database are recorded in your machine's secrets bundle, so every checkout's ",[1590,2465,2183],{}," knows them. After that, setup only checks the stage: it never redeploys it because ",[1590,2468,2036],{}," moved on.",[1542,2471,2472],{},"To run a checkout against your stage instead of Docker:",[1631,2474,2476],{"className":1633,"code":2475,"language":1635,"meta":1636,"style":1636},"export DEVSTRIDE_SESSION=\u003Cyour name>\nds pool checkout wt1 --purpose \"\u003Cwhat you are doing>\"   # take wt1; export the token it prints as DEVSTRIDE_LEASE_TOKEN\nds pool cloud wt1          # run wt1's own code against your stage: the backend in live mode, and the UI\nds pool cloud wt1 --off    # back to Docker\nds pool checkin wt1        # hand wt1 back when you are done\n",[1590,2477,2478,2496,2522,2536,2552],{"__ignoreMap":1636},[1640,2479,2480,2484,2487,2490,2493],{"class":1642,"line":17},[1640,2481,2483],{"class":2482},"spNyl","export",[1640,2485,2486],{"class":1675}," DEVSTRIDE_SESSION",[1640,2488,2489],{"class":1645},"=\u003C",[1640,2491,2492],{"class":1675},"your name",[1640,2494,2495],{"class":1645},">\n",[1640,2497,2498,2500,2503,2506,2509,2512,2514,2517,2519],{"class":1642,"line":244},[1640,2499,2203],{"class":1695},[1640,2501,2502],{"class":1653}," pool",[1640,2504,2505],{"class":1653}," checkout",[1640,2507,2508],{"class":1653}," wt1",[1640,2510,2511],{"class":1653}," --purpose",[1640,2513,1891],{"class":1645},[1640,2515,2516],{"class":1653},"\u003Cwhat you are doing>",[1640,2518,1897],{"class":1645},[1640,2520,2521],{"class":2303},"   # take wt1; export the token it prints as DEVSTRIDE_LEASE_TOKEN\n",[1640,2523,2524,2526,2528,2531,2533],{"class":1642,"line":302},[1640,2525,2203],{"class":1695},[1640,2527,2502],{"class":1653},[1640,2529,2530],{"class":1653}," cloud",[1640,2532,2508],{"class":1653},[1640,2534,2535],{"class":2303},"          # run wt1's own code against your stage: the backend in live mode, and the UI\n",[1640,2537,2538,2540,2542,2544,2546,2549],{"class":1642,"line":377},[1640,2539,2203],{"class":1695},[1640,2541,2502],{"class":1653},[1640,2543,2530],{"class":1653},[1640,2545,2508],{"class":1653},[1640,2547,2548],{"class":1653}," --off",[1640,2550,2551],{"class":2303},"    # back to Docker\n",[1640,2553,2554,2556,2558,2561,2563],{"class":1642,"line":649},[1640,2555,2203],{"class":1695},[1640,2557,2502],{"class":1653},[1640,2559,2560],{"class":1653}," checkin",[1640,2562,2508],{"class":1653},[1640,2564,2565],{"class":2303},"        # hand wt1 back when you are done\n",[1542,2567,2568,2569,2571],{},"One checkout per machine can run against the stage at a time. The ",[1551,2570,1086],{"href":1087}," page explains the checkout pool and its leases.",[1542,2573,2574,2575,2577],{},"When ",[1590,2576,2281],{}," notes that the stage's database is behind your checkout's code, bring it level from that checkout:",[1631,2579,2581],{"className":1633,"code":2580,"language":1635,"meta":1636,"style":1636},"DEVSTRIDE_STAGE=\u003Cstage> DEVSTRIDE_REGION=us-east-1 ./ds -b migrations run\n",[1590,2582,2583],{"__ignoreMap":1636},[1640,2584,2585,2588,2590,2592,2594,2597,2600,2603,2606,2609,2612],{"class":1642,"line":17},[1640,2586,2587],{"class":1675},"DEVSTRIDE_STAGE",[1640,2589,2489],{"class":1645},[1640,2591,2434],{"class":1653},[1640,2593,1734],{"class":1645},[1640,2595,2596],{"class":1675}," DEVSTRIDE_REGION",[1640,2598,2599],{"class":1645},"=",[1640,2601,2602],{"class":1653},"us-east-1",[1640,2604,2605],{"class":1695}," ./ds",[1640,2607,2608],{"class":1653}," -b",[1640,2610,2611],{"class":1653}," migrations",[1640,2613,2614],{"class":1653}," run\n",[1542,2616,2617],{},"Two more things you may need:",[1565,2619,2620,2654],{},[1568,2621,2622,2625,2626,2631,2632,2635,2636,2639,2640,2173,2643,2646,2647,2650,2651,1555],{},[1546,2623,2624],{},"Stripe."," Your stage uses the team's test-mode keys, but needs its own webhook. In the ",[1551,2627,2630],{"href":2628,"rel":2629},"https://dashboard.stripe.com/test/webhooks",[1605],"Stripe test dashboard",", add the endpoint ",[1590,2633,2634],{},"https://api-\u003Cstage>.devstride.dev/v1/subscriptions/stripe/webhooks",", listening to ",[1590,2637,2638],{},"charge.refunded",", ",[1590,2641,2642],{},"charge.refund.updated",[1590,2644,2645],{},"refund.updated"," on your account. Store its signing secret in your machine bundle: ",[1590,2648,2649],{},"pbpaste | ds secrets set machine STRIPE_WEBHOOK_SECRET",", then ",[1590,2652,2653],{},"ds secrets pull",[1568,2655,2656,2265,2659,2662,2663,2666,2667,2669],{},[1546,2657,2658],{},"Removing it.",[1590,2660,2661],{},"ds stage remove --dry-run"," shows what removing your stage would delete; without ",[1590,2664,2665],{},"--dry-run"," you retype the stage name to confirm. It is permanent: the stage's data and sign-in users go with it. Running ",[1590,2668,1948],{}," again builds a fresh one.",[1542,2671,2672,2673,2676,2677,1555],{},"The stage needs the team's Neon key on your machine. If setup lists the stage under ",[1546,2674,2675],{},"Needs you",", see ",[1551,2678,1094],{"href":2679},"/developer-experience/guide/troubleshooting#the-stage-step-is-blocked",[1557,2681,2683],{"id":2682},"running-it-again","Running it again",[1542,2685,2686,2687,2689,2690,2693,2694,2697,2698,2701,2702,2705,2706,2709,2710,2714],{},"Run ",[1590,2688,1948],{}," whenever you like; every step checks before it changes anything. On a machine that is already set up it prints ",[1590,2691,2692],{},"Nothing to change."," and then still runs the proof. ",[1590,2695,2696],{},"./setup --dry-run"," only reports. ",[1590,2699,2700],{},"./setup --skip \u003Cstages>"," leaves stages alone (for example ",[1590,2703,2704],{},"--skip stage"," to leave your AWS stage for another day). Setup treats a skipped stage as already done, so a later step that relies on it still runs, and reports what it could not do. ",[1590,2707,2708],{},"./ds machine setup --help"," lists every option, and ",[1551,2711,2713],{"href":2712},"/developer-experience/intro/command-reference#setup-and-ds-machine-setup","the command reference"," lists the eleven stages.",[1542,2716,2717,2718,2721,2722,2725,2726,2729,2730,1555],{},"Setup's own log is ",[1590,2719,2720],{},".ds/machine-setup.log"," in the main checkout; the demo-data build writes to ",[1590,2723,2724],{},".ds/machine-setup-data.log",", the stage's first deploy to ",[1590,2727,2728],{},".ds/stage-deploy.log"," in the checkout it deployed from, and the full proof to ",[1590,2731,2732],{},".ds/machine-ready.log",[1557,2734,1554],{"id":2735},"agent-machines",[1542,2737,2738,2740,2741,2744,2745,2748],{},[1590,2739,1964],{}," sets up a machine that will then run Claude Code sessions with nobody at the keyboard. You sit at it while setup runs. The name you give it (2 to 41 lowercase letters, digits and hyphens, for example ",[1590,2742,2743],{},"m5-philreynolds",") becomes its AWS identity, its own secrets bundle, its AWS stage and its row in ",[1590,2746,2747],{},"ds fleet status",". Never reuse a name another machine has had.",[1542,2750,2751],{},"What setup does differently:",[1565,2753,2754,2765,2777,2783,2789,2809],{},[1568,2755,2756,2759,2760,2764],{},[1546,2757,2758],{},"One AWS approval, then its own identity."," Setup asks you to approve one AWS sign-in in the browser, and uses it to issue the machine its own certificates for the dev and production accounts. AWS exchanges those for short sessions named after the machine, so no person needs to sign in again until the certificates are renewed, once a year. Setup then removes that sign-in. The approval must come from someone who can sign with the management account (an administrator); without that access, setup names the other route: an administrator signs the machine's two requests on their own machine, and you save the two certificates where setup says and run it again (",[1551,2761,2763],{"href":2762},"/developer-experience/guide/troubleshooting#aws-refuses-the-agent-machine-identity","the administrator route"," has the steps).",[1568,2766,2767,2770,2771,2773,2774,2776],{},[1546,2768,2769],{},"No changes to what the agents may do."," Setup never writes Claude Code's settings, trust or Codex's hook approval on an agent's behalf: the first person to run ",[1590,2772,1948],{}," at that machine's own terminal and type ",[1590,2775,2011],{}," does.",[1568,2778,2779,2782],{},[1546,2780,2781],{},"It stays awake"," on mains power: setup asks for your Mac password once more to set this.",[1568,2784,2785,2788],{},[1546,2786,2787],{},"Docker Desktop starts by itself"," whenever you sign in to the Mac.",[1568,2790,2791,2794,2795,2798,2799,2801,2802,2805,2806,1555],{},[1546,2792,2793],{},"An hourly health check"," (",[1590,2796,2797],{},"ds machine doctor",") keeps the idle checkouts current and reports every checkout's health to ",[1590,2800,2747],{},". It runs as a launchd job (",[1590,2803,2804],{},"launchctl print gui/$UID/com.devstride.machine-doctor"," shows it) and logs to ",[1590,2807,2808],{},"~/.devstride/logs/machine-doctor.log",[1568,2810,2811,2814],{},[1546,2812,2813],{},"FileVault:"," setup reports whether it is on and leaves the choice to you. On, the machine's disk (and its keys, which reach production) stays encrypted if it is lost, but after a restart it waits at the unlock screen until someone signs in. Off, it can sign in by itself after a restart; only choose that for a machine kept somewhere physically secure.",[1542,2816,2817,2820,2821,2824],{},[1546,2818,2819],{},"Browser sign-ins are yours to do once."," A few sites have no key an agent can hold: the Seed and Neon consoles, Stripe, Intuit, Azure and the DevStride app. On each agent machine, add a Chrome profile named ",[1590,2822,2823],{},"DevStride Agent"," in the same macOS user the agent runs as, enable Claude in Chrome there, and sign that profile in to each site once. Agents then work there and never type a password. Nothing can check a browser's sign-ins, so the READY report lists them as a reminder.",[1542,2826,2827,2830,2831,2650,2834,2836],{},[1546,2828,2829],{},"Renewing"," (yearly, or to replace a machine's identity): ",[1590,2832,2833],{},"ds machine enroll \u003Cname> --force",[1590,2835,1964],{},", which signs and installs the new certificates from one approval.",[1542,2838,2839,2842,2843,1555],{},[1546,2840,2841],{},"Retiring or losing a machine"," is an admin's job: see ",[1551,2844,1582],{"href":2845},"/developer-experience/guide/for-admins#retire-a-machine",[1557,2847,2161],{"id":2848},"your-own-tools",[1542,2850,2851],{},"On your own Mac, and never on an agent machine, setup also installs these, so every developer starts from the same place:",[1565,2853,2854,2860,2866],{},[1568,2855,2856,2859],{},[1546,2857,2858],{},"The Claude and ChatGPT desktop apps",", from Homebrew.",[1568,2861,2862,2865],{},[1546,2863,2864],{},"iTerm2",", a terminal app, from Homebrew. Open it from Applications or Spotlight and use it instead of Terminal.",[1568,2867,2868,2871,2872,2875,2876,2879,2880,2883,2884,2173,2887,2890,2891,2893],{},[1546,2869,2870],{},"Oh My Zsh",", which gives zsh its prompt, themes and plugins, with its own installer. On a new Mac, setup starts ",[1590,2873,2874],{},"~/.zshrc"," from Oh My Zsh's template (the ",[1590,2877,2878],{},"robbyrussell"," theme and the ",[1590,2881,2882],{},"git"," plugin) and keeps its own startup block after it. To change the theme or the plugins, edit ",[1590,2885,2886],{},"ZSH_THEME",[1590,2888,2889],{},"plugins"," in ",[1590,2892,2874],{},", outside setup's marked lines.",[1542,2895,2896,2897,2899,2900,2903,2904,2906],{},"If your ",[1590,2898,2874],{}," already has lines of your own, setup never rewrites it. It installs Oh My Zsh in ",[1590,2901,2902],{},"~/.oh-my-zsh"," and, at the end of that run, lists under ",[1546,2905,2393],{}," the four lines that turn it on. If your shell is not zsh, setup leaves Oh My Zsh out. Setup looks for all of these on every run, so it installs any one again if it has been removed.",[1557,2908,2910],{"id":2909},"linux","Linux",[1542,2912,2913,2915,2916,2919,2920,2923],{},[1590,2914,1948],{}," runs on Linux too, but only the Mac route has been tried end to end. It needs Homebrew (it installs it only when Node or pnpm is missing too) and python3, and lists what it cannot install with the command to run yourself: Docker Engine (and adding yourself to the ",[1590,2917,2918],{},"docker"," group) and Codex (",[1590,2921,2922],{},"npm install -g @openai/codex","). Chrome, the desktop apps and keeping the machine awake are Mac-only; the hourly check runs as a systemd timer.",[1557,2925,2927],{"id":2926},"trying-it-on-a-blank-mac","Trying it on a blank Mac",[1542,2929,2930,2931,2935,2936,2939,2940,1555],{},"Before a change to setup is released, someone runs it on a Mac that has never had DevStride on it: a new Mac, or one erased (a new user account is not enough, because Homebrew and Docker are installed for the whole Mac). Paste ",[1551,2932,2934],{"href":2933},"#_1-paste-the-one-line","the line above"," with one change, so it clones the branch being tested: replace ",[1590,2937,2938],{},"gh repo clone devstride/devstride ~/dev/devstride"," in it with ",[1590,2941,2942],{},"gh repo clone devstride/devstride ~/dev/devstride -- --branch \u003Cthe branch>",[1542,2944,2945,2946,2948,2949,2951],{},"When a step fails, send back the line setup printed for that step, ",[1590,2947,2720],{},", and for the demo data ",[1590,2950,2724],{},". Every place this page and the Mac disagree is a bug in one of them. The repository's setup rehearsal proves setup's order and waits on every change, with stand-ins for every outside program; only a real blank Mac proves Homebrew's and Docker's own installers.",[1542,2953,2954,2957,2958,1555],{},[1546,2955,2956],{},"If something goes wrong,"," see ",[1551,2959,1094],{"href":1095},[1542,2961,2962,2265,2965],{},[1546,2963,2964],{},"Next:",[1551,2966,1078],{"href":1079},[2968,2969,2970],"style",{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}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 .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}",{"title":1636,"searchDepth":244,"depth":244,"links":2972},[2973,2974,2975,2976,2977,2978,2981,2984,2985,2986,2987,2988,2989,2990],{"id":1559,"depth":244,"text":1560},{"id":1625,"depth":244,"text":1626},{"id":1971,"depth":244,"text":1972},{"id":1991,"depth":244,"text":1992},{"id":2055,"depth":244,"text":2056},{"id":2102,"depth":244,"text":2103,"children":2979},[2980],{"id":2221,"depth":302,"text":2222},{"id":2235,"depth":244,"text":2236,"children":2982},[2983],{"id":2275,"depth":302,"text":1548},{"id":2372,"depth":244,"text":2151},{"id":2428,"depth":244,"text":2197},{"id":2682,"depth":244,"text":2683},{"id":2735,"depth":244,"text":1554},{"id":2848,"depth":244,"text":2161},{"id":2909,"depth":244,"text":2910},{"id":2926,"depth":244,"text":2927},"From a Mac with nothing on it to READY with one pasted line: what to have ready, what setup asks, what it installs, your own AWS stage, and what to do after.","md",null,{},true,{"title":1074,"description":2991},"hlWix09HVow1dBg7WQMlLLdBG4aIf6_AUinwa6Zo66E",[2999,3001],{"title":447,"path":1071,"stem":1072,"description":3000,"children":-1},"The developer guide's path from a Mac with nothing on it to your first merged story: what you will have at the end, how long it takes, and where you are needed.",{"title":1078,"path":1079,"stem":1080,"description":3002,"children":-1},"Where every tool's key on a DevStride machine comes from, who creates and rotates it, how setup fetches the team's keys, and what a retired machine still holds.",1791534192512]