生活分享

雲端任務與 GitHub

雲端任務使用為程式庫設定的遠端環境,適合把較長工作交出去並回來檢查。它不會自動讀取你電腦尚未提交的檔案;建立 PR 也不代表已合併或部署。

更新日期: 閱讀時間約 15 分鐘 · 操作 35 分鐘

實作順序示意圖,非產品介面截圖。
圖片:Mokaair (© Mokaair)
本篇目錄
  1. 目標與開始之前
  2. 步驟一:準備雲端真正讀得到的材料
  3. 步驟二:連接帳號並建立環境
  4. 步驟三:確認版本後修正
  5. 步驟四:驗收,再準備 PR
  6. 常見問題、停止與下一步

目標與開始之前

Codex 雲端在它的環境執行工作;則控制已連接主機。電腦上的未提交修改、登入網站與 node_modules 不會因為選了同名專案就出現在雲端。這次用明確的 GitHub 分支和檔案清單當起點,讓每個結果都能追到同一份材料。

步驟一:準備雲端真正讀得到的材料

下載並解壓Small Steps 練習包。這次取 broken 裡的 index.html、style.css、app.js、core.mjs、core.test.mjs 五個檔案;expected 是答案參考,保留在電腦,不要混進起始儲存庫。broken 刻意讓 Completed 回傳未完成項目,所以起始測試有一項失敗,這是要修的題目。

在 GitHub 的 New repository 選自己的帳號,命名 codex-cloud-lab,選 Private,初始化 README 後建立。進入該儲存庫的 Add file → Upload files,上傳五個檔案到根目錄,寫明「Add broken Small Steps exercise」並提交到這個全新練習庫的起始分支。若帳號規則要求分支與 PR,依規則合併教材後再往下;不要更改正式儲存庫保護規則。

在檔案清單確認不是 broken/core.mjs 多包一層,也不是五個空白檔。打開 core.mjs 找 visibleTasks,核對 completed 分支有反向篩選,再記下畫面上的分支名稱與最新 commit。不要直接假設預設分支叫 main;後面選的分支必須包含剛上傳的教材。這個步驟比只確認 GitHub 登入成功更接近真正可執行的起點。

步驟二:連接帳號並建立環境

開啟Codex 雲端,確認 ChatGPT 帳號與工作區,依 Connect GitHub 流程選擇可存取的儲存庫。首次練習只選 codex-cloud-lab;若是組織帳號需要管理員核准,先完成核準再確認清單出現。GitHub 的登入身分與 ChatGPT 身分不同,登入其中一個不代表另一個連線已授權。

到環境設定建立練習庫環境,確認儲存庫名稱。本例沒有外部套件、API 或金鑰,只需支援 node:test 的 Node.js。使用環境的套件版本選項選擇可用的 Node.js 22 或更新相容版本,並在 setup script 只放下面的版本檢查。不要把故意失敗的測試放進 setup,否則任務可能在代理開始前就中止。

雲端環境設定:貼入 setup script 的版本檢查 · sh
node --version

本例的 agent internet access 保持 Off 即可,因為需要的檔案已在儲存庫。環境安裝階段與代理工作階段的網路設定要分開看,能安裝不表示代理可任意連網。若另做有套件的專案,依 lockfile 設定安裝命令並讀取失敗紀錄;不要為了這個零依賴練習增加套件或把私人 token 寫進 README。

步驟三:確認版本後修正

回雲端任務頁,選練習環境及包含教材的分支,先送出下列唯讀要求。預期列出五個程式檔、目前目錄、commit 與一項失敗測試。如果顯示已全部通過,先查是否上傳 expected 或選到修好後的分支;不要為了符合文章而任意破壞已正確的程式。若根目錄沒有檔案,先修正環境或上傳位置。

自然語言提示詞:在選定環境的雲端任務輸入 · text
Inspect this Small Steps practice repository without changing files. Report the working directory, git commit, branch if available, and the five source filenames. Run node --test core.test.mjs. Explain the failing behavior from the test and core.mjs. Keep files unchanged and do not open a pull request yet.

核對回覆與工作紀錄後,在同一任務送出修正要求。這次限定 core.mjs 的 completed 篩選,保留既有測試與其他功能;不要用刪除失敗測試、放寬斷言或改 expected 值來換取通過。若它提出更大重構,請先說明為什麼單一條件修正不足,再決定是否擴大範圍。

自然語言提示詞:在同一個雲端任務要求修正 · text
Fix only the reversed completed filter in core.mjs. Completed must return only finished tasks, Active only unfinished tasks, and All every task. Preserve order, input immutability and all existing tests. Remove any now-obsolete exercise comment. Run node --test core.test.mjs and show the final diff. Do not merge, deploy or open a PR until I review the result.

步驟四:驗收,再準備 PR

