← 返回 Skills 市场
wangzhiming1999

Doc Snapshot Agent

作者 wangzhiming · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ⚠ suspicious
114
总下载
0
收藏
0
当前安装
1
版本数
在 OpenClaw 中安装
/install doc-snapshot-agent
功能描述
Automatically illustrate Markdown documents by turning image markers into screenshots or generated images, then writing an image-enriched Markdown output. Us...
使用说明 (SKILL.md)

\r \r

Doc Snapshot Agent\r

\r doc-snapshot-agent is a single entry-point skill for automatically adding images to Markdown documents.\r \r It supports:\r

  • browser screenshots for product pages, dashboards, docs sites, and web apps\r
  • AI-generated images for conceptual illustrations\r
  • incremental reruns and partial regeneration\r
  • semantic placement of images into the correct paragraph or section\r
  • structured output directories for reusable assets and final Markdown\r \r This package is intentionally published as one main skill plus supporting reference documents:\r
  • {baseDir}/references/browser-automation.md\r
  • {baseDir}/references/playwright-mcp.md\r
  • {baseDir}/references/site-explorer.md\r
  • {baseDir}/references/image-generation.md\r \r Load this skill whenever the user asks to:\r
  • add images to a Markdown article\r
  • process a case file with image markers\r
  • capture screenshots for documentation\r
  • generate article visuals and insert them into a document\r
  • rerun or fix image placement in an already processed document\r \r

What This Skill Produces\r

\r Input:\r

  • a Markdown document containing image markers and optionally an Image Summary table\r \r Output:\r
  • captured screenshots in a raw folder\r
  • final image assets ready for Markdown references\r
  • a generated README with image metadata\r
  • an illustrated Markdown file with image markers replaced by real image references\r \r

Project Root\r

\r All input, output, and cache paths are relative to a single project root directory ({project-root}).\r \r At the very beginning of every run, ask the user which directory to use as the project root. If the user declines or says they have no preference, default to /tmp/doc-snapshot-agent.\r \r Once confirmed, all subsequent paths in this skill (cases/, output/, .cache/, etc.) resolve under {project-root}/.\r \r

Recommended Directory Layout\r

\r

{project-root}/\r
├── cases/\r
│   └── {article-id}.md\r
├── output/\r
│   ├── {article-id}/\r
│   │   ├── raw/\r
│   │   │   ├── A1_example.png\r
│   │   │   └── A2_example.png\r
│   │   ├── A1_example.png\r
│   │   ├── A2_example.png\r
│   │   └── README.md\r
│   └── markdowns/\r
│       └── {article-id}.md\r
└── .cache/\r
    └── screenshots/\r
        └── {article-id}/\r
