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).
5.4 KiB
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
{
"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-onlyTopgrading_等级— 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 toaudit/.