Help us improve
Share bugs, ideas, or general feedback.
From aos
The privacy gate — scan an artifact for personal data (names, emails, phone numbers, addresses, account / tax IDs, private financial data) and produce an anonymised copy plus a PII report, before the artifact is shared outside the granted folder. Pseudonymises consistently or redacts; never overwrites the original. Trigger on 'anonymise this', 'scrub the PII', 'is this safe to share', or before any deliverable leaves the engagement.
npx claudepluginhub arcanianhq/aos-mkt-624292f82fda --plugin aosHow this skill is triggered — by the user, by Claude, or both
Slash command
/aos:aos-anonymizeThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
This skill's data lives in the **granted folder** — the folder Cowork was given access to, which **is** one client's folder (no per-client nesting). The granted-folder root is the working directory. Resolve zones per `docs/data-access-router.md` and the `AOS_CONFIG.md` manifest. Never hard-code paths beyond the documented zone layout. Client identity is read from `client/CLIENT_CONFIG.md` and t...
Mandates invoking relevant skills via tools before any response in coding sessions. Covers access, priorities, and adaptations for Claude Code, Copilot CLI, Gemini CLI.
Share bugs, ideas, or general feedback.
This skill's data lives in the granted folder — the folder Cowork was given access to, which is one client's folder (no per-client nesting). The granted-folder root is the working directory. Resolve zones per docs/data-access-router.md and the AOS_CONFIG.md manifest. Never hard-code paths beyond the documented zone layout. Client identity is read from client/CLIENT_CONFIG.md and the client field of AOS_CONFIG.md. If the folder is not onboarded, the skill still runs — it operates on the working directory.
Resolve communication-language and content-language from AOS_CONFIG.md (per docs/language-context.md) — never hard-code a language. Talk to the user in communication-language. PII detection is language-aware — name, address, phone, and national-ID formats differ by locale (a Hungarian +36 number, a Hungarian tax number, a Hungarian address order). Detect against the artifact's actual language, not English by default.
aos-anonymize is the privacy gate of AOS — the check an artifact passes
before it leaves the granted folder.
An AOS granted folder legitimately holds personal data: customer names in
testimonials, emails and phone numbers in correspondence, named decision-makers
in brand/BELIEF_PROFILE.md, account IDs in analytics exports. Inside the folder
that is correct — it is the client's own data, held for the engagement. The risk
is at the boundary: when a deliverable is sent to a third party, a case study
quoting a real customer is published, or material is pasted into a context the
granted folder's confidentiality no longer covers.
aos-anonymize reads a target artifact, detects the personal data in it, and
produces an anonymised copy — plus a PII report of what was found and what
was done. It is the data-minimisation step that keeps AOS's handling of client
and customer data defensible (GDPR data-minimisation; the client's own duty of
care to the people in their data).
Honest scope. This skill is a detection-and-assist tool, not a certified data-loss-prevention system. It finds the personal data it can recognise and flags what it is unsure about — the user must still review the anonymised copy before relying on it. It reduces risk; it does not certify safety.
Anti-goal. aos-anonymize does not delete or alter the original — the
original legitimately holds PII and is the engagement's system of record. It does
not run connectors and does not check brand / voice / provenance (that is
aos-review / aos-back-statements).
Discovery, not pronouncement. Present the detected PII (by category and count — not the values, in the chat) and the proposed anonymisation for the user to confirm. End the report with "What did we miss? What got over-redacted?"
The detection categories and the keep / remove decision rules are in
reference/pii-categories.md. The core distinction:
When a name is ambiguous (is this founder line public or private?), the skill flags it for the user rather than guessing — see Hard Rule 4.
--artifact (required) — the file to anonymise, a path under the granted
folder. If omitted, the skill asks which artifact (or accepts a chat paste).--mode (optional) — pseudonymise (default) replaces each PII item with a
consistent placeholder ([Customer A], [email], the same real value
always mapping to the same placeholder within the artifact, preserving
readability); redact masks each item (████). Pseudonymise unless the user
asks for hard redaction.AOS_CONFIG.md if present.content-language.client/CLIENT_CONFIG.md — the client's own name, brand, and public
contact details, so they can be told apart from third-party PII.Scan the artifact for every PII category in reference/pii-categories.md —
person names, email addresses, phone numbers, postal addresses, account /
customer IDs, tax / national IDs, dates of birth, private financial figures,
and identifying URLs / handles. Detect against the artifact's actual language
and locale. Record each hit with its location and category.
For each hit, apply the keep / remove rule (reference/pii-categories.md):
third-party personal data → remove / anonymise; the client's own public
identity → keep. Anything genuinely ambiguous → flag for the user, do not
silently decide.
Produce the anonymised copy. In pseudonymise mode, build a consistent
substitution — the same real value always maps to the same placeholder within
this artifact, so the text still reads (Mara Ellison → [Founder],
jane@acme.com → [email], Acme Ltd kept if it is the client, replaced if a
third party). In redact mode, mask each removed item. Never alter non-PII text.
<artifact-dir>/<artifact-name>-anon.md — a
new file. Never overwrite the original.deliverables/<YYYY-MM>/pii-report-<slug>.md
(scope: int-confidential) — counts by category, the keep / remove
decisions, every item flagged ambiguous, and the residual-risk note (what the
skill could not be sure about). The report does not need to list raw PII
values; where it must, it is itself confidential and stays in the granted folder.The anonymised copy and the PII report carry the standard provenance block —
see docs/artifact-versioning.md §1 (generated_by, skill_version,
generated_date, aos_schema); never hard-code skill_version / aos_schema.
The anonymised copy also carries anonymised_from: <original path> and
anonymise_mode: so its lineage is traceable.
aos-anonymize always writes a new
-anon file. The original legitimately holds PII and is the system of record.pseudonymise mode a real value maps to one
placeholder throughout — the anonymised copy must still read.scope: int-confidential
and stays in the granted folder; raw PII values are never echoed into chat.User-facing summary at end of run:
aos-measure / aos-plan / the diagnostics (deliverables shared with the
client), aos-draft-content / aos-write (a reference piece quoting a real
customer). aos-route-question routes "anonymise" / "scrub the PII" / "safe to
share" requests here.aos-anonymize
on a deliverable before it is sent to a third party, and on any case-study /
reference content that quotes a real customer before aos-distribute ships it.
Complements aos-review (brand / voice / completeness) and aos-back-statements
(evidence provenance) — three orthogonal pre-share gates.What did we get wrong? What's missing?