assistant-claw/skills/claw-boss-distiller/ADAPTER.md
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

99 lines
6.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Adapter: nuwa-skill → claw-boss-distiller
We vendor `upstream/` (= [`alchaincyf/nuwa-skill`](https://github.com/alchaincyf/nuwa-skill), MIT) and adapt it for our specific job: distill a private boss from their own private email corpus.
## What we keep from nuwa
- **5-layer output structure** (Expression DNA / Mental Models / Decision Heuristics / Anti-Patterns / Honest Boundaries) — directly applicable
- **Triple verification** (cross-domain / generative / exclusive) — same logic, prevents random one-off comments from being elevated to "the boss's mental model"
- **Quality self-check** (`references/extraction-framework.md` § 六) — copy verbatim
- **6-bucket collection paradigm** — but rewired (see below)
- **Phase 4 validation** (sanity / edge / voice) — keep as-is, just substitute the test set
- **Honest Boundaries discipline** — never invent, mark "信息不足"
## What we replace
| nuwa default | Atlas adaptation | Why |
|---|---|---|
| Public figure (Munger, Jobs, etc.) | Private boss at one client | The whole point — we cannot search "what does Boss X think about Y" online; we have only their email corpus |
| 6 web-search agents (books / podcasts / Twitter / external views / decisions / timeline) | 6 email-bucket agents (see below) | No public corpus; the email corpus *is* the data |
| Output as standalone perspective skill (`xxx-perspective`) | Output as `boss_skill.md` consumed by Atlas's other 5 skills | We don't role-play the boss — we cite their rules |
| Role-play activation (`use Munger to analyze...`) | **No role-play**. `boss_skill.md` is a rule library other skills read — never spoken in first person | We are an observer/advisor for the boss, not an impersonator |
| Public release | Private to the client deployment | Privacy-critical; never leaves client network |
## What we add
| Addition | Reason |
|---|---|
| **Boss confirmation gate** between draft and live | Boss owns their own model; we propose, boss disposes |
| **Status field** on every rule (`draft` / `confirmed` / `retired`) | Audit trail; rule lifecycle is observable |
| **Source email IDs** per rule | Boss can drill from rule → "show me the 7 emails this came from" |
| **Quarterly diff workflow** | New emails arrive constantly; rules drift; quarterly refresh + diff for boss |
| **`boss_skill.history/` archive** | Every confirmed version preserved for compare |
## Six Email Buckets (replaces nuwa's 6 web agents)
| Bucket | Scope | What we look for |
|---|---|---|
| **B1: Outgoing-by-intent** | All boss-sent emails grouped by intent (催办/决策/转交/否决/表扬) | How boss expresses each intent; boundary phrases; tells |
| **B2: Mid-thread interventions** | Threads where boss jumped in mid-conversation | High-signal moments — boss only intervenes when something matters |
| **B3: Short replies (< 50 words)** | Compressed-mode boss thinking | Reveals what boss treats as obvious; the unstated frame |
| **B4: Long replies (> 200 words)** | Reasoning-mode boss thinking | Reveals full chain of thought; the explicit frame |
| **B5: Pressure threads** | Threads with customer-side complaints / urgent escalations | How boss responds under stress; non-negotiables surface |
| **B6: Closing threads** | Threads boss explicitly closed (verbal verdict, deliverable accepted, project killed) | Decision criteria + closing language |
This replaces nuwa's `references/research/0106.md` collection schema. The aggregate output still lives at `references/research/` but each `0X-xxx.md` is now an email-bucket index, not a web-search dump.
## Output Format Diff
nuwa output has `## 角色扮演规则` and `## 身份卡` sections — **we delete both.** Atlas's `boss_skill.md` is a rule library, not an impersonation.
We also delete `## 智识谱系` (intellectual lineage) — interesting for public figures, irrelevant for a private boss.
We keep, in order:
1. `## L1 — Expression DNA`
2. `## L2 — Mental Models`
3. `## L3 — Decision Heuristics`
4. `## L4 — Anti-Patterns`
5. `## L5 — Honest Boundaries`
6. `## Source Index` (which buckets / how many emails fed this version)
7. `## Audit Log` (status changes, last reviewed, last fired counts)
## Mapping Table for the Implementor
| nuwa file | Atlas equivalent | Status |
|---|---|---|
| `upstream/SKILL.md` | `claw-boss-distiller/SKILL.md` (already written) | Done |
| `upstream/references/extraction-framework.md` | Reused as-is via `upstream/` | Linked |
| `upstream/references/skill-template.md` | `claw-boss-distiller/boss_skill.template.md` (delete role-play & 智识谱系 sections) | Done — see `boss_skill.seed.md` for filled example |
| `upstream/scripts/` | Possibly reused for cleanup utilities; the rest don't apply (we don't download YouTube subtitles) | Skip in V0 |
| `upstream/examples/*-perspective/` | Not applicable (no public figures); keep for reference only | Reference only |
## Two-Pass Run Pattern (V0 default)
### Pass 1 — Cold Start (W1 of new deployment)
- Input: 6 months of boss outgoing email
- 6 buckets populated in parallel
- Triple verification yields ~20 candidate rules
- Output: `boss_skill.md` v0 with **all rules `status: draft`**
- Boss audit session in W2 → bumps confirmed rules to `status: confirmed`
### Pass N — Quarterly Refresh
- Input: 90 days of new outgoing email + override log from past 90 days
- Same 6-bucket pipeline
- Diff vs current `boss_skill.md`:
- **Add candidates** — patterns now seen ≥ 3 times that weren't there before
- **Revise candidates** — confirmed rules whose evidence has shifted
- **Retire candidates** — confirmed rules with 0 fires in 90 days OR overridden ≥ 2 times
- Boss reviews diff, applies, archives prior version under `boss_skill.history/YYYY-Q*.md`
## Why we don't simply use nuwa unchanged
- nuwa's role-play default would have Atlas speak *as* the boss — wrong product. We surface signals; we don't impersonate.
- nuwa's web-search agents would crash here — there's no web corpus for a private boss.
- nuwa expects the output to be the deliverable; we expect the output to be a rule library other skills consume.
But the **methodology** — how to distinguish a real mental model from random noise — is exactly what nuwa does well. So we vendor + adapt.