sutras 0.1.2__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.
- sutras-0.1.2/.gitignore +143 -0
- sutras-0.1.2/LICENSE +9 -0
- sutras-0.1.2/PKG-INFO +206 -0
- sutras-0.1.2/README.md +177 -0
- sutras-0.1.2/examples/README.md +106 -0
- sutras-0.1.2/examples/skills/hello-claude/SKILL.md +48 -0
- sutras-0.1.2/examples/skills/hello-claude/examples.md +104 -0
- sutras-0.1.2/examples/skills/hello-claude/sutras.yaml +18 -0
- sutras-0.1.2/pyproject.toml +100 -0
- sutras-0.1.2/src/sutras/__init__.py +27 -0
- sutras-0.1.2/src/sutras/cli/__init__.py +5 -0
- sutras-0.1.2/src/sutras/cli/main.py +510 -0
- sutras-0.1.2/src/sutras/core/__init__.py +12 -0
- sutras-0.1.2/src/sutras/core/abi.py +117 -0
- sutras-0.1.2/src/sutras/core/loader.py +162 -0
- sutras-0.1.2/src/sutras/core/skill.py +193 -0
- sutras-0.1.2/src/sutras/core/test_runner.py +278 -0
- sutras-0.1.2/tests/__init__.py +1 -0
- sutras-0.1.2/tests/test_skill.py +127 -0
- sutras-0.1.2/tests/test_version.py +19 -0
sutras-0.1.2/.gitignore
ADDED
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
# Byte-compiled / optimized / DLL files
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[cod]
|
|
4
|
+
*$py.class
|
|
5
|
+
|
|
6
|
+
# C extensions
|
|
7
|
+
*.so
|
|
8
|
+
|
|
9
|
+
# Distribution / packaging
|
|
10
|
+
.Python
|
|
11
|
+
build/
|
|
12
|
+
develop-eggs/
|
|
13
|
+
dist/
|
|
14
|
+
downloads/
|
|
15
|
+
eggs/
|
|
16
|
+
.eggs/
|
|
17
|
+
lib/
|
|
18
|
+
lib64/
|
|
19
|
+
parts/
|
|
20
|
+
sdist/
|
|
21
|
+
var/
|
|
22
|
+
wheels/
|
|
23
|
+
pip-wheel-metadata/
|
|
24
|
+
share/python-wheels/
|
|
25
|
+
*.egg-info/
|
|
26
|
+
.installed.cfg
|
|
27
|
+
*.egg
|
|
28
|
+
MANIFEST
|
|
29
|
+
|
|
30
|
+
# PyInstaller
|
|
31
|
+
*.manifest
|
|
32
|
+
*.spec
|
|
33
|
+
|
|
34
|
+
# Installer logs
|
|
35
|
+
pip-log.txt
|
|
36
|
+
pip-delete-this-directory.txt
|
|
37
|
+
|
|
38
|
+
# Unit test / coverage reports
|
|
39
|
+
htmlcov/
|
|
40
|
+
.tox/
|
|
41
|
+
.nox/
|
|
42
|
+
.coverage
|
|
43
|
+
.coverage.*
|
|
44
|
+
.cache
|
|
45
|
+
nosetests.xml
|
|
46
|
+
coverage.xml
|
|
47
|
+
*.cover
|
|
48
|
+
*.py,cover
|
|
49
|
+
.hypothesis/
|
|
50
|
+
.pytest_cache/
|
|
51
|
+
|
|
52
|
+
# Translations
|
|
53
|
+
*.mo
|
|
54
|
+
*.pot
|
|
55
|
+
|
|
56
|
+
# Django stuff:
|
|
57
|
+
*.log
|
|
58
|
+
local_settings.py
|
|
59
|
+
db.sqlite3
|
|
60
|
+
db.sqlite3-journal
|
|
61
|
+
|
|
62
|
+
# Flask stuff:
|
|
63
|
+
instance/
|
|
64
|
+
.webassets-cache
|
|
65
|
+
|
|
66
|
+
# Scrapy stuff:
|
|
67
|
+
.scrapy
|
|
68
|
+
|
|
69
|
+
# Sphinx documentation
|
|
70
|
+
docs/_build/
|
|
71
|
+
|
|
72
|
+
# PyBuilder
|
|
73
|
+
target/
|
|
74
|
+
|
|
75
|
+
# Jupyter Notebook
|
|
76
|
+
.ipynb_checkpoints
|
|
77
|
+
|
|
78
|
+
# IPython
|
|
79
|
+
profile_default/
|
|
80
|
+
ipython_config.py
|
|
81
|
+
|
|
82
|
+
# pyenv
|
|
83
|
+
.python-version
|
|
84
|
+
|
|
85
|
+
# pipenv
|
|
86
|
+
Pipfile.lock
|
|
87
|
+
|
|
88
|
+
# PEP 582
|
|
89
|
+
__pypackages__/
|
|
90
|
+
|
|
91
|
+
# Celery stuff
|
|
92
|
+
celerybeat-schedule
|
|
93
|
+
celerybeat.pid
|
|
94
|
+
|
|
95
|
+
# SageMath parsed files
|
|
96
|
+
*.sage.py
|
|
97
|
+
|
|
98
|
+
# Environments
|
|
99
|
+
.env
|
|
100
|
+
.venv
|
|
101
|
+
env/
|
|
102
|
+
venv/
|
|
103
|
+
ENV/
|
|
104
|
+
env.bak/
|
|
105
|
+
venv.bak/
|
|
106
|
+
|
|
107
|
+
# uv
|
|
108
|
+
# Note: uv.lock should be committed to ensure reproducible builds
|
|
109
|
+
|
|
110
|
+
# User skills directory (skills created with sutras new)
|
|
111
|
+
.claude/
|
|
112
|
+
|
|
113
|
+
# Project
|
|
114
|
+
plan.md
|
|
115
|
+
|
|
116
|
+
# Spyder project settings
|
|
117
|
+
.spyderproject
|
|
118
|
+
.spyproject
|
|
119
|
+
|
|
120
|
+
# Rope project settings
|
|
121
|
+
.ropeproject
|
|
122
|
+
|
|
123
|
+
# mkdocs documentation
|
|
124
|
+
/site
|
|
125
|
+
|
|
126
|
+
# mypy
|
|
127
|
+
.mypy_cache/
|
|
128
|
+
.dmypy.json
|
|
129
|
+
dmypy.json
|
|
130
|
+
|
|
131
|
+
# Pyre type checker
|
|
132
|
+
.pyre/
|
|
133
|
+
|
|
134
|
+
# IDEs
|
|
135
|
+
.vscode/
|
|
136
|
+
.idea/
|
|
137
|
+
*.swp
|
|
138
|
+
*.swo
|
|
139
|
+
*~
|
|
140
|
+
|
|
141
|
+
# OS
|
|
142
|
+
.DS_Store
|
|
143
|
+
Thumbs.db
|
sutras-0.1.2/LICENSE
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Kumar Anirudha
|
|
4
|
+
|
|
5
|
+
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:
|
|
6
|
+
|
|
7
|
+
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
|
8
|
+
|
|
9
|
+
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.
|
sutras-0.1.2/PKG-INFO
ADDED
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: sutras
|
|
3
|
+
Version: 0.1.2
|
|
4
|
+
Summary: Devtool for creating, testing, and distributing Anthropic Agent Skills with lifecycle management and Skill ABI
|
|
5
|
+
Project-URL: Homepage, https://github.com/anistark/sutras
|
|
6
|
+
Project-URL: Documentation, https://github.com/anistark/sutras#readme
|
|
7
|
+
Project-URL: Repository, https://github.com/anistark/sutras
|
|
8
|
+
Author-email: Kumar Anirudha <oss@anirudha.dev>
|
|
9
|
+
License: MIT
|
|
10
|
+
License-File: LICENSE
|
|
11
|
+
Keywords: agent,ai,anthropic,cli,devtools,skills
|
|
12
|
+
Classifier: Development Status :: 3 - Alpha
|
|
13
|
+
Classifier: Intended Audience :: Developers
|
|
14
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
15
|
+
Classifier: Programming Language :: Python :: 3
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
19
|
+
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
20
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
21
|
+
Requires-Python: >=3.11
|
|
22
|
+
Requires-Dist: click>=8.0.0
|
|
23
|
+
Requires-Dist: jinja2>=3.0.0
|
|
24
|
+
Requires-Dist: pydantic>=2.0.0
|
|
25
|
+
Requires-Dist: pyyaml>=6.0
|
|
26
|
+
Provides-Extra: eval
|
|
27
|
+
Requires-Dist: ragas>=0.1.0; extra == 'eval'
|
|
28
|
+
Description-Content-Type: text/markdown
|
|
29
|
+
|
|
30
|
+
# Sutras
|
|
31
|
+
|
|
32
|
+
**Devtool for Anthropic Agent Skills with lifecycle management.**
|
|
33
|
+
|
|
34
|
+

