Files
pikasTech-unidesk/.agents/skills/unidesk-devlevel/SKILL.md
T
2026-07-17 04:31:16 +02:00

7.1 KiB
Raw Blame History

name, description
name description
unidesk-devlevel UniDesk 四级开发、调试与部署晋升技能,统一编排 L0 Function、L1 Native、 L2 Development 和 L3 Production。用户提到 devlevel、开发等级、多级调试、 native-first、从本地到开发集群、从开发集群到生产集群、L0/L1/L2/L3、 逐级验证或版本晋升时使用。

UniDesk 开发等级

把同一功能从函数级验证逐级晋升到 native、开发集群和生产集群。只编排等级、证据和专项 skill,不建立新的测试框架、发布器或配置真相。

等级合同

等级 名称 调用路径 运行面写入
L0 Function CLI -> native function
L1 Native CLI -> native API -> native Workerweb-probe -> native Web 仅 native 进程与任务工作区
L2 Development CLI -> dev K8s API -> dev Workerweb-probe -> dev Web 开发集群正常自动交付
L3 Production CLI -> prod K8s API -> prod Workerweb-probe -> prod Web 生产集群正常版本晋升
  • 等级顺序固定为 L0 -> L1 -> L2 -> L3
  • 不定义隐藏等级、Package 等级或 L2.5 门禁。
  • 可以按用户要求单独执行某一级;未执行的级别必须显示为 not-run,不能伪装成通过。
  • 晋升只能复用同一 source commit 或可证明内容等价的不可变制品证据。

通用原则

  • 保持同一验证意图:
    • 领域输入、预期结果和业务断言在各级保持一致;
    • 只替换 function、native transport、development transport 或 production transport
    • CLI 与 Web 必须访问同一 dispatcher 和业务状态,不建立第二业务路径。
  • 使用项目适配器:
    • 项目仓库的 AGENTS.md、owning YAML、正式 CLI 和领域 skill 决定实际命令;
    • target、lane、namespace、service、endpoint、SecretRef、semantic origin 和 release source 不得写死在本 skill
    • 一个项目只启动或发布本次受影响的微服务及其必要依赖。
  • 复用已成立证据:
    • 证据必须绑定项目、source commit、等级、target 和测试身份;
    • 相同身份的成功证据仍有效时不重复执行;
    • 代码、配置、制品或目标发生变化时,只失效受影响等级及其后续等级。
  • 控制晋升:
    • 当前级的目标功能失败时停止向后晋升,先在当前或更低等级修复;
    • 非选中对象、全局一致性和版本漂移只作为 blocking=false warning
    • 缺少目标唯一性、权限或不可变版本身份时,在运行面写入前 fail-closed
    • 未明确要求生产发布时,不从 L2 自动进入 L3。

L0 Function

  • 不启动 API、Worker、Temporal、Web 或 Kubernetes workload。
  • 用项目 CLI 直接调用 native function、dispatcher、repository 或本地执行器。
  • 只运行与修改相关的最小语法、函数或组件 smoke。
  • 长任务可以使用本地 submit-and-poll,但不得为了 L0 启动 HTTP 服务。
  • 通过条件:目标函数返回预期结果,且未依赖未声明的远端服务路径。

L1 Native

  • 独立启动受影响微服务的 native API、Worker、基础依赖和 HMR Web。
  • CLI 显式使用项目 native --over-api transport,经 native API 调用同一 dispatcher 和 Worker。
  • Web 只通过 $unidesk-webdevweb-probe custom/local 入口访问 native Web。
  • 前端、API 和 Worker 必须可分别启动、查看状态与日志、重启和停止。
  • 优先复用仍在运行的 native 服务,不为每轮修改重复安装依赖或重启无关组件。
  • 通过条件:CLI native API 链路、Worker 终态和目标 Web DOM/交互均满足同一业务断言。

L2 Development

  • 只通过项目 source PR merge 和 $unidesk-cicd 声明的正常自动链滚动开发集群。
  • 禁止人工创建 PipelineRun、直接推送镜像、Argo sync、GitOps patch 或运行面补链。
  • CLI 显式使用开发集群 --over-api,验证 dev K8s API、Worker 和真实作业。
  • Web 通过 $unidesk-webdev 和 owning YAML 选择的 development semantic origin 验证。
  • 运行面故障或证据冲突时使用 $unidesk-daddev 分层定位,不用反复 rollout 试错。
  • 通过条件:自动链成功、不可变 source/artifact identity 对齐、开发 workload ready,且 CLI/Web 原入口通过。

L3 Production

  • 只晋升已经通过 L2 的同一不可变版本;不得在 L3 临时重建或替换源码。
  • 生产 branch、tag、target、namespace、入口和晋升方式只从项目 owning YAML 与发布 skill 读取。
  • 生产写入必须来自用户明确的 L3/生产发布要求,不从普通修复或 L2 验收推断授权。
  • CLI 使用生产 --over-apiWeb 使用 production semantic origin。
  • 默认执行只读或专用生产安全 smoke,不生成无法清理的正式业务数据。
  • 生产事故遵循 $unidesk-cicd 的优先回退规则,不在失败版本上连续叠加试修。
  • 通过条件:生产自动链、不可变版本、runtime health 和生产 CLI/Web 原入口全部成立。

执行流程

  1. 识别项目、source commit、当前等级、目标等级和受影响微服务。
  2. 从项目 owning YAML 和领域 skill 解析每一级的 adapter 与运行目标。
  3. 输出等级计划:
    • 每级的调用路径;
    • 必要依赖和运行面写入;
    • 可复用证据;
    • 通过条件与停止条件。
  4. 从最低必要等级开始执行;已有同身份证据时复用,不机械重跑前级。
  5. 每级完成后记录有界证据,再决定继续、停止或请求生产授权。
  6. 最终报告每级 passed|failed|blocked|not-run,不得只给整体成功。

证据合同

  • 每一级至少记录:
    • levelprojectsourceCommit
    • target/lane 或 native workspace
    • CLI/Web 入口与同路径证明;
    • job/workflow/trace、artifact 或 screenshot identity
    • 开始时间、结束时间和墙钟耗时;
    • passed|failed|blocked|not-run 与首个失败层。
  • 统计 native 加速时同时记录 native 迭代次数和正式 delivery 次数。
  • 没有同类基线时只报告减少的构建、rollout 和等待步骤,不虚构提速比例或费用。

专项 skill 路由

  • L0/L1 的跨 host、临时实验和真实运行面定位使用 $unidesk-daddev$unidesk-trans
  • L1/L2/L3 的所有浏览器操作使用 $unidesk-webdev
  • L2/L3 的 PaC、Tekton、GitOps、Argo、rollout 和版本回退使用 $unidesk-cicd
  • 等级 adapter 的 target、lane、endpoint、SecretRef 和 semantic origin 归属使用 $unidesk-ymalops
  • Temporal workflow、activity、task queue 和 native Worker 使用 $unidesk-temporal
  • 项目专属命令继续读取项目领域 skill;例如 SelfMedia 使用 $unidesk-selfmedia

禁止事项

  • 不把 $unidesk-devlevel 实现成新的全局发布 orchestrator。
  • 不复制专项 skill 的完整命令或维护第二份 target 配置。
  • 不用 L0/L1 结果替代 L2/L3 的 revision、runtime 和公网证据。
  • 不用 L2 结果冒充 L3,也不把生产验证结果反向证明开发等级已经执行。
  • 不新增阻塞交付的全局配置一致性、合同或版本门禁。