From 60780056bcd731cccedd4f78dfedae1fbc22197e Mon Sep 17 00:00:00 2001 From: DataDave-Dev <153755137+DataDave-Dev@users.noreply.github.com> Date: Thu, 2 Jul 2026 12:04:10 -0600 Subject: [PATCH 1/3] docs: update SECURITY.md supported versions for 1.0 The policy still said becwright is pre-1.0 and supported 'latest 0.x' after the 1.0.0 release. Supported version is now latest 1.x. --- SECURITY.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/SECURITY.md b/SECURITY.md index 9c2b468..f3530c6 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -2,13 +2,13 @@ ## Supported versions -becwright is pre-1.0 and ships fixes on the latest release only. Please make -sure you are on the most recent version before reporting. +becwright ships fixes on the latest release only. Please make sure you are on +the most recent version before reporting. | Version | Supported | | ------- | --------- | -| latest `0.x` | ✅ | -| older `0.x` | ❌ | +| latest `1.x` | ✅ | +| older releases | ❌ | ## Reporting a vulnerability From e4ed8a2746d903d64201ea383af3adb6cd5964c4 Mon Sep 17 00:00:00 2001 From: DataDave-Dev <153755137+DataDave-Dev@users.noreply.github.com> Date: Thu, 2 Jul 2026 12:04:10 -0600 Subject: [PATCH 2/3] docs: add trust badges and pronunciation to the README hero MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add license, npm downloads and Python-versions badges next to CI/npm/PyPI, and surface the bec-wright pronunciation in the hero instead of burying it in the FAQ — the name is a spelling hurdle for anyone who hears it before reading it. Both EN and ES. --- README.es.md | 5 ++++- README.md | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/README.es.md b/README.es.md index da46d68..0362241 100644 --- a/README.es.md +++ b/README.es.md @@ -8,9 +8,12 @@ [![CI](https://github.com/DataDave-Dev/becwright/actions/workflows/ci.yml/badge.svg)](https://github.com/DataDave-Dev/becwright/actions/workflows/ci.yml) [![npm](https://img.shields.io/npm/v/becwright?logo=npm)](https://www.npmjs.com/package/becwright) +[![npm downloads](https://img.shields.io/npm/dm/becwright?logo=npm&label=descargas)](https://www.npmjs.com/package/becwright) [![PyPI](https://img.shields.io/pypi/v/becwright?logo=pypi&logoColor=white)](https://pypi.org/project/becwright/) +[![Versiones de Python](https://img.shields.io/pypi/pyversions/becwright?logo=python&logoColor=white)](https://pypi.org/project/becwright/) +[![Licencia: MIT](https://img.shields.io/badge/licencia-MIT-green)](LICENSE) -**La capa de enforcement para agentes de IA.** +**La capa de enforcement para agentes de IA.** (se pronuncia *bec-ráit* — un "wright" es un artesano, como en *playwright*) Reglas que se ejecutan, no notas que se ignoran. Tu `CLAUDE.md` es un *cartel*; becwright es el *guardia* — corre tus reglas sobre el código y frena el commit diff --git a/README.md b/README.md index 8fe5ee0..edc1355 100644 --- a/README.md +++ b/README.md @@ -8,9 +8,12 @@ [![CI](https://github.com/DataDave-Dev/becwright/actions/workflows/ci.yml/badge.svg)](https://github.com/DataDave-Dev/becwright/actions/workflows/ci.yml) [![npm](https://img.shields.io/npm/v/becwright?logo=npm)](https://www.npmjs.com/package/becwright) +[![npm downloads](https://img.shields.io/npm/dm/becwright?logo=npm&label=downloads)](https://www.npmjs.com/package/becwright) [![PyPI](https://img.shields.io/pypi/v/becwright?logo=pypi&logoColor=white)](https://pypi.org/project/becwright/) +[![Python versions](https://img.shields.io/pypi/pyversions/becwright?logo=python&logoColor=white)](https://pypi.org/project/becwright/) +[![License: MIT](https://img.shields.io/badge/license-MIT-green)](LICENSE) -**The enforcement layer for AI coding agents.** +**The enforcement layer for AI coding agents.** (*bec-wright* — a "wright" is a maker, as in *playwright*) Rules that run, not notes that get ignored. Your `CLAUDE.md` is a *sign*; becwright is the *guard* — it runs your rules against the code and blocks the From 3c1f7e700d3918293413171c436ba5797def0b65 Mon Sep 17 00:00:00 2001 From: DataDave-Dev <153755137+DataDave-Dev@users.noreply.github.com> Date: Thu, 2 Jul 2026 12:08:15 -0600 Subject: [PATCH 3/3] docs: animated terminal demo in the README hero MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replace the static demo SVG with an animated one (CSS keyframes inside the SVG — renders in GitHub's img context, weighs a few KB, stays crisp at any size, no GIF tooling needed): git commit is typed, two blocking rules fire with their why and the offending line, the commit is blocked, and the npx try-it line closes with a blinking cursor. The static SVG stays for contexts that don't animate. --- README.es.md | 2 +- README.md | 2 +- assets/becwright-demo-animated.svg | 55 ++++++++++++++++++++++++++++++ 3 files changed, 57 insertions(+), 2 deletions(-) create mode 100644 assets/becwright-demo-animated.svg diff --git a/README.es.md b/README.es.md index 0362241..495a8bf 100644 --- a/README.es.md +++ b/README.es.md @@ -32,7 +32,7 @@ Se publica. Con becwright, el commit no llega a existir:

- becwright frenando un commit que hardcodea un secreto y usa eval + becwright frenando un commit en vivo: corre git commit, dos reglas blocking se disparan con su porqué, el commit se detiene

> **Velo vos mismo en 5 segundos** — sin configurar nada, sin git, sin tocar tu diff --git a/README.md b/README.md index edc1355..fbc0c55 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,7 @@ string — and leaves a note to *"clean this up later."* Nobody does. It ships. With becwright, the commit never happens:

- becwright blocking a commit that hardcodes a secret and calls eval + becwright blocking a commit live: git commit runs, two blocking rules fire with their why, the commit is stopped

> **See it yourself in 5 seconds** — no setup, no git, nothing on your machine is diff --git a/assets/becwright-demo-animated.svg b/assets/becwright-demo-animated.svg new file mode 100644 index 0000000..5f7bf7a --- /dev/null +++ b/assets/becwright-demo-animated.svg @@ -0,0 +1,55 @@ + + + + + + + + + + + git commit — guarded by becwright + + + $ git commit -m "checkout: promo discounts" + + + BEC -- 1 file(s) against 2 rule(s) + + + BLOCK no-hardcoded-secrets (blocking) + Why it matters: a secret stays in git history forever. + checkout.py:2 > api_key = "x7Kp2mQ9vT4nB8wL" + + + BLOCK no-dangerous-eval (blocking) + Why it matters: eval on untrusted input is remote code execution. + checkout.py:4 > discount = eval(rule) + + + >>> Commit BLOCKED: becwright caught it before it shipped. + + + Rules that run, not notes that get ignored. + $ npx becwright demo # try it — nothing installed, nothing touched + $ +