情境輸入狀態預期顯示
CompletedRead 完成、Build 未完成只有 Read
Active相同兩筆資料只有 Build
All相同兩筆資料Read、Build,原順序
空清單沒有任何項目三種篩選都是空清單

合格結果應為三項測試通過,core.mjs 的 completed 分支改為保留 completed 為真的項目,並移除過期的故障註解。Active 與 All 不變;core.test.mjs 不應被修改。檢查的是最終 diff 與最後一次測試,不是較早那段「我已完成」摘要。若回覆省略退出狀態或只說應該通過,要求補實際輸出。

用起始 commit 比較,不只看現在還沒提交的差異

把步驟三第一次唯讀檢查記下的 commit 當作比較基準。若代理已在任務內提交修改,現在的 git diff 可能空白,但本次工作仍有變更;因此要比較起點到最終結果的完整差異。找不到起始紀錄時先補查任務日誌,不猜一個分支名稱當基準。下面要求只作審查,不會自動替你建立或合併 PR。

自然語言提示詞:在同一個雲端任務核對完整修改 · text
Use the commit recorded in our initial read-only inspection as the baseline.
If you cannot identify it, stop and ask me to recover that record.
Compare the final tracked tree against that baseline, including committed, staged and unstaged changes.
List untracked files separately. Confirm whether core.test.mjs is unchanged and explain every changed file.
Report the latest actual test command and result, or say not run.
Do not modify files, open a PR, merge or deploy.

準備好時使用任務的建立 PR 入口,確認目的儲存庫、base 分支與包含修正的 head,再填下面的標題和說明。PR 是提交審查,不代表已合併或網站已上線;若 GitHub 顯示衝突、檢查尚未完成或新增了其他修改,先處理再決定合併。本篇練習可以停在未合併 PR,保留成果供下一篇使用。

PR 草稿範本:先填入實際結果,再送出審查 · markdown
Title: Fix Completed filtering in Small Steps

Completed previously displayed unfinished tasks. It now displays only finished tasks while preserving Active, All, order and input data.

Baseline commit: [fill in the commit from the initial inspection]
Result checked: [fill in the final commit or task diff identifier]
Validation: [fill in command, exit code and actual pass/fail counts]
Browser verification: [performed / not run, with scope or reason]
Deployment: not performed.

先用自己的實際紀錄替換所有方括號;只有真的跑出三項通過時才能這樣填寫。未跑的項目填「未執行」及原因,PR 的標題與結果敘述也要符合最終差異。需要畫面驗收時,把 PR 的確切分支或 commit 取得到另一個獨立資料夾,再按啟動預覽。先保留想留下的練習資料,再於 About this exercise 選 Reset practice data,切到 All tasks 並確認空清單,然後加入 Read、Build,只完成 Read,Completed 只看見 Read,Active 只看見 Build。不要用電腦舊資料夾的正常畫面替雲端新修改背書。

常見問題、停止與下一步

看不到儲存庫時,先核對 GitHub 擁有者、連接授權範圍與組織核准;環境初始化失敗時,讀 setup 的第一個錯誤並確認 Node 版本;測試找不到檔案時,核對選定分支和根目錄;雲端結果與本機不同時,比對 commit、檔案與最後測試,而不是反覆送相同提示詞。這四種現象分別對應存取、工具、材料位置與版本問題。

要停止時,在目前任務使用可用的停止控制並確認狀態已停止,再檢查已留下的差異;停止不會撤銷先前提交的 PR 或 GitHub 變更。未合併 PR 可在核對後關閉,已合併修改要走指定提交的還原流程,不能用刪除聊天取代。本文環境與 UI 步驟依官方文件查證;故障及參考測試在本機驗證,沒有聲稱已替讀者建立雲端任務、GitHub PR 或部署。

15. 雲端任務與 GitHub — 實作順序示意圖,非產品介面截圖。 GitHub → Cloud environment → Pull request
15. 雲端任務與 GitHub — 實作順序示意圖,非產品介面截圖。 GitHub → Cloud environment → Pull request · 圖片:Mokaair (© Mokaair)
閱讀完整文字說明

GitHub to Cloud environment to Pull request

回總目錄

  • 生活分享

    Codex 學習中心:完整教學目錄

    從安裝、第一個任務到 MD 規則與進階整合,規劃 60 篇 Codex 教學、十個單元。依程度、平台、需求或指令搜尋下一篇;尚未公開的教學會標示狀態,方便安排學習路線。

  • 生活分享

    實戰:製作小網站

    從 brief.md 規劃並製作 Small Steps 待辦網站,完成新增、完成、刪除、篩選與本機資料保存。將 HTML、CSS、資料函式、畫面事件與測試分開,以 Node 測試和瀏覽器操作驗收,並留下可重新啟動與還原的交接紀錄。

  • 生活分享

    用量與效率:減少重工

    記錄任務條件、模型選項、時間與成果,找出能減少無效重試和過多上下文的調整。

最新旅遊情報攻略

資料來源

生活分享