Token导航 LogoToken导航TokenDH.com
开发敏感数据github未标认证来源可访问许可证需确认审计提醒

slidesslides 演示文稿

Agent Skill

slides 用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要围绕仓库状态、代码变更或协作事项进行整理时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

494

周安装

20

GitHub Stars

3

下载量

155
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:slides(slides 演示文稿)
来源仓库:https://github.com/compilet-dev/agent-skill-layerproof
仓库路径:skills/slides
安装命令:
npx skills add https://github.com/compilet-dev/agent-skill-layerproof --skill slides
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/compilet-dev/agent-skill-layerproof --skill slides

简介

slides 修改 Layerproof 平台生成的幻灯片内容。

  • 支持区域裁剪、文本编辑和图片替换等精细化操作。
  • 需指定 projectId 和 slideId,并通过 X-API-KEY 认证访问。
  • 编辑范围受图像边界约束,避免越界导致 API 错误。
  • slides 属于开发类 Skill,可作为该场景下的辅助能力补充。

SKILL.md

Skill: Slide Editing

Description

Modify slides after generation. This skill documents the public API at /api/v2/projects/{projectId}/slides (PublicApiSlideController). All slide endpoints require projectId and slideId in the path. Authenticate with X-API-KEY header.


TypeScript types (request / response)

Mirrors PublicApiSlideController (/api/v2/projects/{projectId}/slides) data classes.

// Shared: cropped region for region-based editing. Must lie fully within image bounds.
// Constraints: x >= 0, y >= 0, width > 0, height > 0; x + width <= image width, y + height <= image height.
type CroppedRegion = {
  x: number;
  y: number;
  width: number;
  height: number;
};

// --- Edit Slide Image (POST) — async, poll jobs ---
type SlideImageEditRequest = {
  /** AI instruction for the edit (required, non-blank) */
  instruction: string;
  /** Path to input image in project working dir (required, non-blank) */
  input_image_path: string;
  /** Optional extra reference image paths */
  other_reference_image_paths?: string[];
  /** Optional region to edit; only this region is modified */
  cropped_region?: CroppedRegion;
};

// --- Accept Image Edit (POST) ---
type AcceptImageEditRequest = {
  live_object_id: string;   // UUID from image-edit or object-removal response (required)
  target_node_id?: string;
  override_image_path?: string;  // Optional path to use instead of workflow output
};

// --- Revert Slide (POST) ---
type RevertSlideRequest = {
  history_entry_id: string;  // UUID from slide history (required)
  node_id?: string;
};

// --- Object Removal (POST) — async, poll jobs ---
type ObjectRemovalRequest = {
  input_image_path: string;  // required, non-blank
  mask_path?: string;
  cropped_region?: CroppedRegion;
};

// --- Extract Text (POST) — async, poll jobs ---
type ExtractTextRequest = {
  node_id?: string;
  node_image_path?: string;
};

// --- Save Konva Nodes (PUT) ---
type SaveKonvaNodesRequest = {
  konva_nodes: Record<string, unknown>;  // required
  konva_order: string[];                  // required
  base_snapshot_id?: string;  // UUID, optional
};

// --- Responses ---
type TriggerWorkflowResponse = {
  activity_id: string;   // UUID – poll GET /api/v2/jobs/{activityId}
  workflow_type: string;
  live_object_id: string; // UUID – pass to accept-image-edit when done
};

type AcceptImageEditResponse = {
  id: string;             // slide UUID
  slide_section_id: string;
  image_path: string | null;
  status: string;
};

Edit Slide Image (async)

Request body: SlideImageEditRequest. Response: TriggerWorkflowResponse.

Triggers AI-powered slide image editing. Upload input image first, then call with instruction and input_image_path. Poll GET /api/v2/jobs/{activityId} for status; when DONE, call accept-image-edit with live_object_id.

curl -X POST "$LAYERPROOF_BASE_URL/api/v2/projects/<project_id>/slides/<slide_id>/image-edit" \
  -H "Content-Type: application/json" \
  -H "X-API-KEY: $LAYERPROOF_API_KEY" \
  -d '{"instruction":"Make the background blue","input_image_path":"/slides/slide-1.png"}'

With optional region and reference images:

curl -X POST "$LAYERPROOF_BASE_URL/api/v2/projects/<project_id>/slides/<slide_id>/image-edit" \
  -H "Content-Type: application/json" \
  -H "X-API-KEY: $LAYERPROOF_API_KEY" \
  -d '{"instruction":"Replace this area","input_image_path":"/slides/slide-1.png","cropped_region":{"x":0,"y":0,"width":200,"height":100},"other_reference_image_paths":["/ref.png"]}'

