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).
122 lines
5.4 KiB
Markdown
122 lines
5.4 KiB
Markdown
# 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/`.
|