thumbgate 1.14.1 → 1.16.0

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 (150) hide show
  1. package/.claude-plugin/marketplace.json +6 -6
  2. package/.claude-plugin/plugin.json +3 -3
  3. package/.well-known/llms.txt +5 -5
  4. package/.well-known/mcp/server-card.json +1 -1
  5. package/README.md +60 -35
  6. package/adapters/chatgpt/openapi.yaml +118 -2
  7. package/adapters/claude/.mcp.json +2 -2
  8. package/adapters/mcp/server-stdio.js +217 -84
  9. package/adapters/opencode/opencode.json +1 -1
  10. package/bench/prompt-eval-suite.json +5 -1
  11. package/bin/cli.js +211 -8
  12. package/config/enforcement.json +59 -7
  13. package/config/evals/agent-safety-eval.json +338 -22
  14. package/config/gates/default.json +33 -0
  15. package/config/gates/routine.json +43 -0
  16. package/config/github-about.json +3 -3
  17. package/config/mcp-allowlists.json +4 -0
  18. package/config/merge-quality-checks.json +2 -1
  19. package/config/model-candidates.json +131 -0
  20. package/openapi/openapi.yaml +118 -2
  21. package/package.json +70 -51
  22. package/public/blog.html +7 -7
  23. package/public/codex-plugin.html +13 -7
  24. package/public/compare.html +29 -23
  25. package/public/dashboard.html +105 -12
  26. package/public/guide.html +28 -28
  27. package/public/index.html +233 -97
  28. package/public/learn.html +87 -20
  29. package/public/lessons.html +26 -2
  30. package/public/numbers.html +271 -0
  31. package/public/pro.html +89 -19
  32. package/scripts/agent-audit-trace.js +55 -0
  33. package/scripts/agent-memory-lifecycle.js +96 -0
  34. package/scripts/agent-readiness-plan.js +118 -0
  35. package/scripts/agentic-data-pipeline.js +21 -1
  36. package/scripts/agents-sdk-sandbox-plan.js +57 -0
  37. package/scripts/ai-org-governance.js +98 -0
  38. package/scripts/ai-search-distribution.js +43 -0
  39. package/scripts/artifact-agent-plan.js +81 -0
  40. package/scripts/billing.js +27 -8
  41. package/scripts/cli-feedback.js +2 -1
  42. package/scripts/cli-schema.js +60 -5
  43. package/scripts/code-mode-mcp-plan.js +71 -0
  44. package/scripts/commercial-offer.js +1 -1
  45. package/scripts/context-engine.js +1 -2
  46. package/scripts/context-manager.js +4 -1
  47. package/scripts/contextfs.js +214 -32
  48. package/scripts/dashboard-render-spec.js +1 -1
  49. package/scripts/dashboard.js +275 -9
  50. package/scripts/decision-journal.js +13 -3
  51. package/scripts/document-workflow-governance.js +62 -0
  52. package/scripts/enterprise-agent-rollout.js +34 -0
  53. package/scripts/experience-replay-governance.js +69 -0
  54. package/scripts/export-hf-dataset.js +1 -1
  55. package/scripts/feedback-loop.js +141 -9
  56. package/scripts/feedback-to-rules.js +17 -23
  57. package/scripts/gates-engine.js +4 -6
  58. package/scripts/growth-campaigns.js +49 -0
  59. package/scripts/harness-selector.js +145 -1
  60. package/scripts/hybrid-supervisor-agent.js +64 -0
  61. package/scripts/inference-cache-policy.js +72 -0
  62. package/scripts/inference-economics.js +53 -0
  63. package/scripts/internal-agent-bootstrap.js +12 -2
  64. package/scripts/knowledge-layer-plan.js +108 -0
  65. package/scripts/lesson-canonical.js +181 -0
  66. package/scripts/lesson-db.js +71 -10
  67. package/scripts/lesson-inference.js +183 -44
  68. package/scripts/lesson-search.js +4 -1
  69. package/scripts/lesson-synthesis.js +23 -2
  70. package/scripts/llm-client.js +157 -26
  71. package/scripts/mailer/resend-mailer.js +112 -1
  72. package/scripts/mcp-transport-strategy.js +66 -0
  73. package/scripts/memory-store-governance.js +60 -0
  74. package/scripts/meta-agent-loop.js +7 -13
  75. package/scripts/model-access-eligibility.js +38 -0
  76. package/scripts/model-migration-readiness.js +55 -0
  77. package/scripts/native-messaging-audit.js +514 -0
  78. package/scripts/operational-integrity.js +96 -3
  79. package/scripts/otel-declarative-config.js +56 -0
  80. package/scripts/perplexity-client.js +1 -1
  81. package/scripts/post-training-governance.js +34 -0
  82. package/scripts/pr-manager.js +47 -7
  83. package/scripts/private-core-boundary.js +72 -0
  84. package/scripts/production-agent-readiness.js +40 -0
  85. package/scripts/profile-router.js +16 -1
  86. package/scripts/prompt-eval.js +564 -32
  87. package/scripts/prompt-programs.js +93 -0
  88. package/scripts/provider-action-normalizer.js +585 -0
  89. package/scripts/rule-validator.js +285 -0
  90. package/scripts/scaling-law-claims.js +60 -0
  91. package/scripts/security-scanner.js +1 -1
  92. package/scripts/self-distill-agent.js +7 -32
  93. package/scripts/seo-gsd.js +400 -43
  94. package/scripts/skill-rag-router.js +53 -0
  95. package/scripts/spec-gate.js +1 -1
  96. package/scripts/student-consistent-training.js +73 -0
  97. package/scripts/synthetic-data-provenance.js +98 -0
  98. package/scripts/task-context-result.js +81 -0
  99. package/scripts/telemetry-analytics.js +149 -0
  100. package/scripts/thompson-sampling.js +2 -2
  101. package/scripts/token-savings.js +7 -6
  102. package/scripts/token-tco.js +46 -0
  103. package/scripts/tool-registry.js +75 -3
  104. package/scripts/verification-loop.js +10 -1
  105. package/scripts/verifier-scoring.js +71 -0
  106. package/scripts/workflow-sentinel.js +284 -28
  107. package/scripts/workspace-agent-routines.js +118 -0
  108. package/skills/thumbgate/SKILL.md +1 -1
  109. package/src/api/server.js +434 -120
  110. package/.claude-plugin/README.md +0 -170
  111. package/adapters/README.md +0 -12
  112. package/scripts/analytics-report.js +0 -328
  113. package/scripts/autonomous-workflow.js +0 -377
  114. package/scripts/billing-setup.js +0 -109
  115. package/scripts/creator-campaigns.js +0 -239
  116. package/scripts/cross-encoder-reranker.js +0 -235
  117. package/scripts/daemon-manager.js +0 -108
  118. package/scripts/decision-trace.js +0 -354
  119. package/scripts/delegation-runtime.js +0 -896
  120. package/scripts/dispatch-brief.js +0 -159
  121. package/scripts/distribution-surfaces.js +0 -110
  122. package/scripts/feedback-history-distiller.js +0 -382
  123. package/scripts/funnel-analytics.js +0 -35
  124. package/scripts/history-distiller.js +0 -200
  125. package/scripts/hosted-job-launcher.js +0 -256
  126. package/scripts/intent-router.js +0 -392
  127. package/scripts/lesson-reranker.js +0 -263
  128. package/scripts/lesson-retrieval.js +0 -148
  129. package/scripts/managed-lesson-agent.js +0 -183
  130. package/scripts/operational-dashboard.js +0 -103
  131. package/scripts/operational-summary.js +0 -129
  132. package/scripts/operator-artifacts.js +0 -608
  133. package/scripts/optimize-context.js +0 -17
  134. package/scripts/org-dashboard.js +0 -206
  135. package/scripts/partner-orchestration.js +0 -146
  136. package/scripts/predictive-insights.js +0 -356
  137. package/scripts/pulse.js +0 -80
  138. package/scripts/reflector-agent.js +0 -221
  139. package/scripts/sales-pipeline.js +0 -681
  140. package/scripts/session-episode-store.js +0 -329
  141. package/scripts/session-health-sensor.js +0 -242
  142. package/scripts/session-report.js +0 -120
  143. package/scripts/swarm-coordinator.js +0 -81
  144. package/scripts/tool-kpi-tracker.js +0 -12
  145. package/scripts/webhook-delivery.js +0 -62
  146. package/scripts/workflow-sprint-intake.js +0 -475
  147. package/skills/agent-memory/SKILL.md +0 -97
  148. package/skills/solve-architecture-autonomy/SKILL.md +0 -17
  149. package/skills/solve-architecture-autonomy/tool.js +0 -33
  150. package/skills/thumbgate-feedback/SKILL.md +0 -49
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "thumbgate",
3
- "version": "1.14.1",
4
- "description": "Self-improving agent governance: type thumbs-up or thumbs-down on any AI agent action. ThumbGate turns every mistake into a prevention rule and blocks the pattern from repeating. One thumbs-down, never again. 33 pre-action gates, budget enforcement, and self-protection for Claude Code, Cursor, Codex, Gemini CLI, and Amp.",
3
+ "version": "1.16.0",
4
+ "description": "Self-improving agent governance: type thumbs-up or thumbs-down on any AI agent action. ThumbGate turns every mistake into a prevention rule and blocks the pattern from repeating. One thumbs-down, never again. 33 pre-action checks, budget enforcement, and self-protection for Claude Code, Cursor, Codex, Gemini CLI, and Amp.",
5
5
  "homepage": "https://thumbgate-production.up.railway.app",
6
6
  "repository": {
7
7
  "type": "git",
@@ -15,7 +15,6 @@
15
15
  "thumbgate": "bin/cli.js"
16
16
  },
17
17
  "files": [
18
- ".claude-plugin/README.md",
19
18
  ".claude-plugin/marketplace.json",
20
19
  ".claude-plugin/plugin.json",
21
20
  ".well-known/",
@@ -42,13 +41,19 @@
42
41
  "public/index.html",
43
42
  "public/learn.html",
44
43
  "public/lessons.html",
44
+ "public/numbers.html",
45
45
  "public/pro.html",
46
46
  "scripts/access-anomaly-detector.js",
47
+ "scripts/agent-audit-trace.js",
48
+ "scripts/agent-memory-lifecycle.js",
47
49
  "scripts/agent-readiness.js",
50
+ "scripts/agent-readiness-plan.js",
48
51
  "scripts/agentic-data-pipeline.js",
49
- "scripts/analytics-report.js",
52
+ "scripts/agents-sdk-sandbox-plan.js",
53
+ "scripts/ai-org-governance.js",
54
+ "scripts/ai-search-distribution.js",
50
55
  "scripts/analytics-window.js",
51
- "scripts/autonomous-workflow.js",
56
+ "scripts/artifact-agent-plan.js",
52
57
  "scripts/autoresearch-runner.js",
53
58
  "scripts/async-job-runner.js",
54
59
  "scripts/audit-trail.js",
@@ -56,7 +61,6 @@
56
61
  "scripts/auto-wire-hooks.js",
57
62
  "scripts/bayes-optimal-gate.js",
58
63
  "scripts/belief-update.js",
59
- "scripts/billing-setup.js",
60
64
  "scripts/billing.js",
61
65
  "scripts/bot-detection.js",
62
66
  "scripts/bot-detector.js",
@@ -68,6 +72,7 @@
68
72
  "scripts/cli-status.js",
69
73
  "scripts/cli-telemetry.js",
70
74
  "scripts/cloudflare-dynamic-sandbox.js",
75
+ "scripts/code-mode-mcp-plan.js",
71
76
  "scripts/code-reasoning.js",
72
77
  "scripts/codegraph-context.js",
73
78
  "scripts/commercial-offer.js",
@@ -75,23 +80,19 @@
75
80
  "scripts/context-engine.js",
76
81
  "scripts/contextfs.js",
77
82
  "scripts/conversation-context.js",
78
- "scripts/creator-campaigns.js",
79
- "scripts/cross-encoder-reranker.js",
80
83
  "scripts/context-footprint.js",
81
84
  "scripts/codex-self-heal.js",
82
- "scripts/daemon-manager.js",
83
85
  "scripts/dashboard-render-spec.js",
84
86
  "scripts/dashboard.js",
85
87
  "scripts/decision-journal.js",
86
- "scripts/decision-trace.js",
87
- "scripts/delegation-runtime.js",
88
88
  "scripts/durability/step.js",
89
- "scripts/dispatch-brief.js",
90
- "scripts/distribution-surfaces.js",
91
89
  "scripts/docker-sandbox-planner.js",
92
90
  "scripts/document-intake.js",
91
+ "scripts/document-workflow-governance.js",
92
+ "scripts/enterprise-agent-rollout.js",
93
93
  "scripts/evolution-state.js",
94
94
  "scripts/experiment-tracker.js",
95
+ "scripts/experience-replay-governance.js",
95
96
  "scripts/explore-subcommands.js",
96
97
  "scripts/explore.js",
97
98
  "scripts/export-databricks-bundle.js",
@@ -99,7 +100,6 @@
99
100
  "scripts/export-hf-dataset.js",
100
101
  "scripts/failure-diagnostics.js",
101
102
  "scripts/feedback-attribution.js",
102
- "scripts/feedback-history-distiller.js",
103
103
  "scripts/feedback-loop.js",
104
104
  "scripts/feedback-paths.js",
105
105
  "scripts/feedback-quality.js",
@@ -108,79 +108,79 @@
108
108
  "scripts/feedback-to-rules.js",
109
109
  "scripts/filesystem-search.js",
110
110
  "scripts/fs-utils.js",
111
- "scripts/funnel-analytics.js",
112
111
  "scripts/gate-stats.js",
113
112
  "scripts/gate-templates.js",
114
113
  "scripts/gates-engine.js",
114
+ "scripts/growth-campaigns.js",
115
115
  "scripts/harness-selector.js",
116
116
  "scripts/hf-papers.js",
117
- "scripts/history-distiller.js",
118
117
  "scripts/hook-runtime.js",
119
118
  "scripts/hook-thumbgate-cache-updater.js",
120
119
  "scripts/hosted-config.js",
121
- "scripts/hosted-job-launcher.js",
122
120
  "scripts/hybrid-feedback-context.js",
121
+ "scripts/hybrid-supervisor-agent.js",
123
122
  "scripts/install-mcp.js",
124
- "scripts/intent-router.js",
123
+ "scripts/inference-cache-policy.js",
124
+ "scripts/inference-economics.js",
125
125
  "scripts/internal-agent-bootstrap.js",
126
126
  "scripts/intervention-policy.js",
127
127
  "scripts/jsonl-watcher.js",
128
+ "scripts/lesson-canonical.js",
128
129
  "scripts/lesson-db.js",
129
130
  "scripts/lesson-inference.js",
130
- "scripts/lesson-reranker.js",
131
- "scripts/lesson-retrieval.js",
132
131
  "scripts/lesson-rotation.js",
133
132
  "scripts/lesson-search.js",
134
133
  "scripts/lesson-synthesis.js",
134
+ "scripts/knowledge-layer-plan.js",
135
+ "scripts/rule-validator.js",
135
136
  "scripts/license.js",
136
137
  "scripts/llm-client.js",
137
138
  "scripts/mailer/index.js",
138
139
  "scripts/mailer/resend-mailer.js",
139
140
  "scripts/local-model-profile.js",
140
- "scripts/managed-lesson-agent.js",
141
141
  "scripts/mcp-config.js",
142
142
  "scripts/mcp-policy.js",
143
+ "scripts/mcp-transport-strategy.js",
144
+ "scripts/memory-store-governance.js",
143
145
  "scripts/memory-firewall.js",
144
146
  "scripts/meta-agent-loop.js",
147
+ "scripts/model-access-eligibility.js",
148
+ "scripts/model-migration-readiness.js",
145
149
  "scripts/multimodal-retrieval-plan.js",
150
+ "scripts/native-messaging-audit.js",
146
151
  "scripts/natural-language-harness.js",
147
152
  "scripts/obsidian-export.js",
148
- "scripts/operational-dashboard.js",
153
+ "scripts/otel-declarative-config.js",
149
154
  "scripts/operational-integrity.js",
150
- "scripts/operational-summary.js",
151
- "scripts/operator-artifacts.js",
152
- "scripts/optimize-context.js",
153
- "scripts/org-dashboard.js",
154
- "scripts/partner-orchestration.js",
155
155
  "scripts/perplexity-client.js",
156
- "scripts/predictive-insights.js",
157
156
  "scripts/pr-manager.js",
157
+ "scripts/private-core-boundary.js",
158
158
  "scripts/pro-local-dashboard.js",
159
159
  "scripts/problem-detail.js",
160
160
  "scripts/product-feedback.js",
161
+ "scripts/provider-action-normalizer.js",
161
162
  "scripts/profile-router.js",
163
+ "scripts/prompt-programs.js",
162
164
  "scripts/prompt-eval.js",
163
165
  "scripts/prompt-guard.js",
166
+ "scripts/post-training-governance.js",
167
+ "scripts/production-agent-readiness.js",
164
168
  "scripts/published-cli.js",
165
- "scripts/pulse.js",
166
169
  "scripts/rate-limiter.js",
167
- "scripts/reflector-agent.js",
168
170
  "scripts/risk-scorer.js",
169
171
  "scripts/rlaif-self-audit.js",
170
172
  "scripts/rubric-engine.js",
171
- "scripts/sales-pipeline.js",
172
173
  "scripts/secret-scanner.js",
173
174
  "scripts/security-scanner.js",
174
175
  "scripts/self-distill-agent.js",
175
176
  "scripts/self-heal.js",
177
+ "scripts/scaling-law-claims.js",
176
178
  "scripts/semantic-dedup.js",
177
179
  "scripts/semantic-layer.js",
178
180
  "scripts/seo-gsd.js",
179
- "scripts/session-episode-store.js",
180
- "scripts/session-health-sensor.js",
181
- "scripts/session-report.js",
182
181
  "scripts/settings-hierarchy.js",
183
182
  "scripts/skill-generator.js",
183
+ "scripts/skill-rag-router.js",
184
184
  "scripts/slo-alert-engine.js",
185
185
  "scripts/spec-gate.js",
186
186
  "scripts/statusline-cache-path.js",
@@ -191,24 +191,26 @@
191
191
  "scripts/statusline-meta.js",
192
192
  "scripts/statusline-tower.js",
193
193
  "scripts/statusline.sh",
194
- "scripts/swarm-coordinator.js",
194
+ "scripts/student-consistent-training.js",
195
+ "scripts/synthetic-data-provenance.js",
196
+ "scripts/task-context-result.js",
195
197
  "scripts/telemetry-analytics.js",
196
198
  "scripts/thompson-sampling.js",
197
199
  "scripts/thumbgate-search.js",
200
+ "scripts/token-tco.js",
198
201
  "scripts/token-savings.js",
199
- "scripts/tool-kpi-tracker.js",
200
202
  "scripts/tool-registry.js",
201
203
  "scripts/user-profile.js",
202
204
  "scripts/validate-workflow-contract.js",
203
205
  "scripts/vector-store.js",
206
+ "scripts/verifier-scoring.js",
204
207
  "scripts/verification-loop.js",
205
- "scripts/webhook-delivery.js",
206
208
  "scripts/workflow-runs.js",
207
209
  "scripts/workflow-sentinel.js",
208
- "scripts/workflow-sprint-intake.js",
210
+ "scripts/workspace-agent-routines.js",
209
211
  "scripts/workspace-evolver.js",
210
212
  "scripts/xmemory-lite.js",
211
- "skills/",
213
+ "skills/thumbgate/SKILL.md",
212
214
  "src/"
213
215
  ],
