---
name: unidesk-selfmedia
description: UniDesk SelfMedia 工厂的 YAML-first 运维技能，覆盖 NC01 生产 Secret 分发与消费者生效、GitHub 到 Gitea/PaC/Tekton/GitOps/Argo 自动交付、WebTerm/Codex 权限边界、公网 IP 健康与登录鉴权验收。用户提到 SelfMedia、自媒体工厂、selfmedia-nc01、管理员账号密码更新、WebTerm、微信公众号文章、4317 公网入口、SelfMedia 部署或流水线运维时使用。
---

# UniDesk SelfMedia 运维

遵循 `Skill(cli-spec)`，只通过 UniDesk owning YAML 和受控 CLI 操作 NC01 运行面。

## 固定边界

- 把 `config/selfmedia.yaml` 作为部署、存储、运行时、权限和公网暴露真相。
- 把 `config/secrets-distribution.yaml` 作为管理员凭据、API key、Codex 凭据和消费者 rollout 真相。
- 把 `config/platform-infra/pipelines-as-code.yaml` 与 `config/platform-infra/gitea.yaml` 作为自动交付真相。
- 通过 `trans NC01:<workspace>` 在 NC01 选中的最新干净 UniDesk worktree 执行命令。
- 只披露 sourceRef、键名、presence、fingerprint、字节数和步骤摘要；不得读取、打印或从运行面反解 Secret 值。
- SelfMedia 源码交付只由 `pikainc/selfmedia` PR merge 触发；不得人工创建 PipelineRun、推送 Gitea、刷新 Argo 或 patch 运行时。

## 高频流程

1. SelfMedia Web 源码改动纳入 Git index 后，只执行一次仓库自带验证入口：
   - `trans NC01:/root/.worktrees/selfmedia/<task> argv bun run verify:web`；
   - 该入口根据 `package.json` 与 `bun.lock` 自动安装或复用根目录和 Web 依赖；
   - 同一次调用依次完成 Web 测试、生产构建和 `git diff --check HEAD`；
   - 禁止先探测 `node_modules`、手工安装依赖，再分别重复上述校验。
2. 管理员凭据更新时，按[运维入口](references/operations.md#管理员凭据分发)依次执行 `plan`、`sync`、job 查询和 `status`。
3. 确认 `selfmedia-nc01` 的 `consumerRollout` 已声明 `selfmedia` Deployment；应用启动时读取 Secret，缺少 rollout 不能判定新凭据已生效。
4. 代码发布只观察 PR merge 后的自动 PaC/GitOps 收敛；只有自动链失败时才下钻 status/history/debug-step。
5. 最后从 YAML 解析公网地址，验证 `/` 与 `/healthz` 可达、匿名业务 API 返回 `401`，再用用户提供的新账号完成登录。
6. Temporal/native 开发与部署态作业验收直接使用[运维入口](references/operations.md#temporal-native-与部署态验收)：
   - 正确的单阶段语法固定为 `step run <阶段>`；
   - 不先查源码或试探别名。

## 验收判定

- Secret 同步结果必须为 `succeeded`、`valuesPrinted=false`，并且消费者 restart/status 均为 `exitCode=0`。
- `secrets status` 必须确认 `selfmedia-access`、`selfmedia-runtime`、`selfmedia-codex` 的声明键完整。
- WebTerm 必须保留 PVC session、restart/resume、统一 SelfMedia CLI 与非 root、无 ServiceAccount token/Kubernetes/Docker/宿主权限边界。
- 公网验收只记录 HTTP 状态、session/job/trace、fingerprint 和 artifact SHA，不记录 cookie、账号、密码或 API key。
- `verify:web` 只负责源码层依赖准备、Web 测试、生产构建和差异格式检查；浏览器、公网、鉴权、WebTerm 与 PaC/Argo 运行面验收仍按任务范围执行。

## 相关技能

- SelfMedia 使用 `$unidesk-devlevel` 区分 L0 Function、L1 Native、L2 Development 和 L3 Production 四种开发方式；本 skill 继续提供项目 adapter 和验收命令。
- Secret/YAML 归属或 renderer 修改同时使用 `$unidesk-ymalops`。
- PaC、Tekton、GitOps、Argo 或自动交付排障同时使用 `$unidesk-cicd`。
- 跨节点现场闭环同时使用 `$unidesk-daddev` 与 `$unidesk-trans`。
- 公网页面、布局或浏览器原入口验收同时使用 `$unidesk-webdev`。

## 详细入口

- 凭据分发、源码侧制品刷新、自动交付、Temporal/native 作业和公网验收命令见[运维入口](references/operations.md)。