```\r
\r
Conventions:\r
- `{project-root}/cases/` stores the source Markdown file.\r
- `{project-root}/output/{article-id}/raw/` stores original browser screenshots and should never be overwritten by later processing.\r
- `{project-root}/output/{article-id}/` stores final images referenced by Markdown.\r
- `{project-root}/output/markdowns/` stores the final illustrated Markdown.\r
- `{project-root}/.cache/screenshots/` stores reusable screenshot cache entries.\r
\r
If the user specifies a different layout, follow the user instruction instead.\r
\r
## Credentials\r
\r
Some sites require authentication before the requested screenshot can be captured.\r
\r
Read website credentials from environment variables using this pattern:\r
\r
```text\r
PLAYWRIGHT_CRED_{SERVICE}_{FIELD}\r
```\r
\r
Examples:\r
- `PLAYWRIGHT_CRED_FELO_EMAIL`\r
- `PLAYWRIGHT_CRED_FELO_PASSWORD`\r
\r
Rules:\r
- read credentials from the environment instead of hardcoding them\r
- never print secrets back to the user\r
- if credentials are missing, tell the user which variable names are required\r
- if the workflow reaches a login, signup, registration, invite, verification, or onboarding gate that needs user-specific information, stop and ask the user how to proceed\r
- do not create new accounts, accept invitations, solve email verification, or invent profile information without explicit user input\r
- after the user provides credentials or instructions, continue from the interrupted step instead of restarting the whole run unless the user asks for a fresh run\r
\r
## Supported Marker Formats\r
\r
This skill must support both inline markers and summary tables.\r
\r
### Format A: Heading-Based Screenshot Marker\r
\r
```markdown\r
### 📷 Screenshot: {marker-id} ({filename})\r
Use: {why this screenshot exists}\r
Processing: {post-processing instruction}\r
Difference: {optional distinction from similar screenshots}\r
```\r
\r
Fields:\r
- `marker-id`: unique screenshot identifier such as `A1`, `B3-1`, or `D3`\r
- `filename`: base filename without the marker prefix\r
- `Use`: what the screenshot should communicate\r
- `Processing`: crop, resize, or other post-processing needs\r
- `Difference`: optional explanation for how this screenshot differs from similar ones\r
\r
### Format B: HTML Comment Image Marker\r
\r
Screenshot:\r
\r
```markdown\r
\x3C!-- IMAGE: screenshot (https://example.com/app)\r
Description: Workspace dashboard showing project activity and team sidebar\r
Filename: workspace-dashboard.png\r
-->\r
```\r
\r
Generated image:\r
\r
```markdown\r
\x3C!-- IMAGE: generated\r
Description: Editorial illustration of a collaborative AI workflow with folders and browser windows\r
Filename: ai-workflow-hero.png\r
-->\r
```\r
\r
### Image Summary Table\r
\r
A document may end with a summary table listing all required images:\r
\r
```markdown\r
## Image Summary\r
\r
| # | Type | Description | Filename |\r
|---|------|-------------|----------|\r
| 1 | generated | Description... | `hero.png` |\r
| 2 | screenshot | Description... | `dashboard.png` |\r
```\r
\r
Important:\r
- the summary table is the complete inventory of requested images\r
- some images may also appear as inline markers in the body\r
- some images may exist only in the summary table and must be placed intelligently during output generation\r
\r
## Incremental Execution and Resume Behavior\r
\r
Do not assume the workflow always starts from zero. Before doing any work, inspect the article state and continue from the right step.\r
\r
### Check Existing Artifacts\r
\r
For a given article id, inspect:\r
- `{project-root}/output/{article-id}/raw/*.png`\r
- `{project-root}/output/{article-id}/*.png`\r
- `{project-root}/output/{article-id}/README.md`\r
- `{project-root}/output/markdowns/{article-id}.md`\r
- `{project-root}/.cache/screenshots/{article-id}/`\r
\r
### Decision Rules\r
\r
- **New article**: nothing exists -> run the full workflow.\r
- **Screenshots exist but Markdown does not**: skip screenshot capture and rebuild only the Markdown and README.\r
- **Markdown exists and the user asks for fixes**: reparse the source document and rebuild image placement without recapturing images.\r
- **Some screenshots are missing**: capture only the missing ones, then continue.\r
- **The user asks to recapture specific images**: regenerate only those images, then rebuild the Markdown.\r
- **The user asks to start over**: ignore caches and rebuild everything from scratch.\r
\r
### Core Principles\r
\r
- default to incremental work\r
- reuse screenshots whenever possible\r
- treat Markdown regeneration as cheap and browser work as expensive\r
- tell the user what will be skipped and what will be rerun\r
\r
## Workflow\r
\r
### Step 0: Verify Playwright MCP Server (MANDATORY)\r
\r
**This check MUST run at the start of EVERY execution, not just the first time.**\r
\r
Before any other work, verify that the Playwright MCP server is properly configured and running:\r
\r
1. **Check for Playwright MCP tools availability**\r
   - Attempt to list or detect tools with the `mcp__playwright__` prefix\r
   - Required tools include: `mcp__playwright__browser_navigate`, `mcp__playwright__browser_snapshot`, `mcp__playwright__browser_screenshot`\r
\r
2. **If tools are NOT detected, STOP immediately and guide the user to install:**\r
\r
   Detect the current client environment and show the matching installation command:\r
\r
   **Claude Code**\r
   ```bash\r
   claude mcp add playwright -- npx @playwright/mcp@latest\r
   ```\r
\r
   **Codex**\r
   ```bash\r
   codex mcp add playwright -- npx @playwright/mcp@latest\r
   ```\r
\r
   **VS Code / Cursor / Kiro (IDE with MCP settings UI)**\r
\r
   Add to the MCP settings JSON (e.g. `.vscode/mcp.json`, `.cursor/mcp.json`, `.kiro/settings/mcp.json`):\r
   ```json\r
   {\r
     "mcpServers": {\r
       "playwright": {\r
         "command": "npx",\r
         "args": ["@playwright/mcp@latest"]\r
       }\r
     }\r
   }\r
   ```\r
\r
   **Claude Desktop**\r
\r
   Add to `claude_desktop_config.json`:\r
   ```json\r
   {\r
     "mcpServers": {\r
       "playwright": {\r
         "command": "npx",\r
         "args": ["@playwright/mcp@latest"]\r
       }\r
     }\r
   }\r
   ```\r
\r
   **Standalone MCP Server (headless environments or worker processes)**\r
   ```bash\r
   npx @playwright/mcp@latest --port 8931\r
   ```\r
   Then point the client config to:\r
   ```json\r
   {\r
     "mcpServers": {\r
       "playwright": {\r
         "url": "http://localhost:8931/mcp"\r
       }\r
     }\r
   }\r
   ```\r
\r
   **Grant Tool Permissions (Claude Code / Codex)**\r
   ```json\r
   {\r
     "permissions": {\r
       "allow": ["mcp__playwright__*"]\r
     }\r
   }\r
   ```\r
\r
3. **Ask the user to configure and restart the session**\r
4. **Do NOT proceed to Step 1 until this check passes**\r
\r
### Step 0.5: Confirm the Project Root\r
\r
After verifying Playwright MCP, ask the user:\r
\r
> Which directory should I use as the project root for this run?\r
\r
- If the user provides a path, use it as `{project-root}`.\r
- If the user says "no preference", skips the question, or does not answer, use `/tmp/doc-snapshot-agent`.\r
\r
Create the directory if it does not exist. All subsequent paths (`cases/`, `output/`, `.cache/`, `scripts/`, `references/`) resolve under `{project-root}/`.\r
\r
### Step 1: Parse the Document and Build the Image Inventory\r
\r
Read the source Markdown and merge image requirements from three sources:\r
\r
1. inline heading-based screenshot markers\r
2. inline `\x3C!-- IMAGE: ... -->` markers\r
3. the `Image Summary` table\r
\r
For each image, record:\r
- type: `screenshot` or `generated`\r
- filename\r
- marker id if present\r
- description or purpose text\r
- source URL if present\r
- post-processing instruction if present\r
- exact location in the Markdown when there is an inline marker\r
- whether the image still needs semantic placement\r
\r
Also detect the target website or websites mentioned by the article.\r
\r
### Step 2: Prepare the Environment\r
\r
- ensure output directories exist\r
- check screenshot cache for reusable images\r
- load credentials from environment variables\r
- **confirm Playwright MCP tools are available** — this skill REQUIRES Playwright MCP for all browser interactions\r
- if Playwright MCP tools are not detected, stop and ask the user to configure the MCP server (see First-Time Setup Guide)\r
- review `{project-root}/references/playwright-mcp.md` before interacting with the site\r
- if the Chromium browser runtime is not installed, run `npx playwright install chromium` before continuing\r
- if the target flow requires login or registration and the required credentials or account details are not already available, pause and ask the user before taking any account-specific action\r
\r
**CRITICAL: Browser Tool Requirement**\r
\r
This skill uses **only** Playwright MCP tools for browser automation. Do NOT use:\r
- direct Playwright library calls\r
- generic browser navigation tools that are not part of the Playwright MCP server\r
- any tool that does not have the `mcp__playwright__*` prefix\r
\r
All browser interactions must go through the Playwright MCP server tools:\r
- `mcp__playwright__browser_navigate`\r
- `mcp__playwright__browser_snapshot`\r
- `mcp__playwright__browser_screenshot`\r
- `mcp__playwright__browser_click`\r
- `mcp__playwright__browser_fill_form`\r
- etc.\r
\r
If these tools are not available in the current runtime, the workflow cannot proceed. Ask the user to configure the Playwright MCP server first.\r
\r
### Step 2.5: Understand the Target Website Before Taking Screenshots\r
\r
Bad screenshots usually come from navigating to the wrong page, not from using the wrong screenshot command.\r
\r
Before capturing anything:\r
\r
1. Check whether site knowledge already exists under:\r
   - `$IMAGE_AGENT_SITE_KNOWLEDGE_DIR/`\r
   - `$IMAGE_AGENT_SITE_LEARNING_DIR/`\r
\r
2. Derive a stable `site-key` from the domain name:\r
   - `memclaw.me` -> `memclaw`\r
   - `app.felo.ai` -> `felo`\r
\r
3. If `{site-key}.md` exists and is recent, read it before browsing.\r
\r
4. If site knowledge is missing or stale, perform a structured site exploration and save the findings into the site knowledge files. See `{project-root}/references/site-explorer.md`.\r
\r
5. Map every screenshot description to a specific page or state.\r
\r
Common mapping mistakes:\r
- taking a marketing homepage when the document actually asks for an authenticated workspace\r
- taking a broad landing page when the description clearly asks for a specific panel or feature\r
- ignoring keywords like `dashboard`, `session history`, `team members`, or `invite`\r
\r
6. Write a screenshot navigation plan for each image:\r
- target URL or click path\r
- key elements that must be visible\r
- whether scrolling, expanding, or tab switching is required\r
\r
7. If new knowledge is discovered while browsing, append it to the site knowledge files so future runs do not repeat the same mistakes.\r
\r
### Step 3: Capture Browser Screenshots\r
\r
Use the browser automation reference in `{project-root}/references/browser-automation.md`.\r
\r
If Playwright MCP is available, also use `{project-root}/references/playwright-mcp.md` as the concrete execution guide for:\r
- opening pages\r
- reading the accessibility snapshot before acting\r
- filling login forms\r
- waiting for UI state changes\r
- taking viewport, element, or full-page screenshots\r
- checking console and network output when a page behaves unexpectedly\r
\r
Typical flow:\r
- open the target website\r
- log in if required\r
- navigate to the correct page or state for each screenshot\r
- wait for key content to load\r
- resize the viewport if needed\r
- save screenshots to `{project-root}/output/{article-id}/raw/`\r
\r
Naming rule:\r
- if a marker id exists, save as `{marker-id}_{filename}`\r
- otherwise use the original filename\r
\r
Example:\r
- `A1_workspace-dashboard.png`\r
\r
After taking each screenshot, verify that the captured image actually matches the description. Do not rely only on DOM text. Visual layout, modals, loading states, overlays, and empty panels must be checked against the real screenshot file.\r
\r
### Step 4: Post-Process Screenshots\r
\r
Apply the requested processing instructions if present.\r
\r
Typical operations:\r
- crop\r
- resize\r
- aspect-ratio adjustment\r
- copy from `raw/` into the final output directory\r
\r
Principle:\r
- `raw/` keeps untouched originals\r
- final images in `{project-root}/output/{article-id}/` are the assets referenced by Markdown\r
\r
### Step 5: Generate the Illustrated Markdown\r
\r
This step has two jobs:\r
- replace inline markers exactly where they appear\r
- place unanchored images from the summary table into the most relevant paragraph\r
\r
#### 1. Replace Inline Markers In Place\r
\r
Heading marker example:\r
\r
```markdown\r
### 📷 Screenshot: A1 (workspace-dashboard.png)\r
Use: Show the authenticated workspace homepage\r
Processing: Full-width screenshot\r
```\r
\r
becomes:\r
\r
```markdown\r
![Authenticated workspace homepage](../{article-id}/A1_workspace-dashboard.png)\r
```\r
\r
HTML comment marker example:\r
\r
```markdown\r
\x3C!-- IMAGE: screenshot (https://example.com/app)\r
Description: Workspace dashboard showing Architecture Decisions\r
Filename: architecture-decisions.png\r
-->\r
```\r
\r
becomes:\r
\r
```markdown\r
![Workspace dashboard showing Architecture Decisions](../{article-id}/architecture-decisions.png)\r
```\r
\r
#### 2. Semantically Place Images Without Inline Markers\r
\r
For images that appear only in the `Image Summary` table:\r
- read the image description carefully\r
- extract its important keywords and concepts\r
- search the document body paragraph by paragraph\r
- find the paragraph that discusses the same concept most directly\r
- insert the image immediately after that paragraph, not just at the end of a broad section\r
\r
Common mistakes:\r
- appending all leftover images to the end of the article\r
- placing an image at the end of a high-level section instead of after the exact paragraph that discusses the feature\r
- using only section headings instead of reading paragraph content\r
\r
Example:\r
- if the description says `Share panel showing team members and invite controls`, prefer the paragraph that mentions inviting teammates rather than the end of a general onboarding section\r
\r
#### 3. Handle Generated Images\r
\r
For `generated` images, use the image-generation reference in `{project-root}/references/image-generation.md` and the bundled script in `{project-root}/scripts/generate_image.py`.\r
\r
If generation succeeds, insert the normal Markdown image reference.\r
If generation fails, insert a warning block:\r
\r
```markdown\r
> Warning: AI image generation failed for {filename}\r
```\r
\r
#### 4. Remove the Image Summary Table\r
\r
The `Image Summary` block is workflow metadata and should not remain in the final illustrated Markdown.\r
\r
### Step 6: Write the README Inventory\r
\r
Create `{project-root}/output/{article-id}/README.md` with metadata such as:\r
- article id or title\r
- completion timestamp\r
- image list\r
- mapping from marker ids to filenames\r
- dimensions\r
- post-processing notes\r
- unfinished or failed items\r
\r
Suggested format:\r
\r
```markdown\r
# {article-id} Illustration Output\r
\r
Article: {title}\r
Completed: {timestamp}\r
\r
## Image Inventory\r
\r
| Filename | Marker | Description | Size | Processing |\r
|----------|--------|-------------|------|------------|\r
| A1_example.png | A1 | Workspace dashboard | 1200x800 | resized |\r
\r
## Notes\r
\r
- Credentials source: environment variables\r
- Additional comments\r
\r
## Remaining Work\r
\r
- [ ] Any missing screenshot or failed generated image\r
```\r
\r
## Cache Policy\r
\r
Use a simple file-based screenshot cache:\r
- cache directory: `{project-root}/.cache/screenshots/{article-id}/`\r
- cache key: screenshot filename\r
- if a matching cache file exists and the user did not ask for a refresh, reuse it\r
- if the user explicitly asks to recapture or refresh, ignore cache entries\r
\r
## Special Cases\r
\r
### Generated Images\r
\r
When an image type is `generated`, do not mark it as missing by default. Generate it.\r
\r
Prerequisites:\r
- `OPENROUTER_API_KEY` is available\r
- Python `requests` is installed\r
\r
Default command:\r
\r
```bash\r
python {project-root}/scripts/generate_image.py "{description}" -o "{project-root}/output/{article-id}/{filename}"\r
```\r
\r
Use a stronger model for text-heavy images:\r
\r
```bash\r
python {project-root}/scripts/generate_image.py "{description}" -o "{project-root}/output/{article-id}/{filename}" -m google/gemini-3-pro-image-preview\r
```\r
\r
Generation prompt guidance:\r
- include the subject clearly\r
- include visual style if the document suggests one\r
- mention whether the image is for a technical article, tutorial, or product explainer\r
- mention visible text explicitly if the image needs readable labels\r
\r
Failure handling:\r
- add a warning block into the output Markdown\r
- record the failure in the README remaining-work section\r
- continue the rest of the workflow\r
\r
### Multilingual Documents\r
\r
If the document is language-specific, make sure the captured website matches that language. If the site supports language switching, switch before taking screenshots.\r
\r
### Dynamic Pages\r
\r
Before taking screenshots:\r
- wait for key content to load\r
- close overlays or popups\r
- wait for animations to settle\r
- confirm the page is in the correct state\r
\r
## Output Requirements\r
\r
When this skill finishes, return a concise summary containing:\r
- article id processed\r
- what work was reused versus newly generated\r
- output Markdown path\r
- image output directory\r
- any failed or missing images\r
\r
## Quick Reference\r
\r
```text\r
Project root (ask user, default /tmp/doc-snapshot-agent):\r
  {project-root}/\r
\r
Input:\r
  {project-root}/cases/{article-id}.md\r
\r
Output:\r
  {project-root}/output/{article-id}/raw/*.png\r
  {project-root}/output/{article-id}/*.png\r
  {project-root}/output/{article-id}/README.md\r
  {project-root}/output/markdowns/{article-id}.md\r
\r
Credentials:\r
  PLAYWRIGHT_CRED_{SERVICE}_{FIELD}\r
\r
Cache:\r
  {project-root}/.cache/screenshots/{article-id}/\r
\r
References:\r
  {project-root}/references/browser-automation.md\r
  {project-root}/references/playwright-mcp.md\r
  {project-root}/references/site-explorer.md\r
  {project-root}/references/image-generation.md\r
\r
Bundled script:\r
  {project-root}/scripts/generate_image.py\r
```\r
安全使用建议
This skill appears to implement the advertised functionality (Playwright MCP-based screenshots and OpenRouter image generation) but the package metadata does not list the runtime credentials and tools it actually relies on. Before installing or running it: - Confirm you trust the OpenRouter provider and understand that prompts (image descriptions) will be sent to https://openrouter.ai; check privacy, retention, and billing policies for any API key you provide. - Do not paste secrets into chat; provide Playwright credentials (PLAYWRIGHT_CRED_{SERVICE}_...) only via secure environment variables or a secrets store, and only if you trust the runtime. - Ensure the runtime has Playwright MCP configured (mcp__playwright__ tools), Python and the 'requests' package for the bundled script, and that you are comfortable with the skill opening websites and inspecting network/console output. - Ask the skill author (or maintainer) to update the registry metadata to explicitly declare required env vars (OPENROUTER_API_KEY, any PLAYWRIGHT_CRED_* patterns), and to document any additional config directories (IMAGE_AGENT_SITE_KNOWLEDGE_DIR). This will resolve the current manifest/instruction mismatch. - If you cannot verify the above, run the skill in an isolated environment (or sandbox) and review generated network logs to confirm no unexpected endpoints are contacted. Given the manifest omissions, treat this package as suspicious (likely correct functionality but sloppy packaging/misdeclared requirements) rather than outright malicious. If you want higher confidence, request an updated package manifest or test in a controlled environment.
功能分析
Type: OpenClaw Skill Name: doc-snapshot-agent Version: 1.0.0 The skill bundle automates documentation illustration using browser screenshots and AI image generation. While the intent appears functional, it utilizes high-risk capabilities including automated browser control via Playwright MCP and the retrieval of sensitive credentials from environment variables (e.g., PLAYWRIGHT_CRED_*). Furthermore, the command-line execution patterns for the bundled Python script (scripts/generate_image.py) described in SKILL.md are susceptible to shell injection if the AI agent processes unsanitized image descriptions or filenames containing shell metacharacters.
能力标签
requires-sensitive-credentials
能力评估
Purpose & Capability
The skill's name and description match the included files: browser-automation references, site-explorer guidance, and a Python script that calls an image API. However, the registry metadata declares no required environment variables or binaries while SKILL.md and the bundled script explicitly expect: OPENROUTER_API_KEY, Playwright MCP browser tools (mcp__playwright__*), and PLAYWRIGHT_CRED_{SERVICE}_{FIELD} environment variables. The omission of these runtime requirements in the manifest is an incoherence — the declared requirements do not match what the skill actually needs to operate.
Instruction Scope
The SKILL.md instructions are generally scoped to document illustration: parse markers, navigate pages via Playwright MCP, capture screenshots, generate images via OpenRouter, and write output under a project root. They also instruct the agent to read credentials from environment variables and to consult/update site knowledge files in external directories ($IMAGE_AGENT_SITE_KNOWLEDGE_DIR / $IMAGE_AGENT_SITE_LEARNING_DIR). These actions are within the claimed purpose but involve accessing environment variables, networked browser tooling, and local knowledge directories outside the skill package — any use of those should be explicitly authorized by the user. The instructions also recommend inspecting console/network activity for debugging, which can surface additional data about the target site.
Install Mechanism
There is no install spec (instruction-only with a bundled Python helper). No remote downloads or obscure URLs are used. The only bundled executable is scripts/generate_image.py which requires the 'requests' Python package and an API key to contact openrouter.ai. This is a low-to-moderate install risk but requires the runtime to have Python and requests available.
Credentials
Functionally, asking for OPENROUTER_API_KEY (for image generation) and PLAYWRIGHT_CRED_{SERVICE}_{FIELD} (for site logins) is reasonable for this skill. However, the skill's registry metadata lists no required env vars, which is inconsistent and misleading. Also, prompt text and image-generation requests are sent to openrouter.ai (the script uses https://openrouter.ai/api/v1/chat/completions), meaning user prompts (the text describing images) will leave the machine and go to a third-party provider — users should be aware of privacy, policy, and billing implications before supplying API keys or sensitive prompts.
Persistence & Privilege
The skill is not forced-always, does not request system-wide configuration changes, and does not modify other skills. It proposes writing site knowledge and output files under a user-chosen project root and .cache directories, which is normal for a disk-based workflow. There are no elevated persistence privileges requested in the manifest.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install doc-snapshot-agent
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /doc-snapshot-agent 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.0
doc-snapshot-agent 1.0.0 - Initial release of doc-snapshot-agent for automated Markdown illustration with screenshots and AI-generated images. - Supports browser screenshots, generated visuals, semantic image placement, and incremental document processing. - Provides a structured directory layout under a configurable project root for all inputs, outputs, and caches. - Reads required website credentials from environment variables for secure handling of authentication. - Detects and processes various image marker formats, including inline markers and summary tables. - Handles incremental execution: skips already completed steps and resumes interrupted workflows seamlessly. - Verifies Playwright MCP tooling on every run before beginning any automation tasks.
元数据
Slug doc-snapshot-agent
版本 1.0.0
许可证 MIT-0
累计安装 0
当前安装数 0
历史版本数 1
常见问题

Doc Snapshot Agent 是什么?

Automatically illustrate Markdown documents by turning image markers into screenshots or generated images, then writing an image-enriched Markdown output. Us... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 114 次。

如何安装 Doc Snapshot Agent?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install doc-snapshot-agent」即可一键安装,无需额外配置。

Doc Snapshot Agent 是免费的吗?

是的,Doc Snapshot Agent 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

Doc Snapshot Agent 支持哪些平台?

Doc Snapshot Agent 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 Doc Snapshot Agent?

由 wangzhiming(@wangzhiming1999)开发并维护,当前版本 v1.0.0。

💬 留言讨论