assistant-claw/atlas/skills/claw-customer-radar/SKILL.md
Vega (Atlas scaffolding) ce9f27320a Add Atlas profile under atlas/ — boss-perspective project execution radar
This adds the full Atlas (总助 Claw / 老板视角项目执行雷达) scaffolding as a
sibling profile to the existing Vega general-purpose assistant. All Atlas content
lives under atlas/ to keep the existing top-level skeleton intact.

What's included:

- atlas/IDENTITY.md, SOUL.md, USER.md, AGENTS.md, MEMORY.md, BOOTSTRAP.md,
  HEARTBEAT.md, TOOLS.md (+ zh-CN mirrors) — full OpenClaw 8-piece set
  matching the zero-cca convention
- atlas/skills/ — 6 sub-skills with frontmatter:
  claw-email-parser / claw-project-tracker / claw-people-observer /
  claw-customer-radar / claw-boss-distiller / claw-report-writer
- atlas/skills/claw-boss-distiller/ — adapter notes for nuwa-skill, 5-layer
  boss_skill seed template (23 rules across Expression DNA / Mental Models /
  Decision Heuristics / Anti-Patterns / Honest Boundaries), and a complete
  synthetic distillation demo (10 input emails -> validated 5-layer output)
- atlas/mcp-tools/email-extractor/ — Python implementation of stages 1-3
  (fetch + decode + dequote), 7 pytest tests passing, CLI: atlas-extract
- atlas/state-schemas/ — formal JSON schemas for project / person / customer
  cards with the no-employee-rating hard constraint baked in
- atlas/client-deck/ — 2-page client-facing pitch document
- autopilots/atlas-*.yaml — 5 autopilot configs (daily / weekly / monthly /
  quarterly + andon event-triggered) for a future Multica-side scheduler

Notes:

- nuwa-skill (MIT, https://github.com/alchaincyf/nuwa-skill) NOT vendored;
  fetch at deploy time via instructions in
  atlas/skills/claw-boss-distiller/upstream/README.md
- Vega-side prompts/skills/tools/autopilots/docs scaffold left untouched
- Top-level README.md updated with a brief Atlas pointer; rest preserved
2026-05-09 17:00:29 +08:00

4.0 KiB
Raw Blame History

name description
claw-customer-radar Compute Customer Health Score, sentiment trend, RFM, decision-chain map, churn signals. Fire Andon alerts when health crosses thresholds.

claw-customer-radar

Purpose

Atlas's third lens (after project and people). Tracks each external customer as an entity with health, sentiment trajectory, and early-warning signals.

Inputs

  • Email JSON (focus on external sender domains)
  • state/projects/*.json (for project-health input to CHS)
  • state/customers/*.json (existing customer cards)

Outputs

  • state/customers/CUST-*.json
  • Andon alert JSON to state/runs/alerts.json when health crosses thresholds
  • New state/customers/UNCLASSIFIED-<domain>.json for unknown customer domains

Customer Health Score (CHS)

CHS = 0.4 × project_health
    + 0.3 × sentiment_trend_30d
    + 0.2 × email_frequency_normalcy
    + 0.1 × monetary_scale

Tier:
  ≥ 80 → 🟢 Green
  60  79 → 🟡 Yellow
  < 60 → 🔴 Red

project_health

  • Per associated project: Active=1.0, Stalled=0.3, Completed (recent)=1.0, Dropped=0
  • Weighted average across that customer's projects

sentiment_trend_30d

  • VoC: extract customer-side quotes from Email JSON
  • Sentiment scoring: per-quote score in [-1, +1] via LLM with calibrated rubric
  • Trend = slope of last 30 days; convert to [0, 1] with 0.5 + slope/2

email_frequency_normalcy

  • Compare last-30-day frequency to trailing-90-day baseline
  • 0.5 ± deviation; ≤ 0.3 means significant drop (silence is a churn signal)

monetary_scale

  • Sum of associated project amounts, normalized against this client's customer book
  • Big customers tilt the score so a Yellow on a whale beats a Yellow on a small one

Sentiment Trend (separate field)

Stored as a 90-day series for chart rendering:

"情绪趋势_90d": [
  {"date": "2026-02", "score": 0.7, "代表词": "期待 / 配合"},
  {"date": "2026-03", "score": 0.5, "代表词": "等候 / 询问"},
  {"date": "2026-04", "score": 0.2, "代表词": "催 / 失望"}
]

VoC Extraction Rules

Surface up to 5 most-impactful customer quotes per 30-day window:

  • Strong negative (再这样我就找别家, 你们到底什么时候能...)
  • Strong positive (做得不错, 非常感谢)
  • Decision-maker direct intervention (boss-level customer person speaks up)
  • Threats / explicit deadlines

Each quote keeps source email ID and speaker identity.

Decision Chain Map

For each customer, identify 25 key external people and their role:

Role Heuristic
决策者 most senior title in signature; or person whose intervention shifts thread
执行接口 most frequent external sender on operational topics
用户 recipient of deliverables, may be silent
阻拦者 person who frequently raises objections

Churn Signals

Maintain a list of signals; populate when triggered:

Signal Trigger
决策者亲自施压 Decision-maker speaks up after silence
频率骤降 30d frequency < 30% of 90d baseline
合同到期临近 Within 60 days of known contract end (boss-provided)
负面 VoC 累积 ≥ 3 strong-negative quotes in 30 days
项目同时 stall ≥ 2 projects with this customer in Stalled simultaneously
关键人离职 Detected via OOO message + replacement signature

Andon Alert Triggers (fire to state/runs/alerts.json)

  • Tier transition Green→Yellow or Yellow→Red
  • Strong-negative VoC quote
  • ≥ 2 active churn signals simultaneously

Each alert includes: customer_id, trigger, source email IDs, recommended boss action, suppression-key (don't re-fire same alert within 24h of acknowledgment).

Sample Output

See state-schemas/customer.md for full example. Key fields produced:

  • id, name, lifecycle_stage
  • 健康度 { score, 档位, 构成 }
  • 情绪趋势_90d
  • RFM { Recency, Frequency, Monetary }
  • 我方接口人 (cross-ref to people)
  • 客户方决策链
  • VoC_关键原话_30d
  • 流失预警信号
  • 老板视角建议