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.
- package/README.md +51 -1
- 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
|
|
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.
|
|
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": {
|