[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6PC277AYQNR415F2GFWB3GD":3,"skill-same:01M6PC277AYQNR415F2GFWB3GD":66},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":38,"linkOnly":39,"markdownContent":40,"markdownBody":41,"frontMatter":42,"refName":31,"commitSha":47,"skillDirectory":48,"forksCount":13,"repositoryHtmlUrl":49,"repositoryHomepageUrl":6,"ownerHtmlUrl":50,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":51,"install":52,"resources":65},"01M6PC277AYQNR415F2GFWB3GD","privacy-mask",null,"Mask, redact, anonymize and censor sensitive information (PII) in screenshots and images — phone numbers, emails, IDs, API keys, crypto wallets, credit cards, passwords, and more.","duc-duy-1612\u002FOnline-Delivery-Systems-Web","duc-duy-1612","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F192231384?v=4","01M6NSDKQQDKVTHZ8DZMZ1VYY6","01M6NSDKW8DDVTQHBT1HBDDJPT",0,"MIT","https:\u002F\u002Fgithub.com\u002Fduc-duy-1612\u002FOnline-Delivery-Systems-Web\u002Fblob\u002Fmain\u002F.agents\u002Fskills_archive\u002Fprivacy-mask\u002FSKILL.md",[],[18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37],"privacy","mask","privacy mask","emails","anonymize","api keys","tree","more","passwords","information","critical","license","phone","main","community","images","api","pii","ids","alpha","2026-11-10 10:12:30",false,"---\nname: privacy-mask\ndescription: \"Mask, redact, anonymize and censor sensitive information (PII) in screenshots and images — phone numbers, emails, IDs, API keys, crypto wallets, credit cards, passwords, and more.\"\nrisk: critical\nsource: https:\u002F\u002Fgithub.com\u002Ffullstackcrew-alpha\u002Fprivacy-mask\u002Ftree\u002Fmain\u002F\nsource_repo: fullstackcrew-alpha\u002Fprivacy-mask\nsource_type: community\ndate_added: 2026-07-01\nlicense: MIT\nlicense_source: https:\u002F\u002Fgithub.com\u002Ffullstackcrew-alpha\u002Fprivacy-mask\u002Fblob\u002Fmain\u002FLICENSE\n---\n\n# Privacy Mask\n\nDetect and mask sensitive information in images locally before they leave your machine.\n\n## Prerequisites\n\nThis skill requires the `privacy-mask` CLI to be pre-installed on the system.\nIf it is not available, inform the user that they need to install it first:\n\n1. Install via pip: `pip install privacy-mask`\n2. Ensure Tesseract OCR is installed: `brew install tesseract` (macOS) or `apt install tesseract-ocr` (Linux)\n3. Verify installation: `privacy-mask --version`\n4. (Optional) Install NER support: `pip install privacy-mask[ner]`\n\n## When to use\n\n- User sends a screenshot or image file (`.png`, `.jpg`, `.jpeg`, `.bmp`, `.tiff`) that may contain private data\n- User mentions privacy, masking, redacting, or anonymizing\n- You need to analyze an image but want to redact sensitive info first\n- IF the user shares a screenshot for debugging, THEN run `privacy-mask mask \u003Cpath> --dry-run` first to check for PII\n- IF detections are found, THEN mask the image before proceeding with analysis\n\n## Usage\n\nMask an image:\n```bash\nprivacy-mask mask \u002Fpath\u002Fto\u002Fscreenshot.png\nprivacy-mask mask \u002Fpath\u002Fto\u002Fscreenshot.png --in-place\nprivacy-mask mask \u002Fpath\u002Fto\u002Fscreenshot.png --dry-run   # detect only, no masking\nprivacy-mask mask \u002Fpath\u002Fto\u002Fscreenshot.png --detection-engine regex  # regex only, skip NER\nprivacy-mask mask \u002Fpath\u002Fto\u002Fscreenshot.png --config \u002Fpath\u002Fto\u002Fcustom-config.json\n```\n\nOutput is JSON:\n```json\n{\n  \"status\": \"success\",\n  \"detections\": [{\"label\": \"PHONE_CN\", \"text\": \"***\", \"bbox\": [10, 20, 100, 30]}],\n  \"summary\": \"Masked 1 regions: 1 PHONE_CN\"\n}\n```\n\n### Example workflow\n\n1. User provides a screenshot: `~\u002FDesktop\u002Ferror-screenshot.png`\n2. Run detection: `privacy-mask mask ~\u002FDesktop\u002Ferror-screenshot.png --dry-run`\n3. IF detections found, mask the image: `privacy-mask mask ~\u002FDesktop\u002Ferror-screenshot.png`\n4. The masked output is saved as `~\u002FDesktop\u002Ferror-screenshot_masked.png`\n5. Use the masked image for further analysis\n\n## What it detects\n\n- **IDs**: Chinese ID card, passport, HK\u002FTW ID, US SSN, UK NINO, Canadian SIN, Indian Aadhaar\u002FPAN, Korean RRN, Singapore NRIC, Malaysian IC\n- **Phone**: Chinese mobile\u002Flandline, US phone, international (+prefix)\n- **Financial**: Bank card, Amex, IBAN, SWIFT\u002FBIC\n- **Developer keys**: AWS, GitHub, Slack, Google, Stripe tokens, JWT, connection strings, API keys, SSH\u002FPEM keys\n- **Crypto**: Bitcoin, Ethereum wallet addresses\n- **Other**: Email, birthday, IP\u002FIPv6, MAC, UUID, license plate, MRZ, URL auth tokens\n- **NER** (optional): Person names, street addresses, organizations, dates of birth, medical conditions\n\n## Constraints\n\n- Do NOT send unmasked images to any external API or cloud service\n- Do NOT skip masking when detections are found — always mask before sharing\n- Do NOT modify the original image unless `--in-place` is explicitly requested\n- Avoid running on very large images (>10MB) without warning the user about processing time\n\n## Anti-patterns\n\n- **Don't assume images are safe** — always run detection even if the image \"looks clean\"\n- **Don't use `--in-place` by default** — preserve the original unless the user asks otherwise\n- **Don't ignore dry-run results** — if `--dry-run` finds PII, the image must be masked before use\n- **Don't hardcode config paths** — use the bundled default or let the user specify `--config`\n\n## Important\n\n- All processing is **local and offline** — no data leaves the machine\n- Configure rules in the bundled `config.json` or pass `--config` for custom rules\n\n## Limitations\n\n- Use this skill only when the task clearly matches its upstream source and local project context.\n- Verify commands, generated code, dependencies, credentials, and external service behavior before applying changes.\n- Do not treat examples as a substitute for environment-specific tests, security review, or user approval for destructive or costly actions.\n","# Privacy Mask\n\nDetect and mask sensitive information in images locally before they leave your machine.\n\n## Prerequisites\n\nThis skill requires the `privacy-mask` CLI to be pre-installed on the system.\nIf it is not available, inform the user that they need to install it first:\n\n1. Install via pip: `pip install privacy-mask`\n2. Ensure Tesseract OCR is installed: `brew install tesseract` (macOS) or `apt install tesseract-ocr` (Linux)\n3. Verify installation: `privacy-mask --version`\n4. (Optional) Install NER support: `pip install privacy-mask[ner]`\n\n## When to use\n\n- User sends a screenshot or image file (`.png`, `.jpg`, `.jpeg`, `.bmp`, `.tiff`) that may contain private data\n- User mentions privacy, masking, redacting, or anonymizing\n- You need to analyze an image but want to redact sensitive info first\n- IF the user shares a screenshot for debugging, THEN run `privacy-mask mask \u003Cpath> --dry-run` first to check for PII\n- IF detections are found, THEN mask the image before proceeding with analysis\n\n## Usage\n\nMask an image:\n```bash\nprivacy-mask mask \u002Fpath\u002Fto\u002Fscreenshot.png\nprivacy-mask mask \u002Fpath\u002Fto\u002Fscreenshot.png --in-place\nprivacy-mask mask \u002Fpath\u002Fto\u002Fscreenshot.png --dry-run   # detect only, no masking\nprivacy-mask mask \u002Fpath\u002Fto\u002Fscreenshot.png --detection-engine regex  # regex only, skip NER\nprivacy-mask mask \u002Fpath\u002Fto\u002Fscreenshot.png --config \u002Fpath\u002Fto\u002Fcustom-config.json\n```\n\nOutput is JSON:\n```json\n{\n  \"status\": \"success\",\n  \"detections\": [{\"label\": \"PHONE_CN\", \"text\": \"***\", \"bbox\": [10, 20, 100, 30]}],\n  \"summary\": \"Masked 1 regions: 1 PHONE_CN\"\n}\n```\n\n### Example workflow\n\n1. User provides a screenshot: `~\u002FDesktop\u002Ferror-screenshot.png`\n2. Run detection: `privacy-mask mask ~\u002FDesktop\u002Ferror-screenshot.png --dry-run`\n3. IF detections found, mask the image: `privacy-mask mask ~\u002FDesktop\u002Ferror-screenshot.png`\n4. The masked output is saved as `~\u002FDesktop\u002Ferror-screenshot_masked.png`\n5. Use the masked image for further analysis\n\n## What it detects\n\n- **IDs**: Chinese ID card, passport, HK\u002FTW ID, US SSN, UK NINO, Canadian SIN, Indian Aadhaar\u002FPAN, Korean RRN, Singapore NRIC, Malaysian IC\n- **Phone**: Chinese mobile\u002Flandline, US phone, international (+prefix)\n- **Financial**: Bank card, Amex, IBAN, SWIFT\u002FBIC\n- **Developer keys**: AWS, GitHub, Slack, Google, Stripe tokens, JWT, connection strings, API keys, SSH\u002FPEM keys\n- **Crypto**: Bitcoin, Ethereum wallet addresses\n- **Other**: Email, birthday, IP\u002FIPv6, MAC, UUID, license plate, MRZ, URL auth tokens\n- **NER** (optional): Person names, street addresses, organizations, dates of birth, medical conditions\n\n## Constraints\n\n- Do NOT send unmasked images to any external API or cloud service\n- Do NOT skip masking when detections are found — always mask before sharing\n- Do NOT modify the original image unless `--in-place` is explicitly requested\n- Avoid running on very large images (>10MB) without warning the user about processing time\n\n## Anti-patterns\n\n- **Don't assume images are safe** — always run detection even if the image \"looks clean\"\n- **Don't use `--in-place` by default** — preserve the original unless the user asks otherwise\n- **Don't ignore dry-run results** — if `--dry-run` finds PII, the image must be masked before use\n- **Don't hardcode config paths** — use the bundled default or let the user specify `--config`\n\n## Important\n\n- All processing is **local and offline** — no data leaves the machine\n- Configure rules in the bundled `config.json` or pass `--config` for custom rules\n\n## Limitations\n\n- Use this skill only when the task clearly matches its upstream source and local project context.\n- Verify commands, generated code, dependencies, credentials, and external service behavior before applying changes.\n- Do not treat examples as a substitute for environment-specific tests, security review, or user approval for destructive or costly actions.\n",{"name":5,"risk":28,"source":43,"license":14,"date_added":44,"description":7,"source_repo":45,"source_type":32,"license_source":46},"https:\u002F\u002Fgithub.com\u002Ffullstackcrew-alpha\u002Fprivacy-mask\u002Ftree\u002Fmain\u002F",1782864000000,"fullstackcrew-alpha\u002Fprivacy-mask","https:\u002F\u002Fgithub.com\u002Ffullstackcrew-alpha\u002Fprivacy-mask\u002Fblob\u002Fmain\u002FLICENSE","f3312ba749561b6159f477dbfc9313c875d40a56",".agents\u002Fskills_archive\u002Fprivacy-mask","https:\u002F\u002Fgithub.com\u002Fduc-duy-1612\u002FOnline-Delivery-Systems-Web","https:\u002F\u002Fgithub.com\u002Fduc-duy-1612","2026-10-25 23:50:58",{"source":8,"skillName":5,"commands":53,"prompt":63,"zipAvailable":64},[54,57,60],{"tool":55,"command":56},"npx","npx skills add duc-duy-1612\u002FOnline-Delivery-Systems-Web --skill privacy-mask",{"tool":58,"command":59},"bunx","bunx skills add duc-duy-1612\u002FOnline-Delivery-Systems-Web --skill privacy-mask",{"tool":61,"command":62},"pnpm","pnpm dlx skills add duc-duy-1612\u002FOnline-Delivery-Systems-Web --skill privacy-mask","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fduc-duy-1612\u002FOnline-Delivery-Systems-Web\u002Fblob\u002Fmain\u002F.agents\u002Fskills_archive\u002Fprivacy-mask\u002FSKILL.md",true,[],[67,95,119,143,170,194],{"skillNo":68,"name":69,"nameZh":6,"description":70,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":71,"categories":72,"keywords":78,"publishedAt":38},"01M6Q0FA5FZ410Z33Z3TFQ4DBA","zero-trust","Implement zero-trust network architecture. Configure identity-based access, micro-segmentation, and continuous verification. Use when implementing modern security architectures.","https:\u002F\u002Fgithub.com\u002Fduc-duy-1612\u002FOnline-Delivery-Systems-Web\u002Fblob\u002Fmain\u002F.agents\u002Fskills_archive\u002Fzero-trust\u002FSKILL.md",[73],{"categoryNo":74,"categoryName":75,"taxonomyType":76,"taxonomyTypeDesc":77},"01JBSEEDCAT000000000000011","运维与部署","SCENARIO","使用场景",[79,80,81,82,83,84,69,85,86,87,88,89,32,31,90,28,91,92,93,94],"ZeRO","trust","zero trust","architecture","assessment","verification","segmentation","devops-security","access","configure","only","active","scope","scripts","relevant","implementing",{"skillNo":96,"name":97,"nameZh":6,"description":98,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":99,"categories":100,"keywords":101,"publishedAt":38},"01M6Q0F1YZJW3KX5FBKEVZ8CV4","zcode-delegate","Delegate coding tasks to the Z.AI ZCode CLI only when the user explicitly requests it, while the orchestrator retains review and landing responsibility.","https:\u002F\u002Fgithub.com\u002Fduc-duy-1612\u002FOnline-Delivery-Systems-Web\u002Fblob\u002Fmain\u002F.agents\u002Fskills_archive\u002Fzcode-delegate\u002FSKILL.md",[],[102,103,104,105,106,107,108,109,110,111,112,113,114,89,115,32,116,117,28,118],"delegate","zcode","zcode delegate","review","cli","orchestration","tasks","run","Bash","model","node","read","orchestrator","files","desktop app","app","agent-orchestration",{"skillNo":120,"name":121,"nameZh":6,"description":122,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":123,"categories":124,"keywords":125,"publishedAt":38},"01M6Q0ETK41VGNMYEXW0T00AJN","youtube-transcript","Fetch YouTube transcripts through DeepAPI or local fallback tooling and save clean text output.","https:\u002F\u002Fgithub.com\u002Fduc-duy-1612\u002FOnline-Delivery-Systems-Web\u002Fblob\u002Fmain\u002F.agents\u002Fskills_archive\u002Fyoutube-transcript\u002FSKILL.md",[],[126,127,128,129,130,131,132,29,133,134,135,136,137,32,31,138,139,140,141,142],"transcript","youtube transcript","youtube","safe","github","codex","research","https","text","fetch","tooling","clean","local","output","deepapi","youtube transcripts","blob",{"skillNo":144,"name":145,"nameZh":6,"description":146,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":147,"categories":148,"keywords":160,"publishedAt":38},"01M6Q0EPPH2PVMDW40017F8WX0","youtube-transcript-skills","Fetch YouTube video transcripts, search videos\u002Fchannels, browse channels, and extract playlists via the getyoutubetranscript.com API - free tier, no card required.","https:\u002F\u002Fgithub.com\u002Fduc-duy-1612\u002FOnline-Delivery-Systems-Web\u002Fblob\u002Fmain\u002F.agents\u002Fskills_archive\u002Fyoutube-transcript-skills\u002FSKILL.md",[149,152,155],{"categoryNo":150,"categoryName":151,"taxonomyType":76,"taxonomyTypeDesc":77},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":153,"categoryName":154,"taxonomyType":76,"taxonomyTypeDesc":77},"01JBSEEDCAT000000000000016","图像与多媒体",{"categoryNo":156,"categoryName":157,"taxonomyType":158,"taxonomyTypeDesc":159},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[126,127,128,161,129,162,130,131,29,163,34,164,165,135,166,32,31,167,168,169],"youtube transcript skills","gemini","search","Video","browse","api-integration","free","card","channels",{"skillNo":171,"name":172,"nameZh":6,"description":173,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":174,"categories":175,"keywords":180,"publishedAt":38},"01M6Q0EAB96PX83W5PTE8A0R8D","youtube-notetaker","Turn YouTube talks into local study notes with slides, transcripts, editable annotations, and a markdown-backed viewer.","https:\u002F\u002Fgithub.com\u002Fduc-duy-1612\u002FOnline-Delivery-Systems-Web\u002Fblob\u002Fmain\u002F.agents\u002Fskills_archive\u002Fyoutube-notetaker\u002FSKILL.md",[176,179],{"categoryNo":177,"categoryName":178,"taxonomyType":76,"taxonomyTypeDesc":77},"01JBSEEDCAT000000000000003","演示文稿",{"categoryNo":153,"categoryName":154,"taxonomyType":76,"taxonomyTypeDesc":77},[128,181,182,106,129,183,184,185,186,29,164,187,188,189,190,31,191,138,192,193],"youtube notetaker","notetaker","workflow","official","notes","code","markdown","slides","annotations","README","study","dair-academy","viewer",{"skillNo":195,"name":196,"nameZh":6,"description":197,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":198,"categories":199,"keywords":201,"publishedAt":38},"01M6Q0E55F0GW5MX48V8HXS8B5","youtube-full","Fetch YouTube transcripts, search videos, browse channels, and extract playlists via TranscriptAPI — no yt-dlp, no Google API key, works from any cloud server.","https:\u002F\u002Fgithub.com\u002Fduc-duy-1612\u002FOnline-Delivery-Systems-Web\u002Fblob\u002Fmain\u002F.agents\u002Fskills_archive\u002Fyoutube-full\u002FSKILL.md",[200],{"categoryNo":150,"categoryName":151,"taxonomyType":76,"taxonomyTypeDesc":77},[202,128,203,204,129,162,163,205,206,34,164,165,135,207,166,32,31,167,208,141],"youtube full","full","google","server","dlp","credits","automatic"]