Back to skills

File Reference Skill

Example skill demonstrating secure file reference resolution with supporting files

72 stars
0 votes
0 copies
0 views
Added 12/19/2025
data-aipythonshellsecuritydocumentation

Install via CLI

$openskills install maxvaega/skillkit
Download Zip
Files
SKILL.md
---
name: file-reference-skill
description: Example skill demonstrating secure file reference resolution with supporting files
allowed-tools: []
---

# File Reference Skill

This skill demonstrates how to use supporting files (scripts, templates, documentation) within a skill directory.

## Overview

This skill uses helper scripts and templates for data processing. All supporting files are accessible via relative paths from the skill's base directory.

## Available Supporting Files

### Scripts
- `scripts/data_processor.py` - Main data processing script
- `scripts/validator.py` - Input validation utilities
- `scripts/helper.sh` - Shell helper script

### Templates
- `templates/config.yaml` - Configuration template
- `templates/report.md` - Report generation template

### Documentation
- `docs/usage.md` - Detailed usage instructions
- `docs/examples.md` - Example use cases

## Usage

When this skill is invoked with arguments, it can access supporting files using the FilePathResolver:

```python
from pathlib import Path
from skillkit.core.path_resolver import FilePathResolver

# Get the skill's base directory (injected by BaseDirectoryProcessor)
base_dir = Path("<base_directory_from_context>")

# Resolve supporting files securely
processor_script = FilePathResolver.resolve_path(base_dir, "scripts/data_processor.py")
config_template = FilePathResolver.resolve_path(base_dir, "templates/config.yaml")
usage_docs = FilePathResolver.resolve_path(base_dir, "docs/usage.md")

# Read file contents
with open(processor_script) as f:
    script_code = f.read()
```

## Processing Arguments

The skill expects data file paths as arguments:

**Example invocation**: `file-reference-skill data/input.csv data/output.csv`

Processing steps:
1. Validate input using `scripts/validator.py`
2. Process data using `scripts/data_processor.py`
3. Generate report using `templates/report.md`
4. Output results to specified location

## Security Notes

- All file paths are validated to prevent directory traversal attacks
- Symlinks are resolved and verified to stay within skill directory
- Absolute paths and path traversal patterns (../) are blocked
- Any security violation raises PathSecurityError with detailed logging

Comments (0)

No comments yet. Be the first to comment!