standdown 0.2.0 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +51 -1
  2. package/package.json +3 -2
package/README.md CHANGED
@@ -3,6 +3,7 @@
3
3
  </p>
4
4
 
5
5
  <p align="center">
6
+ <img src="https://img.shields.io/badge/status-alpha-E5484D?labelColor=1C1917" alt="project status: alpha">
6
7
  <a href="https://www.npmjs.com/package/standdown"><img src="https://img.shields.io/npm/v/standdown?color=F5A623&label=npm&labelColor=1C1917" alt="npm version"></a>
7
8
  <a href="https://github.com/dupe-com/standdown/actions/workflows/ci.yml"><img src="https://img.shields.io/github/actions/workflow/status/dupe-com/standdown/ci.yml?branch=main&label=CI&labelColor=1C1917" alt="CI status"></a>
8
9
  <img src="https://img.shields.io/badge/dependencies-0-2ea043?labelColor=1C1917" alt="zero runtime dependencies">
@@ -11,6 +12,14 @@
11
12
  <a href="https://affiliatecoc.org"><img src="https://img.shields.io/badge/aligned-Affiliate%20CoC-F5A623?labelColor=1C1917" alt="aligned with the Affiliate Code of Conduct"></a>
12
13
  </p>
13
14
 
15
+ > [!WARNING]
16
+ > **Alpha — expect bugs and breaking changes.** standdown is pre-1.0 and under
17
+ > active development: the API may shift between minor versions and edge cases are
18
+ > still being found. Because it makes revenue-affecting decisions, pin your
19
+ > version, verify it against your own integration with the
20
+ > [conformance grader](./audit), and please
21
+ > [report anything that misbehaves](https://github.com/dupe-com/standdown/issues).
22
+
14
23
  > **Your extension shouldn't steal the sale.** `standdown` detects existing
15
24
  > affiliate attribution, suppresses competing activation, and proves the
16
25
  > decision was made locally — never on a server.
@@ -99,7 +108,48 @@ npm install standdown
99
108
  ```
100
109
 
101
110
  `standdown` is published to npm and versioned with semver from `0.1.0`. Releases
102
- are cut by a human; the repo does not publish from CI.
111
+ are cut by a human with `npm run release` (see [RELEASING.md](./RELEASING.md));
112
+ the repo does not publish from CI.
113
+
114
+ ## Set it up with an AI agent
115
+
116
+ The fastest path: hand the whole integration to your coding agent. Copy this
117
+ prompt into Claude Code, Cursor, Copilot, etc. — pointed at your extension's repo:
118
+
119
+ ```text
120
+ Integrate the `standdown` npm library into this browser extension so it stops
121
+ hijacking affiliate attribution when a partner already owns the sale. Follow the
122
+ official guide at https://raw.githubusercontent.com/dupe-com/standdown/main/AGENTS.md.
123
+
124
+ Do the full loop:
125
+ 1. `npm install standdown`.
126
+ 2. Pick the adapter: `standdown/webext` for a Chromium MV3 extension, or
127
+ `standdown/content` for Safari / content-script-only.
128
+ 3. Find every place this extension fires affiliate attribution (redirects, link
129
+ rewrites, cookie writes) and gate each behind the stand-down decision — do
130
+ nothing when `decision.standDown` is true.
131
+ 4. Bundle per examples/mv3-extension (subpath imports don't resolve raw in
132
+ extension contexts).
133
+ 5. Build the unpacked extension, then grade it:
134
+ git clone https://github.com/dupe-com/standdown && cd standdown/audit && \
135
+ npm install && npx tsx grade/grade.ts <path-to-unpacked-extension>
136
+ Report the letter grade and fix anything below A.
137
+
138
+ Preserve the invariants: decisions stay local and synchronous (no network in the
139
+ decision path), no user identity in signals, and fail toward standing down.
140
+ ```
141
+
142
+ **Already have homegrown stand-down logic?** Use the brownfield prompt in
143
+ [`ADOPTING.md`](./ADOPTING.md) instead — it migrates your existing decision path
144
+ onto the library provably, without risking revenue in the switch.
145
+
146
+ **Claude Code users** can skip the prompt: this repo ships two skills in
147
+ [`.claude/skills/standdown`](./.claude/skills/standdown) (greenfield install) and
148
+ [`skills/adopt-standdown`](./skills/adopt-standdown) (brownfield migration). Copy
149
+ the one you want into your project's `.claude/skills/` (or `~/.claude/skills/`)
150
+ and run `/standdown` (or `/adopt-standdown`). Agents that read
151
+ [`AGENTS.md`](./AGENTS.md) or
152
+ [`llms.txt`](./llms.txt) get the same playbook automatically.
103
153
 
104
154
  ## Webext Quickstart
105
155
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "standdown",
3
- "version": "0.2.0",
3
+ "version": "0.2.2",
4
4
  "description": "Affiliate stand-down, done right, for browser extensions.",
5
5
  "author": "Dupe (https://dupe.com)",
6
6
  "repository": {
@@ -63,7 +63,8 @@
63
63
  "lint": "biome check .",
64
64
  "build": "tsup",
65
65
  "test": "vitest run",
66
- "policies-cite-check": "node scripts/policies-cite-check.mjs"
66
+ "policies-cite-check": "node scripts/policies-cite-check.mjs",
67
+ "release": "bash scripts/release.sh"
67
68
  },
68
69
  "dependencies": {},
69
70
  "devDependencies": {