{"id":498515,"date":"2026-10-13T19:11:56","date_gmt":"2026-10-13T16:11:56","guid":{"rendered":"https:\/\/savepearlharbor.com\/?p=498515"},"modified":"2026-10-13T19:11:56","modified_gmt":"2026-10-13T16:11:56","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=498515","title":{"rendered":"Codex Cloud Tutorial: Set Up an Environment and Create Your First Pull Request"},"content":{"rendered":"<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>Codex Cloud runs coding tasks in a remote environment. You can ask it to explain a project, edit files, run checks, and prepare a GitHub pull request while your computer is asleep.<\/p>\n<p>For my walkthrough, I started with small JavaScript examples. That made it easy to understand the setup and follow the changes. My first request was <code>explain this repo<\/code>; once Codex identified issues, I continued in the same task with a fix request.<\/p>\n<p>This guide follows that workflow from environment setup to reviewing a pull request and checking out the changes locally. You can follow the screen walkthrough in <a href=\"https:\/\/youtu.be\/GPrPPNCu1Uw\" rel=\"noopener nofollow\">How to Use Codex Cloud: From GitHub to Your First Pull Request<\/a>.<\/p>\n<div class=\"tm-iframe_temp\" data-src=\"https:\/\/embedd.srv.habr.com\/iframe\/6ace584c4903ae0dbe899195\" data-style=\"\" id=\"6ace584c4903ae0dbe899195\" width=\"\" data-habr-games=\"\"><\/div>\n<h3>Understand the environment and the task<\/h3>\n<p>There are four pieces to the workflow:<\/p>\n<ul>\n<li>\n<p><strong>Repository:<\/strong> your code on GitHub.<\/p>\n<\/li>\n<li>\n<p><strong>Environment:<\/strong> the reusable setup, including tools, dependencies, configuration, and access.<\/p>\n<\/li>\n<li>\n<p><strong>Task:<\/strong> a conversation with its own working files, starting from the published environment.<\/p>\n<\/li>\n<li>\n<p><strong>Pull request, or PR:<\/strong> proposed changes submitted through GitHub for review.<\/p>\n<\/li>\n<\/ul>\n<p>Prepare the environment, publish it, then start a task. Follow-up messages continue with that task\u2019s files and context. Each new task gets a separate workspace, even when several tasks use the same environment.<\/p>\n<p>OpenAI distinguishes the current Cloud workflow from Codex Cloud (Legacy). Older tutorials may show different setup screens or access rules. <a href=\"https:\/\/learn.chatgpt.com\/docs\/environments\/cloud-environments\" rel=\"noopener nofollow\">Cloud environment documentation<\/a><\/p>\n<h3>What you need<\/h3>\n<p>Start with a GitHub project you can connect and understand. Have a way to check the result: existing tests, runnable examples, or a clear expected behavior.<\/p>\n<p>Cloud uses ChatGPT sign-in. If your account supports email-and-password login, OpenAI requires MFA for cloud access; social-login and SSO requirements differ. <a href=\"https:\/\/learn.chatgpt.com\/docs\/auth#secure-your-codex-cloud-account\" rel=\"noopener nofollow\">Authentication requirements<\/a><\/p>\n<p>OpenAI\u2019s feature comparison lists cloud chats for Plus, Pro, Business, and Enterprise\/Edu. Workspace permissions also apply, and included usage has limits. Check the <a href=\"https:\/\/learn.chatgpt.com\/docs\/pricing#feature-availability\" rel=\"noopener nofollow\">current plan comparison<\/a> before subscribing for this workflow.<\/p>\n<h3>1. Create a cloud environment<\/h3>\n<p>Open ChatGPT on the web or in the desktop app. In the video, I open the sidebar\u2019s three-dot menu and choose <strong>Codex<\/strong>. Near the prompt field, choose <strong>Work in \u2192 Cloud<\/strong>, open the environment selector, and create an environment.<\/p>\n<p>If you already have a suitable published environment, select it and move on to the task.<\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/extt\/c1\/23\/03\/c12303e8b487500fc4de9f446d334982.png\" alt=\"Cloud selected in the Work in menu, with Choose environment available\" sizes=\"(max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/extt\/c1\/23\/03\/c12303e8b487500fc4de9f446d334982.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/extt\/c1\/23\/03\/c12303e8b487500fc4de9f446d334982.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>Cloud selected in the Work in menu, with Choose environment available<\/figcaption><\/div>\n<\/figure>\n<p><em>The Work in menu with Cloud selected.<\/em><\/p>\n<p>Connect GitHub if prompted, select your repository, and choose <strong>Get started<\/strong>. My GitHub connection was already set up, so I could select the project directly.<\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/extt\/d2\/4a\/e5\/d24ae50af2de6e39904b964f4d7a83d7.png\" alt=\"Create a cloud environment dialog with repository selection and Get started\" sizes=\"(max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/extt\/d2\/4a\/e5\/d24ae50af2de6e39904b964f4d7a83d7.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/extt\/d2\/4a\/e5\/d24ae50af2de6e39904b964f4d7a83d7.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>Create a cloud environment dialog with repository selection and Get started<\/figcaption><\/div>\n<\/figure>\n<p><em>Choose the GitHub repository for the cloud environment, then select Get started.<\/em><\/p>\n<p>Check the repository access you\u2019re granting. For an organization-owned project, the connection needs the relevant organization permissions too.<\/p>\n<h3>2. Check the prepared setup and publish it<\/h3>\n<p>Codex inspects the project and prepares the environment. Read its report before continuing. In my JavaScript example, Node.js was available and the sample scripts ran without extra dependencies or services.<\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/extt\/d9\/71\/f3\/d971f39576e5cebb6dc513ec118724ad.png\" alt=\"Codex Cloud setup report with successful sample runs and Save and publish\" sizes=\"(max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/extt\/d9\/71\/f3\/d971f39576e5cebb6dc513ec118724ad.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/extt\/d9\/71\/f3\/d971f39576e5cebb6dc513ec118724ad.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>Codex Cloud setup report with successful sample runs and Save and publish<\/figcaption><\/div>\n<\/figure>\n<p><em>The setup report and Save and publish button.<\/em><\/p>\n<p>A larger project may need a package installation, database, or configuration values. Compare the setup commands and runtime versions with its README and manifests. If a command fails, find the first error and resolve it before moving on.<\/p>\n<p>If you need more detail, ask:<\/p>\n<pre><code>List the setup commands you ran and their results.Explain any failures, skipped checks, or missing configuration.Tell me what remains before this environment is ready.<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper\"><\/span><\/a><\/div><\/pre>\n<p>Select <strong>Save and publish<\/strong> and wait for <strong>Environment published<\/strong>. Return to Codex, choose <strong>Cloud<\/strong>, and select the published environment to start your task.<\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/extt\/65\/fe\/c1\/65fec198c34e15e064fffcd298dc13e6.png\" alt=\"Codex Cloud setup report with Save and publish highlighted\" sizes=\"(max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/extt\/65\/fe\/c1\/65fec198c34e15e064fffcd298dc13e6.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/extt\/65\/fe\/c1\/65fec198c34e15e064fffcd298dc13e6.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>Codex Cloud setup report with Save and publish highlighted<\/figcaption><\/div>\n<\/figure>\n<p><em>Select Save and publish after reviewing the environment setup.<\/em><\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/extt\/8e\/bb\/f4\/8ebbf4eb1496b68fead1164f3a8ca85e.png\" alt=\"Environment published confirmation below the setup report\" sizes=\"(max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/extt\/8e\/bb\/f4\/8ebbf4eb1496b68fead1164f3a8ca85e.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/extt\/8e\/bb\/f4\/8ebbf4eb1496b68fead1164f3a8ca85e.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>Environment published confirmation below the setup report<\/figcaption><\/div>\n<\/figure>\n<p><em>The Environment published confirmation.<\/em><\/p>\n<p>Publishing makes the prepared setup available to new tasks. Application deployment is a separate step.<\/p>\n<p>For later configuration changes, open <strong>Settings \u2192 Codex Cloud \u2192 select the environment \u2192 three dots \u2192 Edit<\/strong>. Test the updated setup, republish it, and start a new task to use it. Existing tasks retain their own state. <a href=\"https:\/\/learn.chatgpt.com\/docs\/environments\/cloud-environments#reuse-and-update-saved-state\" rel=\"noopener nofollow\">Publishing and saved state<\/a><\/p>\n<h3>3. Ask for an explanation before an edit<\/h3>\n<p>My first message was:<\/p>\n<pre><code>explain this repo<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/extt\/d3\/e9\/9a\/d3e99aabd0e040f3f382622bf45148ff.png\" alt=\"The explain this repo prompt with a cloud environment selected\" sizes=\"(max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/extt\/d3\/e9\/9a\/d3e99aabd0e040f3f382622bf45148ff.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/extt\/d3\/e9\/9a\/d3e99aabd0e040f3f382622bf45148ff.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>The explain this repo prompt with a cloud environment selected<\/figcaption><\/div>\n<\/figure>\n<p><em>The repository-explanation prompt in the selected cloud environment.<\/em><\/p>\n<p>Codex described the array, sorting, and search examples. It also identified problems in the search code. Starting with an explanation gave the next request context.<\/p>\n<p>For your own project, you can be more explicit:<\/p>\n<pre><code>Explain this repository to a developer joining the project.Identify the main files, how to run it, and how to test it.Point out one small issue worth investigating.Do not edit files yet.<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>Compare the answer with the project you know. If it misunderstands how the application starts or which files matter, correct that before requesting a change.<\/p>\n<h3>4. Request one focused change<\/h3>\n<p>I continued in the same task with:<\/p>\n<pre><code>fix the issues<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>Codex already had the previous explanation and its list of issues. In a fresh task, describe the problem and expected behavior again.<\/p>\n<p>A more specific request helps keep the work manageable. For a search implementation, for example:<\/p>\n<pre><code>Fix the search boundary issues you identified.Keep the standalone examples working.Add checks for empty arrays, one-item arrays, absent targets,and targets in the final search block.Run the relevant checks and report failures or skipped checks.Avoid unrelated refactoring and new dependencies.<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>A boundary case sits at the edge of the normal input. For an array of length three, the valid indexes are <code>0<\/code>, <code>1<\/code>, and <code>2<\/code>. An inclusive upper boundary should use <code>intArray.length - 1<\/code>; <code>intArray.length<\/code> points beyond the final item.<\/p>\n<p>When reading a fix, follow the behavior through the code. Does the search inspect the final candidate? Does it stop when the target is absent? Does it handle an empty array?<\/p>\n<h3>5. Review the changes and run the checks<\/h3>\n<p>Ask Codex to summarize the changed files and give the exact commands it ran. Read the diff, which shows added and removed lines, and check that the changes match your request.<\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/extt\/95\/36\/b7\/9536b74483ee8b17c7868b01f221051c.png\" alt=\"Codex response summarizing code changes and a test command\" sizes=\"(max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/extt\/95\/36\/b7\/9536b74483ee8b17c7868b01f221051c.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/extt\/95\/36\/b7\/9536b74483ee8b17c7868b01f221051c.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>Codex response summarizing code changes and a test command<\/figcaption><\/div>\n<\/figure>\n<p><em>The task response includes a change summary and a test command.<\/em><\/p>\n<p>Use your project\u2019s documented checks. A standalone Node.js project might have a command such as:<\/p>\n<pre><code class=\"bash\">node search.test.js<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>Read the tests as well as their output. For a search fix, useful cases include an empty array, one item, a missing target, and a target in the last block. A regression test should catch the original failure and pass after the correction.<\/p>\n<p>Run the relevant checks yourself when possible. If a case fails, return to the same task with the command, input, expected result, and actual result. That gives Codex a specific problem to investigate.<\/p>\n<p>For a UI change, also inspect the application in a local or preview environment. Command output alone cannot tell you whether the page looks or behaves correctly.<\/p>\n<h3>6. Create and review a pull request<\/h3>\n<p>Changes in the cloud workspace need to be published to GitHub before collaborators can review them there. Ask Codex to prepare the pull request:<\/p>\n<pre><code>create a pr<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>For a more detailed description, you can ask it to include the problem, changed behavior, validation commands, and any unresolved checks.<\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/extt\/a3\/9f\/ad\/a39fadb2705bd9080289a2090c4339bb.png\" alt=\"GitHub pull request with a description and changed files\" sizes=\"(max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/extt\/a3\/9f\/ad\/a39fadb2705bd9080289a2090c4339bb.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/extt\/a3\/9f\/ad\/a39fadb2705bd9080289a2090c4339bb.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>GitHub pull request with a description and changed files<\/figcaption><\/div>\n<\/figure>\n<p><em>GitHub presents the proposed changes for review.<\/em><\/p>\n<p>Open the returned link and check the source branch, target branch, changed files, and description. Review any CI results alongside the checks run in the task. GitHub\u2019s mergeability status tells you whether the branches can merge cleanly; you still need to assess the code\u2019s behavior.<\/p>\n<p>If publishing fails, read the exact error. Check the GitHub connection, repository permissions, and relevant network configuration before retrying.<\/p>\n<h3>7. Bring the branch into a local checkout<\/h3>\n<p>Cloud work and your local checkout have separate files and branch state. Creating a GitHub PR doesn\u2019t update the files on your computer.<\/p>\n<p>To review a proposed change locally, fetch the remote branches and check out the branch shown in the PR. From your existing checkout, replace <code>your-task-branch<\/code> with that branch name:<\/p>\n<pre><code class=\"bash\">git statusgit remote -vgit fetch origingit switch --track origin\/your-task-branch<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>The last command creates a local tracking branch. If the branch already exists locally, switch to it with <code>git switch your-task-branch<\/code>. Check for uncommitted work before switching.<\/p>\n<p>Run the project\u2019s checks in that checkout and compare the code with the PR diff. After a reviewed PR is merged, switch to the target branch and pull the merged changes instead.<\/p>\n<p>For your first task, choose a change whose expected behavior you can explain. Prepare the environment, make the request, and review the returned files and checks before merging.<\/p>\n<p>Cheers, proflead \ud83d\ude09<\/p>\n<\/div>\n<p>\u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/1094002\/\">https:\/\/habr.com\/ru\/articles\/1094002\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Codex Cloud runs coding tasks in a remote environment. You can ask it to explain a project, edit files, run checks, and prepare a GitHub pull request while your computer is asleep.For my walkthrough, I started with small JavaScript examples. That made it easy to understand the setup and follow the changes. My first request was explain this repo; once Codex identified issues, I continued in the same task with a fix request.This guide follows that workflow from environment setup to reviewing a pull request and checking out the changes locally. You can follow the screen walkthrough in How to Use Codex Cloud: From GitHub to Your First Pull Request.Understand the environment and the taskThere are four pieces to the workflow:Repository: your code on GitHub.Environment: the reusable setup, including tools, dependencies, configuration, and access.Task: a conversation with its own working files, starting from the published environment.Pull request, or PR: proposed changes submitted through GitHub for review.Prepare the environment, publish it, then start a task. Follow-up messages continue with that task\u2019s files and context. Each new task gets a separate workspace, even when several tasks use the same environment.OpenAI distinguishes the current Cloud workflow from Codex Cloud (Legacy). Older tutorials may show different setup screens or access rules. Cloud environment documentationWhat you needStart with a GitHub project you can connect and understand. Have a way to check the result: existing tests, runnable examples, or a clear expected behavior.Cloud uses ChatGPT sign-in. If your account supports email-and-password login, OpenAI requires MFA for cloud access; social-login and SSO requirements differ. Authentication requirementsOpenAI\u2019s feature comparison lists cloud chats for Plus, Pro, Business, and Enterprise\/Edu. Workspace permissions also apply, and included usage has limits. Check the current plan comparison before subscribing for this workflow.1. Create a cloud environmentOpen ChatGPT on the web or in the desktop app. In the video, I open the sidebar\u2019s three-dot menu and choose Codex. Near the prompt field, choose Work in \u2192 Cloud, open the environment selector, and create an environment.If you already have a suitable published environment, select it and move on to the task.Cloud selected in the Work in menu, with Choose environment availableThe Work in menu with Cloud selected.Connect GitHub if prompted, select your repository, and choose Get started. My GitHub connection was already set up, so I could select the project directly.Create a cloud environment dialog with repository selection and Get startedChoose the GitHub repository for the cloud environment, then select Get started.Check the repository access you\u2019re granting. For an organization-owned project, the connection needs the relevant organization permissions too.2. Check the prepared setup and publish itCodex inspects the project and prepares the environment. Read its report before continuing. In my JavaScript example, Node.js was available and the sample scripts ran without extra dependencies or services.Codex Cloud setup report with successful sample runs and Save and publishThe setup report and Save and publish button.A larger project may need a package installation, database, or configuration values. Compare the setup commands and runtime versions with its README and manifests. If a command fails, find the first error and resolve it before moving on.If you need more detail, ask:List the setup commands you ran and their results.Explain any failures, skipped checks, or missing configuration.Tell me what remains before this environment is ready.Select Save and publish and wait for Environment published. Return to Codex, choose Cloud, and select the published environment to start your task.Codex Cloud setup report with Save and publish highlightedSelect Save and publish after reviewing the environment setup.Environment published confirmation below the setup reportThe Environment published confirmation.Publishing makes the prepared setup available to new tasks. Application deployment is a separate step.For later configuration changes, open Settings \u2192 Codex Cloud \u2192 select the environment \u2192 three dots \u2192 Edit. Test the updated setup, republish it, and start a new task to use it. Existing tasks retain their own state. Publishing and saved state3. Ask for an explanation before an editMy first message was:explain this repoThe explain this repo prompt with a cloud environment selectedThe repository-explanation prompt in the selected cloud environment.Codex described the array, sorting, and search examples. It also identified problems in the search code. Starting with an explanation gave the next request context.For your own project, you can be more explicit:Explain this repository to a developer joining the project.Identify the main files, how to run it, and how to test it.Point out one small issue worth investigating.Do not edit files yet.Compare the answer with the project you know. If it misunderstands how the application starts or which files matter, correct that before requesting a change.4. Request one focused changeI continued in the same task with:fix the issuesCodex already had the previous explanation and its list of issues. In a fresh task, describe the problem and expected behavior again.A more specific request helps keep the work manageable. For a search implementation, for example:Fix the search boundary issues you identified.Keep the standalone examples working.Add checks for empty arrays, one-item arrays, absent targets,and targets in the final search block.Run the relevant checks and report failures or skipped checks.Avoid unrelated refactoring and new dependencies.A boundary case sits at the edge of the normal input. For an array of length three, the valid indexes are 0, 1, and 2. An inclusive upper boundary should use intArray.length &#8212; 1; intArray.length points beyond the final item.When reading a fix, follow the behavior through the code. Does the search inspect the final candidate? Does it stop when the target is absent? Does it handle an empty array?5. Review the changes and run the checksAsk Codex to summarize the changed files and give the exact commands it ran. Read the diff, which shows added and removed lines, and check that the changes match your request.Codex response summarizing code changes and a test commandThe task response includes a change summary and a test command.Use your project\u2019s documented checks. A standalone Node.js project might have a command such as:node search.test.jsRead the tests as well as their output. For a search fix, useful cases include an empty array, one item, a missing target, and a target in the last block. A regression test should catch the original failure and pass after the correction.Run the relevant checks yourself when possible. If a case fails, return to the same task with the command, input, expected result, and actual result. That gives Codex a specific problem to investigate.For a UI change, also inspect the application in a local or preview environment. Command output alone cannot tell you whether the page looks or behaves correctly.6. Create and review a pull requestChanges in the cloud workspace need to be published to GitHub before collaborators can review them there. Ask Codex to prepare the pull request:create a prFor a more detailed description, you can ask it to include the problem, changed behavior, validation commands, and any unresolved checks.GitHub pull request with a description and changed filesGitHub presents the proposed changes for review.Open the returned link and check the source branch, target branch, changed files, and description. Review any CI results alongside the checks run in the task. GitHub\u2019s mergeability status tells you whether the branches can merge cleanly; you still need to assess the code\u2019s behavior.If publishing fails, read the exact error. Check the GitHub connection, repository permissions, and relevant network configuration before retrying.7. Bring the branch into a local checkoutCloud work and your local checkout have separate files and branch state. Creating a GitHub PR doesn\u2019t update the files on your computer.To review a proposed change locally, fetch the remote branches and check out the branch shown in the PR. From your existing checkout, replace your-task-branch with that branch name:git statusgit remote -vgit fetch origingit switch &#8212;track origin\/your-task-branchThe last command creates a local tracking branch. If the branch already exists locally, switch to it with git switch your-task-branch. Check for uncommitted work before switching.Run the project\u2019s checks in that checkout and compare the code with the PR diff. After a reviewed PR is merged, switch to the target branch and pull the merged changes instead.For your first task, choose a change whose expected behavior you can explain. Prepare the environment, make the request, and review the returned files and checks before merging.Cheers, proflead ;)\u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 https:\/\/habr.com\/ru\/articles\/1094002\/<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-498515","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/498515","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=498515"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/498515\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=498515"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=498515"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=498515"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}