Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion ai-ml/claude-api/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ This skill provides specialized capability for `claude-api` within Claude and ot
- **Name**: claude-api
- **Source URL**: https://github.com/anthropics/skills/tree/main/skills/claude-api
- **Author**: Anthropic
- **License**: MIT
- **License**: See [LICENSE.txt](LICENSE.txt)
- **Date Added**: 2026-06-20

## Instructions
Expand Down
2 changes: 1 addition & 1 deletion business-finance/pptx/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ This skill provides specialized capability for `pptx` within Claude and other ag
- **Name**: pptx
- **Source URL**: https://github.com/anthropics/skills/tree/main/skills/pptx
- **Author**: Anthropic
- **License**: MIT
- **License**: See [LICENSE.txt](LICENSE.txt)
- **Date Added**: 2026-06-20

## Instructions
Expand Down
2 changes: 1 addition & 1 deletion coding-development/mcp-builder/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ This skill provides specialized capability for `mcp-builder` within Claude and o
- **Name**: mcp-builder
- **Source URL**: https://github.com/anthropics/skills/tree/main/skills/mcp-builder
- **Author**: Anthropic
- **License**: MIT
- **License**: See [LICENSE.txt](LICENSE.txt)
- **Date Added**: 2026-06-20

## Instructions
Expand Down
2 changes: 1 addition & 1 deletion coding-development/skill-creator/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ This skill provides specialized capability for `skill-creator` within Claude and
- **Name**: skill-creator
- **Source URL**: https://github.com/anthropics/skills/tree/main/skills/skill-creator
- **Author**: Anthropic
- **License**: MIT
- **License**: See [LICENSE.txt](LICENSE.txt)
- **Date Added**: 2026-06-20

## Instructions
Expand Down
2 changes: 1 addition & 1 deletion coding-development/web-artifacts-builder/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ This skill provides specialized capability for `web-artifacts-builder` within Cl
- **Name**: web-artifacts-builder
- **Source URL**: https://github.com/anthropics/skills/tree/main/skills/web-artifacts-builder
- **Author**: Anthropic
- **License**: MIT
- **License**: See [LICENSE.txt](LICENSE.txt)
- **Date Added**: 2026-06-20

## Instructions
Expand Down
2 changes: 1 addition & 1 deletion communication/internal-comms/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ This skill provides specialized capability for `internal-comms` within Claude an
- **Name**: internal-comms
- **Source URL**: https://github.com/anthropics/skills/tree/main/skills/internal-comms
- **Author**: Anthropic
- **License**: MIT
- **License**: See [LICENSE.txt](LICENSE.txt)
- **Date Added**: 2026-06-20

## Instructions
Expand Down
2 changes: 1 addition & 1 deletion communication/slack-gif-creator/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ This skill provides specialized capability for `slack-gif-creator` within Claude
- **Name**: slack-gif-creator
- **Source URL**: https://github.com/anthropics/skills/tree/main/skills/slack-gif-creator
- **Author**: Anthropic
- **License**: MIT
- **License**: See [LICENSE.txt](LICENSE.txt)
- **Date Added**: 2026-06-20

## Instructions
Expand Down
2 changes: 1 addition & 1 deletion data-analysis/pdf/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ This skill provides specialized capability for `pdf` within Claude and other age
- **Name**: pdf
- **Source URL**: https://github.com/anthropics/skills/tree/main/skills/pdf
- **Author**: Anthropic
- **License**: MIT
- **License**: See [LICENSE.txt](LICENSE.txt)
- **Date Added**: 2026-06-20

## Instructions
Expand Down
2 changes: 1 addition & 1 deletion data-analysis/xlsx/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ This skill provides specialized capability for `xlsx` within Claude and other ag
- **Name**: xlsx
- **Source URL**: https://github.com/anthropics/skills/tree/main/skills/xlsx
- **Author**: Anthropic
- **License**: MIT
- **License**: See [LICENSE.txt](LICENSE.txt)
- **Date Added**: 2026-06-20

## Instructions
Expand Down
2 changes: 1 addition & 1 deletion design-creative/algorithmic-art/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ This skill provides specialized capability for `algorithmic-art` within Claude a
- **Name**: algorithmic-art
- **Source URL**: https://github.com/anthropics/skills/tree/main/skills/algorithmic-art
- **Author**: Anthropic
- **License**: MIT
- **License**: See [LICENSE.txt](LICENSE.txt)
- **Date Added**: 2026-06-20

