生活分享

云端任务与 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 测试和浏览器操作验收,并留下可重新启动与还原的交接纪录。

  • 生活分享

    用量与效率:减少重工

    记录任务条件、模型选项、时间与成果,找出能减少无效重试和过多上下文的调整。

最新旅游情报攻略

资料来源

生活分享