diff --git a/atlas/AGENTS.md b/AGENTS.md similarity index 100% rename from atlas/AGENTS.md rename to AGENTS.md diff --git a/atlas/AGENTS.zh-CN.md b/AGENTS.zh-CN.md similarity index 100% rename from atlas/AGENTS.zh-CN.md rename to AGENTS.zh-CN.md diff --git a/atlas/BOOTSTRAP.md b/BOOTSTRAP.md similarity index 100% rename from atlas/BOOTSTRAP.md rename to BOOTSTRAP.md diff --git a/atlas/CLAUDE.md b/CLAUDE.md similarity index 100% rename from atlas/CLAUDE.md rename to CLAUDE.md diff --git a/atlas/HEARTBEAT.md b/HEARTBEAT.md similarity index 100% rename from atlas/HEARTBEAT.md rename to HEARTBEAT.md diff --git a/atlas/IDENTITY.md b/IDENTITY.md similarity index 100% rename from atlas/IDENTITY.md rename to IDENTITY.md diff --git a/atlas/IDENTITY.zh-CN.md b/IDENTITY.zh-CN.md similarity index 100% rename from atlas/IDENTITY.zh-CN.md rename to IDENTITY.zh-CN.md diff --git a/atlas/INTEGRATION-hermes.md b/INTEGRATION-hermes.md similarity index 85% rename from atlas/INTEGRATION-hermes.md rename to INTEGRATION-hermes.md index 5c165a9..a92ae82 100644 --- a/atlas/INTEGRATION-hermes.md +++ b/INTEGRATION-hermes.md @@ -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`) diff --git a/atlas/MEMORY.md b/MEMORY.md similarity index 100% rename from atlas/MEMORY.md rename to MEMORY.md diff --git a/README.md b/README.md index d33b95b..97ac764 100644 --- a/README.md +++ b/README.md @@ -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) | -| 给客户讲 Atlas(2 页文档) | [`atlas/client-deck/总助Claw_客户演示_v1.md`](./atlas/client-deck/) | -| 看 Atlas 的 6 个 sub-skill | [`atlas/skills/`](./atlas/skills/) | -| 看 boss_skill 蒸馏 demo(10 封邮件 → 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 蒸馏 demo(10 封邮件 → 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 # 总览 -open client-deck/ # 客户演示 +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 集成 SOP(30 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/ 完整蒸馏 demo(10 邮件 → 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 设计 spec(7 阶段流水线) - │ └── 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 件事 +- **Mirror(air-gapped 客户部署用)**:`https://git.moments.top/Moments.top/nuwa-skill`(待建) --- ## 🗺️ 路线图 -### Atlas +### 已完成 - [x] OpenClaw 8 件套 + 6 sub-skill 设计 - [x] email-extractor V0(Stage 1-3 实现 + 7 测试通过) - [x] boss-distiller demo run(10 封邮件 → 5 层蒸馏验证) - [x] 客户演示 deck v1 - [x] Hermes 集成 SOP -- [ ] **nuwa-skill 镜像到 Moments Gitea**(仓库已建则一键 `scripts/mirror-nuwa-to-moments.sh`) -- [ ] email-extractor Stage 4-7(threading / entities / intent / canonical) +- [x] state schemas(project / person / customer) +- [x] 5 个 autopilot YAML + +### 待办 +- [ ] **nuwa-skill 镜像到 Moments Gitea**(仓库已建则 `bash scripts/mirror-nuwa-to-moments.sh`) +- [ ] email-extractor Stage 4-7(threading / entities / intent / canonical 输出) - [ ] 6 个 sub-skill 的可执行实现(当前是设计文档) - [ ] `atlas-extractor` 包成 MCP server +- [ ] dogfood:装到内部 Hermes 实例端到端跑一次 - [ ] 第一个客户 W1 部署 - -### Vega -- [ ] system prompt 落到 `prompts/system.md` -- [ ] 抽出最常用的 3–5 个通用 skill -- [ ] 把现有 autopilot 反向导出到 `autopilots/` -- [ ] CI:对 `prompts/` 和 `skills/` 做 schema / lint 校验 diff --git a/atlas/SOUL.md b/SOUL.md similarity index 100% rename from atlas/SOUL.md rename to SOUL.md diff --git a/atlas/SOUL.zh-CN.md b/SOUL.zh-CN.md similarity index 100% rename from atlas/SOUL.zh-CN.md rename to SOUL.zh-CN.md diff --git a/atlas/TOOLS.md b/TOOLS.md similarity index 100% rename from atlas/TOOLS.md rename to TOOLS.md diff --git a/atlas/USER.md b/USER.md similarity index 100% rename from atlas/USER.md rename to USER.md diff --git a/atlas/README.md b/atlas/README.md deleted file mode 100644 index 45618f4..0000000 --- a/atlas/README.md +++ /dev/null @@ -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. diff --git a/atlas/client-deck/README.md b/client-deck/README.md similarity index 100% rename from atlas/client-deck/README.md rename to client-deck/README.md diff --git a/atlas/client-deck/总助Claw_客户演示_v1.md b/client-deck/总助Claw_客户演示_v1.md similarity index 100% rename from atlas/client-deck/总助Claw_客户演示_v1.md rename to client-deck/总助Claw_客户演示_v1.md diff --git a/docs/decisions/0001-mirror-nuwa-skill.md b/docs/decisions/0001-mirror-nuwa-skill.md index d0d99e5..5130af1 100644 --- a/docs/decisions/0001-mirror-nuwa-skill.md +++ b/docs/decisions/0001-mirror-nuwa-skill.md @@ -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` diff --git a/atlas/mcp-tools/README.md b/mcp-tools/README.md similarity index 100% rename from atlas/mcp-tools/README.md rename to mcp-tools/README.md diff --git a/atlas/mcp-tools/email-extractor.md b/mcp-tools/email-extractor.md similarity index 100% rename from atlas/mcp-tools/email-extractor.md rename to mcp-tools/email-extractor.md diff --git a/atlas/mcp-tools/email-extractor/README.md b/mcp-tools/email-extractor/README.md similarity index 100% rename from atlas/mcp-tools/email-extractor/README.md rename to mcp-tools/email-extractor/README.md diff --git a/atlas/mcp-tools/email-extractor/atlas_extractor/__init__.py b/mcp-tools/email-extractor/atlas_extractor/__init__.py similarity index 100% rename from atlas/mcp-tools/email-extractor/atlas_extractor/__init__.py rename to mcp-tools/email-extractor/atlas_extractor/__init__.py diff --git a/atlas/mcp-tools/email-extractor/atlas_extractor/cli.py b/mcp-tools/email-extractor/atlas_extractor/cli.py similarity index 100% rename from atlas/mcp-tools/email-extractor/atlas_extractor/cli.py rename to mcp-tools/email-extractor/atlas_extractor/cli.py diff --git a/atlas/mcp-tools/email-extractor/atlas_extractor/decode.py b/mcp-tools/email-extractor/atlas_extractor/decode.py similarity index 100% rename from atlas/mcp-tools/email-extractor/atlas_extractor/decode.py rename to mcp-tools/email-extractor/atlas_extractor/decode.py diff --git a/atlas/mcp-tools/email-extractor/atlas_extractor/dequote.py b/mcp-tools/email-extractor/atlas_extractor/dequote.py similarity index 100% rename from atlas/mcp-tools/email-extractor/atlas_extractor/dequote.py rename to mcp-tools/email-extractor/atlas_extractor/dequote.py diff --git a/atlas/mcp-tools/email-extractor/atlas_extractor/fetch.py b/mcp-tools/email-extractor/atlas_extractor/fetch.py similarity index 100% rename from atlas/mcp-tools/email-extractor/atlas_extractor/fetch.py rename to mcp-tools/email-extractor/atlas_extractor/fetch.py diff --git a/atlas/mcp-tools/email-extractor/atlas_extractor/pipeline.py b/mcp-tools/email-extractor/atlas_extractor/pipeline.py similarity index 100% rename from atlas/mcp-tools/email-extractor/atlas_extractor/pipeline.py rename to mcp-tools/email-extractor/atlas_extractor/pipeline.py diff --git a/atlas/mcp-tools/email-extractor/pyproject.toml b/mcp-tools/email-extractor/pyproject.toml similarity index 100% rename from atlas/mcp-tools/email-extractor/pyproject.toml rename to mcp-tools/email-extractor/pyproject.toml diff --git a/atlas/mcp-tools/email-extractor/tests/fixtures/sample_thread.eml b/mcp-tools/email-extractor/tests/fixtures/sample_thread.eml similarity index 100% rename from atlas/mcp-tools/email-extractor/tests/fixtures/sample_thread.eml rename to mcp-tools/email-extractor/tests/fixtures/sample_thread.eml diff --git a/atlas/mcp-tools/email-extractor/tests/test_dequote.py b/mcp-tools/email-extractor/tests/test_dequote.py similarity index 100% rename from atlas/mcp-tools/email-extractor/tests/test_dequote.py rename to mcp-tools/email-extractor/tests/test_dequote.py diff --git a/prompts/.gitkeep b/prompts/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/scripts/mirror-nuwa-to-moments.sh b/scripts/mirror-nuwa-to-moments.sh index d33fb5f..824f553 100755 --- a/scripts/mirror-nuwa-to-moments.sh +++ b/scripts/mirror-nuwa-to-moments.sh @@ -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." diff --git a/skills/.gitkeep b/skills/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/atlas/skills/DESCRIPTION.md b/skills/DESCRIPTION.md similarity index 100% rename from atlas/skills/DESCRIPTION.md rename to skills/DESCRIPTION.md diff --git a/atlas/skills/README.md b/skills/README.md similarity index 100% rename from atlas/skills/README.md rename to skills/README.md diff --git a/atlas/skills/claw-boss-distiller/ADAPTER.md b/skills/claw-boss-distiller/ADAPTER.md similarity index 100% rename from atlas/skills/claw-boss-distiller/ADAPTER.md rename to skills/claw-boss-distiller/ADAPTER.md diff --git a/atlas/skills/claw-boss-distiller/SKILL.md b/skills/claw-boss-distiller/SKILL.md similarity index 100% rename from atlas/skills/claw-boss-distiller/SKILL.md rename to skills/claw-boss-distiller/SKILL.md diff --git a/atlas/skills/claw-boss-distiller/boss_skill.seed.md b/skills/claw-boss-distiller/boss_skill.seed.md similarity index 100% rename from atlas/skills/claw-boss-distiller/boss_skill.seed.md rename to skills/claw-boss-distiller/boss_skill.seed.md diff --git a/atlas/skills/claw-boss-distiller/demo/INPUT/01-催办-zhangsan-PRJ001.txt b/skills/claw-boss-distiller/demo/INPUT/01-催办-zhangsan-PRJ001.txt similarity index 100% rename from atlas/skills/claw-boss-distiller/demo/INPUT/01-催办-zhangsan-PRJ001.txt rename to skills/claw-boss-distiller/demo/INPUT/01-催办-zhangsan-PRJ001.txt diff --git a/atlas/skills/claw-boss-distiller/demo/INPUT/02-决策-supplier-pick.txt b/skills/claw-boss-distiller/demo/INPUT/02-决策-supplier-pick.txt similarity index 100% rename from atlas/skills/claw-boss-distiller/demo/INPUT/02-决策-supplier-pick.txt rename to skills/claw-boss-distiller/demo/INPUT/02-决策-supplier-pick.txt diff --git a/atlas/skills/claw-boss-distiller/demo/INPUT/03-表扬-wang-onboarding.txt b/skills/claw-boss-distiller/demo/INPUT/03-表扬-wang-onboarding.txt similarity index 100% rename from atlas/skills/claw-boss-distiller/demo/INPUT/03-表扬-wang-onboarding.txt rename to skills/claw-boss-distiller/demo/INPUT/03-表扬-wang-onboarding.txt diff --git a/atlas/skills/claw-boss-distiller/demo/INPUT/04-否决-feature-request.txt b/skills/claw-boss-distiller/demo/INPUT/04-否决-feature-request.txt similarity index 100% rename from atlas/skills/claw-boss-distiller/demo/INPUT/04-否决-feature-request.txt rename to skills/claw-boss-distiller/demo/INPUT/04-否决-feature-request.txt diff --git a/atlas/skills/claw-boss-distiller/demo/INPUT/05-转交-li-customer-D.txt b/skills/claw-boss-distiller/demo/INPUT/05-转交-li-customer-D.txt similarity index 100% rename from atlas/skills/claw-boss-distiller/demo/INPUT/05-转交-li-customer-D.txt rename to skills/claw-boss-distiller/demo/INPUT/05-转交-li-customer-D.txt diff --git a/atlas/skills/claw-boss-distiller/demo/INPUT/06-mid-thread-intervention.txt b/skills/claw-boss-distiller/demo/INPUT/06-mid-thread-intervention.txt similarity index 100% rename from atlas/skills/claw-boss-distiller/demo/INPUT/06-mid-thread-intervention.txt rename to skills/claw-boss-distiller/demo/INPUT/06-mid-thread-intervention.txt diff --git a/atlas/skills/claw-boss-distiller/demo/INPUT/07-pressure-customer-A.txt b/skills/claw-boss-distiller/demo/INPUT/07-pressure-customer-A.txt similarity index 100% rename from atlas/skills/claw-boss-distiller/demo/INPUT/07-pressure-customer-A.txt rename to skills/claw-boss-distiller/demo/INPUT/07-pressure-customer-A.txt diff --git a/atlas/skills/claw-boss-distiller/demo/INPUT/08-closing-PRJ022.txt b/skills/claw-boss-distiller/demo/INPUT/08-closing-PRJ022.txt similarity index 100% rename from atlas/skills/claw-boss-distiller/demo/INPUT/08-closing-PRJ022.txt rename to skills/claw-boss-distiller/demo/INPUT/08-closing-PRJ022.txt diff --git a/atlas/skills/claw-boss-distiller/demo/INPUT/09-short-reply-FYI.txt b/skills/claw-boss-distiller/demo/INPUT/09-short-reply-FYI.txt similarity index 100% rename from atlas/skills/claw-boss-distiller/demo/INPUT/09-short-reply-FYI.txt rename to skills/claw-boss-distiller/demo/INPUT/09-short-reply-FYI.txt diff --git a/atlas/skills/claw-boss-distiller/demo/INPUT/10-long-reasoning-Q3-strategy.txt b/skills/claw-boss-distiller/demo/INPUT/10-long-reasoning-Q3-strategy.txt similarity index 100% rename from atlas/skills/claw-boss-distiller/demo/INPUT/10-long-reasoning-Q3-strategy.txt rename to skills/claw-boss-distiller/demo/INPUT/10-long-reasoning-Q3-strategy.txt diff --git a/atlas/skills/claw-boss-distiller/demo/OUTPUT/boss_skill.demo.md b/skills/claw-boss-distiller/demo/OUTPUT/boss_skill.demo.md similarity index 100% rename from atlas/skills/claw-boss-distiller/demo/OUTPUT/boss_skill.demo.md rename to skills/claw-boss-distiller/demo/OUTPUT/boss_skill.demo.md diff --git a/atlas/skills/claw-boss-distiller/demo/OUTPUT/run-summary.md b/skills/claw-boss-distiller/demo/OUTPUT/run-summary.md similarity index 100% rename from atlas/skills/claw-boss-distiller/demo/OUTPUT/run-summary.md rename to skills/claw-boss-distiller/demo/OUTPUT/run-summary.md diff --git a/atlas/skills/claw-boss-distiller/demo/README.md b/skills/claw-boss-distiller/demo/README.md similarity index 100% rename from atlas/skills/claw-boss-distiller/demo/README.md rename to skills/claw-boss-distiller/demo/README.md diff --git a/atlas/skills/claw-boss-distiller/upstream/README.md b/skills/claw-boss-distiller/upstream/README.md similarity index 100% rename from atlas/skills/claw-boss-distiller/upstream/README.md rename to skills/claw-boss-distiller/upstream/README.md diff --git a/atlas/skills/claw-customer-radar/SKILL.md b/skills/claw-customer-radar/SKILL.md similarity index 100% rename from atlas/skills/claw-customer-radar/SKILL.md rename to skills/claw-customer-radar/SKILL.md diff --git a/atlas/skills/claw-email-parser/SKILL.md b/skills/claw-email-parser/SKILL.md similarity index 100% rename from atlas/skills/claw-email-parser/SKILL.md rename to skills/claw-email-parser/SKILL.md diff --git a/atlas/skills/claw-people-observer/SKILL.md b/skills/claw-people-observer/SKILL.md similarity index 100% rename from atlas/skills/claw-people-observer/SKILL.md rename to skills/claw-people-observer/SKILL.md diff --git a/atlas/skills/claw-project-tracker/SKILL.md b/skills/claw-project-tracker/SKILL.md similarity index 100% rename from atlas/skills/claw-project-tracker/SKILL.md rename to skills/claw-project-tracker/SKILL.md diff --git a/atlas/skills/claw-report-writer/SKILL.md b/skills/claw-report-writer/SKILL.md similarity index 100% rename from atlas/skills/claw-report-writer/SKILL.md rename to skills/claw-report-writer/SKILL.md diff --git a/atlas/state-schemas/README.md b/state-schemas/README.md similarity index 100% rename from atlas/state-schemas/README.md rename to state-schemas/README.md diff --git a/atlas/state-schemas/customer.md b/state-schemas/customer.md similarity index 100% rename from atlas/state-schemas/customer.md rename to state-schemas/customer.md diff --git a/atlas/state-schemas/person.md b/state-schemas/person.md similarity index 100% rename from atlas/state-schemas/person.md rename to state-schemas/person.md diff --git a/atlas/state-schemas/project.md b/state-schemas/project.md similarity index 100% rename from atlas/state-schemas/project.md rename to state-schemas/project.md diff --git a/tools/.gitkeep b/tools/.gitkeep deleted file mode 100644 index e69de29..0000000