take-doc-screenshots
Skill157 starsChanged 5 months agoApache-2.0View on GitHub
Take screenshots of the running pgconsole app for documentation. Use when updating docs with screenshots or adding images to .mdx files.
- Installs packages
In this repository3 other files it gives its agents.
- .claude/claude.mdCLAUDE.md
- pr-bot-reviewsSkill
- refactor-passSkill
The file
We split this skill into the rules it gives an agent
9 rules. About 0 are common, 3 are distinctive, and 6 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈3
Distinctive · estimate
This author's own choices. Worth a look.
6
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 22
Read pgconsole.toml to find the email and password from the first [[users]] entry
- Distinctive: line 23
Call the login API to get a session token:
- Distinctive: line 30
Create a Playwright auth state JSON file:
- Very specific: line 48
Write a Playwright script (.mjs file in the scratchpad directory) that:
- Very specific: line 60
Use page.keyboard.type('SQL here', { delay: 5 }) to type
- Very specific: line 61
Use page.keyboard.press('Control+Space') for autocomplete
- Very specific: line 62
Use page.keyboard.press('Meta+a') to select all before replacing content
- Very specific: line 63
Do NOT try to access cmView from the DOM — it's not exposed
- Distinctive: line 77
After capturing dropdown/modal screenshots, always dismiss with:
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Take Documentation Screenshots
Capture screenshots of the running pgconsole app at http://localhost:5173 for use in documentation.
Prerequisites
- The dev server must be running (
pnpm dev) shot-scrapermust be installed (pipx install shot-scraper && shot-scraper install)cwebpmust be installed (brew install webp)
Authentication
Login credentials are in pgconsole.toml under [[users]]. Use the first user entry.
- Read
pgconsole.tomlto find the email and password from the first[[users]]entry - Call the login API to get a session token:
curl -s -c cookies.txt -X POST http://localhost:5173/api/auth/login \ -H 'Content-Type: application/json' \ -d '{"email":"<email>","password":"<password>"}' - Extract the
pgconsole_tokencookie value from cookies.txt - Create a Playwright auth state JSON file:
{ "cookies": [{ "name": "pgconsole_token", "value": "<token>", "domain": "localhost", "path": "/", "httpOnly": true, "secure": false, "sameSite": "Lax" }], "origins": [] }
Taking Screenshots
Write a Playwright script (.mjs file in the scratchpad directory) that:
- Launches Chromium with
viewport: { width: 1440, height: 900 }(nodeviceScaleFactor— use 1x) - Sets the auth cookie via
context.addCookies() - Navigates to
http://localhost:5173 - Uses Playwright actions (click, type, keyboard) to navigate to the desired state
- Saves screenshots as PNG
CodeMirror Interaction
The SQL editor uses CodeMirror 6. To type into it:
- Click
.cm-contentto focus - Use
page.keyboard.type('SQL here', { delay: 5 })to type - Use
page.keyboard.press('Control+Space')for autocomplete - Use
page.keyboard.press('Meta+a')to select all before replacing content - Do NOT try to access
cmViewfrom the DOM — it's not exposed
UI Navigation
Key buttons to interact with:
buttonwith textSQL— opens a new query tabbuttonwith textRun— executes the querybuttonwith textFormat— opens format dropdownbuttonwith textQuick SQL— opens quick SQL dropdownbuttonwith textProcesses— opens processes modal- Right-click on
.cm-contentfor context menu
Dismissing Overlays
After capturing dropdown/modal screenshots, always dismiss with:
await page.keyboard.press('Escape');
await page.waitForTimeout(500);An open overlay blocks clicks on other elements.
Image Processing
- Convert PNGs to WebP:
cwebp -q 90 input.png -o output.webp - Store in
docs/images/features/<feature-name>/(matchingdocs/features/<feature-name>.mdx) - Reference in MDX as
 - Clean up temporary PNG files after conversion
Image Convention
- Format: WebP (
.webp), quality 90 - Dimensions: 1440x900 (1x resolution)
- Location:
docs/images/mirroring thedocs/structure - Naming:
<feature>-<description>.webp(e.g.,sql-editor-autocomplete.webp) - Alt text: brief description of what the screenshot shows
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

