全新仓库与工作目录规划

状态:规划,尚未创建远端或初始化本地工程仓库。更新日期: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 已存在或名称可用。创建接口若返回重名,停止该仓库创建并请求用户提供一个明确的新名称;不得为确认冲突内容而读取、覆盖、删除或接续已有仓库。

初始化顺序

  1. 技术设计通过后,从新本地文件建立独立历史,不以旧仓库为 Git remote 起点。
  2. 按已批准 Git 规范创建新仓库、保护 main、准备逻辑 MR 与首提交 CI;此处只规划,不宣称用户已授权改动旧项目或 group 级设置。
  3. docs 当前保留 docs/specs 的相对路径;若发布仓库根直接对应现有 docs 内容,先设计稳定路径映射并批量验证引用,不静默移动导致规范中的路径失效。
  4. 依赖与构建产物不进版本控制。实验目录留在 draft,必要证据以文档归档,不能把 node_modules 或样例 provider 迁入产品当真实后端。
  5. 远端创建和初始推送作为后续独立阶段推进,不阻塞当前研究、契约和任务拆分。

[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 尚未发布。