Agent skill

Unified Deliverable Workflow

by HKUDS in HKUDS/OpenSpace

Generate spreadsheets, diagrams, and PDF reports with iteration budgeting and error recovery

MITAuto-check passedDocuments & Office

Install Unified Deliverable Workflow

skills CLI
$ npx skills add HKUDS/OpenSpace --skill unified-deliverable-workflow -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install HKUDS/OpenSpace unified-deliverable-workflow --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/HKUDS/OpenSpace.git skills-src && mkdir -p .claude/skills && cp -r skills-src/benchmarks/gdpval/skills/pdf-checklist-workflow-enhanced-780c5d .claude/skills/unified-deliverable-workflow && rm -rf skills-src

Use ~/.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/

Facts

Skill name
unified-deliverable-workflow
GitHub stars
7.8k
Token cost
~3.8k tokens
SKILL.md length
860 words
Files
2
Skills in repo
199
Repo updated
First seen
Licence
MIT

At a glance

Generate spreadsheets, diagrams, and PDF reports with iteration budgeting and error recovery

  • Works in 4 steps: Spreadsheet Creation (Iterations 3-12) → Diagram Generation (Iterations 13-22) → PDF Report Generation (Iterations 23-32) → …
  • Tasks that involve Excel spreadsheets
  • SKILL.md covers Overview, Iteration Budget Template, Pre-Flight Checks (Iteration… and Phase 1: Spreadsheet Creation…, plus 6 more sections
  • Calls pip

What it does

Unified Deliverable Workflow is an agent skill from HKUDS/OpenSpace. Generate spreadsheets, diagrams, and PDF reports with iteration budgeting and error recovery

Its SKILL.md is about 3.8k 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, PDF and Diagrams. It works with Microsoft Excel. The repository describes itself as: "OpenSpace: The Skill Management Layer for AI Agents" -- https://open-space.cloud/. The licence is MIT.

When your agent uses it

  • Tasks that involve Excel spreadsheets
  • Tasks that involve PDF
  • Tasks that involve Diagrams

Example prompts

  • “/unified-deliverable-workflow”

Requirements

  • Python 3

Workflow steps

4 steps, taken from the step headings in SKILL.md.

  1. Spreadsheet Creation (Iterations 3-12)
  2. Diagram Generation (Iterations 13-22)
  3. PDF Report Generation (Iterations 23-32)
  4. Final Validation (Iterations 33-36)

What it can do on your machine

Read from SKILL.md and the folder at commit 3827781. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Shell commands in SKILL.md call:

    • pip

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use pip, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Unified Deliverable Workflow loads about 3.8k tokens when it runs. Until then it costs about 30 tokens; SKILL.md has 860 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~30
When it runs · the whole SKILL.md, loaded when a task matches
~3.8k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from HKUDS/OpenSpace at commit 3827781, republished under its MIT licence (© HKUDS). 860 words, ~3,756 tokens.

Download SKILL.mdSave it as .claude/skills/unified-deliverable-workflow/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
unified-deliverable-workflow
description
Generate spreadsheets, diagrams, and PDF reports with iteration budgeting and error recovery

Unified Multi-Deliverable Workflow

This skill provides a structured pattern for creating multiple document artifacts (spreadsheets, diagrams, PDF reports) in a single workflow with explicit iteration budgeting and robust error handling.

Overview

Use this workflow when you need to:

  • Generate multiple related deliverables (Excel, PNG diagrams, PDF reports)
  • Manage iteration budget across different artifact types
  • Handle execute_code_sandbox failures gracefully
  • Ensure all deliverables are completed before budget exhaustion
  • Create cohesive documentation packages with cross-referenced content

Iteration Budget Template

Default Allocation (adjust based on task complexity):

PhaseDeliverableIterationsValidation
1Spreadsheet (.xlsx)8-10File exists, readable, correct structure
2Diagram (.png)8-10File exists, viewable, correct dimensions
3PDF Report (.pdf)8-10File exists, downloadable, proper formatting
BufferError recovery4-6Retry failed phases

Total recommended budget: 30-36 iterations

Pre-Flight Checks (Iteration 1-2)

Before generating any deliverables:

  1. Verify workspace path: Always use /workspace/ as base directory
  2. Test execute_code_sandbox: Run a simple print statement to confirm tool works
  3. Check required libraries: Plan to install via !pip install if needed
  4. Standardize filenames: Use consistent naming pattern (e.g., projectname_deliverable.ext)
python
# Quick sandbox test
print("SANDBOX_OK")
print(f"WORKSPACE_PATH:/workspace")

If this fails, use run_shell as fallback for file operations.

Phase 1: Spreadsheet Creation (Iterations 3-12)

Step 1.1: Plan Structure

Define your spreadsheet structure before coding:

  • Sheet names
  • Column headers
  • Data types
  • Any formulas or formatting
Step 1.2: Write Generation Code

Using openpyxl (recommended for .xlsx):

python
# Install if needed
# !pip install openpyxl

from openpyxl import Workbook
from openpyxl.styles import Font, PatternFill, Alignment

wb = Workbook()
ws = wb.active
ws.title = "Data"

# Header row with styling
headers = ["Item", "Description", "Value", "Status"]
for col, header in enumerate(headers, 1):
    cell = ws.cell(row=1, column=col, value=header)
    cell.font = Font(bold=True)
    cell.fill = PatternFill(start_color="CCCCCC", end_color="CCCCCC", fill_type="solid")
    cell.alignment = Alignment(horizontal="center")

# Data rows
data = [
    ["Item 1", "Description 1", 100, "Complete"],
    ["Item 2", "Description 2", 200, "Pending"],
]
for row_idx, row_data in enumerate(data, 2):
    for col_idx, value in enumerate(row_data, 1):
        ws.cell(row=row_idx, column=col_idx, value=value)

# Auto-adjust column widths
for column in ws.columns:
    max_length = 0
    column_letter = column[0].column_letter
    for cell in column:
        try:
            if len(str(cell.value)) > max_length:
                max_length = len(str(cell.value))
        except:
            pass
    adjusted_width = min(max_length + 2, 50)
    ws.column_dimensions[column_letter].width = adjusted_width

# Save with standard path
output_path = "/workspace/hardware_selection_table.xlsx"
wb.save(output_path)
print(f"ARTIFACT_PATH:{output_path}")
print("SPREADSHEET_GENERATED")
Step 1.3: Execute and Validate
execute_code_sandbox
  code: <your spreadsheet code>
  language: python

Validation checklist:

  • ARTIFACT_PATH output present
  • File exists: run_shell command: ls -lh /workspace/*.xlsx
  • File size > 1KB
  • No error messages in output
Step 1.4: Error Recovery
ErrorRecovery Action
Library not foundAdd !pip install openpyxl at code start
'[ERROR] unknown error'Retry once, then try simpler code structure
File not createdCheck path is /workspace/ not ./ or /tmp/
Permission deniedEnsure no file lock from previous execution

If 2 consecutive failures: Skip to Phase 2 and return later with reduced scope.

Phase 2: Diagram Generation (Iterations 13-22)

Step 2.1: Choose Diagram Type
TypeLibraryBest For
Flowchartgraphviz or matplotlibProcess flows, decision trees
Layout/DiagrammatplotlibPhysical layouts, workcell designs
Network/Topologynetworkx + matplotlibSystem architecture
Simple shapesPIL/PillowBasic boxes, arrows, labels
Step 2.2: Write Generation Code

Using matplotlib for layout diagrams:

python
# Install if needed
# !pip install matplotlib

import matplotlib.pyplot as plt
import matplotlib.patches as patches

fig, ax = plt.subplots(figsize=(12, 8))
ax.set_xlim(0, 100)
ax.set_ylim(0, 80)
ax.set_aspect('equal')

# Add components (example: workcell layout)
components = [
    {"label": "Robot", "x": 30, "y": 40, "w": 20, "h": 15, "color": "lightblue"},
    {"label": "Conveyor", "x": 60, "y": 35, "w": 30, "h": 10, "color": "lightgreen"},
    {"label": "Safety Zone", "x": 10, "y": 10, "w": 80, "h": 60, "color": "none", "border": "red"},
]

for comp in components:
    rect = patches.Rectangle(
        (comp["x"], comp["y"]), 
        comp["w"], 
        comp["h"],
        linewidth=2, 
        edgecolor="black" if comp.get("border") else "black",
        facecolor=comp["color"] if comp["color"] != "none" else "white",
        linestyle="--" if comp.get("border") else "-"
    )
    ax.add_patch(rect)
    ax.text(
        comp["x"] + comp["w"]/2, 
        comp["y"] + comp["h"]/2, 
        comp["label"],
        ha="center", 
        va="center",
        fontsize=10,
        fontweight="bold"
    )

# Remove axis, add title
ax.axis("off")
plt.title("Workcell Layout Diagram", fontsize=14, fontweight="bold", pad=20)
plt.tight_layout()

# Save with standard path
output_path = "/workspace/cnc_workcell_layout.png"
plt.savefig(output_path, dpi=150, bbox_inches="tight")
print(f"ARTIFACT_PATH:{output_path}")
print("DIAGRAM_GENERATED")
Step 2.3: Execute and Validate
execute_code_sandbox
  code: <your diagram code>
  language: python

Validation checklist:

  • ARTIFACT_PATH output present
  • File exists: run_shell command: ls -lh /workspace/*.png
  • File size > 5KB (diagrams should be substantial)
  • No error messages in output
Step 2.4: Error Recovery
ErrorRecovery Action
Backend unknown errorRetry with simplified diagram (fewer elements)
Font rendering issuesUse default matplotlib fonts, avoid custom fonts
Memory issuesReduce figure size or DPI
Import errorsAdd !pip install matplotlib pillow at start

If 2 consecutive failures: Create a simpler placeholder diagram and move to Phase 3.

Phase 3: PDF Report Generation (Iterations 23-32)

Step 3.1: Gather Content from Previous Phases

Before generating PDF, collect:

  • Data from spreadsheet (reference key findings)
  • Diagram file path for embedding or referencing
  • Any additional text content or analysis
Step 3.2: Write Generation Code

Using reportlab for professional reports:

python
# Install if needed
# !pip install reportlab

from reportlab.lib import colors
from reportlab.lib.pagesizes import letter
from reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle, Image
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.units import inch

def create_pdf_report(output_path, spreadsheet_path, diagram_path):
    doc = SimpleDocTemplate(output_path, pagesize=letter)
    styles = getSampleStyleSheet()
    story = []
    
    # Title
    title_style = ParagraphStyle('CustomTitle', parent=styles['Heading1'],
                                  fontSize=18, spaceAfter=30, alignment=1)
    story.append(Paragraph("Project Deliverables Report", title_style))
    story.append(Spacer(1, 0.3*inch))
    
    # Executive Summary
    story.append(Paragraph("Executive Summary", styles['Heading2']))
    story.append(Paragraph("This report summarizes the project deliverables including hardware selection, layout design, and implementation recommendations.", styles['Normal']))
    story.append(Spacer(1, 0.2*inch))
    
    # Spreadsheet Reference Section
    story.append(Paragraph("Hardware Selection Summary", styles['Heading2']))
    story.append(Paragraph(f"See: {spreadsheet_path}", styles['Normal']))
    
    # Sample data table
    data = [
        ['Component', 'Selected Option', 'Status'],
        ['Robot Arm', 'Model X-200', 'Approved'],
        ['Controller', 'Unity Pro', 'Approved'],
        ['Safety System', 'Light Curtain', 'Pending']
    ]
    
    table = Table(data, colWidths=[2*inch, 2*inch, 1.5*inch])
    table.setStyle(TableStyle([
        ('BACKGROUND', (0, 0), (-1, 0), colors.grey),
        ('TEXTCOLOR', (0, 0), (-1, 0), colors.whitesmoke),
        ('ALIGN', (0, 0), (-1, -1), 'CENTER'),
        ('FONTNAME', (0, 0), (-1, 0), 'Helvetica-Bold'),
        ('GRID', (0, 0), (-1, -1), 1, colors.black)
    ]))
    story.append(table)
    story.append(Spacer(1, 0.3*inch))
    
    # Diagram Reference Section
    story.append(Paragraph("Layout Diagram", styles['Heading2']))
    story.append(Paragraph(f"See: {diagram_path}", styles['Normal']))
    story.append(Spacer(1, 0.2*inch))
    
    # Try to embed diagram if it exists
    try:
        img = Image(diagram_path, width=6*inch, height=4*inch)
        story.append(img)
        story.append(Spacer(1, 0.2*inch))
    except:
        story.append(Paragraph("Diagram referenced but not embedded.", styles['Normal']))
    
    # Recommendations
    story.append(Paragraph("Recommendations", styles['Heading2']))
    recommendations = [
        "Proceed with approved hardware components",
        "Complete safety system evaluation before deployment",
        "Schedule installation during planned maintenance window"
    ]
    for i, rec in enumerate(recommendations, 1):
        story.append(Paragraph(f"{i}. {rec}", styles['Normal']))
    
    # Build PDF
    doc.build(story)
    print(f"ARTIFACT_PATH:{output_path}")
    print("PDF_REPORT_GENERATED")

create_pdf_report(
    '/workspace/project_report.pdf',
    '/workspace/hardware_selection_table.xlsx',
    '/workspace/cnc_workcell_layout.png'
)
Step 3.3: Execute and Validate
execute_code_sandbox
  code: <your PDF code>
  language: python

Validation checklist:

  • ARTIFACT_PATH output present
  • File exists: run_shell command: ls -lh /workspace/*.pdf
  • File size > 10KB (reports should have substantial content)
  • All previous deliverables referenced correctly
Show full SKILL.md (338 more words)Show less
Step 3.4: Error Recovery
ErrorRecovery Action
Font errorsUse standard fonts (Helvetica, Arial, Courier)
Image embed failsReference diagram path in text instead
Unknown errorSimplify report structure, remove images
Path issuesHardcode absolute /workspace/ paths

If failures persist: Generate a text-only PDF with basic structure.

Phase 4: Final Validation (Iterations 33-36)

Step 4.1: Verify All Deliverables
run_shell
  command: ls -lh /workspace/*.xlsx /workspace/*.png /workspace/*.pdf
Step 4.2: Check File Integrity
run_shell
  command: file /workspace/*.xlsx /workspace/*.png /workspace/*.pdf
Step 4.3: Confirm Download Paths

Ensure each deliverable has ARTIFACT_PATH: prefix in execution output for proper download handling.

Cross-Phase Best Practices

Path Standardization
  • Always use: /workspace/filename.ext
  • Never use: ./filename.ext, /tmp/filename.ext, or relative paths
  • Consistent naming: projectname_deliverabletype.ext
Iteration Management
  • Track iterations used per phase
  • If Phase 1 uses >12 iterations, reduce Phase 2 and 3 budgets
  • Reserve minimum 4 iterations for error recovery
  • Hard stop at iteration 28: Begin PDF generation regardless of previous phase completion status
Error Handling Strategy
  1. First failure: Retry same code once
  2. Second failure: Simplify the approach (reduce complexity)
  3. Third failure: Create minimal viable deliverable and move on
  4. Document failures: Note what failed for post-task review
Tool Failure Workarounds
ToolPrimary UseFallback
execute_code_sandboxRun Python coderun_shell with python -c
read_fileVerify file contentrun_shell cat/head
run_shellCheck file existenceexecute_code_sandbox with os.path

Quick Start Template

python
# Unified deliverable generator - minimal viable version
# Run in execute_code_sandbox

# ===== SPREADSHEET =====
from openpyxl import Workbook
wb = Workbook()
ws = wb.active
ws.append(["Item", "Value", "Status"])
ws.append(["Component A", 100, "OK"])
wb.save("/workspace/data.xlsx")
print("ARTIFACT_PATH:/workspace/data.xlsx")

# ===== DIAGRAM =====
import matplotlib.pyplot as plt
fig, ax = plt.subplots(figsize=(8, 6))
ax.text(0.5, 0.5, "Diagram Placeholder", ha='center', va='center', fontsize=16)
ax.axis('off')
plt.savefig("/workspace/diagram.png", dpi=100)
print("ARTIFACT_PATH:/workspace/diagram.png")

# ===== PDF =====
from reportlab.lib.pagesizes import letter
from reportlab.platypus import SimpleDocTemplate, Paragraph
from reportlab.lib.styles import getSampleStyleSheet
doc = SimpleDocTemplate("/workspace/report.pdf", pagesize=letter)
styles = getSampleStyleSheet()
story = [Paragraph("Report", styles['Heading1']), 
         Paragraph("Generated successfully.", styles['Normal'])]
doc.build(story)
print("ARTIFACT_PATH:/workspace/report.pdf")
  • execute_code_sandbox - Run Python code for all deliverable generation
  • read_file - Verify file content (type: xlsx, png, pdf)
  • run_shell - Check file existence, size, and integrity
  • create_file - For simple text-based deliverables if needed

Common Pitfalls and Solutions

PitfallSolution
Exhausting budget on Phase 1Set hard iteration limit per phase (max 12)
Workspace path confusionAlways use absolute /workspace/ paths
Repeated unknown errorsSimplify code, reduce library dependencies
Missing ARTIFACT_PATHAlways print prefix for each deliverable
PDF created but not downloadableVerify ARTIFACT_PATH is on its own line
Diagram too complexStart with basic shapes, add detail only if time permits

Success Criteria

A successful execution should produce:

  • 3 deliverable files in /workspace/
  • Each file > minimum size threshold
  • Each execution outputs ARTIFACT_PATH: prefix
  • Completed before iteration budget exhaustion
  • No unrecovered tool errors

© HKUDS, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file in benchmarks/gdpval/skills/pdf-checklist-workflow-enhanced-780c5d of HKUDS/OpenSpace.

  • SKILL.md
  • .skill_id

Open the folder on GitHubat commit 3827781

Compare with similar skills

Unified Deliverable Workflow 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.

Unified Deliverable Workflow compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Unified Deliverable Workflow this skillHKUDS/OpenSpace7.8k—~3.8kAutomated safety check: PassMIT
Document ConverterBlackBeltTechnology/pi-agent-dashboard315—~999Automated safety check: PassMIT
MarkitdownImCa0/just-laws78114 repos~3.2kAutomated safety check: NotesMIT
Instrument Data To Allotropeaws-samples/amazon-bedrock-agents-healthcare-lifesciences2742 repos~2.7kAutomated safety check: PassApache-2.0
PDFzai-org/ZCode7.7k—~18kAutomated safety check: NotesProprietary
Jev SEOAgriciDaniel/jev-seo543—~2.5kAutomated safety check: NotesMIT

Similar skills

  • Document Converter

    BlackBeltTechnology/pi-agent-dashboard

    Convert documents bidirectionally via the pi-doc-engine facade: ingest PDF/DOCX/PPTX/XLSX to provenance-stamped Markdown (with OCR), and produce templated DOCX/PDF from Markdown with diagrams, TOC…

    315 GitHub stars~999 tokensUpdated yesterday
    Documents & OfficeAuto-check passed
  • Markitdown

    ImCa0/just-laws

    Convert files and office documents to Markdown. An agent skill from ImCa0/just-laws.

    781 GitHub starsUsed in 14 repos~3.2k tokens
    Documents & OfficeAuto-check: notes
  • Instrument Data To Allotrope

    aws-samples/amazon-bedrock-agents-healthcare-lifesciences

    Official

    Convert laboratory instrument output files (PDF, CSV, Excel, TXT) to Allotrope Simple Model (ASM) JSON format or flattened 2D CSV.

    274 GitHub starsUsed in 2 repos~2.7k tokens
    Documents & OfficeAuto-check passed
  • PDF

    zai-org/ZCode

    Professional PDF toolkit covering four production workflows: reports, creative visuals, academic LaTeX, and existing PDF processing.

    7.7k GitHub stars~18k tokensUpdated today
    Documents & OfficeAuto-check: notes
  • Jev SEO

    AgriciDaniel/jev-seo

    Full live SEO audit of any website from its homepage URL, powered by Jev (TypeSafe's System One model).

    543 GitHub stars~2.5k tokensUpdated 19 days ago
    Documents & OfficeAuto-check: notes
  • Markitdown

    jimmc414/Kosmos

    Convert various file formats (PDF, Office documents, images, audio, web content, structured data) to Markdown optimized for LLM processing.

    595 GitHub starsUsed in 2 repos~1.7k tokens
    Documents & OfficeAuto-check passed

More from HKUDS/OpenSpace

All 199 skills in this repo
  • 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.

    7.8k GitHub stars~2.9k tokensUpdated 1 mo ago
    Auto-check passed
  • Handle cascading data retrieval tool failures by falling back to embedded knowledge generation

    7.8k GitHub stars~765 tokensUpdated 1 mo ago
    Auto-check passed
  • 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.

    7.8k GitHub stars~588 tokensUpdated 1 mo ago
    Auto-check passed
  • 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.

    7.8k GitHub stars~652 tokensUpdated 1 mo ago
    Auto-check passed
  • Fallback ladder for failed sandboxed code runs, plus the habit of fixing the working directory first so generated files land in the right place.

    7.8k GitHub stars~1.1k tokensUpdated 1 mo ago
    Auto-check passed
  • Fallback workflow for executing Python code when executecodesandbox fails repeatedly

    7.8k GitHub stars~1.1k tokensUpdated 1 mo ago
    Auto-check passed

Works with

Questions about Unified Deliverable Workflow

What does Unified Deliverable Workflow do?

Generate spreadsheets, diagrams, and PDF reports with iteration budgeting and error recovery. Unified Deliverable Workflow is an agent skill from HKUDS/OpenSpace.

When should I use Unified Deliverable Workflow?

Unified Deliverable Workflow fits situations like: tasks that involve Excel spreadsheets; tasks that involve PDF; tasks that involve Diagrams.

How do I install Unified Deliverable Workflow in Claude Code?

Run `npx skills add HKUDS/OpenSpace --skill unified-deliverable-workflow -a claude-code`. Or copy the skill folder (benchmarks/gdpval/skills/pdf-checklist-workflow-enhanced-780c5d in HKUDS/OpenSpace) into .claude/skills/unified-deliverable-workflow in your project. Claude Code loads it when a task matches its description.

How do I install Unified Deliverable Workflow in Codex?

Run `npx skills add HKUDS/OpenSpace --skill unified-deliverable-workflow -a codex`. Or copy the skill folder (benchmarks/gdpval/skills/pdf-checklist-workflow-enhanced-780c5d in HKUDS/OpenSpace) into .agents/skills/unified-deliverable-workflow in your project. Codex loads it when a task matches its description.

Can I use Unified Deliverable Workflow in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add HKUDS/OpenSpace --skill unified-deliverable-workflow -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/unified-deliverable-workflow, .gemini/skills/unified-deliverable-workflow, .github/skills/unified-deliverable-workflow and .opencode/skills/unified-deliverable-workflow in your project.

What does Unified Deliverable Workflow need to run?

Going by SKILL.md and its folder, Unified Deliverable Workflow needs the command-line tools its instructions call (pip). Our summary lists: Python 3.

Does Unified Deliverable Workflow access the network?

SKILL.md contains no URLs. Its commands use pip, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Unified Deliverable Workflow safe to install?

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.

What licence does Unified Deliverable Workflow use?

Unified Deliverable Workflow is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Unified Deliverable Workflow use?

About 3.8k tokens (SKILL.md is roughly 15k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Unified Deliverable Workflow?

Skills that share tags, products or a category with Unified Deliverable Workflow: Document Converter (BlackBeltTechnology/pi-agent-dashboard, 315 stars), Markitdown (ImCa0/just-laws, 781 stars), Instrument Data To Allotrope (aws-samples/amazon-bedrock-agents-healthcare-lifesciences, 274 stars) and PDF (zai-org/ZCode, 7.7k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Unified Deliverable Workflow?

HKUDS (a GitHub organization) maintains it in HKUDS/OpenSpace, which has 7,754 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.