Merge pull request #2430 from pikasTech/feat/unidesk-devlevel
docs: 创建四级开发晋升 skill
This commit is contained in:
@@ -14,6 +14,11 @@ description: >-
|
||||
|
||||
HWLAB G14 和 AgentRun CI/CD 的受控入口。任何 PR 监控、Tekton/Argo、git-mirror、Secret、observability、CI tools image、PipelineRun 清理或 AgentRun 部署都必须走 `bun scripts/cli.ts`。
|
||||
|
||||
- 当任务按 `$unidesk-devlevel` 分级执行时:
|
||||
- 本 skill 负责 L2 Development 与 L3 Production 的自动交付、运行面证据和事故回退;
|
||||
- 不负责 L0 Function 或 L1 Native;
|
||||
- 不自行决定从 L2 晋升 L3。
|
||||
|
||||
## 高频入口
|
||||
|
||||
```bash
|
||||
|
||||
@@ -8,6 +8,10 @@ description: UniDesk 分布式敏捷开发流程,覆盖真实运行面探测
|
||||
|
||||
> 遵循规范: 本 Skill 遵循 [Skill(cli-spec)](file:///root/.agents/skills/cli-spec/SKILL.md) 规范(精简版,仅保留与流程相关的硬约束)。
|
||||
|
||||
- `$unidesk-devlevel` 定义正常开发的 L0-L3 等级和晋升证据:
|
||||
- 本 skill 只在某一级需要跨 host 观察、最小可逆实验、故障收敛或真实入口复测时接管现场闭环;
|
||||
- 不替代等级定义。
|
||||
|
||||
## DAD-DEV SPEC
|
||||
|
||||
- 流程与交付
|
||||
|
||||
@@ -0,0 +1,124 @@
|
||||
---
|
||||
name: unidesk-devlevel
|
||||
description: >-
|
||||
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 Worker`;`web-probe -> native Web` | 仅 native 进程与任务工作区 |
|
||||
| L2 | Development | `CLI -> dev K8s API -> dev Worker`;`web-probe -> dev Web` | 开发集群正常自动交付 |
|
||||
| L3 | Production | `CLI -> prod K8s API -> prod Worker`;`web-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-webdev` 的 `web-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-api`;Web 使用 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`,不得只给整体成功。
|
||||
|
||||
## 证据合同
|
||||
|
||||
- 每一级至少记录:
|
||||
- `level`、`project`、`sourceCommit`;
|
||||
- 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,也不把生产验证结果反向证明开发等级已经执行。
|
||||
- 不新增阻塞交付的全局配置一致性、合同或版本门禁。
|
||||
@@ -0,0 +1,4 @@
|
||||
interface:
|
||||
display_name: "UniDesk 开发等级"
|
||||
short_description: "按 L0 到 L3 编排 native、开发与生产晋升"
|
||||
default_prompt: "使用 $unidesk-devlevel 规划并执行当前功能从 L0 到目标等级的最短验证与晋升流程。"
|
||||
@@ -41,6 +41,7 @@ description: UniDesk SelfMedia 工厂的 YAML-first 运维技能,覆盖 NC01
|
||||
|
||||
## 相关技能
|
||||
|
||||
- SelfMedia 的 L0 Function、L1 Native、L2 Development 和 L3 Production 晋升使用 `$unidesk-devlevel`;本 skill 继续提供项目 adapter 和验收命令。
|
||||
- Secret/YAML 归属或 renderer 修改同时使用 `$unidesk-ymalops`。
|
||||
- PaC、Tekton、GitOps、Argo 或自动交付排障同时使用 `$unidesk-cicd`。
|
||||
- 跨节点现场闭环同时使用 `$unidesk-daddev` 与 `$unidesk-trans`。
|
||||
|
||||
@@ -126,6 +126,11 @@ trans NC01:k3s kubectl -n temporal get service temporal-frontend \
|
||||
|
||||
## Temporal 应用的 Native-first 闭环
|
||||
|
||||
- 使用 `$unidesk-devlevel` 表达应用晋升等级:
|
||||
- dispatcher/function 属于 L0;
|
||||
- native API、Worker 和 Web 属于 L1;
|
||||
- 开发集群 API/Worker/Web 属于 L2;
|
||||
- 同一不可变版本的生产晋升属于 L3。
|
||||
- 应用必须共享 contracts、repository、application dispatcher 和 Temporal contracts:
|
||||
- 本地 CLI 默认直接调用 dispatcher;
|
||||
- REST adapter 只处理 HTTP envelope、状态码、鉴权和 correlation;
|
||||
|
||||
@@ -7,6 +7,12 @@ description: UniDesk Web 开发与受控浏览器验证技能。用户提到 Web
|
||||
|
||||
本技能是 UniDesk/HWLAB Web 开发和受控浏览器复测的唯一入口,并遵循 Skill(cli-spec)。需求真相源仍是 `project-management/PJ2026-01/specs/`;本技能只规定如何开发、采集、复现和验收。
|
||||
|
||||
- 当任务按 `$unidesk-devlevel` 分级执行时:
|
||||
- L1 使用 custom/local 受控入口验证 native Web;
|
||||
- L2 使用 development semantic origin;
|
||||
- L3 使用 production semantic origin;
|
||||
- 本 skill 负责浏览器证据,不决定等级晋升。
|
||||
|
||||
## 快速规则
|
||||
|
||||
- Web、网页、前端、浏览器、网页登录、截图、移动端、响应式、视觉、smoke、E2E、fake-server、Workbench、Performance 和前端状态投影任务必须先用本技能。
|
||||
|
||||
@@ -33,6 +33,10 @@ description: UniDesk YAML-first 运维正规化技能。用户提到 ymal-first/
|
||||
|
||||
本技能用于推进 UniDesk 的 `ymal-first 正规化`:把运维参数、节点/lane/service 归属、公开暴露、Secret 绑定、容量/版本/endpoint 等可调事实收敛到 YAML;代码只负责读取、校验形状、渲染计划、执行薄的 domain CLI。
|
||||
|
||||
- `$unidesk-devlevel` 只消费 owning YAML 选择各级 adapter:
|
||||
- 本 skill 负责 target、lane、service、endpoint、SecretRef 和 semantic origin 的唯一归属;
|
||||
- 禁止为开发等级另建超级配置或在等级 skill 中复制运行事实。
|
||||
|
||||
历史收敛 issue `pikasTech/unidesk#390`、`#398` 和 `#401` 都是已关闭的阶段性收口记录,不是继续追加 Round 的长期队列。后续 YAML-first 工作必须先基于当前代码重新盘点;如果需要 broad cleanup,重新创建一个边界清晰的总 issue,并在实现前冻结不超过 5 个实际代码/配置功能阶段。测试、证据收集、门禁、issue lifecycle、看板维护或 docs-only 蒸馏不能包装成阶段。
|
||||
|
||||
## Required Reading
|
||||
|
||||
Reference in New Issue
Block a user