116 lines
2.5 KiB
Markdown
116 lines
2.5 KiB
Markdown
# Contributing to SmartTools Registry
|
|
|
|
Thank you for contributing to the SmartTools ecosystem!
|
|
|
|
## Publishing a Tool
|
|
|
|
### Prerequisites
|
|
|
|
1. Install SmartTools: `pip install smarttools`
|
|
2. Create an account at the registry website
|
|
3. Generate an API token from your dashboard
|
|
4. Configure your token: `smarttools config set-token YOUR_TOKEN`
|
|
|
|
### Tool Structure
|
|
|
|
Your tool directory should contain:
|
|
|
|
```
|
|
my-tool/
|
|
├── config.yaml # Required: Tool definition
|
|
└── README.md # Recommended: Documentation
|
|
```
|
|
|
|
### config.yaml Format
|
|
|
|
```yaml
|
|
name: my-tool
|
|
version: "1.0.0"
|
|
description: A brief description of what your tool does
|
|
category: text-processing # See categories below
|
|
tags:
|
|
- ai
|
|
- productivity
|
|
|
|
arguments:
|
|
- flag: --max-length
|
|
variable: max_length
|
|
default: "500"
|
|
description: Maximum output length
|
|
|
|
steps:
|
|
- type: prompt
|
|
prompt: |
|
|
Summarize the following text in {max_length} characters or less:
|
|
|
|
{input}
|
|
provider: claude
|
|
output_var: response
|
|
|
|
output: "{response}"
|
|
```
|
|
|
|
### Categories
|
|
|
|
Choose one of these categories:
|
|
|
|
- `text-processing` - Text manipulation and analysis
|
|
- `code` - Code review, generation, analysis
|
|
- `data` - Data transformation and analysis
|
|
- `media` - Image, audio, video processing
|
|
- `productivity` - General productivity tools
|
|
- `writing` - Writing assistance and editing
|
|
- `translation` - Language translation
|
|
- `research` - Research and information gathering
|
|
|
|
### Publishing
|
|
|
|
```bash
|
|
cd my-tool/
|
|
smarttools registry publish
|
|
```
|
|
|
|
Use `--dry-run` to validate without publishing:
|
|
```bash
|
|
smarttools registry publish --dry-run
|
|
```
|
|
|
|
## Guidelines
|
|
|
|
### Do's
|
|
|
|
- Write clear, concise descriptions
|
|
- Include usage examples in your README
|
|
- Use semantic versioning (MAJOR.MINOR.PATCH)
|
|
- Test your tool before publishing
|
|
- Choose an appropriate category
|
|
|
|
### Don'ts
|
|
|
|
- Don't include secrets or API keys in prompts
|
|
- Don't publish tools that duplicate existing official tools
|
|
- Don't use misleading names or descriptions
|
|
- Don't publish empty or non-functional tools
|
|
|
|
## Versioning
|
|
|
|
Once a version is published, it cannot be modified. To make changes:
|
|
|
|
1. Update your tool locally
|
|
2. Bump the version in config.yaml
|
|
3. Run `smarttools registry publish`
|
|
|
|
## Deprecation
|
|
|
|
To deprecate a tool version, add to your config.yaml:
|
|
|
|
```yaml
|
|
deprecated: true
|
|
deprecated_message: "Use v2.0.0 instead - security fix"
|
|
replacement: "username/toolname@2.0.0"
|
|
```
|
|
|
|
## Questions?
|
|
|
|
Open an issue on the [SmartTools repository](https://gitea.brrd.tech/rob/SmartTools/issues).
|