Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
226 commits
Select commit Hold shift + click to select a range
697a710
ops(autopilot): log PR #26 merge; branch restarted from master
claude Jul 22, 2026
573c636
ops(autopilot): current loop PR pointer -> #27; restart-after-merge r…
claude Jul 22, 2026
939c748
feat(plugin): Claude Code marketplace manifest — one-command install …
claude Jul 22, 2026
af07264
feat(metrics): daily funnel snapshot script, fixture-tested (T12)
claude Jul 22, 2026
9e64812
ops(autopilot): T13 delivered off-repo; queue empty — next run trigge…
claude Jul 23, 2026
9d024f3
ops(autopilot): queue v2 from second adversarial panel (U1-U9)
claude Jul 23, 2026
8a84201
feat(site): packs.html — full pack scope before checkout (U1)
claude Jul 23, 2026
0adf536
ops(launch): OWNER_RUNBOOK — 20 minutes to unblock, one command per s…
claude Jul 23, 2026
6c18922
feat(hint): pack hint v2 — HTTP-API detection, preview page links (U3…
claude Jul 23, 2026
eeed19a
feat(site): self-verify block on every purchase surface (U4)
claude Jul 23, 2026
7e70bdc
docs(facts): re-pin F13 at 2,529; re-verify F3/F4/F9 (U5)
claude Jul 23, 2026
c450ffd
ops(launch): category data pack for the Return on Security thread (U6)
claude Jul 23, 2026
293be18
fix(version)+ops(partners): runtime version sync, F9 re-pin to 0.4.18…
claude Jul 23, 2026
c885300
ops(launch): day-3/day-7 follow-up templates + LEDGER due dates (U8)
claude Jul 23, 2026
9205079
ops(autopilot): U9 done off-repo (scoring + 3 design-partner drafts o…
claude Jul 23, 2026
5ee11f0
ops(autopilot): queue v3 from panel + W1 rule-9 purge (severity-overr…
claude Jul 23, 2026
022d3d7
ops(autopilot): W2 done off-repo — affiliate {HOOK} bank delivered on…
claude Jul 23, 2026
be8f5fc
feat(cli): gate.cat setup claude-code + doctor — one-command hook act…
claude Jul 23, 2026
414af79
fix(conversion): instrumentation sweep — five verified fixes in one p…
claude Jul 23, 2026
75620d3
chore(release): 0.4.19 prep — bump x5, guards, clean-venv smoke, chec…
claude Jul 23, 2026
2edb634
docs(facts): drift sweep — six confirmed mismatches fixed by hand (W6)
claude Jul 23, 2026
589d091
ops(autopilot): queue v4 from panel — world-model correction from iss…
claude Jul 23, 2026
bffc460
ops(autopilot): distribution state table from issue #9 + HN mod-respo…
claude Jul 23, 2026
f62b570
fix(affiliate): referral capture on the landing page + real drift-gua…
claude Jul 23, 2026
720d79f
fix(affiliate): invoice-keyed accrual idempotency + clawback on real …
claude Jul 23, 2026
092ce3c
ops(launch): campaign-response collateral in existing files (V4) + LE…
claude Jul 23, 2026
fe2220b
docs(readme): veto-axis Comparison + 'does it work with my agent' mat…
claude Jul 23, 2026
ee4a3fb
fix(nudge): stop selling to customers who already paid (V6, for 0.4.20)
claude Jul 23, 2026
b6656b6
ops(autopilot): queue v5 from panel — incl. X4, a verified live gate …
claude Jul 24, 2026
ab7bdc1
fix(guard): delete analyzer must see inert-literal-stripped text (iss…
claude Jul 24, 2026
0848cca
feat(site): data-boundary evidence at the point of sale (X1)
claude Jul 24, 2026
6c2b7cc
docs(readme): absolute GitHub URLs for every relative link — PyPI-saf…
claude Jul 24, 2026
fcc398c
feat(site): static og/twitter/canonical on the landing head (X3)
claude Jul 24, 2026
82776c3
docs(facts): reconcile verifiable numbers — RECALL 31/12, drop stale …
claude Jul 24, 2026
572ef38
feat(answers): repatriate the guardrails-across-a-team page + split c…
claude Jul 24, 2026
876654f
ops(autopilot): queue v6 from panel — repo-polish declared closed, tw…
claude Jul 24, 2026
0e1b834
ops(autopilot): Y1 resolved NO-GO on claude-code#80730 + scaffold-ove…
claude Jul 24, 2026
1fae3fe
fix(cloud): probe encryption before touching cursor — stop silent pai…
claude Jul 24, 2026
9b2925e
fix(cloud-cli): one error choke point — no raw traceback on wrong key…
claude Jul 24, 2026
63f9830
ops(autopilot): loop #46 — HOLD (queue drained except gated Y2; no fi…
claude Jul 24, 2026
a5a09ea
ops(autopilot): loop #47 — HOLD; note owner cold-send bounce (devtall…
claude Jul 24, 2026
524637f
ops(autopilot): loop #48 — HOLD (unchanged since #47)
claude Jul 24, 2026
70c0135
ops(autopilot): loop #49 — launch adversarial scaffold-overwrite desi…
claude Jul 24, 2026
658822e
feat(guard): SCAFFOLD_OVERWRITE — WARN on create-vite/degit into a po…
claude Jul 24, 2026
2024838
ops(autopilot): loop #50 — HOLD; Y5 confirmed green in CI (3.11/3.12/…
claude Jul 24, 2026
1f32d62
ops(autopilot): loop #51 — HOLD (unchanged since #50)
claude Jul 24, 2026
4b251f9
ops(autopilot): loop #52 — HOLD (unchanged)
claude Jul 24, 2026
dae4399
ops(autopilot): loop #53 — HOLD (unchanged)
claude Jul 24, 2026
e7bee42
ops(autopilot): loop #54 — HOLD (unchanged)
claude Jul 24, 2026
5b4f1b5
ops(autopilot): loop #55 — HOLD (rolling; consolidated #51-#55 log en…
claude Jul 24, 2026
cb62411
ops(autopilot): loop #56 — HOLD (rolling, unchanged)
claude Jul 24, 2026
e23fd4f
ops(autopilot): loop #57 — HOLD (rolling, unchanged)
claude Jul 24, 2026
9381ee8
ops(autopilot): loop #58 — HOLD (rolling); Y2 wave 1 opens next run
claude Jul 24, 2026
8ea4352
ops(autopilot): loop #59 — Y2 wave 1 done (day-3 follow-up drafts: Ju…
claude Jul 25, 2026
fb7aba4
ops(autopilot): loop #60 — HOLD (rolling); Y2 wave 2 gated to 2026-07-26
claude Jul 25, 2026
fc85e38
ops(autopilot): loop #61 — HOLD (rolling)
claude Jul 25, 2026
ecc5c67
ops(autopilot): loop #62 — HOLD (rolling)
claude Jul 25, 2026
0e59c12
ops(autopilot): loop #63 — HOLD (rolling)
claude Jul 25, 2026
7bf668d
ops(autopilot): loop #64 — HOLD (rolling)
claude Jul 25, 2026
aa538c7
ops(autopilot): loop #65 — HOLD (rolling)
claude Jul 25, 2026
888bcd2
ops(autopilot): loop #66 — HOLD (rolling); note new Stripe KYC for "B…
claude Jul 25, 2026
44f1344
ops(autopilot): loop #67 — HOLD (rolling)
claude Jul 25, 2026
0dd8f78
ops(autopilot): loop #68 — HOLD (rolling); second Stripe KYC entity (…
claude Jul 25, 2026
0364547
ops(autopilot): loop #69 — HOLD (rolling)
claude Jul 25, 2026
40cc294
ops(autopilot): loop #70 — HOLD (rolling)
claude Jul 25, 2026
2441b6b
ops(autopilot): loop #71 — HOLD (rolling)
claude Jul 25, 2026
2d423db
ops(autopilot): loop #72 — HOLD (rolling)
claude Jul 25, 2026
72a186e
ops(autopilot): loop #73 — HOLD (rolling)
claude Jul 25, 2026
fc12678
ops(autopilot): loop #74 — HOLD (rolling)
claude Jul 25, 2026
4f76e4c
ops(autopilot): loop #75 — HOLD (rolling)
claude Jul 25, 2026
9203870
ops(autopilot): loop #76 — HOLD (rolling)
claude Jul 25, 2026
80becca
ops(autopilot): loop #77 — HOLD (rolling)
claude Jul 25, 2026
1a4bb19
ops(autopilot): loop #78 — HOLD (rolling)
claude Jul 25, 2026
c308c41
ops(autopilot): loop #79 — HOLD (rolling)
claude Jul 25, 2026
b4da9b6
ops(autopilot): loop #80 — HOLD (rolling)
claude Jul 25, 2026
5610ef8
ops(autopilot): loop #81 — HOLD (rolling)
claude Jul 25, 2026
b8c73a7
ops(autopilot): loop #82 — HOLD (rolling); Y2 wave 2 opens next run
claude Jul 25, 2026
c4db4e6
ops(autopilot): loop #83 — Y2 wave 2 done (10 day-3 follow-up drafts)…
claude Jul 26, 2026
87e6391
ops(autopilot): loop #84 — HOLD (rolling; queue v6 fully closed)
claude Jul 26, 2026
29344c2
ops(autopilot): loop #85 — HOLD (rolling)
claude Jul 26, 2026
ba08c63
ops(autopilot): loop #86 — HOLD (rolling)
claude Jul 26, 2026
a340720
ops(autopilot): loop #87 — HOLD (rolling)
claude Jul 26, 2026
1035624
ops(autopilot): loop #88 — HOLD (rolling)
claude Jul 26, 2026
55d8299
ops(autopilot): loop #89 — HOLD (rolling)
claude Jul 26, 2026
e116542
ops(autopilot): loop #90 — HOLD (rolling)
claude Jul 26, 2026
9e072aa
ops(autopilot): loop #91 — HOLD (rolling)
claude Jul 26, 2026
cd969eb
ops(autopilot): loop #92 — HOLD (rolling)
claude Jul 26, 2026
886dd5e
ops(autopilot): loop #93 — HOLD (rolling)
claude Jul 26, 2026
63593ee
ops(autopilot): loop #94 — HOLD (rolling)
claude Jul 26, 2026
509fca0
ops(autopilot): loop #95 — HOLD (rolling)
claude Jul 26, 2026
f8ae180
ops(autopilot): loop #96 — HOLD (rolling)
claude Jul 26, 2026
f9df32d
ops(autopilot): loop #97 — HOLD (rolling)
claude Jul 26, 2026
d39bc1d
ops(autopilot): loop #98 — HOLD (rolling)
claude Jul 26, 2026
d046566
ops(autopilot): loop #99 — HOLD (rolling)
claude Jul 26, 2026
382908a
ops(autopilot): loop #100 — HOLD (rolling)
claude Jul 26, 2026
31c2f46
ops(autopilot): loop #101 — HOLD (rolling)
claude Jul 26, 2026
9f0d675
ops(autopilot): loop #102 — HOLD (rolling)
claude Jul 26, 2026
ae28540
ops(autopilot): loop #103 — HOLD (rolling)
claude Jul 26, 2026
b06f8e8
ops(autopilot): loop #104 — HOLD (rolling)
claude Jul 26, 2026
91d324d
ops(autopilot): loop #105 — HOLD (rolling)
claude Jul 26, 2026
ba6e9c6
ops(autopilot): loop #106 — HOLD (rolling)
claude Jul 26, 2026
c1e0cdf
ops(autopilot): loop #107 — HOLD (rolling; new day 2026-07-27)
claude Jul 27, 2026
227657a
ops(autopilot): loop #108 — HOLD (rolling)
claude Jul 27, 2026
a861158
ops(autopilot): loop #109 — HOLD (rolling)
claude Jul 27, 2026
9e7409d
ops(autopilot): loop #110 — HOLD (rolling)
claude Jul 27, 2026
ced7b47
ops(autopilot): loop #111 — HOLD (rolling)
claude Jul 27, 2026
f3965b7
ops(autopilot): loop #112 — HOLD (rolling)
claude Jul 27, 2026
7136984
ops(autopilot): loop #113 — HOLD (rolling)
claude Jul 27, 2026
4801d5e
ops(autopilot): loop #114 — HOLD (rolling)
claude Jul 27, 2026
cfcdf4b
ops(autopilot): loop #115 — HOLD (rolling)
claude Jul 27, 2026
90b943e
ops(autopilot): loop #116 — HOLD (rolling)
claude Jul 27, 2026
be2139b
ops(autopilot): loop #117 — HOLD (rolling)
claude Jul 27, 2026
5ea8ebc
ops(autopilot): loop #118 — HOLD (rolling)
claude Jul 27, 2026
e8d4420
ops(autopilot): loop #119 — HOLD (rolling)
claude Jul 27, 2026
4b72b7b
ops(autopilot): loop #120 — HOLD (rolling); note owner self-test pitc…
claude Jul 27, 2026
a620956
ops(autopilot): loop #121 — HOLD (rolling)
claude Jul 27, 2026
3e07875
ops(autopilot): loop #122 — HOLD (rolling)
claude Jul 27, 2026
c633b18
ops(autopilot): loop #123 — HOLD (rolling)
claude Jul 27, 2026
4d5c0ed
ops(autopilot): loop #124 — HOLD (rolling)
claude Jul 27, 2026
e9e685f
ops(autopilot): loop #125 — HOLD (rolling)
claude Jul 27, 2026
42a74ef
ops(autopilot): loop #126 — HOLD (rolling)
claude Jul 27, 2026
7400774
ops(autopilot): loop #127 — HOLD (rolling)
claude Jul 27, 2026
ae1c1ec
ops(autopilot): loop #128 — HOLD (rolling)
claude Jul 27, 2026
ba98373
ops(autopilot): loop #129 — HOLD (rolling)
claude Jul 27, 2026
9bec57c
ops(autopilot): loop #130 — HOLD (rolling)
claude Jul 27, 2026
01c68b0
ops(autopilot): loop #131 — HOLD (new day 2026-07-28); note owner's Y…
claude Jul 28, 2026
2da98b8
ops(autopilot): loop #132 — HOLD (rolling); owner pushing distributio…
claude Jul 28, 2026
61185e3
ops(autopilot): loop #133 — HOLD (rolling)
claude Jul 28, 2026
86fe3c1
ops(autopilot): loop #134 — HOLD (rolling)
claude Jul 28, 2026
83cff3a
ops(autopilot): loop #135 — HOLD (rolling)
claude Jul 28, 2026
16e986c
ops(autopilot): loop #136 — HOLD (rolling)
claude Jul 28, 2026
7a5f6dd
ops(autopilot): loop #137 — HOLD (rolling)
claude Jul 28, 2026
139ee98
ops(autopilot): loop #138 — HOLD (rolling)
claude Jul 28, 2026
2d38542
ops(autopilot): loop #139 — HOLD (rolling)
claude Jul 28, 2026
4f05277
ops(autopilot): loop #140 — HOLD (rolling)
claude Jul 28, 2026
ab99a1b
ops(autopilot): loop #141 — HOLD (rolling)
claude Jul 28, 2026
3b23934
ops(autopilot): loop #142 — HOLD (rolling)
claude Jul 28, 2026
7146a02
ops(autopilot): loop #143 — HOLD (rolling)
claude Jul 28, 2026
5d82cf1
ops(autopilot): loop #144 — HOLD (rolling)
claude Jul 28, 2026
288d84b
ops(autopilot): loop #145 — HOLD (rolling)
claude Jul 28, 2026
4af6e45
ops(autopilot): loop #146 — HOLD (rolling)
claude Jul 28, 2026
01dbf5c
ops(autopilot): loop #147 — HOLD (rolling)
claude Jul 28, 2026
f28233e
ops(autopilot): loop #148-153 (batched) — first real campaign reply (…
claude Jul 29, 2026
1cdcd1a
ops(autopilot): loop #154 — HOLD (rolling); AlphaSignal draft pending…
claude Jul 29, 2026
e4273ff
ops(autopilot): loop #155 — HOLD (rolling)
claude Jul 29, 2026
3acd887
ops(autopilot): loop #156 — HOLD (rolling)
claude Jul 29, 2026
63e4446
ops(autopilot): loop #157 — HOLD (rolling)
claude Jul 29, 2026
c937f41
ops(autopilot): loop #158 — HOLD (rolling)
claude Jul 29, 2026
f91bdbe
ops(autopilot): loop #159 — HOLD (rolling)
claude Jul 29, 2026
6736f07
ops(autopilot): loop #160 — HOLD (rolling)
claude Jul 29, 2026
92a0d78
ops(autopilot): loop #161 — HOLD (rolling)
claude Jul 29, 2026
f122e12
ops(autopilot): loop #162 — HOLD (rolling)
claude Jul 29, 2026
ed0b791
ops(autopilot): loop #163 — HOLD (rolling)
claude Jul 29, 2026
0bfdd75
ops(autopilot): loop #164 — HOLD (rolling)
claude Jul 29, 2026
ae15b64
ops(autopilot): loop #165 — HOLD (rolling)
claude Jul 29, 2026
edaa99d
ops(autopilot): loop #166 — HOLD (rolling)
claude Jul 29, 2026
0b1f735
ops(autopilot): loop #167 — HOLD (rolling)
claude Jul 29, 2026
80f3108
ops(autopilot): loop #168 — HOLD (rolling)
claude Jul 29, 2026
9518cd8
ops(autopilot): loop #169 — second sponsorship-pitch inbound (CloudSe…
claude Jul 29, 2026
76affdb
merge: adopt master's F1b corpus recount (826,644) + retire 1,085,159…
claude Jul 29, 2026
31c0de5
docs(autopilot): log run #170 (master recount merge + retired-number …
claude Jul 29, 2026
6888785
copy(facts-sync): finish the F4 3-gap sweep (reply bank) + log run #171
claude Jul 29, 2026
7e89f71
docs(autopilot): log run #172 (hold — queue exhausted, owner-gated)
claude Jul 29, 2026
40ee0fe
docs(autopilot): log run #173 (AlphaSignal decline -> gracious close …
claude Jul 29, 2026
7d6fb38
docs(autopilot): log runs #174-176 (owner outreach wave + corrections…
claude Jul 29, 2026
99515a7
docs(autopilot): log run #177 (both sponsorship threads closed by owner)
claude Jul 29, 2026
5644509
docs(autopilot): log run #178 (hold — awaiting outreach-wave replies)
claude Jul 30, 2026
42b455a
docs(autopilot): roll hold entry through run #179 (no change)
claude Jul 30, 2026
3c3ba74
docs(autopilot): roll hold entry through run #180 (no change)
claude Jul 30, 2026
23b6a42
docs(autopilot): roll hold entry through run #181 (no change)
claude Jul 30, 2026
df51d8e
docs(autopilot): roll hold entry through run #182 (PR #27 now mergeab…
claude Jul 30, 2026
f64fc97
docs(autopilot): roll hold entry through run #183 (no change)
claude Jul 30, 2026
e6da2ad
docs(autopilot): roll hold entry through run #184 (no change)
claude Jul 30, 2026
0b54856
docs(autopilot): panel v7 — 0 survivors, exhaustion verdict, hold (ru…
claude Jul 30, 2026
e190563
Merge remote-tracking branch 'origin/master' into claude/email-cron-s…
claude Jul 30, 2026
f99f824
docs(autopilot): log run #186 (hold; synced master daily-metrics)
claude Jul 30, 2026
09718b8
docs(autopilot): roll hold entry through run #187 (no change)
claude Jul 30, 2026
f504b0f
docs(autopilot): roll hold entry through run #189 (no change)
claude Jul 30, 2026
8ef3d22
docs(autopilot): roll hold entry through run #190 (no change)
claude Jul 30, 2026
1fabf79
docs(autopilot): roll hold entry through run #191 (no change)
claude Jul 30, 2026
b885488
docs(autopilot): log run #192 — first outreach-wave replies (Julian, …
claude Jul 30, 2026
b5065a8
Merge remote-tracking branch 'origin/master' into claude/email-cron-s…
claude Jul 30, 2026
d5df545
docs(autopilot): log run #193 (hold; synced owner's landing correction)
claude Jul 30, 2026
3c3d320
docs(autopilot): roll hold entry through run #194 (no change)
claude Jul 30, 2026
2ec1fcc
docs(autopilot): roll hold entry through run #195 (no change)
claude Jul 30, 2026
bb5f6da
docs(autopilot): roll hold entry through run #196 (no change)
claude Jul 30, 2026
4665ac2
docs(autopilot): roll hold entry through run #197 (no change)
claude Jul 30, 2026
6b243dd
docs(autopilot): roll hold entry through run #198 (no change)
claude Jul 30, 2026
4247a4f
docs(autopilot): roll hold entry through run #199 (sibling MONITOR ro…
claude Jul 30, 2026
0a7021e
docs(autopilot): roll hold entry through run #200 (no change)
claude Jul 30, 2026
db8abcf
docs(autopilot): roll hold entry through run #201 (no change)
claude Jul 30, 2026
41e53c7
docs(autopilot): log run #202 (hold; new day 07-31)
claude Jul 31, 2026
26c6380
docs(autopilot): roll hold entry through run #203 (no change)
claude Jul 31, 2026
3acded4
docs(autopilot): roll hold entry through run #204 (no change)
claude Jul 31, 2026
19b2978
docs(autopilot): roll hold entry through run #205 (no change)
claude Jul 31, 2026
f10ca64
docs(autopilot): roll hold entry through run #206 (no change)
claude Jul 31, 2026
95b06a3
docs(autopilot): roll hold entry through run #207 (no change)
claude Jul 31, 2026
59c75b2
docs(autopilot): roll hold entry through run #208 (no change)
claude Jul 31, 2026
5ae6f72
docs(autopilot): roll hold entry through run #209 (no change)
claude Jul 31, 2026
35bd70e
Merge remote-tracking branch 'origin/master' into claude/email-cron-s…
claude Jul 31, 2026
386df4b
docs(autopilot): roll hold through run #210 + sync master daily-metrics
claude Jul 31, 2026
c9d112b
docs(autopilot): roll hold entry through run #211 (no change)
claude Jul 31, 2026
ea3ecdb
docs(autopilot): roll hold entry through run #212 (no change)
claude Jul 31, 2026
f06544a
docs(autopilot): roll hold entry through run #213 (no change)
claude Jul 31, 2026
2fd1c78
docs(autopilot): roll hold entry through run #214 (no change)
claude Jul 31, 2026
36c8adb
docs(autopilot): roll hold entry through run #215 (no change)
claude Jul 31, 2026
321fb88
docs(autopilot): roll hold entry through run #216 (no change)
claude Jul 31, 2026
5e92052
docs(autopilot): roll hold entry through run #217 (no change)
claude Jul 31, 2026
19f72c0
docs(autopilot): roll hold entry through run #218 (no change)
claude Jul 31, 2026
20d2678
docs(autopilot): roll hold entry through run #219 (no change)
claude Jul 31, 2026
306fe1a
Merge remote-tracking branch 'origin/master' into claude/email-cron-s…
claude Jul 31, 2026
9ef5a6c
fix(readme): absolute URLs for the new veto_catches demo links
claude Jul 31, 2026
1f469e6
docs(autopilot): log run #220 (merge demo GIF + FACTS-consistency + R…
claude Jul 31, 2026
16b2d62
Merge remote-tracking branch 'origin/master' into claude/email-cron-s…
claude Jul 31, 2026
e07ed28
docs(autopilot): log run #221 (merged owner's CI fix; master green on…
claude Jul 31, 2026
3b706e9
docs(autopilot): log run #222 (Melvyn owner-sent; hold)
claude Jul 31, 2026
558cce5
docs(autopilot): roll hold entry through run #223 (no change)
claude Jul 31, 2026
2eaf003
docs(autopilot): roll hold entry through run #224 (no change)
claude Jul 31, 2026
e28ee7e
docs(autopilot): roll hold entry through run #225 (no change)
claude Jul 31, 2026
c6e01fa
docs(autopilot): log run #226 (hold; new day 08-01)
claude Aug 1, 2026
88ad37d
docs(autopilot): roll hold entry through run #227 (no change)
claude Aug 1, 2026
980125d
docs(autopilot): roll hold entry through run #228 (no change)
claude Aug 1, 2026
5ab09a6
docs(autopilot): roll hold entry through run #229 (no change)
claude Aug 1, 2026
890946a
docs(autopilot): roll hold entry through run #230 (no change)
claude Aug 1, 2026
ee52ad3
docs(autopilot): roll hold entry through run #231 (no change)
claude Aug 1, 2026
d0fbbe7
docs(autopilot): roll hold entry through run #232 (no change)
claude Aug 1, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"name": "gatecat",
"owner": {
"name": "BGML",
"email": "bogumil@bgml.ai",
"url": "https://gate.cat"
},
"plugins": [
{
"name": "gatecat",
"source": "./plugins/gatecat",
"description": "Deterministic action veto for Claude Code: blocks rm -rf, DROP TABLE, terraform destroy, disk wipes and secret exfiltration BEFORE the tool call executes. Requires `pip install gate.cat` (free, Apache-2.0).",
"version": "0.4.19"
}
]
}
53 changes: 53 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,59 @@
All notable changes to `gate.cat` will be documented in this file.


## [Unreleased] -- 0.4.20

### Fixed
- Content-vs-command false-block (issue #4 / F1): a benign
`git commit -m "...git clean -f..."` was vetoed by the delete analyzer
because it ran on the raw action while inert-literal stripping (commit
message / echo / grep bodies) only fed the regex walls. The stripped text
is now computed once and shared with both stages, so a danger pattern
quoted inside a commit message can't false-block; the bare `git clean -f`
command still blocks, and recall stays 43/43 with 0 benign false-blocks.
log/raise still use the original action (verbatim audit).
- The first-veto Team nudge now stays silent when `GATECAT_CLOUD_API_KEY` is
set -- a paying Cloud customer already has the off-machine record the nudge
pitches (the CLI nudge already did this; the post-veto path did not). No
once-per-machine flag is written in that case, so the nudge returns if Cloud
is dropped.
- The policy-pack hint is suppressed for a pack whose module is already loaded
via `GATECAT_EXTRA_POLICIES` (suppress-only: it never suggests a *different*
pack) -- a Fintech-pack buyer is no longer pitched the Fintech pack.


## [0.4.19] -- the hook arms itself (2026-07-23)

### Added
- `gate.cat setup claude-code [--global] [--dry-run]`: one-command PreToolUse
hook activation -- idempotent merge that preserves foreign keys and other
hooks, `<file>.gatecat.bak` backup before any modifying write, fail-closed
on unparsable settings.json (prints the manual block instead of touching
the file). `gate.cat doctor`: minimal install diagnosis (version, hook
binary on PATH, where the hook is registered, protection state). The
biggest funnel leak was an installed pip package whose hook was never
registered -- this automates exactly what the README documents.

### Changed
- Policy-pack hint v2 (`gatecat/_pack_hint.py`): now also detects the
HTTP-API Breadth pack -- via stack-specific CLIs only (`datadog-ci`,
`sentry-cli`; deliberately NO docker/gh/curl, which sit on every dev box
and would destroy the precision of a once-per-machine hint). All three
hints link the pack preview page
(`https://gate.cat/packs.html?source=hint#<pack>`) -- full scope before
checkout -- instead of a bare Stripe payment link. No policy, recall, or
bypass changes.

### Fixed
- `gatecat.__version__` now tracks pyproject (the 0.4.18 wheel shipped
printing "0.4.17" -- distribution metadata was correct, the runtime string
was not); a regression test ties the literal, both plugin manifests and
the pack-hint anchors to the release.
- `gate.cat report` footer shipped a literal `*` inside its pasteable URL;
the post-veto nudge CTA was the only untagged conversion surface (now
`?source=nudge-veto`).


## [0.4.18] -- the listing sells, the CLI hints honestly (2026-07-22)

### Added
Expand Down
2 changes: 1 addition & 1 deletion COMPARISON.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ blocks it. See F4 in [FACTS.md](FACTS.md).
## What gate.cat is NOT

- Not a hallucination / fact-checker (lookup channel empty by default).
- Not a frontier-model guardrail (signal weakens there — AUC 0.68–0.71 vs 0.77–0.90 on 7–30B).
- Not a frontier-model guardrail (signal weakens there — AUC 0.68–0.71 vs 0.77–0.90 on 7–30B; internal measurement, artifact not yet published — FACTS F6/F7).
- Not blanket coverage: it owns OWASP **LLM06 (Excessive Agency)** and part of LLM01/05; it does
not cover the other seven.
- Certain only about what it **blocks**. An unmatched action is *unchecked*, not *safe*.
Expand Down
1 change: 1 addition & 0 deletions FACTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ Every number gate.cat uses publicly, with its source and allowed wording.
| F12 | Line coverage | 73% (6339 statements) in CI; 74% locally with the armed-gate-only tests included | CI run [28942984519](https://github.com/BGMLAI/gate.cat/actions/runs/28942984519) — pytest `--cov=gatecat`, printed in every CI job | 2026-07-08 (master `b9a75c0`) | "73% statement coverage, printed by CI on every run" | rounding up to "3/4 of the code is tested"; hiding that proxy/CLI paths are the least covered |
| F13 | PyPI download proxy | 2,019 downloads excluding known mirrors in the trailing-month API window | `https://pypistats.org/api/packages/gate.cat/recent` and `METRICS.log`, read 2026-07-13 | 2026-07-13 | "2,019 PyPI downloads excluding known mirrors in the measured trailing window; this clears the 100-install proxy" | "2,019 users", "2,019 unique installs", or treating downloads as unique people |
| F13a | PyPI download proxy (re-pinned) | **2,662** excluding known mirrors / **9,611** including mirrors, over `2026-07-03 … 2026-07-28` — which is the package's entire published life, not a rolling window carved out of a longer history | `https://pypistats.org/api/packages/gate.cat/overall` summed per category, cross-checked against `/recent` (`last_month=2662`, `last_week=134`, `last_day=0`); both read 2026-07-29 | 2026-07-29 (supersedes F13 for current copy; F13 stays valid in dated/version-scoped contexts) | "2,662 PyPI downloads excluding known mirrors between 3 and 28 July 2026 — downloads, not users; mirrors, CI and bots are inside that figure" | "2,662 users"; "2,662 installs"; quoting the 9,611 figure without saying it includes mirrors; implying a steady-state monthly run-rate from a package's first month |
| F14 | Scaffold-overwrite class (SCAFFOLD_OVERWRITE) | WARN-only (never blocks); v1 fire-list = create-vite family + degit only; adds 0 to F1a/F4 block or false-block counts | `tests/test_scaffold_overwrite.py` (43 twin cases) + `analyze_scaffold_overwrite` in `gatecat/integrations/action_analysis.py`; verified 2026-07-24: F1a still 43/43 + 0/13, F4 still 178/178 + 1/129. This is the FIRST analyzer that reads the live filesystem — its verdict is deterministic GIVEN command+cwd+env+fs-state, but machine/cwd-state-dependent, NOT string-pure like every other check. | loop branch, 2026-07-24 (unreleased; rides 0.4.19/0.4.20) | "gate.cat flags (WARN, advisory) a create-vite/degit scaffold into an existing non-empty dir — the #80730 overwrite shape — without blocking it; adds no false-blocks" | describing a WARN as "prevention"/"blocks" (it surfaces, it does not veto); implying it covers scaffolders beyond create-vite+degit; attaching it to the "Deterministic" claim without the machine-state caveat |

## Honest-limits block (must accompany capability claims)

Expand Down
2 changes: 2 additions & 0 deletions PRICING.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,8 @@ benign twin — the same bar as the core gate.
| **PaaS** | `vercel remove`, `netlify sites:delete`, `fly/heroku apps destroy`, `railway down`, `render/supabase delete` — deploy/list/info stay allowed | [**€29 →**](https://buy.stripe.com/3cI5kw3pbaLeeBO2Vo67S0d) |
| **HTTP-API Breadth** | destructive raw-HTTP calls to Datadog, Sentry, Slack admin, Atlassian, Docker Hub, PyPI, … — the modality CLI-verb walls never see (requires gate.cat ≥ 0.4.9) | [**€29 →**](https://buy.stripe.com/aFa8wIgbX06AdxK67A67S0e) |

Full scope of every pack, listed before you pay:
[gate.cat/packs.html](https://gate.cat/packs.html?source=pricing-md).
Delivery is fully automated: pay → instant download page (wheel + install
instructions). Install = `pip install <wheel>` + one env var
(`GATECAT_EXTRA_POLICIES`). VAT is calculated automatically at checkout.
Expand Down
Loading