Compare commits

...

3 Commits

Author SHA1 Message Date
Kaden Lau
6b72c23f4a Add Atlas quickstart guide
Co-authored-by: multica-agent <github@multica.ai>
2026-05-09 18:31:52 +08:00
Atlas refactor
bd0be97630 Refactor: drop Vega framing, promote Atlas to repo root
This repo IS Atlas (总助 Claw / 老板视角项目执行雷达). The earlier
two-profile framing (Atlas + Vega placeholder) was a misread — Vega is
the agent persona answering Multica issues, not the product. Vega has
no relationship to assistant-claw the product.

Changes:
- Move atlas/* to top-level (git mv preserves history)
- Remove empty Vega placeholders prompts/.gitkeep, tools/.gitkeep
- Delete atlas/ wrapper directory (now empty)
- Update path references in INTEGRATION-hermes.md, scripts/mirror-...sh,
  docs/decisions/0001-mirror-nuwa-skill.md
- Rewrite README.md as Atlas-only, remove dual-profile language

After this commit:
- Top-level OpenClaw 8 files (IDENTITY/SOUL/USER/AGENTS/TOOLS/MEMORY/
  BOOTSTRAP/HEARTBEAT + CLAUDE symlink + zh-CN mirrors)
- skills/{6 sub-skills + DESCRIPTION + README}
- mcp-tools/{spec + Python implementation}
- state-schemas/{project, person, customer + README}
- autopilots/{5 atlas-*.yaml}
- client-deck/, docs/decisions/, scripts/

The ~/.hermes/skills/atlas/ destination convention preserved (atlas as
a skill namespace on the operator's machine, distinct from source path).
2026-05-09 17:54:18 +08:00
Vega (Atlas iteration)
04e197c896 Hermes-compatible skill format + nuwa mirror prep + README rewrite
Three things in this commit:

1. Atlas skills now agentskills.io / Hermes-compatible
   - Each atlas/skills/claw-*/SKILL.md frontmatter enriched with version,
     author, license, and metadata.hermes block (tags, category,
     related_skills, boundaries)
   - New atlas/skills/DESCRIPTION.md per Hermes category convention
   - New atlas/INTEGRATION-hermes.md — step-by-step SOP to install Atlas
     onto hermes-agent runtime (cp skills, fetch nuwa upstream, configure
     env, wire cron, smoke test). Documents the branding override and
     self-improving-loop guardrail.

2. nuwa-skill mirror prep (waiting on org-repo creation)
   - scripts/mirror-nuwa-to-moments.sh — one-shot bare-clone + push --mirror
   - docs/decisions/0001-mirror-nuwa-skill.md — ADR explaining the why,
     the bot-token scope limitation, and the manual one-time repo creation
     step required at https://git.moments.top/repo/create

3. README rewrite
   - Atlas-forward navigation table ("想做什么 → 看哪里")
   - Quickstart sections for browsing, running tests locally, fetching
     nuwa upstream (public + air-gapped variants), and Hermes integration
   - Preserved all original Vega working agreements
   - Roadmap with explicit Atlas / Vega tracks

Bot account (multica-bot) lacks write:organization scope so cannot create
the nuwa-skill repo via API. After human creates the empty repo at
git.moments.top/Moments.top/nuwa-skill, run scripts/mirror-nuwa-to-moments.sh
to populate it.
2026-05-09 17:21:31 +08:00
63 changed files with 816 additions and 106 deletions

122
INTEGRATION-hermes.md Normal file
View File

