thumbgate 0.9.10

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 (364) hide show
  1. package/.claude-plugin/README.md +134 -0
  2. package/.claude-plugin/bundle/icon.png +0 -0
  3. package/.claude-plugin/bundle/icon.svg +18 -0
  4. package/.claude-plugin/bundle/server/index.js +24 -0
  5. package/.claude-plugin/marketplace.json +36 -0
  6. package/.claude-plugin/plugin.json +21 -0
  7. package/.well-known/mcp/server-card.json +231 -0
  8. package/LICENSE +21 -0
  9. package/README.md +375 -0
  10. package/adapters/README.md +9 -0
  11. package/adapters/amp/skills/thumbgate-feedback/SKILL.md +22 -0
  12. package/adapters/chatgpt/INSTALL.md +83 -0
  13. package/adapters/chatgpt/openapi.yaml +1281 -0
  14. package/adapters/claude/.mcp.json +14 -0
  15. package/adapters/codex/config.toml +9 -0
  16. package/adapters/gemini/function-declarations.json +224 -0
  17. package/adapters/mcp/server-stdio.js +788 -0
  18. package/adapters/opencode/opencode.json +15 -0
  19. package/bin/cli.js +1484 -0
  20. package/bin/memory.sh +64 -0
  21. package/bin/obsidian-sync.sh +20 -0
  22. package/bin/postinstall.js +37 -0
  23. package/config/build-metadata.json +4 -0
  24. package/config/e2e-critical-flows.json +45 -0
  25. package/config/gate-templates.json +77 -0
  26. package/config/gates/claim-verification.json +29 -0
  27. package/config/gates/computer-use.json +39 -0
  28. package/config/gates/default.json +117 -0
  29. package/config/github-about.json +25 -0
  30. package/config/mcp-allowlists.json +135 -0
  31. package/config/model-tiers.json +33 -0
  32. package/config/partner-routing.json +132 -0
  33. package/config/policy-bundles/constrained-v1.json +64 -0
  34. package/config/policy-bundles/default-v1.json +91 -0
  35. package/config/rubrics/default-v1.json +52 -0
  36. package/config/skill-packs/react-testing.json +23 -0
  37. package/config/skill-packs/stripe-integration/references/api-spec.json +1 -0
  38. package/config/skill-packs/stripe-integration/references/webhook-guide.md +3 -0
  39. package/config/skill-specs/pr-reviewer.json +9 -0
  40. package/config/skill-specs/release-status.json +9 -0
  41. package/config/skill-specs/ticket-triage.json +9 -0
  42. package/config/subagent-profiles.json +32 -0
  43. package/config/tessl-tiles.json +29 -0
  44. package/config/thumbgate-settings.managed.json +12 -0
  45. package/openapi/openapi.yaml +1281 -0
  46. package/package.json +283 -0
  47. package/plugins/amp-skill/INSTALL.md +52 -0
  48. package/plugins/amp-skill/SKILL.md +64 -0
  49. package/plugins/claude-codex-bridge/.claude-plugin/plugin.json +22 -0
  50. package/plugins/claude-codex-bridge/.mcp.json +12 -0
  51. package/plugins/claude-codex-bridge/INSTALL.md +43 -0
  52. package/plugins/claude-codex-bridge/README.md +46 -0
  53. package/plugins/claude-codex-bridge/scripts/codex-bridge.js +288 -0
  54. package/plugins/claude-codex-bridge/skills/adversarial-review/SKILL.md +24 -0
  55. package/plugins/claude-codex-bridge/skills/result/SKILL.md +22 -0
  56. package/plugins/claude-codex-bridge/skills/review/SKILL.md +28 -0
  57. package/plugins/claude-codex-bridge/skills/second-pass/SKILL.md +27 -0
  58. package/plugins/claude-codex-bridge/skills/setup/SKILL.md +21 -0
  59. package/plugins/claude-codex-bridge/skills/status/SKILL.md +19 -0
  60. package/plugins/claude-skill/INSTALL.md +55 -0
  61. package/plugins/claude-skill/SKILL.md +46 -0
  62. package/plugins/codex-profile/.codex-plugin/plugin.json +43 -0
  63. package/plugins/codex-profile/.mcp.json +12 -0
  64. package/plugins/codex-profile/AGENTS.md +20 -0
  65. package/plugins/codex-profile/INSTALL.md +66 -0
  66. package/plugins/codex-profile/README.md +37 -0
  67. package/plugins/cursor-marketplace/.cursor-plugin/plugin.json +23 -0
  68. package/plugins/cursor-marketplace/CHANGELOG.md +30 -0
  69. package/plugins/cursor-marketplace/LICENSE +21 -0
  70. package/plugins/cursor-marketplace/README.md +124 -0
  71. package/plugins/cursor-marketplace/agents/reliability-reviewer.md +31 -0
  72. package/plugins/cursor-marketplace/assets/logo-400x400.png +0 -0
  73. package/plugins/cursor-marketplace/commands/capture-feedback.md +33 -0
  74. package/plugins/cursor-marketplace/commands/check-gates.md +25 -0
  75. package/plugins/cursor-marketplace/commands/show-lessons.md +27 -0
  76. package/plugins/cursor-marketplace/hooks/hooks.json +10 -0
  77. package/plugins/cursor-marketplace/mcp.json +12 -0
  78. package/plugins/cursor-marketplace/rules/feedback-capture.mdc +34 -0
  79. package/plugins/cursor-marketplace/rules/pre-action-gates.mdc +30 -0
  80. package/plugins/cursor-marketplace/rules/session-continuity.mdc +28 -0
  81. package/plugins/cursor-marketplace/scripts/gate-check.sh +11 -0
  82. package/plugins/cursor-marketplace/skills/capture-feedback/SKILL.md +47 -0
  83. package/plugins/cursor-marketplace/skills/prevention-rules/SKILL.md +31 -0
  84. package/plugins/cursor-marketplace/skills/recall-context/SKILL.md +30 -0
  85. package/plugins/cursor-marketplace/skills/search-lessons/SKILL.md +33 -0
  86. package/plugins/gemini-extension/INSTALL.md +92 -0
  87. package/plugins/gemini-extension/gemini_prompt.txt +14 -0
  88. package/plugins/gemini-extension/tool_contract.json +45 -0
  89. package/plugins/opencode-profile/INSTALL.md +57 -0
  90. package/public/assets/instagram-card.png +0 -0
  91. package/public/assets/tiktok-agent-memory.mp4 +0 -0
  92. package/public/blog.html +400 -0
  93. package/public/dashboard.html +1093 -0
  94. package/public/guide.html +317 -0
  95. package/public/index.html +1014 -0
  96. package/public/learn/agent-harness-pattern.html +180 -0
  97. package/public/learn/ai-agent-persistent-memory.html +202 -0
  98. package/public/learn/learn.css +45 -0
  99. package/public/learn/mcp-pre-action-gates-explained.html +172 -0
  100. package/public/learn/stop-ai-agent-force-push.html +134 -0
  101. package/public/learn/vibe-coding-safety-net.html +142 -0
  102. package/public/learn.html +213 -0
  103. package/public/lessons.html +650 -0
  104. package/public/vercel.json +8 -0
  105. package/scripts/__pycache__/train_from_feedback.cpython-312.pyc +0 -0
  106. package/scripts/a2ui-engine.js +73 -0
  107. package/scripts/access-anomaly-detector.js +12 -0
  108. package/scripts/adk-consolidator.js +266 -0
  109. package/scripts/agent-readiness.js +220 -0
  110. package/scripts/agent-security-hardening.js +227 -0
  111. package/scripts/agentic-data-pipeline.js +847 -0
  112. package/scripts/analytics-report.js +328 -0
  113. package/scripts/analytics-window.js +158 -0
  114. package/scripts/async-job-runner.js +1001 -0
  115. package/scripts/audit-trail.js +398 -0
  116. package/scripts/auto-promote-gates.js +299 -0
  117. package/scripts/auto-wire-hooks.js +312 -0
  118. package/scripts/autonomous-sales-agent.js +39 -0
  119. package/scripts/autoresearch-runner.js +216 -0
  120. package/scripts/background-agent-governance.js +237 -0
  121. package/scripts/behavioral-extraction.js +97 -0
  122. package/scripts/belief-update.js +84 -0
  123. package/scripts/billing.js +2438 -0
  124. package/scripts/bot-detector.js +50 -0
  125. package/scripts/budget-guard.js +173 -0
  126. package/scripts/build-claude-mcpb.js +189 -0
  127. package/scripts/build-metadata.js +97 -0
  128. package/scripts/check-congruence.js +322 -0
  129. package/scripts/cli-feedback.js +135 -0
  130. package/scripts/cli-telemetry.js +87 -0
  131. package/scripts/cloudflare-dynamic-sandbox.js +315 -0
  132. package/scripts/code-reasoning.js +350 -0
  133. package/scripts/codegraph-context.js +466 -0
  134. package/scripts/commercial-offer.js +56 -0
  135. package/scripts/computer-use-firewall.js +250 -0
  136. package/scripts/context-engine.js +694 -0
  137. package/scripts/contextfs.js +1287 -0
  138. package/scripts/conversation-context.js +119 -0
  139. package/scripts/creator-campaigns.js +239 -0
  140. package/scripts/daemon-manager.js +108 -0
  141. package/scripts/daily-digest.js +11 -0
  142. package/scripts/dashboard-render-spec.js +395 -0
  143. package/scripts/dashboard.js +1058 -0
  144. package/scripts/data-governance.js +173 -0
  145. package/scripts/delegation-runtime.js +900 -0
  146. package/scripts/deploy-gcp.sh +44 -0
  147. package/scripts/deploy-policy.js +263 -0
  148. package/scripts/disagreement-mining.js +315 -0
  149. package/scripts/dispatch-brief.js +159 -0
  150. package/scripts/distribution-surfaces.js +44 -0
  151. package/scripts/dpo-optimizer.js +209 -0
  152. package/scripts/ephemeral-agent-store.js +219 -0
  153. package/scripts/eval-harness.js +56 -0
  154. package/scripts/evolution-state.js +241 -0
  155. package/scripts/experiment-tracker.js +267 -0
  156. package/scripts/export-databricks-bundle.js +242 -0
  157. package/scripts/export-dpo-pairs.js +345 -0
  158. package/scripts/export-kto-pairs.js +310 -0
  159. package/scripts/export-training.js +448 -0
  160. package/scripts/failure-diagnostics.js +558 -0
  161. package/scripts/feedback-attribution.js +313 -0
  162. package/scripts/feedback-fallback.js +111 -0
  163. package/scripts/feedback-history-distiller.js +391 -0
  164. package/scripts/feedback-inbox-read.js +162 -0
  165. package/scripts/feedback-loop.js +1887 -0
  166. package/scripts/feedback-paths.js +145 -0
  167. package/scripts/feedback-quality.js +139 -0
  168. package/scripts/feedback-root-consolidator.js +238 -0
  169. package/scripts/feedback-schema.js +426 -0
  170. package/scripts/feedback-session.js +286 -0
  171. package/scripts/feedback-to-memory.js +185 -0
  172. package/scripts/feedback-to-rules.js +163 -0
  173. package/scripts/filesystem-search.js +404 -0
  174. package/scripts/funnel-analytics.js +35 -0
  175. package/scripts/gate-satisfy.js +42 -0
  176. package/scripts/gate-stats.js +116 -0
  177. package/scripts/gate-templates.js +70 -0
  178. package/scripts/gates-engine.js +816 -0
  179. package/scripts/generate-paperbanana-diagrams.sh +99 -0
  180. package/scripts/generate-pretool-hook.sh +40 -0
  181. package/scripts/github-about.js +350 -0
  182. package/scripts/github-outreach.js +65 -0
  183. package/scripts/gtm-revenue-loop.js +520 -0
  184. package/scripts/hallucination-detector.js +226 -0
  185. package/scripts/hf-papers.js +317 -0
  186. package/scripts/history-distiller.js +200 -0
  187. package/scripts/hook-auto-capture.sh +95 -0
  188. package/scripts/hook-stop-pr-thread-check.sh +68 -0
  189. package/scripts/hook-stop-self-score.sh +51 -0
  190. package/scripts/hook-stop-verify-deploy.sh +31 -0
  191. package/scripts/hook-thumbgate-cache-updater.js +48 -0
  192. package/scripts/hook-verify-before-done.sh +20 -0
  193. package/scripts/hosted-config.js +170 -0
  194. package/scripts/hybrid-feedback-context.js +676 -0
  195. package/scripts/install-mcp.js +159 -0
  196. package/scripts/intent-router.js +392 -0
  197. package/scripts/internal-agent-bootstrap.js +490 -0
  198. package/scripts/jsonl-watcher.js +155 -0
  199. package/scripts/lesson-db.js +613 -0
  200. package/scripts/lesson-inference.js +315 -0
  201. package/scripts/lesson-retrieval.js +95 -0
  202. package/scripts/lesson-rotation.js +137 -0
  203. package/scripts/lesson-search.js +644 -0
  204. package/scripts/lesson-synthesis.js +196 -0
  205. package/scripts/license.js +50 -0
  206. package/scripts/local-model-profile.js +383 -0
  207. package/scripts/markdown-escape.js +12 -0
  208. package/scripts/marketing-experiment.js +671 -0
  209. package/scripts/mcp-config.js +149 -0
  210. package/scripts/mcp-policy.js +99 -0
  211. package/scripts/memalign-recall.js +111 -0
  212. package/scripts/memory-firewall.js +222 -0
  213. package/scripts/memory-migration.js +296 -0
  214. package/scripts/meta-policy.js +194 -0
  215. package/scripts/metered-billing.js +16 -0
  216. package/scripts/model-tier-router.js +301 -0
  217. package/scripts/money-watcher.js +71 -0
  218. package/scripts/multi-hop-recall.js +240 -0
  219. package/scripts/natural-language-harness.js +330 -0
  220. package/scripts/obsidian-export.js +712 -0
  221. package/scripts/operational-dashboard.js +103 -0
  222. package/scripts/operational-summary.js +93 -0
  223. package/scripts/optimize-context.js +17 -0
  224. package/scripts/org-dashboard.js +201 -0
  225. package/scripts/partner-orchestration.js +146 -0
  226. package/scripts/per-step-scoring.js +165 -0
  227. package/scripts/perplexity-marketing.js +466 -0
  228. package/scripts/pii-scanner.js +153 -0
  229. package/scripts/plan-gate.js +154 -0
  230. package/scripts/post-everywhere.js +308 -0
  231. package/scripts/post-to-x-retry.sh +22 -0
  232. package/scripts/post-to-x.js +369 -0
  233. package/scripts/pr-manager.js +236 -0
  234. package/scripts/predictive-insights.js +356 -0
  235. package/scripts/principle-extractor.js +162 -0
  236. package/scripts/pro-features.js +40 -0
  237. package/scripts/pro-local-dashboard.js +174 -0
  238. package/scripts/problem-detail.js +53 -0
  239. package/scripts/product-feedback.js +134 -0
  240. package/scripts/profile-router.js +245 -0
  241. package/scripts/prompt-dlp.js +221 -0
  242. package/scripts/prompt-guard.js +83 -0
  243. package/scripts/prove-adapters.js +863 -0
  244. package/scripts/prove-attribution.js +365 -0
  245. package/scripts/prove-automation.js +653 -0
  246. package/scripts/prove-autoresearch.js +304 -0
  247. package/scripts/prove-claim-verification.js +277 -0
  248. package/scripts/prove-cloudflare-sandbox.js +163 -0
  249. package/scripts/prove-data-pipeline.js +410 -0
  250. package/scripts/prove-data-quality.js +227 -0
  251. package/scripts/prove-evolution.js +352 -0
  252. package/scripts/prove-harnesses.js +287 -0
  253. package/scripts/prove-intelligence.js +259 -0
  254. package/scripts/prove-lancedb.js +371 -0
  255. package/scripts/prove-local-intelligence.js +342 -0
  256. package/scripts/prove-loop-closure.js +263 -0
  257. package/scripts/prove-predictive-insights.js +357 -0
  258. package/scripts/prove-runtime.js +350 -0
  259. package/scripts/prove-seo-gsd.js +234 -0
  260. package/scripts/prove-settings.js +279 -0
  261. package/scripts/prove-subway-upgrades.js +277 -0
  262. package/scripts/prove-tessl.js +229 -0
  263. package/scripts/prove-training-export.js +327 -0
  264. package/scripts/prove-workflow-contract.js +116 -0
  265. package/scripts/prove-xmemory.js +332 -0
  266. package/scripts/publish-decision.js +133 -0
  267. package/scripts/pulse.js +80 -0
  268. package/scripts/rate-limiter.js +125 -0
  269. package/scripts/reddit-dm-outreach.js +182 -0
  270. package/scripts/reddit-monitor-cron.sh +26 -0
  271. package/scripts/reflector-agent.js +221 -0
  272. package/scripts/reminder-engine.js +132 -0
  273. package/scripts/revenue-status.js +472 -0
  274. package/scripts/risk-scorer.js +458 -0
  275. package/scripts/rlaif-self-audit.js +129 -0
  276. package/scripts/rubric-engine.js +230 -0
  277. package/scripts/schedule-manager.js +251 -0
  278. package/scripts/secret-scanner.js +414 -0
  279. package/scripts/self-heal.js +147 -0
  280. package/scripts/self-healing-check.js +188 -0
  281. package/scripts/semantic-layer.js +98 -0
  282. package/scripts/seo-gsd.js +1153 -0
  283. package/scripts/settings-hierarchy.js +214 -0
  284. package/scripts/shieldcortex-memory-firewall-runner.mjs +53 -0
  285. package/scripts/skill-exporter.js +262 -0
  286. package/scripts/skill-generator.js +446 -0
  287. package/scripts/skill-materializer.js +134 -0
  288. package/scripts/skill-packs.js +136 -0
  289. package/scripts/skill-proposer.js +99 -0
  290. package/scripts/skill-quality-tracker.js +284 -0
  291. package/scripts/slo-alert-engine.js +14 -0
  292. package/scripts/slow-loop.js +72 -0
  293. package/scripts/social-analytics/db/schema.sql +32 -0
  294. package/scripts/social-analytics/digest.js +256 -0
  295. package/scripts/social-analytics/generate-instagram-card.js +97 -0
  296. package/scripts/social-analytics/instagram-thumbgate-post.js +73 -0
  297. package/scripts/social-analytics/mcp-server.js +289 -0
  298. package/scripts/social-analytics/normalizer.js +580 -0
  299. package/scripts/social-analytics/notify.js +162 -0
  300. package/scripts/social-analytics/poll-all.js +107 -0
  301. package/scripts/social-analytics/pollers/github.js +195 -0
  302. package/scripts/social-analytics/pollers/instagram.js +253 -0
  303. package/scripts/social-analytics/pollers/linkedin.js +330 -0
  304. package/scripts/social-analytics/pollers/plausible.js +247 -0
  305. package/scripts/social-analytics/pollers/reddit.js +306 -0
  306. package/scripts/social-analytics/pollers/threads.js +233 -0
  307. package/scripts/social-analytics/pollers/tiktok.js +203 -0
  308. package/scripts/social-analytics/pollers/x.js +227 -0
  309. package/scripts/social-analytics/pollers/youtube.js +304 -0
  310. package/scripts/social-analytics/pollers/zernio.js +180 -0
  311. package/scripts/social-analytics/publish-instagram-thumbgate.js +85 -0
  312. package/scripts/social-analytics/publishers/devto.js +122 -0
  313. package/scripts/social-analytics/publishers/instagram.js +317 -0
  314. package/scripts/social-analytics/publishers/linkedin.js +294 -0
  315. package/scripts/social-analytics/publishers/reddit.js +390 -0
  316. package/scripts/social-analytics/publishers/threads.js +275 -0
  317. package/scripts/social-analytics/publishers/tiktok.js +217 -0
  318. package/scripts/social-analytics/publishers/x.js +259 -0
  319. package/scripts/social-analytics/publishers/youtube.js +223 -0
  320. package/scripts/social-analytics/publishers/zernio.js +209 -0
  321. package/scripts/social-analytics/run-digest.js +34 -0
  322. package/scripts/social-analytics/store.js +257 -0
  323. package/scripts/social-analytics/utm.js +143 -0
  324. package/scripts/social-pipeline.js +2628 -0
  325. package/scripts/social-quality-gate.js +18 -0
  326. package/scripts/social-reply-monitor.js +445 -0
  327. package/scripts/status-dashboard.js +155 -0
  328. package/scripts/statusline-lesson.js +16 -0
  329. package/scripts/statusline-tower.js +8 -0
  330. package/scripts/statusline.sh +116 -0
  331. package/scripts/stripe-live-status.js +115 -0
  332. package/scripts/subagent-profiles.js +79 -0
  333. package/scripts/sync-gh-secrets-from-env.sh +70 -0
  334. package/scripts/sync-github-about.js +52 -0
  335. package/scripts/sync-version.js +451 -0
  336. package/scripts/synthetic-dpo.js +234 -0
  337. package/scripts/telemetry-analytics.js +821 -0
  338. package/scripts/tessl-export.js +371 -0
  339. package/scripts/test-coverage.js +120 -0
  340. package/scripts/thompson-sampling.js +417 -0
  341. package/scripts/thumbgate-search.js +189 -0
  342. package/scripts/tool-kpi-tracker.js +12 -0
  343. package/scripts/tool-registry.js +811 -0
  344. package/scripts/train_from_feedback.py +910 -0
  345. package/scripts/user-profile.js +78 -0
  346. package/scripts/validate-feedback.js +580 -0
  347. package/scripts/validate-workflow-contract.js +287 -0
  348. package/scripts/vector-store.js +198 -0
  349. package/scripts/verification-loop.js +291 -0
  350. package/scripts/verify-obsidian-setup.sh +269 -0
  351. package/scripts/verify-run.js +269 -0
  352. package/scripts/webhook-delivery.js +62 -0
  353. package/scripts/weekly-auto-post.js +124 -0
  354. package/scripts/workflow-runs.js +154 -0
  355. package/scripts/workflow-sprint-intake.js +475 -0
  356. package/scripts/workspace-evolver.js +374 -0
  357. package/scripts/x-autonomous-marketing.js +139 -0
  358. package/scripts/xmemory-lite.js +405 -0
  359. package/skills/agent-memory/SKILL.md +97 -0
  360. package/skills/solve-architecture-autonomy/SKILL.md +17 -0
  361. package/skills/solve-architecture-autonomy/tool.js +33 -0
  362. package/skills/thumbgate/SKILL.md +114 -0
  363. package/skills/thumbgate-feedback/SKILL.md +49 -0
  364. package/src/api/server.js +4208 -0
