playwright-cdplisted
Install: claude install-skill xtieume/testcase
# Playwright CDP
## Overview
Read Notion pages and Slack threads into local markdown, by calling each service's own web API from inside a browser that is already logged in.
Core principle: **do not scrape the DOM, and do not copy a browser profile.** Attach over the Chrome DevTools Protocol (CDP) to a browser this skill owns, then call the same endpoints the web app itself calls.
For GitHub there is nothing to build: `gh pr view <n> --json body,comments,reviews` and `gh api repos/<repo>/pulls/<n>/comments` already return everything, with credentials `gh` holds. Use those directly.
Reading is the main job and touches nothing: those endpoints only fetch data or produce a download. **`slack-post.mjs` is the one exception — it writes.** See *Posting to Slack* below before using it.
## What comes out
The same shape for both sources, per document:
```
<out>/
<Name>.md # body
<Name>.comments.md # every comment, numbered #1..#n, anchored <a id="c-n">
assets/<Name>/ # attachments, downloaded
```
The reason for that shape, and the thing to preserve in any new extractor:
- **Comments are half the requirement.** Scope changes, the answer to an open question and the final formula are decided in comments, not in the body. Notion's own export drops them entirely.
- **A commented item in the body carries `> 💬 n comment → [#a–#b](<Name>.comments.md#c-a)`**, so a claim can be walked back to the comment that decided it.
- **Everything deep-links back**: Notio