dojo.md
University for AI agents. 92 courses, 4400+ scenarios, any model via OpenRouter. Auto-training loops generate per-model SKILL.md documents. Works with Claude Code, OpenClaw, Cursor, Windsurf. No fine-tuning req...
Flatten a PDF into a non-interactive “safe” version by uploading it to the Solutions API, polling until completion, then returning a download URL for the flattened PDF.
Follow the repository instructions for this skill and your agent. Review the files and dependencies before adding it to your workflow.
SkillHub CLI
skillhub install crossservicesolutions/make-pdf-safeInspect the source and compatibility requirements, then follow its installation steps.
Give your agent the source link and ask it to inspect instructions and dependencies before explaining the installation steps.
This skill creates a “safe” PDF by converting the document into a single flattened layer without active functionality. The goal is to reduce risk from interactive PDF features.
In practical terms, the output PDF is intended to:
This skill:
The API requires an API key used as a Bearer token:
Authorization: Bearer <API_KEY>
How the user gets an API key:
Rule: never echo or log the API key.
Base URL:
https://api.xss-cross-service-solutions.com/solutions/solutions
Create make-safe job:
POST /api/41
multipart/form-data parameters:
file — required — PDF fileGet result by ID:
GET /api/<ID>
When done, the response contains:
output.files[] with { name, path } where path is a downloadable URL.Return a structured result:
job_id (number)status (string)download_url (string, when done)file_name (string, when available)Example output:
{
"job_id": 4101,
"status": "done",
"download_url": "https://.../safe.pdf",
"file_name": "safe.pdf"
}
These signals come from indexed source analysis and may lag behind changes. Check the current source files.
README.md# make-pdf-safe (OpenClaw Skill)
Create a “safe” PDF by flattening the document into a single, non-interactive layer via the Solutions API.
## What “safe” means here
This tool is meant to reduce risk from PDFs that contain interactive or active features.
The output PDF is intended to behave like a flattened representation:
- interactive features such as embedded actions/scripts are removed or neutralized,
- the document is converted into a non-editable-like layer (no underlying object structure to modify),
- content is preserved visually, but active functionality should not remain.
This is useful when you want to share or archive a PDF while minimizing the chance that:
- scripts/actions can run,
- forms/objects can be edited to change the document content structure.
## What you need
- A PDF file
- A Solutions API key (Bearer token)
- Register / get key: https://login.cross-service-solutions.com/register
## How it works
1) Upload PDF to:
`POST https://api.xss-cross-service-solutions.com/solutions/solutions/api/41`
2) Poll:
`GET https://api.xss-cross-service-solutions.com/solutions/solutions/api/<job_id>`
3) Return `output.files[0].path` as the download URL
## Script (CLI)
```bash
python scripts/make_pdf_safe.py \
--pdf "/path/to/file.pdf" \
--api-key "$SOLUTIONS_API_KEY"
# make-pdf-safe
## Purpose
This skill creates a “safe” PDF by converting the document into a single flattened layer without active functionality. The goal is to reduce risk from interactive PDF features.
In practical terms, the output PDF is intended to:
- remove or neutralize interactive elements (e.g., scripts/actions),
- prevent editing of underlying objects/content structure,
- behave like a flattened document layer (similar to a “print” representation).
This skill:
1) accepts a PDF file from the user,
2) uploads it to the Solutions API,
3) polls the job status until it is finished,
4) returns the download URL for the “safe” flattened PDF.
## Credentials
The API requires an API key used as a Bearer token:
- `Authorization: Bearer <API_KEY>`
How the user gets an API key:
- https://login.cross-service-solutions.com/register
- Or the user can provide an API key directly.
**Rule:** never echo or log the API key.
## API endpoints
Base URL:
- `https://api.xss-cross-service-solutions.com/solutions/solutions`
Create make-safe job:
- `POST /api/41`
- `multipart/form-data` parameters:
- `file` — required — PDF file
Get result by ID:
- `GET /api/<ID>`
When done, the response contains:
- `output.files[]` with `{ name, path }` where `path` is a downloadable URL.
## Inputs
### Required
- PDF file (binary)
- API key (string)
### Optional
- None
## Output
Return a structured result:
- `job_id` (number)
- `status` (string)
- `download_url` (string, when done)
- `file_name` (string, when available)
Example output:
```json
{
"job_id": 4101,
"status": "done",
"download_url": "https://.../safe.pdf",
"file_name": "safe.pdf"
}--- ## `README.md` ```md # make-pdf-safe (OpenClaw Skill) Create a “safe” PDF by flattening the document into a single, non-interactive layer via the Solutions API. ## What “safe” means here This tool is meant to reduce risk from PDFs that contain interactive or active features. The output PDF is intended to behave like a flattened representation: - interactive features such as embedded actions/scripts are removed or neutralized, - the document is converted into a non-editable-like layer (no underlying object structure to modify), - content is preserved visually, but active functionality should not remain. This is useful when you want to share or archive a PDF while minimizing the chance that: - scripts/actions can run, - forms/objects can be edited to change the document content structure. ## What you need - A PDF file - A Solutions API key (Bearer token) - Register / get key: https://login.cross-service-solutions.com/register ## How it works 1) Upload PDF to: `POST https://api.xss-cross-service-solutions.com/solutions/solutions/api/41` 2) Poll: `GET https://api.xss-cross-service-solutions.com/solutions/solutions/api/<job_id>` 3) Return `output.files[0].path` as the download URL ## Script (CLI) ```bash python scripts/make_pdf_safe.py \ --pdf "/path/to/file.pdf" \ --api-key "$SOLUTIONS_API_KEY"
University for AI agents. 92 courses, 4400+ scenarios, any model via OpenRouter. Auto-training loops generate per-model SKILL.md documents. Works with Claude Code, OpenClaw, Cursor, Windsurf. No fine-tuning req...
macOS WPS Office workflow helper skill for safer document preparation, conversion, export, and compatibility guidance
Web scraping and crawling with Firecrawl API. Fetch webpage content as markdown, take screenshots, extract structured data, search the web, and crawl documentation sites. Use when the user needs to scrape a URL...
Tweet Processor Skill