Accept Image Edit

Request body: AcceptImageEditRequest. Response: AcceptImageEditResponse.

Call after the image-edit or object-removal workflow completes successfully. Use live_object_id from the trigger response.

curl -X POST "$LAYERPROOF_BASE_URL/api/v2/projects/<project_id>/slides/<slide_id>/accept-image-edit" \
  -H "Content-Type: application/json" \
  -H "X-API-KEY: $LAYERPROOF_API_KEY" \
  -d '{"live_object_id":"<live_object_uuid>"}'

Revert Slide

Request body: RevertSlideRequest. Response: AcceptImageEditResponse.

Reverts the slide to a previous version using history_entry_id from slide history.

curl -X POST "$LAYERPROOF_BASE_URL/api/v2/projects/<project_id>/slides/<slide_id>/revert" \
  -H "Content-Type: application/json" \
  -H "X-API-KEY: $LAYERPROOF_API_KEY" \
  -d '{"history_entry_id":"<history_entry_uuid>"}'

Remove Objects (async)

Request body: ObjectRemovalRequest. Response: TriggerWorkflowResponse.

Triggers AI-powered object removal. Optional mask_path for mask-based removal. Poll jobs; when DONE, call accept-image-edit with live_object_id.

curl -X POST "$LAYERPROOF_BASE_URL/api/v2/projects/<project_id>/slides/<slide_id>/object-removal" \
  -H "Content-Type: application/json" \
  -H "X-API-KEY: $LAYERPROOF_API_KEY" \
  -d '{"input_image_path":"/slides/slide-1.png"}'

With mask:

curl -X POST "$LAYERPROOF_BASE_URL/api/v2/projects/<project_id>/slides/<slide_id>/object-removal" \
  -H "Content-Type: application/json" \
  -H "X-API-KEY: $LAYERPROOF_API_KEY" \
  -d '{"input_image_path":"/slides/slide-1.png","mask_path":"/masks/mask.png"}'

Extract Text (async)

Request body: ExtractTextRequest (optional). Response: TriggerWorkflowResponse.

Performs OCR, removes text from image via inpainting, creates editable Konva text nodes. Poll GET /api/v2/jobs/{activityId} for status.

curl -X POST "$LAYERPROOF_BASE_URL/api/v2/projects/<project_id>/slides/<slide_id>/extract-text" \
  -H "Content-Type: application/json" \
  -H "X-API-KEY: $LAYERPROOF_API_KEY" \
  -d '{}'

With optional node:

curl -X POST "$LAYERPROOF_BASE_URL/api/v2/projects/<project_id>/slides/<slide_id>/extract-text" \
  -H "Content-Type: application/json" \
  -H "X-API-KEY: $LAYERPROOF_API_KEY" \
  -d '{"node_id":"node-1","node_image_path":"/nodes/node1.png"}'

Save Konva Nodes

Request body: SaveKonvaNodesRequest. Response: 200, no body.

Persists Konva canvas nodes and order (positions, layer order, flattened image path).

curl -X PUT "$LAYERPROOF_BASE_URL/api/v2/projects/<project_id>/slides/<slide_id>/konva-nodes" \
  -H "Content-Type: application/json" \
  -H "X-API-KEY: $LAYERPROOF_API_KEY" \
  -d '{"konva_nodes":{},"konva_order":[]}'

Agent behavior

When the user asks to edit slides (image edit, accept edit, revert, remove objects, extract text, save canvas), do the following.

1. Choose the right endpoint

User intentEndpointMethod
Edit slide image with AI instruction/api/v2/projects/{projectId}/slides/{slideId}/image-editPOST
Accept edited image after workflow completes/api/v2/projects/{projectId}/slides/{slideId}/accept-image-editPOST
Revert slide to previous version/api/v2/projects/{projectId}/slides/{slideId}/revertPOST
Remove objects from slide image (AI)/api/v2/projects/{projectId}/slides/{slideId}/object-removalPOST
Extract text from slide (OCR + inpainting)/api/v2/projects/{projectId}/slides/{slideId}/extract-textPOST
Save Konva canvas nodes/order/api/v2/projects/{projectId}/slides/{slideId}/konva-nodesPUT

All paths require projectId and slideId (replace placeholders with actual UUIDs).

2. Build and run the request

Step 1 — Check environment variables first. Before running any curl command, verify both LAYERPROOF_BASE_URL and LAYERPROOF_API_KEY are set on the user's machine:

