assistant-claw/atlas/state-schemas/person.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
5.4 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.

# State Schema: `state/people/<name>.json`
Owned by: `claw-people-observer` (write); read by `claw-report-writer`.
## Hard rule
**This schema NEVER contains a verdict.** Atlas writes only data; the boss writes any verdict (e.g., 9-Box potential dimension, A/B/C label).
Fields that would imply a verdict (`潜力`, `Topgrading_等级`) exist with `null` defaults and are written by the boss via override only — never by Atlas.
## Identifier convention
`<canonical_name>.json` where canonical_name is the merged identity (after alias resolution). Aliases are stored in `state/people/aliases.json`.
Examples: `张三.json`, `lisi.json`, `Wang_Wu.json`
## Top-level shape
```jsonc
{
"name": "张三", // string, canonical identity
"aliases": ["zhang san", "Z.San"], // array<string>
"internal": true, // bool — true if email domain ∈ company_domains
"primary_email": "zhangsan@us.com", // string
"产出指标": { // object — pure metrics, no verdicts
"active_projects": 8, // int, projects where person is Responsible AND status=Active
"completed_30d": 2, // int, completed in last 30 days
"stalled_ratio": 0.375, // float, stalled / (active + stalled)
"avg_response_hours": 27, // float, median, only when person is Responsible
"客户主动催办次数_30d": 4, // int
"computed_at": "2026-05-09T07:30:00Z"
},
"行为标签_BARS": [ // array<object>, behavior-anchored ratings
{
"维度": "主动性", // string, BARS dimension
"锚点": "客户首次催才回应", // string, the matched anchor phrase
"评分": 2, // int 1..5
"依据邮件": ["msg-abc@..."], // array<string>, source email IDs
"rule_ref": "BARS-proactivity-3", // string, which rule produced this tag
"asserted_at": "2026-05-09T07:30:00Z"
}
],
"关键事件_CCAR_30d": [ // array<object>, critical incidents
{
"date": "2026-04-22",
"事件": "PRJ-001 客户投诉,未升级",
"性质": "负向", // enum: 正向 | 负向
"source_email_ids": ["msg-xyz@..."],
"rule_ref": "R-CCAR-escalation-missed"
}
],
"网络中心度_ONA": { // object, refreshed weekly
"信息中介度": 0.42, // float [0,1], betweenness centrality
"孤立指数": 0.18, // float [0,1], 1 / unique_correspondents (normalized)
"解读": "中等枢纽,未被孤立", // string, machine-generated brief
"computed_at": "2026-05-06T08:00:00Z"
},
"9_box_自动估": { // object
"performance": "中下", // enum: 高 | 中 | 中下 | 低 — auto-estimated
"潜力": null, // enum or null — NEVER auto-set; boss-only
"建议象限": "Solid Performer 或 Underperformer看潜力定", // string, prose suggestion
"boss_to_confirm": true // bool, true until boss writes 潜力
},
"Topgrading_等级": null, // enum: A | B+ | B | B- | C | null — boss-only
"data_sparse": false, // bool, true when person has < 3 active projects
"_meta": {
"created_at": "2025-08-12T10:00:00Z",
"updated_at": "2026-05-09T07:30:12Z",
"atlas_version": "v0.4",
"merge_history": [] // append when aliases get merged in
}
}
```
## What Atlas IS allowed to write
- Activity metrics (项目数 / 卡点率 / 响应时长 etc.)
- Behavior tags from boss-confirmed BARS anchors
- Critical incidents matched by rules
- ONA centrality
- 9-Box performance dimension (auto-estimate, with `boss_to_confirm: true`)
## What Atlas is NEVER allowed to write
- `9_box_自动估.潜力` — boss-only
- `Topgrading_等级` — boss-only
- Any field that says "应该" / "建议解雇" / "不胜任" — language guard
- BARS tags using anchors not in `boss_skill.md > Decision Heuristics`
## Boss override format
Boss replies to Brief or weekly rollup:
```
OVERRIDE PEOPLE 张三 9_box_自动估.潜力="高"
OVERRIDE PEOPLE 张三 Topgrading_等级="B+"
OVERRIDE PEOPLE 张三 行为标签 retire BARS-proactivity-3 reason="不公平"
```
Logged to `state/audit/boss_overrides.csv`. Retired BARS tags increment a counter in the rule's audit; if any rule is retired ≥ 2 times, it surfaces in next quarterly distillation review.
## Display rule for `claw-report-writer`
When rendering people sections in Brief / Rollup:
- Always lead with metric ("张三 项目密度 8, 卡点率 37.5%")
- Never lead with a verdict ("张三表现下滑")
- BARS tags shown only with their anchor + email ID hint
- Topgrading_等级 shown only if boss has filled it
- ONA centrality used as supplementary context, not headline
## Privacy
- This file lives inside the client's network. Never leaves.
- Right-to-delete: a single CLI command (`atlas-people-purge --name "张三"`) wipes all related state and writes a tombstone to `audit/`.