package/package.json ADDED
@@ -0,0 +1,283 @@
1
+ {
2
+ "name": "thumbgate",
3
+ "version": "0.9.10",
4
+ "description": "ThumbGate — Pre-action gates that block AI coding agents from repeating known mistakes. SQLite+FTS5 lesson DB with corrective-action inference. MemAlign-inspired dual recall (principles + episodic context). Thompson Sampling for adaptive gate sensitivity. LanceDB vector search. Captures feedback, auto-promotes failures into prevention rules, and enforces them via PreToolUse hooks.",
5
+ "homepage": "https://thumbgate-production.up.railway.app",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "https://github.com/IgorGanapolsky/ThumbGate.git"
9
+ },
10
+ "bugs": {
11
+ "url": "https://github.com/IgorGanapolsky/ThumbGate/issues"
12
+ },
13
+ "main": "scripts/feedback-loop.js",
14
+ "bin": {
15
+ "thumbgate": "bin/cli.js"
16
+ },
17
+ "files": [
18
+ "bin/",
19
+ "src/",
20
+ "scripts/",
21
+ "adapters/",
22
+ "config/",
23
+ "plugins/",
24
+ "skills/",
25
+ "openapi/",
26
+ "public/",
27
+ ".well-known/",
28
+ ".claude-plugin/",
29
+ "README.md",
30
+ "LICENSE"
31
+ ],
32
+ "scripts": {
33
+ "postinstall": "node bin/postinstall.js || true",
34
+ "start": "node src/api/server.js",
35
+ "build:claude-mcpb": "node scripts/build-claude-mcpb.js",
36
+ "verify:quick": "node scripts/verify-run.js quick",
37
+ "verify:full": "node scripts/verify-run.js full",
38
+ "budget:status": "node scripts/budget-guard.js --status",
39
+ "revenue:status": "node scripts/revenue-status.js",
40
+ "revenue:status:local": "node bin/cli.js cfo",
41
+ "revenue:repair:github-marketplace": "node bin/cli.js repair-github-marketplace --write",
42
+ "cfo:report": "node bin/cli.js cfo",
43
+ "creator:links": "node scripts/creator-campaigns.js",
44
+ "stripe:live": "node scripts/stripe-live-status.js",
45
+ "gtm:revenue-loop": "node scripts/autonomous-sales-agent.js",
46
+ "social:prepare": "node scripts/social-pipeline.js prepare",
47
+ "social:post": "node scripts/social-pipeline.js post",
48
+ "social:queue": "node scripts/social-pipeline.js queue",
49
+ "social:publish": "node scripts/social-pipeline.js publish",
50
+ "social:publish:queue": "node scripts/social-pipeline.js publish-queue",
51
+ "social:scheduler:install": "node scripts/social-pipeline.js install-scheduler",
52
+ "social:status": "node scripts/social-pipeline.js status",
53
+ "social:poll": "node scripts/social-analytics/poll-all.js",
54
+ "social:poll:github": "node scripts/social-analytics/pollers/github.js",
55
+ "social:poll:instagram": "node scripts/social-analytics/pollers/instagram.js",
56
+ "social:poll:tiktok": "node scripts/social-analytics/pollers/tiktok.js",
57
+ "social:poll:linkedin": "node scripts/social-analytics/pollers/linkedin.js",
58
+ "social:poll:x": "node scripts/social-analytics/pollers/x.js",
59
+ "social:poll:reddit": "node scripts/social-analytics/pollers/reddit.js",
60
+ "social:poll:threads": "node scripts/social-analytics/pollers/threads.js",
61
+ "social:poll:youtube": "node scripts/social-analytics/pollers/youtube.js",
62
+ "social:poll:plausible": "node scripts/social-analytics/pollers/plausible.js",
63
+ "social:digest": "node scripts/social-analytics/run-digest.js",
64
+ "social:mcp": "node scripts/social-analytics/mcp-server.js",
65
+ "social:post-everywhere": "node scripts/post-everywhere.js",
66
+ "social:post-everywhere:dry": "node scripts/post-everywhere.js --dry-run",
67
+ "social:reply-monitor": "node scripts/social-reply-monitor.js",
68
+ "social:reply-monitor:dry": "node scripts/social-reply-monitor.js --dry-run",
69
+ "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:workflow && npm run test:billing && npm run test:cli && npm run test:watcher && npm run test:autoresearch && npm run test:ops && 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: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: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: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:lesson-retrieval && 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-quality-gate && npm run test:a2ui-engine && npm run test:gate-satisfy && npm run test:money-watcher && npm run test:utm && npm run test:product-feedback && npm run test:feedback-root-consolidator",
70
+ "test:feedback-fallback": "node --test tests/feedback-fallback.test.js",
71
+ "test:metaclaw": "node --test tests/metaclaw-features.test.js",
72
+ "test:server-lock": "node --test tests/server-stdio-lock.test.js",
73
+ "test:org-dashboard": "node --test tests/org-dashboard.test.js",
74
+ "test:multi-hop-recall": "node --test tests/multi-hop-recall.test.js",
75
+ "test:synthetic-dpo": "node --test tests/synthetic-dpo.test.js",
76
+ "test:thumbgate-skill": "node --test tests/thumbgate-skill.test.js",
77
+ "test:statusline": "node --test tests/statusline.test.js",
78
+ "test:memory-dedup": "node --test tests/memory-dedup.test.js",
79
+ "test:lesson-db": "node --test tests/lesson-db.test.js",
80
+ "test:lesson-rotation": "node --test tests/lesson-rotation.test.js",
81
+ "test:feedback-quality": "node --test tests/feedback-quality.test.js",
82
+ "test:sync-version": "node --test tests/sync-version.test.js",
83
+ "test:check-congruence": "node --test tests/check-congruence.test.js",
84
+ "test:tool-registry": "node --test tests/tool-registry.test.js",
85
+ "test:learn-hub": "node --test tests/learn-hub.test.js",
86
+ "test:feedback-to-rules": "node --test tests/feedback-to-rules.test.js",
87
+ "test:memory-firewall": "node --test tests/memory-firewall.test.js",
88
+ "test:belief-update": "node --test tests/belief-update.test.js",
89
+ "test:hosted-config": "node --test tests/hosted-config.test.js",
90
+ "test:cloudflare-sandbox": "node --test tests/cloudflare-dynamic-sandbox.test.js tests/cloudflare-sandbox-api.test.js",
91
+ "test:mcp-config": "node --test tests/mcp-config.test.js",
92
+ "test:plan-gate": "node --test tests/plan-gate.test.js",
93
+ "test:pulse": "node --test tests/pulse.test.js",
94
+ "test:semantic-layer": "node --test tests/semantic-layer.test.js",
95
+ "test:data-pipeline": "node --test tests/data-pipeline.test.js",
96
+ "test:optimize-context": "node --test tests/optimize-context.test.js",
97
+ "test:principle-extractor": "node --test tests/principle-extractor.test.js",
98
+ "test:analytics-window": "node --test tests/analytics-window.test.js",
99
+ "test:funnel-analytics": "node --test tests/funnel-analytics.test.js",
100
+ "test:experiment-tracker": "node --test tests/experiment-tracker.test.js",
101
+ "test:build-metadata": "node --test tests/build-metadata.test.js",
102
+ "test:context-engine": "node --test tests/context-engine.test.js",
103
+ "test:hf-papers": "node --test tests/hf-papers.test.js",
104
+ "test:marketing-experiment": "node --test tests/marketing-experiment.test.js",
105
+ "test:seo-gsd": "node --test tests/seo-gsd.test.js",
106
+ "test:verify-run": "node --test tests/verify-run.test.js",
107
+ "test:export-dpo-pairs": "node --test tests/export-dpo-pairs.test.js",
108
+ "seo:gsd": "node scripts/seo-gsd.js plan",
109
+ "seo:gsd:write": "node scripts/seo-gsd.js plan --write",
110
+ "test:congruence": "node scripts/check-congruence.js",
111
+ "test:congruence:live": "node scripts/check-congruence.js --check-live",
112
+ "github:about:check": "node scripts/sync-github-about.js",
113
+ "github:about:sync": "node scripts/sync-github-about.js --write",
114
+ "test:schema": "node scripts/feedback-schema.js --test",
115
+ "test:loop": "node scripts/feedback-loop.js --test",
116
+ "test:dpo": "node scripts/export-dpo-pairs.js --test",
117
+ "test:kto": "node --test tests/export-kto.test.js",
118
+ "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/contextfs.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/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/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",
119
+ "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-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",
120
+ "test:e2e": "node --test tests/e2e-pipeline.test.js tests/e2e-product-flows.test.js tests/e2e-coverage-contract.test.js",
121
+ "test:rlaif": "node --test tests/rlaif-self-audit.test.js tests/dpo-optimizer.test.js tests/meta-policy.test.js",
122
+ "test:attribution": "node --test tests/feedback-attribution.test.js tests/hybrid-feedback-context.test.js",
123
+ "test:quality": "node --test tests/validate-feedback.test.js",
124
+ "test:intelligence": "node --test tests/intelligence.test.js",
125
+ "test:training-export": "node --test tests/training-export.test.js tests/databricks-export.test.js",
126
+ "test:deployment": "node --test tests/deployment.test.js tests/deploy-policy.test.js tests/publish-decision.test.js",
127
+ "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/workflow-runs.test.js tests/workflow-sprint-intake.test.js tests/gtm-revenue-loop.test.js",
128
+ "test:billing": "node --test tests/billing.test.js",
129
+ "test:cli": "node --test tests/analytics-report.test.js tests/creator-campaigns.test.js tests/cli.test.js tests/codex-bridge-script.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/revenue-status.test.js",
130
+ "test:evolution": "node --test tests/workspace-evolver.test.js",
131
+ "test:watcher": "node --test tests/jsonl-watcher.test.js",
132
+ "test:autoresearch": "node --test tests/autoresearch.test.js",
133
+ "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/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/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-webhook-route.test.js tests/train-from-feedback.test.js tests/workflow-hardening-sprint.test.js tests/test-suite-parity.test.js tests/a2ui-engine.test.js tests/webhook-delivery.test.js",
134
+ "test:tessl": "node --test tests/tessl-export.test.js",
135
+ "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",
136
+ "test:workers": "npm --prefix workers ci && npm --prefix workers test",
137
+ "test:evoskill": "node --test tests/evoskill.test.js",
138
+ "test:gates-hardening": "node --test tests/gates-hardening.test.js",
139
+ "test:social-analytics": "node --test tests/social-analytics.test.js",
140
+ "test:memalign": "node --test tests/memalign.test.js",
141
+ "test:xmemory-lite": "node --test tests/xmemory-lite.test.js",
142
+ "test:filesystem-search": "node --test tests/filesystem-search.test.js",
143
+ "test:obsidian-export": "node --test tests/obsidian-export.test.js",
144
+ "test:coverage": "node scripts/test-coverage.js",
145
+ "start:api": "node src/api/server.js",
146
+ "start:mcp": "node adapters/mcp/server-stdio.js",
147
+ "feedback:summary": "npm run test:api && node scripts/feedback-to-rules.js",
148
+ "feedback:rules": "node scripts/feedback-to-rules.js --rules",
149
+ "feedback:stats": "node .claude/scripts/feedback/capture-feedback.js --stats",
150
+ "adk:consolidate": "node scripts/adk-consolidator.js",
151
+ "adk:watch": "node scripts/adk-consolidator.js --watch",
152
+ "pr:manage": "node scripts/pr-manager.js",
153
+ "self-heal:run": "node scripts/self-heal.js",
154
+ "self-heal:check": "node scripts/self-healing-check.js",
155
+ "skill:verify": "node scripts/tessl-export.js verify",
156
+ "tessl:export": "node scripts/tessl-export.js export",
157
+ "tessl:verify": "node scripts/tessl-export.js verify",
158
+ "deploy:policy": "node scripts/deploy-policy.js",
159
+ "prove:adapters": "node --test tests/prove-adapters.test.js",
160
+ "prove:automation": "node --test tests/prove-automation.test.js",
161
+ "prove:workflow-contract": "node --test tests/prove-workflow-contract.test.js",
162
+ "prove:evolution": "node scripts/prove-evolution.js",
163
+ "prove:autoresearch": "node scripts/prove-autoresearch.js",
164
+ "prove:claim-verification": "node scripts/prove-claim-verification.js",
165
+ "prove:data-pipeline": "node scripts/prove-data-pipeline.js",
166
+ "prove:cloudflare-sandbox": "node scripts/prove-cloudflare-sandbox.js",
167
+ "prove:harnesses": "node scripts/prove-harnesses.js",
168
+ "prove:local-intelligence": "node scripts/prove-local-intelligence.js",
169
+ "prove:runtime": "node scripts/prove-runtime.js",
170
+ "prove:settings": "node scripts/prove-settings.js",
171
+ "prove:seo-gsd": "node scripts/prove-seo-gsd.js",
172
+ "prove:tessl": "node scripts/prove-tessl.js",
173
+ "prove:xmemory": "node scripts/prove-xmemory.js",
174
+ "audit:stats": "node scripts/audit-trail.js --stats",
175
+ "profile:route": "node scripts/profile-router.js",
176
+ "social:poll:zernio": "node scripts/social-analytics/pollers/zernio.js",
177
+ "social:publish:zernio": "node scripts/social-analytics/publishers/zernio.js",
178
+ "test:zernio": "node --test tests/zernio-integration.test.js",
179
+ "test:license": "node --test tests/license.test.js",
180
+ "test:bot-detector": "node --test tests/bot-detector.test.js",
181
+ "test:postinstall": "node --test tests/postinstall.test.js",
182
+ "test:funnel-invariants": "node --test tests/funnel-invariants.test.js",
183
+ "test:cli-telemetry": "node --test tests/cli-telemetry.test.js",
184
+ "test:pro-parity": "node --test tests/pro-parity.test.js",
185
+ "test:skill-exporter": "node --test tests/skill-exporter.test.js",
186
+ "test:model-tier-router": "node --test tests/model-tier-router.test.js",
187
+ "test:computer-use-firewall": "node --test tests/computer-use-firewall.test.js",
188
+ "test:control-tower": "node --test tests/control-tower.test.js",
189
+ "test:pii-scanner": "node --test tests/pii-scanner.test.js",
190
+ "test:data-governance": "node --test tests/data-governance.test.js",
191
+ "test:lesson-inference": "node --test tests/conversation-context.test.js tests/lesson-inference.test.js",
192
+ "test:lesson-retrieval": "node --test tests/lesson-retrieval.test.js",
193
+ "test:reflector-agent": "node --test tests/reflector-agent.test.js",
194
+ "test:feedback-session": "node --test tests/feedback-session.test.js",
195
+ "test:feedback-history-distiller": "node --test tests/feedback-history-distiller.test.js",
196
+ "test:hallucination-detector": "node --test tests/hallucination-detector.test.js",
197
+ "test:history-distiller": "node --test tests/history-distiller.test.js",
198
+ "test:predictive-insights": "node --test tests/predictive-insights.test.js",
199
+ "test:prove-predictive-insights": "node --test tests/prove-predictive-insights.test.js",
200
+ "prove:predictive-insights": "node scripts/prove-predictive-insights.js",
201
+ "test:statusbar-cli": "node --test tests/statusbar-cli.test.js",
202
+ "test:generate-instagram-card": "node --test tests/generate-instagram-card.test.js",
203
+ "test:instagram-thumbgate-post": "node --test tests/instagram-thumbgate-post.test.js",
204
+ "test:publish-instagram-thumbgate": "node --test tests/publish-instagram-thumbgate.test.js",
205
+ "test:lesson-synthesis": "node --test tests/lesson-synthesis.test.js",
206
+ "test:background-governance": "node --test tests/background-governance.test.js",
207
+ "test:memory-migration": "node --test tests/memory-migration.test.js",
208
+ "test:prompt-dlp": "node --test tests/prompt-dlp.test.js",
209
+ "test:ephemeral-store": "node --test tests/ephemeral-agent-store.test.js",
210
+ "test:agent-security": "node --test tests/agent-security.test.js",
211
+ "test:skill-progressive": "node --test tests/skill-progressive-disclosure.test.js",
212
+ "test:per-step-scoring": "node --test tests/per-step-scoring.test.js",
213
+ "test:weekly-auto-post": "node --test tests/weekly-auto-post.test.js",
214
+ "test:social-quality-gate": "node --test tests/social-quality-gate.test.js",
215
+ "test:a2ui-engine": "node --test tests/a2ui-engine.test.js",
216
+ "test:gate-satisfy": "node --test tests/gate-satisfy.test.js",
217
+ "test:money-watcher": "node --test tests/money-watcher.test.js",
218
+ "test:utm": "node --test tests/utm.test.js",
219
+ "test:product-feedback": "node --test tests/product-feedback.test.js",
220
+ "test:feedback-root-consolidator": "node --test tests/feedback-root-consolidator.test.js"
221
+ },
222
+ "keywords": [
223
+ "mcp",
224
+ "mcp-server",
225
+ "ai-agents",
226
+ "agent-skills",
227
+ "skill",
228
+ "context-engineering",
229
+ "pre-action-gates",
230
+ "ai-agent-safety",
231
+ "guardrails",
232
+ "feedback-memory",
233
+ "thumbgate",
234
+ "llmops",
235
+ "dpo",
236
+ "agentic-commerce",
237
+ "agent-quality",
238
+ "commerce",
239
+ "prevention-rules",
240
+ "thompson-sampling",
241
+ "memalign",
242
+ "dual-memory",
243
+ "feedback-to-enforcement-pipeline",
244
+ "claude-code",
245
+ "claude-skill",
246
+ "claude-plugin",
247
+ "cursor",
248
+ "codex",
249
+ "safety",
250
+ "enforcement"
251
+ ],
252
+ "author": "Igor Ganapolsky",
253
+ "license": "MIT",
254
+ "funding": [
255
+ {
256
+ "type": "github",
257
+ "url": "https://github.com/sponsors/IgorGanapolsky"
258
+ },
259
+ {
260
+ "type": "individual",
261
+ "url": "https://buymeacoffee.com/igorganapolsky"
262
+ }
263
+ ],
264
+ "engines": {
265
+ "node": ">=18.18.0"
266
+ },
267
+ "dependencies": {
268
+ "@google/genai": "^1.48.0",
269
+ "@huggingface/transformers": "^4.0.1",
270
+ "@lancedb/lancedb": "^0.27.2",
271
+ "apache-arrow": "^18.1.0",
272
+ "better-sqlite3": "^12.8.0",
273
+ "dotenv": "^17.4.1",
274
+ "playwright-core": "^1.59.1",
275
+ "stripe": "^22.0.0"
276
+ },
277
+ "overrides": {
278
+ "express@4.22.1": {
279
+ "path-to-regexp": "0.1.13"
280
+ }
281
+ },
282
+ "mcpName": "io.github.IgorGanapolsky/thumbgate"
283
+ }
@@ -0,0 +1,52 @@
1
+ # Amp: ThumbGate Feedback Skill Install
2
+
3
+ Install the ThumbGate skill for Amp in under 60 seconds. No manual file editing required.
4
+
5
+ ## One-Command Install
6
+
7
+ ```bash
8
+ cp plugins/amp-skill/SKILL.md .amp/skills/thumbgate-feedback.md
9
+ ```
10
+
11
+ Or from the npm package:
12
+
13
+ ```bash
14
+ npx thumbgate init
15
+ cp node_modules/thumbgate/plugins/amp-skill/SKILL.md .amp/skills/thumbgate-feedback.md
16
+ ```
17
+
18
+ ## What This Does
19
+
20
+ Copies the skill definition to `.amp/skills/` so Amp loads it automatically on next launch.
21
+
22
+ ## Verify
23
+
24
+ After copying, restart Amp. The skill will appear in the active skills list.
25
+
26
+ Then test:
27
+
28
+ ```bash
29
+ node .thumbgate/capture-feedback.js --feedback=up --context="amp skill install verified" --tags="install"
30
+ ```
31
+
32
+ ## Available Commands (via skill)
33
+
34
+ ```bash
35
+ # Positive feedback
36
+ node .thumbgate/capture-feedback.js --feedback=up --context="..." --tags="..."
37
+
38
+ # Negative feedback
39
+ node .thumbgate/capture-feedback.js --feedback=down --context="..." --what-went-wrong="..." --what-to-change="..." --tags="..."
40
+ ```
41
+
42
+ ## Requirements
43
+
44
+ - Amp (any version with skills support)
45
+ - Node.js 18+ in PATH
46
+ - `.thumbgate/` directory (created by `npx thumbgate init`)
47
+
48
+ ## Uninstall
49
+
50
+ ```bash
51
+ rm .amp/skills/thumbgate-feedback.md
52
+ ```
@@ -0,0 +1,64 @@
1
+ ---
2
+ name: thumbgate-feedback
3
+ description: Dual-write feedback to Amp MCP memory AND thumbgate for DPO export, analytics, and cross-platform portability
4
+ ---
5
+
6
+ # ThumbGate Feedback Skill (Dual-Write)
7
+
8
+ This skill captures feedback in TWO places simultaneously:
9
+ 1. **Amp MCP memory** — for immediate in-session recall (native to Amp)
10
+ 2. **thumbgate** — for DPO export, LanceDB vectors, prevention rules, and cross-platform analytics
11
+
12
+ ## On thumbs up / positive feedback
13
+
14
+ First, store in Amp's native memory for in-session recall:
15
+ ```
16
+ Use mcp__memory__remember to store: "GOOD: {context}. What worked: {details}"
17
+ ```
18
+
19
+ Then, pipe to thumbgate for DPO export and analytics:
20
+ ```bash
21
+ npx -y thumbgate capture --feedback=up --context="..." --what-worked="..." --tags="..."
22
+ ```
23
+
24
+ ## On thumbs down / negative feedback
25
+
26
+ First, store in Amp's native memory so the mistake is recalled immediately:
27
+ ```
28
+ Use mcp__memory__remember to store: "BAD: {context}. What went wrong: {details}. Fix: {what to change}"
29
+ ```
30
+
31
+ Then, pipe to thumbgate for prevention rules and DPO pairs:
32
+ ```bash
33
+ npx -y thumbgate capture --feedback=down --context="..." --what-went-wrong="..." --what-to-change="..." --tags="..."
34
+ ```
35
+
36
+ ## Before starting a new task
37
+
38
+ Recall from Amp's memory (instant, in-session):
39
+ ```
40
+ Use mcp__memory__recall with query describing the current task
41
+ ```
42
+
43
+ Also check thumbgate for cross-session prevention rules:
44
+ ```bash
45
+ npx -y thumbgate rules
46
+ ```
47
+
48
+ ## Triggers
49
+
50
+ - "thumbs up" / "that worked" / "looks good" / "nice" / "perfect"
51
+ - "thumbs down" / "that failed" / "that was wrong" / "no" / "fix this"
52
+
53
+ ## Negative Triggers (do NOT activate for)
54
+
55
+ - "generate code" / "search files" / "explain this" / "run tests"
56
+
57
+ ## Why dual-write?
58
+
59
+ Amp's MCP memory gives you instant in-session recall. thumbgate gives you:
60
+ - **DPO training pairs** for fine-tuning your model
61
+ - **Prevention rules** that block repeated mistakes
62
+ - **Cross-platform portability** — same feedback works in Claude, Codex, Gemini
63
+ - **LanceDB vector search** for semantic similarity across sessions
64
+ - **REST API** for team dashboards and analytics
@@ -0,0 +1,22 @@
1
+ {
2
+ "name": "codex-bridge",
3
+ "version": "0.9.10",
4
+ "description": "Run Codex review, adversarial review, and second-pass handoffs from Claude Code while keeping ThumbGate reliability memory in the loop.",
5
+ "author": {
6
+ "name": "Igor Ganapolsky",
7
+ "url": "https://github.com/IgorGanapolsky"
8
+ },
9
+ "homepage": "https://thumbgate-production.up.railway.app",
10
+ "repository": "https://github.com/IgorGanapolsky/ThumbGate",
11
+ "license": "MIT",
12
+ "keywords": [
13
+ "claude-code",
14
+ "codex",
15
+ "codex-review",
16
+ "adversarial-review",
17
+ "thumbgate",
18
+ "pre-action-gates",
19
+ "agent-reliability"
20
+ ],
21
+ "mcpServers": "./.mcp.json"
22
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "mcpServers": {
3
+ "thumbgate": {
4
+ "command": "npx",
5
+ "args": [
6
+ "-y",
7
+ "thumbgate@0.9.10",
8
+ "serve"
9
+ ]
10
+ }
11
+ }
12
+ }
@@ -0,0 +1,43 @@
1
+ # Install ThumbGate Codex Bridge for Claude Code
2
+
3
+ ## One-command session install
4
+
5
+ ```bash
6
+ claude --plugin-dir "$(pwd)/plugins/claude-codex-bridge"
7
+ ```
8
+
9
+ That loads the plugin for the current Claude Code session and makes the following skills available:
10
+
11
+ - `/codex-bridge:setup`
12
+ - `/codex-bridge:review`
13
+ - `/codex-bridge:adversarial-review`
14
+ - `/codex-bridge:second-pass`
15
+ - `/codex-bridge:status`
16
+ - `/codex-bridge:result`
17
+
18
+ ## Verify
19
+
20
+ ```bash
21
+ claude plugin validate plugins/claude-codex-bridge
22
+ node plugins/claude-codex-bridge/scripts/codex-bridge.js setup
23
+ ```
24
+
25
+ Expected setup proof:
26
+
27
+ - `codexInstalled: true`
28
+ - `reviewCommand: true`
29
+ - `execCommand: true`
30
+ - `dataDir` points at the plugin data directory
31
+
32
+ ## Typical flow
33
+
34
+ 1. Run `/codex-bridge:review base=main` before merge.
35
+ 2. Run `/codex-bridge:adversarial-review` before deploy or publish.
36
+ 3. Run `/codex-bridge:second-pass focus on billing webhook hardening` when you want Codex to take another shot.
37
+ 4. Run `/codex-bridge:status` or `/codex-bridge:result` to inspect the saved artifact.
38
+
39
+ ## Codex prerequisites
40
+
41
+ - `codex` must be installed and authenticated on the machine.
42
+ - ThumbGate's existing Codex MCP profile still lives at `plugins/codex-profile/`.
43
+ - This bridge plugin does not replace the Codex profile; it gives Claude Code a clean way to call Codex from the same repo.
@@ -0,0 +1,46 @@
1
+ # ThumbGate Codex Bridge for Claude Code
2
+
3
+ This repo-local Claude Code plugin brings Codex into the same workflow for three high-ROI cases:
4
+
5
+ - independent review of uncommitted work or a base diff
6
+ - skeptical adversarial review before risky merges or deploys
7
+ - second-pass handoff when you want a different agent to take another shot
8
+
9
+ The plugin keeps ThumbGate's local reliability memory available through the bundled `thumbgate` MCP server while the bridge script persists Codex artifacts in `${CLAUDE_PLUGIN_DATA}`.
10
+
11
+ ## Shipped skills
12
+
13
+ - `/codex-bridge:setup` — verify Codex CLI, plugin data path, and ThumbGate MCP wiring
14
+ - `/codex-bridge:review` — run a normal Codex review against `--uncommitted`, `--base`, or `--commit`
15
+ - `/codex-bridge:adversarial-review` — run a stricter review focused on hidden regressions and security risk
16
+ - `/codex-bridge:second-pass` — hand off the current task or diff to Codex for a second pass
17
+ - `/codex-bridge:status` — show the latest saved bridge artifact metadata
18
+ - `/codex-bridge:result` — print the last saved Codex output
19
+
20
+ ## Install
21
+
22
+ Run Claude Code with the repo-local plugin loaded:
23
+
24
+ ```bash
25
+ claude --plugin-dir "$(pwd)/plugins/claude-codex-bridge"
26
+ ```
27
+
28
+ Validate the plugin shape before shipping changes:
29
+
30
+ ```bash
31
+ claude plugin validate plugins/claude-codex-bridge
32
+ ```
33
+
34
+ The plugin launches ThumbGate's MCP server automatically through `plugins/claude-codex-bridge/.mcp.json`, so Claude Code gets the reliability tools without extra configuration.
35
+
36
+ ## How it works
37
+
38
+ 1. Claude invokes a bridge skill such as `/codex-bridge:review`.
39
+ 2. The skill runs `plugins/claude-codex-bridge/scripts/codex-bridge.js`.
40
+ 3. The bridge script shells out to `codex exec review` or `codex exec`.
41
+ 4. Codex output is saved under `${CLAUDE_PLUGIN_DATA}/runs/`.
42
+ 5. `/codex-bridge:status` and `/codex-bridge:result` replay the latest artifact without rerunning Codex.
43
+
44
+ ## Why this matters
45
+
46
+ ThumbGate is not trying to replace Codex. The point is to give Claude Code users a fast second reviewer and adversarial pass while keeping pre-action gates, thumbs-up/down feedback memory, and proof artifacts local-first.