2 added, 2 removed. Audit A to A.
# Contents
- `source/` – checked HTML, CSS, analytics, discovery, fallback, markdown, and llms.txt sources.
- `public/` – checked public icon, social, caption, and reusable demo assets.
- `build.ts` – deterministic static output generation from the root package release.
- `production-release-verifier.ts` – streaming, bounded production checks that bind package version, checked-out HEAD, the GitHub tag commit, canonical npm, and the immutable Latest GitHub Release.
- `vercel-build.ts` – fail-closed Vercel admission that validates the build-owned marker and platform state, runs external release verification only for production, and keeps previews independently buildable.
- `provider-capability-attestation.ts` – release-bound provider/operation/completeness table derived from built-in plugins and current bundled adapter manifests.
- `html-to-markdown.ts` – static markdown variants for public pages.
- `../edge/` – Edge-safe Accept parsing and markdown, 406, and 404 negotiation.
- `*.test.ts` – identity, SEO, accessibility, analytics-privacy, negotiation, and build regressions.
- `../middleware.ts` – Vercel Edge entry; it imports only `../edge/`.
- `dist/` – ignored generated deployment output.
# Guidelines
- Keep the page useful without JavaScript. JavaScript may progressively enhance explicit copy controls and canonical-host analytics; keep all commands readable and selectable without it.
- Keep every product claim observable in the public Wrench release and put each qualification beside the claim it limits.
- Derive release identity and install commands from the validated root `package.json`; never copy a version into page source.
- Keep the Agent Skill install command centralized in `build.ts`, pin its skills source to `hraness/wrench#v<package version>`, render it as inert HTML, and make clipboard enhancement reusable through the `data-skill-install` contract. Link npm to that exact version, not the mutable package landing page.
- - Keep the checked-in Vercel build command bound to exact non-secret marker `WRENCH_VERCEL_BUILD=release-bound-v1`, Vercel System Environment Variables enabled, and the Production Branch configured as `website-production`. Local admission is allowed only when the marker and every Vercel signal are absent. A marked or otherwise Vercel-signaled build must have the exact marker, `VERCEL=1`, a valid `VERCEL_ENV`, and an exact nonempty `VERCEL_GIT_COMMIT_REF`; missing, malformed, or inconsistent state fails before verification or building. Require `VERCEL_GIT_COMMIT_REF=website-production` only for production, and reject that ref for a non-production deployment. Vercel requires the branch to exist before configuration, so `docs/publishing.md` permits one initial create-ref at the exact current immutable Latest Release commit. After that one-time bootstrap, the tag Release workflow may only create or verify the immutable Latest Release. A separate workflow loaded from exact current `main` owns production promotion. It must bind the Release `workflow_run` or manual recovery to exact current main and immutable release authority, snapshot the complete bounded provider baseline before any key admission, keep already-exact recovery entirely outside the key environment, and use the dedicated one-repository release App only for a required fast-forward. The key environment must set `deployment: false`; the App and each minted token must have exactly `metadata:read`, `contents:write`, and `workflows:write`; every read-only GitHub child must be scrubbed of App values; and the writer must use a private askpass token to fetch only the verified tag, locally require its peeled commit to equal the independently verified release SHA without executing tagged code, and perform the one write with an explicit expected-old `--force-with-lease`. After that operation, the shared helper must send exactly one empty-204 token revocation with a canonical GitHub `Date` strictly before the minted `expires_at`, then observe the exact Wrench installation-repository endpoint at the reviewed ten absolute offsets inside a 30-second half-open request-start window. Every accepted 200 or 401 also requires a canonical pre-expiry `Date`. Two stable HTTP 401 observations must converge before the exact ref readback; `propagationObserved=false` means those were the first two probes with no observed 200, while `true` means at least one exact 200 preceded the final two 401s. A 401 followed by 200, nonconvergence, indeterminate transport or timing, redirect, malformed response, or after-deadline completion fails closed. The window is an operational ceiling, not a GitHub propagation SLA, and the action is never retried. A missing branch is a hard failure, and neither workflow may create, delete, force-move, or accept divergence. A separate 30-minute read-only job must use one injected monotonic 20-minute `[start, deadline)` provider window for absolute observation slots at minute offsets zero through 19, leave separate orchestration headroom, charge API latency without sliding those slots, fingerprint the complete current state and `latestStatus` of at most 500 Production deployments, exhaustively audit the pinned candidate's REST status history, reject every retained failure, error, or inactive row, bind the REST deployment's exact commit ref and SHA to GraphQL's null ref and matching commit OID, bind the GraphQL and REST current-status identities, and finish after the initial success observation plus two stable tag, immutable Release, Latest Release, workflow-source, ref, inventory, and status authority readbacks before promotion succeeds. The global receipt must not depend on previous deployment statuses that GitHub deletes after 90 days; GitHub preserves the current status on the deployment. Live lifecycle rules cover creation, deletion, and non-fast-forward movement on production and canary. A separate no-bypass update rule freezes both refs until the exact App bypass and canary evidence are complete. Treat `main` and pull-request deployments as previews. Production builds must verify external release state before reading release identity and provider capabilities from their exact checked-out tag commit; preview builds must not depend on npm or GitHub release availability.
+ - Keep the checked-in Vercel build command bound to exact non-secret marker `WRENCH_VERCEL_BUILD=release-bound-v1`, Vercel System Environment Variables enabled, and the Production Branch configured as `website-production`. Local admission is allowed only when the marker and every Vercel signal are absent. A marked or otherwise Vercel-signaled build must have the exact marker, `VERCEL=1`, a valid `VERCEL_ENV`, and an exact nonempty `VERCEL_GIT_COMMIT_REF`; missing, malformed, or inconsistent state fails before verification or building. Require `VERCEL_GIT_COMMIT_REF=website-production` only for production, and reject that ref for a non-production deployment. Vercel requires the branch to exist before configuration, so `docs/publishing.md` permits one initial create-ref at the exact current immutable Latest Release commit. After that one-time bootstrap, the tag Release workflow may only create or verify the immutable Latest Release. A separate workflow loaded from exact current `main` owns production promotion. It must bind the Release `workflow_run` or manual recovery to exact current main and immutable release authority, snapshot the complete bounded provider baseline before any key admission, keep already-exact recovery entirely outside the key environment, and use the dedicated one-repository release App only for a required fast-forward. The key environment must set `deployment: false`; the App and each minted token must have exactly `metadata:read`, `contents:write`, and `workflows:write`; every read-only GitHub child must be scrubbed of App values; and the writer must use a private askpass token to fetch only the verified tag, locally require its peeled commit to equal the independently verified release SHA without executing tagged code, and perform the one write with an explicit expected-old `--force-with-lease`. After that operation, the shared helper must send exactly one empty-204 token revocation with a canonical GitHub `Date` strictly before the minted `expires_at`, then observe the exact Wrench installation-repository endpoint at the reviewed ten absolute offsets inside a 30-second half-open request-start window. Every accepted 200 or 401 also requires a canonical pre-expiry `Date`. Two stable HTTP 401 observations must converge before the exact ref readback; `propagationObserved=false` means those were the first two probes with no observed 200, while `true` means at least one exact 200 preceded the final two 401s. A 401 followed by 200, nonconvergence, indeterminate transport or timing, redirect, malformed response, or after-deadline completion fails closed. The window is an operational ceiling, not a GitHub propagation SLA, and the action is never retried. A missing branch is a hard failure, and neither workflow may create, delete, force-move, or accept divergence. A separate 30-minute read-only job must use one injected monotonic 20-minute `[start, deadline)` provider window for absolute observation slots at minute offsets zero through 19, leave separate orchestration headroom, charge API latency without sliding those slots, fingerprint the complete current state and `latestStatus` of at most 500 Production deployments, exhaustively audit the pinned candidate's REST status history, reject every retained failure, error, or inactive row, bind the REST deployment's exact commit ref and SHA to GraphQL's null ref and matching commit OID, bind the GraphQL and REST current-status identities, and finish after the initial success observation plus two stable tag, immutable Release, Latest Release, workflow-source, ref, inventory, and status authority readbacks before promotion succeeds. The global receipt must not depend on previous deployment statuses that GitHub deletes after 90 days; GitHub preserves the current status on the deployment. Live lifecycle rules cover creation, deletion, and non-fast-forward movement on production and canary. A separate update rule denies every updater except exact App `4783991` as an `Integration` with `bypass_mode=always`; the retained canary evidence proves that boundary. Production-only freeze ruleset `22149969` must continue to block every production update until a fresh release-owner audit removes it by captured numeric ID. Treat `main` and pull-request deployments as previews. Production builds must verify external release state before reading release identity and provider capabilities from their exact checked-out tag commit; preview builds must not depend on npm or GitHub release availability.
- Keep the exact current-main workflow SHA distinct from the peeled immutable release SHA, require that release commit to be an ancestor of the workflow source, and bind package, tag, Release, deployment, and production-ref identity to the release SHA rather than substituting the workflow SHA.
- - Keep the App and minted token permission set exact at `metadata:read`, `contents:write`, and `workflows:write`. Workflows write is required because an admitted fast-forward may introduce reviewed `.github/workflows` changes. Runtime must narrow and validate the minted token for Wrench, while privileged setup separately proves that the installation-wide selected-repository set contains only Wrench. Keep Administration and every other permission forbidden. Require the sole-reviewer key environment to use reviewer `0thernet`, `prevent_self_review=false`, no administrator bypass, exact `main` admission, and `deployment: false`. Do not declare the writer production-ready until one single-use `P` to `C` transition on persistent ref `refs/heads/website-production-canary` pushes a target containing the real workflow changes under rules that exactly mirror production. Create the ref at `P` before creation protection, retain it at `C`, never reset, delete, or repurpose it, remove the separately reviewed temporary canary workflow after the proof, and keep the production helper hard-bound to `website-production`.
+ - Keep the App and minted token permission set exact at `metadata:read`, `contents:write`, and `workflows:write`. Workflows write is required because an admitted fast-forward may introduce reviewed `.github/workflows` changes. Runtime must narrow and validate the minted token for Wrench, while privileged setup separately proves that the installation-wide selected-repository set contains only Wrench. Keep Administration and every other permission forbidden. Require the sole-reviewer key environment to use reviewer `0thernet`, `prevent_self_review=false`, no administrator bypass, exact `main` admission, and `deployment: false`. The retained admission proof is workflow run `33691443614`: an ordinary update was denied, the dedicated App performed the only leased `P` to `C` fast-forward on persistent ref `refs/heads/website-production-canary`, the stale lease was rejected, and revocation converged to two stable authorization denials. Keep that ref at exact `C=0bf88a064233635e0c5485c61f9c533974a7dca4`, never reset, delete, or repurpose it, keep the single-use canary source removed, and keep the production helper hard-bound to `website-production`.
- Require a production Git checkout with a resolvable `HEAD`; never substitute a deployment environment SHA or exclude `.git` through `.vercelignore`. The production npm manifest check relies on the tag Release workflow's preceding exact source-to-registry tarball comparison and immutable Release gate, so keep that gate and the separate current-main production promotion inseparable.
- Keep canonical metadata, robots, sitemap, llms.txt, Open Graph, X metadata, and the linked JSON-LD graph aligned to `https://wrench.rip/`.
- Keep ordinary reference and task guides typographic and preserve the real getting-started video and poster. For the small set of live editorial argument or comparison pages, treat `editorial-images.ts` as the single image registry and use the `editorial-image-seo` skill. Generate with its pinned retry-disabled Atet helper, review the original and card thumbnail, then keep that provenance-bound 1536-pixel original canonical for social, schema, and sitemap use while serving locally derived 384- and 768-pixel WebP files through `srcset` in visible figures and cards. Synchronize the visible figure and credit, homepage card, Open Graph and X metadata, `TechArticle.image`, and image sitemap. Retain prompt, completed job, and receipt under `editorial-provenance/<slug>/` without exposing those internal paths publicly. Do not register a draft route, including the PayPal/GrapheneOS page, until that route is live. Use semantic editorial metaphors rather than generated factual, capability, or security diagrams.
- Public content pages keep one URL for HTML and Markdown. Honor `Accept` q-values, set `Vary: Accept`, and return `406` only when no owned representation remains. Unknown paths stay HTTP 404 and point agents at llms.txt, the sitemap, and getting started.
- Keep analytics canonical-host-only, cookieless, personless, memory-only, DNT-aware, query-free, and restricted to page lifecycle plus the two explicit GitHub links.
- Do not add private packages, private assets, cookies, replay, identity, feature flags, broad autocapture, console capture, or application behavior.
- Preserve semantic headings, native disclosures, visible focus, keyboard-scrolling tables, touch-sized links, reduced-motion behavior, and forced-color legibility.