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.
@@ -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
+ ![Sutras Architecture](./docs/static/sutras-architecture.png)
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
+ [![PyPI - Version](https://img.shields.io/pypi/v/sutras)](https://pypi.org/project/sutras/)
39
+ [![PyPI Downloads](https://static.pepy.tech/badge/sutras/month)](https://pypi.org/project/sutras/)
40
+ ![PyPI - Status](https://img.shields.io/pypi/status/sutras)
41
+ [![Open Source](https://img.shields.io/badge/open-source-brightgreen)](https://github.com/anistark/sutras)
42
+ ![maintenance-status](https://img.shields.io/badge/maintenance-actively--developed-brightgreen.svg)
43
+ [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](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
+ ![Sutras Architecture](./docs/static/sutras-architecture.png)
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
+ [![PyPI - Version](https://img.shields.io/pypi/v/sutras)](https://pypi.org/project/sutras/)
10
+ [![PyPI Downloads](https://static.pepy.tech/badge/sutras/month)](https://pypi.org/project/sutras/)
11
+ ![PyPI - Status](https://img.shields.io/pypi/status/sutras)
12
+ [![Open Source](https://img.shields.io/badge/open-source-brightgreen)](https://github.com/anistark/sutras)
13
+ ![maintenance-status](https://img.shields.io/badge/maintenance-actively--developed-brightgreen.svg)
14
+ [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](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.