[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6AEMC6DRXJN5TYCP7ZVCVTE":3,"skill-same:01M6AEMC6DRXJN5TYCP7ZVCVTE":93},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":28,"publishedAt":35,"linkOnly":36,"markdownContent":37,"markdownBody":38,"frontMatter":39,"refName":44,"commitSha":45,"skillDirectory":46,"forksCount":47,"repositoryHtmlUrl":48,"repositoryHomepageUrl":6,"ownerHtmlUrl":49,"ownerBlogUrl":50,"ownerDescription":51,"updatedAt":52,"install":53,"resources":66},"01M6AEMC6DRXJN5TYCP7ZVCVTE","consent-record-keeping",null,"Guide for building a consent record-keeping system to demonstrate valid consent per GDPR Article 7(1). Covers required fields including timestamp, version, purpose, mechanism, and identity. Implements audit-ready consent receipts per the Kantara Initiative Consent Receipt Specification and supervisory authority expectations.","mukul975\u002FPrivacy-Data-Protection-Skills","mukul975","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F42860185?v=4","01M6ADEQR8T5M4EEG6C67BQCWF","Mahipal","01M6ADNKWX1HF4Q5DKEXT5M774",337,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Fmukul975\u002FPrivacy-Data-Protection-Skills\u002Fblob\u002Fmain\u002Fplugins\u002Fprivacy-skills-complete\u002Fskills\u002Fconsent-record-keeping\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000018","写作与文案","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000036","内容创作者","PROFESSION","适用职业",[29,30,31,32,33,34],"consent record keeping","valid","identity","audit","gdpr","privacy","2026-11-10 10:12:30",false,"---\nname: consent-record-keeping\ndescription: >-\n  Guide for building a consent record-keeping system to demonstrate valid consent\n  per GDPR Article 7(1). Covers required fields including timestamp, version, purpose,\n  mechanism, and identity. Implements audit-ready consent receipts per the Kantara\n  Initiative Consent Receipt Specification and supervisory authority expectations.\nlicense: Apache-2.0\nmetadata:\n  author: mukul975\n  version: \"1.0\"\n  domain: privacy\n  subdomain: consent-management\n  tags: \"consent-records, article-7-1, kantara-consent-receipt, audit-trail, consent-proof\"\n---\n\n# Building Consent Record-Keeping\n\n## Overview\n\nGDPR Article 7(1) states: \"Where processing is based on consent, the controller shall be able to demonstrate that the data subject has consented to the processing of personal data.\" This obligation to demonstrate consent requires comprehensive record-keeping that captures not only the consent decision but the context in which it was made.\n\nThe Kantara Initiative Consent Receipt Specification (v1.1) provides a standardized machine-readable format for consent receipts that satisfies regulatory expectations and enables interoperability.\n\n## Required Record Fields\n\nPer EDPB Guidelines 05\u002F2020 (paragraphs 89-107), demonstrating consent requires preserving evidence of:\n\n### Core Fields (Mandatory)\n\n| Field | Description | GDPR Reference | Format |\n|-------|-------------|----------------|--------|\n| consent_id | Unique identifier for this consent decision | Art. 7(1) | UUID v4 |\n| subject_id | Identifier of the data subject | Art. 7(1) | UUID v4 |\n| purpose_id | Identifier of the processing purpose | Art. 6(1)(a) | Purpose code |\n| purpose_description | Plain-language description of the purpose | Art. 13(1)(c) | Text |\n| decision | Consent granted or not granted | Art. 7(1) | Enum: granted, not_granted |\n| timestamp | When the decision was made | Art. 7(1) | ISO 8601 UTC |\n| mechanism | How consent was expressed | Art. 4(11) | Enum: checkbox_tick, toggle_switch, typed_statement, signature |\n| consent_text_version | Hash of the exact consent text shown | Art. 7(1) | SHA-256 hex |\n| consent_text | The exact text presented to the data subject | Art. 7(2) | Full text |\n| controller_name | Legal name of the data controller | Art. 13(1)(a) | Text |\n| controller_contact | Controller contact information | Art. 13(1)(a) | Text |\n\n### Contextual Fields (Recommended)\n\n| Field | Description | GDPR Reference | Format |\n|-------|-------------|----------------|--------|\n| ip_address | IP address at time of consent | Art. 7(1) proof | IPv4\u002FIPv6 |\n| user_agent | Browser\u002Fdevice user agent string | Art. 7(1) proof | Text |\n| session_id | Session identifier | Art. 7(1) proof | UUID |\n| source | Where consent was collected | Art. 7(1) proof | Enum: signup, preference_center, cookie_banner |\n| data_categories | Categories of personal data for this purpose | Art. 13(1)(d) | JSON array |\n| recipients | Named third-party recipients | Art. 13(1)(e) | JSON array |\n| retention_period | How long data is retained for this purpose | Art. 13(2)(a) | Text |\n| withdrawal_info | Instructions for withdrawing consent | Art. 7(3) | Text |\n| dpo_contact | DPO contact information | Art. 13(1)(b) | Text |\n\n### Immutability Requirements\n\nConsent records must be immutable. Once a consent decision is recorded, it cannot be altered. This requires:\n\n1. **Append-Only Storage**: Use an append-only database table or immutable log store. Never UPDATE or DELETE consent records.\n2. **Integrity Hashing**: Each record includes a SHA-256 hash of its contents. Any tampering is detectable.\n3. **Chain Hashing**: Each record's hash includes the previous record's hash, creating a verifiable chain (similar to blockchain concepts but without the distributed ledger overhead).\n4. **Timestamp Integrity**: Timestamps are generated server-side (not client-supplied) to prevent manipulation.\n\n## Kantara Initiative Consent Receipt Format\n\nThe Kantara Initiative Consent Receipt Specification v1.1 defines a JSON format:\n\n```json\n{\n    \"version\": \"KI-CR-v1.1.0\",\n    \"jurisdiction\": \"EU\u002FGDPR\",\n    \"consentTimestamp\": \"2026-03-14T10:30:00Z\",\n    \"collectionMethod\": \"web form with unticked checkboxes\",\n    \"consentReceiptID\": \"cr_7f3a9b2e-41d8-4c76-b5e3-9a8d1c2f4e60\",\n    \"publicKey\": \"cloudvault-saas-public-key-fingerprint\",\n    \"language\": \"en\",\n    \"piiPrincipalId\": \"usr_7f3a9b2e-41d8-4c76-b5e3-9a8d1c2f4e60\",\n    \"piiControllers\": [\n        {\n            \"piiController\": \"CloudVault SaaS Inc.\",\n            \"onBehalf\": false,\n            \"contact\": \"42 Innovation Drive, Dublin, D02 YX88, Ireland\",\n            \"phone\": \"+353-1-555-0142\",\n            \"email\": \"privacy@cloudvault-saas.eu\",\n            \"piiControllerUrl\": \"https:\u002F\u002Fcloudvault-saas.eu\"\n        }\n    ],\n    \"policyUrl\": \"https:\u002F\u002Fcloudvault-saas.eu\u002Fprivacy-policy\",\n    \"services\": [\n        {\n            \"service\": \"CloudVault Cloud Storage\",\n            \"purposes\": [\n                {\n                    \"purpose\": \"Service Improvement Analytics\",\n                    \"purposeCategory\": [\"core function\"],\n                    \"consentType\": \"explicit\",\n                    \"piiCategory\": [\"file_metadata\", \"access_frequency\", \"storage_patterns\"],\n                    \"primaryPurpose\": true,\n                    \"termination\": \"https:\u002F\u002Fapp.cloudvault-saas.eu\u002Fsettings\u002Fprivacy\",\n                    \"thirdPartyDisclosure\": false\n                }\n            ]\n        }\n    ],\n    \"sensitive\": false,\n    \"spiCat\": []\n}\n```\n\n## Database Schema\n\n```sql\n-- Consent records table (append-only, never UPDATE or DELETE)\nCREATE TABLE consent_records (\n    consent_id          UUID PRIMARY KEY DEFAULT gen_random_uuid(),\n    subject_id          UUID NOT NULL,\n    purpose_id          VARCHAR(128) NOT NULL,\n    purpose_description TEXT NOT NULL,\n    decision            VARCHAR(16) NOT NULL CHECK (decision IN ('granted', 'not_granted', 'withdrawn')),\n    mechanism           VARCHAR(64) NOT NULL,\n    consent_text_version CHAR(64) NOT NULL,\n    timestamp_utc       TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(),\n    ip_address          INET,\n    user_agent          TEXT,\n    session_id          UUID,\n    source              VARCHAR(64) NOT NULL,\n    controller_name     VARCHAR(256) NOT NULL DEFAULT 'CloudVault SaaS Inc.',\n    record_hash         CHAR(64) NOT NULL,\n    previous_hash       CHAR(64),\n    created_at          TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now()\n);\n\n-- Index for efficient lookups per subject\nCREATE INDEX idx_consent_records_subject ON consent_records(subject_id, purpose_id, timestamp_utc DESC);\n\n-- Consent text versions (immutable)\nCREATE TABLE consent_text_versions (\n    version_id   UUID PRIMARY KEY DEFAULT gen_random_uuid(),\n    purpose_id   VARCHAR(128) NOT NULL,\n    consent_text TEXT NOT NULL,\n    text_hash    CHAR(64) NOT NULL UNIQUE,\n    approved_by  VARCHAR(256) NOT NULL,\n    effective_from TIMESTAMP WITH TIME ZONE NOT NULL,\n    effective_until TIMESTAMP WITH TIME ZONE,\n    created_at   TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now()\n);\n\n-- Prevent modifications to consent records\nREVOKE UPDATE, DELETE ON consent_records FROM app_user;\nREVOKE UPDATE, DELETE ON consent_text_versions FROM app_user;\n```\n\n## Audit Query Examples\n\n**Reconstruct consent state for a subject at a point in time:**\n```sql\nSELECT DISTINCT ON (purpose_id)\n    purpose_id, decision, timestamp_utc, consent_text_version, mechanism, source\nFROM consent_records\nWHERE subject_id = 'usr_7f3a9b2e-41d8-4c76-b5e3-9a8d1c2f4e60'\n  AND timestamp_utc \u003C= '2026-02-15T00:00:00Z'\nORDER BY purpose_id, timestamp_utc DESC;\n```\n\n**Verify record chain integrity:**\n```sql\nSELECT consent_id, record_hash, previous_hash,\n    CASE WHEN LAG(record_hash) OVER (ORDER BY created_at) = previous_hash\n         THEN 'VALID' ELSE 'BROKEN'\n    END AS chain_status\nFROM consent_records\nWHERE subject_id = 'usr_7f3a9b2e-41d8-4c76-b5e3-9a8d1c2f4e60'\nORDER BY created_at;\n```\n\n## Key Regulatory References\n\n- GDPR Article 7(1) — Controller must demonstrate consent\n- GDPR Article 7(2) — Consent text requirements (clear, plain language, distinguishable)\n- GDPR Article 5(2) — Accountability principle\n- GDPR Article 30 — Records of processing activities (consent records support this)\n- EDPB Guidelines 05\u002F2020 — Paragraphs 89-107 on demonstrating consent\n- Kantara Initiative Consent Receipt Specification v1.1 — Machine-readable receipt format\n- ISO\u002FIEC 29184:2020 — Online privacy notices and consent\n","# Building Consent Record-Keeping\n\n## Overview\n\nGDPR Article 7(1) states: \"Where processing is based on consent, the controller shall be able to demonstrate that the data subject has consented to the processing of personal data.\" This obligation to demonstrate consent requires comprehensive record-keeping that captures not only the consent decision but the context in which it was made.\n\nThe Kantara Initiative Consent Receipt Specification (v1.1) provides a standardized machine-readable format for consent receipts that satisfies regulatory expectations and enables interoperability.\n\n## Required Record Fields\n\nPer EDPB Guidelines 05\u002F2020 (paragraphs 89-107), demonstrating consent requires preserving evidence of:\n\n### Core Fields (Mandatory)\n\n| Field | Description | GDPR Reference | Format |\n|-------|-------------|----------------|--------|\n| consent_id | Unique identifier for this consent decision | Art. 7(1) | UUID v4 |\n| subject_id | Identifier of the data subject | Art. 7(1) | UUID v4 |\n| purpose_id | Identifier of the processing purpose | Art. 6(1)(a) | Purpose code |\n| purpose_description | Plain-language description of the purpose | Art. 13(1)(c) | Text |\n| decision | Consent granted or not granted | Art. 7(1) | Enum: granted, not_granted |\n| timestamp | When the decision was made | Art. 7(1) | ISO 8601 UTC |\n| mechanism | How consent was expressed | Art. 4(11) | Enum: checkbox_tick, toggle_switch, typed_statement, signature |\n| consent_text_version | Hash of the exact consent text shown | Art. 7(1) | SHA-256 hex |\n| consent_text | The exact text presented to the data subject | Art. 7(2) | Full text |\n| controller_name | Legal name of the data controller | Art. 13(1)(a) | Text |\n| controller_contact | Controller contact information | Art. 13(1)(a) | Text |\n\n### Contextual Fields (Recommended)\n\n| Field | Description | GDPR Reference | Format |\n|-------|-------------|----------------|--------|\n| ip_address | IP address at time of consent | Art. 7(1) proof | IPv4\u002FIPv6 |\n| user_agent | Browser\u002Fdevice user agent string | Art. 7(1) proof | Text |\n| session_id | Session identifier | Art. 7(1) proof | UUID |\n| source | Where consent was collected | Art. 7(1) proof | Enum: signup, preference_center, cookie_banner |\n| data_categories | Categories of personal data for this purpose | Art. 13(1)(d) | JSON array |\n| recipients | Named third-party recipients | Art. 13(1)(e) | JSON array |\n| retention_period | How long data is retained for this purpose | Art. 13(2)(a) | Text |\n| withdrawal_info | Instructions for withdrawing consent | Art. 7(3) | Text |\n| dpo_contact | DPO contact information | Art. 13(1)(b) | Text |\n\n### Immutability Requirements\n\nConsent records must be immutable. Once a consent decision is recorded, it cannot be altered. This requires:\n\n1. **Append-Only Storage**: Use an append-only database table or immutable log store. Never UPDATE or DELETE consent records.\n2. **Integrity Hashing**: Each record includes a SHA-256 hash of its contents. Any tampering is detectable.\n3. **Chain Hashing**: Each record's hash includes the previous record's hash, creating a verifiable chain (similar to blockchain concepts but without the distributed ledger overhead).\n4. **Timestamp Integrity**: Timestamps are generated server-side (not client-supplied) to prevent manipulation.\n\n## Kantara Initiative Consent Receipt Format\n\nThe Kantara Initiative Consent Receipt Specification v1.1 defines a JSON format:\n\n```json\n{\n    \"version\": \"KI-CR-v1.1.0\",\n    \"jurisdiction\": \"EU\u002FGDPR\",\n    \"consentTimestamp\": \"2026-03-14T10:30:00Z\",\n    \"collectionMethod\": \"web form with unticked checkboxes\",\n    \"consentReceiptID\": \"cr_7f3a9b2e-41d8-4c76-b5e3-9a8d1c2f4e60\",\n    \"publicKey\": \"cloudvault-saas-public-key-fingerprint\",\n    \"language\": \"en\",\n    \"piiPrincipalId\": \"usr_7f3a9b2e-41d8-4c76-b5e3-9a8d1c2f4e60\",\n    \"piiControllers\": [\n        {\n            \"piiController\": \"CloudVault SaaS Inc.\",\n            \"onBehalf\": false,\n            \"contact\": \"42 Innovation Drive, Dublin, D02 YX88, Ireland\",\n            \"phone\": \"+353-1-555-0142\",\n            \"email\": \"privacy@cloudvault-saas.eu\",\n            \"piiControllerUrl\": \"https:\u002F\u002Fcloudvault-saas.eu\"\n        }\n    ],\n    \"policyUrl\": \"https:\u002F\u002Fcloudvault-saas.eu\u002Fprivacy-policy\",\n    \"services\": [\n        {\n            \"service\": \"CloudVault Cloud Storage\",\n            \"purposes\": [\n                {\n                    \"purpose\": \"Service Improvement Analytics\",\n                    \"purposeCategory\": [\"core function\"],\n                    \"consentType\": \"explicit\",\n                    \"piiCategory\": [\"file_metadata\", \"access_frequency\", \"storage_patterns\"],\n                    \"primaryPurpose\": true,\n                    \"termination\": \"https:\u002F\u002Fapp.cloudvault-saas.eu\u002Fsettings\u002Fprivacy\",\n                    \"thirdPartyDisclosure\": false\n                }\n            ]\n        }\n    ],\n    \"sensitive\": false,\n    \"spiCat\": []\n}\n```\n\n## Database Schema\n\n```sql\n-- Consent records table (append-only, never UPDATE or DELETE)\nCREATE TABLE consent_records (\n    consent_id          UUID PRIMARY KEY DEFAULT gen_random_uuid(),\n    subject_id          UUID NOT NULL,\n    purpose_id          VARCHAR(128) NOT NULL,\n    purpose_description TEXT NOT NULL,\n    decision            VARCHAR(16) NOT NULL CHECK (decision IN ('granted', 'not_granted', 'withdrawn')),\n    mechanism           VARCHAR(64) NOT NULL,\n    consent_text_version CHAR(64) NOT NULL,\n    timestamp_utc       TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(),\n    ip_address          INET,\n    user_agent          TEXT,\n    session_id          UUID,\n    source              VARCHAR(64) NOT NULL,\n    controller_name     VARCHAR(256) NOT NULL DEFAULT 'CloudVault SaaS Inc.',\n    record_hash         CHAR(64) NOT NULL,\n    previous_hash       CHAR(64),\n    created_at          TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now()\n);\n\n-- Index for efficient lookups per subject\nCREATE INDEX idx_consent_records_subject ON consent_records(subject_id, purpose_id, timestamp_utc DESC);\n\n-- Consent text versions (immutable)\nCREATE TABLE consent_text_versions (\n    version_id   UUID PRIMARY KEY DEFAULT gen_random_uuid(),\n    purpose_id   VARCHAR(128) NOT NULL,\n    consent_text TEXT NOT NULL,\n    text_hash    CHAR(64) NOT NULL UNIQUE,\n    approved_by  VARCHAR(256) NOT NULL,\n    effective_from TIMESTAMP WITH TIME ZONE NOT NULL,\n    effective_until TIMESTAMP WITH TIME ZONE,\n    created_at   TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now()\n);\n\n-- Prevent modifications to consent records\nREVOKE UPDATE, DELETE ON consent_records FROM app_user;\nREVOKE UPDATE, DELETE ON consent_text_versions FROM app_user;\n```\n\n## Audit Query Examples\n\n**Reconstruct consent state for a subject at a point in time:**\n```sql\nSELECT DISTINCT ON (purpose_id)\n    purpose_id, decision, timestamp_utc, consent_text_version, mechanism, source\nFROM consent_records\nWHERE subject_id = 'usr_7f3a9b2e-41d8-4c76-b5e3-9a8d1c2f4e60'\n  AND timestamp_utc \u003C= '2026-02-15T00:00:00Z'\nORDER BY purpose_id, timestamp_utc DESC;\n```\n\n**Verify record chain integrity:**\n```sql\nSELECT consent_id, record_hash, previous_hash,\n    CASE WHEN LAG(record_hash) OVER (ORDER BY created_at) = previous_hash\n         THEN 'VALID' ELSE 'BROKEN'\n    END AS chain_status\nFROM consent_records\nWHERE subject_id = 'usr_7f3a9b2e-41d8-4c76-b5e3-9a8d1c2f4e60'\nORDER BY created_at;\n```\n\n## Key Regulatory References\n\n- GDPR Article 7(1) — Controller must demonstrate consent\n- GDPR Article 7(2) — Consent text requirements (clear, plain language, distinguishable)\n- GDPR Article 5(2) — Accountability principle\n- GDPR Article 30 — Records of processing activities (consent records support this)\n- EDPB Guidelines 05\u002F2020 — Paragraphs 89-107 on demonstrating consent\n- Kantara Initiative Consent Receipt Specification v1.1 — Machine-readable receipt format\n- ISO\u002FIEC 29184:2020 — Online privacy notices and consent\n",{"name":5,"license":15,"metadata":40,"description":7},{"tags":41,"author":9,"domain":34,"version":42,"subdomain":43},"consent-records, article-7-1, kantara-consent-receipt, audit-trail, consent-proof","1.0","consent-management","main","9b2ef9eae161c00a17241d42a388571321b33e9f","plugins\u002Fprivacy-skills-complete\u002Fskills\u002Fconsent-record-keeping",68,"https:\u002F\u002Fgithub.com\u002Fmukul975\u002FPrivacy-Data-Protection-Skills","https:\u002F\u002Fgithub.com\u002Fmukul975","Mahipal.engineer","🔐 Cybersecurity | 💻 Dev | 📷 Street Photographer\r\n🎓 MSc | 📚 Research & AI Security","2026-03-17 04:06:52",{"source":8,"skillName":5,"commands":54,"prompt":64,"zipAvailable":65},[55,58,61],{"tool":56,"command":57},"npx","npx skills add mukul975\u002FPrivacy-Data-Protection-Skills --skill consent-record-keeping",{"tool":59,"command":60},"bunx","bunx skills add mukul975\u002FPrivacy-Data-Protection-Skills --skill consent-record-keeping",{"tool":62,"command":63},"pnpm","pnpm dlx skills add mukul975\u002FPrivacy-Data-Protection-Skills --skill consent-record-keeping","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmukul975\u002FPrivacy-Data-Protection-Skills\u002Fblob\u002Fmain\u002Fplugins\u002Fprivacy-skills-complete\u002Fskills\u002Fconsent-record-keeping\u002FSKILL.md",true,[67,73,79,83,87],{"path":68,"resourceType":69,"resourceTypeDesc":70,"sizeBytes":71,"sourceHtmlUrl":72},"assets\u002Ftemplate.md","ASSET","资产文件",3221,"https:\u002F\u002Fgithub.com\u002Fmukul975\u002FPrivacy-Data-Protection-Skills\u002Fblob\u002Fmain\u002Fplugins\u002Fprivacy-skills-complete\u002Fskills\u002Fconsent-record-keeping\u002Fassets\u002Ftemplate.md",{"path":74,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":77,"sourceHtmlUrl":78},"reference\u002Fplan-template.md","REFERENCE","参考文档",1161,"https:\u002F\u002Fgithub.com\u002Fmatheusnorjosa\u002Faprender_sistema\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fcreate_plan\u002Freference\u002Fplan-template.md",{"path":80,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":81,"sourceHtmlUrl":82},"references\u002Fstandards.md",4012,"https:\u002F\u002Fgithub.com\u002Fmukul975\u002FPrivacy-Data-Protection-Skills\u002Fblob\u002Fmain\u002Fplugins\u002Fprivacy-skills-complete\u002Fskills\u002Fconsent-record-keeping\u002Freferences\u002Fstandards.md",{"path":84,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":85,"sourceHtmlUrl":86},"references\u002Fworkflows.md",5774,"https:\u002F\u002Fgithub.com\u002Fmukul975\u002FPrivacy-Data-Protection-Skills\u002Fblob\u002Fmain\u002Fplugins\u002Fprivacy-skills-complete\u002Fskills\u002Fconsent-record-keeping\u002Freferences\u002Fworkflows.md",{"path":88,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":91,"sourceHtmlUrl":92},"scripts\u002Fprocess.py","SCRIPT","脚本",12008,"https:\u002F\u002Fgithub.com\u002Fmukul975\u002FPrivacy-Data-Protection-Skills\u002Fblob\u002Fmain\u002Fplugins\u002Fprivacy-skills-complete\u002Fskills\u002Fconsent-record-keeping\u002Fscripts\u002Fprocess.py",[94,119,134,147,164,177],{"skillNo":95,"name":96,"nameZh":6,"description":97,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":98,"categories":99,"keywords":109,"publishedAt":35},"01M6AG6K8R3XW10ENWH2FH18RH","workplace-email-privacy","Implements email and internet monitoring compliance in the workplace per Barbulescu v Romania (ECHR Grand Chamber), EDPB guidance, and national labour law. Covers acceptable use policies, legitimate expectation of privacy, proportionality testing, and content vs metadata monitoring. Keywords: email monitoring, Barbulescu, workplace privacy, internet monitoring, acceptable use policy, ECHR, proportionality.","https:\u002F\u002Fgithub.com\u002Fmukul975\u002FPrivacy-Data-Protection-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fprivacy\u002Fworkplace-email-privacy\u002FSKILL.md",[100,103,106],{"categoryNo":101,"categoryName":102,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000005","邮件与沟通",{"categoryNo":104,"categoryName":105,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":107,"categoryName":108,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000037","律师与法务",[110,111,34,112,113,114,115,116,117,118],"email","workplace email privacy","compliance","content","data","policy","testing","monitoring","metadata",{"skillNo":120,"name":121,"nameZh":6,"description":122,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":123,"categories":124,"keywords":129,"publishedAt":35},"01M6AG6FRCBJY7D061BJZMNV49","whistleblower-data","Implements data protection compliance for whistleblowing systems under EU Directive 2019\u002F1937 and GDPR. Covers anonymous reporting channels, identity protection for whistleblowers and accused persons, retention limits, access restrictions, and retaliation prevention. Addresses national transpositions and DPA guidance. Keywords: whistleblower, Directive 2019\u002F1937, anonymous reporting, identity protection, retaliation, retention, reporting channel.","https:\u002F\u002Fgithub.com\u002Fmukul975\u002FPrivacy-Data-Protection-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fprivacy\u002Fwhistleblower-data\u002FSKILL.md",[125,128],{"categoryNo":126,"categoryName":127,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000033","数据分析师",{"categoryNo":107,"categoryName":108,"taxonomyType":26,"taxonomyTypeDesc":27},[114,130,31,131,112,132,33,34,133],"whistleblower data","reporting","data protection","prevention",{"skillNo":135,"name":136,"nameZh":6,"description":137,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":138,"categories":139,"keywords":141,"publishedAt":35},"01M6AG6CJP0PW3X65HC7VP9SR9","vendor-termination-data","Vendor termination data return and deletion procedures per GDPR Article 28(3)(g). Covers data extraction formats, deletion certification requirements, transition planning, residual data handling, and post-termination verification.","https:\u002F\u002Fgithub.com\u002Fmukul975\u002FPrivacy-Data-Protection-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fprivacy\u002Fvendor-termination-data\u002FSKILL.md",[140],{"categoryNo":126,"categoryName":127,"taxonomyType":26,"taxonomyTypeDesc":27},[114,142,143,144,145,33,34,146],"vendor termination data","planning","verification","extraction","certification",{"skillNo":148,"name":149,"nameZh":6,"description":150,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":151,"categories":152,"keywords":154,"publishedAt":35},"01M6AG69E277DXZB2NF6KV17ZA","vendor-risk-scoring","Vendor privacy risk tiering methodology for processor management. Covers scoring factors including data volume, sensitivity, transfer locations, certifications, breach history, and control maturity with weighted risk calculation and tier assignment.","https:\u002F\u002Fgithub.com\u002Fmukul975\u002FPrivacy-Data-Protection-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fprivacy\u002Fvendor-risk-scoring\u002FSKILL.md",[153],{"categoryNo":126,"categoryName":127,"taxonomyType":26,"taxonomyTypeDesc":27},[155,156,157,158,159,160,161,162,34,114,163],"vendor risk scoring","risk","risk scoring","methodology","risk-scoring","assessment","transfer","certifications","processor",{"skillNo":165,"name":166,"nameZh":6,"description":167,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":168,"categories":169,"keywords":171,"publishedAt":35},"01M6AG6655ABFKT2BBWHCP4PAT","vendor-privacy-due-diligence","Pre-contract vendor privacy due diligence per GDPR Article 28(1). Covers risk questionnaires, technical controls assessment, certification review, data flow analysis, and documented sufficiency decisions for processor engagement.","https:\u002F\u002Fgithub.com\u002Fmukul975\u002FPrivacy-Data-Protection-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fprivacy\u002Fvendor-privacy-due-diligence\u002FSKILL.md",[170],{"categoryNo":107,"categoryName":108,"taxonomyType":26,"taxonomyTypeDesc":27},[34,172,33,173,160,174,175,114,163,156,146,176],"vendor privacy due diligence","review","onboarding","flow","analysis",{"skillNo":178,"name":179,"nameZh":6,"description":180,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":181,"categories":182,"keywords":186,"publishedAt":35},"01M6AG62C3VD8SYNGH4N7RHZTE","vendor-privacy-audit","On-site and remote vendor audit procedures per GDPR Article 28(3)(h). Covers audit planning, evidence collection methodologies, finding classification, remediation tracking, and audit report generation for processor compliance verification.","https:\u002F\u002Fgithub.com\u002Fmukul975\u002FPrivacy-Data-Protection-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fprivacy\u002Fvendor-privacy-audit\u002FSKILL.md",[183,184,185],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":24,"categoryName":25,"taxonomyType":26,"taxonomyTypeDesc":27},{"categoryNo":107,"categoryName":108,"taxonomyType":26,"taxonomyTypeDesc":27},[187,32,34,188,144,189,112,33,190,163,191,192,193,143],"vendor privacy audit","report","audit report","remediation","collection","remediation-tracking","classification"]