if [[ -z "${LAYERPROOF_BASE_URL}" ]]; then
  echo "ERROR: LAYERPROOF_BASE_URL is not set."
  return 1
fi
if [[ -z "${LAYERPROOF_API_KEY}" ]]; then
  echo "ERROR: LAYERPROOF_API_KEY is not set."
  return 1
fi

If running from a project directory with a .env.local file, load it first:

if [[ -f .env.local ]]; then
  set -a
  source .env.local
  set +a
fi

Step 2 — Auth: Every request must include X-API-KEY: $LAYERPROOF_API_KEY. Read LAYERPROOF_BASE_URL and LAYERPROOF_API_KEY from the environment; if missing, tell the user to set them. Step 3 — Path: Resolve project_id and slide_id from context (e.g. from project/slide-deck list or user input). If missing, ask the user. Step 4 — POST/PUT: Build JSON body from the types above. Use -X POST or -X PUT, -H "Content-Type: application/json", and -d '...'. Run the curl and show the result.

3. After async endpoints (image-edit, object-removal, extract-text)

  • Response includes activity_id and live_object_id. Tell the user the workflow was started.
  • Suggest polling GET $LAYERPROOF_BASE_URL/api/v2/jobs/<activity_id> until status is DONE or CANCELED.
  • For image-edit and object-removal: when DONE, tell the user to call accept-image-edit with live_object_id to apply the result.

4. Response handling

  • Always show the raw JSON response in a JSON code block; do not convert to a table.
  • If the response contains a URL for an image (e.g. image_path), show the image and the JSON.
  • On error (4xx/5xx), show the response body and status code; suggest fixing API key, projectId/slideId, or request body.

5. Example workflows

Workflow A — User: "Edit slide image in project X, slide Y: make the background darker."

  1. Choose POST /api/v2/projects/{projectId}/slides/{slideId}/image-edit.
  2. Resolve projectId and slideId (from user or ask).
  3. Build body: {"instruction":"Make the background darker","input_image_path":"/path/to/slide/image"} (user may need to provide image path).
  4. Run curl; show JSON. Mention polling jobs with activity_id and calling accept-image-edit with live_object_id when done.

Workflow B — User: "Edit two slides: darker background on slide 1, remove the logo from slide 3; then revert slide 1 if I don’t like it."

  1. Resolve projectId; get slide ids from slide-deck GET deck (e.g. slides[0].id, slides[2].id).
  2. For slide 1: POST .../slides/{slideId1}/image-edit with {"instruction":"Make the background darker"}; capture activity_id_1 and live_object_id_1. For slide 3: POST .../slides/{slideId3}/object-removal with region/instruction; capture activity_id_3 and live_object_id_3.
  3. Poll GET /api/v2/jobs/{activity_id_1} and .../jobs/{activity_id_3} until both DONE. If either fails, report which slide and reason.
  4. POST .../slides/{slideId1}/accept-image-edit with {"live_object_id":"<live_object_id_1>"}; POST .../slides/{slideId3}/accept-image-edit with {"live_object_id":"<live_object_id_3>"}. Show updated slide images (GET deck or slide detail).
  5. If user says "revert slide 1": GET slide history (if available) for slideId1 to get history_entry_id; POST .../slides/{slideId1}/revert with {"history_entry_id":"<id>"}. Confirm with GET deck.

Workflow C — User: "Extract text from slide 2 and replace the old text (OCR + inpainting)."

  1. Resolve projectId and slideId for slide 2. POST .../slides/{slideId}/extract-text (body per API); capture activity_id.
  2. Poll GET /api/v2/jobs/{activity_id} until DONE. When DONE, output may contain extracted text or updated asset reference.
  3. If a follow-up accept or apply step is required (e.g. accept-image-edit), use the returned live_object_id; otherwise show the result (e.g. updated slide or transcript) from GET deck.

Response format (required)

  • (if response contains url to show image) please show image and show json response instead of table
  • Always show the raw JSON response (verbatim) in a JSON code block.
  • If the response contains a URL for an image, render/show the image and also show the JSON response (do not convert to a table).

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

36.66%
按下载量换算57

Claude

30.12%
按下载量换算47

Cursor

18.3%
按下载量换算28

Gemini CLI

10.28%
按下载量换算16

安全审计

Gen Agent Trust Hub

通过

Socket

可疑

Snyk

通过

权限和风险

敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在 warning/failed 结果,不能写成本站确认安全。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills