[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M7APJTWSWDXH4QXWFNR0DASR":3,"skill-same:01M7APJTWSWDXH4QXWFNR0DASR":74},{"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":18,"publishedAt":19,"linkOnly":20,"markdownContent":21,"markdownBody":22,"frontMatter":23,"refName":33,"commitSha":34,"skillDirectory":35,"forksCount":36,"repositoryHtmlUrl":37,"repositoryHomepageUrl":6,"ownerHtmlUrl":38,"ownerBlogUrl":39,"ownerDescription":40,"updatedAt":41,"install":42,"resources":55},"01M7APJTWSWDXH4QXWFNR0DASR","django-storages-s3",null,"Use when configuring Django to store static and media files on AWS S3 with django-storages. Invoke when working with the STORAGES setting, S3 buckets, presigned URLs, CloudFront, or boto3-backed file storage in settings.py. Configures the Django 4.2+ STORAGES dict, public\u002Fprivate custom backends, presigned GET\u002FPOST URLs, IAM policies, and S3 mocking for tests. Trigger terms: django-storages, S3, boto3, S3Boto3Storage, STORAGES, presigned URL, CloudFront, media files, collectstatic, AWS_STORAGE_BUCKET_NAME.","Cyrilthetecchieee\u002Fcyril-code-","Cyrilthetecchieee","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F219787998?v=4","01M7AF0MMMKRAA0H61XMJPV92H","Julian Cyril D ","01M7AF0MQ10AVG6QJQ1C2BC0F5",2,"MIT","https:\u002F\u002Fgithub.com\u002FCyrilthetecchieee\u002Fcyril-code-\u002Fblob\u002Fmain\u002Fsrc\u002Fcyril_code\u002Fassets\u002F.skills_repo\u002Fskills\u002Fdjango-storages-s3\u002FSKILL.md",[],[],"2026-11-15 14:19:17",false,"---\nname: django-storages-s3\ndescription: \"Use when configuring Django to store static and media files on AWS S3 with django-storages. Invoke when working with the STORAGES setting, S3 buckets, presigned URLs, CloudFront, or boto3-backed file storage in settings.py. Configures the Django 4.2+ STORAGES dict, public\u002Fprivate custom backends, presigned GET\u002FPOST URLs, IAM policies, and S3 mocking for tests. Trigger terms: django-storages, S3, boto3, S3Boto3Storage, STORAGES, presigned URL, CloudFront, media files, collectstatic, AWS_STORAGE_BUCKET_NAME.\"\nlicense: MIT\nmetadata:\n  author: https:\u002F\u002Fgithub.com\u002Fawais786\n  version: \"1.0.0\"\n  domain: backend\n  triggers: django-storages, S3, boto3, S3Boto3Storage, STORAGES, presigned URL, CloudFront, media files, collectstatic\n  role: specialist\n  scope: implementation\n  output-format: code\n  related-skills: django-expert\n---\n\n# Django Storages S3\n\nSenior Django specialist for production-grade file storage on AWS S3 via `django-storages` and `boto3` — public and private media, static files, presigned URLs, and CloudFront.\n\n## When to Use This Skill\n\n- Serving static and\u002For media files from AWS S3 instead of the local filesystem\n- Configuring the Django 4.2+ `STORAGES` dict or legacy `DEFAULT_FILE_STORAGE`\n- Separating public (CDN-served) and private (presigned) file backends\n- Generating presigned download or direct browser-to-S3 upload URLs\n- Fronting S3 with CloudFront and writing a least-privilege IAM policy\n- Migrating local `FileField`\u002F`ImageField` storage to S3 without code changes\n- Testing storage code without hitting S3\n\n## Core Workflow\n\n1. **Install & register** — `pip install django-storages[s3] boto3`; add `\"storages\"` to `INSTALLED_APPS`\n2. **Configure credentials** — Load from env vars or rely on an attached IAM role; never hardcode\n3. **Wire the `STORAGES` dict** — Set `default` (media) and `staticfiles` backends with separate `location` prefixes\n4. **Add named backends** — Split public vs. private buckets\u002FACLs as additional `STORAGES` entries when needed\n5. **Verify & test** — Run `collectstatic`, confirm uploads land in S3, and mock S3 in tests with `InMemoryStorage` or `moto`\n\n## Reference Guide\n\nLoad detailed guidance based on context:\n\n| Topic | Reference | Load When |\n|-------|-----------|-----------|\n| Settings & STORAGES | `references\u002Fconfiguration.md` | Core settings, 4.2+ vs legacy, CloudFront |\n| Custom backends | `references\u002Fcustom-backends.md` | Public vs. private buckets, per-field storage |\n| Presigned URLs | `references\u002Fpresigned-urls.md` | Download links, direct browser uploads |\n| Testing & IAM | `references\u002Ftesting-storages.md` | Mocking S3, IAM policy, common pitfalls |\n\n## Minimal Working Example\n\nThe snippet below demonstrates the core MUST DO constraints: env-loaded credentials, `STORAGES` dict, separate media\u002Fstatic locations, and `default_acl=None` on the media backend.\n\n```python\n# settings.py\nimport os\n\nAWS_STORAGE_BUCKET_NAME = os.environ[\"AWS_STORAGE_BUCKET_NAME\"]\nAWS_S3_REGION_NAME = os.environ.get(\"AWS_S3_REGION_NAME\", \"us-east-1\")\nAWS_S3_CUSTOM_DOMAIN = f\"{AWS_STORAGE_BUCKET_NAME}.s3.{AWS_S3_REGION_NAME}.amazonaws.com\"\n# On EC2\u002FECS\u002FLambda, omit keys entirely — boto3 uses the attached IAM role.\n\nSTORAGES = {\n    \"default\": {  # media uploads\n        \"BACKEND\": \"storages.backends.s3boto3.S3Boto3Storage\",\n        \"OPTIONS\": {\n            \"bucket_name\": AWS_STORAGE_BUCKET_NAME,\n            \"location\": \"media\",\n            \"default_acl\": None,        # rely on bucket policy, not per-object ACLs\n            \"file_overwrite\": False,\n            \"querystring_auth\": False,  # public objects → clean URLs\n        },\n    },\n    \"staticfiles\": {\n        \"BACKEND\": \"storages.backends.s3boto3.S3StaticStorage\",\n        \"OPTIONS\": {\n            \"bucket_name\": AWS_STORAGE_BUCKET_NAME,\n            \"location\": \"static\",\n        },\n    },\n}\n\nMEDIA_URL = f\"https:\u002F\u002F{AWS_S3_CUSTOM_DOMAIN}\u002Fmedia\u002F\"\nSTATIC_URL = f\"https:\u002F\u002F{AWS_S3_CUSTOM_DOMAIN}\u002Fstatic\u002F\"\n```\n\n```python\n# models.py — uploads go straight to S3 on save()\nfrom django.db import models\n\nclass Document(models.Model):\n    file = models.FileField(upload_to=\"docs\u002F\")  # uses STORAGES[\"default\"]\n```\n\n## Auditing an Existing Configuration\n\nWhen reviewing a project that already uses S3 (not greenfield), walk this\nchecklist — each item is a constraint below rephrased as \"find X, confirm Y\":\n\n1. **Credentials** — `grep -rn \"AWS_SECRET_ACCESS_KEY\\|aws_secret\" settings\u002F` → confirm values come from `os.environ`\u002F`django-environ` or an IAM role, never literals committed to the repo.\n2. **ACLs** — `grep -rn \"default_acl\\|AWS_DEFAULT_ACL\" .` → on buckets created after April 2023, every value must be `None`. Any `\"public-read\"`\u002F`\"private\"` will raise `AccessControlListNotSupported`; public access belongs in a bucket policy.\n3. **Storage backend** — confirm Django 4.2+ uses the `STORAGES` dict, not `DEFAULT_FILE_STORAGE`\u002F`STATICFILES_STORAGE` (removed in Django 5.1, so silently ignored on 5.1\u002F5.2\u002F6.0); confirm the static class is `S3StaticStorage`, not a fabricated name.\n4. **Locations** — confirm `default` (media) and `staticfiles` have distinct `location` prefixes or buckets so `collectstatic` never collides with uploads.\n5. **Region** — confirm `region_name` (or the global `AWS_S3_REGION_NAME`) matches the bucket's real region and that `AWS_S3_CUSTOM_DOMAIN` includes the region segment for non-`us-east-1` buckets.\n6. **Presigning** — for private backends, confirm `querystring_auth=True` **and** `custom_domain=None`; confirm presigned `.url()` results aren't cached past `AWS_QUERYSTRING_EXPIRE`.\n7. **Overwrite cleanup** — where `file_overwrite=False`, confirm replaced files are explicitly deleted (otherwise superseded objects leak).\n8. **IAM** — confirm the policy grants only `Get\u002FPut\u002FDelete\u002FListBucket` on the bucket ARN, not broader S3 access.\n\n## Constraints\n\n### MUST DO\n- Load AWS credentials from environment variables or an attached IAM role\n- Set `default_acl=None` so bucket policies (not object ACLs) control access\n- Give static and media files separate `location` prefixes or separate buckets\n- Use the `STORAGES` dict on Django 4.2+ (same config through 5.2 LTS and 6.0); `DEFAULT_FILE_STORAGE`\u002F`STATICFILES_STORAGE` were removed in 5.1, so reserve them for \u003C 4.2 only\n- Set `custom_domain=None` on any backend that issues presigned URLs\n- Mock S3 (`InMemoryStorage` or `moto`) in tests instead of hitting real buckets\n\n### MUST NOT DO\n- Hardcode `AWS_SECRET_ACCESS_KEY` in `settings.py` or commit it\n- Mix `querystring_auth=True` with a `custom_domain` (presigning breaks)\n- Mix static and media files under the same prefix\n- Grant the IAM user broader than `Get\u002FPut\u002FDelete\u002FListBucket` on the bucket ARN\n- Rely on per-object ACLs on buckets created after April 2023 (ACLs disabled by default)\n\n## Knowledge Reference\n\ndjango-storages, S3Boto3Storage, S3StaticStorage, boto3, STORAGES dict, presigned URLs, generate_presigned_post, CloudFront, IAM policy, InMemoryStorage, moto\n\n## Related Skills\n\n- `django-expert` — core Django models, DRF, and ORM that produce the files this skill persists to S3\n- `fullstack-guardian` — secure end-to-end upload flows and access control around stored files\n- `devops-engineer` — provisioning the S3 buckets, IAM roles, and CloudFront distributions this skill targets\n\n[Documentation](https:\u002F\u002Fjeffallan.github.io\u002Fclaude-skills\u002Fskills\u002Fbackend\u002Fdjango-storages-s3\u002F)\n","# Django Storages S3\n\nSenior Django specialist for production-grade file storage on AWS S3 via `django-storages` and `boto3` — public and private media, static files, presigned URLs, and CloudFront.\n\n## When to Use This Skill\n\n- Serving static and\u002For media files from AWS S3 instead of the local filesystem\n- Configuring the Django 4.2+ `STORAGES` dict or legacy `DEFAULT_FILE_STORAGE`\n- Separating public (CDN-served) and private (presigned) file backends\n- Generating presigned download or direct browser-to-S3 upload URLs\n- Fronting S3 with CloudFront and writing a least-privilege IAM policy\n- Migrating local `FileField`\u002F`ImageField` storage to S3 without code changes\n- Testing storage code without hitting S3\n\n## Core Workflow\n\n1. **Install & register** — `pip install django-storages[s3] boto3`; add `\"storages\"` to `INSTALLED_APPS`\n2. **Configure credentials** — Load from env vars or rely on an attached IAM role; never hardcode\n3. **Wire the `STORAGES` dict** — Set `default` (media) and `staticfiles` backends with separate `location` prefixes\n4. **Add named backends** — Split public vs. private buckets\u002FACLs as additional `STORAGES` entries when needed\n5. **Verify & test** — Run `collectstatic`, confirm uploads land in S3, and mock S3 in tests with `InMemoryStorage` or `moto`\n\n## Reference Guide\n\nLoad detailed guidance based on context:\n\n| Topic | Reference | Load When |\n|-------|-----------|-----------|\n| Settings & STORAGES | `references\u002Fconfiguration.md` | Core settings, 4.2+ vs legacy, CloudFront |\n| Custom backends | `references\u002Fcustom-backends.md` | Public vs. private buckets, per-field storage |\n| Presigned URLs | `references\u002Fpresigned-urls.md` | Download links, direct browser uploads |\n| Testing & IAM | `references\u002Ftesting-storages.md` | Mocking S3, IAM policy, common pitfalls |\n\n## Minimal Working Example\n\nThe snippet below demonstrates the core MUST DO constraints: env-loaded credentials, `STORAGES` dict, separate media\u002Fstatic locations, and `default_acl=None` on the media backend.\n\n```python\n# settings.py\nimport os\n\nAWS_STORAGE_BUCKET_NAME = os.environ[\"AWS_STORAGE_BUCKET_NAME\"]\nAWS_S3_REGION_NAME = os.environ.get(\"AWS_S3_REGION_NAME\", \"us-east-1\")\nAWS_S3_CUSTOM_DOMAIN = f\"{AWS_STORAGE_BUCKET_NAME}.s3.{AWS_S3_REGION_NAME}.amazonaws.com\"\n# On EC2\u002FECS\u002FLambda, omit keys entirely — boto3 uses the attached IAM role.\n\nSTORAGES = {\n    \"default\": {  # media uploads\n        \"BACKEND\": \"storages.backends.s3boto3.S3Boto3Storage\",\n        \"OPTIONS\": {\n            \"bucket_name\": AWS_STORAGE_BUCKET_NAME,\n            \"location\": \"media\",\n            \"default_acl\": None,        # rely on bucket policy, not per-object ACLs\n            \"file_overwrite\": False,\n            \"querystring_auth\": False,  # public objects → clean URLs\n        },\n    },\n    \"staticfiles\": {\n        \"BACKEND\": \"storages.backends.s3boto3.S3StaticStorage\",\n        \"OPTIONS\": {\n            \"bucket_name\": AWS_STORAGE_BUCKET_NAME,\n            \"location\": \"static\",\n        },\n    },\n}\n\nMEDIA_URL = f\"https:\u002F\u002F{AWS_S3_CUSTOM_DOMAIN}\u002Fmedia\u002F\"\nSTATIC_URL = f\"https:\u002F\u002F{AWS_S3_CUSTOM_DOMAIN}\u002Fstatic\u002F\"\n```\n\n```python\n# models.py — uploads go straight to S3 on save()\nfrom django.db import models\n\nclass Document(models.Model):\n    file = models.FileField(upload_to=\"docs\u002F\")  # uses STORAGES[\"default\"]\n```\n\n## Auditing an Existing Configuration\n\nWhen reviewing a project that already uses S3 (not greenfield), walk this\nchecklist — each item is a constraint below rephrased as \"find X, confirm Y\":\n\n1. **Credentials** — `grep -rn \"AWS_SECRET_ACCESS_KEY\\|aws_secret\" settings\u002F` → confirm values come from `os.environ`\u002F`django-environ` or an IAM role, never literals committed to the repo.\n2. **ACLs** — `grep -rn \"default_acl\\|AWS_DEFAULT_ACL\" .` → on buckets created after April 2023, every value must be `None`. Any `\"public-read\"`\u002F`\"private\"` will raise `AccessControlListNotSupported`; public access belongs in a bucket policy.\n3. **Storage backend** — confirm Django 4.2+ uses the `STORAGES` dict, not `DEFAULT_FILE_STORAGE`\u002F`STATICFILES_STORAGE` (removed in Django 5.1, so silently ignored on 5.1\u002F5.2\u002F6.0); confirm the static class is `S3StaticStorage`, not a fabricated name.\n4. **Locations** — confirm `default` (media) and `staticfiles` have distinct `location` prefixes or buckets so `collectstatic` never collides with uploads.\n5. **Region** — confirm `region_name` (or the global `AWS_S3_REGION_NAME`) matches the bucket's real region and that `AWS_S3_CUSTOM_DOMAIN` includes the region segment for non-`us-east-1` buckets.\n6. **Presigning** — for private backends, confirm `querystring_auth=True` **and** `custom_domain=None`; confirm presigned `.url()` results aren't cached past `AWS_QUERYSTRING_EXPIRE`.\n7. **Overwrite cleanup** — where `file_overwrite=False`, confirm replaced files are explicitly deleted (otherwise superseded objects leak).\n8. **IAM** — confirm the policy grants only `Get\u002FPut\u002FDelete\u002FListBucket` on the bucket ARN, not broader S3 access.\n\n## Constraints\n\n### MUST DO\n- Load AWS credentials from environment variables or an attached IAM role\n- Set `default_acl=None` so bucket policies (not object ACLs) control access\n- Give static and media files separate `location` prefixes or separate buckets\n- Use the `STORAGES` dict on Django 4.2+ (same config through 5.2 LTS and 6.0); `DEFAULT_FILE_STORAGE`\u002F`STATICFILES_STORAGE` were removed in 5.1, so reserve them for \u003C 4.2 only\n- Set `custom_domain=None` on any backend that issues presigned URLs\n- Mock S3 (`InMemoryStorage` or `moto`) in tests instead of hitting real buckets\n\n### MUST NOT DO\n- Hardcode `AWS_SECRET_ACCESS_KEY` in `settings.py` or commit it\n- Mix `querystring_auth=True` with a `custom_domain` (presigning breaks)\n- Mix static and media files under the same prefix\n- Grant the IAM user broader than `Get\u002FPut\u002FDelete\u002FListBucket` on the bucket ARN\n- Rely on per-object ACLs on buckets created after April 2023 (ACLs disabled by default)\n\n## Knowledge Reference\n\ndjango-storages, S3Boto3Storage, S3StaticStorage, boto3, STORAGES dict, presigned URLs, generate_presigned_post, CloudFront, IAM policy, InMemoryStorage, moto\n\n## Related Skills\n\n- `django-expert` — core Django models, DRF, and ORM that produce the files this skill persists to S3\n- `fullstack-guardian` — secure end-to-end upload flows and access control around stored files\n- `devops-engineer` — provisioning the S3 buckets, IAM roles, and CloudFront distributions this skill targets\n\n[Documentation](https:\u002F\u002Fjeffallan.github.io\u002Fclaude-skills\u002Fskills\u002Fbackend\u002Fdjango-storages-s3\u002F)\n",{"name":5,"license":15,"metadata":24,"description":7},{"role":25,"scope":26,"author":27,"domain":28,"version":29,"triggers":30,"output-format":31,"related-skills":32},"specialist","implementation","https:\u002F\u002Fgithub.com\u002Fawais786","backend","1.0.0","django-storages, S3, boto3, S3Boto3Storage, STORAGES, presigned URL, CloudFront, media files, collectstatic","code","django-expert","main","57e7aa6b6e03bce1a7d7862ba9c2ec312f7f19b5","src\u002Fcyril_code\u002Fassets\u002F.skills_repo\u002Fskills\u002Fdjango-storages-s3",0,"https:\u002F\u002Fgithub.com\u002FCyrilthetecchieee\u002Fcyril-code-","https:\u002F\u002Fgithub.com\u002FCyrilthetecchieee","https:\u002F\u002Fwithcyril.me\u002F","Hi, I’m Julian Cyril D, a Computer Science and Business Systems student at PSNACET.\r\nI’m passionate about full-stack development, UI\u002FUX design, and building sma","2026-11-04 23:28:50",{"source":8,"skillName":5,"commands":43,"prompt":53,"zipAvailable":54},[44,47,50],{"tool":45,"command":46},"npx","npx skills add Cyrilthetecchieee\u002Fcyril-code- --skill django-storages-s3",{"tool":48,"command":49},"bunx","bunx skills add Cyrilthetecchieee\u002Fcyril-code- --skill django-storages-s3",{"tool":51,"command":52},"pnpm","pnpm dlx skills add Cyrilthetecchieee\u002Fcyril-code- --skill django-storages-s3","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FCyrilthetecchieee\u002Fcyril-code-\u002Fblob\u002Fmain\u002Fsrc\u002Fcyril_code\u002Fassets\u002F.skills_repo\u002Fskills\u002Fdjango-storages-s3\u002FSKILL.md",true,[56,62,66,70],{"path":57,"resourceType":58,"resourceTypeDesc":59,"sizeBytes":60,"sourceHtmlUrl":61},"references\u002Fconfiguration.md","REFERENCE","参考文档",6477,"https:\u002F\u002Fgithub.com\u002FCyrilthetecchieee\u002Fcyril-code-\u002Fblob\u002Fmain\u002Fsrc\u002Fcyril_code\u002Fassets\u002F.skills_repo\u002Fskills\u002Fdjango-storages-s3\u002Freferences\u002Fconfiguration.md",{"path":63,"resourceType":58,"resourceTypeDesc":59,"sizeBytes":64,"sourceHtmlUrl":65},"references\u002Fcustom-backends.md",5260,"https:\u002F\u002Fgithub.com\u002FCyrilthetecchieee\u002Fcyril-code-\u002Fblob\u002Fmain\u002Fsrc\u002Fcyril_code\u002Fassets\u002F.skills_repo\u002Fskills\u002Fdjango-storages-s3\u002Freferences\u002Fcustom-backends.md",{"path":67,"resourceType":58,"resourceTypeDesc":59,"sizeBytes":68,"sourceHtmlUrl":69},"references\u002Fpresigned-urls.md",3859,"https:\u002F\u002Fgithub.com\u002FCyrilthetecchieee\u002Fcyril-code-\u002Fblob\u002Fmain\u002Fsrc\u002Fcyril_code\u002Fassets\u002F.skills_repo\u002Fskills\u002Fdjango-storages-s3\u002Freferences\u002Fpresigned-urls.md",{"path":71,"resourceType":58,"resourceTypeDesc":59,"sizeBytes":72,"sourceHtmlUrl":73},"references\u002Ftesting-storages.md",4043,"https:\u002F\u002Fgithub.com\u002FCyrilthetecchieee\u002Fcyril-code-\u002Fblob\u002Fmain\u002Fsrc\u002Fcyril_code\u002Fassets\u002F.skills_repo\u002Fskills\u002Fdjango-storages-s3\u002Freferences\u002Ftesting-storages.md",[75,84,91,99,106,113],{"skillNo":76,"name":77,"nameZh":6,"description":78,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":79,"licenseFileUrl":80,"sourceHtmlUrl":81,"categories":82,"keywords":83,"publishedAt":19},"01M7AQV6CYX8RMC78420V9WZ62","webapp-testing","Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.","Apache-2.0","https:\u002F\u002Fgithub.com\u002FCyrilthetecchieee\u002Fcyril-code-\u002Fblob\u002Fmain\u002Fsrc\u002Fcyril_code\u002Fassets\u002F.skills_repo\u002Fwebapp-testing\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002FCyrilthetecchieee\u002Fcyril-code-\u002Fblob\u002Fmain\u002Fsrc\u002Fcyril_code\u002Fassets\u002F.skills_repo\u002Fwebapp-testing\u002FSKILL.md",[],[],{"skillNo":85,"name":86,"nameZh":6,"description":87,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":88,"categories":89,"keywords":90,"publishedAt":19},"01M7AQV2895N3S1MEX6K76G6G2","youtube-downloader","Download YouTube videos with customizable quality and format options. Use this skill when the user asks to download, save, or grab YouTube videos. Supports various quality settings (best, 1080p, 720p, 480p, 360p), multiple formats (mp4, webm, mkv), and audio-only downloads as MP3.","https:\u002F\u002Fgithub.com\u002FCyrilthetecchieee\u002Fcyril-code-\u002Fblob\u002Fmain\u002Fsrc\u002Fcyril_code\u002Fassets\u002F.skills_repo\u002Fvideo-downloader\u002FSKILL.md",[],[],{"skillNo":92,"name":93,"nameZh":6,"description":94,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":79,"licenseFileUrl":95,"sourceHtmlUrl":96,"categories":97,"keywords":98,"publishedAt":19},"01M7AQTRNX62DNKVZ5GXEHRBKB","theme-factory","Toolkit for styling artifacts with a theme. These artifacts can be slides, docs, reportings, HTML landing pages, etc. There are 10 pre-set themes with colors\u002Ffonts that you can apply to any artifact that has been creating, or can generate a new theme on-the-fly.","https:\u002F\u002Fgithub.com\u002FCyrilthetecchieee\u002Fcyril-code-\u002Fblob\u002Fmain\u002Fsrc\u002Fcyril_code\u002Fassets\u002F.skills_repo\u002Ftheme-factory\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002FCyrilthetecchieee\u002Fcyril-code-\u002Fblob\u002Fmain\u002Fsrc\u002Fcyril_code\u002Fassets\u002F.skills_repo\u002Ftheme-factory\u002FSKILL.md",[],[],{"skillNo":100,"name":101,"nameZh":6,"description":102,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":103,"categories":104,"keywords":105,"publishedAt":19},"01M7AQTNNVHAAN9H6DA8T6ZVE0","template-skill","Replace with description of the skill and when Claude should use it.","https:\u002F\u002Fgithub.com\u002FCyrilthetecchieee\u002Fcyril-code-\u002Fblob\u002Fmain\u002Fsrc\u002Fcyril_code\u002Fassets\u002F.skills_repo\u002Ftemplate-skill\u002FSKILL.md",[],[],{"skillNo":107,"name":108,"nameZh":6,"description":109,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":110,"categories":111,"keywords":112,"publishedAt":19},"01M7AQTJ3MQ6AKX152MEX2MYCC","tailored-resume-generator","Analyzes job descriptions and generates tailored resumes that highlight relevant experience, skills, and achievements to maximize interview chances","https:\u002F\u002Fgithub.com\u002FCyrilthetecchieee\u002Fcyril-code-\u002Fblob\u002Fmain\u002Fsrc\u002Fcyril_code\u002Fassets\u002F.skills_repo\u002Ftailored-resume-generator\u002FSKILL.md",[],[],{"skillNo":114,"name":115,"nameZh":6,"description":116,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":79,"licenseFileUrl":117,"sourceHtmlUrl":118,"categories":119,"keywords":120,"publishedAt":19},"01M7AQTD7D5MYET2YWG7HG9WM3","slack-gif-creator","Toolkit for creating animated GIFs optimized for Slack, with validators for size constraints and composable animation primitives. This skill applies when users request animated GIFs or emoji animations for Slack from descriptions like \"make me a GIF for Slack of X doing Y\".","https:\u002F\u002Fgithub.com\u002FCyrilthetecchieee\u002Fcyril-code-\u002Fblob\u002Fmain\u002Fsrc\u002Fcyril_code\u002Fassets\u002F.skills_repo\u002Fslack-gif-creator\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002FCyrilthetecchieee\u002Fcyril-code-\u002Fblob\u002Fmain\u002Fsrc\u002Fcyril_code\u002Fassets\u002F.skills_repo\u002Fslack-gif-creator\u002FSKILL.md",[],[]]