214
216
  "scripts": {
@@ -244,7 +246,6 @@
244
246
  "social:poll:instagram": "node scripts/social-analytics/pollers/instagram.js",
245
247
  "social:poll:tiktok": "node scripts/social-analytics/pollers/tiktok.js",
246
248
  "social:poll:linkedin": "node scripts/social-analytics/pollers/linkedin.js",
247
- "social:poll:x": "node scripts/social-analytics/pollers/x.js",
248
249
  "social:poll:reddit": "node scripts/social-analytics/pollers/reddit.js",
249
250
  "social:poll:threads": "node scripts/social-analytics/pollers/threads.js",
250
251
  "social:poll:youtube": "node scripts/social-analytics/pollers/youtube.js",
@@ -265,15 +266,18 @@
265
266
  "trace:eval": "node scripts/decision-trace.js eval",
266
267
  "social:reply-monitor": "node scripts/social-reply-monitor.js",
267
268
  "social:reply-monitor:dry": "node scripts/social-reply-monitor.js --dry-run",
268
- "test": "npm run test:schema && npm run test:loop && npm run test:dpo && npm run test:kto && npm run test:api && npm run test:proof && npm run test:e2e && npm run test:rlaif && npm run test:attribution && npm run test:quality && npm run test:intelligence && npm run test:training-export && npm run test:deployment && npm run test:operational-integrity && npm run test:workflow && npm run test:billing && npm run test:cli && npm run test:watcher && npm run test:autoresearch && npm run test:ops && npm run test:session-analyzer && npm run test:tessl && npm run test:gates && npm run test:evoskill && npm run test:gates-hardening && npm run test:workers && npm run test:social-analytics && npm run test:memalign && npm run test:xmemory-lite && npm run test:filesystem-search && npm run test:zernio && npm run test:platform-limits && npm run test:post-video && npm run test:post-everywhere-instagram && npm run test:post-everywhere-channels && npm run test:zernio-canonical-pollers && npm run test:zernio-status && npm run test:obsidian-export && npm run test:lesson-db && npm run test:lesson-rotation && npm run test:memory-dedup && npm run test:feedback-quality && npm run test:sync-version && npm run test:check-congruence && npm run test:tool-registry && npm run test:feedback-to-rules && npm run test:memory-firewall && npm run test:belief-update && npm run test:hosted-config && npm run test:operational-summary && npm run test:operator-artifacts && npm run test:operator-key-auth && npm run test:cloudflare-sandbox && npm run test:mcp-config && npm run test:plan-gate && npm run test:pulse && npm run test:semantic-layer && npm run test:data-pipeline && npm run test:optimize-context && npm run test:principle-extractor && npm run test:analytics-window && npm run test:funnel-analytics && npm run test:experiment-tracker && npm run test:build-metadata && npm run test:context-engine && npm run test:hf-papers && npm run test:marketing-experiment && npm run test:seo-gsd && npm run test:verify-run && npm run test:export-dpo-pairs && npm run test:export-hf-dataset && npm run test:license && npm run test:bot-detector && npm run test:postinstall && npm run test:funnel-invariants && npm run test:cli-telemetry && npm run test:pro-parity && npm run test:model-tier-router && npm run test:computer-use-firewall && npm run test:skill-exporter && npm run test:statusline && npm run test:evolution && npm run test:org-dashboard && npm run test:multi-hop-recall && npm run test:synthetic-dpo && npm run test:thumbgate-skill && npm run test:learn-hub && npm run test:feedback-fallback && npm run test:metaclaw && npm run test:server-lock && npm run test:control-tower && npm run test:pii-scanner && npm run test:data-governance && npm run test:lesson-inference && npm run test:semantic-dedup && npm run test:fs-utils && npm run test:cli-schema && npm run test:explore && npm run test:lesson-reranker && npm run test:lesson-retrieval && npm run test:cross-encoder && npm run test:reflector-agent && npm run test:feedback-session && npm run test:feedback-history-distiller && npm run test:hallucination-detector && npm run test:history-distiller && npm run test:predictive-insights && npm run test:prove-predictive-insights && npm run test:statusbar-cli && npm run test:generate-instagram-card && npm run test:instagram-thumbgate-post && npm run test:publish-instagram-thumbgate && npm run test:lesson-synthesis && npm run test:background-governance && npm run test:memory-migration && npm run test:prompt-dlp && npm run test:ephemeral-store && npm run test:agent-security && npm run test:skill-progressive && npm run test:per-step-scoring && npm run test:weekly-auto-post && npm run test:social-post-hourly && npm run test:social-quality-gate && npm run test:a2ui-engine && npm run test:gate-satisfy && npm run test:money-watcher && npm run test:budget && npm run test:quick-start && npm run test:utm && npm run test:product-feedback && npm run test:feedback-root-consolidator && npm run test:engagement-audit && npm run test:install-growth-automation && npm run test:publish-thumbgate-launch && npm run test:reconcile-thumbgate-campaign && npm run test:reddit-publisher && npm run test:schedule-thumbgate-campaign && npm run test:social-reply-monitor && npm run test:sync-launch-assets && npm run test:ai-search-visibility && npm run test:perplexity && npm run test:security-scanner && npm run test:llm-client && npm run test:managed-lesson-agent && npm run test:self-distill && npm run test:meta-agent && npm run test:harness-selector && npm run test:thumbgate-bench && npm run test:seo-guides && npm run test:enforcement-loop && npm run test:cli-agent-experience && npm run test:bot-detection && npm run test:checkout-bot-guard && npm run test:session-health && npm run test:session-episodes && npm run test:spec-gate && npm run test:decision-trace && npm run test:dashboard-insights && npm run test:prompt-eval && npm run test:demo-voiceover && npm run test:gate-coherence && npm run test:gate-eval && npm run test:high-roi && npm run test:public-static-assets && npm run test:token-savings && npm run test:workflow-gate-checkpoint && npm run test:lesson-export-import && npm run test:landing-page-claims && npm run test:dashboard-deeplink-e2e && npm run test:public-package-parity && npm run test:token-savings-dashboard && npm run test:cursor-wiring && npm run test:pretooluse-injection && npm run test:recent-corrective-context && npm run test:durability-step && npm run test:mailer && npm run test:brand-assets && npm run test:enforcement-teeth && npm run test:bayes-optimal-gate && npm run test:swarm-coordinator && npm run test:session-report && npm run test:require-evidence-gate",
269
+ "test": "npm run test:schema && npm run test:loop && npm run test:dpo && npm run test:kto && npm run test:api && npm run test:proof && npm run test:e2e && npm run test:rlaif && npm run test:attribution && npm run test:quality && npm run test:intelligence && npm run test:training-export && npm run test:deployment && npm run test:operational-integrity && npm run test:workflow && npm run test:billing && npm run test:cli && npm run test:watcher && npm run test:autoresearch && npm run test:ops && npm run test:session-analyzer && npm run test:tessl && npm run test:gates && npm run test:evoskill && npm run test:gates-hardening && npm run test:workers && npm run test:social-analytics && npm run test:memalign && npm run test:xmemory-lite && npm run test:filesystem-search && npm run test:zernio && npm run test:platform-limits && npm run test:post-video && npm run test:post-everywhere-instagram && npm run test:post-everywhere-channels && npm run test:post-everywhere-zernio-default && npm run test:zernio-canonical-pollers && npm run test:zernio-status && npm run test:obsidian-export && npm run test:lesson-db && npm run test:lesson-rotation && npm run test:memory-dedup && npm run test:feedback-quality && npm run test:sync-version && npm run test:check-congruence && npm run test:tool-registry && npm run test:feedback-to-rules && npm run test:memory-firewall && npm run test:belief-update && npm run test:hosted-config && npm run test:operational-summary && npm run test:operational-dashboard && npm run test:operator-artifacts && npm run test:operator-key-auth && npm run test:cloudflare-sandbox && npm run test:mcp-config && npm run test:plan-gate && npm run test:pulse && npm run test:semantic-layer && npm run test:data-pipeline && npm run test:optimize-context && npm run test:principle-extractor && npm run test:analytics-window && npm run test:funnel-analytics && npm run test:experiment-tracker && npm run test:build-metadata && npm run test:context-engine && npm run test:hf-papers && npm run test:marketing-experiment && npm run test:seo-gsd && npm run test:verify-run && npm run test:export-dpo-pairs && npm run test:export-hf-dataset && npm run test:license && npm run test:bot-detector && npm run test:postinstall && npm run test:funnel-invariants && npm run test:cli-telemetry && npm run test:pro-parity && npm run test:model-tier-router && npm run test:computer-use-firewall && npm run test:skill-exporter && npm run test:statusline && npm run test:evolution && npm run test:org-dashboard && npm run test:multi-hop-recall && npm run test:synthetic-dpo && npm run test:thumbgate-skill && npm run test:learn-hub && npm run test:feedback-fallback && npm run test:metaclaw && npm run test:server-lock && npm run test:control-tower && npm run test:pii-scanner && npm run test:data-governance && npm run test:lesson-inference && npm run test:semantic-dedup && npm run test:fs-utils && npm run test:cli-schema && npm run test:explore && npm run test:lesson-reranker && npm run test:lesson-retrieval && npm run test:cross-encoder && npm run test:reflector-agent && npm run test:feedback-session && npm run test:feedback-history-distiller && npm run test:hallucination-detector && npm run test:history-distiller && npm run test:predictive-insights && npm run test:prove-predictive-insights && npm run test:statusbar-cli && npm run test:generate-instagram-card && npm run test:instagram-thumbgate-post && npm run test:publish-instagram-thumbgate && npm run test:lesson-synthesis && npm run test:lesson-canonical && npm run test:background-governance && npm run test:memory-migration && npm run test:prompt-dlp && npm run test:ephemeral-store && npm run test:agent-security && npm run test:skill-progressive && npm run test:per-step-scoring && npm run test:weekly-auto-post && npm run test:social-post-hourly && npm run test:social-quality-gate && npm run test:a2ui-engine && npm run test:gate-satisfy && npm run test:money-watcher && npm run test:budget && npm run test:quick-start && npm run test:utm && npm run test:product-feedback && npm run test:feedback-root-consolidator && npm run test:engagement-audit && npm run test:install-growth-automation && npm run test:publish-thumbgate-launch && npm run test:reconcile-thumbgate-campaign && npm run test:reddit-publisher && npm run test:schedule-thumbgate-campaign && npm run test:social-reply-monitor && npm run test:sync-launch-assets && npm run test:ai-search-visibility && npm run test:perplexity && npm run test:security-scanner && npm run test:llm-client && npm run test:managed-lesson-agent && npm run test:self-distill && npm run test:meta-agent && npm run test:harness-selector && npm run test:thumbgate-bench && npm run test:seo-guides && npm run test:enforcement-loop && npm run test:cli-agent-experience && npm run test:bot-detection && npm run test:checkout-bot-guard && npm run test:session-health && npm run test:session-episodes && npm run test:spec-gate && npm run test:decision-trace && npm run test:dashboard-insights && npm run test:telemetry-tracked-link-slug && npm run test:prompt-eval && npm run test:demo-voiceover && npm run test:gate-coherence && npm run test:gate-eval && npm run test:high-roi && npm run test:public-static-assets && npm run test:token-savings && npm run test:numbers-page && npm run test:workflow-gate-checkpoint && npm run test:lesson-export-import && npm run test:landing-page-claims && npm run test:competitive-positioning-marketing && npm run test:dashboard-deeplink-e2e && npm run test:public-package-parity && npm run test:token-savings-dashboard && npm run test:cursor-wiring && npm run test:pretooluse-injection && npm run test:recent-corrective-context && npm run test:durability-step && npm run test:mailer && npm run test:brand-assets && npm run test:enforcement-teeth && npm run test:bayes-optimal-gate && npm run test:swarm-coordinator && npm run test:session-report && npm run test:require-evidence-gate && npm run test:rule-validator && npm run test:bluesky-atproto && npm run test:social-reply-monitor-bluesky && npm run test:bluesky-delete-replies && npm run test:architect-kit-memory-bridge && npm run test:sonar-review-hotspots && npm run test:actionable-remediations && npm run test:public-core-boundary",
269
270
  "test:swarm-coordinator": "node --test tests/swarm-coordinator.test.js",
270
271
  "test:session-report": "node --test tests/session-report.test.js",
271
272
  "test:require-evidence-gate": "node --test tests/require-evidence-gate.test.js",
273
+ "test:rule-validator": "node --test tests/rule-validator.test.js",
272
274
  "test:session-health": "node --test tests/session-health-sensor.test.js",
273
275
  "test:session-episodes": "node --test tests/session-episode-store.test.js",
274
276
  "test:spec-gate": "node --test tests/spec-gate.test.js",
275
277
  "test:dashboard-insights": "node --test tests/dashboard-insights.test.js",
278
+ "test:telemetry-tracked-link-slug": "node --test tests/telemetry-tracked-link-slug.test.js",
276
279
  "test:prompt-eval": "node --test tests/prompt-eval.test.js",
280
+ "eval:feedback": "node scripts/prompt-eval.js --from-feedback",
277
281
  "test:decision-trace": "node --test tests/decision-trace.test.js",
278
282
  "test:feedback-fallback": "node --test tests/feedback-fallback.test.js",
279
283
  "test:metaclaw": "node --test tests/metaclaw-features.test.js",
@@ -296,6 +300,7 @@
296
300
  "test:belief-update": "node --test tests/belief-update.test.js",
297
301
  "test:hosted-config": "node --test tests/hosted-config.test.js",
298
302
  "test:operational-summary": "node --test tests/operational-summary.test.js",
303
+ "test:operational-dashboard": "node --test tests/operational-dashboard.test.js",
299
304
  "test:operator-artifacts": "node --test tests/operator-artifacts.test.js",
300
305
  "test:operator-key-auth": "node --test tests/api-operator-key-auth.test.js",
301
306
  "test:cloudflare-sandbox": "node --test tests/cloudflare-dynamic-sandbox.test.js tests/cloudflare-sandbox-api.test.js",
@@ -328,27 +333,27 @@
328
333
  "test:loop": "node scripts/feedback-loop.js --test",
329
334
  "test:dpo": "node scripts/export-dpo-pairs.js --test",
330
335
  "test:kto": "node --test tests/export-kto.test.js",
331
- "test:api": "node --test --test-concurrency=1 tests/api-server.test.js tests/api-auth-config.test.js tests/mcp-server.test.js tests/adapters.test.js tests/openapi-parity.test.js tests/budget-guard.test.js tests/context-manager.test.js tests/contextfs.test.js tests/job-api.test.js tests/pack-templates.test.js tests/dashboard.test.js tests/dashboard-render-spec.test.js tests/dashboard-html.test.js tests/agent-readiness.test.js tests/mcp-policy.test.js tests/subagent-profiles.test.js tests/intent-router.test.js tests/internal-agent-bootstrap.test.js tests/lesson-search.test.js tests/thumbgate-search.test.js tests/document-intake.test.js tests/rubric-engine.test.js tests/self-healing-check.test.js tests/self-heal.test.js tests/feedback-schema.test.js tests/thompson-sampling.test.js tests/feedback-sequences.test.js tests/diversity-tracking.test.js tests/vector-store.test.js tests/feedback-attribution.test.js tests/hybrid-feedback-context.test.js tests/loop-closure.test.js tests/code-reasoning.test.js tests/feedback-loop.test.js tests/feedback-inbox-read.test.js tests/feedback-to-memory.test.js tests/test-coverage.test.js tests/version-metadata.test.js tests/claude-mcpb.test.js tests/claude-codex-bridge.test.js tests/cursor-plugin.test.js tests/codex-plugin.test.js tests/telemetry-analytics.test.js tests/public-landing.test.js tests/lessons-page.test.js tests/pro-landing.test.js tests/local-model-profile.test.js tests/risk-scorer.test.js tests/context-compaction.test.js tests/reminder-engine.test.js tests/post-to-x.test.js tests/verification-loop.test.js tests/async-job-runner.test.js tests/commerce-quality.test.js tests/recall-limit.test.js tests/problem-detail.test.js tests/natural-language-harness.test.js tests/settings-hierarchy.test.js",
332
- "test:proof": "node --test tests/prove-adapters.test.js tests/prove-attribution.test.js tests/prove-cloudflare-sandbox.test.js tests/prove-data-quality.test.js tests/prove-intelligence.test.js tests/prove-lancedb.test.js tests/prove-loop-closure.test.js tests/prove-subway-upgrades.test.js tests/prove-training-export.test.js tests/prove-local-intelligence.test.js tests/prove-workflow-contract.test.js tests/prove-autoresearch.test.js tests/prove-claim-verification.test.js tests/prove-data-pipeline.test.js tests/prove-evolution.test.js tests/prove-harnesses.test.js tests/prove-packaged-runtime.test.js tests/prove-runtime.test.js tests/prove-seo-gsd.test.js tests/prove-settings.test.js tests/prove-xmemory.test.js && node --test tests/prove-automation.test.js",
336
+ "test:api": "node --test --test-concurrency=1 tests/api-server.test.js tests/api-events-sse.test.js tests/api-auth-config.test.js tests/mcp-server.test.js tests/adapters.test.js tests/openapi-parity.test.js tests/budget-guard.test.js tests/context-manager.test.js tests/contextfs.test.js tests/job-api.test.js tests/pack-templates.test.js tests/dashboard.test.js tests/dashboard-render-spec.test.js tests/dashboard-html.test.js tests/agent-readiness.test.js tests/mcp-policy.test.js tests/subagent-profiles.test.js tests/intent-router.test.js tests/internal-agent-bootstrap.test.js tests/lesson-search.test.js tests/thumbgate-search.test.js tests/document-intake.test.js tests/rubric-engine.test.js tests/self-healing-check.test.js tests/self-heal.test.js tests/feedback-schema.test.js tests/thompson-sampling.test.js tests/feedback-sequences.test.js tests/diversity-tracking.test.js tests/vector-store.test.js tests/feedback-attribution.test.js tests/hybrid-feedback-context.test.js tests/loop-closure.test.js tests/code-reasoning.test.js tests/feedback-loop.test.js tests/feedback-inbox-read.test.js tests/feedback-to-memory.test.js tests/test-coverage.test.js tests/version-metadata.test.js tests/claude-mcpb.test.js tests/claude-codex-bridge.test.js tests/cursor-plugin.test.js tests/codex-plugin.test.js tests/telemetry-analytics.test.js tests/public-landing.test.js tests/lessons-page.test.js tests/pro-landing.test.js tests/local-model-profile.test.js tests/risk-scorer.test.js tests/context-compaction.test.js tests/reminder-engine.test.js tests/post-to-x.test.js tests/verification-loop.test.js tests/async-job-runner.test.js tests/commerce-quality.test.js tests/recall-limit.test.js tests/problem-detail.test.js tests/natural-language-harness.test.js tests/settings-hierarchy.test.js",
337
+ "test:proof": "node --test tests/prove-adapters.test.js tests/prove-attribution.test.js tests/prove-cloudflare-sandbox.test.js tests/prove-data-quality.test.js tests/prove-intelligence.test.js tests/prove-lancedb.test.js tests/prove-loop-closure.test.js tests/prove-training-export.test.js tests/prove-local-intelligence.test.js tests/prove-workflow-contract.test.js tests/prove-autoresearch.test.js tests/prove-claim-verification.test.js tests/prove-data-pipeline.test.js tests/prove-evolution.test.js tests/prove-harnesses.test.js tests/prove-packaged-runtime.test.js tests/prove-runtime.test.js tests/prove-seo-gsd.test.js tests/prove-settings.test.js tests/prove-xmemory.test.js && node --test tests/prove-automation.test.js",
333
338
  "test:e2e": "node --test tests/e2e-pipeline.test.js tests/e2e-product-flows.test.js tests/e2e-coverage-contract.test.js",
334
339
  "test:rlaif": "node --test tests/rlaif-self-audit.test.js tests/dpo-optimizer.test.js tests/meta-policy.test.js",
335
340
  "test:attribution": "node --test tests/feedback-attribution.test.js tests/hybrid-feedback-context.test.js",
336
341
  "test:quality": "node --test tests/validate-feedback.test.js",
337
342
  "test:intelligence": "node --test tests/intelligence.test.js",
338
343
  "test:training-export": "node --test tests/training-export.test.js tests/databricks-export.test.js",
339
- "test:deployment": "node --test tests/deployment.test.js tests/deploy-policy.test.js tests/publish-decision.test.js tests/changeset-check.test.js tests/release-notes.test.js tests/sonarcloud-workflow.test.js tests/package-boundary.test.js tests/revenue-observability-workflow.test.js",
344
+ "test:deployment": "node --test tests/deployment.test.js tests/deploy-policy.test.js tests/publish-decision.test.js tests/changeset-check.test.js tests/release-notes.test.js tests/sonarcloud-workflow.test.js tests/package-boundary.test.js tests/public-package-boundary.test.js tests/revenue-observability-workflow.test.js",
340
345
  "test:operational-integrity": "node --test tests/operational-integrity.test.js tests/sync-branch-protection.test.js",
341
346
  "test:workflow": "node --test tests/workflow-contract.test.js tests/social-marketing-assets.test.js tests/social-pipeline.test.js tests/positioning-contract.test.js tests/docs-claim-hygiene.test.js tests/thumbgate-scope.test.js tests/workflow-runs.test.js tests/workflow-sprint-intake.test.js tests/gtm-revenue-loop.test.js tests/sales-pipeline.test.js tests/enterprise-story.test.js tests/ralph-loop.test.js tests/ralph-mode-ci.test.js",
342
347
  "test:sales-pipeline": "node --test tests/sales-pipeline.test.js",
343
- "test:billing": "node --test tests/billing.test.js",
348
+ "test:billing": "node --test tests/billing.test.js tests/stripe-sync-product-images.test.js",
344
349
  "test:cli": "node --test tests/analytics-report.test.js tests/codex-self-heal.test.js tests/creator-campaigns.test.js tests/cli.test.js tests/codex-bridge-script.test.js tests/dependabot-changeset.test.js tests/dispatch-brief.test.js tests/feedback-normalize.test.js tests/install-mcp.test.js tests/pr-manager.test.js tests/pro-local-dashboard.test.js tests/published-cli.test.js tests/revenue-status.test.js tests/stripe-live-status.test.js",
345
350
  "test:evolution": "node --test tests/workspace-evolver.test.js",
346
351
  "test:watcher": "node --test tests/jsonl-watcher.test.js",
347
352
  "test:autoresearch": "node --test tests/autoresearch.test.js",
348
- "test:ops": "node --test tests/adk-consolidator.test.js tests/anthropic-partner-strategy.test.js tests/auto-promote-gates.test.js tests/auto-wire-hooks.test.js tests/claude-skill.test.js tests/codegraph-context.test.js tests/commercial-signals.test.js tests/decision-journal.test.js tests/delegation-runtime.test.js tests/disagreement-mining.test.js tests/failure-diagnostics.test.js tests/gate-stats.test.js tests/github-billing.test.js tests/intervention-policy.test.js tests/markdown-escape.test.js tests/mcp-tools-gates.test.js tests/project-bayes-e2e.test.js tests/project-bayes.test.js tests/rate-limiter.test.js tests/schedule-manager.test.js tests/session-handoff.test.js tests/skill-generator.test.js tests/smart-learning.test.js tests/spike-and-sink.test.js tests/stripe-revenue.test.js tests/stripe-webhook-route.test.js tests/stripe-webhook-rotation.test.js tests/train-from-feedback.test.js tests/workflow-hardening-sprint.test.js tests/workflow-sentinel.test.js tests/test-suite-parity.test.js tests/a2ui-engine.test.js tests/webhook-delivery.test.js",
353
+ "test:ops": "node --test tests/adk-consolidator.test.js tests/anthropic-partner-strategy.test.js tests/auto-promote-gates.test.js tests/auto-wire-hooks.test.js tests/claude-skill.test.js tests/codegraph-context.test.js tests/commercial-signals.test.js tests/decision-journal.test.js tests/delegation-runtime.test.js tests/disagreement-mining.test.js tests/failure-diagnostics.test.js tests/gate-stats.test.js tests/git-hook-installer.test.js tests/github-billing.test.js tests/intervention-policy.test.js tests/markdown-escape.test.js tests/mcp-tools-gates.test.js tests/native-messaging-audit.test.js tests/project-bayes-e2e.test.js tests/project-bayes.test.js tests/rate-limiter.test.js tests/schedule-manager.test.js tests/session-handoff.test.js tests/skill-generator.test.js tests/smart-learning.test.js tests/spike-and-sink.test.js tests/stripe-revenue.test.js tests/stripe-webhook-route.test.js tests/stripe-webhook-rotation.test.js tests/train-from-feedback.test.js tests/workflow-hardening-sprint.test.js tests/workflow-sentinel.test.js tests/test-suite-parity.test.js tests/a2ui-engine.test.js tests/webhook-delivery.test.js",
349
354
  "test:session-analyzer": "node --test tests/session-analyzer.test.js",
350
355
  "test:tessl": "node --test tests/tessl-export.test.js",
351
- "test:gates": "node --test tests/gate-templates.test.js tests/gates-engine.test.js tests/claim-verification.test.js tests/secret-scanner.test.js tests/prompt-guard.test.js tests/audit-trail.test.js tests/profile-router.test.js tests/workflow-sentinel.test.js tests/docker-sandbox-planner.test.js",
356
+ "test:gates": "node --test tests/gate-templates.test.js tests/gates-engine.test.js tests/claim-verification.test.js tests/secret-scanner.test.js tests/secret-fixture-safety.test.js tests/prompt-guard.test.js tests/audit-trail.test.js tests/profile-router.test.js tests/workflow-sentinel.test.js tests/docker-sandbox-planner.test.js",
352
357
  "test:budget": "node --test tests/budget-enforcer.test.js",
353
358
  "test:workers": "npm --prefix workers ci && npm --prefix workers test",
354
359
  "test:evoskill": "node --test tests/evoskill.test.js",
@@ -407,6 +412,7 @@
407
412
  "test:post-video": "node --test tests/post-video.test.js",
408
413
  "test:post-everywhere-instagram": "node --test tests/post-everywhere-instagram.test.js",
409
414
  "test:post-everywhere-channels": "node --test tests/post-everywhere-channels.test.js",
415
+ "test:post-everywhere-zernio-default": "node --test tests/post-everywhere-zernio-default.test.js",
410
416
  "test:zernio-canonical-pollers": "node --test tests/zernio-canonical-pollers.test.js",
411
417
  "test:zernio-status": "node --test tests/zernio-status.test.js",
412
418
  "test:license": "node --test tests/license.test.js",
@@ -423,10 +429,11 @@
423
429
  "test:control-tower": "node --test tests/control-tower.test.js",
424
430
  "test:pii-scanner": "node --test tests/pii-scanner.test.js",
425
431
  "test:data-governance": "node --test tests/data-governance.test.js",
426
- "test:lesson-inference": "node --test tests/conversation-context.test.js tests/lesson-inference.test.js",
432
+ "test:lesson-inference": "node --test tests/conversation-context.test.js tests/lesson-inference.test.js tests/lesson-prompt-shape.test.js",
427
433
  "test:lesson-retrieval": "node --test tests/lesson-retrieval.test.js",
428
434
  "test:cross-encoder": "node --test tests/cross-encoder-reranker.test.js",
429
435
  "test:reflector-agent": "node --test tests/reflector-agent.test.js",
436
+ "test:public-core-boundary": "node --test tests/public-core-boundary.test.js",
430
437
  "test:feedback-session": "node --test tests/feedback-session.test.js",
431
438
  "test:feedback-history-distiller": "node --test tests/feedback-history-distiller.test.js",
432
439
  "test:hallucination-detector": "node --test tests/hallucination-detector.test.js",
@@ -439,6 +446,7 @@
439
446
  "test:instagram-thumbgate-post": "node --test tests/instagram-thumbgate-post.test.js",
440
447
  "test:publish-instagram-thumbgate": "node --test tests/publish-instagram-thumbgate.test.js",
441
448
  "test:lesson-synthesis": "node --test tests/lesson-synthesis.test.js",
449
+ "test:lesson-canonical": "node --test tests/lesson-canonical.test.js",
442
450
  "test:background-governance": "node --test tests/background-governance.test.js",
443
451
  "test:memory-migration": "node --test tests/memory-migration.test.js",
444
452
  "test:prompt-dlp": "node --test tests/prompt-dlp.test.js",
@@ -467,6 +475,12 @@
467
475
  "test:reconcile-thumbgate-campaign": "node --test tests/reconcile-thumbgate-campaign.test.js",
468
476
  "test:schedule-thumbgate-campaign": "node --test tests/schedule-thumbgate-campaign.test.js",
469
477
  "test:social-reply-monitor": "node --test tests/social-reply-monitor.test.js",
478
+ "test:bluesky-atproto": "node --test tests/bluesky-atproto.test.js",
479
+ "test:social-reply-monitor-bluesky": "node --test tests/social-reply-monitor-bluesky.test.js",
480
+ "test:bluesky-delete-replies": "node --test tests/bluesky-delete-replies.test.js",
481
+ "test:architect-kit-memory-bridge": "node --test tests/architect-kit-memory-bridge.test.js",
482
+ "test:sonar-review-hotspots": "node --test tests/sonar-review-hotspots.test.js",
483
+ "integrations:architect-kit:import": "node scripts/integrations/architect-kit-memory-bridge.js",
470
484
  "test:sync-launch-assets": "node --test tests/sync-launch-assets.test.js",
471
485
  "test:reddit-publisher": "node --test tests/reddit-publisher.test.js",
472
486
  "test:engagement-audit": "node --test tests/engagement-audit.test.js",
@@ -474,6 +488,7 @@
474
488
  "test:ai-search-visibility": "node --test tests/ai-search-visibility.test.js",
475
489
  "test:security-scanner": "node --test tests/security-scanner.test.js",
476
490
  "test:llm-client": "node --test tests/llm-client.test.js",
491
+ "test:model-candidates": "node --test tests/model-candidates.test.js",
477
492
  "test:managed-lesson-agent": "node --test tests/managed-lesson-agent.test.js",
478
493
  "agent:run": "node scripts/managed-lesson-agent.js",
479
494
  "agent:run:dry": "node scripts/managed-lesson-agent.js --dry-run",
@@ -505,13 +520,16 @@
505
520
  "test:demo-voiceover": "node --test tests/demo-voiceover.test.js",
506
521
  "test:gate-coherence": "node --test tests/gate-coherence.test.js",
507
522
  "test:gate-eval": "node --test tests/gate-eval.test.js",
508
- "test:high-roi": "node --test tests/high-roi.test.js tests/autonomous-workflow.test.js",
523
+ "gate-eval:ci": "node scripts/gate-eval.js run",
524
+ "test:high-roi": "node --test tests/high-roi.test.js tests/model-candidates.test.js tests/autonomous-workflow.test.js tests/high-roi-agent-workflows.test.js",
509
525
  "test:public-static-assets": "node --test tests/public-static-assets.test.js",
510
526
  "test:token-savings": "node --test tests/token-savings.test.js",
527
+ "test:numbers-page": "node --test tests/numbers-page.test.js",
511
528
  "test:workflow-gate-checkpoint": "node --test tests/workflow-gate-checkpoint.test.js tests/autonomous-workflow.test.js",
512
529
  "workflow:autonomous": "node scripts/autonomous-workflow.js",
513
530
  "test:lesson-export-import": "node --test tests/lesson-export-import.test.js",
514
531
  "test:landing-page-claims": "node --test tests/landing-page-claims.test.js",
532
+ "test:competitive-positioning-marketing": "node --test tests/competitive-positioning-marketing.test.js",
515
533
  "test:dashboard-deeplink-e2e": "node --test tests/dashboard-deeplink-e2e.test.js",
516
534
  "test:public-package-parity": "node --test tests/public-package-parity.test.js",
517
535
  "prepare": "bash bin/install-hooks.sh >/dev/null 2>&1 || true",
@@ -523,7 +541,8 @@
523
541
  "test:mailer": "node --test tests/mailer.test.js tests/mailer-dns.test.js tests/billing-webhook-email.test.js",
524
542
  "test:brand-assets": "node --test tests/brand-assets.test.js",
525
543
  "test:enforcement-teeth": "node --test tests/enforcement-teeth.test.js",
526
- "test:bayes-optimal-gate": "node --test tests/bayes-optimal-gate.test.js"
544
+ "test:bayes-optimal-gate": "node --test tests/bayes-optimal-gate.test.js",
545
+ "test:actionable-remediations": "node --test tests/actionable-remediations.test.js"
527
546
  },
