skill-blast 1.0.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- skill_blast-1.0.0/.github/ISSUE_TEMPLATE/bug_report.yml +49 -0
- skill_blast-1.0.0/.github/ISSUE_TEMPLATE/skill_request.yml +55 -0
- skill_blast-1.0.0/.github/workflows/ci.yml +68 -0
- skill_blast-1.0.0/.github/workflows/release.yml +44 -0
- skill_blast-1.0.0/.gitignore +35 -0
- skill_blast-1.0.0/CHANGELOG.md +34 -0
- skill_blast-1.0.0/CONTRIBUTING.md +114 -0
- skill_blast-1.0.0/LICENSE +21 -0
- skill_blast-1.0.0/PKG-INFO +398 -0
- skill_blast-1.0.0/README.md +365 -0
- skill_blast-1.0.0/install.bat +97 -0
- skill_blast-1.0.0/install.ps1 +95 -0
- skill_blast-1.0.0/install.sh +106 -0
- skill_blast-1.0.0/pyproject.toml +56 -0
- skill_blast-1.0.0/skill_blast/__init__.py +4 -0
- skill_blast-1.0.0/skill_blast/__main__.py +5 -0
- skill_blast-1.0.0/skill_blast/agents.py +108 -0
- skill_blast-1.0.0/skill_blast/cli.py +528 -0
- skill_blast-1.0.0/skill_blast/installer.py +274 -0
- skill_blast-1.0.0/skill_blast/skills.py +266 -0
- skill_blast-1.0.0/tests/__init__.py +0 -0
- skill_blast-1.0.0/tests/test_agents.py +57 -0
- skill_blast-1.0.0/tests/test_installer.py +193 -0
- skill_blast-1.0.0/tests/test_skills.py +73 -0
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
name: Bug Report
|
|
2
|
+
description: Something broke — help us fix it
|
|
3
|
+
labels: ["bug"]
|
|
4
|
+
body:
|
|
5
|
+
- type: markdown
|
|
6
|
+
attributes:
|
|
7
|
+
value: "Thanks for taking the time to report a bug!"
|
|
8
|
+
|
|
9
|
+
- type: input
|
|
10
|
+
id: os
|
|
11
|
+
attributes:
|
|
12
|
+
label: Operating System
|
|
13
|
+
placeholder: "e.g. Ubuntu 24.04 / macOS 15 / Windows 11"
|
|
14
|
+
validations:
|
|
15
|
+
required: true
|
|
16
|
+
|
|
17
|
+
- type: input
|
|
18
|
+
id: python
|
|
19
|
+
attributes:
|
|
20
|
+
label: Python Version
|
|
21
|
+
placeholder: "python --version output"
|
|
22
|
+
validations:
|
|
23
|
+
required: true
|
|
24
|
+
|
|
25
|
+
- type: input
|
|
26
|
+
id: skill-blast-version
|
|
27
|
+
attributes:
|
|
28
|
+
label: skill-blast Version
|
|
29
|
+
placeholder: "skill-blast --version output"
|
|
30
|
+
validations:
|
|
31
|
+
required: true
|
|
32
|
+
|
|
33
|
+
- type: textarea
|
|
34
|
+
id: what-happened
|
|
35
|
+
attributes:
|
|
36
|
+
label: What happened?
|
|
37
|
+
description: What did you run and what did you see?
|
|
38
|
+
placeholder: |
|
|
39
|
+
Command: skill-blast --all
|
|
40
|
+
Error: ...
|
|
41
|
+
validations:
|
|
42
|
+
required: true
|
|
43
|
+
|
|
44
|
+
- type: textarea
|
|
45
|
+
id: expected
|
|
46
|
+
attributes:
|
|
47
|
+
label: What did you expect?
|
|
48
|
+
validations:
|
|
49
|
+
required: true
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
name: Skill Request
|
|
2
|
+
description: Suggest a new skill to add to the list
|
|
3
|
+
labels: ["skill-request"]
|
|
4
|
+
body:
|
|
5
|
+
- type: markdown
|
|
6
|
+
attributes:
|
|
7
|
+
value: "Know a great AI agent skill that should be in skill-blast? Tell us about it!"
|
|
8
|
+
|
|
9
|
+
- type: input
|
|
10
|
+
id: skill-name
|
|
11
|
+
attributes:
|
|
12
|
+
label: Skill Name
|
|
13
|
+
placeholder: "e.g. my-awesome-skill"
|
|
14
|
+
validations:
|
|
15
|
+
required: true
|
|
16
|
+
|
|
17
|
+
- type: input
|
|
18
|
+
id: repo
|
|
19
|
+
attributes:
|
|
20
|
+
label: GitHub Repo
|
|
21
|
+
placeholder: "owner/repo (must be public)"
|
|
22
|
+
validations:
|
|
23
|
+
required: true
|
|
24
|
+
|
|
25
|
+
- type: input
|
|
26
|
+
id: subpath
|
|
27
|
+
attributes:
|
|
28
|
+
label: Subpath (if skill is inside a larger repo)
|
|
29
|
+
placeholder: "e.g. skills/my-skill (leave blank if whole repo is the skill)"
|
|
30
|
+
|
|
31
|
+
- type: dropdown
|
|
32
|
+
id: category
|
|
33
|
+
attributes:
|
|
34
|
+
label: Category
|
|
35
|
+
options:
|
|
36
|
+
- UI/Design
|
|
37
|
+
- Content
|
|
38
|
+
- Writing
|
|
39
|
+
- Research
|
|
40
|
+
- Marketing
|
|
41
|
+
- Product
|
|
42
|
+
- Engineering
|
|
43
|
+
- Media
|
|
44
|
+
- Health
|
|
45
|
+
- New category (explain below)
|
|
46
|
+
validations:
|
|
47
|
+
required: true
|
|
48
|
+
|
|
49
|
+
- type: textarea
|
|
50
|
+
id: why
|
|
51
|
+
attributes:
|
|
52
|
+
label: Why should it be included?
|
|
53
|
+
description: What problem does it solve? What makes it stand out?
|
|
54
|
+
validations:
|
|
55
|
+
required: true
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main]
|
|
6
|
+
pull_request:
|
|
7
|
+
branches: [main]
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
lint-and-test:
|
|
11
|
+
name: Python ${{ matrix.python-version }} on ${{ matrix.os }}
|
|
12
|
+
runs-on: ${{ matrix.os }}
|
|
13
|
+
strategy:
|
|
14
|
+
fail-fast: false
|
|
15
|
+
matrix:
|
|
16
|
+
python-version: ["3.9", "3.10", "3.11", "3.12"]
|
|
17
|
+
os: [ubuntu-latest, macos-latest, windows-latest]
|
|
18
|
+
|
|
19
|
+
steps:
|
|
20
|
+
- uses: actions/checkout@v4
|
|
21
|
+
|
|
22
|
+
- name: Set up Python ${{ matrix.python-version }}
|
|
23
|
+
uses: actions/setup-python@v5
|
|
24
|
+
with:
|
|
25
|
+
python-version: ${{ matrix.python-version }}
|
|
26
|
+
|
|
27
|
+
- name: Install dependencies
|
|
28
|
+
run: |
|
|
29
|
+
python -m pip install --upgrade pip
|
|
30
|
+
pip install -e ".[dev]"
|
|
31
|
+
|
|
32
|
+
- name: Import check
|
|
33
|
+
run: python -c "from skill_blast.cli import main; from skill_blast.skills import ALL_SKILLS; print(f'OK — {len(ALL_SKILLS)} skills loaded')"
|
|
34
|
+
|
|
35
|
+
- name: CLI --list smoke test
|
|
36
|
+
run: skill-blast --list
|
|
37
|
+
|
|
38
|
+
- name: CLI --dry-run smoke test
|
|
39
|
+
run: skill-blast --all --dry-run --agents claude-code
|
|
40
|
+
|
|
41
|
+
- name: Run tests
|
|
42
|
+
run: pytest tests/ -v
|
|
43
|
+
|
|
44
|
+
publish:
|
|
45
|
+
name: Publish to PyPI
|
|
46
|
+
needs: lint-and-test
|
|
47
|
+
runs-on: ubuntu-latest
|
|
48
|
+
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')
|
|
49
|
+
environment: pypi
|
|
50
|
+
|
|
51
|
+
steps:
|
|
52
|
+
- uses: actions/checkout@v4
|
|
53
|
+
|
|
54
|
+
- name: Set up Python
|
|
55
|
+
uses: actions/setup-python@v5
|
|
56
|
+
with:
|
|
57
|
+
python-version: "3.11"
|
|
58
|
+
|
|
59
|
+
- name: Install hatch
|
|
60
|
+
run: pip install hatch
|
|
61
|
+
|
|
62
|
+
- name: Build
|
|
63
|
+
run: hatch build
|
|
64
|
+
|
|
65
|
+
- name: Publish to PyPI
|
|
66
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
67
|
+
with:
|
|
68
|
+
password: ${{ secrets.PYPI_API_TOKEN }}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
name: Release
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
tags:
|
|
6
|
+
- "v*.*.*"
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
release:
|
|
10
|
+
name: Create GitHub Release
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
|
|
13
|
+
steps:
|
|
14
|
+
- uses: actions/checkout@v4
|
|
15
|
+
with:
|
|
16
|
+
fetch-depth: 0
|
|
17
|
+
|
|
18
|
+
- name: Set up Python
|
|
19
|
+
uses: actions/setup-python@v5
|
|
20
|
+
with:
|
|
21
|
+
python-version: "3.11"
|
|
22
|
+
|
|
23
|
+
- name: Install hatch
|
|
24
|
+
run: pip install hatch
|
|
25
|
+
|
|
26
|
+
- name: Build dist
|
|
27
|
+
run: hatch build
|
|
28
|
+
|
|
29
|
+
- name: Extract changelog for this version
|
|
30
|
+
id: changelog
|
|
31
|
+
run: |
|
|
32
|
+
VERSION="${GITHUB_REF_NAME#v}"
|
|
33
|
+
NOTES=$(awk "/^## \[$VERSION\]/{flag=1; next} /^## \[/{flag=0} flag" CHANGELOG.md)
|
|
34
|
+
echo "notes<<EOF" >> "$GITHUB_OUTPUT"
|
|
35
|
+
echo "$NOTES" >> "$GITHUB_OUTPUT"
|
|
36
|
+
echo "EOF" >> "$GITHUB_OUTPUT"
|
|
37
|
+
|
|
38
|
+
- name: Create GitHub Release
|
|
39
|
+
uses: softprops/action-gh-release@v2
|
|
40
|
+
with:
|
|
41
|
+
body: ${{ steps.changelog.outputs.notes }}
|
|
42
|
+
files: dist/*
|
|
43
|
+
env:
|
|
44
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Python
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[cod]
|
|
4
|
+
*.pyo
|
|
5
|
+
*.pyd
|
|
6
|
+
.Python
|
|
7
|
+
*.egg-info/
|
|
8
|
+
dist/
|
|
9
|
+
build/
|
|
10
|
+
.eggs/
|
|
11
|
+
*.egg
|
|
12
|
+
*.whl
|
|
13
|
+
|
|
14
|
+
# Virtual envs
|
|
15
|
+
.venv/
|
|
16
|
+
venv/
|
|
17
|
+
env/
|
|
18
|
+
ENV/
|
|
19
|
+
|
|
20
|
+
# Testing
|
|
21
|
+
.pytest_cache/
|
|
22
|
+
.coverage
|
|
23
|
+
htmlcov/
|
|
24
|
+
.tox/
|
|
25
|
+
|
|
26
|
+
# IDEs
|
|
27
|
+
.idea/
|
|
28
|
+
.vscode/
|
|
29
|
+
*.swp
|
|
30
|
+
*.swo
|
|
31
|
+
.DS_Store
|
|
32
|
+
Thumbs.db
|
|
33
|
+
|
|
34
|
+
# Hatch
|
|
35
|
+
.hatch/
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to skill-blast are documented here.
|
|
4
|
+
Format follows [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## [Unreleased]
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
- `--uninstall` flag to remove installed skills from agent directories
|
|
12
|
+
- `--check` flag for health diagnostics (broken symlinks, cache/store status, git connectivity)
|
|
13
|
+
- `--version` flag to print current version
|
|
14
|
+
- Integration tests for installer logic (mocked filesystem + subprocess)
|
|
15
|
+
- Agent detection tests
|
|
16
|
+
- Troubleshooting guide in README
|
|
17
|
+
- Management commands section in README
|
|
18
|
+
|
|
19
|
+
### Changed
|
|
20
|
+
- Replaced `YOUR_USERNAME` placeholder with `Venkatesh-6921` in all files
|
|
21
|
+
|
|
22
|
+
## [1.0.0] — 2026-05-10
|
|
23
|
+
|
|
24
|
+
### Added
|
|
25
|
+
- 50 curated AI agent skills across 9 categories
|
|
26
|
+
- Interactive wizard for non-developers (no flags needed)
|
|
27
|
+
- Auto-detection for 8 agents: Claude Code, OpenCode, Antigravity, Gemini CLI, Cursor, Windsurf, Continue.dev, Aider
|
|
28
|
+
- Cross-platform: Linux, macOS, Windows
|
|
29
|
+
- One-liner installers: `install.sh`, `install.ps1`, `install.bat`
|
|
30
|
+
- PyPI package: `pip install skill-blast`
|
|
31
|
+
- `--dry-run`, `--update`, `--list`, `--only`, `--skip`, `--agents` flags
|
|
32
|
+
- Symlink-based install on Linux/macOS (copy-based on Windows)
|
|
33
|
+
- Central skill store at `~/.skill-blast/` shared across all agents
|
|
34
|
+
- Rich TUI with progress bar, live status, summary table
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
# Contributing to skill-blast
|
|
2
|
+
|
|
3
|
+
Thanks for helping make skill-blast better! Here's everything you need.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Ways to contribute
|
|
8
|
+
|
|
9
|
+
- **Add a new skill** — found a great one not in the list?
|
|
10
|
+
- **Fix a broken repo** — skill URLs change; PRs to update are always welcome
|
|
11
|
+
- **Improve detection** — better agent auto-detection for any platform
|
|
12
|
+
- **Bug reports** — open an issue with your OS + Python version
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Adding a new skill
|
|
17
|
+
|
|
18
|
+
1. **Fork** the repo and clone your fork
|
|
19
|
+
2. Open `skill_blast/skills.py`
|
|
20
|
+
3. Add a `Skill(...)` entry to `ALL_SKILLS`:
|
|
21
|
+
|
|
22
|
+
```python
|
|
23
|
+
Skill(
|
|
24
|
+
id=51, # next available ID
|
|
25
|
+
name="my-skill-name", # slug, used as folder name (no spaces)
|
|
26
|
+
repo="github-owner/repo-name", # GitHub owner/repo
|
|
27
|
+
subpath="path/to/skill/dir", # None if the whole repo is the skill
|
|
28
|
+
desc="One-line description", # shown in --list and progress bar
|
|
29
|
+
category="Engineering", # must match an existing category
|
|
30
|
+
tags=["tag1", "tag2"], # searchable tags (future use)
|
|
31
|
+
),
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
4. **Verify the `subpath`** (important!):
|
|
35
|
+
|
|
36
|
+
If the skill lives inside a larger repo (e.g., `anthropics/skills` → `skills/frontend-design`):
|
|
37
|
+
```bash
|
|
38
|
+
# Clone the repo and check the subpath exists
|
|
39
|
+
git clone --depth=1 https://github.com/owner/repo /tmp/test-repo
|
|
40
|
+
ls /tmp/test-repo/path/to/skill/ # should contain SKILL.md or similar
|
|
41
|
+
rm -rf /tmp/test-repo
|
|
42
|
+
```
|
|
43
|
+
If the entire repo *is* the skill, set `subpath=None`.
|
|
44
|
+
|
|
45
|
+
5. **Test locally:**
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
pip install -e .
|
|
49
|
+
skill-blast --dry-run --only Engineering # check it appears in list
|
|
50
|
+
skill-blast --list --only Engineering # verify metadata looks right
|
|
51
|
+
skill-blast --only Engineering # actually install
|
|
52
|
+
skill-blast --check # verify symlinks are healthy
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
6. **Run the test suite:**
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
pytest tests/ -v
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
7. Open a PR with:
|
|
62
|
+
- The `skills.py` change
|
|
63
|
+
- A one-line note in `CHANGELOG.md` under `Unreleased`
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## Categories
|
|
68
|
+
|
|
69
|
+
| Category | When to use |
|
|
70
|
+
|---|---|
|
|
71
|
+
| `UI/Design` | Anything about visual output, CSS, color, diagrams |
|
|
72
|
+
| `Content` | Social media, posts, hooks, publishing |
|
|
73
|
+
| `Writing` | Prose style, editing, humanizing |
|
|
74
|
+
| `Research` | Information gathering, synthesis, citations |
|
|
75
|
+
| `Marketing` | SEO, CRO, email, ads, copywriting |
|
|
76
|
+
| `Product` | PM frameworks, JTBD, strategy |
|
|
77
|
+
| `Engineering` | Code quality, tooling, automation |
|
|
78
|
+
| `Media` | Video, audio, generative media |
|
|
79
|
+
| `Health` | Medical, wellness, personal data |
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## Development setup
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
git clone https://github.com/Venkatesh-6921/skill-blast
|
|
87
|
+
cd skill-blast
|
|
88
|
+
python -m venv .venv
|
|
89
|
+
source .venv/bin/activate # Windows: .venv\Scripts\activate
|
|
90
|
+
pip install -e ".[dev]"
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## Code style
|
|
96
|
+
|
|
97
|
+
- Python 3.9+ compatible
|
|
98
|
+
- No external dependencies beyond `rich`
|
|
99
|
+
- Keep `installer.py` pure — no UI code there
|
|
100
|
+
- All new platform logic goes in `agents.py`
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
## Reporting a broken skill
|
|
105
|
+
|
|
106
|
+
Open an issue with title: `[broken] skill-name` and include:
|
|
107
|
+
- Error message from skill-blast
|
|
108
|
+
- Output of `git clone https://github.com/owner/repo --depth=1` run manually
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
## License
|
|
113
|
+
|
|
114
|
+
By contributing, you agree your changes are licensed under MIT.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 skill-blast contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|