glebis/rehydrate
Put the real values back into an analysis that was produced from GREEN (placeholder) text — LOCALLY, using the user's own reversible map. Completes the confide round-trip (redact -> cloud-analyze the green -> rehydrate locally). Use when the user says "rehydrate", "restore real names", "unmask the analysis", "put the names back", "de-redact this output", "reverse the placeholders", or hands you an analysis full of [CONFIDE_PERSON_0001]/[CONFIDE_DATE_0002] plus a *.map.json. Runs only on the user's own map; the map never leaves the machine; nothing fetched or transmitted. Prints counts only — never echoes restored PII. Warns on placeholders not in the map (possible LLM hallucination).
npx skills add https://github.com/glebis/claude-skills --skill rehydrate
This is the last step of the CONFIDE round-trip:
confide:anon (default reversible mode) → a GREEN copywith unique reserved-sentinel placeholders ([CONFIDE_PERSON_0001],
[CONFIDE_EMAIL_0001], [CONFIDE_DATE_0002]…) plus a secret <name>.map.json
(structured: green_sha256, entries[]…) that stays on the machine.
back full of those same placeholders (sometimes mangled to CONFIDE_PERSON_0001,
[CONFIDE PERSON 0001]… — but always keeping the full CONFIDE_TYPE_NNNN core).
own map, producing the real analysis — without the cloud ever seeing the originals.
never fetches or transmits anything.
restored N, unmatched M. Therestored text (which contains originals) is written to a local file; it is NEVER
echoed to stdout beyond the counts.
reported as unmatched and left in place — we never invent a value for it.
Warn the user that these may be LLM hallucinations.
<name>.restored.md output contains originals: it is local-only, do not shareor commit it.
python3 skills/rehydrate/scripts/rehydrate.py ANALYSIS_FILE [--map <name>.map.json]
ANALYSIS_FILE — the text/analysis containing placeholders.--map <name>.map.json — the secret map from confide:anon. If omitted, thesibling *.map.json is auto-found (e.g. an analysis next to session.map.json,
or one derived from session.green.md).
--out PATH — output path (default: <name>.restored.md next to the input).--verify-green <green_file> — check the map's green_sha256 against that GREENfile; warns loudly if they don't match (wrong map for this document).
Robust to LLM mangling that still keeps the full CONFIDE_TYPE_NNNN core:
[CONFIDE_PERSON_0001], [CONFIDE PERSON 0001], CONFIDE_PERSON_0001, and
confide_person_0001 all restore to the same map entry. Ordinary prose lacking the
CONFIDE prefix (e.g. "Person 1", "patient 1", "section 2") is never touched, and
0001 never eats 0010. Rehydration is idempotent (re-running on restored text is a
no-op). Accepts both the structured map schema and a legacy flat map.
restored N, unmatched M) — never paste PII.unmatched > 0, flag the placeholders as possible hallucinations not in the map.*.restored.md is local-only (it now contains originals).Take glebis/rehydrate from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.