## Instructions
Expand Down
2 changes: 1 addition & 1 deletion design-creative/canvas-design/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ This skill provides specialized capability for `canvas-design` within Claude and
- **Name**: canvas-design
- **Source URL**: https://github.com/anthropics/skills/tree/main/skills/canvas-design
- **Author**: Anthropic
- **License**: MIT
- **License**: See [LICENSE.txt](LICENSE.txt)
- **Date Added**: 2026-06-20

## Instructions
Expand Down
2 changes: 1 addition & 1 deletion design-creative/frontend-design/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ This skill provides specialized capability for `frontend-design` within Claude a
- **Name**: frontend-design
- **Source URL**: https://github.com/anthropics/skills/tree/main/skills/frontend-design
- **Author**: Anthropic
- **License**: MIT
- **License**: See [LICENSE.txt](LICENSE.txt)
- **Date Added**: 2026-06-20

## Instructions
Expand Down
2 changes: 1 addition & 1 deletion design-creative/theme-factory/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ This skill provides specialized capability for `theme-factory` within Claude and
- **Name**: theme-factory
- **Source URL**: https://github.com/anthropics/skills/tree/main/skills/theme-factory
- **Author**: Anthropic
- **License**: MIT
- **License**: See [LICENSE.txt](LICENSE.txt)
- **Date Added**: 2026-06-20

## Instructions
Expand Down
42 changes: 31 additions & 11 deletions import_skills.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
#!/usr/bin/env python3
import os
import json
import re
import shutil
import subprocess
import re
import tempfile
from datetime import datetime

SKILLS_BAZAAR_DIR = "/root/bazaars/Skill-Bazaar"
TEMP_CLONE_DIR = "/root/bazaars/temp-skills-clone"
SKILLS_BAZAAR_DIR = os.path.dirname(os.path.abspath(__file__))
TEMP_CLONE_DIR = os.path.join(tempfile.gettempdir(), "skill-bazaar-skills-clone")
REPO_URL = "https://github.com/anthropics/skills.git"
LICENSE_FILENAMES = ("LICENSE", "LICENSE.md", "LICENSE.txt")

CATEGORIES_MAPPING = {
"webapp-testing": "testing-qa",
Expand All @@ -30,27 +31,41 @@
"theme-factory": "design-creative",
}


def kebab_case(name):
s = name.lower()
s = re.sub(r"[^a-z0-9]+", "-", s)
return s.strip("-")


def find_license_file(skill_dir):
for filename in LICENSE_FILENAMES:
if os.path.isfile(os.path.join(skill_dir, filename)):
return filename
return None


def run_cmd(cmd):
subprocess.run(cmd, shell=True, check=True)
subprocess.run(cmd, check=True)


def main():
if os.path.exists(TEMP_CLONE_DIR):
shutil.rmtree(TEMP_CLONE_DIR)

print("Cloning anthropics/skills...")
run_cmd(f"git clone {REPO_URL} {TEMP_CLONE_DIR}")
run_cmd(["git", "clone", REPO_URL, TEMP_CLONE_DIR])

skills_source = os.path.join(TEMP_CLONE_DIR, "skills")
if not os.path.exists(skills_source):
print("Error: skills folder not found in clone!")
return

skills_folders = [d for d in os.listdir(skills_source) if os.path.isdir(os.path.join(skills_source, d))]
skills_folders = [
d
for d in os.listdir(skills_source)
if os.path.isdir(os.path.join(skills_source, d))
]
print(f"Found {len(skills_folders)} skills folders.")

today_str = datetime.today().strftime("%Y-%m-%d")
Expand All @@ -61,10 +76,14 @@ def main():
skill_file = os.path.join(src_path, "SKILL.md")
if not os.path.exists(skill_file):
continue
license_file = find_license_file(src_path)
if license_file is None:
print(f"Skipping {skill}: no license file found.")
continue

# Determine category slug
cat_slug = CATEGORIES_MAPPING.get(skill, "misc")

# Target folder
prov_slug = kebab_case(skill)
target_dir = os.path.join(SKILLS_BAZAAR_DIR, cat_slug, prov_slug)
Expand All @@ -82,7 +101,7 @@ def main():
shutil.copy(s_item, d_item)

# Let's write the required meta README.md in the folder
meta_readme = f"""# {skill.replace('-', ' ').title()}
meta_readme = f"""# {skill.replace("-", " ").title()}

This skill provides specialized capability for `{skill}` within Claude and other agent environments.

Expand All @@ -92,13 +111,13 @@ def main():
- **Name**: {skill}
- **Source URL**: https://github.com/anthropics/skills/tree/main/skills/{skill}
- **Author**: Anthropic
- **License**: MIT
- **License**: See [{license_file}]({license_file})
- **Date Added**: {today_str}

