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).
This commit is contained in:
Atlas refactor 2026-05-09 17:54:18 +08:00
parent 04e197c896
commit bd0be97630
62 changed files with 122 additions and 161 deletions

View File

@ -19,7 +19,7 @@ This doc tells the operator how to install Atlas on top of Hermes in ≤ 30 minu
```bash
# Hermes scans ~/.hermes/skills/ on startup
mkdir -p ~/.hermes/skills/atlas
cp -r atlas/skills/* ~/.hermes/skills/atlas/
cp -r skills/* ~/.hermes/skills/atlas/
# Check Hermes sees them
hermes skills list | grep claw-
@ -43,12 +43,12 @@ git clone --depth 1 https://git.moments.top/Moments.top/nuwa-skill.git \
## Step 3 — Install atlas-extractor as an MCP server (TBD code)
The `atlas/mcp-tools/email-extractor/` Python package currently exposes a CLI
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 atlas/mcp-tools/email-extractor
cd mcp-tools/email-extractor
python -m venv .venv
.venv/bin/pip install -e '.[test]'
.venv/bin/pytest -q # confirm 7/7 passing
@ -66,7 +66,7 @@ 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
Atlas's 5 autopilot YAMLs live in `autopilots/atlas-*.yaml`. Translate each
into Hermes natural-language cron:
```bash
@ -83,12 +83,12 @@ sentinel file like `~/.atlas/state/runs/_andon_pending.flag`.
```bash
# Manually invoke claw-boss-distiller on the demo input
hermes "Run claw-boss-distiller on atlas/skills/claw-boss-distiller/demo/INPUT/ \
and write the result to atlas/skills/claw-boss-distiller/demo/OUTPUT/boss_skill.live.md"
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 atlas/skills/claw-boss-distiller/demo/OUTPUT/boss_skill.demo.md \
atlas/skills/claw-boss-distiller/demo/OUTPUT/boss_skill.live.md
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
@ -118,5 +118,5 @@ The boss receives a 5-minute Brief in their inbox.
## Roadmap
- [ ] V0.5: Wrap `atlas-extractor` as proper MCP server (replace Bash CLI invocation)
- [ ] V0.5: Auto-generate Hermes skill manifest from `atlas/skills/*/SKILL.md` on commit
- [ ] 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`)

211
README.md
View File

@ -1,50 +1,43 @@
# assistant-claw总助Claw
# 总助 Claw / Atlas 🦅
> **老板视角项目执行雷达**——把散落在邮件 / 微信 / 飞书里的工作安排,自动织成一张"人 × 项目 × 客户"三维盘子,每天告诉老板:谁在跟、跟得怎样、有没有卡点、有没有不了了之的事、哪些客户要亲自出面。
> "把太多不了了之的事,重新装回老板的视野里。"
`assistant-claw` 是 Moments / 莫曼茨智能科技的**总助 Claw 配置中心**,一个仓库装两个 agent profile
| Profile | 角色 | 状态 | 入口 |
|---------|------|------|------|
| **Atlas** 🦅 | 老板视角项目执行雷达——按客户部署的纵向产品 | 设计 + 邮件抽取实现 + 蒸馏 demo 完成 | [`atlas/`](./atlas/) |
| **Vega** ⭐ | 通用助理 agent——莫曼茨内部多面手 | 骨架占位 | [`prompts/`](./prompts/) `skills/` `tools/` |
两个 profile 共用本仓库的目录约定prompts / skills / tools / autopilots / docs**Atlas 资产隔离在 `atlas/` 子目录**,避免污染 Vega 的演进路径。
---
## 📍 想做什么 → 看哪里
| 目标 | 路径 |
|------|------|
| 看 Atlas 是个什么产品 | [`atlas/README.md`](./atlas/README.md) |
| 给客户讲 Atlas2 页文档) | [`atlas/client-deck/总助Claw_客户演示_v1.md`](./atlas/client-deck/) |
| 看 Atlas 的 6 个 sub-skill | [`atlas/skills/`](./atlas/skills/) |
| 看 boss_skill 蒸馏 demo10 封邮件 → 5 层老板 OS | [`atlas/skills/claw-boss-distiller/demo/`](./atlas/skills/claw-boss-distiller/demo/) |
| 跑邮件抽取Python 实现pytest 通过) | [`atlas/mcp-tools/email-extractor/`](./atlas/mcp-tools/email-extractor/) |
| 把 Atlas 装到 Hermes Agent 上跑 | [`atlas/INTEGRATION-hermes.md`](./atlas/INTEGRATION-hermes.md) |
| 项目卡 / 人员卡 / 客户卡 JSON schema | [`atlas/state-schemas/`](./atlas/state-schemas/) |
| 自动化任务定义cron + 事件) | [`autopilots/atlas-*.yaml`](./autopilots/) |
| 看是个什么产品5 分钟读完) | [`AGENTS.md`](./AGENTS.md) + [`SOUL.md`](./SOUL.md) |
| 给客户讲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 配置(待填) | [`prompts/`](./prompts/) `skills/` `tools/` |
---
## 🚀 快速启动 — Atlas
## 🚀 快速启动
### 浏览设计
```bash
git clone https://git.moments.top/Moments.top/assistant-claw.git
cd assistant-claw/atlas
cat README.md # 总览
cd assistant-claw
cat AGENTS.md # 入口模式 + skill 名册 + autopilot 排班
cat SOUL.md # 边界:永不评级员工 / 永不替老板写信 / 永带引用
open client-deck/ # 客户演示
```
### 跑邮件抽取(本地,无需任何外部凭据)
```bash
cd assistant-claw/atlas/mcp-tools/email-extractor
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 \
@ -57,134 +50,142 @@ python -m venv .venv && .venv/bin/pip install -e '.[test]'
```bash
# 公网部署
git clone --depth 1 https://github.com/alchaincyf/nuwa-skill.git \
atlas/skills/claw-boss-distiller/upstream
skills/claw-boss-distiller/upstream
# 客户内网air-gapped部署 —— 用 Moments 私有 Gitea 镜像
# 镜像建立流程见 docs/decisions/0001-mirror-nuwa-skill.md
# 镜像建立流程见 docs/decisions/0001-mirror-nuwa-skill.md
git clone --depth 1 https://git.moments.top/Moments.top/nuwa-skill.git \
atlas/skills/claw-boss-distiller/upstream
skills/claw-boss-distiller/upstream
```
### 接到 Hermes Agent 跑
详见 [`atlas/INTEGRATION-hermes.md`](./atlas/INTEGRATION-hermes.md)。一句话6 个 SKILL.md 已经按 agentskills.io / Hermes 兼容格式写好,直接 `cp -r atlas/skills/* ~/.hermes/skills/atlas/`
详见 [`INTEGRATION-hermes.md`](./INTEGRATION-hermes.md)。一句话6 个 SKILL.md 已经按 agentskills.io / Hermes 兼容格式写好,`cp -r skills/* ~/.hermes/skills/atlas/` 即可被识别
---
## 📐 仓库目录约定
## 📐 仓库结构
```
assistant-claw/
├── README.md ← 本文件
assistant-claw/ ← 本仓库 = 总助 Claw / Atlas
├── README.md 本文件
├── .gitignore
├── prompts/ Vega system prompt + 人格(占位,待填)
├── skills/ Vega 通用 skill占位
├── tools/ Vega 调用的 MCP / 自定义脚本(占位)
├── docs/
│ └── decisions/ ADR — 架构决策记录
├── 🆔 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
├── autopilots/ Multica autopilot 配置YAML多 profile 共用)
│ ├── atlas-daily-brief.yaml
│ ├── atlas-weekly-rollup.yaml
│ ├── atlas-monthly-customer-health.yaml
│ ├── atlas-quarterly-boss-skill-refresh.yaml
│ └── atlas-andon-event.yaml
├── scripts/ 一次性运维脚本
│ └── mirror-nuwa-to-moments.sh nuwa-skill 镜像到 Moments Gitea
└── atlas/ 🦅 Atlas profile 全部资产
├── README.md
├── INTEGRATION-hermes.md Hermes Agent 集成 SOP
├── IDENTITY.md SOUL.md USER.md AGENTS.md TOOLS.md MEMORY.md
│ BOOTSTRAP.md HEARTBEAT.md (+ .zh-CN.md 镜像)
├── CLAUDE.md → AGENTS.md 软链
├── client-deck/ 客户演示主材料
├── mcp-tools/
│ ├── email-extractor.md 设计 spec7 阶段流水线)
│ └── email-extractor/ Python V0 实现fetch + decode + dequote
├── skills/
│ ├── DESCRIPTION.md Hermes category 描述
│ ├── claw-email-parser/SKILL.md
│ ├── claw-project-tracker/SKILL.md
│ ├── claw-people-observer/SKILL.md 硬约束:永不打员工等级
│ ├── claw-customer-radar/SKILL.md CHS + Andon
│ ├── claw-boss-distiller/ ⭐ nuwa-skill 衍生
│ │ ├── SKILL.md ADAPTER.md boss_skill.seed.md
│ │ ├── upstream/README.md 部署时拉取的 SOP
│ │ └── demo/ 完整蒸馏 demo
│ └── claw-report-writer/SKILL.md
└── state-schemas/ 项目 / 人员 / 客户 三张卡 JSON schema
└── 🔧 scripts/
└── mirror-nuwa-to-moments.sh 一键镜像 nuwa-skill 到 Moments Gitea
```
### 内容约定
---
#### `prompts/` — system prompt + 人格
单一可信源。线上 agent 的 prompt 应该从这里发布,不直接在 Multica 后台手动编辑。
## 🎯 产品定位
#### `skills/`
每个 skill 一个子目录,至少包含 `SKILL.md`frontmatter 必须有:
- `name` — 唯一短名kebab-case
- `description` — 一行触发说明
- 可选增强字段(推荐):`version`、`author`、`license`、`metadata.hermes.{tags, category, related_skills, boundaries}` —— 这些让 skill 兼容 [agentskills.io](https://agentskills.io) 和 Hermes Agent
| 维度 | Atlas |
|------|-------|
| **服务对象** | 企业一把手(董事长 / 总经理 / 创始人)一人 |
| **核心痛点** | 太多事情不了了之 |
| **数据源** | 邮件V0→ 微信V0.5)→ 飞书V1 |
| **学习成本** | 0老板照常发邮件AI 在后台读) |
| **首份交付** | W1 末:"过去一年项目盘点 + 落地率诊断"报告 |
| **日常节奏** | 每天 7:30 一封 5 分钟看完的 Brief |
| **北极星指标** | 老板看完 Brief 能立刻说出今日 3 件事 |
| **部署模型** | 100% 客户私有部署,每客户一个独立实例 |
#### `tools/`
- `tools/mcp/` — MCP server 配置
- `tools/scripts/` — Vega 通过 Bash 调用的自定义脚本
#### `autopilots/`
对应 `multica autopilot create` 的配置文件,一个 autopilot 一个 YAML
- `title`、`description`、`agent`、`mode`
- `schedule`cron 或事件触发)
- `payload` / `delivery`
- `guardrails`
发布时通过脚本读这些文件批量调 `multica autopilot create/update`,避免漂移。
#### `docs/decisions/` — ADR
改动 prompts / skills / tools 之前先写一段 ADR比事后追溯便宜。
引用 10 套主流管理框架GTD / RACI / Andy Grove / 9-Box / BARS / CCAR / ONA / CHS / VoC / WBR每条 AI 判定都标依据规则号,老板 override 一行邮件就生效。
---
## ⚙️ 工作约定
- **Issue / 任务流转走 Multica**:所有给 agent 的任务、反馈、复盘走 Multica 的 issue + comment**不在仓库里开 issue**
- **改动走 PR**`prompts/`、`skills/`、`tools/`、`autopilots/`、`atlas/` 下的内容都进 production必须 PR + review,不直接 push main
- **Atlas profile 是按客户实例化部署的**:每个客户的 `state/` 永远在客户机器上,不进本仓库
- **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`
- **兄弟仓库**`research-claw` / `trainer-claw` / `geo-claw`
- **上游开源依赖**
- [`alchaincyf/nuwa-skill`](https://github.com/alchaincyf/nuwa-skill)MIT—— Atlas 心智蒸馏方法论的来源
- [`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
- **Atlas 北极星**:老板每天 5 分钟看完日 Brief能立刻说出今日 3 件事
- **Mirrorair-gapped 客户部署用)**`https://git.moments.top/Moments.top/nuwa-skill`(待建)
---
## 🗺️ 路线图
### Atlas
### 已完成
- [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
- [ ] **nuwa-skill 镜像到 Moments Gitea**(仓库已建则一键 `scripts/mirror-nuwa-to-moments.sh`
- [ ] email-extractor Stage 4-7threading / entities / intent / canonical
- [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 部署
### Vega
- [ ] system prompt 落到 `prompts/system.md`
- [ ] 抽出最常用的 35 个通用 skill
- [ ] 把现有 autopilot 反向导出到 `autopilots/`
- [ ] CI`prompts/``skills/` 做 schema / lint 校验

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

@ -6,16 +6,16 @@
## Context
Atlas's `claw-boss-distiller` skill (under `atlas/skills/claw-boss-distiller/`) is
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 `atlas/skills/claw-boss-distiller/ADAPTER.md`).
(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 \
atlas/skills/claw-boss-distiller/upstream
skills/claw-boss-distiller/upstream
```
This works for environments with public internet. **It does not work for many
@ -53,11 +53,11 @@ After repo exists, run `./scripts/mirror-nuwa-to-moments.sh` to populate it.
`autopilots/` once decided)
- Each Atlas deployment records the upstream commit SHA at install time so
drift is auditable
- README in `atlas/skills/claw-boss-distiller/upstream/` clearly notes the
- 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: `atlas/skills/claw-boss-distiller/ADAPTER.md`
- Adapter notes: `skills/claw-boss-distiller/ADAPTER.md`

View File

View File

@ -38,5 +38,5 @@ rm -rf "$WORKDIR"
echo "✅ Mirror complete: $TARGET"
echo
echo "Next: update atlas/skills/claw-boss-distiller/upstream/README.md to point"
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

View File