Skip to content
Back to skills

layerproof-api

CSecurity

Skill pack for interacting with the Layerproof API including workspaces, projects, slide decks, files, themes, exports, and jobs.

  • 3 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added May 26, 2026
ai-agentsshellbashapi

Works with

  • api

Security analysis

C63/100
  • criticalModifies startup scripts or system services for persistence
  • criticalExfiltrates credentials via HTTP — exact pattern from Snyk ToxicSkills study

Pro scans all 3 files and shows the line behind each finding

Scanned May 27, 2026

npx -y skills add compilet-dev/agent-skill-layerproof --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of layerproof-api?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for layerproof-api
[![Security: C — Skills Directory](https://www.skillsdirectory.com/api/skills/compilet-dev-layerproof-api/badge)](https://www.skillsdirectory.com/skills/compilet-dev-layerproof-api)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---

type: skill-pack
name: layerproof-api
description: Skill pack for interacting with the Layerproof API including workspaces, projects, slide decks, files, themes, exports, and jobs.
author: compilet-dev
version: 1.1.0

includes:

* skills/workspaces/SKILL.md
* skills/projects/SKILL.md
* skills/public-files/SKILL.md
* skills/project-files/SKILL.md
* skills/slide-decks/SKILL.md
* skills/slides/SKILL.md
* skills/themes/SKILL.md
* skills/tones/SKILL.md
* skills/exports/SKILL.md
* skills/social-campaigns/SKILL.md
* skills/jobs/SKILL.md

---

# Layerproof API Skill Pack

> ⚠️ **Skill Pack Manifest**
>
> This file is **NOT a skill**.
>
> It is the **entry point for the Layerproof skill pack**.
>
> Individual skills are located in:
>
> `skills/*/SKILL.md`
>
> AI agents and crawlers should **only index those files as skills**.

---

# Overview

This repository provides a **collection of AI agent skills for the Layerproof API**.

These skills allow AI agents to interact with Layerproof to:

* Manage **workspaces**
* Create and manage **projects**
* Upload **public and project files**
* Generate **slide decks using AI**
* Edit **slides and images**
* Apply **themes**
* **Export** presentations
* Monitor **asynchronous jobs**

Each skill contains structured instructions that teach an AI agent how to interact with the Layerproof API using `curl`.

---

# Required Environment Variables

Before performing any API operations, the agent must verify that these environment variables are set on the user's machine.

## Check before every API call

Always verify the following environment variables exist before making any API request:

```bash
# Check if LAYERPROOF_BASE_URL is set
if [[ -z "${LAYERPROOF_BASE_URL}" ]]; then
  echo "ERROR: LAYERPROOF_BASE_URL is not set."
  echo "Please set it in your shell profile or .env file, then re-run."
  return 1
fi

# Check if LAYERPROOF_API_KEY is set
if [[ -z "${LAYERPROOF_API_KEY}" ]]; then
  echo "ERROR: LAYERPROOF_API_KEY is not set."
  echo "Please set it in your shell profile or .env file, then re-run."
  return 1
fi
```

## Setting environment variables

If not already set, instruct the user to add them:

```bash
echo 'export LAYERPROOF_BASE_URL=https://api.layerproof.com' >> ~/.zshrc
echo 'export LAYERPROOF_API_KEY=your-api-key-here' >> ~/.zshrc
source ~/.zshrc
```

Alternatively, for project-specific settings, create a `.env.local` file in the project root:

```bash
LAYERPROOF_BASE_URL=https://api.layerproof.com
LAYERPROOF_API_KEY=your-api-key-here
```

When using a `.env.local` file, ensure it is loaded before running any curl commands:

```bash
# For zsh, load .env.local if it exists
if [[ -f .env.local ]]; then
  set -a
  source .env.local
  set +a
fi
```

## Authentication header

All API requests must include the following header:

```
X-API-KEY: $LAYERPROOF_API_KEY
```

---

# How Agents Should Use This Skill Pack

When a user asks to perform an operation related to Layerproof:

1. Identify the **resource type** involved.
2. Load the corresponding `skills/<resource>/SKILL.md`.
3. Follow the endpoint definitions in that skill file.
4. Construct a valid `curl` request.
5. Execute the request using the environment variables.
6. Display the **raw JSON response** to the user.

If the response contains image URLs, the agent may render them.

---

# Skill Modules

Each module corresponds to a Layerproof API resource.

| Resource      | Skill File                      | Purpose                             |
| ------------- | ------------------------------- | ----------------------------------- |
| Workspaces    | `skills/workspaces/SKILL.md`    | Manage workspaces                   |
| Projects      | `skills/projects/SKILL.md`      | Create and manage projects          |
| Public Files  | `skills/public-files/SKILL.md`  | Upload reference documents          |
| Project Files | `skills/project-files/SKILL.md` | Manage files inside projects        |
| Slide Decks   | `skills/slide-decks/SKILL.md`   | Generate outlines and slide content |
| Slides        | `skills/slides/SKILL.md`        | Edit slide images and content       |
| Themes        | `skills/themes/SKILL.md`        | Generate and apply visual themes    |
| Tones         | `skills/tones/SKILL.md`         | Tone presets and apply to deck      |
| Exports       | `skills/exports/SKILL.md`       | Export PNG, PPTX, or video          |
| Social campaigns | `skills/social-campaigns/SKILL.md` | Social campaign projects       |
| Jobs          | `skills/jobs/SKILL.md`          | Poll async job status               |

---

# Handling Asynchronous Operations

Many Layerproof API endpoints run asynchronously.

When an API response returns an `activityId`, the agent should:

1. Poll the job status:

```
GET /api/v2/jobs/{activityId}
```

2. Continue polling until:

```
status = DONE
```

3. If `failureReason` exists, report the error.

---

# Typical Agent Workflow

Example workflows (the agent should automatically select the correct skill module for each step).

## Workflow A: Full presentation from scratch (with reference files and theme)

1. **Workspaces** — List workspaces (GET), then create one if needed (POST) or resolve `workspace_id` from list.
2. **Projects** — Create project (POST) with `name`, `project_kind: "SLIDE_DECK"`, optional `workspace_id`; capture `id` and `slide_deck_id`.
3. **Public files** (optional) — If the user provides reference docs: POST `/api/v2/files/prepare` → user PUTs file to `upload_url` → POST `/api/v2/files/confirm` with `s3_key`; collect `s3_key`(s) for outline.
4. **Themes** (optional) — List themes (GET); if user wants a new look: POST `/api/v2/themes/generate` with `prompt` → poll **Jobs** until DONE → note `theme_id`.
5. **Slide decks** — POST `.../outline/generate` with `prompt`, `slide_count`, optional `file_s3_keys`, `language`; capture `activity_id`.
6. **Jobs** — Poll `GET /api/v2/jobs/{activity_id}` until `status` is DONE (or CANCELED); on failure, report `failure_reason`.
7. **Slide decks** — GET deck to read `outline`; optionally PUT `.../outline` to tweak sections (title, sections, key_points, visual_suggestion).
8. **Themes / slide decks** — If a theme was generated, POST `/api/v2/themes/apply` with `slide_deck_id` and `theme_id` (optional `regenerate_slides`). Then POST `.../slides/batch-generate` (optionally with `generation_type`, `aspect_ratio`); capture `activity_id`.
9. **Jobs** — Poll `GET /api/v2/jobs/{activity_id}` until DONE.
10. **Slide decks** — GET deck again; if a single slide needs regeneration, POST `.../slides/{sectionId}/generate-transcript` or `.../generate-image` etc., then poll job.
11. **Slides** (optional) — For a specific slide: POST image-edit or object-removal → poll job → POST accept-image-edit with `live_object_id`.
12. **Exports** — POST `.../projects/{projectId}/exports/pptx`, `.../exports/png`, or `.../exports/video`; capture `export_id`; poll GET `.../exports/{export_id}` until COMPLETED; present `download_url` to user.

## Workflow B: Multi-format export and error handling

1. **Projects** — GET project by ID (or list and pick) to ensure it exists and has `slide_deck_id`.
2. **Slide decks** — GET deck; confirm `metadata.completed_slides` meets expectations before export.
3. **Exports** — Start PNG export (POST `.../exports/png`); get `exportId`. In parallel or after, start PPTX export (POST `.../exports/pptx`); get second `exportId`.
4. **Exports** — Poll each `GET .../exports/{exportId}` until status is COMPLETED or FAILED. If FAILED, show `errorMessage` and suggest retry or check project. When COMPLETED, show `downloadUrl` and `expiresAt`.
5. If user cancels: POST `.../exports/{exportId}/cancel` for in-progress exports.

## Workflow C: Project files and outline with project-scoped assets

1. **Projects** — Create or get project; note `project_id`. Get or create a directory in the project (per project-files API if list directories exists) or use a known `directory_id`.
2. **Project files** — POST prepare with `path`, `file_name`, `mime_type`, `size` → user uploads to `upload_url` → POST confirm with `file_id`. Optionally GET file or download-url to verify.
3. **Slide decks** — Use project’s `slide_deck_id`; generate outline with `file_s3_keys` from project file S3 keys (if API accepts them) or use public files flow and pass `file_s3_keys` from public prepare/confirm.
4. Continue with outline → poll job → update outline → batch generate → poll → export as in Workflow A.

The agent should automatically select the correct skill module for each step and handle polling, error responses, and multi-step dependencies.

---

# Skill Discovery

Agents should load the following files when interacting with Layerproof:

* skills/workspaces/SKILL.md
* skills/projects/SKILL.md
* skills/public-files/SKILL.md
* skills/project-files/SKILL.md
* skills/slide-decks/SKILL.md
* skills/slides/SKILL.md
* skills/themes/SKILL.md
* skills/tones/SKILL.md
* skills/exports/SKILL.md
* skills/social-campaigns/SKILL.md
* skills/jobs/SKILL.md

Each skill file contains:

* API endpoint definitions
* request and response types
* curl examples
* agent decision logic
* response handling rules

---

# Repository Structure

```
agent-skill-layerproof
│
├─ SKILL.md
├─ marketplace.json
├─ README.md
│
└─ skills
   ├─ workspaces
   │   └─ SKILL.md
   ├─ projects
   │   └─ SKILL.md
   ├─ public-files
   │   └─ SKILL.md
   ├─ project-files
   │   └─ SKILL.md
   ├─ slide-decks
   │   └─ SKILL.md
   ├─ slides
   │   └─ SKILL.md
   ├─ themes
   │   └─ SKILL.md
   ├─ tones
   │   └─ SKILL.md
   ├─ exports
   │   └─ SKILL.md
   ├─ social-campaigns
   │   └─ SKILL.md
   └─ jobs
       └─ SKILL.md
```

---

Files in this skill

  • SKILL.md9.7 KB
  • marketplace.json13.4 KB
  • skills/SKILL-DTO-UPDATE-SUMMARY.md2.2 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.