file-reference-skill

Example skill demonstrating secure file reference resolution with supporting files

$ 설치

git clone https://github.com/maxvaega/skillkit /tmp/skillkit && cp -r /tmp/skillkit/examples/skills/file-reference-skill ~/.claude/skills/skillkit

// tip: Run this command in your terminal to install the skill


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:

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