528
547
  "keywords": [
529
548
  "mcp",
@@ -532,7 +551,7 @@
532
551
  "agent-skills",
533
552
  "skill",
534
553
  "context-engineering",
535
- "pre-action-gates",
554
+ "pre-action-checks",
536
555
  "ai-agent-safety",
537
556
  "guardrails",
538
557
  "feedback-memory",
package/public/blog.html CHANGED
@@ -38,13 +38,13 @@
38
38
  "@type": "BlogPosting",
39
39
  "headline": "Your AI agent is a supply chain attack surface. Here's how to gate it.",
40
40
  "datePublished": "2026-04-10",
41
- "keywords": "AI agent security, supply chain attack, pre-action gates, agent governance, ThumbGate"
41
+ "keywords": "AI agent security, supply chain attack, pre-action checks, agent governance, ThumbGate"
42
42
  },
43
43
  {
44
44
  "@type": "BlogPosting",
45
- "headline": "The Claude Code Leak Proves Why Pre-Action Gates Matter",
45
+ "headline": "The Claude Code Leak Proves Why Pre-Action Checks Matter",
46
46
  "datePublished": "2026-04-01",
47
- "keywords": "Claude Code security, Claude Code guardrails, AI agent safety, pre-action gates"
47
+ "keywords": "Claude Code security, Claude Code guardrails, AI agent safety, pre-action checks"
48
48
  },
