skills.json file is the manifest for Tank skills. It defines metadata, dependencies, and permissions for your skill package.
Schema Definition
The schema enforces strict validation with no additional properties allowed.Root Fields
Scoped package name in the format
@org/name.Constraints:- Must match pattern:
@[a-z0-9-]+/[a-z0-9][a-z0-9-]* - Must be lowercase alphanumeric and hyphens only
- Minimum 1 character, maximum 214 characters
- Must be scoped (namespace required)
@acme/my-skillSemantic version following semver specification.Constraints:
- Must match pattern:
\d+\.\d+\.\d+(-[a-zA-Z0-9.-]+)?(\+[a-zA-Z0-9.-]+)? - Must be valid semver (MAJOR.MINOR.PATCH)
- Supports pre-release tags (e.g.,
-alpha.1) - Supports build metadata (e.g.,
+build.123)
1.0.02.1.3-beta.11.0.0+20240215
Human-readable description of the skill.Constraints:
- Maximum 500 characters
- Optional but recommended for discoverability
"A skill for processing JSON data with advanced filtering"Dependency declarations mapping skill names to version ranges.Type:
Record<string, string>Format:- Keys: scoped skill names (e.g.,
@org/skill-name) - Values: semver ranges (e.g.,
^1.0.0,>=2.0.0 <3.0.0)
Runtime permission declarations for security enforcement.See the Permissions Schema for complete documentation.Example:
URL to the source code repository.Constraints:
- Must be a valid URL
- Typically points to GitHub, GitLab, or similar
"https://github.com/acme/my-skill"Package visibility setting.Values:
public: Available to all users (default)private: Restricted to organization members
"public"Security audit score requirements.Fields:
min_score(number, required): Minimum acceptable audit score (0-10)
- Score must be between 0 and 10 (inclusive)
- Used to enforce security standards during CI/CD
Complete Example
Validation Rules
- Strict mode: No additional properties allowed beyond those defined in the schema
- Name format: Must be scoped with
@org/namepattern, lowercase only - Version format: Must be valid semver
- URL validation:
repositorymust be a valid URL if provided - Description length: Maximum 500 characters
- Audit score range: Must be between 0 and 10
Related
- Permissions Schema - Permission field details
- skills.lock Schema - Lockfile format
- CLI: tank init - Create a new skills.json
- CLI: tank publish - Publish a skill package