|
|
35
|
+
|
|
36
|
+
Sutras is a CLI tool and library for creating, validating, and managing [Anthropic Agent Skills](https://platform.claude.com/docs/en/agent-sdk/skills). It provides scaffolding, validation, and a standardized Skill ABI for better skill organization and quality.
|
|
37
|
+
|
|
38
|
+
[](https://pypi.org/project/sutras/)
|
|
39
|
+
[](https://pypi.org/project/sutras/)
|
|
40
|
+

|
|
41
|
+
[](https://github.com/anistark/sutras)
|
|
42
|
+

|
|
43
|
+
[](https://opensource.org/licenses/MIT)
|
|
44
|
+
|
|
45
|
+
## Key Features
|
|
46
|
+
|
|
47
|
+
- **Scaffold**: Generate skills with proper structure and best-practice templates
|
|
48
|
+
- **Validate**: Check skill format, metadata, and quality standards
|
|
49
|
+
- **Discover**: List and inspect available skills in your workspace
|
|
50
|
+
- **Manage**: Organize skills with versioning and metadata
|
|
51
|
+
|
|
52
|
+
## Why Sutras?
|
|
53
|
+
|
|
54
|
+
Creating Anthropic Skills manually requires:
|
|
55
|
+
- Writing SKILL.md files with correct YAML frontmatter
|
|
56
|
+
- Managing metadata and descriptions
|
|
57
|
+
- Ensuring consistent structure
|
|
58
|
+
- Validating format and quality
|
|
59
|
+
|
|
60
|
+
Sutras automates this with simple CLI commands.
|
|
61
|
+
|
|
62
|
+
## Installation
|
|
63
|
+
|
|
64
|
+
```sh
|
|
65
|
+
pip install sutras
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
Or with uv:
|
|
69
|
+
|
|
70
|
+
```sh
|
|
71
|
+
uv pip install sutras
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
## Quick Start
|
|
75
|
+
|
|
76
|
+
### Create a New Skill
|
|
77
|
+
|
|
78
|
+
```sh
|
|
79
|
+
sutras new my-skill --description "What this skill does and when to use it"
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
This creates:
|
|
83
|
+
```sh
|
|
84
|
+
.claude/skills/my-skill/
|
|
85
|
+
├── SKILL.md # Skill definition with YAML frontmatter
|
|
86
|
+
├── sutras.yaml # Metadata (version, author, tests, etc.)
|
|
87
|
+
└── examples.md # Usage examples
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### List Skills
|
|
91
|
+
|
|
92
|
+
```sh
|
|
93
|
+
sutras list
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### View Skill Details
|
|
97
|
+
|
|
98
|
+
```sh
|
|
99
|
+
sutras info my-skill
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### Validate a Skill
|
|
103
|
+
|
|
104
|
+
```sh
|
|
105
|
+
sutras validate my-skill
|
|
106
|
+
|
|
107
|
+
# Strict mode (warnings become errors)
|
|
108
|
+
sutras validate my-skill --strict
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
## CLI Reference
|
|
112
|
+
|
|
113
|
+
```sh
|
|
114
|
+
# Create a new skill
|
|
115
|
+
sutras new <name> [--description TEXT] [--author TEXT] [--global]
|
|
116
|
+
|
|
117
|
+
# List skills
|
|
118
|
+
sutras list [--local/--no-local] [--global/--no-global]
|
|
119
|
+
|
|
120
|
+
# Show skill details
|
|
121
|
+
sutras info <name>
|
|
122
|
+
|
|
123
|
+
# Validate skill
|
|
124
|
+
sutras validate <name> [--strict]
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
### Coming Soon
|
|
128
|
+
- `sutras test` - Run skill tests
|
|
129
|
+
- `sutras eval` - Evaluate with metrics
|
|
130
|
+
- `sutras build` - Package for distribution
|
|
131
|
+
- `sutras publish` - Share to registry
|
|
132
|
+
|
|
133
|
+
## Skill Structure
|
|
134
|
+
|
|
135
|
+
Every skill contains:
|
|
136
|
+
|
|
137
|
+
### SKILL.md (required)
|
|
138
|
+
Standard Anthropic Skills format with YAML frontmatter:
|
|
139
|
+
```yaml
|
|
140
|
+
---
|
|
141
|
+
name: my-skill
|
|
142
|
+
description: What it does and when Claude should use it
|
|
143
|
+
allowed-tools: Read, Write # Optional
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
# My Skill
|
|
147
|
+
|
|
148
|
+
Instructions for Claude on how to use this skill...
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
### sutras.yaml (recommended)
|
|
152
|
+
Extended metadata for lifecycle management:
|
|
153
|
+
```yaml
|
|
154
|
+
version: "1.0.0"
|
|
155
|
+
author: "Your Name"
|
|
156
|
+
license: "MIT"
|
|
157
|
+
|
|
158
|
+
capabilities:
|
|
159
|
+
tools: [Read, Write]
|
|
160
|
+
|
|
161
|
+
distribution:
|
|
162
|
+
tags: ["automation", "pdf"]
|
|
163
|
+
category: "document-processing"
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
### Supporting Files (optional)
|
|
167
|
+
- `examples.md` - Usage examples
|
|
168
|
+
- Additional resources as needed
|
|
169
|
+
|
|
170
|
+
## Skill Locations
|
|
171
|
+
|
|
172
|
+
Skills are stored in:
|
|
173
|
+
- **Project**: `.claude/skills/` (shared via git)
|
|
174
|
+
- **Global**: `~/.claude/skills/` (personal only)
|
|
175
|
+
|
|
176
|
+
Use `--global` flag with `sutras new` to create global skills.
|
|
177
|
+
|
|
178
|
+
## Library Usage
|
|
179
|
+
|
|
180
|
+
```python
|
|
181
|
+
from sutras import SkillLoader
|
|
182
|
+
|
|
183
|
+
loader = SkillLoader()
|
|
184
|
+
skills = loader.discover() # Find all skills
|
|
185
|
+
skill = loader.load("my-skill") # Load specific skill
|
|
186
|
+
|
|
187
|
+
print(skill.name)
|
|
188
|
+
print(skill.description)
|
|
189
|
+
print(skill.version)
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
## Examples
|
|
193
|
+
|
|
194
|
+
See [examples/skills/](./examples/skills/) for sample skills demonstrating best practices.
|
|
195
|
+
|
|
196
|
+
## Contributing
|
|
197
|
+
|
|
198
|
+
Contributions welcome! See [CONTRIBUTING.md](./CONTRIBUTING.md) for:
|
|
199
|
+
- Development setup
|
|
200
|
+
- Code style guidelines
|
|
201
|
+
- Testing requirements
|
|
202
|
+
- PR process
|
|
203
|
+
|
|
204
|
+
## License
|
|
205
|
+
|
|
206
|
+
MIT License - see [LICENSE](./LICENSE)
|
sutras-0.1.2/README.md
ADDED
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
# Sutras
|
|
2
|
+
|
|
3
|
+
**Devtool for Anthropic Agent Skills with lifecycle management.**
|
|
4
|
+
|
|
5
|
+

|
|
6
|
+
|
|
7
|
+
Sutras is a CLI tool and library for creating, validating, and managing [Anthropic Agent Skills](https://platform.claude.com/docs/en/agent-sdk/skills). It provides scaffolding, validation, and a standardized Skill ABI for better skill organization and quality.
|
|
8
|
+
|
|
9
|
+
[](https://pypi.org/project/sutras/)
|
|
10
|
+
[](https://pypi.org/project/sutras/)
|
|
11
|
+

|
|
12
|
+
[](https://github.com/anistark/sutras)
|
|
13
|
+

|
|
14
|
+
[](https://opensource.org/licenses/MIT)
|
|
15
|
+
|
|
16
|
+
## Key Features
|
|
17
|
+
|
|
18
|
+
- **Scaffold**: Generate skills with proper structure and best-practice templates
|
|
19
|
+
- **Validate**: Check skill format, metadata, and quality standards
|
|
20
|
+
- **Discover**: List and inspect available skills in your workspace
|
|
21
|
+
- **Manage**: Organize skills with versioning and metadata
|
|
22
|
+
|
|
23
|
+
## Why Sutras?
|
|
24
|
+
|
|
25
|
+
Creating Anthropic Skills manually requires:
|
|
26
|
+
- Writing SKILL.md files with correct YAML frontmatter
|
|
27
|
+
- Managing metadata and descriptions
|
|
28
|
+
- Ensuring consistent structure
|
|
29
|
+
- Validating format and quality
|
|
30
|
+
|
|
31
|
+
Sutras automates this with simple CLI commands.
|
|
32
|
+
|
|
33
|
+
## Installation
|
|
34
|
+
|
|
35
|
+
```sh
|
|
36
|
+
pip install sutras
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Or with uv:
|
|
40
|
+
|
|
41
|
+
```sh
|
|
42
|
+
uv pip install sutras
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## Quick Start
|
|
46
|
+
|
|
47
|
+
### Create a New Skill
|
|
48
|
+
|
|
49
|
+
```sh
|
|
50
|
+
sutras new my-skill --description "What this skill does and when to use it"
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
This creates:
|
|
54
|
+
```sh
|
|
55
|
+
.claude/skills/my-skill/
|
|
56
|
+
├── SKILL.md # Skill definition with YAML frontmatter
|
|
57
|
+
├── sutras.yaml # Metadata (version, author, tests, etc.)
|
|
58
|
+
└── examples.md # Usage examples
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### List Skills
|
|
62
|
+
|
|
63
|
+
```sh
|
|
64
|
+
sutras list
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### View Skill Details
|
|
68
|
+
|
|
69
|
+
```sh
|
|
70
|
+
sutras info my-skill
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### Validate a Skill
|
|
74
|
+
|
|
75
|
+
```sh
|
|
76
|
+
sutras validate my-skill
|
|
77
|
+
|
|
78
|
+
# Strict mode (warnings become errors)
|
|
79
|
+
sutras validate my-skill --strict
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
## CLI Reference
|
|
83
|
+
|
|
84
|
+
```sh
|
|
85
|
+
# Create a new skill
|
|
86
|
+
sutras new <name> [--description TEXT] [--author TEXT] [--global]
|
|
87
|
+
|
|
88
|
+
# List skills
|
|
89
|
+
sutras list [--local/--no-local] [--global/--no-global]
|
|
90
|
+
|
|
91
|
+
# Show skill details
|
|
92
|
+
sutras info <name>
|
|
93
|
+
|
|
94
|
+
# Validate skill
|
|
95
|
+
sutras validate <name> [--strict]
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
### Coming Soon
|
|
99
|
+
- `sutras test` - Run skill tests
|
|
100
|
+
- `sutras eval` - Evaluate with metrics
|
|
101
|
+
- `sutras build` - Package for distribution
|
|
102
|
+
- `sutras publish` - Share to registry
|
|
103
|
+
|
|
104
|
+
## Skill Structure
|
|
105
|
+
|
|
106
|
+
Every skill contains:
|
|
107
|
+
|
|
108
|
+
### SKILL.md (required)
|
|
109
|
+
Standard Anthropic Skills format with YAML frontmatter:
|
|
110
|
+
```yaml
|
|
111
|
+
---
|
|
112
|
+
name: my-skill
|
|
113
|
+
description: What it does and when Claude should use it
|
|
114
|
+
allowed-tools: Read, Write # Optional
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
# My Skill
|
|
118
|
+
|
|
119
|
+
Instructions for Claude on how to use this skill...
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
### sutras.yaml (recommended)
|
|
123
|
+
Extended metadata for lifecycle management:
|
|
124
|
+
```yaml
|
|
125
|
+
version: "1.0.0"
|
|
126
|
+
author: "Your Name"
|
|
127
|
+
license: "MIT"
|
|
128
|
+
|
|
129
|
+
capabilities:
|
|
130
|
+
tools: [Read, Write]
|
|
131
|
+
|
|
132
|
+
distribution:
|
|
133
|
+
tags: ["automation", "pdf"]
|
|
134
|
+
category: "document-processing"
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
### Supporting Files (optional)
|
|
138
|
+
- `examples.md` - Usage examples
|
|
139
|
+
- Additional resources as needed
|
|
140
|
+
|
|
141
|
+
## Skill Locations
|
|
142
|
+
|
|
143
|
+
Skills are stored in:
|
|
144
|
+
- **Project**: `.claude/skills/` (shared via git)
|
|
145
|
+
- **Global**: `~/.claude/skills/` (personal only)
|
|
146
|
+
|
|
147
|
+
Use `--global` flag with `sutras new` to create global skills.
|
|
148
|
+
|
|
149
|
+
## Library Usage
|
|
150
|
+
|
|
151
|
+
```python
|
|
152
|
+
from sutras import SkillLoader
|
|
153
|
+
|
|
154
|
+
loader = SkillLoader()
|
|
155
|
+
skills = loader.discover() # Find all skills
|
|
156
|
+
skill = loader.load("my-skill") # Load specific skill
|
|
157
|
+
|
|
158
|
+
print(skill.name)
|
|
159
|
+
print(skill.description)
|
|
160
|
+
print(skill.version)
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
## Examples
|
|
164
|
+
|
|
165
|
+
See [examples/skills/](./examples/skills/) for sample skills demonstrating best practices.
|
|
166
|
+
|
|
167
|
+
## Contributing
|
|
168
|
+
|
|
169
|
+
Contributions welcome! See [CONTRIBUTING.md](./CONTRIBUTING.md) for:
|
|
170
|
+
- Development setup
|
|
171
|
+
- Code style guidelines
|
|
172
|
+
- Testing requirements
|
|
173
|
+
- PR process
|
|
174
|
+
|
|
175
|
+
## License
|
|
176
|
+
|
|
177
|
+
MIT License - see [LICENSE](./LICENSE)
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
# Example Skills
|
|
2
|
+
|
|
3
|
+
This directory contains example skills demonstrating how to build Anthropic Agent Skills with Sutras.
|
|
4
|
+
|
|
5
|
+
## Directory Structure
|
|
6
|
+
|
|
7
|
+
```sh
|
|
8
|
+
examples/
|
|
9
|
+
└── skills/
|
|
10
|
+
└── hello-claude/ # Simple greeting skill
|
|
11
|
+
├── SKILL.md # Anthropic Skills format with YAML frontmatter
|
|
12
|
+
├── sutras.yaml # Sutras ABI metadata
|
|
13
|
+
└── examples.md # Detailed usage examples
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Using Example Skills
|
|
17
|
+
|
|
18
|
+
### View Example Skills
|
|
19
|
+
|
|
20
|
+
You can inspect the example skills to understand the structure:
|
|
21
|
+
|
|
22
|
+
```sh
|
|
23
|
+
# View the SKILL.md
|
|
24
|
+
cat examples/skills/hello-claude/SKILL.md
|
|
25
|
+
|
|
26
|
+
# View the Sutras ABI
|
|
27
|
+
cat examples/skills/hello-claude/sutras.yaml
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### Try the Examples
|
|
31
|
+
|
|
32
|
+
To try the example skills with Claude:
|
|
33
|
+
|
|
34
|
+
```sh
|
|
35
|
+
# Copy to your skills directory
|
|
36
|
+
cp -r examples/skills/hello-claude .claude/skills/
|
|
37
|
+
|
|
38
|
+
# View skill info
|
|
39
|
+
sutras info hello-claude
|
|
40
|
+
|
|
41
|
+
# Validate the skill
|
|
42
|
+
sutras validate hello-claude
|
|
43
|
+
|
|
44
|
+
# List all skills
|
|
45
|
+
sutras list
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## Creating Your Own Skills
|
|
49
|
+
|
|
50
|
+
Use these examples as templates:
|
|
51
|
+
|
|
52
|
+
```sh
|
|
53
|
+
# Create a new skill
|
|
54
|
+
sutras new my-skill --description "Detailed description of what this skill does and when to use it"
|
|
55
|
+
|
|
56
|
+
# This creates:
|
|
57
|
+
# .claude/skills/my-skill/
|
|
58
|
+
# ├── SKILL.md
|
|
59
|
+
# ├── sutras.yaml
|
|
60
|
+
# └── examples.md
|
|
61
|
+
|
|
62
|
+
# Edit the files to customize your skill
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## Example Skill: hello-claude
|
|
66
|
+
|
|
67
|
+
The `hello-claude` skill demonstrates:
|
|
68
|
+
|
|
69
|
+
1. **SKILL.md Structure**: Proper YAML frontmatter with name, description, and allowed-tools
|
|
70
|
+
2. **Clear Instructions**: Step-by-step guidance for Claude
|
|
71
|
+
3. **When to Use**: Specific trigger scenarios
|
|
72
|
+
4. **Examples**: Concrete use cases
|
|
73
|
+
|
|
74
|
+
### Key Features Demonstrated
|
|
75
|
+
|
|
76
|
+
- **Name**: `hello-claude` (lowercase, hyphen-separated)
|
|
77
|
+
- **Description**: Detailed explanation including what it does and when Claude should use it
|
|
78
|
+
- **Allowed Tools**: `Read, Write` (restricts which tools Claude can use)
|
|
79
|
+
- **Instructions**: Clear, numbered steps
|
|
80
|
+
- **Examples**: Multiple usage scenarios
|
|
81
|
+
|
|
82
|
+
### Sutras ABI Metadata
|
|
83
|
+
|
|
84
|
+
The `sutras.yaml` file shows:
|
|
85
|
+
|
|
86
|
+
- **Version**: Semantic versioning (`1.0.0`)
|
|
87
|
+
- **Author**: Skill author information
|
|
88
|
+
- **License**: License identifier (MIT)
|
|
89
|
+
- **Capabilities**: Tool declarations
|
|
90
|
+
- **Distribution**: Tags, category, keywords for discovery
|
|
91
|
+
|
|
92
|
+
## Best Practices
|
|
93
|
+
|
|
94
|
+
When creating skills based on these examples:
|
|
95
|
+
|
|
96
|
+
1. **Description is Critical**: Make it detailed with specific keywords Claude can match
|
|
97
|
+
2. **Be Specific**: Include file types, actions, and trigger words
|
|
98
|
+
3. **Clear Instructions**: Number steps and be explicit
|
|
99
|
+
4. **Provide Examples**: Show concrete usage scenarios
|
|
100
|
+
5. **Test with Validation**: Run `sutras validate` before using
|
|
101
|
+
|
|
102
|
+
## Learn More
|
|
103
|
+
|
|
104
|
+
- [Anthropic Skills Documentation](https://platform.claude.com/docs/en/agent-sdk/skills)
|
|
105
|
+
- [Sutras README](../README.md)
|
|
106
|
+
- Create your first skill: `sutras new <skill-name>`
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: hello-claude
|
|
3
|
+
description: A simple greeting skill that demonstrates Anthropic Skills structure. Use when you want to greet users or show how skills work. Perfect for testing and examples.
|
|
4
|
+
allowed-tools: Read, Write
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Hello Claude
|
|
8
|
+
|
|
9
|
+
A demonstration skill showing the basic structure of an Anthropic Agent Skill
|
|
10
|
+
managed with Sutras.
|
|
11
|
+
|
|
12
|
+
## Instructions
|
|
13
|
+
|
|
14
|
+
When this skill is invoked:
|
|
15
|
+
|
|
16
|
+
1. Greet the user warmly
|
|
17
|
+
2. Explain that this is an example skill
|
|
18
|
+
3. Mention that it's built with the Sutras devtool
|
|
19
|
+
4. Offer to show them other available skills
|
|
20
|
+
|
|
21
|
+
## When to Use
|
|
22
|
+
|
|
23
|
+
Use this skill when:
|
|
24
|
+
- User asks for a greeting or hello
|
|
25
|
+
- User wants to test skill functionality
|
|
26
|
+
- User asks "what skills do you have?" or similar
|
|
27
|
+
- You need a simple example to demonstrate
|
|
28
|
+
|
|
29
|
+
## Examples
|
|
30
|
+
|
|
31
|
+
**Example 1: Simple Greeting**
|
|
32
|
+
```
|
|
33
|
+
User: Hello!
|
|
34
|
+
Claude: [invokes hello-claude skill]
|
|
35
|
+
Output: Hello! I'm Claude, and I'm using the hello-claude skill...
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
**Example 2: Skill Demonstration**
|
|
39
|
+
```
|
|
40
|
+
User: Show me how skills work
|
|
41
|
+
Claude: [invokes hello-claude skill]
|
|
42
|
+
Output: Let me demonstrate with this hello-claude skill...
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## Notes
|
|
46
|
+
|
|
47
|
+
This skill is intentionally simple to serve as a template and reference
|
|
48
|
+
for creating new skills with Sutras.
|