This skill teaches OpenClaw agents (龙虾) how to submit pull requests to BlueFocusContentUniverse/catl_harness_repo — the CATL knowledge-engineering harness repo (蓝标内容宇宙组织下,2026-05-08 起取代旧的 Dr-xiaoming/catl_harness_repo 个人仓)。 Treat it as a versioned knowledge base, not a code base: every PR is a deliberate, sourceable knowledge increment.
这是这份 skill 最重要的章节。所有蓝标龙虾在执行任何宁德/项目类任务前,先停 30 秒走一遍这三步,再动手:
下面这些场景不要重新造,直接装现成 skill:
| 任务关键词 | 用哪个 skill | 安装命令 |
|---|---|---|
| --- | --- | --- |
| 提交知识 / 沉淀经验 / 入档仓库 | catl-harness-pr(就是当前这个) | clawhub install catl-harness-pr |
| 选模型 / 哪个便宜 / 子 agent 模型 / cron 模型 | bluefocus-model-routing | clawhub install bluefocus-model-routing |
| 出图 / 画一张 / moodboard / 配图 / nano banana | blueai-nano-banana | clawhub install blueai-nano-banana |
| 上传文件 / 拿公网 URL / 图片云存储 | blueai-media-storage | npx blueai-skills@latest add blueai-media-storage -a openclaw -y |
| 抖音搜账号 / 关键词 → 账号 + 视频 + 粉丝数 | blueai-douyin-account-discovery | npx blueai-skills@latest add blueai-douyin-account-discovery -a openclaw -y |
| 微信视频号搜索 / 视频列表 / 评论 / 下载 | blueai-smd-wechat-channels | npx blueai-skills@latest add blueai-smd-wechat-channels -a openclaw -y |
| 小红书 / 抖音 / B 站 / 微博 / 公众号采集 | blueai-social-media-data(底座) | npx blueai-skills@latest add blueai-social-media-data -a openclaw -y |
| 飞书 Wiki 写入 / 客户档案沉淀 | catl-wiki | (已装) |
| 找现有 skill | find-skills | (已装,调 find-skills 关键字搜) |
强行规则:每次使用上面任意 skill 之前,必须先 clawhub update --all 同步最新版本。
如果是宁德 / 客户认知 / 项目方法论相关任务,先看 catl_harness_repo 里有没有相关 layer,不要从零开始:
REPO=~/.openclaw/workspace/repos/catl_harness_repo
cd "$REPO" && git pull --ff-only
ls 01-knowledge/ 02-skills/ 03-projects/ 04-daily/ 99-meta/ 2>/dev/null
grep -ri "<关键词>" 01-knowledge/ 02-skills/ # 比如 grep "神行" "安全叙事" "竞品"
找到了 → 拿来用,干完后把增量沉淀回去走 PR(见 Phase A-E)。
找不到 → 干,干完后把这次的产物按规范沉淀回去走 PR。
用 bluefocus-model-routing skill 的决策表:
gpt5.5v4prov4flashsonnetopus(慎用,贵)反模式:所有任务无脑跟主 session 默认 → 子 agent 跟着用 opus → 月成本翻 10 倍。
任务来 → ① 已有 skill 吗? → ② 已有知识吗? → ③ 选对模型吗? → 才开始动手
clawhub update --all git pull harness repo bluefocus-model-routing
鉴权 / API key 任何问题 → 联系金明 (@Dr-xiaoming),不要自己改 token,不要自己尝试绕过。
This skill supports two PR submission modes, auto-detected by preflight.sh:
| Mode | Used when | How |
|---|---|---|
| --- | --- | --- |
fork (default) | 你的 GitHub 账号对原仓库没有 write 权限 | Fork → push to fork → cross-repo PR |
legacy | 你的 GitHub 账号对原仓库有 write 权限(金明本人 / 组织 maintainer) | 直接在原仓库切分支 push → 同仓库 PR |
探测命令:gh api repos/BlueFocusContentUniverse/catl_harness_repo --jq .permissions.push
true → legacy 模式false 或调用失败 / 没 gh → fork 模式强制覆盖:设 CATL_HARNESS_PR_MODE=fork 或 CATL_HARNESS_PR_MODE=legacy 环境变量。
> Fork 模式是默认且未来主流。绝大多数龙虾对组织里的 private repo 只有 read 权限,fork + PR 是唯一可行路径。
https://github.com/BlueFocusContentUniverse/catl_harness_repoBlueFocusContentUniverse (蓝标内容宇宙)Dr-xiaoming,GitHub 个人账号) — BlueFocus 宁德时代项目组 产研组 FDE~/.openclaw/workspace/repos/catl_harness_repoorigin → https://github.com//catl_harness_repo.git (your fork, push 用)upstream → https://github.com/BlueFocusContentUniverse/catl_harness_repo.git (read-only sync)origin → https://github.com/BlueFocusContentUniverse/catl_harness_repo.git (单 remote)catl-wiki skill). Feishu 是协作权威副本,GitHub 是版本/diff/审阅可追溯副本。两边都要同步时:先 Feishu 定稿,再 PR 到 GitHub。main。所有改动走 feature branch + PR,即使是 typo。internal-analysis/ 或 frontmatter tags: [bluefocus-pov],不要混入 layer1-client-cognition/。@Dr-xiaoming 确认方向。龙虾接到"向 harness 仓库提 PR"任务时,第一个动作是跑这个门禁。任一项失败,停下来向用户报告缺什么,不要硬往下走。
bash ~/.openclaw/workspace/skills/public/catl-harness-pr/scripts/preflight.sh
# 干跑(不真改 remote、不真创建 fork、只打印命令):
bash ~/.openclaw/workspace/skills/public/catl-harness-pr/scripts/preflight.sh --dry-run
preflight.sh 自动完成:
CATL_HARNESS_PR_MODE 覆盖)凭证模型(重要):
凭证缺失时的硬规则:
~/.netrc 或用 gh auth login。~/.openclaw/.env 体系,先查是否已存了 GitHub 凭证(grep GITHUB_ ~/.openclaw/.env);但不要自己往 .env 里写新 token,让人类用户自己写。这一步就是"每次修改前同步远程"的硬性要求。preflight.sh 已经把 fork/legacy 两种路径都内置了。
手动版(fork 模式):
REPO=~/.openclaw/workspace/repos/catl_harness_repo
GH_USER="<your-github-username>"
UPSTREAM_URL="https://github.com/BlueFocusContentUniverse/catl_harness_repo.git"
FORK_URL="https://github.com/${GH_USER}/catl_harness_repo.git"
# B1. 确保 fork 存在(用 gh 时幂等)
if command -v gh >/dev/null; then
gh repo view "${GH_USER}/catl_harness_repo" >/dev/null 2>&1 \
|| gh repo fork BlueFocusContentUniverse/catl_harness_repo --clone=false --remote=false
else
# 没 gh:让用户在浏览器开 fork
echo "Open: https://github.com/BlueFocusContentUniverse/catl_harness_repo/fork"
echo "Fork 完成后回来继续。"
fi
# B2. Clone or migrate local
if [ ! -d "$REPO/.git" ]; then
git clone "$FORK_URL" "$REPO"
cd "$REPO"
git remote add upstream "$UPSTREAM_URL"
else
cd "$REPO"
# 兼容存量:如果 origin 还指向 upstream,迁移
current_origin=$(git remote get-url origin)
if [ "$current_origin" = "$UPSTREAM_URL" ] || [ "$current_origin" = "https://github.com/BlueFocusContentUniverse/catl_harness_repo" ]; then
git remote rename origin upstream
git remote add origin "$FORK_URL"
fi
# 确保 upstream 存在
git remote get-url upstream >/dev/null 2>&1 || git remote add upstream "$UPSTREAM_URL"
fi
# B3. 同步 main: upstream → local → fork
git fetch upstream --prune
git fetch origin --prune
git checkout main
git pull --ff-only upstream main
git push origin main # 让 fork 的 main 跟上 upstream
手动版(legacy 模式,仅限对原仓库有 write 的账号):
REPO=~/.openclaw/workspace/repos/catl_harness_repo
cd "$REPO"
git fetch origin --prune
git checkout main
git pull --ff-only origin main
关键理解:Phase B 不是 Phase A 的延续,而是每次开工前都跑一遍的独立门禁。即使 10 分钟前刚跑过,也要重跑——别的协作者可能刚刚合了 PR。
# C1. 从最新的 main 切新分支(分支名见 references/branch-naming.md)
git checkout -b layer1/client-cognition-update-20260508
# C2. 进行实际修改 —— 只改 markdown,除非明确要求
# (edit files here)
# C3. 本地 review
git status
git diff --stat
git diff | head -200 # 眼过一遍实际内容
# C4. 如果看到 .DS_Store / IDE 文件 / 个人笔记 / 原始 chat 记录 — 立刻清
# git restore --staged <file> 或 把它加进 .gitignore
git add <specific-files> # 不要 git add .,容易带脏文件
git commit -m "layer1(client-cognition): 补充 Q2 神行品牌叙事差异化要点
- 来源: 2026-05-06 虞旸定稿 draft-v2 + 5/3 客户访谈
- 影响范围: layer1/客户认知底座.md 第 3 节
- 审阅人: @Dr-xiaoming"
Commit message 规则完整版见 references/commit-style.md。必须带「来源 / 影响范围 / 审阅人」三段。
# E1. 推送前再 fetch upstream 一次,确认 main 没变化(很快)
git fetch upstream main
behind=$(git rev-list --count HEAD..upstream/main)
if [ "$behind" -gt 0 ]; then
echo "⚠️ upstream/main 在我干活期间前进了 $behind 个 commit,考虑 rebase:"
echo " git rebase upstream/main"
fi
# E2. Push feature branch 到自己的 fork(origin)
git push -u origin "$(git branch --show-current)"
# E3. 写 PR body 到 /tmp/pr-body.md(模板见下节)
# E4. 开跨仓库 PR(关键参数:--head <user>:<branch>)
GH_USER="<your-github-username>"
BRANCH=$(git branch --show-current)
if command -v gh >/dev/null; then
gh pr create \
--repo BlueFocusContentUniverse/catl_harness_repo \
--base main \
--head "${GH_USER}:${BRANCH}" \
--title "layer1(client-cognition): 补充 Q2 神行品牌叙事差异化" \
--body-file /tmp/pr-body.md \
--reviewer Dr-xiaoming
else
# 没 gh → 浏览器开跨仓库 compare
echo "请在浏览器打开:"
echo "https://github.com/BlueFocusContentUniverse/catl_harness_repo/compare/main...${GH_USER}:catl_harness_repo:${BRANCH}?expand=1"
echo "把 /tmp/pr-body.md 的内容粘进 description。"
fi
# E1. 推送前再 fetch
git fetch origin main
behind=$(git rev-list --count HEAD..origin/main)
if [ "$behind" -gt 0 ]; then
echo "⚠️ main 在我干活期间前进了 $behind 个 commit,考虑 rebase:"
echo " git rebase origin/main"
fi
# E2. Push 新分支到原仓库
git push -u origin "$(git branch --show-current)"
# E3. 开同仓库 PR
if command -v gh >/dev/null; then
gh pr create \
--title "layer1(client-cognition): 补充 Q2 神行品牌叙事差异化" \
--body-file /tmp/pr-body.md \
--base main \
--reviewer Dr-xiaoming
else
branch=$(git branch --show-current)
echo "请在浏览器打开:"
echo "https://github.com/BlueFocusContentUniverse/catl_harness_repo/compare/main...${branch}?expand=1"
fi
写到 /tmp/pr-body.md,是每个 harness PR 的合同:
## What
<!-- 一句话说明这次 PR 改了什么。不要写「更新文档」这种废话。 -->
## Why / Source
<!-- 必填。这次知识增量从哪里来? -->
- 来源类型: [ ] 会议纪要 / [ ] 客户访谈 / [ ] 外部资料 / [ ] 内部讨论 / [ ] 二次提炼 / [ ] 我的判断
- 时间: 2026-XX-XX
- 关联资料: (Feishu 链接 / 文件路径 / 会议名)
## Scope of impact
- 影响 Layer: [ ] L1 客户认知 / [ ] L2 行业认知 / [ ] L3 项目方法论 / [ ] SOP / [ ] 其他
- 下游引用: (列出会用到这份知识的 agent / skill / 任务)
## Sensitive content check
- [ ] 没有甲方原话 / 内部敏感措辞
- [ ] 没有把蓝标主观判断写成「客户立场」
- [ ] 客户/竞品名字处理符合 Layer 1 红线
## Reviewers
- [ ] @Dr-xiaoming (默认必审)
- [ ] (可选) 业务侧第二审阅人
Default reviewer 永远是 @Dr-xiaoming。第二审阅人仅在跨业务域时加。
git checkout main && git pull --ff-only upstream main && git push origin main 把 fork 的 main 同步上来。蓝标产研组 / 龙虾团队封装的 skills 清单。每次使用前先向 ClawHub 同步最新版本:
clawhub update --all
如果使用过程中遇到鉴权问题(API key 失效、403、401、token 过期等),联系金明 (@Dr-xiaoming),不要自己尝试改 token。
| Skill | 版本 | 功能 | 安装命令 |
|---|---|---|---|
| --- | --- | --- | --- |
bluefocus-model-routing | v0.1.0 | 任务前必读——蓝标场景实战模型路由策略,6 类任务决策表,子 agent / cron / 主 session 三场景细分,含真实失败案例 | clawhub install bluefocus-model-routing |
blueai-douyin-account-discovery | v1.0.1 | 抖音关键词搜索 → 账号发现 + 视频列表 + 粉丝数回填(TikHub 底层) | npx blueai-skills@latest add blueai-douyin-account-discovery -a openclaw -y |
blueai-social-media-data | unversioned (底座) | 小红书/抖音/B站/微博/微信公众号/视频号 共 10 种模式的数据采集底座,被其他 skill 委托调用 | npx blueai-skills@latest add blueai-social-media-data -a openclaw -y |
blueai-smd-wechat-channels | v1.0.0 | 微信视频号专用入口(搜账号/视频列表/评论/搜一搜/下载),依赖 social-media-data 底座 | npx blueai-skills@latest add blueai-smd-wechat-channels -a openclaw -y |
blueai-media-storage | 2026-05-21 上线 | 上传本地文件到蓝标云存储(火山/腾讯/阿里/GCP),拿公网 URL,用于项目里直接 src 引用 | npx blueai-skills@latest add blueai-media-storage -a openclaw -y |
blueai-nano-banana | v0.1.0 | 调用 BlueAI relay 的 Nano Banana / Gemini image preview 模型生图(Python 一行命令出 PNG,自动读 ~/.openclaw/.env 里的 BLUEAI_RELAY_KEY) | clawhub install blueai-nano-banana |
两套 CLI 区别:
npx blueai-skills@latest ... → 蓝标内部 BlueAI Skills Market(host: https://blueai-skills-market.bluemediagroup.cn/)clawhub ... → ClawHub 公共/私有 skill 仓升级红线(来自 wechat-channels 官方告警):
npx blueai-skills update——会替换工作目录代码为软链接,本地修改丢失clawhub update --all 走 ClawHub 路径,或对 BlueAI skills 用 add 重新安装catl-wiki 或 feishu-doc skill。obsidian-openclaw-sync skill。业务龙虾装上 skill 后,自动注册 3 条 cron 实现每日工作总结自动化闭环。
| 时间 | 脚本 | 功能 |
|---|---|---|
| ------ | ------ | ------ |
| 01:00 | daily-summarize.sh | 收集昨日数据 → v4flash 分类 → 脱敏 → 生成 MD → 提交 PR |
| 03:00 | preflight.sh --sync-only | 同步 catl_harness_repo 上游 |
| 07:00 | check-update.sh | 检查 skill 更新 → 有则飞书通知 |
bash ~/.openclaw/workspace/skills/public/catl-harness-pr/scripts/install-cron.sh
交互式流程:输入拼音名 → 飞书 open_id → 自动探测 GitHub username → 写入 .env → 注册 cron → 提示 lark-cli auth login --as user
memory/YYYY-MM-DD.md ─┐
飞书消息 (lark-cli) ─┼─→ filter-catl.py (v4flash) ─→ sanitizer.py (三档) ─→ 04-daily/individual/<pinyin>/YYYY-MM-DD.md ─→ PR
妙记纪要 (lark-cli) ─┘
| 级别 | 行为 | 示例 |
|---|---|---|
| ------ | ------ | ------ |
| high | 拒交,存 local-only/ | 甲方原话、未公开决策、吐槽客户 |
| medium | 替换措辞 + ⚠️ label | 客户偏好、内部讨论 |
| normal | 直通 | 普通工作记录 |
详见 references/sensitivity-rules.md。
# 干跑(不真发 PR)
bash scripts/daily-summarize.sh --dry-run --date 2026-05-14
# 单独测试分类器
python3 scripts/filter-catl.py --dry-run --input "今天修了龙虾的 bug"
# 单独测试脱敏器
python3 scripts/sanitizer.py --input /tmp/test.md --sensitivity medium --dry-run
memory/ 是否有日志、filter-catl.py 是否判 is_catl=falselark-cli auth login --as user 已完成preflight.sh 检查认证openclaw cron list + openclaw cron runs --id 详见 references/daily-pipeline.md。
scripts/preflight.sh — 一键跑 Phase A + Phase B 门禁(双模式自动探测,支持 --dry-run 和 --sync-only)scripts/setup-fork.sh — 独立的 fork 创建/远程配置脚本(preflight 会调用,也能单跑)scripts/daily-summarize.sh — v0.4.0 新增 每日自动总结 + PR 主脚本scripts/filter-catl.py — v0.4.0 新增 v4flash LLM 二分类器scripts/sanitizer.py — v0.4.0 新增 三档脱敏器scripts/check-update.sh — v0.4.0 新增 skill 自更新检查scripts/install-cron.sh — v0.4.0 新增 首次安装向导references/branch-naming.md — 分支命名规则表references/commit-style.md — commit message 风格与反模式references/auth-setup.md — gh / HTTPS+PAT / SSH 三种认证路径详解(fork & legacy 模式 PAT scope 区别)references/repo-layout.md — 仓库目录结构与知识归类速查references/daily-pipeline.md — v0.4.0 新增 cron 详细机制 + 故障排查references/sensitivity-rules.md — v0.4.0 新增 三档脱敏规则案例references/pinyin-naming.md — v0.4.0 新增 拼音命名规则 + 已知清单重大新增:业务龙虾任务前自检流程
bluefocus-model-routing skill 引用,作为 Step 3 模型选择的依据bluefocus-model-routing 条目clawhub update --all 同步」的硬性要求blueai-nano-banana v0.1.0 同步发布到 ClawHub修复
filter-catl.py prompt 重写:加 7 个 few-shot 示例、明确 CATL 项目子线范围(ESVL/储能/Tech Day/海外早报/媒体库等)、创建「字面凭证 vs 描述凭证流程」边界。验证集上 5/18 ESVL、5/19 媒体库、5/20 harness 部署全部判对install-cron.sh 适配 OpenClaw 2026.5.x 的 cron 接口(--cron/--message/--session,旧 flag --schedule/--task-file 已不可用)依赖变动
99-meta/sanitizer/sensitive-terms.v1.1.yaml(在 catl_harness_repo 里同步发 PR 合入)新增: Daily Auto-Pipeline
daily-summarize.sh: 每日自动收集数据源 → v4flash 分类 → 脱敏 → 生成 MD → 提交 PRfilter-catl.py: v4flash LLM 二分类器(is_catl / is_toxic / sensitivity)sanitizer.py: 三档脱敏器(high 拒交 / medium 替换 / normal 直通)check-update.sh: skill 自更新检查 + 飞书通知install-cron.sh: 首次安装向导(拼音名 + cron 注册 + lark-cli 认证提示)preflight.sh 新增 --sync-only flag(只跑 Phase B 同步,跳过 Phase A 环境检查)daily-pipeline.md, sensitivity-rules.md, pinyin-naming.md数据源: memory/YYYY-MM-DD.md + 飞书消息 (lark-cli) + 妙记纪要 (lark-cli)
输出: 04-daily/individual/,超 50KB 自动切分
Dr-xiaoming/catl_harness_repo → BlueFocusContentUniverse/catl_harness_repopreflight.sh 双模式自动探测setup-fork.sh 独立 fork 管理脚本共 4 个版本