polyskills 0.0.1.dev0__tar.gz → 2.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.
Files changed (32) hide show
  1. {polyskills-0.0.1.dev0 → polyskills-2.0.0}/LICENSE +1 -1
  2. polyskills-2.0.0/PKG-INFO +259 -0
  3. polyskills-2.0.0/README.md +211 -0
  4. polyskills-2.0.0/polyskills/__init__.py +19 -0
  5. polyskills-2.0.0/polyskills/apps/__init__.py +0 -0
  6. polyskills-2.0.0/polyskills/apps/tools.py +16 -0
  7. polyskills-2.0.0/polyskills/cli.py +469 -0
  8. polyskills-2.0.0/polyskills/error/__init__.py +14 -0
  9. polyskills-2.0.0/polyskills/error/exceptions.py +0 -0
  10. polyskills-2.0.0/polyskills/error/warnings.py +0 -0
  11. polyskills-2.0.0/polyskills/extensions/__init__.py +109 -0
  12. polyskills-2.0.0/polyskills/remote/__init__.py +11 -0
  13. polyskills-2.0.0/polyskills/remote/sources.py +603 -0
  14. polyskills-2.0.0/polyskills/tests/__init__.py +28 -0
  15. polyskills-2.0.0/polyskills/tests/__main__.py +41 -0
  16. polyskills-2.0.0/polyskills/tests/base.py +120 -0
  17. polyskills-2.0.0/polyskills/tests/test_cli.py +770 -0
  18. polyskills-2.0.0/polyskills/tests/test_remote_sources.py +137 -0
  19. polyskills-2.0.0/polyskills/tests/test_skill_install.py +281 -0
  20. polyskills-2.0.0/polyskills.egg-info/PKG-INFO +259 -0
  21. polyskills-2.0.0/polyskills.egg-info/SOURCES.txt +25 -0
  22. polyskills-2.0.0/polyskills.egg-info/entry_points.txt +2 -0
  23. polyskills-2.0.0/polyskills.egg-info/requires.txt +2 -0
  24. {polyskills-0.0.1.dev0 → polyskills-2.0.0}/polyskills.egg-info/top_level.txt +1 -0
  25. {polyskills-0.0.1.dev0 → polyskills-2.0.0}/pyproject.toml +8 -2
  26. polyskills-0.0.1.dev0/PKG-INFO +0 -57
  27. polyskills-0.0.1.dev0/README.md +0 -11
  28. polyskills-0.0.1.dev0/polyskills/__init__.py +0 -10
  29. polyskills-0.0.1.dev0/polyskills.egg-info/PKG-INFO +0 -57
  30. polyskills-0.0.1.dev0/polyskills.egg-info/SOURCES.txt +0 -8
  31. {polyskills-0.0.1.dev0 → polyskills-2.0.0}/polyskills.egg-info/dependency_links.txt +0 -0
  32. {polyskills-0.0.1.dev0 → polyskills-2.0.0}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2026 Debmalya Pramanik
3
+ Copyright (c) 2025 Debmalya Pramanik
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
@@ -0,0 +1,259 @@
1
+ Metadata-Version: 2.4
2
+ Name: polyskills
3
+ Version: 2.0.0
4
+ Summary: A Python CLI Tool for Skills Management
5
+ Author-email: ZenithClown <dpramanik.official@gmail.com>
6
+ License: MIT License
7
+
8
+ Copyright (c) 2025 Debmalya Pramanik
9
+
10
+ Permission is hereby granted, free of charge, to any person obtaining a copy
11
+ of this software and associated documentation files (the "Software"), to deal
12
+ in the Software without restriction, including without limitation the rights
13
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
14
+ copies of the Software, and to permit persons to whom the Software is
15
+ furnished to do so, subject to the following conditions:
16
+
17
+ The above copyright notice and this permission notice shall be included in all
18
+ copies or substantial portions of the Software.
19
+
20
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
21
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
23
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
24
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
25
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
26
+ SOFTWARE.
27
+
28
+ Project-URL: Homepage, https://github.com/PyUtility/polyskills
29
+ Project-URL: Repository, https://github.com/PyUtility/polyskills
30
+ Project-URL: Issues, https://github.com/PyUtility/polyskills/issues
31
+ Keywords: skills,anthropic,claude,codex,antigravity
32
+ Classifier: Development Status :: 2 - Pre-Alpha
33
+ Classifier: Intended Audience :: Developers
34
+ Classifier: Programming Language :: Python
35
+ Classifier: Programming Language :: Python :: 3
36
+ Classifier: Programming Language :: Python :: 3 :: Only
37
+ Classifier: Programming Language :: Python :: 3.12
38
+ Classifier: Programming Language :: Python :: 3.13
39
+ Classifier: Programming Language :: Python :: 3.14
40
+ Classifier: License :: OSI Approved :: MIT License
41
+ Classifier: Operating System :: OS Independent
42
+ Requires-Python: >=3.12
43
+ Description-Content-Type: text/markdown
44
+ License-File: LICENSE
45
+ Requires-Dist: requests>=2.31
46
+ Requires-Dist: packaging>=23.0
47
+ Dynamic: license-file
48
+
49
+ <div align = "center">
50
+
51
+ # LLM Essentials - Library of Skills, Agents, Workflows
52
+
53
+ ![Contributor Covenant](https://img.shields.io/badge/👩‍💻_Contributor%20Covenant-2.1-4baaaa.svg?style=plastic)
54
+ ![Contributing Guidelines](https://img.shields.io/badge/🤝-Contributing_Guidelines-blue?style=plastic)
55
+
56
+ </div>
57
+
58
+ <div align = "justify">
59
+
60
+ A curated collection of AI agents, skills, workflows, etc., that can work across industries - providing Python-based utility
61
+ functions to synchronize the library across multiple systems using a version-controlled system. The project also provides
62
+ connectors for universal loading across different LLM tools (Anthropic's Claude Code, CodeX, Cursor AI, etc.) that can read skills
63
+ either directly (Claude Code) or follow prompts based control. 🤖✨
64
+
65
+ ## 🧠 Introduction to LLM Library
66
+
67
+ Artificial Intelligence (AI) systems are revolutionizing the way industries operate. From everyday tasks to specialized,
68
+ automated tasks - AI brings efficiency, innovation, and scalability. With the release of [Claude Skills](https://claude.com/skills),
69
+ [AI Agent Skills](https://agentskills.io/home) and other niche, fast-paced developments in this space - it is now a fundamental
70
+ requirement to maintain a unified, standardized repository of these capabilities.
71
+
72
+ ### 🤖 Project Capabilities
73
+
74
+ The project provides a curated list of AI [agents](./library/agents/), [skills](./library//skills/), and other essential tools
75
+ that enhances the way AI agents works and performs. In addition, the skills also provides different customization rules (e.g.,
76
+ generate an code output the way you write code, or generate email content based on your own writing styles).
77
+
78
+ * A categorized list of [AI Skills](./library//skills/) in a standard [Agent Skills](https://agentskills.io/home) format to
79
+ give new capabilities and expertise.
80
+ * A list of [AI Agents](./library/agents/) to break tasks into seperate functional groups that can work concurrently or in a
81
+ sequential manner as per the design pattern.
82
+ * A dedicated *open-source* Python framework to manage all above skills, agents, etc. from any version controlled remote
83
+ repositories across different systems and projects using single source of truth.
84
+ * A set of adapters to convert standard Agent Skills to other AI coding agents (which does not support native `SKILLS.md`,
85
+ or `AGENTS.md` file) by converting files to prompts.
86
+
87
+ ## 🚀 Getting Started
88
+
89
+ LLM Tools like Anthropic's Claude Code can directly work with the Agent Skills format that invokes `SKILLS.md` (or `AGENTS.md`)
90
+ file natively based on skill description or keywords defined in a settings file. However, some other tools may require an
91
+ adapter to safely convert to system prompts. The Python [`framework`](./polyskills/) is designed to address the issue by importing
92
+ the required skills from any version controlled systems such that one single source of truth can be maintained across different
93
+ production environment or projects having the same functionalities - thus providing consistent output.
94
+
95
+ ### 📦 Installation
96
+
97
+ The package is hosted at [PyPI](http://pypi.org/project/polyskills/) and can be installed using the `pip` package manager as:
98
+
99
+ ```shell
100
+ $ pip install polyskills
101
+ ```
102
+
103
+ To install the package from source, you need to have `git` client available on your system and install the binaries using the
104
+ below command:
105
+
106
+ ```shell
107
+ $ git clone https://github.com/PyUtility/polyskills
108
+ $ pip install . # cd into polyskills; editable install using -e
109
+ ```
110
+
111
+ The `**library**` requires **Python 3.12+** and is designed to have minimal overheads, thus providing *long-term compatibility*
112
+ with the upcoming releases (requires [standard libraries](https://docs.python.org/3/library/index.html) which is shipped by
113
+ default) of Python language and AI tools.
114
+
115
+ ### 🧰 CLI Overview
116
+
117
+ Once installed, the `polyskills` command is exposed on the system `PATH`. Use the `--help` flag at any level to discover
118
+ documentation for all sub-commands and flags. The CLI is organized around four sub-commands:
119
+
120
+ | 🔖 Command | 🎯 Purpose |
121
+ | :--- | :--- |
122
+ | `tools` | List the supported LLM tools (e.g., Claude Code, GitHub Copilot) and exit. |
123
+ | `sources` | List the supported remote source providers (e.g., GitHub) and exit. |
124
+ | `list` | Enumerate available extensions under a remote `<source>` directory, no download. |
125
+ | `manager` | Fetch a single extension (`skills` / `agents`) from the remote into a local directory. |
126
+
127
+ ```shell
128
+ $ polyskills --help # top level documentation and sub-commands
129
+ $ polyskills manager --help # documentation for the 'manager' sub-command
130
+ ```
131
+
132
+ ### 🔍 Discover Supported Tools and Sources
133
+
134
+ The `tools` and `sources` sub-commands are *terminal*, i.e., they print and exit. Use them to validate that a target LLM
135
+ tool or remote provider is supported before running a fetch.
136
+
137
+ ```shell
138
+ $ polyskills tools
139
+ >> Available LLM Tools:
140
+ >> 01. CLAUDE_CODE - https://claude.com/product/claude-code
141
+ >> 02. GITHUB_COPILOT - https://github.com/features/copilot
142
+
143
+ $ polyskills sources
144
+ >> Available Sources:
145
+ >> 01. GITHUB - https://www.github.com/
146
+ ```
147
+
148
+ ### 📜 List Extensions on a Remote
149
+
150
+ Use the `list` sub-command to enumerate the immediate child directories under a remote `--source` path without downloading
151
+ any content. The required positional `LIBRARY` argument selects the extension family (`skills`, `agents`, `commands`,
152
+ `hooks`) and also supplies the default `--source` directory (`./<library>`) when `--source` is omitted.
153
+
154
+ ```shell
155
+ $ polyskills list https://github.com/PyUtility/polyskills skills \
156
+ --source ./extensions/skills
157
+ >> Available skills at `extensions/skills` (version = master):
158
+ >> >> 01. git-commiter
159
+ >> >> 02. markdown-format
160
+ >> >> 03. python-code-format
161
+ >> >> 04. sql-code-format
162
+
163
+ $ polyskills list https://github.com/PyUtility/polyskills agents \
164
+ --source ./extensions/agents --version master
165
+ ```
166
+
167
+ ### 📥 Fetch an Extension with `manager`
168
+
169
+ The `manager` sub-command downloads a single extension (`skills` or `agents`) into a destination directory. The library
170
+ type is selected via a sub-sub-parser (`skills` / `agents`) and the extension name comes from `-n / --name`. When
171
+ `--destination` is not provided, the CLI defaults to `./<library>/<name>`.
172
+
173
+ ```shell
174
+ $ polyskills manager https://github.com/PyUtility/polyskills \
175
+ --source ./extensions/skills \
176
+ --name python-code-format \
177
+ --destination ./.claude/skills/python-code-format \
178
+ skills
179
+
180
+ $ polyskills manager https://github.com/PyUtility/polyskills \
181
+ --source ./extensions/agents \
182
+ -n python-code-reviewer \
183
+ -d ./.claude/agents/python-code-reviewer \
184
+ agents
185
+ ```
186
+
187
+ The `--exists` flag controls behavior when the destination directory already exists and is non-empty:
188
+
189
+ * 🛑 `fail` (default) - raise `FileExistsError`, leave the destination untouched.
190
+ * 🧹 `overwrite` - remove the destination tree and re-extract from scratch.
191
+ * 🛠 `merge` - extract on top of the existing tree, overwriting on conflict.
192
+
193
+ ### 🔐 Authentication and Pagination
194
+
195
+ For private or self-hosted repositories, an authentication token is required. The token is resolved with the following
196
+ precedence (highest first):
197
+
198
+ 1. Environment variable `POLYSKILLS_REMOTE_TOKEN` (recommended for CI / production).
199
+ 2. The `--token` CLI flag (discouraged outside local testing - the value may leak into shell history).
200
+
201
+ ```shell
202
+ $ $env:POLYSKILLS_REMOTE_TOKEN = "ghp_xxx" # PowerShell
203
+ $ export POLYSKILLS_REMOTE_TOKEN="ghp_xxx" # bash / zsh
204
+
205
+ $ polyskills list https://github.com/<org>/<private-repo> skills \
206
+ --source ./extensions/skills --pagination 100
207
+ ```
208
+
209
+ The `--pagination` flag (defaults to `100`, the GitHub maximum) tunes how many entries are returned per REST API page
210
+ during enumeration. The `--version` flag (defaults to `master`) pins the fetch to an exact tag or commit SHA so the
211
+ extension content is reproducible across systems.
212
+
213
+ ### 🐍 Programmatic Usage
214
+
215
+ In addition to the CLI, every primitive is exposed as a Python API so the same workflow can be embedded inside automation
216
+ scripts, CI pipelines, or notebooks.
217
+
218
+ ```python
219
+ from pathlib import Path
220
+
221
+ from polyskills.cli import get, listExtensions
222
+ from polyskills.remote.sources import SourceControl
223
+
224
+ control = SourceControl(pagination = 100, token = None)
225
+
226
+ names = listExtensions(
227
+ remote = "https://github.com/PyUtility/polyskills",
228
+ library = "skills",
229
+ source = Path("./extensions/skills"),
230
+ version = "master",
231
+ control = control,
232
+ )
233
+
234
+ get(
235
+ remote = "https://github.com/PyUtility/polyskills",
236
+ name = "python-code-format",
237
+ source = Path("./extensions/skills"),
238
+ destination = Path("./.claude/skills/python-code-format"),
239
+ version = "master",
240
+ exists = "overwrite",
241
+ control = control,
242
+ )
243
+ ```
244
+
245
+ ## ⚖️ Project License
246
+
247
+ This project is licensed under the [MIT License](...). Permission is granted to use, copy, modify, merge, publish,
248
+ distribute, sublicense, and/or sell copies of the software. The software is provided “as is”, without warranty of any kind,
249
+ express or implied. See the LICENSE file for full details.
250
+
251
+ ## ⚠️ Project Disclaimer
252
+
253
+ The project provides a curated lists of skills, agents, etc. which can alter the performance of AI tools significantly. AI makes
254
+ mistakes and the tools listed here can worsen the performance. Please read, verify and research before using any content.
255
+
256
+ AI tools often charges based on token consumptions (approx. number of input + output words) and using contents from this library
257
+ may significantly increase the consumption cost. Always check and track usage of the model with/without using the skills.
258
+
259
+ </div>
@@ -0,0 +1,211 @@
1
+ <div align = "center">
2
+
3
+ # LLM Essentials - Library of Skills, Agents, Workflows
4
+
5
+ ![Contributor Covenant](https://img.shields.io/badge/👩‍💻_Contributor%20Covenant-2.1-4baaaa.svg?style=plastic)
6
+ ![Contributing Guidelines](https://img.shields.io/badge/🤝-Contributing_Guidelines-blue?style=plastic)
7
+
8
+ </div>
9
+
10
+ <div align = "justify">
11
+
12
+ A curated collection of AI agents, skills, workflows, etc., that can work across industries - providing Python-based utility
13
+ functions to synchronize the library across multiple systems using a version-controlled system. The project also provides
14
+ connectors for universal loading across different LLM tools (Anthropic's Claude Code, CodeX, Cursor AI, etc.) that can read skills
15
+ either directly (Claude Code) or follow prompts based control. 🤖✨
16
+
17
+ ## 🧠 Introduction to LLM Library
18
+
19
+ Artificial Intelligence (AI) systems are revolutionizing the way industries operate. From everyday tasks to specialized,
20
+ automated tasks - AI brings efficiency, innovation, and scalability. With the release of [Claude Skills](https://claude.com/skills),
21
+ [AI Agent Skills](https://agentskills.io/home) and other niche, fast-paced developments in this space - it is now a fundamental
22
+ requirement to maintain a unified, standardized repository of these capabilities.
23
+
24
+ ### 🤖 Project Capabilities
25
+
26
+ The project provides a curated list of AI [agents](./library/agents/), [skills](./library//skills/), and other essential tools
27
+ that enhances the way AI agents works and performs. In addition, the skills also provides different customization rules (e.g.,
28
+ generate an code output the way you write code, or generate email content based on your own writing styles).
29
+
30
+ * A categorized list of [AI Skills](./library//skills/) in a standard [Agent Skills](https://agentskills.io/home) format to
31
+ give new capabilities and expertise.
32
+ * A list of [AI Agents](./library/agents/) to break tasks into seperate functional groups that can work concurrently or in a
33
+ sequential manner as per the design pattern.
34
+ * A dedicated *open-source* Python framework to manage all above skills, agents, etc. from any version controlled remote
35
+ repositories across different systems and projects using single source of truth.
36
+ * A set of adapters to convert standard Agent Skills to other AI coding agents (which does not support native `SKILLS.md`,
37
+ or `AGENTS.md` file) by converting files to prompts.
38
+
39
+ ## 🚀 Getting Started
40
+
41
+ LLM Tools like Anthropic's Claude Code can directly work with the Agent Skills format that invokes `SKILLS.md` (or `AGENTS.md`)
42
+ file natively based on skill description or keywords defined in a settings file. However, some other tools may require an
43
+ adapter to safely convert to system prompts. The Python [`framework`](./polyskills/) is designed to address the issue by importing
44
+ the required skills from any version controlled systems such that one single source of truth can be maintained across different
45
+ production environment or projects having the same functionalities - thus providing consistent output.
46
+
47
+ ### 📦 Installation
48
+
49
+ The package is hosted at [PyPI](http://pypi.org/project/polyskills/) and can be installed using the `pip` package manager as:
50
+
51
+ ```shell
52
+ $ pip install polyskills
53
+ ```
54
+
55
+ To install the package from source, you need to have `git` client available on your system and install the binaries using the
56
+ below command:
57
+
58
+ ```shell
59
+ $ git clone https://github.com/PyUtility/polyskills
60
+ $ pip install . # cd into polyskills; editable install using -e
61
+ ```
62
+
63
+ The `**library**` requires **Python 3.12+** and is designed to have minimal overheads, thus providing *long-term compatibility*
64
+ with the upcoming releases (requires [standard libraries](https://docs.python.org/3/library/index.html) which is shipped by
65
+ default) of Python language and AI tools.
66
+
67
+ ### 🧰 CLI Overview
68
+
69
+ Once installed, the `polyskills` command is exposed on the system `PATH`. Use the `--help` flag at any level to discover
70
+ documentation for all sub-commands and flags. The CLI is organized around four sub-commands:
71
+
72
+ | 🔖 Command | 🎯 Purpose |
73
+ | :--- | :--- |
74
+ | `tools` | List the supported LLM tools (e.g., Claude Code, GitHub Copilot) and exit. |
75
+ | `sources` | List the supported remote source providers (e.g., GitHub) and exit. |
76
+ | `list` | Enumerate available extensions under a remote `<source>` directory, no download. |
77
+ | `manager` | Fetch a single extension (`skills` / `agents`) from the remote into a local directory. |
78
+
79
+ ```shell
80
+ $ polyskills --help # top level documentation and sub-commands
81
+ $ polyskills manager --help # documentation for the 'manager' sub-command
82
+ ```
83
+
84
+ ### 🔍 Discover Supported Tools and Sources
85
+
86
+ The `tools` and `sources` sub-commands are *terminal*, i.e., they print and exit. Use them to validate that a target LLM
87
+ tool or remote provider is supported before running a fetch.
88
+
89
+ ```shell
90
+ $ polyskills tools
91
+ >> Available LLM Tools:
92
+ >> 01. CLAUDE_CODE - https://claude.com/product/claude-code
93
+ >> 02. GITHUB_COPILOT - https://github.com/features/copilot
94
+
95
+ $ polyskills sources
96
+ >> Available Sources:
97
+ >> 01. GITHUB - https://www.github.com/
98
+ ```
99
+
100
+ ### 📜 List Extensions on a Remote
101
+
102
+ Use the `list` sub-command to enumerate the immediate child directories under a remote `--source` path without downloading
103
+ any content. The required positional `LIBRARY` argument selects the extension family (`skills`, `agents`, `commands`,
104
+ `hooks`) and also supplies the default `--source` directory (`./<library>`) when `--source` is omitted.
105
+
106
+ ```shell
107
+ $ polyskills list https://github.com/PyUtility/polyskills skills \
108
+ --source ./extensions/skills
109
+ >> Available skills at `extensions/skills` (version = master):
110
+ >> >> 01. git-commiter
111
+ >> >> 02. markdown-format
112
+ >> >> 03. python-code-format
113
+ >> >> 04. sql-code-format
114
+
115
+ $ polyskills list https://github.com/PyUtility/polyskills agents \
116
+ --source ./extensions/agents --version master
117
+ ```
118
+
119
+ ### 📥 Fetch an Extension with `manager`
120
+
121
+ The `manager` sub-command downloads a single extension (`skills` or `agents`) into a destination directory. The library
122
+ type is selected via a sub-sub-parser (`skills` / `agents`) and the extension name comes from `-n / --name`. When
123
+ `--destination` is not provided, the CLI defaults to `./<library>/<name>`.
124
+
125
+ ```shell
126
+ $ polyskills manager https://github.com/PyUtility/polyskills \
127
+ --source ./extensions/skills \
128
+ --name python-code-format \
129
+ --destination ./.claude/skills/python-code-format \
130
+ skills
131
+
132
+ $ polyskills manager https://github.com/PyUtility/polyskills \
133
+ --source ./extensions/agents \
134
+ -n python-code-reviewer \
135
+ -d ./.claude/agents/python-code-reviewer \
136
+ agents
137
+ ```
138
+
139
+ The `--exists` flag controls behavior when the destination directory already exists and is non-empty:
140
+
141
+ * 🛑 `fail` (default) - raise `FileExistsError`, leave the destination untouched.
142
+ * 🧹 `overwrite` - remove the destination tree and re-extract from scratch.
143
+ * 🛠 `merge` - extract on top of the existing tree, overwriting on conflict.
144
+
145
+ ### 🔐 Authentication and Pagination
146
+
147
+ For private or self-hosted repositories, an authentication token is required. The token is resolved with the following
148
+ precedence (highest first):
149
+
150
+ 1. Environment variable `POLYSKILLS_REMOTE_TOKEN` (recommended for CI / production).
151
+ 2. The `--token` CLI flag (discouraged outside local testing - the value may leak into shell history).
152
+
153
+ ```shell
154
+ $ $env:POLYSKILLS_REMOTE_TOKEN = "ghp_xxx" # PowerShell
155
+ $ export POLYSKILLS_REMOTE_TOKEN="ghp_xxx" # bash / zsh
156
+
157
+ $ polyskills list https://github.com/<org>/<private-repo> skills \
158
+ --source ./extensions/skills --pagination 100
159
+ ```
160
+
161
+ The `--pagination` flag (defaults to `100`, the GitHub maximum) tunes how many entries are returned per REST API page
162
+ during enumeration. The `--version` flag (defaults to `master`) pins the fetch to an exact tag or commit SHA so the
163
+ extension content is reproducible across systems.
164
+
165
+ ### 🐍 Programmatic Usage
166
+
167
+ In addition to the CLI, every primitive is exposed as a Python API so the same workflow can be embedded inside automation
168
+ scripts, CI pipelines, or notebooks.
169
+
170
+ ```python
171
+ from pathlib import Path
172
+
173
+ from polyskills.cli import get, listExtensions
174
+ from polyskills.remote.sources import SourceControl
175
+
176
+ control = SourceControl(pagination = 100, token = None)
177
+
178
+ names = listExtensions(
179
+ remote = "https://github.com/PyUtility/polyskills",
180
+ library = "skills",
181
+ source = Path("./extensions/skills"),
182
+ version = "master",
183
+ control = control,
184
+ )
185
+
186
+ get(
187
+ remote = "https://github.com/PyUtility/polyskills",
188
+ name = "python-code-format",
189
+ source = Path("./extensions/skills"),
190
+ destination = Path("./.claude/skills/python-code-format"),
191
+ version = "master",
192
+ exists = "overwrite",
193
+ control = control,
194
+ )
195
+ ```
196
+
197
+ ## ⚖️ Project License
198
+
199
+ This project is licensed under the [MIT License](...). Permission is granted to use, copy, modify, merge, publish,
200
+ distribute, sublicense, and/or sell copies of the software. The software is provided “as is”, without warranty of any kind,
201
+ express or implied. See the LICENSE file for full details.
202
+
203
+ ## ⚠️ Project Disclaimer
204
+
205
+ The project provides a curated lists of skills, agents, etc. which can alter the performance of AI tools significantly. AI makes
206
+ mistakes and the tools listed here can worsen the performance. Please read, verify and research before using any content.
207
+
208
+ AI tools often charges based on token consumptions (approx. number of input + output words) and using contents from this library
209
+ may significantly increase the consumption cost. Always check and track usage of the model with/without using the skills.
210
+
211
+ </div>
@@ -0,0 +1,19 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ """
4
+ Python Framework to Manage AI Customization Rules across LLM Tools
5
+ ==================================================================
6
+
7
+ The :mod:`polyskills` is a Python open-source framework to manage AI
8
+ skills, agents, hooks, etc. from version controlled remote URL across
9
+ different LLM providers by fetching self-contained files written in
10
+ Agent Skills' native ``SKILL.md`` format that can work natively with
11
+ Claude Code and can also be loaded as a system prompt for other LLM
12
+ tools like CodeX, Cursor AI, etc. The library can fetch, install,
13
+ and update portable LLM "skills", "agents" from remote URL thus
14
+ providing one source of truth across different system and projects.
15
+ """
16
+
17
+ __version__ = "v2.0.0"
18
+
19
+ # init-time options registrations, use api/ for public functions
File without changes
@@ -0,0 +1,16 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ """
4
+ LLM Application Management Tools & Prompt Parsers
5
+ -------------------------------------------------
6
+
7
+ Manager for LLM tools - for example if a tool accepts the extensions
8
+ in an Agent Skills format then directly write, or use the parser to
9
+ convert the skills to an prompt type format.
10
+ """
11
+
12
+ from enum import Enum
13
+
14
+ class SupportedTools(Enum):
15
+ CLAUDE_CODE = "https://claude.com/product/claude-code"
16
+ GITHUB_COPILOT = "https://github.com/features/copilot"