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

122 lines
4.0 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.

---
name: claw-customer-radar
description: 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:
```json
"情绪趋势_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 GreenYellow or YellowRed
- 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`
- `流失预警信号`
- `老板视角建议`