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

54 lines
2.6 KiB
Markdown

# State Schemas
Atlas's state lives as JSON files under `state/`. Three primary entities + auxiliary collections.
## Primary entity schemas
| File | Spec | Owner |
|------|------|-------|
| `state/projects/PRJ-*.json` | [project.md](./project.md) | `claw-project-tracker` |
| `state/people/<name>.json` | [person.md](./person.md) | `claw-people-observer` |
| `state/customers/CUST-*.json` | [customer.md](./customer.md) | `claw-customer-radar` |
## Auxiliary collections
| File | Purpose |
|------|---------|
| `state/index.json` | Top-level rollup: counts, tier distribution, last update |
| `state/people/aliases.json` | Alias map for identity resolution |
| `state/customers/domain_map.json` | Email-domain → customer ID map |
| `state/extracted/YYYY-MM/<thread_id>/<msg_id>.json` | Canonical Email JSON output of email-extractor |
| `state/runs/YYYY-MM-DD.json` | Daily run snapshot |
| `state/runs/alerts.json` | Andon alert queue (append-only) |
| `state/audit/project_transitions.csv` | Every state transition |
| `state/audit/people_signals.csv` | Every BARS / CCAR signal asserted |
| `state/audit/boss_overrides.csv` | Every boss override applied |
| `state/audit/rule_fires.csv` | Per-rule fire counter |
| `state/unclustered/<thread_id>.json` | Threads claw-project-tracker couldn't cluster |
| `boss_skill.md` | The L1+L2+...+L5 mental model file (see `claw-boss-distiller/`) |
| `boss_skill.history/YYYY-Q*.md` | Quarterly archive of confirmed boss_skill versions |
## Universal conventions
- All timestamps: ISO 8601 UTC with `Z` suffix
- All amounts: number + ISO 4217 currency code
- All `source_email_ids`: arrays, never single string
- All `rule_refs`: machine-readable rule IDs (R-NN, GTD-WF, BARS-proactivity-3, etc.)
- `_meta` block on every entity: `created_at`, `updated_at`, `atlas_version`, plus entity-specific fields
## Privacy & retention
- All state files live INSIDE the client's network. Never copied out.
- Per-customer / per-person right-to-delete commands purge JSON + emit tombstones to `audit/`
- Daily snapshot under `state/runs/` enables point-in-time rollback (last 90 days kept; older compressed to monthly)
## Schema versioning
- Atlas writes its own version into `_meta.atlas_version`
- Schema changes require a migration script under `scripts/migrations/v0.X-to-v0.Y.py`
- Atlas refuses to read state written by a newer schema version (forward-incompatible by design)
## Validation
Each schema doc above will be paired with a JSON Schema (`.schema.json`) when claw skills are implemented in code. Atlas validates every write; invalid writes go to `state/.invalid/` for debugging.