Instrument Data To Allotrope
aws-samples/amazon-bedrock-agents-healthcare-lifesciences
Convert laboratory instrument output files (PDF, CSV, Excel, TXT) to Allotrope Simple Model (ASM) JSON format or flattened 2D CSV.
Execute Python scripts for spreadsheets with prerequisite data validation and source accessibility checks
$ npx skills add HKUDS/OpenSpace --skill spreadsheet-validated-exec -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install HKUDS/OpenSpace spreadsheet-validated-exec --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/HKUDS/OpenSpace.git skills-src && mkdir -p .claude/skills && cp -r skills-src/benchmarks/gdpval/skills/spreadsheet-direct-python-enhanced-enhanced-f0b1db .claude/skills/spreadsheet-validated-exec && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "spreadsheet-validated-exec" agent skill from https://github.com/HKUDS/OpenSpace/tree/main/benchmarks/gdpval/skills/spreadsheet-direct-python-enhanced-enhanced-f0b1db into .claude/skills/spreadsheet-validated-exec/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "spreadsheet-validated-exec", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/HKUDS/OpenSpace/tree/main/benchmarks/gdpval/skills/spreadsheet-direct-python-enhanced-enhanced-f0b1dbType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add HKUDS/OpenSpace --skill spreadsheet-validated-exec -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install HKUDS/OpenSpace spreadsheet-validated-exec --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/HKUDS/OpenSpace.git skills-src && mkdir -p .agents/skills && cp -r skills-src/benchmarks/gdpval/skills/spreadsheet-direct-python-enhanced-enhanced-f0b1db .agents/skills/spreadsheet-validated-exec && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "spreadsheet-validated-exec" agent skill from https://github.com/HKUDS/OpenSpace/tree/main/benchmarks/gdpval/skills/spreadsheet-direct-python-enhanced-enhanced-f0b1db into .agents/skills/spreadsheet-validated-exec/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "spreadsheet-validated-exec", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add HKUDS/OpenSpace --skill spreadsheet-validated-exec -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install HKUDS/OpenSpace spreadsheet-validated-exec --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/HKUDS/OpenSpace.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/benchmarks/gdpval/skills/spreadsheet-direct-python-enhanced-enhanced-f0b1db .cursor/skills/spreadsheet-validated-exec && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "spreadsheet-validated-exec" agent skill from https://github.com/HKUDS/OpenSpace/tree/main/benchmarks/gdpval/skills/spreadsheet-direct-python-enhanced-enhanced-f0b1db into .cursor/skills/spreadsheet-validated-exec/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "spreadsheet-validated-exec", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/HKUDS/OpenSpace.git --path benchmarks/gdpval/skills/spreadsheet-direct-python-enhanced-enhanced-f0b1db--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add HKUDS/OpenSpace --skill spreadsheet-validated-exec -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install HKUDS/OpenSpace spreadsheet-validated-exec --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/HKUDS/OpenSpace.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/benchmarks/gdpval/skills/spreadsheet-direct-python-enhanced-enhanced-f0b1db .gemini/skills/spreadsheet-validated-exec && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "spreadsheet-validated-exec" agent skill from https://github.com/HKUDS/OpenSpace/tree/main/benchmarks/gdpval/skills/spreadsheet-direct-python-enhanced-enhanced-f0b1db into .gemini/skills/spreadsheet-validated-exec/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "spreadsheet-validated-exec", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install HKUDS/OpenSpace spreadsheet-validated-execInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add HKUDS/OpenSpace --skill spreadsheet-validated-exec -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/HKUDS/OpenSpace.git skills-src && mkdir -p .github/skills && cp -r skills-src/benchmarks/gdpval/skills/spreadsheet-direct-python-enhanced-enhanced-f0b1db .github/skills/spreadsheet-validated-exec && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "spreadsheet-validated-exec" agent skill from https://github.com/HKUDS/OpenSpace/tree/main/benchmarks/gdpval/skills/spreadsheet-direct-python-enhanced-enhanced-f0b1db into .github/skills/spreadsheet-validated-exec/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "spreadsheet-validated-exec", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add HKUDS/OpenSpace --skill spreadsheet-validated-exec -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install HKUDS/OpenSpace spreadsheet-validated-exec --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/HKUDS/OpenSpace.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/benchmarks/gdpval/skills/spreadsheet-direct-python-enhanced-enhanced-f0b1db .opencode/skills/spreadsheet-validated-exec && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "spreadsheet-validated-exec" agent skill from https://github.com/HKUDS/OpenSpace/tree/main/benchmarks/gdpval/skills/spreadsheet-direct-python-enhanced-enhanced-f0b1db into .opencode/skills/spreadsheet-validated-exec/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "spreadsheet-validated-exec", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
spreadsheet-validated-execExecute Python scripts for spreadsheets with prerequisite data validation and source accessibility checks
Spreadsheet Validated Exec is an agent skill from HKUDS/OpenSpace. Execute Python scripts for spreadsheets with prerequisite data validation and source accessibility checks
Its SKILL.md is about 4.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file.
It sits in Documents & Office, covering Excel spreadsheets. It works with Python. The repository describes itself as: "OpenSpace: The Skill Management Layer for AI Agents" -- https://open-space.cloud/. The licence is MIT.
Read from SKILL.md and the folder at commit 3827781. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
python3From the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
backup-source.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Spreadsheet Validated Exec loads about 4.9k tokens when it runs. Until then it costs about 33 tokens; SKILL.md has 1,102 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from HKUDS/OpenSpace at commit 3827781, republished under its MIT licence (© HKUDS). 1,102 words, ~4,903 tokens.
.claude/skills/spreadsheet-validated-exec/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.This skill extends direct Python execution for spreadsheet operations by adding a mandatory data validation phase before any processing begins. This prevents wasted iterations on inaccessible data sources and provides clear error documentation when data cannot be accessed.
Use validated direct run_shell with Python scripts for spreadsheet operations when:
openpyxl, pandas, or similar librariesBeyond standard shell_agent limitations, unvalidated data access causes:
Direct run_shell with Python validation is more reliable because it:
.py files first avoids shell_agent parsing issues with heredocsBefore writing any spreadsheet processing code, verify your data sources are accessible:
import os
import requests
from pathlib import Path
# For local files
def verify_local_file(file_path):
path = Path(file_path)
if not path.exists():
raise FileNotFoundError(f"Data file not found: {file_path}")
if not path.is_file():
raise ValueError(f"Path is not a file: {file_path}")
if path.stat().st_size == 0:
raise ValueError(f"Data file is empty: {file_path}")
print(f"✓ Local file verified: {file_path} ({path.stat().st_size} bytes)")
return True
# For remote URLs
def verify_remote_url(url, timeout=30):
try:
# Try HEAD request first (lighter than GET)
response = requests.head(url, timeout=timeout, allow_redirects=True)
if response.status_code == 405: # HEAD not allowed, try GET
response = requests.get(url, timeout=timeout, stream=True)
response.raise_for_status()
# Check content type if available
content_type = response.headers.get('Content-Type', '')
if 'text/html' in content_type and 'excel' not in url.lower():
print(f"⚠ Warning: URL may return HTML, not data file")
print(f"✓ Remote URL verified: {url} (Status: {response.status_code})")
return True
except requests.exceptions.SSLError as e:
print(f"✗ SSL Error: {str(e)}")
return False
except requests.exceptions.ConnectionError as e:
print(f"✗ Connection Error: {str(e)}")
return False
except requests.exceptions.Timeout as e:
print(f"✗ Timeout Error: {str(e)}")
return False
except Exception as e:
print(f"✗ Verification Failed: {str(e)}")
return FalseIf primary data source is unavailable:
Check alternative locations:
Document the failure:
def log_access_failure(source, error_type, timestamp=None):
from datetime import datetime
if not timestamp:
timestamp = datetime.now().isoformat()
error_log = {
'timestamp': timestamp,
'source': source,
'error_type': error_type,
'alternatives_attempted': [],
'resolution': 'pending'
}
# Save to error log file
import json
with open('data_access_errors.json', 'a') as f:
f.write(json.dumps(error_log) + '\n')
return error_logImplement fallback strategy:
def get_data_with_fallback(primary_source, fallback_sources):
sources = [primary_source] + fallback_sources
for i, source in enumerate(sources):
print(f"Attempting source {i+1}/{len(sources)}: {source}")
if source.startswith('http'):
if verify_remote_url(source):
return download_data(source)
else:
if verify_local_file(source):
return load_local_data(source)
print(f"Source {source} unavailable, trying next...")
raise Exception(f"All {len(sources)} data sources unavailable")Before proceeding to spreadsheet operations, confirm:
If any check fails: Do NOT proceed to spreadsheet processing. Report the blocking issue and either:
Recommended Pattern: Validate → Process → Report
# Step 1: Write validation + processing script to file
cat > validated_spreadsheet_process.py << 'EOF'
import sys
import os
from pathlib import Path
import pandas as pd
from openpyxl import load_workbook
# === PHASE 0: VALIDATION ===
def validate_sources():
sources_to_check = [
('input_data.xlsx', 'local'),
# ('https://backup-source.com/data.xlsx', 'remote')
]
validated_sources = []
for source, source_type in sources_to_check:
try:
if source_type == 'local':
if not Path(source).exists():
print(f"ERROR: Local file not found: {source}")
continue
if Path(source).stat().st_size == 0:
print(f"ERROR: Local file is empty: {source}")
continue
validated_sources.append(source)
print(f"✓ Validated: {source}")
except Exception as e:
print(f"ERROR validating {source}: {e}")
if not validated_sources:
print("FATAL: No valid data sources available. Aborting.")
sys.exit(1)
return validated_sources
# === PHASE 1: PROCESSING ===
def process_data(source_file):
# Your spreadsheet operations here
pass
# === PHASE 2: REPORTING ===
def generate_report(success, details):
report = {
'status': 'success' if success else 'failed',
'details': details
}
print(f"Report: {report}")
return report
if __name__ == '__main__':
try:
# Validate first
sources = validate_sources()
# Process validated sources
for source in sources:
process_data(source)
generate_report(True, f"Processed {len(sources)} sources")
except Exception as e:
generate_report(False, str(e))
sys.exit(1)
EOF
# Step 2: Execute the validated script
python3 validated_spreadsheet_process.pyFor complex multi-line scripts with multiple data sources:
# Step 1: Write the Python script to a file
cat > process_spreadsheet.py << 'EOF'
import openpyxl
from openpyxl import Workbook
from pathlib import Path
import sys
# Validate first
input_file = Path('file.xlsx')
if not input_file.exists():
print(f"ERROR: Input file not found: {input_file}")
sys.exit(1)
if input_file.stat().st_size == 0:
print(f"ERROR: Input file is empty: {input_file}")
sys.exit(1)
# Your spreadsheet code here
wb = openpyxl.load_workbook('file.xlsx')
# ... operations ...
wb.save('output.xlsx')
print('Success')
EOF
# Step 2: Execute the script
python3 process_spreadsheet.pyFor short scripts when NOT using shell_agent, include validation inline:
# Include quick validation before processing
python3 << 'EOF'
import os
import sys
# Quick validation
input_file = 'data.xlsx'
if not os.path.exists(input_file):
print(f"ERROR: {input_file} not found")
sys.exit(1)
if os.path.getsize(input_file) == 0:
print(f"ERROR: {input_file} is empty")
sys.exit(1)
# Continue with processing...
EOFWith prerequisite validation:
import pandas as pd
import sys
from pathlib import Path
# Validate input file exists and has content
input_path = Path('input.xlsx')
if not input_path.exists():
print(f"ERROR: Input file not found: {input_path}")
sys.exit(1)
if input_path.stat().st_size == 0:
print(f"ERROR: Input file is empty: {input_path}")
sys.exit(1)
# Now safe to process
df = pd.read_excel('input.xlsx', sheet_name='Revenue')
# Apply transformations
df['Net_Revenue'] = df['Gross_Revenue'] * (1 - df['Tax_Rate'])
# Save results
df.to_excel('output.xlsx', index=False, sheet_name='Processed')from openpyxl import load_workbook
import sys
from pathlib import Path
# Validate workbook accessibility
wb_path = Path('tour_data.xlsx')
if not wb_path.exists():
print(f"ERROR: Workbook not found: {wb_path.absolute()}")
sys.exit(1)
try:
wb = load_workbook('tour_data.xlsx')
except Exception as e:
print(f"ERROR: Cannot open workbook: {e}")
print("Possible causes: file locked, corrupted, or wrong format")
sys.exit(1)
# Iterate through sheets
for sheet_name in wb.sheetnames:
ws = wb[sheet_name]
# Apply formatting or calculations
for row in ws.iter_rows(min_row=2, max_col=5):
# Process cells
pass
wb.save('tour_data_processed.xlsx')from openpyxl import load_workbook
from openpyxl.styles import Font, PatternFill, Alignment
from pathlib import Path
import sys
# Pre-check file
report_path = Path('report.xlsx')
if not report_path.exists():
print(f"ERROR: Report file not found: {report_path}")
sys.exit(1)
wb = load_workbook('report.xlsx')
ws = wb.active
# Apply header styling
header_fill = PatternFill(start_color='4472C4', fill_type='solid')
header_font = Font(bold=True, color='FFFFFF')
for cell in ws[1]:
cell.fill = header_fill
cell.font = header_font
cell.alignment = Alignment(horizontal='center')
wb.save('report_formatted.xlsx')import sys
import json
from datetime import datetime
from pathlib import Path
from openpyxl import load_workbook
def log_error(source, error_msg, error_type):
"""Log errors for later analysis and reporting"""
error_record = {
'timestamp': datetime.now().isoformat(),
'source': source,
'error_type': error_type,
'message': error_msg
}
with open('processing_errors.log', 'a') as f:
f.write(json.dumps(error_record) + '\n')
return error_record
try:
# Validate file before opening
if not Path('data.xlsx').exists():
log_error('data.xlsx', 'File not found', 'ValidationError')
raise FileNotFoundError('data.xlsx')
wb = load_workbook('data.xlsx')
ws = wb.active
# Your operations here
value = ws['A1'].value
wb.save('output.xlsx')
print(f"Success: Processed {ws.max_row} rows")
except FileNotFoundError as e:
log_error('data.xlsx', str(e), 'FileNotFoundError')
print(f"ERROR: {str(e)}", file=sys.stderr)
print("ACTION: Verify file path and permissions")
sys.exit(1)
except PermissionError as e:
log_error('data.xlsx', str(e), 'PermissionError')
print(f"ERROR: Permission denied - file may be open in another application")
print("ACTION: Close the file in other applications and retry")
sys.exit(1)
except Exception as e:
log_error('data.xlsx', str(e), type(e).__name__)
print(f"ERROR: {str(e)}", file=sys.stderr)
sys.exit(1).py file first, then execute via run_shellImmediate actions:
For temporary failures (timeouts, 5xx errors):
def retry_with_backoff(operation, max_retries=3, base_delay=1):
import time
for attempt in range(max_retries):
try:
return operation()
except (TimeoutError, ConnectionError) as e:
if attempt == max_retries - 1:
raise
delay = base_delay * (2 ** attempt)
print(f"Retry {attempt + 1}/{max_retries} after {delay}s delay")
time.sleep(delay)For permanent failures (file not found, 404):
def report_data_access_issue(issue_type, source, details, alternatives_tried=None):
"""Standardize error reporting for data access failures"""
from datetime import datetime
report = f"""
=== DATA ACCESS FAILURE REPORT ===
Type: {issue_type}
Source: {source}
Time: {datetime.now().isoformat()}
Details: {details}
Alternatives Attempted: {alternatives_tried or 'None'}
Recommended Action: {get_recommended_action(issue_type)}
==================================
"""
print(report)
return report
def get_recommended_action(issue_type):
actions = {
'FileNotFound': 'Verify file path, check if file was moved or deleted',
'ConnectionError': 'Check network connectivity, try alternative source',
'Timeout': 'Increase timeout, check source server status',
'PermissionError': 'Check file permissions, ensure file not open elsewhere',
'SSLError': 'Verify SSL certificate, try HTTP if appropriate',
'default': 'Review error details, check source availability'
}
return actions.get(issue_type, actions['default'])| Library | Best For | Also Use For |
|---|---|---|
requests | Web requests | Source URL validation, health checks |
openpyxl | Reading/writing .xlsx files, formatting, formulas | - |
pandas | Data manipulation, analysis, merging datasets | Chunked reading for large files |
xlrd | Reading older .xls files (read-only) | - |
xlsxwriter | Creating new .xlsx files with advanced formatting | - |
Issue: Data source unavailable / file not found
Issue: Source was accessible yesterday but not today
Issue: Validation passes but processing fails
Issue: Heredoc syntax fails with 'unknown error' when using shell_agent
.py file first with full validation logic, then execute with python3 script.py. This is significantly more reliable than inline heredoc when shell_agent is the executor.Issue: FileNotFoundError (after validation passed)
Issue: PermissionError
lsof | grep filenameIssue: ConnectionError / Timeout on remote sources
Issue: SSL Certificate errors
requests.get(url, verify=False) - but log this as a security concernIssue: All alternative sources fail
Issue: MemoryError on large files
chunksize parameter. Validate chunk size during initial validation phase.Issue: Formatting not applying
.copy() for style objects. Verify workbook is not in read-only mode.© HKUDS, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file in benchmarks/gdpval/skills/spreadsheet-direct-python-enhanced-enhanced-f0b1db of HKUDS/OpenSpace.
Open the folder on GitHubat commit 3827781
Spreadsheet Validated Exec next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Spreadsheet Validated Exec this skillHKUDS/OpenSpace | 7.7k | — | ~4.9k | Automated safety check: Pass | MIT | |
| Instrument Data To Allotropeaws-samples/amazon-bedrock-agents-healthcare-lifesciences | 274 | 2 repos | ~2.7k | Automated safety check: Pass | Apache-2.0 | |
| Doc Cleanernotoriouslab/doc-cleaner | 309 | — | ~712 | Automated safety check: Pass | MIT | |
| MineruNebutra/MinerU-Skill | 122 | — | ~504 | Automated safety check: Pass | MIT | |
| XLSXzzhonglei/GeoCode-Release | 186 | — | ~3.1k | Automated safety check: Pass | MIT | |
| Python Bridgetmustier/pi-for-excel | 434 | — | ~820 | Automated safety check: Pass | MIT |
aws-samples/amazon-bedrock-agents-healthcare-lifesciences
Convert laboratory instrument output files (PDF, CSV, Excel, TXT) to Allotrope Simple Model (ASM) JSON format or flattened 2D CSV.
notoriouslab/doc-cleaner
Convert PDF, DOCX, XLSX, and text files to clean, structured Markdown.
Nebutra/MinerU-Skill
An AI-Native skill for parsing PDF / Office / image files into Markdown with MinerU — a fast, zero-config document parser for AI agents.
zzhonglei/GeoCode-Release
Create, edit, analyze, or convert Excel spreadsheets (.xlsx, .xlsm) where the workbook file is the primary deliverable.
tmustier/pi-for-excel
Native Python execution via the local Python bridge. An agent skill from tmustier/pi-for-excel.
shuyu-labs/WebCode
Convert Office documents (Word, Excel, PowerPoint, PDF) to Markdown format.
HKUDS/OpenSpace
Walks through producing a master audio track plus stems in Python, from checking a reference file and timing sections by BPM to effects, a zip archive and final verification.
HKUDS/OpenSpace
Handle cascading data retrieval tool failures by falling back to embedded knowledge generation
HKUDS/OpenSpace
Gives an agent a workaround when its code-execution sandbox keeps failing: save the Python script to a file and run it through the shell instead.
HKUDS/OpenSpace
A recovery routine for agents whose sandboxed code runner keeps failing: save the Python script to disk, then run it through the shell and read the output.
HKUDS/OpenSpace
Fallback ladder for failed sandboxed code runs, plus the habit of fixing the working directory first so generated files land in the right place.
HKUDS/OpenSpace
Fallback workflow for executing Python code when executecodesandbox fails repeatedly
Works with
Categories
Execute Python scripts for spreadsheets with prerequisite data validation and source accessibility checks. Spreadsheet Validated Exec is an agent skill from HKUDS/OpenSpace.
Spreadsheet Validated Exec fits situations like: tasks that involve Excel spreadsheets.
Run `npx skills add HKUDS/OpenSpace --skill spreadsheet-validated-exec -a claude-code`. Or copy the skill folder (benchmarks/gdpval/skills/spreadsheet-direct-python-enhanced-enhanced-f0b1db in HKUDS/OpenSpace) into .claude/skills/spreadsheet-validated-exec in your project. Claude Code loads it when a task matches its description.
Run `npx skills add HKUDS/OpenSpace --skill spreadsheet-validated-exec -a codex`. Or copy the skill folder (benchmarks/gdpval/skills/spreadsheet-direct-python-enhanced-enhanced-f0b1db in HKUDS/OpenSpace) into .agents/skills/spreadsheet-validated-exec in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add HKUDS/OpenSpace --skill spreadsheet-validated-exec -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/spreadsheet-validated-exec, .gemini/skills/spreadsheet-validated-exec, .github/skills/spreadsheet-validated-exec and .opencode/skills/spreadsheet-validated-exec in your project.
Going by SKILL.md and its folder, Spreadsheet Validated Exec needs the command-line tools its instructions call (python3). Our summary lists: Python 3.
SKILL.md names 1 domain. In commands or code: backup-source.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Spreadsheet Validated Exec is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.9k tokens (SKILL.md is roughly 20k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Spreadsheet Validated Exec: Instrument Data To Allotrope (aws-samples/amazon-bedrock-agents-healthcare-lifesciences, 274 stars), Doc Cleaner (notoriouslab/doc-cleaner, 309 stars), Mineru (Nebutra/MinerU-Skill, 122 stars) and XLSX (zzhonglei/GeoCode-Release, 186 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
HKUDS (a GitHub organization) maintains it in HKUDS/OpenSpace, which has 7,743 GitHub stars. The repository holds 199 skills in this directory. The repository was last updated on August 12, 2026.
Source: HKUDS/OpenSpace on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.