thumbgate 1.26.8 → 1.27.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/plugin.json +1 -1
- package/.well-known/agentic-verify.txt +1 -0
- package/.well-known/llms.txt +2 -0
- package/.well-known/mcp/server-card.json +1 -1
- package/README.md +44 -31
- package/adapters/claude/.mcp.json +2 -2
- package/adapters/gcp/dfcx-webhook-gate.js +295 -0
- package/adapters/mcp/server-stdio.js +41 -1
- package/adapters/opencode/opencode.json +1 -1
- package/bench/thumbgate-bench.json +2 -2
- package/bin/cli.js +184 -8
- package/bin/dashboard-cli.js +7 -0
- package/config/gate-classifier-routing.json +98 -0
- package/config/gate-templates.json +60 -0
- package/config/mcp-allowlists.json +8 -7
- package/config/model-candidates.json +71 -6
- package/package.json +28 -12
- package/public/about.html +162 -0
- package/public/chatgpt-app.html +330 -0
- package/public/codex-plugin.html +66 -14
- package/public/compare.html +2 -2
- package/public/dashboard.html +224 -36
- package/public/guide.html +2 -2
- package/public/index.html +122 -40
- package/public/learn.html +70 -0
- package/public/lessons.html +129 -6
- package/public/numbers.html +2 -2
- package/public/pricing.html +28 -23
- package/public/pro.html +3 -3
- package/scripts/agent-operations-planner.js +621 -0
- package/scripts/agent-reward-model.js +53 -1
- package/scripts/ai-component-inventory.js +367 -0
- package/scripts/classifier-routing.js +130 -0
- package/scripts/cli-schema.js +26 -0
- package/scripts/commercial-offer.js +10 -2
- package/scripts/dashboard-chat.js +199 -51
- package/scripts/feedback-sanitizer.js +105 -0
- package/scripts/gates-engine.js +301 -67
- package/scripts/hybrid-feedback-context.js +141 -7
- package/scripts/memory-scope-readiness.js +159 -0
- package/scripts/oss-pr-opportunity-scout.js +35 -5
- package/scripts/parallel-workflow-orchestrator.js +293 -0
- package/scripts/plausible-domain-config.js +86 -0
- package/scripts/plausible-server-events.js +4 -2
- package/scripts/proxy-pointer-rag-guardrails.js +42 -1
- package/scripts/qa-scenario-planner.js +136 -0
- package/scripts/rate-limiter.js +2 -2
- package/scripts/repeat-metric.js +28 -12
- package/scripts/secret-fixture-tokens.js +61 -0
- package/scripts/secret-scanner.js +44 -5
- package/scripts/security-scanner.js +80 -0
- package/scripts/seo-gsd.js +113 -0
- package/scripts/thumbgate-bench.js +16 -1
- package/scripts/tool-registry.js +37 -0
- package/scripts/workflow-sentinel.js +282 -54
- package/src/api/server.js +466 -60
- package/.claude-plugin/marketplace.json +0 -85
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "thumbgate",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.27.3",
|
|
4
4
|
"description": "ThumbGate self-improving agent governance: thumbs-up/down turns every mistake into a prevention rule and blocks repeat patterns. 36 pre-action checks, budget enforcement, and self-protection for Claude Code, Cursor, Codex, Gemini CLI, and Amp.",
|
|
5
5
|
"homepage": "https://thumbgate.ai",
|
|
6
6
|
"repository": {
|
|
@@ -12,7 +12,8 @@
|
|
|
12
12
|
},
|
|
13
13
|
"main": "src/index.js",
|
|
14
14
|
"bin": {
|
|
15
|
-
"thumbgate": "bin/cli.js"
|
|
15
|
+
"thumbgate": "bin/cli.js",
|
|
16
|
+
"thumbgate-dashboard": "bin/dashboard-cli.js"
|
|
16
17
|
},
|
|
17
18
|
"files": [
|
|
18
19
|
"scripts/access-anomaly-detector.js",
|
|
@@ -23,10 +24,12 @@
|
|
|
23
24
|
"scripts/agent-memory-lifecycle.js",
|
|
24
25
|
"scripts/agent-readiness-plan.js",
|
|
25
26
|
"scripts/agent-readiness.js",
|
|
27
|
+
"scripts/agent-operations-planner.js",
|
|
26
28
|
"scripts/agent-reasoning-traces.js",
|
|
27
29
|
"scripts/agent-reward-model.js",
|
|
28
30
|
"scripts/agent-stack-survival-audit.js",
|
|
29
31
|
"scripts/agentic-data-pipeline.js",
|
|
32
|
+
"scripts/ai-component-inventory.js",
|
|
30
33
|
"scripts/ai-engineering-stack-guardrails.js",
|
|
31
34
|
"scripts/ai-search-distribution.js",
|
|
32
35
|
"scripts/analytics-window.js",
|
|
@@ -43,6 +46,7 @@
|
|
|
43
46
|
"scripts/bot-detection.js",
|
|
44
47
|
"scripts/bot-detector.js",
|
|
45
48
|
"scripts/build-metadata.js",
|
|
49
|
+
"scripts/classifier-routing.js",
|
|
46
50
|
"scripts/chatgpt-ads-readiness-pack.js",
|
|
47
51
|
"scripts/claude-feedback-sync.js",
|
|
48
52
|
"scripts/cli-demo.js",
|
|
@@ -84,6 +88,7 @@
|
|
|
84
88
|
"scripts/feedback-loop.js",
|
|
85
89
|
"scripts/feedback-paths.js",
|
|
86
90
|
"scripts/feedback-quality.js",
|
|
91
|
+
"scripts/feedback-sanitizer.js",
|
|
87
92
|
"scripts/feedback-schema.js",
|
|
88
93
|
"scripts/feedback-session.js",
|
|
89
94
|
"scripts/feedback-to-rules.js",
|
|
@@ -139,8 +144,10 @@
|
|
|
139
144
|
"scripts/operational-integrity.js",
|
|
140
145
|
"scripts/oss-pr-opportunity-scout.js",
|
|
141
146
|
"scripts/otel-declarative-config.js",
|
|
147
|
+
"scripts/parallel-workflow-orchestrator.js",
|
|
142
148
|
"scripts/perplexity-client.js",
|
|
143
149
|
"scripts/plan-gate.js",
|
|
150
|
+
"scripts/plausible-domain-config.js",
|
|
144
151
|
"scripts/plausible-server-events.js",
|
|
145
152
|
"scripts/pr-manager.js",
|
|
146
153
|
"scripts/private-core-boundary.js",
|
|
@@ -155,6 +162,7 @@
|
|
|
155
162
|
"scripts/prompting-operating-system.js",
|
|
156
163
|
"scripts/provider-action-normalizer.js",
|
|
157
164
|
"scripts/proxy-pointer-rag-guardrails.js",
|
|
165
|
+
"scripts/qa-scenario-planner.js",
|
|
158
166
|
"scripts/published-cli.js",
|
|
159
167
|
"scripts/rag-precision-guardrails.js",
|
|
160
168
|
"scripts/rate-limiter.js",
|
|
@@ -166,6 +174,7 @@
|
|
|
166
174
|
"scripts/rubric-engine.js",
|
|
167
175
|
"scripts/rule-validator.js",
|
|
168
176
|
"scripts/secret-scanner.js",
|
|
177
|
+
"scripts/secret-fixture-tokens.js",
|
|
169
178
|
"scripts/security-scanner.js",
|
|
170
179
|
"scripts/self-distill-agent.js",
|
|
171
180
|
"scripts/self-heal.js",
|
|
@@ -212,7 +221,6 @@
|
|
|
212
221
|
"scripts/workspace-agent-routines.js",
|
|
213
222
|
"scripts/workspace-evolver.js",
|
|
214
223
|
"scripts/xmemory-lite.js",
|
|
215
|
-
".claude-plugin/marketplace.json",
|
|
216
224
|
".claude-plugin/plugin.json",
|
|
217
225
|
".well-known/",
|
|
218
226
|
"LICENSE",
|
|
@@ -222,20 +230,24 @@
|
|
|
222
230
|
"adapters/codex/config.toml",
|
|
223
231
|
"adapters/forge/forge.yaml",
|
|
224
232
|
"adapters/gemini/function-declarations.json",
|
|
233
|
+
"adapters/gcp/dfcx-webhook-gate.js",
|
|
225
234
|
"adapters/mcp/server-stdio.js",
|
|
226
235
|
"adapters/opencode/opencode.json",
|
|
227
236
|
"bench/programbench-smoke.json",
|
|
228
237
|
"bench/prompt-eval-suite.json",
|
|
229
238
|
"bench/thumbgate-bench.json",
|
|
230
239
|
"bin/cli.js",
|
|
240
|
+
"bin/dashboard-cli.js",
|
|
231
241
|
"bin/postinstall.js",
|
|
232
242
|
"config/",
|
|
233
243
|
"openapi/",
|
|
244
|
+
"public/about.html",
|
|
234
245
|
"public/agent-manager.html",
|
|
235
246
|
"public/blog.html",
|
|
236
247
|
"public/codex-enterprise.html",
|
|
237
248
|
"public/agents-cost-savings.html",
|
|
238
249
|
"public/ai-malpractice-prevention.html",
|
|
250
|
+
"public/chatgpt-app.html",
|
|
239
251
|
"public/codex-plugin.html",
|
|
240
252
|
"public/compare.html",
|
|
241
253
|
"public/dashboard.html",
|
|
@@ -347,10 +359,10 @@
|
|
|
347
359
|
"social:prospect:bluesky:dry": "node scripts/social-bluesky-prospecting.js --dry-run",
|
|
348
360
|
"social:reply-publish:bluesky:dry": "node scripts/social-reply-monitor-bluesky.js --publish-approved --dry-run",
|
|
349
361
|
"test:python": "python3 -m pytest tests/*.py",
|
|
350
|
-
"test": "npm run test:python && 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:repeat-metric && npm run test:noop-detect && npm run test:action-receipts && npm run test:feedback-to-rules && npm run test:memory-firewall && npm run test:memory-scope-readiness && 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:mcp-tool-annotations && npm run test:mcp-oauth && npm run test:mcp-oauth-flow && 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:audit-pr-bot-contamination && npm run test:stripe-bootstrap-saas-catalog && 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:lesson-semantic-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:predictive-credible-range && 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:community-course-platform-launch-kit && 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:social-dedupe-cleanup && 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-archived-product-guard && npm run test:postgres-guard && npm run test:checkout-bot-guard && npm run test:checkout-pro-confirmation-gate && 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:medium-weekly && 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:agent-reasoning-traces && npm run test:judge-reward && npm run test:llm-behavior-monitor && npm run test:prompting-os && npm run test:single-use-credential-gate && npm run test:structured-prompt-driven && 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:gemini-embedding-policy && npm run test:agent-design-governance && npm run test:public-core-boundary && npm run test:hook-stop-verify-deploy && npm run test:hook-stop-anti-claim && npm run test:plausible-server-events && npm run test:activation-tracker && npm run test:unified-revenue-rollup && npm run test:conversion-rate-stats && npm run test:external-customer-audit && npm run test:telemetry-export && npm run test:stripe-checkout-diagnostic && npm run test:stripe-business-identity-probe && npm run test:revenue-observability-doctor && npm run test:public-bundle-ratchet && npm run test:stripe-payment-link-update && npm run test:ci-cd-hygiene-audit && npm run test:verify-marketing-pages-deployed && npm run test:install-email-capture && npm run test:install-shim && npm run test:hook-runtime-subcommands && npm run test:implementation-notes && npm run test:daily-block-cap && npm run test:free-to-paid-conversion-units && npm run test:metrics-real-endpoint && npm run test:cli-trial-and-help && npm run test:cost-cli && npm run test:silent-failure-cluster && npm run test:proof:truth && node --test tests/adaptive-reliability.test.js && npm run test:mcp-oauth-reviewer && npm run test:dfcx-gate && npm run test:dfcx-gate-server && npm run test:vertex-scorer",
|
|
362
|
+
"test": "npm run test:python && 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:repeat-metric && npm run test:noop-detect && npm run test:action-receipts && npm run test:feedback-to-rules && npm run test:memory-firewall && npm run test:memory-scope-readiness && 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:mcp-tool-annotations && npm run test:mcp-oauth && npm run test:mcp-oauth-flow && 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:audit-pr-bot-contamination && npm run test:stripe-bootstrap-saas-catalog && 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:lesson-semantic-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:predictive-credible-range && 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:community-course-platform-launch-kit && 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:social-dedupe-cleanup && 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-archived-product-guard && npm run test:postgres-guard && npm run test:checkout-bot-guard && npm run test:checkout-pro-confirmation-gate && 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:ai-component-inventory && 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:medium-weekly && 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:agent-reasoning-traces && npm run test:judge-reward && npm run test:llm-behavior-monitor && npm run test:prompting-os && npm run test:single-use-credential-gate && npm run test:structured-prompt-driven && 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:gemini-embedding-policy && npm run test:agent-design-governance && npm run test:public-core-boundary && npm run test:hook-stop-verify-deploy && npm run test:hook-stop-anti-claim && npm run test:plausible-server-events && npm run test:activation-tracker && npm run test:unified-revenue-rollup && npm run test:conversion-rate-stats && npm run test:external-customer-audit && npm run test:telemetry-export && npm run test:stripe-checkout-diagnostic && npm run test:stripe-business-identity-probe && npm run test:revenue-observability-doctor && npm run test:public-bundle-ratchet && npm run test:stripe-payment-link-update && npm run test:ci-cd-hygiene-audit && npm run test:verify-marketing-pages-deployed && npm run test:install-email-capture && npm run test:install-shim && npm run test:hook-runtime-subcommands && npm run test:implementation-notes && npm run test:daily-block-cap && npm run test:free-to-paid-conversion-units && npm run test:metrics-real-endpoint && npm run test:cli-trial-and-help && npm run test:cost-cli && npm run test:silent-failure-cluster && npm run test:proof:truth && node --test tests/adaptive-reliability.test.js && npm run test:mcp-oauth-reviewer && npm run test:dfcx-gate && npm run test:dfcx-gate-server && npm run test:vertex-scorer && npm run test:dashboard-chat && npm run test:gitar-integration",
|
|
351
363
|
"test:hook-stop-verify-deploy": "node --test tests/hook-stop-verify-deploy.test.js",
|
|
352
364
|
"test:hook-stop-anti-claim": "node --test tests/hook-stop-anti-claim.test.js",
|
|
353
|
-
"test:plausible-server-events": "node --test tests/plausible-server-events.test.js tests/plausible-poller.test.js",
|
|
365
|
+
"test:plausible-server-events": "node --test tests/plausible-server-events.test.js tests/plausible-poller.test.js tests/plausible-domain-config.test.js",
|
|
354
366
|
"test:activation-tracker": "node --test tests/activation-tracker.test.js",
|
|
355
367
|
"test:unified-revenue-rollup": "node --test tests/unified-revenue-rollup.test.js",
|
|
356
368
|
"test:conversion-rate-stats": "node --test tests/conversion-rate-stats.test.js",
|
|
@@ -449,7 +461,7 @@
|
|
|
449
461
|
"test:loop": "node scripts/feedback-loop.js --test",
|
|
450
462
|
"test:dpo": "node scripts/export-dpo-pairs.js --test",
|
|
451
463
|
"test:kto": "node --test tests/export-kto.test.js",
|
|
452
|
-
"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/gemini-embedding-policy.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/ide-marketplace-extensions.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",
|
|
464
|
+
"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/gemini-embedding-policy.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/ide-marketplace-extensions.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 tests/classifier-routing.test.js",
|
|
453
465
|
"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",
|
|
454
466
|
"test:e2e": "node --test tests/e2e-pipeline.test.js tests/e2e-product-flows.test.js tests/e2e-coverage-contract.test.js tests/interaction-model-e2e.test.js",
|
|
455
467
|
"test:rlaif": "node --test tests/rlaif-self-audit.test.js tests/dpo-optimizer.test.js tests/meta-policy.test.js tests/agent-reward-model.test.js",
|
|
@@ -459,18 +471,18 @@
|
|
|
459
471
|
"test:training-export": "node --test tests/training-export.test.js tests/databricks-export.test.js",
|
|
460
472
|
"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",
|
|
461
473
|
"test:operational-integrity": "node --test tests/operational-integrity.test.js tests/sync-branch-protection.test.js",
|
|
462
|
-
"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/may-2026-revenue-machine.test.js tests/customer-discovery-sprint.test.js tests/revenue-pack-utils.test.js tests/aiventyx-marketplace-plan.test.js tests/cursor-marketplace-revenue-pack.test.js tests/codex-marketplace-revenue-pack.test.js tests/codex-plugin-revenue-pack.test.js tests/gemini-cli-demand-pack.test.js tests/roo-sunset-demand-pack.test.js tests/linkedin-workflow-hardening-pack.test.js tests/chatgpt-gpt-revenue-pack.test.js tests/mcp-directory-revenue-pack.test.js tests/money-marketplace-distribution-pack.test.js tests/autonomous-sales-agent.test.js tests/reddit-dm-workflow-hardening-pack.test.js tests/sales-pipeline.test.js tests/reddit-dm-outreach.test.js tests/github-outreach.test.js tests/enterprise-story.test.js tests/ralph-loop.test.js tests/ralph-mode-ci.test.js tests/guide-conversion-path.test.js tests/roo-sunset-marketing.test.js",
|
|
474
|
+
"test:workflow": "node --test tests/parallel-workflow.test.js 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/may-2026-revenue-machine.test.js tests/customer-discovery-sprint.test.js tests/revenue-pack-utils.test.js tests/aiventyx-marketplace-plan.test.js tests/cursor-marketplace-revenue-pack.test.js tests/codex-marketplace-revenue-pack.test.js tests/codex-plugin-revenue-pack.test.js tests/gemini-cli-demand-pack.test.js tests/roo-sunset-demand-pack.test.js tests/linkedin-workflow-hardening-pack.test.js tests/chatgpt-gpt-revenue-pack.test.js tests/mcp-directory-revenue-pack.test.js tests/money-marketplace-distribution-pack.test.js tests/autonomous-sales-agent.test.js tests/reddit-dm-workflow-hardening-pack.test.js tests/sales-pipeline.test.js tests/reddit-dm-outreach.test.js tests/github-outreach.test.js tests/enterprise-story.test.js tests/ralph-loop.test.js tests/ralph-mode-ci.test.js tests/guide-conversion-path.test.js tests/roo-sunset-marketing.test.js",
|
|
463
475
|
"test:sales-pipeline": "node --test tests/sales-pipeline.test.js",
|
|
464
476
|
"test:billing": "node --test tests/billing.test.js tests/stripe-sync-product-images.test.js",
|
|
465
477
|
"test:cli": "node --test tests/analytics-report.test.js tests/agent-design-governance.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/install-scope-docs.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 tests/creator-dev-and-prune.test.js",
|
|
466
478
|
"test:evolution": "node --test tests/workspace-evolver.test.js",
|
|
467
479
|
"test:watcher": "node --test tests/jsonl-watcher.test.js",
|
|
468
480
|
"test:autoresearch": "node --test tests/autoresearch.test.js",
|
|
469
|
-
"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/gates-engine-upgrade-cta.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 tests/auto-context-packs.test.js tests/daily-block-cap.test.js",
|
|
481
|
+
"test:ops": "node --test tests/qa-scenario-planner.test.js 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/gates-engine-upgrade-cta.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 tests/auto-context-packs.test.js tests/daily-block-cap.test.js",
|
|
470
482
|
"test:session-analyzer": "node --test tests/session-analyzer.test.js",
|
|
471
483
|
"test:tessl": "node --test tests/tessl-export.test.js",
|
|
472
484
|
"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 tests/mcp-tools-suggest-fix.test.js",
|
|
473
|
-
"test:budget": "node --test tests/budget-enforcer.test.js",
|
|
485
|
+
"test:budget": "node --test tests/budget-guard.test.js tests/budget-enforcer.test.js tests/tokenomics-cost-guard.test.js",
|
|
474
486
|
"test:workers": "npm --prefix workers ci && npm --prefix workers test",
|
|
475
487
|
"test:evoskill": "node --test tests/evoskill.test.js",
|
|
476
488
|
"test:gates-hardening": "node --test tests/gates-hardening.test.js",
|
|
@@ -654,8 +666,9 @@
|
|
|
654
666
|
"test:gate-eval": "node --test tests/gate-eval.test.js",
|
|
655
667
|
"gate-eval:ci": "node scripts/gate-eval.js run",
|
|
656
668
|
"test:ai-engineering-stack-guardrails": "node --test tests/ai-engineering-stack-guardrails.test.js",
|
|
669
|
+
"test:ai-component-inventory": "node --test tests/ai-component-inventory.test.js",
|
|
657
670
|
"test:interaction-model": "node --test tests/interaction-model.test.js tests/interaction-model-e2e.test.js",
|
|
658
|
-
"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 tests/interaction-model.test.js tests/interaction-model-e2e.test.js tests/code-graph-guardrails.test.js tests/proxy-pointer-rag-guardrails.test.js tests/rag-precision-guardrails.test.js tests/ai-engineering-stack-guardrails.test.js tests/long-running-agent-context-guardrails.test.js tests/reasoning-efficiency-guardrails.test.js tests/deepseek-v4-runtime-guardrails.test.js tests/upstream-contribution-engine.test.js tests/proactive-agent-eval-guardrails.test.js tests/reward-hacking-guardrails.test.js tests/chatgpt-ads-readiness-pack.test.js tests/oss-pr-opportunity-scout.test.js tests/agent-design-governance.test.js tests/gemini-embedding-policy.test.js tests/openclaw-agent-governance-kit.test.js",
|
|
671
|
+
"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 tests/interaction-model.test.js tests/interaction-model-e2e.test.js tests/code-graph-guardrails.test.js tests/proxy-pointer-rag-guardrails.test.js tests/rag-precision-guardrails.test.js tests/ai-engineering-stack-guardrails.test.js tests/long-running-agent-context-guardrails.test.js tests/reasoning-efficiency-guardrails.test.js tests/deepseek-v4-runtime-guardrails.test.js tests/upstream-contribution-engine.test.js tests/proactive-agent-eval-guardrails.test.js tests/reward-hacking-guardrails.test.js tests/chatgpt-ads-readiness-pack.test.js tests/oss-pr-opportunity-scout.test.js tests/agent-design-governance.test.js tests/gemini-embedding-policy.test.js tests/openclaw-agent-governance-kit.test.js tests/agent-operations-planner.test.js",
|
|
659
672
|
"test:public-static-assets": "node --test tests/public-static-assets.test.js",
|
|
660
673
|
"test:token-savings": "node --test tests/token-savings.test.js",
|
|
661
674
|
"test:cost-cli": "node --test tests/cost-cli.test.js tests/conversion-receipt.test.js",
|
|
@@ -705,7 +718,9 @@
|
|
|
705
718
|
"promote:launch": "node scripts/x-autonomous-marketing.js",
|
|
706
719
|
"feedback:ingest": "node scripts/ingest-manual-feedback.js",
|
|
707
720
|
"verify-proof": "node scripts/require-proof.js",
|
|
708
|
-
"test:mcp-oauth-reviewer": "node --test tests/mcp-oauth-reviewer.test.js"
|
|
721
|
+
"test:mcp-oauth-reviewer": "node --test tests/mcp-oauth-reviewer.test.js",
|
|
722
|
+
"test:dashboard-chat": "node --test tests/dashboard-chat.test.js",
|
|
723
|
+
"test:gitar-integration": "node --test tests/gitar-integration.test.js"
|
|
709
724
|
},
|
|
710
725
|
"keywords": [
|
|
711
726
|
"mcp",
|
|
@@ -783,5 +798,6 @@
|
|
|
783
798
|
"@playwright/test": "^1.60.0",
|
|
784
799
|
"c8": "^11.0.0",
|
|
785
800
|
"undici": "^8.2.0"
|
|
786
|
-
}
|
|
801
|
+
},
|
|
802
|
+
"hotfix": "gate-check-bypass-2026-06-03"
|
|
787
803
|
}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta name="generator" content="ThumbGate">
|
|
5
|
+
<meta name="author" content="Igor Ganapolsky">
|
|
6
|
+
<meta charset="UTF-8">
|
|
7
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
8
|
+
__GOOGLE_SITE_VERIFICATION_META__
|
|
9
|
+
<link rel="icon" type="image/png" href="/thumbgate-icon.png">
|
|
10
|
+
<link rel="alternate icon" type="image/svg+xml" href="/assets/brand/thumbgate-mark.svg">
|
|
11
|
+
<title>About Igor Ganapolsky — ThumbGate</title>
|
|
12
|
+
<meta name="description" content="Igor Ganapolsky — Senior AI & Mobile Engineer building ThumbGate, an agent-governance layer for Claude Code, Cursor, Codex, and Gemini. Production Stripe Connect, Agentic RAG, and React Native experience.">
|
|
13
|
+
<meta property="og:title" content="About Igor Ganapolsky — ThumbGate">
|
|
14
|
+
<meta property="og:description" content="Senior AI & Mobile Engineer. Builder of ThumbGate. Production Stripe Connect + Agentic RAG + React Native engineer for hire.">
|
|
15
|
+
<meta property="og:type" content="profile">
|
|
16
|
+
<meta property="og:url" content="https://thumbgate.ai/about">
|
|
17
|
+
<meta property="og:image" content="https://thumbgate.ai/og.png">
|
|
18
|
+
<meta name="twitter:card" content="summary_large_image">
|
|
19
|
+
<link rel="canonical" href="https://thumbgate.ai/about">
|
|
20
|
+
<link rel="alternate" type="text/markdown" title="ThumbGate LLM context" href="https://thumbgate.ai/llm-context.md">
|
|
21
|
+
|
|
22
|
+
<script type="application/ld+json">
|
|
23
|
+
{
|
|
24
|
+
"@context": "https://schema.org",
|
|
25
|
+
"@type": "Person",
|
|
26
|
+
"name": "Igor Ganapolsky",
|
|
27
|
+
"givenName": "Igor",
|
|
28
|
+
"familyName": "Ganapolsky",
|
|
29
|
+
"alternateName": ["iganapolsky", "IgorGanapolsky"],
|
|
30
|
+
"url": "https://thumbgate.ai/about",
|
|
31
|
+
"image": "https://thumbgate.ai/og.png",
|
|
32
|
+
"jobTitle": "Senior AI & Mobile Engineer",
|
|
33
|
+
"description": "Production Stripe Connect, Agentic RAG, React Native, and AI-agent governance engineer. Creator of ThumbGate — pre-action defense for AI coding agents.",
|
|
34
|
+
"knowsAbout": [
|
|
35
|
+
"Agentic RAG",
|
|
36
|
+
"Stripe Connect",
|
|
37
|
+
"Stripe Billing",
|
|
38
|
+
"React Native",
|
|
39
|
+
"Android",
|
|
40
|
+
"Claude Code",
|
|
41
|
+
"Cursor",
|
|
42
|
+
"Codex",
|
|
43
|
+
"Gemini",
|
|
44
|
+
"AI agent governance",
|
|
45
|
+
"LLM cost optimization",
|
|
46
|
+
"Pre-action checks",
|
|
47
|
+
"Workflow hardening",
|
|
48
|
+
"Context engineering",
|
|
49
|
+
"MCP servers",
|
|
50
|
+
"LangChain",
|
|
51
|
+
"LangGraph",
|
|
52
|
+
"Patchright",
|
|
53
|
+
"Playwright",
|
|
54
|
+
"OpenAI API",
|
|
55
|
+
"Anthropic API"
|
|
56
|
+
],
|
|
57
|
+
"address": {
|
|
58
|
+
"@type": "PostalAddress",
|
|
59
|
+
"addressLocality": "Coral Springs",
|
|
60
|
+
"addressRegion": "FL",
|
|
61
|
+
"addressCountry": "US"
|
|
62
|
+
},
|
|
63
|
+
"email": "iganapolsky@gmail.com",
|
|
64
|
+
"sameAs": [
|
|
65
|
+
"https://github.com/IgorGanapolsky",
|
|
66
|
+
"https://www.linkedin.com/in/igor-ganapolsky-5324b7330",
|
|
67
|
+
"https://dev.to/igorganapolsky",
|
|
68
|
+
"https://www.upwork.com/freelancers/~01b5f08ed8b1a9a3c1",
|
|
69
|
+
"https://huggingface.co/IgorGanapolsky",
|
|
70
|
+
"https://x.com/igorganapolsky"
|
|
71
|
+
],
|
|
72
|
+
"worksFor": {
|
|
73
|
+
"@type": "Organization",
|
|
74
|
+
"name": "ThumbGate",
|
|
75
|
+
"url": "https://thumbgate.ai/"
|
|
76
|
+
},
|
|
77
|
+
"owns": {
|
|
78
|
+
"@type": "SoftwareApplication",
|
|
79
|
+
"name": "ThumbGate",
|
|
80
|
+
"applicationCategory": "DeveloperApplication",
|
|
81
|
+
"description": "Pre-action defense for AI coding agents — thumbs up/down become history-aware lessons across Claude Code, Cursor, Codex, Gemini, Amp, Cline, OpenCode."
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
</script>
|
|
85
|
+
|
|
86
|
+
<style>
|
|
87
|
+
body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text",Inter,system-ui,sans-serif;line-height:1.6;color:#0f172a;background:#fafafa}
|
|
88
|
+
header{padding:1rem 1.5rem;border-bottom:1px solid #e5e7eb;background:#fff;display:flex;align-items:center;gap:1rem}
|
|
89
|
+
header a{color:#0f172a;text-decoration:none;font-weight:600}
|
|
90
|
+
main{max-width:780px;margin:0 auto;padding:2.5rem 1.5rem}
|
|
91
|
+
h1{font-size:2rem;margin:0 0 .25rem}
|
|
92
|
+
h2{margin-top:2rem;font-size:1.25rem}
|
|
93
|
+
.lede{font-size:1.125rem;color:#475569}
|
|
94
|
+
.chips{display:flex;flex-wrap:wrap;gap:.4rem;margin:.75rem 0 0}
|
|
95
|
+
.chip{display:inline-block;padding:.2rem .55rem;border:1px solid #e2e8f0;border-radius:9999px;font-size:.85rem;color:#334155;background:#fff}
|
|
96
|
+
ul.links{list-style:none;padding:0;margin:1rem 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.5rem}
|
|
97
|
+
ul.links li a{display:block;padding:.6rem .8rem;background:#fff;border:1px solid #e2e8f0;border-radius:.5rem;color:#0f172a;text-decoration:none}
|
|
98
|
+
ul.links li a:hover{border-color:#0f172a}
|
|
99
|
+
.section{background:#fff;border:1px solid #e5e7eb;border-radius:.75rem;padding:1.25rem 1.5rem;margin:1.25rem 0}
|
|
100
|
+
footer{padding:2rem 1.5rem;color:#64748b;font-size:.9rem;text-align:center}
|
|
101
|
+
</style>
|
|
102
|
+
</head>
|
|
103
|
+
<body>
|
|
104
|
+
|
|
105
|
+
<header>
|
|
106
|
+
<a href="/">ThumbGate</a>
|
|
107
|
+
<span style="color:#94a3b8">/</span>
|
|
108
|
+
<span>About</span>
|
|
109
|
+
</header>
|
|
110
|
+
|
|
111
|
+
<main>
|
|
112
|
+
|
|
113
|
+
<h1>Igor Ganapolsky</h1>
|
|
114
|
+
<p class="lede">Senior AI & Mobile Engineer. Builder of <a href="/">ThumbGate</a> — pre-action defense for AI coding agents. Available for high-leverage Stripe Connect, Agentic RAG, and React Native contract engagements.</p>
|
|
115
|
+
|
|
116
|
+
<div class="chips">
|
|
117
|
+
<span class="chip">Coral Springs, FL · US</span>
|
|
118
|
+
<span class="chip">Agentic RAG</span>
|
|
119
|
+
<span class="chip">Stripe Connect</span>
|
|
120
|
+
<span class="chip">React Native</span>
|
|
121
|
+
<span class="chip">Android</span>
|
|
122
|
+
<span class="chip">Claude Code · Cursor · Codex · Gemini</span>
|
|
123
|
+
</div>
|
|
124
|
+
|
|
125
|
+
<section class="section">
|
|
126
|
+
<h2>What I build</h2>
|
|
127
|
+
<p><strong>ThumbGate</strong> is the agent-governance layer that turns 👍 / 👎 signals into history-aware lessons across Claude Code, Cursor, Codex, Gemini, Amp, Cline, and OpenCode. Pre-Action Checks block the next repeated mistake before the tool call runs — workflow shape, inspection evidence, token budget, and repeated-failure memory in one gate.</p>
|
|
128
|
+
<p>Outside ThumbGate, I ship production Stripe Connect marketplaces, Agentic RAG systems with LanceDB / pgvector / FAISS retrieval, React Native + Android apps, and LLM cost-instrumentation layers.</p>
|
|
129
|
+
</section>
|
|
130
|
+
|
|
131
|
+
<section class="section">
|
|
132
|
+
<h2>Recent ships</h2>
|
|
133
|
+
<ul>
|
|
134
|
+
<li><strong>Hilltown Media Group · Pretix Stripe Connect plugin</strong> — production payments + automation, 100% test coverage, milestone-funded delivery.</li>
|
|
135
|
+
<li><strong>ThumbGate v1.27</strong> — pre-action governance for AI coding agents, available on npm as <code>thumbgate</code>.</li>
|
|
136
|
+
<li><strong>Resume revenue ML stack</strong> — Thompson-sampling bandit + copy/buyer logistic regression + Agentic RAG for closed-loop UpWork bidding.</li>
|
|
137
|
+
</ul>
|
|
138
|
+
</section>
|
|
139
|
+
|
|
140
|
+
<section class="section">
|
|
141
|
+
<h2>For hire</h2>
|
|
142
|
+
<p>Available for fixed-price engagements ≥ $2K and ongoing retainers. Standard rate $120–150/hr 1099. Strong signal on Stripe Connect & Billing audits, RAG + LLM evaluation harnesses, and React Native + Android engineering. Email <a href="mailto:iganapolsky@gmail.com">iganapolsky@gmail.com</a> or reach me on <a href="https://www.upwork.com/freelancers/~01b5f08ed8b1a9a3c1">Upwork</a>.</p>
|
|
143
|
+
</section>
|
|
144
|
+
|
|
145
|
+
<h2>Links</h2>
|
|
146
|
+
<ul class="links">
|
|
147
|
+
<li><a href="https://github.com/IgorGanapolsky" rel="me">GitHub</a></li>
|
|
148
|
+
<li><a href="https://www.linkedin.com/in/igor-ganapolsky-5324b7330" rel="me">LinkedIn</a></li>
|
|
149
|
+
<li><a href="https://dev.to/igorganapolsky" rel="me">dev.to</a></li>
|
|
150
|
+
<li><a href="https://www.upwork.com/freelancers/~01b5f08ed8b1a9a3c1" rel="me">Upwork</a></li>
|
|
151
|
+
<li><a href="https://huggingface.co/IgorGanapolsky" rel="me">Hugging Face</a></li>
|
|
152
|
+
<li><a href="https://x.com/igorganapolsky" rel="me">X</a></li>
|
|
153
|
+
</ul>
|
|
154
|
+
|
|
155
|
+
</main>
|
|
156
|
+
|
|
157
|
+
<footer>
|
|
158
|
+
© 2026 ThumbGate · Built by <a href="/about">Igor Ganapolsky</a>
|
|
159
|
+
</footer>
|
|
160
|
+
|
|
161
|
+
</body>
|
|
162
|
+
</html>
|