@ -0,0 +1,122 @@
# Hermes Agent Integration
Atlas can run on **[hermes-agent](https://github.com/NousResearch/hermes-agent)**
(MIT, by Nous Research) as the host runtime. Hermes provides exactly what Atlas
needs: agentskills.io-compatible skill loader, cron scheduler, MCP client,
multi-platform delivery (incl. email/feishu/dingtalk), session memory + FTS5,
and subagent delegation.
This doc tells the operator how to install Atlas on top of Hermes in ≤ 30 minutes.
## What you need
- Hermes installed: `curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash`
- Python 3.10+ (for `atlas-extractor` MCP wrapper)
- This repo (`assistant-claw`) cloned
## Step 1 — Drop Atlas skills into Hermes skills dir
```bash
# Hermes scans ~/.hermes/skills/ on startup
mkdir -p ~/.hermes/skills/atlas
cp -r skills/* ~/.hermes/skills/atlas/
# Check Hermes sees them
hermes skills list | grep claw-
```
Each `claw-*/SKILL.md` already has the agentskills.io-compatible frontmatter
(`name`, `description`, `version`, `author`, `license`, `metadata.hermes.*`)
so Hermes recognizes them immediately.
## Step 2 — Fetch the nuwa-skill upstream once
```bash
# Public deployment
git clone --depth 1 https://github.com/alchaincyf/nuwa-skill.git \
~/.hermes/skills/atlas/claw-boss-distiller/upstream
# Air-gapped deployment (after Moments mirror is up — see ADR-0001)
git clone --depth 1 https://git.moments.top/Moments.top/nuwa-skill.git \
~/.hermes/skills/atlas/claw-boss-distiller/upstream
```
## Step 3 — Install atlas-extractor as an MCP server (TBD code)
The `mcp-tools/email-extractor/` Python package currently exposes a CLI
(`atlas-extract`). Wrapping it as an MCP server is V0.5 work; until then
Hermes can call the CLI via Bash.
```bash
cd mcp-tools/email-extractor
python -m venv .venv
.venv/bin/pip install -e '.[test]'
.venv/bin/pytest -q # confirm 7/7 passing
```
## Step 4 — Configure the boss's email account
```bash
hermes env set BOSS_EMAIL boss@clientco.com
hermes env set ATLAS_IMAP_HOST imap.clientco.com
hermes env set ATLAS_IMAP_USER atlas-readonly@clientco.com
hermes env set ATLAS_IMAP_PASSWORD <app-password> # never main password
hermes env set ATLAS_STATE_DIR ~/.atlas/state
```
## Step 5 — Wire the autopilots into Hermes cron
Atlas's 5 autopilot YAMLs live in `autopilots/atlas-*.yaml`. Translate each
into Hermes natural-language cron:
```bash
hermes cron add "every day 7:30" "Run Atlas daily-brief skill"
hermes cron add "every monday 8:00" "Run Atlas weekly-rollup skill"
hermes cron add "every month on 1st 9:00" "Run Atlas monthly customer-health skill"
hermes cron add "every quarter on 1st 10:00" "Run Atlas boss_skill quarterly refresh"
```
Andon (event-triggered) is set up via `hermes hooks add` once Atlas writes a
sentinel file like `~/.atlas/state/runs/_andon_pending.flag`.
## Step 6 — Smoke test
```bash
# Manually invoke claw-boss-distiller on the demo input
hermes "Run claw-boss-distiller on skills/claw-boss-distiller/demo/INPUT/ \
and write the result to skills/claw-boss-distiller/demo/OUTPUT/boss_skill.live.md"
# Check it produced a 5-layer doc
diff skills/claw-boss-distiller/demo/OUTPUT/boss_skill.demo.md \
skills/claw-boss-distiller/demo/OUTPUT/boss_skill.live.md
```
## Step 7 — First Daily Brief
Wait until the next scheduled 7:30, OR force-run:
```bash
hermes "Run Atlas daily-brief now and email it to ${BOSS_EMAIL}"
```
The boss receives a 5-minute Brief in their inbox.
## Caveats
1. **Hermes self-improving loop** — Hermes can auto-edit its own skills based
on usage. **Lock down `SOUL.md` and the SKILL.md `boundaries:` list** by
adding them to Hermes's skill-write deny list. We never want Atlas to
auto-relax its own guardrails.
2. **Branding** — Hermes's default identity is "Hermes Agent by Nous Research".
Override the system prompt to introduce as "Atlas / 总助 Claw" for client
deployments. See `hermes_cli/skin_engine.py` for theming hooks.
3. **Execution environment** — Use `local` or `docker` backends only for
client-internal deployments. SSH / Daytona / Modal assume external network.
## Roadmap
- [ ] V0.5: Wrap `atlas-extractor` as proper MCP server (replace Bash CLI invocation)
- [ ] V0.5: Auto-generate Hermes skill manifest from `skills/*/SKILL.md` on commit
- [ ] V1: Build a Hermes "skill pack" installer (`hermes skills install moments/atlas`)

324
QUICKSTART.zh-CN.md Normal file
View File

@ -0,0 +1,324 @@
# 总助 Claw 快速安装配置
这份文档只解决一件事:把 assistant-claw 仓库配置成一个可运行的总助 Claw / Atlas 实例。
总助 Claw 是老板视角的项目执行雷达。它读取老板授权范围内的邮件和业务信号,维护项目、人员、客户状态,并输出日 Brief、周 Rollup、客户健康报告和 Andon 告警。
这不是"三万同款 7 Agent / 38 技能"安装包。三万架构只作为参考,不要把写作、交易、社区、多 Bot 等通用团队能力塞进总助 Claw 的快速安装流程。
## 可复制的安装配置引导词
把下面这段发给负责部署的 Agent让它按步骤引导你完成总助 Claw 配置:
```text
请帮我配置「总助 Claw」。
这是 Moments 公司出品的老板视角项目执行雷达1 个 Atlas Agent + 6 个专项技能 + 邮件抽取流水线。
1. 请先学习 assistant-claw QuickStarthttps://git.moments.top/Moments.top/assistant-claw/src/branch/main/QUICKSTART.zh-CN.md
2. 问清:客户/老板信息、邮件接入方式、首次盘点范围、Brief 时间、告警渠道、数据边界。
3. 请按步骤引导我完成:安装 Atlas 身份文件和 skills → 初始化 state/memory/boss_skill.md → 配置 OpenClaw agents.list 和 workspace → 配置飞书 bindings → 验证。
不要拉邮件,除非我明确确认邮件权限和盘点范围。
🦞 Atlas 团队能力:
- 邮件解析
- 项目追踪
- 人员行为观察
- 客户雷达
- 老板规则蒸馏
- Brief/报告生成
请开始引导我配置吧!
```
## 安装前先确认
开始配置前,先向客户或部署负责人确认这些信息:
| 项 | 要确认什么 |
|----|------------|
| 客户公司 | 公司名、行业、规模、主要工作语言 |
| 老板信息 | 老板姓名、职位、Brief 阅读习惯 |
| 邮件权限 | IMAP / OAuth / 转发邮箱;是否允许拉取过去 12 个月邮件 |
| 首次盘点范围 | 默认过去 12 个月;如客户邮箱太大,先从 3 或 6 个月开始 |
| 输出节奏 | 日 Brief 时间,默认老板本地时间 07:30 |
| 告警渠道 | 邮件、飞书、微信机器人或仅生成报告 |
| 数据边界 | 原始邮件是否必须留在客户网络内;谁能看到 Brief |
没有这些答案时,不要开始拉邮件,也不要配置自动推送。
## 目标目录
推荐把客户实例放在 OpenClaw workspace 下:
```bash
export ATLAS_HOME="$HOME/.openclaw/workspace-atlas"
mkdir -p "$ATLAS_HOME"
```
每个客户一个独立 workspace。不要让多个客户共用同一套 `state/`、`memory/`、`boss_skill.md`。
## 第 1 步:安装 Atlas 配置资产
`assistant-claw` 仓库根目录执行:
```bash
cp IDENTITY.zh-CN.md "$ATLAS_HOME/IDENTITY.md"
cp SOUL.zh-CN.md "$ATLAS_HOME/SOUL.md"
cp AGENTS.zh-CN.md "$ATLAS_HOME/AGENTS.md"
cp USER.md "$ATLAS_HOME/USER.md"
cp TOOLS.md "$ATLAS_HOME/TOOLS.md"
cp MEMORY.md "$ATLAS_HOME/MEMORY.md"
cp BOOTSTRAP.md "$ATLAS_HOME/BOOTSTRAP.md"
cp HEARTBEAT.md "$ATLAS_HOME/HEARTBEAT.md"
cp -R skills "$ATLAS_HOME/skills"
cp -R mcp-tools "$ATLAS_HOME/mcp-tools"
cp -R state-schemas "$ATLAS_HOME/state-schemas"
```
说明:
- 中文部署默认使用 `*.zh-CN.md` 作为运行文件。
- `USER.md` 是客户侧配置,必须在部署时填写。
- `skills/` 是总助 Claw 专项能力,不是通用技能市场合集。
## 第 2 步:创建运行态目录
```bash
mkdir -p "$ATLAS_HOME/state/projects"
mkdir -p "$ATLAS_HOME/state/people"
mkdir -p "$ATLAS_HOME/state/customers"
mkdir -p "$ATLAS_HOME/state/runs"
mkdir -p "$ATLAS_HOME/state/unclustered"
mkdir -p "$ATLAS_HOME/state/audit"
mkdir -p "$ATLAS_HOME/state/extracted"
mkdir -p "$ATLAS_HOME/memory"
mkdir -p "$ATLAS_HOME/boss_voice"
```
初始化 `state/index.json`
```bash
cat > "$ATLAS_HOME/state/index.json" <<'JSON'
{
"projects": [],
"people": [],
"customers": [],
"updated_at": null
}
JSON
```
初始化当天记忆:
```bash
TODAY="$(date +%F)"
cat > "$ATLAS_HOME/memory/$TODAY.md" <<EOF
# $TODAY
## 本日运行记录
- 部署初始化。
EOF
```
初始化 `boss_skill.md`
```bash
cat > "$ATLAS_HOME/boss_skill.md" <<'EOF'
# boss_skill.md
状态:待蒸馏
首次部署后,由 `claw-boss-distiller` 读取老板过去 6 个月发出邮件,生成第一版 draft rules。
老板审核后,才能把规则标记为 confirmed。
EOF
```
## 第 3 步:填写客户配置
编辑:
```bash
$ATLAS_HOME/USER.md
```
至少填这些字段:
- Principal name
- Role
- Industry
- Company size
- Email domain
- Primary work language
- Daily email volume
- Average projects in flight
- Reads Brief on
- Tolerance for false positives
如果这些字段为空,总助 Claw 可以启动,但第一周盘点和 Brief 会缺上下文。
## 第 4 步:配置 OpenClaw Agent
修改 OpenClaw 配置前先备份:
```bash
cp ~/.openclaw/openclaw.json ~/.openclaw/openclaw.json.bak.$(date +%Y%m%d-%H%M%S)
```
新增 Atlas Agent
```bash
openclaw agents add atlas --workspace "$ATLAS_HOME"
openclaw agents list
```
如果当前环境只能有一个默认 Agent也可以把 agent id 设为 `main`。关键是 `workspace` 必须指向 `$ATLAS_HOME`
确认 `agents.list` 里有类似结构:
```json
{
"id": "atlas",
"name": "总助 Claw",
"workspace": "/Users/<you>/.openclaw/workspace-atlas"
}
```
总助 Claw 快速安装不需要创建 `writer`、`researcher`、`trader` 等子 Agent也不需要配置 `subagents.allowAgents`。需要多 Agent 时,等单实例跑通后再做二期扩展。
## 第 5 步:配置飞书入口
如果使用一个飞书 Bot 接入总助 Claw只需要把该账号绑定到 `atlas`
```json
{
"bindings": [
{
"agentId": "atlas",
"match": {
"channel": "feishu",
"accountId": "default"
}
}
]
}
```
保留现有 `channels.feishu` 下的账号配置和访问策略,不要为了新增 binding 删除 `allowFrom`、`dmPolicy`、`groupPolicy` 等字段。
配置后验证:
```bash
openclaw agents list
openclaw channels status
```
多数配置支持热加载。只有状态没刷新、版本要求重启、或已经确认维护窗口时,才执行:
```bash
openclaw gateway restart
openclaw gateway status
```
## 第 6 步:配置邮件抽取工具
总助 Claw 的核心输入是邮件。V0 推荐先跑本地 email-extractor pipeline确认能稳定解析样例再接客户邮箱。
```bash
cd "$ATLAS_HOME/mcp-tools/email-extractor"
python3 -m venv .venv
. .venv/bin/activate
pip install -e .
pytest
```
如果测试通过,再接入客户邮件源:
- IMAP确认 host、port、用户名、授权码、TLS 要求。
- OAuth确认回调地址、client id、client secret、refresh token 存放位置。
- 转发邮箱:确认原始 MIME 是否保留完整 header。
不要把原始邮件复制出客户允许的网络边界。总助 Claw 的输出应引用邮件 ID 和规则,不暴露不相关客户或员工隐私。
## 第 7 步:首次启动验收
在飞书或命令入口问:
```text
你是谁?请读取你的 IDENTITY、SOUL、USER并告诉我当前还缺哪些部署字段。
```
合格回复应满足:
- 自称总助 Claw / Atlas。
- 能说清自己是老板视角项目执行雷达。
- 明确 V0 不替老板写信、不发信、不评价员工。
- 能列出 `USER.md` 中未填写字段。
再问:
```text
请按 BOOTSTRAP.md 给出首次部署 checklist不要开始拉邮件。
```
合格回复应输出:
- 邮件权限确认
- 历史拉取范围
- 日 Brief 时间
- Andon 告警渠道
- `state/`、`memory/`、`boss_skill.md` 初始化状态
- W1 一次性盘点计划
## 第 8 步:首次盘点流程
首次盘点不要自动全量跑。先让客户确认范围:
```text
首次盘点建议拉取过去 12 个月邮件。你的邮箱量级较大时,我建议先从 3 个月试跑,确认抽取质量和误报率后再扩展到 12 个月。请确认范围。
```
确认后按顺序执行:
1. `claw-email-parser`:拉取、解码、去引用、抽实体、分类意图。
2. `claw-project-tracker`:聚类项目,生成 `state/projects/*.json`
3. `claw-people-observer`:生成行为观察卡,永不输出员工裁定标签。
4. `claw-customer-radar`:生成客户健康状态和风险信号。
5. `claw-report-writer`:生成第一份 Inventory Report。
6. `claw-boss-distiller`:只读取老板发出邮件,生成 `boss_skill.md` draft rules。
第一周交付物:
- 过去 3 / 6 / 12 个月项目清单
- Stalled / Waiting-For / Next Action 风险图
- 客户健康清单
- `boss_skill.md` draft等待老板审核
## 不要放进快速安装的内容
这些不是总助 Claw 快速安装的一部分:
- 三万同款 7 Agent / 38 技能完整团队。
- 公众号、博客、小红书、交易、社区运营角色。
- 多飞书 Bot 企业版配置。
- 任意通用技能市场清单。
- 未经确认的 `sessions_spawn` 子 Agent 调度规则。
总助 Claw 的最小可用版本是一个 Atlas 实例,加上邮件抽取、项目追踪、客户雷达、人员观察、报告渲染和 boss_skill 蒸馏。先把这个闭环跑通,再谈多 Agent 扩展。
## 完成话术
安装完成后,给客户这样汇报:
```text
总助 Claw 已完成基础配置:
- Agent workspace<ATLAS_HOME>
- 已安装身份文件、专项 skills、mcp-tools、state schemas
- 已初始化 state、memory、boss_skill.md
- 已绑定入口:飞书 / 其他
- 已验证Agent 能读取身份文件,并能输出首次部署 checklist
下一步需要你确认邮件接入方式和首次盘点范围。确认后,我会先试跑小范围邮件抽取,再生成第一份项目盘点报告。
```

233
README.md
View File

@ -1,91 +1,192 @@
# assistant-claw总助Claw # 总助 Claw / Atlas 🦅
总助 Claw 的"配置中心"——同时承载两个 agent profile > **老板视角项目执行雷达**——把散落在邮件 / 微信 / 飞书里的工作安排,自动织成一张"人 × 项目 × 客户"三维盘子,每天告诉老板:谁在跟、跟得怎样、有没有卡点、有没有不了了之的事、哪些客户要亲自出面。
- **Vega** —— 通用助理general-purpose teammate原 README 设定) > "把太多不了了之的事,重新装回老板的视野里。"
- **Atlas** —— 老板视角项目执行雷达new详见 [`atlas/README.md`](./atlas/README.md)
两个 profile 共用本仓库的目录约定prompts / skills / tools / autopilots / docs但 Atlas 是按客户实例化部署的纵向产品,所有 Atlas 特有资产OpenClaw 8 件套 + 6 个子 skill + email-extractor + boss_skill 蒸馏 demo + 客户演示 deck封装在 [`atlas/`](./atlas/) 子目录里。Vega 的内容继续按原计划长在顶层。
Atlas 部署时建议直接 `cd atlas && cat README.md` 走它的部署 SOP本仓库根目录的下面这份 Vega 配置说明保持不变。
--- ---
总助 Claw 的"配置中心"——管理 Vega通用助理 Agent的全部可托管内容 ## 📍 想做什么 → 看哪里
- **prompts/** — 系统提示词、人格设定、风格 guideline | 目标 | 路径 |
- **skills/** — 可复用的 skill 定义Markdown + frontmatter |------|------|
- **tools/** — Vega 调用的工具MCP 服务配置、自定义 CLI 脚本、HTTP 工具适配 | 快速安装配置 | [`QUICKSTART.zh-CN.md`](./QUICKSTART.zh-CN.md) |
- **autopilots/** — 定时 / 触发式自动任务(对应 Multica `multica autopilot` 的配置) | 看是个什么产品5 分钟读完) | [`AGENTS.md`](./AGENTS.md) + [`SOUL.md`](./SOUL.md) |
- **docs/** — 设计文档、ADR、运行手册 | 给客户讲2 页文档) | [`client-deck/`](./client-deck/) |
| 看 6 个 sub-skill | [`skills/`](./skills/) |
| 看 boss_skill 蒸馏 demo10 封邮件 → 5 层老板 OS | [`skills/claw-boss-distiller/demo/`](./skills/claw-boss-distiller/demo/) |
| 跑邮件抽取Python 实现pytest 通过) | [`mcp-tools/email-extractor/`](./mcp-tools/email-extractor/) |
| 装到 Hermes Agent 上跑 | [`INTEGRATION-hermes.md`](./INTEGRATION-hermes.md) |
| 项目卡 / 人员卡 / 客户卡 JSON schema | [`state-schemas/`](./state-schemas/) |
| Autopilot 定义5 个daily / weekly / monthly / quarterly + andon | [`autopilots/`](./autopilots/) |
| 设计决策记录 | [`docs/decisions/`](./docs/decisions/) |
> Vega 在 Multica workspace 里的 agent ID 是 `877b1ea4-d096-4323-9ccc-cda31a3a7b3d`,归属 project **总助Claw**`fdc928a7-d204-4a9f-929e-2c59bea9cda3`)。她和其他垂直 Claw`research-claw`、`trainer-claw`、`geo-claw`)并列,但 scope 故意更宽:日常杂活、轻量编码、写作、调研、规划、跨工具协作。 ---
## 仓库结构 ## 🚀 快速启动
``` ### 浏览设计
.
├── README.md ```bash
├── prompts/ # 系统提示词、人格、风格 git clone https://git.moments.top/Moments.top/assistant-claw.git
│ └── system.md # 单一可信源(待落地) cd assistant-claw
├── skills/ # 可触发的 skill 集合 cat AGENTS.md # 入口模式 + skill 名册 + autopilot 排班
│ └── <skill-name>/ cat SOUL.md # 边界:永不评级员工 / 永不替老板写信 / 永带引用
│ └── SKILL.md # 含 frontmatter: name / description / type open client-deck/ # 客户演示
├── tools/ # Vega 调用的工具
│ ├── mcp/ # MCP server 配置
│ └── scripts/ # 自定义 CLI / shell 脚本
├── autopilots/ # 定时 / 触发的 autopilot 定义
│ └── <name>.yaml # title / agent / mode / schedule / payload
└── docs/
└── decisions/ # ADR
``` ```
各目录现在用 `.gitkeep` 占位,会随后补齐。 ### 跑邮件抽取(本地,无需任何外部凭据)
## 内容类型说明 ```bash
cd mcp-tools/email-extractor
python -m venv .venv && .venv/bin/pip install -e '.[test]'
.venv/bin/pytest -q # 7/7 测试通过
.venv/bin/atlas-extract dir \
--input-dir ../../skills/claw-boss-distiller/demo/INPUT \
--state-dir /tmp/atlas-test
```
### prompts/ ### 拉 nuwa-skill 上游claw-boss-distiller 依赖)
Vega 的 system prompt 与人格设定,唯一可信源。线上 agent 的 prompt 应该从这里发布,而不是直接在 Multica 后台手动编辑。
### skills/ ```bash
每个 skill 一个子目录,至少包含 `SKILL.md`frontmatter 必须有: # 公网部署
- `name` — 唯一短名kebab-case git clone --depth 1 https://github.com/alchaincyf/nuwa-skill.git \
- `description` — 一行触发说明(用于决定何时调用,写得越具体越好) skills/claw-boss-distiller/upstream
- `type``rigid`(必须严格遵循) 或 `flexible`(按情境调整)
Skill 必须能给出一个具体的 trigger 场景;写不出来的就不要加。 # 客户内网air-gapped部署 —— 用 Moments 私有 Gitea 镜像
# 镜像建立流程见 docs/decisions/0001-mirror-nuwa-skill.md
git clone --depth 1 https://git.moments.top/Moments.top/nuwa-skill.git \
skills/claw-boss-distiller/upstream
```
### tools/ ### 接到 Hermes Agent 跑
- `tools/mcp/` — MCP server 的连接配置command、env、scope 等)
- `tools/scripts/` — Vega 通过 Bash 调用的自定义脚本,每个脚本顶部一段说明 + 用法示例
### autopilots/ 详见 [`INTEGRATION-hermes.md`](./INTEGRATION-hermes.md)。一句话6 个 SKILL.md 已经按 agentskills.io / Hermes 兼容格式写好,`cp -r skills/* ~/.hermes/skills/atlas/` 即可被识别。
对应 `multica autopilot create` 的配置文件,每个 autopilot 一个 YAML/JSON
- `title`、`description`、`agent`、`mode`(默认 `create_issue`
- `schedule`cron 或 trigger 描述)
- `payload` / `template`(每次触发时落到 issue 的内容模板)
发布时通过脚本读这些文件批量调 `multica autopilot create/update`,避免漂移。 ---
### docs/ ## 📐 仓库结构
设计决策ADR、运行手册、复盘记录。改 `prompts/``skills/` 之前先写一段 ADR比事后追溯便宜。
## 工作约定 ```
assistant-claw/ ← 本仓库 = 总助 Claw / Atlas
├── README.md 本文件
├── .gitignore
├── 🆔 OpenClaw 8 件套agent 身份层,根目录直接读)
│ ├── IDENTITY.md / .zh-CN.md 🦅 Atlas 身份卡:老板视角项目执行雷达
│ ├── SOUL.md / .zh-CN.md 边界与原则
│ ├── USER.md 谁是 user老板按客户实例化
│ ├── AGENTS.md / .zh-CN.md 入口模式 / skill 名册 / 工具 / autopilot 排班
│ ├── TOOLS.md 工具配置IMAP/Gmail/Exchange + 报告渲染)
│ ├── MEMORY.md 长期记忆模板
│ ├── BOOTSTRAP.md 首次部署 7 步清单
│ ├── HEARTBEAT.md 每日 / 周 / 月 / 季 + 事件触发任务表
│ └── CLAUDE.md → AGENTS.md 软链
├── 📚 INTEGRATION-hermes.md Hermes Agent 集成 SOP30 min
├── 🛠️ skills/ 6 个 Atlas sub-skill
│ ├── DESCRIPTION.md Hermes category 描述
│ ├── README.md skill 协作流图
│ ├── claw-email-parser/SKILL.md 邮件抽取入口
│ ├── claw-project-tracker/SKILL.md 项目状态判定GTD/RACI
│ ├── claw-people-observer/SKILL.md 人员观察(硬约束:永不打员工等级)
│ ├── claw-customer-radar/SKILL.md 客户健康度CHS + Andon
│ ├── claw-boss-distiller/ ⭐ nuwa-skill 衍生
│ │ ├── SKILL.md
│ │ ├── ADAPTER.md nuwa→Atlas 改造说明
│ │ ├── boss_skill.seed.md 23 条种子规则跨 5 层
│ │ ├── upstream/README.md 部署时 git clone nuwa 的 SOP
│ │ └── demo/ 完整蒸馏 demo10 邮件 → 5 层)
│ └── claw-report-writer/SKILL.md 日 / 周 / 月报渲染
├── 🔌 mcp-tools/ 工具层
│ ├── README.md 工具清单 + 授权矩阵
│ ├── email-extractor.md 7 阶段抽取流水线 spec
│ └── email-extractor/ Python V0 实现pytest 7/7 通过)
│ ├── atlas_extractor/ fetch + decode + dequote + pipeline + cli
│ ├── tests/ fixture + test_dequote
│ └── pyproject.toml → 安装后得到 atlas-extract CLI
├── 📦 state-schemas/ 三张卡的正式 JSON schema
│ ├── README.md
│ ├── project.md
│ ├── person.md
│ └── customer.md
├── ⏰ autopilots/ 5 个 Multica autopilot 配置
│ ├── atlas-daily-brief.yaml cron 30 7 * * *
│ ├── atlas-weekly-rollup.yaml cron 0 8 * * 1
│ ├── atlas-monthly-customer-health.yaml cron 0 9 1 * *
│ ├── atlas-quarterly-boss-skill-refresh.yaml cron 0 10 1 1,4,7,10 *
│ └── atlas-andon-event.yaml event_triggered非定时
├── 🎤 client-deck/ 给客户的演示主材料
├── 📝 docs/
│ └── decisions/ ADR
│ └── 0001-mirror-nuwa-skill.md
└── 🔧 scripts/
└── mirror-nuwa-to-moments.sh 一键镜像 nuwa-skill 到 Moments Gitea
```
- **Issue / 任务流转走 Multica**:所有给 Vega 的任务、反馈、复盘走 Multica 的 issue + comment**不在仓库里开 issue**。 ---
- **改动走 PR**`prompts/`、`skills/`、`tools/`、`autopilots/` 下的内容都会进 production必须 PR + review不直接 push main。
- **保持 lean**:宁可少加,也不堆没人用的脚手架。每加一个 skill / tool / autopilot 都要能回答:"谁在什么场景下会触发它"。
## 路线图(暂定) ## 🎯 产品定位
- [ ] 把当前 Vega 的 system prompt 落到 `prompts/system.md` | 维度 | Atlas |
- [ ] 抽出最常用的 35 个 skill 到 `skills/`issue triage、comment drafting、研究汇总等 |------|-------|
- [ ] 把现有 autopilot 反向导出到 `autopilots/`,建立"配置即代码"基线 | **服务对象** | 企业一把手(董事长 / 总经理 / 创始人)一人 |
- [ ] `docs/decisions/0001-why-general-agent.md`:为什么是通用 agent 而不是又一个垂直 claw | **核心痛点** | 太多事情不了了之 |
- [ ] CI`prompts/``skills/` 做 schema / lint 校验 | **数据源** | 邮件V0→ 微信V0.5)→ 飞书V1 |
- [ ] 发布脚本:从 `autopilots/*.yaml` 批量同步到 Multica | **学习成本** | 0老板照常发邮件AI 在后台读) |
| **首份交付** | W1 末:"过去一年项目盘点 + 落地率诊断"报告 |
| **日常节奏** | 每天 7:30 一封 5 分钟看完的 Brief |
| **北极星指标** | 老板看完 Brief 能立刻说出今日 3 件事 |
| **部署模型** | 100% 客户私有部署,每客户一个独立实例 |
## 相关链接 引用 10 套主流管理框架GTD / RACI / Andy Grove / 9-Box / BARS / CCAR / ONA / CHS / VoC / WBR每条 AI 判定都标依据规则号,老板 override 一行邮件就生效。
- Multica project总助Claw`fdc928a7-d204-4a9f-929e-2c59bea9cda3` ---
- 兄弟仓库:`research-claw` / `trainer-claw` / `geo-claw`
## ⚙️ 工作约定
- **Issue / 任务流转走 Multica**:所有给 Atlas 的需求、反馈、复盘走 Multica 的 issue + comment不在仓库里开 issue
- **改动走 PR**:根目录文件、`skills/`、`mcp-tools/`、`autopilots/`、`state-schemas/` 下的内容都进 production必须 PR + review
- **每客户实例隔离**:每个客户的 `state/`projects/people/customers/runs/audit永远在客户机器上不进本仓库
- **保持 lean**:宁可少加,也不堆没人用的脚手架
- **永不放宽硬边界**SOUL.md + 各 SKILL.md `boundaries:` 字段是死线(不评级员工 / 不写邮件给非老板 / 跨客户隔离 / 不编造证据)
---
## 🔗 相关
- **Multica project**:总助 Claw`fdc928a7-d204-4a9f-929e-2c59bea9cda3`
- **上游开源依赖**
- [`alchaincyf/nuwa-skill`](https://github.com/alchaincyf/nuwa-skill)MIT—— 心智蒸馏方法论
- [`NousResearch/hermes-agent`](https://github.com/NousResearch/hermes-agent)MIT—— 推荐运行时
- **agentskills.io 标准**https://agentskills.io
- **Mirrorair-gapped 客户部署用)**`https://git.moments.top/Moments.top/nuwa-skill`(待建)
---
## 🗺️ 路线图
### 已完成
- [x] OpenClaw 8 件套 + 6 sub-skill 设计
- [x] email-extractor V0Stage 1-3 实现 + 7 测试通过)
- [x] boss-distiller demo run10 封邮件 → 5 层蒸馏验证)
- [x] 客户演示 deck v1
- [x] Hermes 集成 SOP
- [x] state schemasproject / person / customer
- [x] 5 个 autopilot YAML
### 待办
- [ ] **nuwa-skill 镜像到 Moments Gitea**(仓库已建则 `bash scripts/mirror-nuwa-to-moments.sh`
- [ ] email-extractor Stage 4-7threading / entities / intent / canonical 输出)
- [ ] 6 个 sub-skill 的可执行实现(当前是设计文档)
- [ ] `atlas-extractor` 包成 MCP server
- [ ] dogfood装到内部 Hermes 实例端到端跑一次
- [ ] 第一个客户 W1 部署

View File

@ -1,40 +0,0 @@
# 总助 Claw (Atlas) — Plan & Scaffold
Boss-perspective project execution radar. Built on the OpenClaw agent framework (mirrors `zero-cca/` structure).
## Quick Map
| Layer | Files |
|-------|-------|
| **Identity (8 OpenClaw core files)** | `IDENTITY.md` `SOUL.md` `USER.md` `AGENTS.md` `TOOLS.md` `MEMORY.md` `BOOTSTRAP.md` `HEARTBEAT.md` (+ `CLAUDE.md` symlink) |
| **Skills (6 sub-skills)** | `skills/{claw-email-parser, claw-project-tracker, claw-people-observer, claw-customer-radar, claw-boss-distiller, claw-report-writer}/SKILL.md` |
| **MCP tools** | `mcp-tools/email-extractor.md` (the deep-dive 7-stage extraction pipeline) + `mcp-tools/README.md` |
| **State (runtime)** | created at deployment under `state/` per-client |
| **Memory (runtime)** | created at deployment under `memory/` |
## Counts
- **1 Agent** (Atlas / 总助)
- **6 Skills** (1 master would re-enter via entry points A/B/C/D/E)
- **6 MCP tools** (email-fetch, email-extractor, state-io, report-render, email-send, rule-audit)
- **5 Autopilot schedules** (daily / weekly / monthly / quarterly + event-triggered)
- **3 State entity types** (project / person / customer) + audit + runs + extracted
- **5 Report modes** (daily / weekly / monthly / inventory / ad-hoc)
- **5 Layers** in `boss_skill.md` (Expression DNA / Mental Models / Decision Heuristics / Anti-Patterns / Honest Boundaries)
- **1 Open-source dependency** (`nuwa-skill` MIT, vendored into `claw-boss-distiller`)
## Read Order for a New Atlas Operator
1. `BOOTSTRAP.md` (first run only)
2. `SOUL.md` (boundaries — read once, internalize)
3. `IDENTITY.md` (role)
4. `USER.md` (boss profile, filled at deployment)
5. `AGENTS.md` (entry points + skill roster + tool roster + autopilot)
6. `mcp-tools/email-extractor.md` (the unsexy but critical extraction layer)
7. `skills/README.md` then individual `SKILL.md`s
## Status
Scaffold v0.4 — generated 2026-05-09 from PRD v0.3 + nuwa-skill review + OpenClaw framework adoption.
Next: write `state-schemas/{project,person,customer}.md` formal JSON schemas, write the boss_skill.md seed template, and begin the W1 implementation sprint.

View File

@ -0,0 +1,63 @@
# ADR-0001: Mirror nuwa-skill into Moments private Gitea
**Date:** 2026-05-09
**Status:** Accepted
**Authors:** Atlas team
## Context
Atlas's `claw-boss-distiller` skill (under `skills/claw-boss-distiller/`) is
adapted from the open-source [`alchaincyf/nuwa-skill`](https://github.com/alchaincyf/nuwa-skill)
(MIT). It uses upstream's triple-verification methodology and skill template
(see `skills/claw-boss-distiller/ADAPTER.md`).
For deployment, each Atlas instance needs the upstream code:
```bash
git clone --depth 1 https://github.com/alchaincyf/nuwa-skill.git \
skills/claw-boss-distiller/upstream
```
This works for environments with public internet. **It does not work for many
enterprise client deployments** which Atlas explicitly targets — most of our
customer base operates inside corporate networks that block direct GitHub access.
## Decision
Mirror `alchaincyf/nuwa-skill` to `git.moments.top/Moments.top/nuwa-skill` and
treat the Moments mirror as the canonical fetch source for client deployments.
The bot account (`multica-bot`) cannot create org repos via API (lacks
`write:organization` scope). Repo creation is a one-time human step:
> https://git.moments.top/repo/create → owner: `Moments.top` → name: `nuwa-skill`
> → empty (no auto-init)
After repo exists, run `./scripts/mirror-nuwa-to-moments.sh` to populate it.
## Consequences
### Positive
- Air-gapped client deployments work (no GitHub access required)
- Stable fetch URL even if upstream is unavailable
- Allows pinning to a specific commit per-deployment if needed
- We retain MIT license attribution (no IP impact)
### Negative
- Adds a sync responsibility — when upstream evolves, we need to re-mirror
- Slight risk of staleness if mirror cron fails silently
## Mitigation
- Run `./scripts/mirror-nuwa-to-moments.sh` on a weekly cron (TBD: add to
`autopilots/` once decided)
- Each Atlas deployment records the upstream commit SHA at install time so
drift is auditable
- README in `skills/claw-boss-distiller/upstream/` clearly notes the
mirror is a downstream copy, with last-mirrored timestamp
## References
- Upstream: https://github.com/alchaincyf/nuwa-skill (MIT)
- Mirror script: `scripts/mirror-nuwa-to-moments.sh`
- Adapter notes: `skills/claw-boss-distiller/ADAPTER.md`

View File

View File

@ -0,0 +1,42 @@
#!/usr/bin/env bash
# Mirror github.com/alchaincyf/nuwa-skill (MIT) into Moments private Gitea.
#
# Why we mirror: Atlas's claw-boss-distiller depends on nuwa-skill methodology
# (`references/extraction-framework.md`). For air-gapped client deployments where
# the client network cannot reach github.com, our private Gitea must serve nuwa.
#
# Prereq: a destination repo on git.moments.top must already exist (empty).
# Default target: https://git.moments.top/Moments.top/nuwa-skill.git
#
# Create it once via Gitea UI (the bot account doesn't have org-create scope):
# https://git.moments.top/repo/create → owner: Moments.top → name: nuwa-skill → empty
#
# Usage:
# ./scripts/mirror-nuwa-to-moments.sh
# ./scripts/mirror-nuwa-to-moments.sh https://git.moments.top/your-org/nuwa-skill.git
#
# After first mirror, schedule a weekly cron to re-mirror upstream changes.
set -euo pipefail
UPSTREAM="https://github.com/alchaincyf/nuwa-skill.git"
TARGET="${1:-https://git.moments.top/Moments.top/nuwa-skill.git}"
WORKDIR="$(mktemp -d -t nuwa-mirror-XXXXXX)"
echo "Mirror $UPSTREAM$TARGET"
echo "Workdir: $WORKDIR"
# Bare clone preserves all branches/tags/refs
git clone --mirror "$UPSTREAM" "$WORKDIR"
cd "$WORKDIR"
# Push everything (--mirror = all refs incl. delete on remote)
git push --mirror "$TARGET"
cd /
rm -rf "$WORKDIR"
echo "✅ Mirror complete: $TARGET"
echo
echo "Next: update skills/claw-boss-distiller/upstream/README.md to point"
echo " air-gapped deployments at the Moments mirror instead of GitHub."

View File

36
skills/DESCRIPTION.md Normal file
View File

@ -0,0 +1,36 @@
---
description: >
Atlas (总助 Claw) — boss-perspective project execution radar. Six sub-skills
that turn raw email into a 3D map of "people × project × customer", surface
what's slipping, and write a 5-minute daily Brief in the boss's voice.
Compatible with Hermes Agent (agentskills.io standard) and OpenClaw runtime.
metadata:
hermes:
category: atlas
tags: [boss-radar, project-tracking, gtd, raci, 9-box, customer-health, ona]
---
# Atlas Sub-Skills
Six skills work in pipeline:
```
[email-parser] → [project-tracker] → [people-observer] → [customer-radar]
↓ ↓ ↓
└──────────────────┴─────────────────┘
[boss-distiller] (quarterly)
[report-writer] (daily/weekly/monthly)
```
| Skill | Job |
|-------|-----|
| `claw-email-parser` | Fetch + extract canonical Email JSON |
| `claw-project-tracker` | Cluster threads → projects, GTD/RACI, state |
| `claw-people-observer` | 9-Box / BARS / CCAR / ONA — never assigns ratings |
| `claw-customer-radar` | CHS / VoC / churn — fires Andon alerts |
| `claw-boss-distiller` | nuwa-skill derivative, distill boss mental model |
| `claw-report-writer` | Daily / Weekly / Monthly briefs in boss's voice |
See each `claw-*/SKILL.md` for inputs/outputs, judgment rules, and failure modes.

View File

@ -1,6 +1,18 @@
--- ---
name: claw-boss-distiller name: claw-boss-distiller
description: Distill the boss's mental model from outgoing email corpus into a 5-layer boss_skill.md (Expression DNA / Mental Models / Decision Heuristics / Anti-Patterns / Honest Boundaries). Derived from nuwa-skill (MIT). Drafts only — boss confirms every change. description: Distill the boss's mental model from outgoing email corpus into a 5-layer boss_skill.md (Expression DNA / Mental Models / Decision Heuristics / Anti-Patterns / Honest Boundaries). Derived from nuwa-skill (MIT). Drafts only — boss confirms every change.
version: 0.1.0
author: Moments / Atlas team (adapted from alchaincyf/nuwa-skill, MIT)
license: MIT
metadata:
hermes:
category: atlas
tags: [mental-model, distillation, nuwa, boss-os, atlas]
related_skills: [claw-email-parser, claw-report-writer]
upstream_dependency: alchaincyf/nuwa-skill
boundaries:
- all_new_rules_default_to_status_draft
- never_apply_changes_without_explicit_boss_confirm
--- ---
# claw-boss-distiller # claw-boss-distiller

View File

@ -1,6 +1,16 @@
--- ---
name: claw-customer-radar name: claw-customer-radar
description: Compute Customer Health Score, sentiment trend, RFM, decision-chain map, churn signals. Fire Andon alerts when health crosses thresholds. description: Compute Customer Health Score, sentiment trend, RFM, decision-chain map, churn signals. Fire Andon alerts when health crosses thresholds.
version: 0.1.0
author: Moments / Atlas team
license: MIT
metadata:
hermes:
category: atlas
tags: [customer-success, chs, voc, churn, rfm, andon, atlas]
related_skills: [claw-email-parser, claw-project-tracker, claw-report-writer]
boundaries:
- cross_customer_data_isolation
--- ---
# claw-customer-radar # claw-customer-radar

View File

@ -1,6 +1,14 @@
--- ---
name: claw-email-parser name: claw-email-parser
description: Wraps the email-extractor MCP tool; orchestrates fetch → extract → write canonical Email JSON. The thin LLM layer that decides what to do with low-confidence extractions. description: Wraps the email-extractor MCP tool; orchestrates fetch → extract → write canonical Email JSON. The thin LLM layer that decides what to do with low-confidence extractions.
version: 0.1.0
author: Moments / Atlas team
license: MIT
metadata:
hermes:
category: atlas
tags: [email, imap, extraction, atlas, intake]
related_skills: [claw-project-tracker, claw-people-observer, claw-customer-radar]
--- ---
# claw-email-parser # claw-email-parser

View File

@ -1,6 +1,18 @@
--- ---
name: claw-people-observer name: claw-people-observer
description: Compute observation cards for each person — project density, response time, BARS behavior tags, CCAR critical incidents, ONA centrality, 9-Box performance dimension. NEVER assigns potential or final ratings — those are boss-only. description: Compute observation cards for each person — project density, response time, BARS behavior tags, CCAR critical incidents, ONA centrality, 9-Box performance dimension. NEVER assigns potential or final ratings — those are boss-only.
version: 0.1.0
author: Moments / Atlas team
license: MIT
metadata:
hermes:
category: atlas
tags: [people-analytics, 9-box, bars, ccar, ona, atlas]
related_skills: [claw-email-parser, claw-project-tracker, claw-report-writer]
boundaries:
- never_assign_9box_potential
- never_assign_topgrading_grade
- never_recommend_pip_or_termination
--- ---
# claw-people-observer # claw-people-observer

View File

@ -1,6 +1,14 @@
--- ---
name: claw-project-tracker name: claw-project-tracker
description: Cluster threads into project entities, apply GTD/RACI logic, judge project state (Active/Stalled/Completed/Someday/Dropped) with rule citations. description: Cluster threads into project entities, apply GTD/RACI logic, judge project state (Active/Stalled/Completed/Someday/Dropped) with rule citations.
version: 0.1.0
author: Moments / Atlas team
license: MIT
metadata:
hermes:
category: atlas
tags: [project-management, gtd, raci, atlas, boss-perspective]
related_skills: [claw-email-parser, claw-people-observer, claw-customer-radar, claw-report-writer]
--- ---
# claw-project-tracker # claw-project-tracker

View File

@ -1,6 +1,18 @@
--- ---
name: claw-report-writer name: claw-report-writer
description: Render Daily Brief / Weekly Rollup / Monthly Customer Health / one-time Inventory in Amazon WBR style with rule citations. Speaks in the boss's voice (Layer 1 of boss_skill.md). description: Render Daily Brief / Weekly Rollup / Monthly Customer Health / one-time Inventory in Amazon WBR style with rule citations. Speaks in the boss's voice (Layer 1 of boss_skill.md).
version: 0.1.0
author: Moments / Atlas team
license: MIT
metadata:
hermes:
category: atlas
tags: [reporting, wbr, daily-brief, atlas, boss-voice]
related_skills: [claw-project-tracker, claw-people-observer, claw-customer-radar, claw-boss-distiller]
delivery_channels: [email, feishu, dingtalk, wechat]
boundaries:
- send_only_to_boss
- cite_every_judgment
--- ---
# claw-report-writer # claw-report-writer

View File