This directory holds Architecture Decision Records (ADRs) for
agent-browser-shield, written in the MADR 4.0
format.
The records are a back-fill of load-bearing decisions reconstructed from merged pull requests, issues, and the user-facing docs. Each ADR cites its primary sources inline so readers can trace any claim back to a PR description, review thread, issue body, or doc passage. No pro/con or motivation appears in an ADR that is not supported by one of those citations.
| # | Title | Status |
|---|---|---|
| 0001 | Source-available PolyForm Shield 1.0.0 license + CLA | Accepted |
| 0002 | Rule ID naming taxonomy (<target>-<verb>, five verbs) |
Accepted |
| 0003 | Run rule engine in all frames | Accepted |
| 0004 | Centralize data-abs-* DOM markers in lib/dom-markers.ts |
Accepted |
| 0005 | Enforce lib/ ↔ rules/ import boundary via ESLint |
Accepted |
| 0006 | Re-scan SPA-mutated subtrees via a shared subtree watcher | Accepted |
| 0007 | Scrub data carrier, do not detach framework-rendered DOM | Accepted |
| 0008 | Pierce open shadow roots; document closed roots as out-of-scope | Accepted |
| 0009 | Rule defaults centralized in rule-metadata.ts + build-time override flag |
Accepted (supersedes earlier JSON+codegen design) |
| 0010 | No telemetry; opt-in LLM rule is the only outbound call | Accepted |
| 0011 | Encode prompt-injection patterns in YAML, decode at build time | Accepted |
| 0012 | Biome + ESLint split with project-specific custom rules | Accepted |
| 0013 | Keep rule files out of the background service worker; enforce with a build-time purity canary | Accepted |
| 0014 | CSS-first hide for selector-only removeEntirely rules |
Accepted |
| 0015 | CalVer + workflow_dispatch-driven extension release |
Accepted |
| 0016 | ESLint-style per-rule build-time options shape | Accepted |
| 0017 | Numeric thresholds exposed as per-sub-rule options | Accepted |
| 0018 | Per-site enforcement denylist authored from the popup; stored as URL Pattern strings | Proposed |
| 0019 | Tab-scoped, non-persistent enforcement pause for fast recovery (reveal-everything + snooze) | Proposed |
- File names use
NNNN-kebab-case-title.md. - Status values:
Proposed,Accepted,Superseded by ADR-NNNN,Deprecated. - "More Information" sections list the primary sources used to write the ADR. When a citation gives a date, it is the merge date of the cited PR.