全新仓库与工作目录规划¶
状态:规划,尚未创建远端或初始化本地工程仓库。更新日期:2026-10-29。
已确认的外部边界¶
- GitLab 实例为
https://git.refugio.cn,group 为lab-edu。 - 用户明确要求不阅读该 group 下任何已有仓库,它们是归档 deprecated 实现。此限制适用于列举后点开、clone、源码/API 读取、搜索旧实现或把它们当模板。
- 本轮未访问该 group,也不枚举旧仓库判断重名。用户表示新项目尚未创建仓库,创建时机可稍后规划。
目标映射¶
| 职责 | 拟用全新仓库名 | 当前本地路径 | 创建状态 |
|---|---|---|---|
| docs | lab-edu-docs | lab-edu/docs | 已有文档目录,无远端 |
| core | lab-edu-core | lab-edu/core | 待新建 |
| web | lab-edu-web | lab-edu/web | 待新建 |
| infra | lab-edu-infra | lab-edu/infra | 待新建 |
这些是命名规划,不声称仓库 URL 已存在或名称可用。创建接口若返回重名,停止该仓库创建并请求用户提供一个明确的新名称;不得为确认冲突内容而读取、覆盖、删除或接续已有仓库。
初始化顺序¶
- 技术设计通过后,从新本地文件建立独立历史,不以旧仓库为 Git remote 起点。
- 按已批准 Git 规范创建新仓库、保护 main、准备逻辑 MR 与首提交 CI;此处只规划,不宣称用户已授权改动旧项目或 group 级设置。
- docs 当前保留
docs/specs的相对路径;若发布仓库根直接对应现有 docs 内容,先设计稳定路径映射并批量验证引用,不静默移动导致规范中的路径失效。 - 依赖与构建产物不进版本控制。实验目录留在 draft,必要证据以文档归档,不能把 node_modules 或样例 provider 迁入产品当真实后端。
- 远端创建和初始推送作为后续独立阶段推进,不阻塞当前研究、契约和任务拆分。
[SPEC-KIT APPENDED 2026-10-29] 当前创建命名¶
用户在创建前明确修订:使用 lab-edu/docs、lab-edu/core、lab-edu/web、lab-edu/infra。上表带 lab-edu- 的仓库名为被替代的历史规划,不再创建。四个本地目录已分别初始化 main,SSH 使用 git.refugio.cn:8022、现有已登记密钥及经 HTTPS 核实的主机指纹;当前正在逐个创建私有空仓库,实际成功项再记录,不将计划等同结果。
[SPEC-KIT APPENDED 2026-10-29] 首次创建尝试¶
使用用户指定的新名称 docs,群组 lab-edu、私有、空仓库提交创建后,GitLab 返回“路径已经被使用”。未创建成功,未打开冲突项目、未绑定 remote、未推送。core/web/infra 尚未提交创建。为遵守重名处理规则与用户简洁命名要求,等待用户处理被占用路径或提供新路径;不擅自改回 lab-edu- 前缀,不修改旧项目。
[SPEC-KIT APPENDED 2026-10-29] 新群组与四仓库创建结果¶
用户报告已删除原群组,并授权重新创建 lab-edu。经创建表单实际提交,新私有群组创建成功,ID 为 47;仅在此新群组中创建并读取本轮新项目,未读取旧仓库。四个私有仓库均不初始化 README,网页明确显示空仓库。
| 本地目录 | 新远端 | 项目 ID | 创建状态 |
|---|---|---|---|
| docs | https://git.refugio.cn/lab-edu/docs | 36 | 私有空仓库,已绑定 origin |
| core | https://git.refugio.cn/lab-edu/core | 37 | 私有空仓库,已绑定 origin |
| web | https://git.refugio.cn/lab-edu/web | 38 | 私有空仓库,已绑定 origin |
| infra | https://git.refugio.cn/lab-edu/infra | 39 | 私有空仓库,已绑定 origin |
origin 使用 ssh://git@git.refugio.cn:8022/lab-edu/对应名称.git。尚未提交或推送本地文件;main 保护、首提交 CI、MR 和 Pages 发布仍待后续完成。此前的未创建/路径冲突段落保留为历史记录,以本节为当前状态。
[SPEC-KIT APPENDED 2026-10-30] main 分支保护已配置¶
四个新项目均在 GitLab「仓库设置 → 分支规则」创建 main 规则:允许推送和合并 = 没有任何人(禁止直接推送,强制 MR),允许合并 = 维护者,允许强制推送 = 关闭。每个项目规则详情页均已复核。配置完成当时远端仍无分支或提交;之后已通过获批的空 README 引导例外建立 main,详见下文。
| 仓库 | 分支规则 | 直推 | MR 合并角色 | 强制推送 |
|---|---|---|---|---|
| docs | main |
无人 | 维护者 | 关闭 |
| core | main |
无人 | 维护者 | 关闭 |
| web | main |
无人 | 维护者 | 关闭 |
| infra | main |
无人 | 维护者 | 关闭 |
执行证据见 evidence/gitlab-repositories-20261029.json。当时 GitLab 空仓库尚无默认分支;首次建出 main 的操作仍须满足用户批准的一次性空 README 引导例外,普通代码变更通过 MR 合并。
[SPEC-KIT APPENDED 2026-10-30] 引导流程尝试结果¶
用户批准每个新仓库仅使用一次 GitLab 空 README 初始化例外。最初尝试从 docs Issue #1 发起首个 MR 时,GitLab 转到 MR 比较表单并报错:源分支 1-docs-mr 不存在,且要求选择源/目标分支;该次尝试没有生成 README、分支或 MR,分支保护未放宽。Issue #1 当时保持开放,之后已关闭。浏览器 Web IDE 提交方式未完成;后续改由 CLI 完成初始化,见下节。
[SPEC-KIT APPENDED 2026-10-30] CLI 授权与空 README 引导已完成¶
用户配置 glab OAuth 应用并提供 Application ID 后,已通过 glab 网页 OAuth 登录 git.refugio.cn,凭据存于 macOS Keychain。仅访问本任务新建的 lab-edu 群组与四个项目。通过 GitLab Repository Files API 为各仓库创建零字节 README.md,建立 main 并完成一次性引导提交;没有提交或推送本地项目代码。API 复核显示每个 main 仍受保护:push access 为 No one、merge access 为 Maintainers、force push 关闭。临时 docs Issue #1 已关闭,未创建 MR。
| 仓库 | 引导提交 | README 大小 |
|---|---|---|
| docs | b7e6ce2411c7a3313a13f55c8addd388723773bc |
0 B |
| core | 89ae2413254b38b59bf1fa1c932dfee3b2c4f0f1 |
0 B |
| web | f26c90afdf814b53ef039e2a7b6a11612347109f |
0 B |
| infra | aeececab9a6c5d7767080a05b62fb94eb081f4c7 |
0 B |
后续应从本地已批准的项目内容创建功能分支和 MR,并在首个代码 MR 中加入各仓库 CI 配置。已通过只读 API 检查四个项目均可使用实例级 Runner 1、2,且两者在线,因此具备开始 CI MR 的条件。状态证据见 evidence/gitlab-repositories-20261029.json。
[SPEC-KIT APPENDED 2026-10-30] infra 首批代码 MR 已准备¶
现有容器编排、文档站构建与校验工具及最小 Compose CI 已提交至 chore/infra-foundation(869935d),创建 infra MR !1。流水线 70 的 verify-compose 已成功,覆盖基础编排、本地初始化叠加和文档站编排。CI 仅使用临时占位 secret,不启动生产服务;本机终端未找到 Docker,未声称执行本地 Compose 校验。该 MR 尚未合并,等待仓库维护规范 §4 的产品经理最终评审。docs/core/web 首批代码与 CI MR 尚待建立。
[SPEC-KIT APPENDED 2026-10-30] infra 合并与 docs CI¶
用户确认继续后,infra MR !1 在流水线 70 成功的提交上快速合并。docs CI 使用固定 infra 提交 869935dc1b9ed863d5b71da0e34a9ce1e235569e 的构建工具与哈希锁定依赖;infra 的 job token 入站允许列表仅添加 docs 项目 36,供短期 CI token 读取构建工具。Pages 仅在默认分支执行,MR 只构建并保留发布包。
[SPEC-KIT APPENDED 2026-10-30] 四仓库 CI 与首批 MR¶
infra MR !1 已合并。docs !1、core !1、web !1 已创建,分别为文档发布、后端与前端的初始交付;另有 infra !2 修正文档 CI 模板的输出目录。docs 流水线 75、web 73、infra 76 已通过;core 修复登录暂停的数据库时间精度边界及 Runner 契约检出目录冲突后继续执行完整验证。core 使用固定 docs 提交的正式契约;docs 入站 job token 允许列表仅添加 core 项目 37。新 MR 均待最终评审,Pages 尚未发布。