# BW WebP — Claude Development Guide

**Version:** 0.1.0 | **Last Updated:** 2026-04-30

## What this plugin does

Fast bulk WebP conversion with parallel workers and cwebp binary support.

## Process

This plugin follows the standard BW Plugins process defined in the umbrella `/srv/apps/bw-plugins/CLAUDE.md`. That covers:

- **Versioning** — default bump is patch; minor only for significantly new feature sets; major reserved.
- **Release gating** — never run `tools/release.sh` without an explicit "release it" from rian.
- **Session protocol** — read `docs/SESSION-LOG.md` + `docs/HANDOFF-NOTES.md` at session start, update at session end.
- **Always / Never** lists (escaping, nonces, `defined( 'ABSPATH' ) || exit;`, `vendor/`, secrets, etc.).

Plus full release process in `/srv/apps/bw-plugins/docs/RELEASE-PROCESS.md`.

## Before making changes

1. Read `docs/SESSION-LOG.md` for recent context.
2. Read `docs/HANDOFF-NOTES.md` for any pending async messages.
3. Read `docs/SPEC.md` for current requirements.
4. Check `docs/KNOWN-ISSUES.md` for active bugs and workarounds.

## Architecture Quick Reference

- Main file: `bw-webp.php` (constant `BW_WEBP_VERSION`)
- Core classes: `includes/class-bw-webp-*.php`
- Admin UI: `admin/`
- Frontend assets: `assets/`
- Docs: `docs/`
- Vendored libs: `vendor/`

## Plugin-specific notes

- **External binary dependency:** this plugin shells out to the `cwebp` binary. The presence/version of `cwebp` is an environment concern, not a plugin concern — but flag it in `docs/KNOWN-ISSUES.md` for any host where conversion silently fails.
