Install
openclaw skills install user-guide-automationReusable workflow for generating formal, detailed Markdown user guides from web applications using browser exploration or user-provided flows. Uses screenshots for every step and keeps the structure DOCX-ready.
openclaw skills install user-guide-automationUse this skill when the user wants to create a formal, detailed user guide from a web application, especially when the output must be a Markdown document ready for later DOCX conversion.
This workflow is based on browser exploration, not source-code inspection. The guide is built from what the web app shows in a live browser session:
browser_snapshot()browser_vision()browser_click(), browser_type(), browser_scroll(), and browser_press()browser_console() when neededIf the user provides a flow, follow that flow exactly. If the user does not provide a flow, explore the web app and infer the main user journey.
This skill currently supports one output mode:
When a reference document is provided (for example a PDF user guide), extract its structural pattern first and turn it into a reusable Markdown blueprint before writing the actual guide. Preserve:
The default file naming convention is:
guide.md for the main documentscreenshots/ for evidence assetsscreenshots/When the user runs /user-guide-automation, ask for the minimum required information in a copy-ready format:
Optional but recommended:
Rules:
Collect or confirm:
screenshots/ inside the output folder)If the user did not provide a flow, proceed with exploration.
When the user provides only a top-level output folder, create this structure:
{output_dir}/
├── guide.md
├── screenshots/
│ ├── dashboard/
│ ├── ai-characters/
│ └── ...
└── references/
Use one subfolder per feature, page group, or workflow stage so screenshots stay organized. Use lowercase kebab-case folder names when possible.
Open the app and identify the real user journey. Use the browser tools in this order whenever useful:
browser_navigate(url=...)browser_snapshot()browser_vision(question=..., annotate=true)browser_click(ref=...)browser_type(ref=..., text=...)browser_scroll(direction=...)browser_press(key=...)browser_console(clear=true) after navigation or significant interactionFor pages with animations, lazy loading, or scroll-revealed content, do not judge a section from one viewport alone. Scroll in small increments, pause briefly, then re-check with browser_snapshot() and/or browser_vision() before deciding content is missing or empty.
During exploration, collect only the UI details needed for the guide:
Do not over-extract text. Keep it lean.
Create a step list that matches the real interaction sequence. If a user flow exists, preserve the provided order. If not, infer a practical order from the app UI.
Each step should include:
For sprint-1 Markdown drafts, organize the step list into document-like sections first, then steps. Use the same top-level section order that a DOCX template would later expect, so the MD stays conversion-friendly.
Take screenshots for all steps, including intermediate ones. Use screenshots as instruction illustrations, not as bug evidence.
If a step changes the page state, capture the new state immediately.
Practical lesson: when the workflow includes login, capture a dedicated login screenshot before entering the protected area. Do not reuse a later dashboard screenshot as evidence for the login step; keep the login step, post-login dashboard, and feature page as separate screenshots so the guide stays clear and accurate.
Write formal Indonesian. Preferred structure:
Keep wording instructional and neutral. Avoid QA language such as severity, issue, or defect.
If a template or blueprint is provided:
If the structure is blank:
Check that:
Use the user’s flow when:
Use exploration when:
browser_snapshot() for structure and refsbrowser_vision() only when layout or visuals matterDogfood is QA-oriented and looks for bugs. This skill is documentation-oriented and looks for user actions.
Shared pieces borrowed from dogfood:
Differences from dogfood:
.mdWhen the user wants a DOCX-like structure in Markdown first:
Before finishing, confirm: