# File Reference Skill

> Example skill demonstrating secure file reference resolution with supporting files Use when this capability is needed.

- Skill: `tomevault-io/file-reference-skill` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add tomevault-io/file-reference-skill`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tomevault-io/file-reference-skill/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: tomevault-io (https://skillmd.com/u/tomevault-io)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/tomevault-io/file-reference-skill

---


# 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

---
> Converted and distributed by [TomeVault](https://tomevault.io/claim/maxvaega) — claim your Tome and manage your conversions.
<!-- tomevault:4.0:skill_md:2026-04-11 -->

