{
  "slug": "bw-dev",
  "name": "BW Dev",
  "version": "1.0.1",
  "download_url": "https://plugins.bowden.works/wp-content/uploads/plugin-updates/bw-dev-1.0.1.zip",
  "download_hash": "sha256:0ded8a19b0fa0a3a234b1513a345df267f81c157e5b5cfc4e5f1071f9a397fe1",
  "download_size": 348059,
  "requires": "6.0",
  "tested": "",
  "requires_php": "7.4",
  "last_updated": "2026-05-14",
  "homepage": "https://plugins.bowden.works/bw-dev/",
  "author": "Bowden Works",
  "description": "Bowden Works dev toolkit — admin columns, favicon, sticky elements, post-link blocks, YouTube embed, menu visibility, SVG uploads, admin notes, and Flywheel auto-update support in one actively-maintained plugin. Required for several site features. See Settings → BW Dev → About.",
  "changelog": "## [1.0.1] - 2026-05-14\n\n### Fixed\n- **ABSPATH-guard scanner warnings.** Moved `defined( 'ABSPATH' ) || exit;` to sit immediately after `<?php` (before the file-level docblock) in 13 files where a long docblock pushed the guard past `tools/test-plugin.sh`'s 20-line scan window. Files: `includes/class-bw-dev-brand.php` plus modules `admin_note`, `security_hardening`, `svg_upload`, `title_override`, `login_log`, `hide_login`, `separator`, `established_year`, `vendors`, `llms_txt`, `menu_visibility`, `youtube`. No functional change — the guard was always present, just past the scanner's window. Matches the literal convention in `docs/CLAUDE-STANDARDS.md` (\"Every PHP file starts with: `<?php` then `defined( 'ABSPATH' ) || exit;`\")."
}
