claude up some atproto stuff
9
fork

Configure Feed

Select the types of activity you want to include in your feed.

wisp skill: precise rewriter explanation from source code

the html-rewriter.ts regex-matches attribute names (src, href, action,
data, poster, srcset) with \b word boundaries across the entire HTML
string — it doesn't exclude <script> tags. any JS variable named
`data`, `src`, etc. followed by `=` gets rewritten as a path.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

zzstoatzz 40887433 7d42f33f

+1 -1
+1 -1
skills/wisp/SKILL.md
··· 25 25 26 26 - **Frameworks must use relative paths.** Absolute paths like `/_app/...` will break. 27 27 - **SvelteKit**: set `paths.relative = true` in `svelte.config.js`. Avoid SPA fallback — prerender instead. 28 - - **Wisp's path rewriter is aggressive** — it rewrites paths inside inline `<script>` tags too, not just HTML attributes. For example, `const data = await res.json()` can be mangled into `const data=/did:plc:.../site-name/await res.json()` because the rewriter interprets `= /...` as a relative path assignment. **Always use external `.js` files instead of inline scripts.** 28 + - **Wisp's path rewriter runs on the entire HTML string**, not just HTML tags. It regex-matches the attribute names `src`, `href`, `action`, `data`, `poster`, `srcset` using `\b` word boundaries, then rewrites the value. This means JS variables with those names get mangled — e.g. `const data = await res.json()` becomes `const data=/did:plc:.../site/await res.json()`. **Always use external `.js` files instead of inline scripts.** 29 29 - When in doubt, prerender everything, use relative paths, and keep JS in external files. 30 30 31 31 ## domains