Human Distillation
Turn a person's source material into a working coworker agent: a persona
written into the agent identity files (IDENTITY.md, SOUL.md, USER.md,
CV.md) and a work-module skill (skills/<alias>-playbook/) that carries
their workflows, preferences, and judgment. Every generated claim cites the
corpus documents it came from; nothing is invented beyond the source.
The deterministic engine is the hybridclaw coworker CLI. Your judgment
enters the pipeline through exactly one artefact: extraction.json. You never
edit the persona files directly — the engine renders them from validated
claims so every line stays cited, versioned, and reversible.
Hard rules
- Consent first. Distilling a real, named human requires a recorded
consent artefact. Never run
coworker consent record on your own
initiative or invent a consent statement — the operator must provide the
statement and run (or explicitly dictate) the command. If a run is
blocked, relay the remediation message and stop.
- Evidence or nothing. Every claim in
extraction.json must cite real
corpus document ids from the analysis packet. If you cannot support a
claim, leave it out or put the question in openQuestions. The engine
flags and drops uncited claims — do not try to route around it.
- Never impersonate. The coworker mirrors the subject's judgment, not
their identity. Do not sign as the subject or present generated output as
written by them.
- Privacy. Third-party PII is masked at ingest. If you see unmasked
third-party contact details anywhere in generated output, stop and run
hybridclaw coworker eval --alias <alias> to surface it.
Pipeline
hybridclaw coworker distill --alias <alias> --name "<display name>" \
[--role "<role>"] [--match-alias <name|email>]... --source <path> [...]
Stages run in order, each resumable: ingest → analyse → build → merge → correct. The run record lives at runtime/distill/<run-id>/run.json in the
coworker's agent workspace, with a human-readable REPORT.md beside it.
- Intake. Ask the operator: who is being distilled (display name, role,
relationship), which aliases/emails identify their authorship
(
--match-alias, critical for chat exports), whether they are a real
person (default) or fictional (--fictional), and what source material
exists.
- Consent. For a real person, confirm consent is recorded
(
hybridclaw coworker consent show --alias <alias>). If not, give the
operator the exact consent record command to run and wait.
- Ingest + analyse. Run
coworker distill with the sources. The engine
masks third-party PII, weights quality (authored long-form > chat
one-liners), holds out a slice for eval, and writes an analysis packet.
- Extract. Read
analysis/PACKET.md in the run directory and write
analysis/extraction.json following
references/extraction-contract.md
and the six-dimension model in
references/six-dimensions.md.
- Merge. Resume the run
(
coworker distill --alias <alias> --resume <run-id>). The engine
validates citations, merges claims, writes the persona files and the
work-module skill as versioned edits, and opens review items for any
conflict you declared. Report flagged claims and open reviews to the
operator verbatim from REPORT.md.
- Verify. Run
hybridclaw coworker eval --alias <alias>. A leakage
failure must be reported and fixed before the coworker is used.
Intake modalities
Use every channel of evidence the operator can provide; they compound:
| Modality |
How |
| Chat exports |
Slack export dirs/JSON, generic chat JSONL — --kind auto detects them |
| Email |
.mbox archives |
| Meetings ("listening") |
Speaker-labelled transcripts (Name: text lines) |
| Writing samples |
Markdown / text docs, decision records, posts |
| Questionnaire |
hybridclaw coworker interview --alias <alias> [--audience subject|colleague] --out <file> generates a gap-driven interview targeting the dimensions with least evidence; the answered file is ingested with --kind interview (highest weight) |
| Mirroring |
Live draft-compare-diff sessions per references/mirroring.md; differences become corrections |
After each merge, check openQuestions and dimension coverage in the packet;
offer the operator a fresh interview round for the weakest dimensions.
Incremental updates and corrections
- New material later: same
coworker distill command — only the delta is
re-analysed; standing conclusions are never overwritten. Contradictions
you declare via conflictsWith become review items the operator resolves
with coworker review resolve.
- When the operator corrects the coworker's behaviour in conversation
("she'd never open with a greeting"), persist it immediately:
hybridclaw coworker correct --alias <alias> --note "<correction>".
It becomes a maximum-weight corpus document and is promoted into the
persona on the next run. Then continue with the corrected behaviour in the
current session.
Operating boundaries
- Green: reading sources/corpus/status/reports, generating questionnaires,
writing
extraction.json, coworker status|eval|interview|review list.
- Amber (confirm with the operator first):
coworker distill runs and
resumes (they write workspace files, reversibly), coworker correct,
coworker review resolve, coworker export.
- Red (never): recording or fabricating consent,
coworker forget
(operator-only), editing generated persona/skill files by hand, distilling
someone the operator has not named.
Container note
If hybridclaw is not on PATH (sandboxed container session), do the
file-contract half yourself — read PACKET.md, write extraction.json —
and hand the operator the exact distill --resume command to run locally.
Deeper material
- references/six-dimensions.md — the persona model and what evidence each dimension needs
- references/extraction-contract.md — the
extraction.json schema with a worked example
- references/interview-protocol.md — running subject and colleague interviews well
- references/mirroring.md — the live mirroring loop and fidelity grading
1---2name: human-distill3description: Distill a real person into a hireable coworker agent from their source material — chat exports, emails, meeting transcripts, documents, interviews, and live mirroring. Use when the operator wants to clone a colleague, build a coworker from someone's writing, onboard a digital twin, or asks to 'distill', 'clone', or 'mirror' a person. Consent-gated for real humans.4---56# Human Distillation78Turn a person's source material into a working coworker agent: a persona9written into the agent identity files (`IDENTITY.md`, `SOUL.md`, `USER.md`,10`CV.md`) and a work-module skill (`skills/<alias>-playbook/`) that carries11their workflows, preferences, and judgment. Every generated claim cites the12corpus documents it came from; nothing is invented beyond the source.1314The deterministic engine is the `hybridclaw coworker` CLI. Your judgment15enters the pipeline through exactly one artefact: `extraction.json`. You never16edit the persona files directly — the engine renders them from validated17claims so every line stays cited, versioned, and reversible.1819## Hard rules20211. **Consent first.** Distilling a real, named human requires a recorded22 consent artefact. Never run `coworker consent record` on your own23 initiative or invent a consent statement — the operator must provide the24 statement and run (or explicitly dictate) the command. If a run is25 blocked, relay the remediation message and stop.262. **Evidence or nothing.** Every claim in `extraction.json` must cite real27 corpus document ids from the analysis packet. If you cannot support a28 claim, leave it out or put the question in `openQuestions`. The engine29 flags and drops uncited claims — do not try to route around it.303. **Never impersonate.** The coworker mirrors the subject's judgment, not31 their identity. Do not sign as the subject or present generated output as32 written by them.334. **Privacy.** Third-party PII is masked at ingest. If you see unmasked34 third-party contact details anywhere in generated output, stop and run35 `hybridclaw coworker eval --alias <alias>` to surface it.3637## Pipeline3839```40hybridclaw coworker distill --alias <alias> --name "<display name>" \41 [--role "<role>"] [--match-alias <name|email>]... --source <path> [...]42```4344Stages run in order, each resumable: `ingest → analyse → build → merge →45correct`. The run record lives at `runtime/distill/<run-id>/run.json` in the46coworker's agent workspace, with a human-readable `REPORT.md` beside it.47481. **Intake.** Ask the operator: who is being distilled (display name, role,49 relationship), which aliases/emails identify their authorship50 (`--match-alias`, critical for chat exports), whether they are a real51 person (default) or fictional (`--fictional`), and what source material52 exists.532. **Consent.** For a real person, confirm consent is recorded54 (`hybridclaw coworker consent show --alias <alias>`). If not, give the55 operator the exact `consent record` command to run and wait.563. **Ingest + analyse.** Run `coworker distill` with the sources. The engine57 masks third-party PII, weights quality (authored long-form > chat58 one-liners), holds out a slice for eval, and writes an analysis packet.594. **Extract.** Read `analysis/PACKET.md` in the run directory and write60 `analysis/extraction.json` following61 [references/extraction-contract.md](references/extraction-contract.md)62 and the six-dimension model in63 [references/six-dimensions.md](references/six-dimensions.md).645. **Merge.** Resume the run65 (`coworker distill --alias <alias> --resume <run-id>`). The engine66 validates citations, merges claims, writes the persona files and the67 work-module skill as versioned edits, and opens review items for any68 conflict you declared. Report flagged claims and open reviews to the69 operator verbatim from `REPORT.md`.706. **Verify.** Run `hybridclaw coworker eval --alias <alias>`. A leakage71 failure must be reported and fixed before the coworker is used.7273## Intake modalities7475Use every channel of evidence the operator can provide; they compound:7677| Modality | How |78|---|---|79| Chat exports | Slack export dirs/JSON, generic chat JSONL — `--kind auto` detects them |80| Email | `.mbox` archives |81| Meetings ("listening") | Speaker-labelled transcripts (`Name: text` lines) |82| Writing samples | Markdown / text docs, decision records, posts |83| Questionnaire | `hybridclaw coworker interview --alias <alias> [--audience subject\|colleague] --out <file>` generates a gap-driven interview targeting the dimensions with least evidence; the answered file is ingested with `--kind interview` (highest weight) |84| Mirroring | Live draft-compare-diff sessions per [references/mirroring.md](references/mirroring.md); differences become corrections |8586After each merge, check `openQuestions` and dimension coverage in the packet;87offer the operator a fresh interview round for the weakest dimensions.8889## Incremental updates and corrections9091- New material later: same `coworker distill` command — only the delta is92 re-analysed; standing conclusions are never overwritten. Contradictions93 you declare via `conflictsWith` become review items the operator resolves94 with `coworker review resolve`.95- When the operator corrects the coworker's behaviour in conversation96 ("she'd never open with a greeting"), persist it immediately:97 `hybridclaw coworker correct --alias <alias> --note "<correction>"`.98 It becomes a maximum-weight corpus document and is promoted into the99 persona on the next run. Then continue with the corrected behaviour in the100 current session.101102## Operating boundaries103104- Green: reading sources/corpus/status/reports, generating questionnaires,105 writing `extraction.json`, `coworker status|eval|interview|review list`.106- Amber (confirm with the operator first): `coworker distill` runs and107 resumes (they write workspace files, reversibly), `coworker correct`,108 `coworker review resolve`, `coworker export`.109- Red (never): recording or fabricating consent, `coworker forget`110 (operator-only), editing generated persona/skill files by hand, distilling111 someone the operator has not named.112113## Container note114115If `hybridclaw` is not on PATH (sandboxed container session), do the116file-contract half yourself — read `PACKET.md`, write `extraction.json` —117and hand the operator the exact `distill --resume` command to run locally.118119## Deeper material120121- [references/six-dimensions.md](references/six-dimensions.md) — the persona model and what evidence each dimension needs122- [references/extraction-contract.md](references/extraction-contract.md) — the `extraction.json` schema with a worked example123- [references/interview-protocol.md](references/interview-protocol.md) — running subject and colleague interviews well124- [references/mirroring.md](references/mirroring.md) — the live mirroring loop and fidelity grading