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

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/`.