Agent skill
elnora-files
This skill should be used when the user asks to "list files", "read a file", "get file content", "view protocol output", "file versions", "version history", "download protocol", "upload a file", "fork a file", "working copy", or any task involving Elnora Platform file management.
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/other/other/elnora-files
SKILL.md
Elnora Files
Manage files on the Elnora AI Platform. Files are protocol outputs, templates, datasets, and other artifacts attached to projects. The platform tracks version history for every file, supports working copies for edit-in-place workflows, and allows forking files across projects.
Organization Context
All list, create, and upload tools accept an optional org_id parameter (UUID).
When provided, the operation targets that organization instead of the user's
active org. The user must be a member of the target org.
Concepts
- File: A document stored in a project. Has metadata (name, type, size) and content.
- Version: An immutable snapshot of file content. Every change creates a new version.
- Working copy: A mutable draft of a file for editing. Commit to save changes as a new version.
- Fork: Copy a file to another project, preserving content but creating an independent copy.
- Promote: Change a file's visibility level (e.g., to organization library).
- All IDs are UUIDs (e.g.,
bfdc6fbd-40ed-4042-9ea7-c79a5ec90085).
MCP Tools
elnora_list_files
List files in a project or workspace.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
project_id |
uuid | No | - | Filter by project UUID |
page |
integer | No | 1 | Page number (min: 1) |
page_size |
integer | No | 25 | Results per page (min: 1, max: 100) |
Returns paginated results:
{
"items": [
{
"id": "<UUID>",
"name": "pcr-protocol.md",
"mimeType": "text/markdown",
"size": 2048,
"createdAt": "...",
"updatedAt": "..."
}
],
"page": 1,
"totalCount": 5,
"hasNextPage": false
}
elnora_get_file
Get file metadata (name, type, size, timestamps) without content.
| Parameter | Type | Required | Description |
|---|---|---|---|
file_id |
uuid | Yes | File UUID |
Use this to inspect a file before reading its content.
elnora_get_file_content
Retrieve the full content of a file.
| Parameter | Type | Required | Description |
|---|---|---|---|
file_id |
uuid | Yes | File UUID |
Returns the raw file content. Use this to read protocol outputs, templates, or any file stored on the platform.
elnora_create_file
Create a new empty file in a project.
| Parameter | Type | Required | Description |
|---|---|---|---|
project_id |
uuid | Yes | Project UUID |
name |
string | Yes | Filename (min: 1, max: 255 chars) |
file_type |
string | No | File type / MIME type |
folder_id |
uuid | No | Folder UUID to place the file in |
Returns the created file object with its id. The file is created empty; use elnora_create_version to add content.
elnora_upload_file
Upload a text file with content in a single call.
| Parameter | Type | Required | Description |
|---|---|---|---|
name |
string | Yes | Filename (min: 1, max: 255 chars) |
content |
string | Yes | File content (min: 1, max: 100,000 chars) |
file_type |
string | No | MIME type (default: text/markdown) |
Use this for quick uploads when you have the content ready. For structured project placement, use elnora_create_file + elnora_create_version instead.
elnora_update_file
Update file metadata (rename or move to a different folder).
| Parameter | Type | Required | Description |
|---|---|---|---|
file_id |
uuid | Yes | File UUID |
name |
string | No | New filename (min: 1, max: 255 chars) |
folder_id |
uuid | No | New folder UUID |
Must provide at least one of name or folder_id.
elnora_archive_file
Archive (permanently delete) a file. Destructive -- confirm with user first.
| Parameter | Type | Required | Description |
|---|---|---|---|
file_id |
uuid | Yes | File UUID |
elnora_download_file
Download a file (returns a download URL or content).
| Parameter | Type | Required | Description |
|---|---|---|---|
file_id |
uuid | Yes | File UUID |
Version Management
elnora_get_file_versions
Get version history for a file. Use this to track how a protocol evolved across iterations.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
file_id |
uuid | Yes | - | File UUID |
page |
integer | No | 1 | Page number (min: 1) |
page_size |
integer | No | 25 | Results per page (min: 1, max: 100) |
Returns paginated list of versions with timestamps and metadata.
elnora_get_version_content
Get the content of a specific historical file version. Essential for comparing versions or reviewing past protocol iterations.
| Parameter | Type | Required | Description |
|---|---|---|---|
file_id |
uuid | Yes | File UUID |
version_id |
uuid | Yes | Version UUID |
Get version IDs from elnora_get_file_versions first.
elnora_create_version
Create a new version of a file with updated content.
| Parameter | Type | Required | Description |
|---|---|---|---|
file_id |
uuid | Yes | File UUID |
content |
string | No | Version content (max: 100,000 chars) |
Each call creates a new immutable version. The file's current content becomes this version.
elnora_restore_version
Restore a file to a specific previous version.
| Parameter | Type | Required | Description |
|---|---|---|---|
file_id |
uuid | Yes | File UUID |
version_id |
uuid | Yes | Version UUID to restore |
Get version IDs from elnora_get_file_versions first.
Working Copies
Working copies let you edit a file in place before committing changes.
elnora_create_working_copy
Create a mutable working copy of a file for editing.
| Parameter | Type | Required | Description |
|---|---|---|---|
file_id |
uuid | Yes | File UUID |
task_id |
uuid | No | Associated task UUID |
elnora_commit_working_copy
Commit the working copy back to the file, saving changes as a new version.
| Parameter | Type | Required | Description |
|---|---|---|---|
file_id |
uuid | Yes | File UUID |
Cross-Project Operations
elnora_fork_file
Fork (copy) a file to another project. Creates an independent copy in the target project.
| Parameter | Type | Required | Description |
|---|---|---|---|
file_id |
uuid | Yes | Source file UUID |
target_project_id |
uuid | Yes | Target project UUID |
elnora_promote_file
Change a file's visibility level (e.g., promote to organization library).
| Parameter | Type | Required | Description |
|---|---|---|---|
file_id |
uuid | Yes | File UUID |
visibility |
string | Yes | Target visibility level |
Agent Workflow Recipes
Read a protocol from a project
- Call
elnora_list_fileswithproject_idto browse files - Call
elnora_get_file_contentwith the target file'sid
Upload a protocol template
- Call
elnora_upload_filewithnameandcontent - Use the returned file
idinelnora_send_messageviafile_idsto reference it in a task
Track protocol evolution
- Call
elnora_get_file_versionsto see all versions - Call
elnora_get_file_contentto read current content - Use
elnora_restore_versionif you need to revert
Edit a file with working copies
- Call
elnora_create_working_copywith the file ID - Make edits (the working copy is mutable)
- Call
elnora_commit_working_copyto save changes as a new version
Copy a file to another project
- Get the source file ID from
elnora_list_filesorelnora_search_files - Get the target project ID from
elnora_list_projects - Call
elnora_fork_filewith both IDs
Reference a file in a task conversation
Use file IDs from elnora_list_files as file_ids in elnora_send_message or context_file_ids in elnora_create_task to give the AI context about existing protocols or datasets.
Presigned URL Upload (Large/Binary Files)
For files too large for inline upload (>100KB) or binary files, use the two-step presigned URL flow:
elnora_initiate_upload
Start a multi-step file upload. Returns a presigned URL for uploading content directly to storage.
| Parameter | Type | Required | Description |
|---|---|---|---|
project_id |
uuid | Yes | Project UUID |
file_name |
string | Yes | Filename (min: 1, max: 255 chars) |
content_type |
string | No | MIME type (default: application/octet-stream) |
file_size_bytes |
integer | Yes | File size in bytes |
Returns a presigned URL and file ID. PUT the file content to the URL, then confirm.
elnora_confirm_upload
Confirm that a file upload to the presigned URL has completed.
| Parameter | Type | Required | Description |
|---|---|---|---|
file_id |
uuid | Yes | File UUID from elnora_initiate_upload |
Search Inside Files
elnora_search_file_content
Full-text search inside file bodies. Finds content within protocols and documents, not just metadata.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
query |
string | Yes | - | Search query (min: 1, max: 1,000 chars) |
page |
integer | No | 1 | Page number |
page_size |
integer | No | 25 | Results per page (max: 100) |
Token Efficiency
All file tools support optional compact and fields parameters:
| Parameter | Type | Default | Description |
|---|---|---|---|
compact |
boolean | false | Strip null/empty values (~30-40% token savings) |
fields |
string | all | Comma-separated field names (e.g., "id,name") |
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
Didn't find tool you were looking for?