<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rulesets/.gitignore, branch main</title>
<subtitle>Claude Code skills, rules, and language bundles
</subtitle>
<id>https://git.cjennings.net/rulesets/atom?h=main</id>
<link rel='self' href='https://git.cjennings.net/rulesets/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/rulesets/'/>
<updated>2026-04-19T20:30:20+00:00</updated>
<entry>
<title>fix(deps): use uv tool install for playwright-py; gitignore node_modules</title>
<updated>2026-04-19T20:30:20+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-04-19T20:30:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/rulesets/commit/?id=3e4cea6709edd16a51d513dd96da91e5aad0be66'/>
<id>urn:sha1:3e4cea6709edd16a51d513dd96da91e5aad0be66</id>
<content type='text'>
Two fixes rolled up:

1. Add .gitignore with **/node_modules/, package-lock.json, Python venv /
   cache artifacts, and OS metadata. Prior make deps run produced a 603-
   file playwright-js/node_modules tree that should never be tracked.

2. Makefile deps target: install playwright-py via `uv tool install
   playwright` instead of `pip install --system`. Earlier attempts with
   pip --user, pip --system, and uv pip --system all failed on externally-
   managed Python (PEP 668 on Arch). `uv tool install` creates an isolated
   venv for the CLI, avoiding the conflict. Chromium browsers are shared
   with the JS side via ~/.cache/ms-playwright — no re-download.

   Also added uv itself to the deps target (was missing).

   Library import (`import playwright`) still requires per-project venv,
   which is the right pattern on externally-managed systems. Deps output
   mentions this explicitly.
</content>
</entry>
</feed>