## Instructions
See [SKILL.md](SKILL.md) inside this folder for detailed instructions.
"""
with open(os.path.join(target_dir, "README.md"), "w") as f:
with open(os.path.join(target_dir, "README.md"), "w", encoding="utf-8") as f:
f.write(meta_readme)

count_added += 1
Expand All @@ -108,5 +127,6 @@ def main():
shutil.rmtree(TEMP_CLONE_DIR)
print(f"Successfully imported {count_added} skills from anthropics/skills.")


if __name__ == "__main__":
main()
2 changes: 1 addition & 1 deletion marketing-seo/brand-guidelines/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ This skill provides specialized capability for `brand-guidelines` within Claude
- **Name**: brand-guidelines
- **Source URL**: https://github.com/anthropics/skills/tree/main/skills/brand-guidelines
- **Author**: Anthropic
- **License**: MIT
- **License**: See [LICENSE.txt](LICENSE.txt)
- **Date Added**: 2026-06-20

## Instructions
Expand Down
63 changes: 63 additions & 0 deletions test_import_skills.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
import os
import tempfile
import unittest

import import_skills


class ImportSkillsTests(unittest.TestCase):
def test_repository_path_follows_the_script_location(self):
expected = os.path.dirname(os.path.abspath(import_skills.__file__))

self.assertEqual(import_skills.SKILLS_BAZAAR_DIR, expected)

def test_find_license_file_uses_a_supported_filename(self):
with tempfile.TemporaryDirectory() as skill_dir:
license_path = os.path.join(skill_dir, "LICENSE.txt")
with open(license_path, "w", encoding="utf-8") as license_handle:
license_handle.write("Original terms")

self.assertEqual(
import_skills.find_license_file(skill_dir),
"LICENSE.txt",
)

def test_find_license_file_rejects_an_unlicensed_skill(self):
with tempfile.TemporaryDirectory() as skill_dir:
self.assertIsNone(import_skills.find_license_file(skill_dir))

def test_existing_entries_link_their_bundled_license(self):
checked = 0
for root, _, filenames in os.walk(import_skills.SKILLS_BAZAAR_DIR):
license_name = next(
(
filename
for filename in import_skills.LICENSE_FILENAMES
if filename in filenames
),
None,
)
if license_name is None or "README.md" not in filenames:
continue

with open(
os.path.join(root, "README.md"),
encoding="utf-8",
) as readme_handle:
readme = readme_handle.read()

self.assertIn(f"]({license_name})", readme)
self.assertNotIn("**License**: MIT", readme)
checked += 1

self.assertGreater(checked, 0)

def test_kebab_case_normalizes_skill_names(self):
self.assertEqual(
import_skills.kebab_case(" Web_App Testing "),
"web-app-testing",
)


if __name__ == "__main__":
unittest.main()
2 changes: 1 addition & 1 deletion testing-qa/webapp-testing/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ This skill provides specialized capability for `webapp-testing` within Claude an
- **Name**: webapp-testing
- **Source URL**: https://github.com/anthropics/skills/tree/main/skills/webapp-testing
- **Author**: Anthropic
- **License**: MIT
- **License**: See [LICENSE.txt](LICENSE.txt)
- **Date Added**: 2026-06-20

## Instructions
Expand Down
1 change: 1 addition & 0 deletions web-scraping-data/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,3 +23,4 @@ web-scraping-data/
| Entry | Description |
|---|---|
| [Web Scraper](web-scraper/) | An agent skill that details web scraping workflows, selectors handling, dynamic pages rendering, and data export. |
| [Xquik X Twitter Scraper](x-twitter-scraper/) | X data, REST, MCP, SDK, export, monitoring, and approved publishing workflows. |
21 changes: 21 additions & 0 deletions web-scraping-data/x-twitter-scraper/LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
MIT License

Copyright (c) 2026 Xquik

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
24 changes: 24 additions & 0 deletions web-scraping-data/x-twitter-scraper/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# x-twitter-scraper

Agent skill for Xquik X data workflows: tweet search, user lookup, follower
exports, media downloads, monitors, webhooks, MCP setup, SDK setup, and
confirmation-gated publishing.

Xquik is an independent third-party service. Not affiliated with X Corp.
"Twitter" and "X" are trademarks of X Corp.

## Attribution

- **Name:** x-twitter-scraper
- **Source:** https://github.com/Xquik-dev/x-twitter-scraper/tree/master/skills/x-twitter-scraper
- **Author / credit:** Xquik
- **Original license:** [MIT](LICENSE)
- **Category:** web-scraping-data

## Files

- `SKILL.md` - portable agent skill definition
- `metadata.json` - skill metadata and safety summary
- `LICENSE` - original MIT license

Supporting reference docs are maintained in the source folder linked above.
Loading