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
4.8 KiB
State Schema: state/projects/PRJ-*.json
Owned by: claw-project-tracker (write); read by all other skills.
Identifier convention
PRJ-YYYY-NNN-<short-slug> where:
YYYY= year project first detectedNNN= zero-padded sequence within that year<short-slug>= ≤ 24 chars, kebab-case, derived from most-frequent project keyword
Examples: PRJ-2025-001-客户A官网改版, PRJ-2026-014-supply-chain-rebuild
Top-level shape
{
"id": "PRJ-2025-001-客户A官网改版", // string, unique
"name": "客户A 官网改版", // string, human-readable
"客户方": "CUST-clientco", // string | null, FK → customers/
"raci": { // object
"responsible": ["张三"], // array<string>, internal people
"accountable": "李四", // string | null
"consulted": ["设计部"], // array<string>
"informed": ["Boss"] // array<string>
},
"gtd": { // object — GTD layer
"next_action": "等张三发出修改稿 v3", // string | null
"waiting_for": { // object | null
"who": "张三",
"since": "2026-04-28", // ISO date
"days_overdue": 11 // int, computed daily
},
"状态": "Stalled" // enum: Active | Stalled | Completed | Someday | Dropped
},
"落地率判定": { // object
"结论": "Stalled", // mirrors gtd.状态
"依据": [ // array<string>
"GTD-WF: 11 天无回复(阈值 5)",
"R-37: 客户主动催办 2 次"
],
"rule_refs": ["GTD-WF", "R-37"], // array<string>, machine-readable
"置信度": 0.82, // float [0,1]
"source_email_ids": ["msg-abc@...", "msg-def@..."] // array<string>
},
"时间线": [ // array<object>, append-only event log
{
"date": "2026-03-12",
"event": "项目启动",
"source_email_ids": ["msg-001@..."],
"actor": "Boss"
}
],
"金额": 120000, // number | null, currency in 客户方's region
"currency": "CNY", // ISO 4217
"下一步建议": "Boss 亲自 ping 张三 + cc 李四,表明 deadline", // string
"_meta": { // internal Atlas bookkeeping
"created_at": "2026-03-12T08:30:00Z",
"updated_at": "2026-05-09T07:30:12Z",
"atlas_version": "v0.4",
"last_state_transition": {
"from": "Active", "to": "Stalled",
"at": "2026-05-08T07:30:00Z",
"rule_refs": ["GTD-WF", "R-12"]
},
"merged_from": null // string | null, set when project was merged from another id
}
}
Field rules
Required vs optional
Required at creation: id, name, gtd.状态, _meta.created_at, _meta.atlas_version
Required at first state-transition: 落地率判定.结论, 落地率判定.rule_refs, 落地率判定.source_email_ids
Optional: 金额 / currency (if money never mentioned in thread), 下一步建议 (only set when state is Stalled or Active)
Enum: gtd.状态
| Value | Definition | Transitions |
|---|---|---|
Active |
Has Next Action; recent activity within stall threshold | → Stalled, Completed, Someday |
Stalled |
Waiting-For days_overdue > stall_threshold; no closure | → Active (resumed), Completed, Dropped |
Completed |
Terminal keyword detected OR boss explicit close | → (none — terminal) |
Someday |
Boss said "先放放" / "稍后" type closure | → Active (resumed), Dropped |
Dropped |
60+ days no signal AND was Stalled or Someday | → Active (rare resurrection) |
Audit log
Every state transition writes a row to state/audit/project_transitions.csv:
timestamp,project_id,from_state,to_state,rule_refs,source_email_ids
2026-05-08T07:30:00Z,PRJ-2025-001,Active,Stalled,"GTD-WF;R-12","msg-abc;msg-def"
Boss override format
Boss replies to Brief with: OVERRIDE PRJ-2025-001 状态=Active reason="正在线下沟通,下周一交" — Atlas applies, logs to state/audit/boss_overrides.csv, and downgrades the rule that produced the wrong call.
Validation
JSON Schema at state-schemas/project.schema.json (TBD — write when implementing claw-project-tracker code).
Atlas validates every write against the schema; invalid writes go to state/.invalid/ for debugging.