Personal AI OS

Progress

5/13 checklist items · PR merge blocked until privacy review satisfied

Security

# Security & privacy review — Z2H migration artifacts (2026-11-01)

**Verdict:** Commit `9425a4a` contained **categories of data that must not live in git**, even in a private repo. **Do not merge PR #1 until the sanitization commit on this branch is merged** (or an equivalent remediation). This document describes findings **without repeating sensitive values**.

## Findings (severity)

| Category | Was in git? | Risk |
|----------|-------------|------|
| Raw Chief export markdown (`migration/source/Z2H-*.md`) | Yes | Full agent profiles, memory export text, integration dumps |
| Operational RecallMemory journal (`memory-seed.yaml`) | Yes | Dated decisions, client incidents, mailbox/login context |
| Agent `description` fields (registry + profile JSON) | Yes | Personal mailboxes, ad account identifiers, client financial notes, third-party names |
| Trello board snapshot JSON | Yes | Client/project card titles and board structure |
| Credentials / API tokens | No (pattern scan clean) | — |
| SENSITIVE index secret **values** | No (descriptions only in export) | — |

## Remediation applied on branch (post-review)

1. **Gitignore** local-only paths: `migration/source/Z2H-*.md`, `config/z2h/memory-seed.local.yaml`.
2. **`npm run sanitize:z2h`** — redacts PII patterns in `config/z2h/**`; replaces memory seed with git-safe stub + local overlay path.
3. **Trello snapshot** reduced to board names + counts only.
4. **`tests/privacy-git-artifacts.test.ts`** — fails CI if emails or raw export files reappear in tracked paths.
5. **Import workflow:** `npm run import:z2h` (local) → `npm run sanitize:z2h` before commit.

## History note

Commit `9425a4a` already pushed sensitive categories to GitHub. For a private repo, **rotating nothing is required for tokens** (none found), but you may want **git history rewrite** (BFG/filter-repo) to purge blobs if the repo could become shared. That is optional and operator-driven; not automated here.

## Merge gate

- PR #1 safe to merge only when privacy tests pass and `docs/SECURITY-MIGRATION-REVIEW.md` checklist items are satisfied on the branch tip.

Missing exports (do not invent)

# Z2H → Personal AI OS migration checklist

From audit 2026-11-01 + Z2H Chief export 2026-11-01. Dashboard: `/migration`.

1. [x] Export z2h-operating-rule v3 + all user skills verbatim → `skills/*/SKILL.md` (9 skills)
2. [x] Export all Z2H agent profiles/instructions + org chart → `config/z2h/agents/*` + registry
3. [x] Platform memory export (profile/journal) → `config/z2h/memory-seed.yaml` (95 facts; SENSITIVE index descriptions only)
4. [x] Snapshot Trello boards → `config/z2h/trello-boards.snapshot.json` (titles/metadata)
5. [ ] Archive `/workspace/qa` + clients ACCESS-INVENTORY (reference copies on Mac)
6. [ ] Inventory vault/keychain **names** + env **names**; rotate plan after move
7. [x] Document routine schedules → `config/z2h/routines.yaml` (PAIOS **disabled** until cutover)
8. [ ] Stand up read-only connectors (Gmail personal/suavemente, Trello live, GitHub, Hostinger read)
9. [ ] Recreate Reviewer + Chief live paths before write-capable bots
10. [ ] Recreate coordinators, then client/venture managers (mock OK today)
11. [ ] Recreate Dev with Mac-dependency mitigation plan
12. [ ] Re-enable routines last; parallel-run with Grok Bot before cutover
13. [ ] Cutover only after Nikola explicit approval

**Re-import:** `npm run import:z2h` (reads `migration/source/Z2H-*.md`).

**Registry:** `config/z2h/agents.registry.yaml` (25 agents, TMG excluded).