49
49
  {
50
50
  "@type": "BlogPosting",
@@ -195,9 +195,9 @@
195
195
  something that operates on the <em>input</em> &mdash; before execution.
196
196
  </p>
197
197
 
198
- <h3>Pre-Action Gates via PreToolUse hooks</h3>
198
+ <h3>Pre-Action Checks via PreToolUse hooks</h3>
199
199
  <p>
200
- ThumbGate implements pre-action gates via <code>PreToolUse</code> hooks
200
+ ThumbGate implements pre-action checks via <code>PreToolUse</code> hooks
201
201
  &mdash; interception points that run before every tool invocation. No
202
202
  action reaches execution without passing through the gate. Not Bash
203
203
  commands, not file edits, not web fetches.
@@ -290,7 +290,7 @@
290
290
 
291
291
  <article class="post">
292
292
  <div class="post-date">April 1, 2026</div>
293
- <h2>The Claude Code Leak Proves Why Pre-Action Gates Matter</h2>
293
+ <h2>The Claude Code Leak Proves Why Pre-Action Checks Matter</h2>
294
294
 
295
295
  <p>
296
296
  Anthropic accidentally shipped 512,000 lines of Claude Code source
@@ -314,7 +314,7 @@
314
314
 
315
315
  <p>
316
316
  That's exactly what ThumbGate does. Every Claude Code user — and every
317
- Claw-code user — can add pre-action gates today:
317
+ Claw-code user — can add pre-action checks today:
318
318
  </p>
319
319
 
320
320
  <ul>
@@ -5,8 +5,8 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
6
  <title>ThumbGate for Codex - Auto-Updating MCP Plugin</title>
7
7
  <script defer data-domain="thumbgate-production.up.railway.app" src="https://plausible.io/js/script.js"></script>
8
- <meta name="description" content="Install ThumbGate for Codex with an auto-updating MCP plugin, Pre-Action Gates, thumbs-up/down feedback memory, and a local-first Reliability Gateway.">
9
- <meta name="keywords" content="ThumbGate Codex plugin, Codex MCP server, Codex pre-action gates, Codex guardrails, thumbgate latest, AI coding agent reliability">
8
+ <meta name="description" content="Install ThumbGate for Codex with an auto-updating MCP plugin, Pre-Action Checks, thumbs-up/down feedback memory, and a local-first Reliability Gateway.">
9
+ <meta name="keywords" content="ThumbGate Codex plugin, Codex MCP server, Codex pre-action checks, Codex guardrails, thumbgate latest, AI coding agent reliability">
10
10
  <meta property="og:title" content="ThumbGate for Codex">
11
11
  <meta property="og:description" content="Auto-updating MCP and hook launcher for Codex. One install, then ThumbGate resolves the latest npm runtime when Codex starts.">
12
12
  <meta property="og:type" content="website">
@@ -21,15 +21,20 @@
21
21
  "name": "ThumbGate for Codex",
22
22
  "applicationCategory": "DeveloperApplication",
23
23
  "operatingSystem": "macOS, Linux, Windows with Node.js",
24
- "description": "ThumbGate for Codex installs an MCP server and hook launcher that resolves thumbgate@latest at startup, captures thumbs-up/down feedback, and enforces Pre-Action Gates before risky agent actions run.",
24
+ "description": "ThumbGate for Codex installs an MCP server and hook launcher that resolves thumbgate@latest at startup, captures thumbs-up/down feedback, and enforces Pre-Action Checks before risky agent actions run.",
25
25
  "url": "https://thumbgate-production.up.railway.app/codex-plugin",
26
26
  "downloadUrl": "https://github.com/IgorGanapolsky/ThumbGate/releases/latest/download/thumbgate-codex-plugin.zip",
27
27
  "installUrl": "https://thumbgate-production.up.railway.app/codex-plugin",
28
28
  "license": "https://opensource.org/licenses/MIT",
29
+ "dateModified": "2026-04-20",
29
30
  "creator": {
30
31
  "@type": "Person",
31
32
  "name": "Igor Ganapolsky",
32
- "url": "https://github.com/IgorGanapolsky"
33
+ "url": "https://github.com/IgorGanapolsky",
34
+ "sameAs": [
35
+ "https://github.com/IgorGanapolsky",
36
+ "https://www.linkedin.com/in/igorganapolsky"
37
+ ]
33
38
  },
34
39
  "offers": {
35
40
  "@type": "Offer",
@@ -187,8 +192,9 @@
187
192
  <main>
188
193
  <section class="hero">
189
194
  <div class="wrap">
190
- <div class="eyebrow">Codex MCP plugin + Pre-Action Gates</div>
195
+ <div class="eyebrow">Codex MCP plugin + Pre-Action Checks</div>
191
196
  <h1>Give Codex a thumbs-down once. Block the repeat before it runs again.</h1>
197
+ <p class="sub" style="font-size:13px;opacity:0.85;">Updated: <time datetime="2026-04-20">2026-04-20</time> · by <a href="https://github.com/IgorGanapolsky" style="color:inherit;">Igor Ganapolsky</a></p>
192
198
  <p class="sub">ThumbGate wires Codex into local-first feedback memory, MCP tools, and hook enforcement. The launcher resolves <code>thumbgate@latest</code> when Codex starts, so published npm fixes reach your active MCP server after a restart.</p>
193
199
  <div class="actions">
194
200
  <a class="button primary" href="https://github.com/IgorGanapolsky/ThumbGate/releases/latest/download/thumbgate-codex-plugin.zip" target="_blank" rel="noopener" onclick="if(typeof plausible==='function')plausible('codex_plugin_download')">Download Codex plugin</a>
@@ -212,7 +218,7 @@
212
218
  </div>
213
219
  <div class="tile">
214
220
  <h3>Hard stop before action</h3>
215
- <p>Pre-Action Gates evaluate commands, file edits, publishes, merges, and other high-risk actions before execution. Bad repeats get blocked before they burn time or tokens.</p>
221
+ <p>Pre-Action Checks evaluate commands, file edits, publishes, merges, and other high-risk actions before execution. Bad repeats get blocked before they burn time or tokens.</p>
216
222
  </div>
217
223
  </section>
218
224
 
@@ -270,7 +276,7 @@
270
276
 
271
277
  <footer>
272
278
  <div class="wrap">
273
- ThumbGate MIT License. Pre-Action Gates, DPO-ready feedback, and local-first Codex enforcement.
279
+ ThumbGate MIT License. Pre-Action Checks, DPO-ready feedback, and local-first Codex enforcement.
274
280
  </div>
275
281
  </footer>
276
282
  </body>