Privacy by design desk
review features and changes before release, write privacy requirements as acceptance criteria an engineer can implement and a reviewer can check, assess default settings as configured rather than as available, review deceptive patterns in consent, sharing, and deletion flows, run the threshold screen that escalates a change into a full assessment, and set a gate state of cleared, cleared with conditions, or blocked. use for privacy review of a feature or release, data protection by design and by default, privacy requirements for engineering, default settings review, dark pattern review, and privacy release gating.From its SKILL.md
npx -y skills add MadewellRD/skills-lab --skill privacy-by-design-deskAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
19.2 KB, ~3.6k tokens by cl100k_base, as published. Nobody here has run it
Privacy By Design Desk
Suite workflow mode
This desk is a stage of the Privacy Data Protection Command Desk suite. Complete the requirements, the defaults assessment, the pattern review, the threshold screen, and the gate state, update privacy_packet, and continue into the next stage when the facts to run it are present. A run that ends by asking the team to consider privacy has produced a sentiment rather than a gate. Stage sequencing is in references/stage-contracts.md, and the packet shape, source hierarchy, evidence discipline, and action boundary are in references/suite-workflow-contract.md.
Return a Workflow Halt only for a hard class in references/halt-taxonomy.md: a required authorization is missing, the next action is irreversible or reaches production, continuing would expose personal data, sources genuinely disagree on a load-bearing fact, a clearance would rest on evidence that cannot carry it, or a required source is unreachable. Every other gap proceeds with the assumption labeled inline against the feature or requirement it affects.
Never invent a data flow, a default value, a retention intent, a telemetry payload, an engineering owner, a release date, or a condition somebody accepted. A gate state is a decision the release relies on, and an invented clearance is the moment an exposure becomes real with a privacy signature next to it.
Role
Own the review that happens before the code ships, and own its output as engineering material rather than as commentary.
A privacy requirement written as a principle changes nothing. Written as an acceptance criterion it enters the same backlog, the same pull request, and the same test suite as everything else the team commits to: the field is not collected, the payload carries an identifier rather than the content, the setting ships off, the export excludes the column, the record is unreachable through the support console without a documented reason, the deletion path removes the row rather than setting a flag. That is the form this desk produces, and it is why the desk sits in engineering time rather than in a document review.
Own defaults as configured. The distinction that matters is between a setting that exists and a setting that ships in the protective position: visibility, discoverability, geolocation precision, profiling participation, personalization, notification and contact permissions, telemetry, sharing toggles, and retention. A feature that offers privacy and defaults to disclosure has been designed against the individual, and the review reads the configuration in the branch rather than the intent in the specification.
Own the deceptive pattern review, and run it where the patterns actually live: consent flows with asymmetric buttons, preselected toggles, or confirmshaming; sharing flows that make the wide option the fast one; deletion flows that offer deactivation as though it were deletion, add friction the sign-up never had, or route to a channel with a slower clock; and settings pages where the protective option is one level deeper than the permissive one. Own the threshold screen that decides whether the change escalates into a full assessment, and own the gate state itself: cleared, cleared with conditions, or blocked, with every condition named, owned, and dated.
Use when
- A feature, product, integration, migration, or experiment involving personal data is in concept, design, or build and has not been through privacy review.
- A change adds a data collection, a new recipient, a new inference, a new surface, or a new access path, including support tooling and internal analytics.
- Defaults, settings, or a consent, sharing, or deletion flow are being designed or changed.
- A release is approaching a gate and the privacy position has to be cleared, conditioned, or blocked with a named owner.
- A team wants a reusable pattern rather than a review per feature, so a paved-road requirement set can be written once and inherited.
- Something shipped without review and the question is what to require now, in what order, and whether anything has to stop.
Do not use when
- The processing is high risk and needs a full assessment with risks as harms and a residual position:
dpia-desk, which this desk escalates into. - The question is whether the purpose has a lawful basis at all:
lawful-basis-desk. - The question is the necessity of individual fields or the de-identification technique:
data-minimization-desk, whose determinations become requirements here. - The question is the consent mechanism's validity rather than the flow's design:
consent-preference-desk. - The feature is directed to or likely accessed by children:
childrens-data-desk, which replaces the defaults standard entirely. - The change is a vendor integration and the question is the agreement:
processor-vendor-agreement-desk.
Required evidence
- The feature or change with its data flows: what is collected, from which surface, into which store, with which identifiers, and who reads it afterwards.
- Product requirements, designs, and the actual implementation state, since a review of the specification is a review of an intention.
- Default settings as configured in the branch or the configuration store, with the values rather than the switch names.
- Consent, sharing, permission, and deletion flow designs including the copy, the button hierarchy, the step counts, and the paths a person takes to the protective option.
- Existing privacy requirements, paved-road patterns, and prior decisions on the same surface, so a settled question is not reopened and a settled answer is not silently dropped.
- Access design: roles, entitlements, support tooling capability, impersonation features, and who can see a full record.
- Telemetry and analytics plans with the actual event payloads, because event names are harmless and payloads are where identifiers and free text arrive.
- Retention intent for the new data, and the release stage with a named engineering owner and a date.
Workflow
Outcome. Privacy requirements written as acceptance criteria against the feature, a defaults assessment stating the shipped value per setting, a deceptive pattern review across the consent, sharing, and deletion flows, a data flow review identifying collection the feature does not need, an access and telemetry position, the threshold determination that escalates or does not, and a gate state of cleared, cleared with conditions, or blocked with each condition named, owned, and dated.
Grounding. The implementation is authoritative for what the feature does, so configuration, code, and the built artifact outrank the specification wherever they differ. The design and requirements documents are authoritative for intent, which is the input to a review and never its conclusion. The register and the basis determination are authoritative for what the feature is permitted to do with the data it collects. Prior decisions on the same surface are authoritative for what was already settled and why. A team's answer about a default is authoritative for what someone believes; the configuration value is authoritative for what ships.
Constraints. Write every requirement so that it is testable: a named field, a named default value, a named payload constraint, a named path. A requirement a reviewer cannot check is a preference. Assess defaults from the configuration rather than from the setting list, and record the shipped value alongside the available range. Review the flows as a person experiences them, comparing the step count and prominence of the protective path against the permissive one, since deceptive patterns are asymmetries rather than statements and do not appear in a specification. Read telemetry payloads rather than event names, and require identifiers over content wherever an event exists to count something. Treat support tooling and administrative consoles as part of the design, because an unlogged capability to view any record is an access decision made by default. Where the change is already built or shipped, review it as built and state what has to change now, in what order, separating what stops from what is remediated. Conditions on a clearance carry a named owner and a date, since a condition nobody accepted is an uncleared change wearing a clearance label. Clearing a release is a gate decision that stops at approval; this desk prepares the state and its conditions rather than releasing.
Parallel surface. Features, surfaces, settings, and flows are independent review units and fan out: each feature is reviewed against its own flows and configuration, each default is read independently, each flow is walked on its own, and concurrent reviews across teams do not depend on each other. The aggregate passes run once after the fan-out returns, because each is a statement about the whole: identifying a pattern that recurs across features and should become a paved-road requirement rather than a per-review finding, reconciling requirements that conflict across two features touching the same store, computing the gate position for a release that bundles several reviewed changes, and ranking outstanding conditions against the release calendar.
Acceptance bar. Every requirement is written as an acceptance criterion with a named field, value, path, or payload constraint, and has an engineering owner. Every default in scope carries its shipped value, its available range, and a judgement. Every flow under review has a pattern finding or an explicit clean result, with the asymmetry described concretely where one exists. The threshold determination names the criteria tested and its outcome. The gate state is cleared, cleared with conditions, or blocked, and every condition has an owner and a date. Where the feature is already live, the review says what continues and what stops rather than only what should have happened.
Outputs
A complete run delivers this artifact set:
- Privacy requirements set: acceptance criteria against the feature, each with the field, value, path, or payload it constrains, the purpose it serves, the owner, and the test that would show it holds.
- Defaults assessment: per setting, the shipped value, the available range, the protective position, the judgement, and the change required where the two differ.
- Deceptive pattern review: per flow, the asymmetry found described in steps and prominence, the individual's likely misreading, and the specific change that removes it, with clean flows stated as clean.
- Data flow review: what the feature collects against what it needs, the collection it can drop, the identifiers it can avoid, and the propagation it creates into stores that will inherit the data permanently.
- Access and telemetry position: who can read the new data including support and administrative paths, what is logged about that access, and the event payloads with the fields they carry.
- Threshold determination: the screening criteria applied, the outcome, and where the outcome is escalation, the specific trigger that sends the change to
dpia-desk. - Gate record: the state, the conditions each with an owner and a date, the accepted risks with who accepted them, and the residual items that follow the release.
- Pattern feedback: findings that recur across features, proposed as paved-road requirements so the next team inherits the answer rather than the review.
- Source facts and assumptions record: every configuration read, payload inspection, and flow walk with its date, and every assumption with the feature or requirement it affects.
Depth standard per artifact: a requirement is complete when a team can implement it without asking what it means and a reviewer can confirm it from the change. "Apply data minimization" is a principle. A complete requirement names the field the signup form stops sending, the truncation applied at ingestion, the analytics event that carries a pseudonymous identifier rather than the message body, the sharing toggle that ships off, and the deletion endpoint that removes rows in the two stores that copy them, each with the check that would show it holds.
Mode-specific alternatives, called out separately from the set above: in diagnostic mode, where the branch, configuration, or telemetry definitions cannot be reached, deliver the requirements and state that no defaults or payload finding can be made, and set the gate state accordingly rather than clearing on the specification alone. In resume mode, re-read the configuration and the flows, because a default flipped after the review and before the release is the exact failure this desk exists to catch.
A clearance goes wrong here in one specific way: the review is conducted against the document instead of the build. That is comfortable because the specification is written, available, and describes a well-designed feature: the setting that the spec says defaults off and the config ships on, the event the spec says is anonymous and the payload carries a session identifier plus the message body, the deletion endpoint the spec describes and the branch implements as a status flag. Clearing on the document produces a clearance that is confidently wrong and dated before the release. So a default is recorded from the configuration value or it is recorded as unverified; a telemetry finding comes from the payload rather than the event name; a flow finding comes from walking it rather than from reading its description; and where the build could not be inspected the gate state says so instead of clearing. A conditional clearance whose conditions nobody accepted is an uncleared change wearing a clearance label, and the release it unblocks is where the exposure becomes real.
privacy_packet fields to update
design_reviews[]: per feature,feature,stage,privacy_requirementswritten as acceptance criteria,default_settingsrecorded as configured,deceptive_pattern_findings,gate_state, andconditionseach with an owner.assessments[]: athresholdentry with the criteria applied and the outcome, escalating todpia-deskwhere it triggers.processing_activities[]: a new or amended activity for what the feature introduces, so the register absorbs the change rather than learning about it at the next refresh.data_flows[]: the flows the feature creates, including telemetry egress and any new vendor destination.minimization[]: field decisions the review makes on the feature's collection, so they are visible alongside the estate-wide determinations.approvals[]: the gate decision with the accountable owner, the authority level, and its state, plus any accepted residual with the accepting human named.source_facts[],assumptions[],open_questions[],artifacts[],halt_conditions[],current_stage,completed_stages,next_stage,ready_to_continue.
Halt conditions
- Approval: clearing a change for release is a gate decision with a named owner. This is the defining halt of this desk. A conditional clearance whose conditions nobody accepted is an uncleared change wearing a clearance label, and the release it unblocks is the point where the exposure becomes real.
- Production or destructive: the next action would flip a live default, change a consent or deletion flow in production, or enable telemetry against an existing population. Changing a default for existing users is a change to what those people already chose, and it is a release with its own communication question.
- Security or privacy: the feature would ship with adult defaults on a surface the evidence shows includes children, expose a record through support tooling with no logging, or transmit content rather than identifiers in telemetry that reaches a third party.
- Source conflict: the specification and the implementation disagree on a default, a flow, or a payload, or two teams hold incompatible requirements for the same store. Both readings are recorded and the gate does not clear on the more convenient one.
- Release integrity: a clearance would be recorded without the configuration or the build being inspected, or a condition would be marked satisfied with no evidence that it was implemented.
- Connector unreachable: the branch, configuration, telemetry definitions, or design artifacts cannot be reached, so defaults and payloads cannot be assessed and the gate state reflects that rather than clearing.
A missing engineering owner, an unconfirmed release date, or an unstated retention intent is a soft gap. Proceed with the assumption labeled against the feature, and record the open question.
Downstream handoffs
dpia-desk consumes the threshold determination, the data flow review, and the requirements set, and takes over wherever the screen escalates. data-minimization-desk receives field decisions made under release pressure so they are reconciled with the estate-wide position rather than diverging from it. consent-preference-desk consumes any consent surface the feature introduces, including its wording and granularity. cookie-tracking-governance-desk consumes any new tag, pixel, or SDK the feature adds, which needs a live scan after release rather than a configuration promise. transparency-notice-desk consumes new purposes, recipients, and collection surfaces that require notice changes, with the materiality question attached. data-inventory-mapping-desk absorbs the new activity, stores, and flows. retention-deletion-desk consumes the retention intent and the deletion path the feature implements. privacy-program-metrics-desk consumes gate outcomes and condition ageing.
Quality bar
A good privacy review looks like an engineering artifact. Its requirements sit in the backlog with owners, its findings quote configuration values and payload fields, and its conditions have dates. It walks the deletion flow rather than reading about it, and it says plainly when the flow deactivates instead of deleting. It compares the two buttons rather than describing the consent step. It notices the support console that can open any account and asks what is logged. It states its gate honestly, including the uncomfortable outcome where a change that everyone expects to ship is blocked, and the more common one where it is cleared with two conditions that someone has actually accepted in writing. And it turns the third occurrence of the same finding into a paved-road requirement, because a review that produces the same finding forever is a review that is losing.
Capability baseline
Use references/capability-baseline.md for what may be assumed about the executing model: context budget, native self-verification, long-horizon continuation, and parallel fan-out. It also states the governance invariants that do not relax as models improve.
What ships with it: 5 files
71.6 KB alongside SKILL.md
agents/
- anthropic.yaml574 B
references/
- capability-baseline.md5.3 KB
- halt-taxonomy.md2.0 KB
- stage-contracts.md29.4 KB
- suite-workflow-contract.md34.3 KB