capture

Strip inline <private> blocks and classify is_private flags before storage.

1|Updated Mar 15, 2026
One-click install
npx skills add https://github.com/paulingham/.claude --skill capture-paulingham
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: capture
Source: https://github.com/paulingham/.claude/tree/main/skills/capture
Command: npx skills add https://github.com/paulingham/.claude --skill capture-paulingham

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Capture-time privacy is achieved by stripping <private> blocks and applying an allowlist classification before data is inserted into observations or scratchpad_findings, using only the Python standard library.

Core Features & Use Cases

  • <private> sanitization: removes tag and contents from any text field to ensure sensitive content never reaches disk.
  • Allowlist-based classification: sets is_private for rows whose sanitized file path matches a glob or whose sanitized content matches a regex, gating recall-time visibility.
  • Deterministic storage integrity: sanitization occurs before content_hash is computed, ensuring identical hashes for the same envelope across live and replay paths.

Quick Start

Apply the capture privacy workflow to a new data envelope to scrub private blocks and classify privacy before storage.

Frequently Asked Questions about capture

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I remove sensitive text blocks before storing captured observations?

Capture-time sanitization removes inline <private> tags and their contents from text fields before data reaches disk. This ensures sensitive content is stripped during ingestion, preventing unauthorized exposure in stored observations.

How does allowlist-based privacy classification work for data ingestion?

Allowlist-based classification assigns is_private flags by matching sanitized file paths against globs or content against regex patterns. This gates recall-time visibility, ensuring only authorized data is accessible during retrieval.

Can I apply privacy scrubbing using only the Python standard library?

Yes, privacy scrubbing operates using Python stdlib only, requiring no external dependencies. It integrates with capture write surfaces to strip <private> blocks and apply allowlist classification before storage.

Why does sanitization happen before computing the content hash?

Sanitization occurs before content_hash computation to guarantee deterministic storage integrity. This ensures identical hashes for the same envelope across both live and replay paths, preventing hash mismatches.

What is the best way to gate recall-time visibility for sensitive file paths?

Apply an allowlist during ingestion to set is_private flags based on sanitized file path globs or content regex matches. This gates recall-time visibility, restricting access to sensitive observations.

Does capture privacy work with scratchpad_findings and observations?

Yes, the capture privacy workflow integrates with write surfaces for both observations and scratchpad_findings. It scrubs <private> blocks and applies allowlist classification before data is inserted into either storage target.