thumbgate 0.9.9
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/README.md +134 -0
- package/.claude-plugin/bundle/icon.png +0 -0
- package/.claude-plugin/bundle/icon.svg +18 -0
- package/.claude-plugin/bundle/server/index.js +24 -0
- package/.claude-plugin/marketplace.json +36 -0
- package/.claude-plugin/plugin.json +21 -0
- package/.well-known/mcp/server-card.json +231 -0
- package/LICENSE +21 -0
- package/README.md +375 -0
- package/adapters/README.md +9 -0
- package/adapters/amp/skills/rlhf-feedback/SKILL.md +22 -0
- package/adapters/chatgpt/INSTALL.md +83 -0
- package/adapters/chatgpt/openapi.yaml +1281 -0
- package/adapters/claude/.mcp.json +14 -0
- package/adapters/codex/config.toml +9 -0
- package/adapters/gemini/function-declarations.json +224 -0
- package/adapters/mcp/server-stdio.js +788 -0
- package/adapters/opencode/opencode.json +15 -0
- package/bin/cli.js +1483 -0
- package/bin/memory.sh +64 -0
- package/bin/obsidian-sync.sh +20 -0
- package/bin/postinstall.js +37 -0
- package/config/build-metadata.json +4 -0
- package/config/e2e-critical-flows.json +45 -0
- package/config/gate-templates.json +77 -0
- package/config/gates/claim-verification.json +29 -0
- package/config/gates/computer-use.json +39 -0
- package/config/gates/default.json +117 -0
- package/config/github-about.json +25 -0
- package/config/mcp-allowlists.json +135 -0
- package/config/model-tiers.json +33 -0
- package/config/partner-routing.json +132 -0
- package/config/policy-bundles/constrained-v1.json +64 -0
- package/config/policy-bundles/default-v1.json +91 -0
- package/config/rubrics/default-v1.json +52 -0
- package/config/skill-packs/react-testing.json +23 -0
- package/config/skill-packs/stripe-integration/references/api-spec.json +1 -0
- package/config/skill-packs/stripe-integration/references/webhook-guide.md +3 -0
- package/config/skill-specs/pr-reviewer.json +9 -0
- package/config/skill-specs/release-status.json +9 -0
- package/config/skill-specs/ticket-triage.json +9 -0
- package/config/subagent-profiles.json +32 -0
- package/config/tessl-tiles.json +29 -0
- package/config/thumbgate-settings.managed.json +12 -0
- package/openapi/openapi.yaml +1281 -0
- package/package.json +286 -0
- package/plugins/amp-skill/INSTALL.md +52 -0
- package/plugins/amp-skill/SKILL.md +64 -0
- package/plugins/claude-codex-bridge/.claude-plugin/plugin.json +22 -0
- package/plugins/claude-codex-bridge/.mcp.json +12 -0
- package/plugins/claude-codex-bridge/INSTALL.md +43 -0
- package/plugins/claude-codex-bridge/README.md +46 -0
- package/plugins/claude-codex-bridge/scripts/codex-bridge.js +288 -0
- package/plugins/claude-codex-bridge/skills/adversarial-review/SKILL.md +24 -0
- package/plugins/claude-codex-bridge/skills/result/SKILL.md +22 -0
- package/plugins/claude-codex-bridge/skills/review/SKILL.md +28 -0
- package/plugins/claude-codex-bridge/skills/second-pass/SKILL.md +27 -0
- package/plugins/claude-codex-bridge/skills/setup/SKILL.md +21 -0
- package/plugins/claude-codex-bridge/skills/status/SKILL.md +19 -0
- package/plugins/claude-skill/INSTALL.md +55 -0
- package/plugins/claude-skill/SKILL.md +46 -0
- package/plugins/codex-profile/.codex-plugin/plugin.json +43 -0
- package/plugins/codex-profile/.mcp.json +12 -0
- package/plugins/codex-profile/AGENTS.md +20 -0
- package/plugins/codex-profile/INSTALL.md +66 -0
- package/plugins/codex-profile/README.md +37 -0
- package/plugins/cursor-marketplace/.cursor-plugin/plugin.json +23 -0
- package/plugins/cursor-marketplace/CHANGELOG.md +30 -0
- package/plugins/cursor-marketplace/LICENSE +21 -0
- package/plugins/cursor-marketplace/README.md +124 -0
- package/plugins/cursor-marketplace/agents/reliability-reviewer.md +31 -0
- package/plugins/cursor-marketplace/assets/logo-400x400.png +0 -0
- package/plugins/cursor-marketplace/commands/capture-feedback.md +33 -0
- package/plugins/cursor-marketplace/commands/check-gates.md +25 -0
- package/plugins/cursor-marketplace/commands/show-lessons.md +27 -0
- package/plugins/cursor-marketplace/hooks/hooks.json +10 -0
- package/plugins/cursor-marketplace/mcp.json +12 -0
- package/plugins/cursor-marketplace/rules/feedback-capture.mdc +34 -0
- package/plugins/cursor-marketplace/rules/pre-action-gates.mdc +30 -0
- package/plugins/cursor-marketplace/rules/session-continuity.mdc +28 -0
- package/plugins/cursor-marketplace/scripts/gate-check.sh +11 -0
- package/plugins/cursor-marketplace/skills/capture-feedback/SKILL.md +47 -0
- package/plugins/cursor-marketplace/skills/prevention-rules/SKILL.md +31 -0
- package/plugins/cursor-marketplace/skills/recall-context/SKILL.md +30 -0
- package/plugins/cursor-marketplace/skills/search-lessons/SKILL.md +33 -0
- package/plugins/gemini-extension/INSTALL.md +92 -0
- package/plugins/gemini-extension/gemini_prompt.txt +14 -0
- package/plugins/gemini-extension/tool_contract.json +45 -0
- package/plugins/opencode-profile/INSTALL.md +57 -0
- package/public/assets/instagram-card.png +0 -0
- package/public/assets/tiktok-agent-memory.mp4 +0 -0
- package/public/blog.html +400 -0
- package/public/dashboard.html +1093 -0
- package/public/guide.html +317 -0
- package/public/index.html +1195 -0
- package/public/learn/agent-harness-pattern.html +180 -0
- package/public/learn/ai-agent-persistent-memory.html +202 -0
- package/public/learn/learn.css +45 -0
- package/public/learn/mcp-pre-action-gates-explained.html +172 -0
- package/public/learn/stop-ai-agent-force-push.html +134 -0
- package/public/learn/vibe-coding-safety-net.html +142 -0
- package/public/learn.html +213 -0
- package/public/lessons.html +650 -0
- package/public/vercel.json +8 -0
- package/scripts/__pycache__/train_from_feedback.cpython-314.pyc +0 -0
- package/scripts/a2ui-engine.js +73 -0
- package/scripts/access-anomaly-detector.js +12 -0
- package/scripts/adk-consolidator.js +266 -0
- package/scripts/agent-readiness.js +220 -0
- package/scripts/agent-security-hardening.js +227 -0
- package/scripts/agentic-data-pipeline.js +847 -0
- package/scripts/analytics-report.js +328 -0
- package/scripts/analytics-window.js +158 -0
- package/scripts/async-job-runner.js +1001 -0
- package/scripts/audit-trail.js +398 -0
- package/scripts/auto-promote-gates.js +293 -0
- package/scripts/auto-wire-hooks.js +316 -0
- package/scripts/autonomous-sales-agent.js +39 -0
- package/scripts/autoresearch-runner.js +216 -0
- package/scripts/background-agent-governance.js +237 -0
- package/scripts/behavioral-extraction.js +93 -0
- package/scripts/belief-update.js +84 -0
- package/scripts/billing.js +2438 -0
- package/scripts/bot-detector.js +50 -0
- package/scripts/budget-guard.js +173 -0
- package/scripts/build-claude-mcpb.js +189 -0
- package/scripts/build-metadata.js +97 -0
- package/scripts/check-congruence.js +322 -0
- package/scripts/cli-feedback.js +135 -0
- package/scripts/cli-telemetry.js +87 -0
- package/scripts/cloudflare-dynamic-sandbox.js +315 -0
- package/scripts/code-reasoning.js +350 -0
- package/scripts/codegraph-context.js +466 -0
- package/scripts/commercial-offer.js +56 -0
- package/scripts/computer-use-firewall.js +250 -0
- package/scripts/context-engine.js +694 -0
- package/scripts/contextfs.js +1287 -0
- package/scripts/conversation-context.js +119 -0
- package/scripts/creator-campaigns.js +239 -0
- package/scripts/daemon-manager.js +108 -0
- package/scripts/daily-digest.js +11 -0
- package/scripts/dashboard-render-spec.js +395 -0
- package/scripts/dashboard.js +1058 -0
- package/scripts/data-governance.js +173 -0
- package/scripts/delegation-runtime.js +900 -0
- package/scripts/deploy-gcp.sh +44 -0
- package/scripts/deploy-policy.js +231 -0
- package/scripts/disagreement-mining.js +315 -0
- package/scripts/dispatch-brief.js +159 -0
- package/scripts/distribution-surfaces.js +44 -0
- package/scripts/dpo-optimizer.js +206 -0
- package/scripts/ensure-repo-bootstrap.js +129 -0
- package/scripts/ephemeral-agent-store.js +219 -0
- package/scripts/eval-harness.js +56 -0
- package/scripts/evolution-state.js +241 -0
- package/scripts/experiment-tracker.js +267 -0
- package/scripts/export-databricks-bundle.js +242 -0
- package/scripts/export-dpo-pairs.js +344 -0
- package/scripts/export-kto-pairs.js +309 -0
- package/scripts/export-training.js +450 -0
- package/scripts/failure-diagnostics.js +558 -0
- package/scripts/feedback-attribution.js +313 -0
- package/scripts/feedback-fallback.js +110 -0
- package/scripts/feedback-history-distiller.js +391 -0
- package/scripts/feedback-inbox-read.js +162 -0
- package/scripts/feedback-loop.js +1887 -0
- package/scripts/feedback-paths.js +145 -0
- package/scripts/feedback-quality.js +139 -0
- package/scripts/feedback-root-consolidator.js +238 -0
- package/scripts/feedback-schema.js +426 -0
- package/scripts/feedback-session.js +286 -0
- package/scripts/feedback-to-memory.js +185 -0
- package/scripts/feedback-to-rules.js +164 -0
- package/scripts/filesystem-search.js +405 -0
- package/scripts/funnel-analytics.js +35 -0
- package/scripts/gate-satisfy.js +42 -0
- package/scripts/gate-stats.js +116 -0
- package/scripts/gate-templates.js +70 -0
- package/scripts/gates-engine.js +816 -0
- package/scripts/generate-paperbanana-diagrams.sh +99 -0
- package/scripts/generate-pretool-hook.sh +40 -0
- package/scripts/github-about.js +350 -0
- package/scripts/github-outreach.js +65 -0
- package/scripts/gtm-revenue-loop.js +520 -0
- package/scripts/hallucination-detector.js +226 -0
- package/scripts/hf-papers.js +317 -0
- package/scripts/history-distiller.js +200 -0
- package/scripts/hook-auto-capture.sh +100 -0
- package/scripts/hook-stop-pr-thread-check.sh +68 -0
- package/scripts/hook-stop-self-score.sh +51 -0
- package/scripts/hook-stop-verify-deploy.sh +31 -0
- package/scripts/hook-thumbgate-cache-updater.js +48 -0
- package/scripts/hook-verify-before-done.sh +20 -0
- package/scripts/hosted-config.js +156 -0
- package/scripts/hybrid-feedback-context.js +675 -0
- package/scripts/install-mcp.js +159 -0
- package/scripts/intent-router.js +392 -0
- package/scripts/internal-agent-bootstrap.js +490 -0
- package/scripts/jsonl-watcher.js +155 -0
- package/scripts/lesson-db.js +613 -0
- package/scripts/lesson-inference.js +310 -0
- package/scripts/lesson-retrieval.js +95 -0
- package/scripts/lesson-rotation.js +137 -0
- package/scripts/lesson-search.js +644 -0
- package/scripts/lesson-synthesis.js +196 -0
- package/scripts/license.js +50 -0
- package/scripts/local-model-profile.js +384 -0
- package/scripts/markdown-escape.js +12 -0
- package/scripts/marketing-experiment.js +671 -0
- package/scripts/mcp-config.js +149 -0
- package/scripts/mcp-policy.js +99 -0
- package/scripts/memalign-recall.js +111 -0
- package/scripts/memory-firewall.js +222 -0
- package/scripts/memory-migration.js +296 -0
- package/scripts/meta-policy.js +190 -0
- package/scripts/metered-billing.js +16 -0
- package/scripts/model-tier-router.js +301 -0
- package/scripts/money-watcher.js +71 -0
- package/scripts/multi-hop-recall.js +240 -0
- package/scripts/natural-language-harness.js +330 -0
- package/scripts/obsidian-export.js +713 -0
- package/scripts/operational-dashboard.js +103 -0
- package/scripts/operational-summary.js +93 -0
- package/scripts/optimize-context.js +17 -0
- package/scripts/org-dashboard.js +201 -0
- package/scripts/partner-orchestration.js +146 -0
- package/scripts/per-step-scoring.js +165 -0
- package/scripts/perplexity-marketing.js +466 -0
- package/scripts/pii-scanner.js +153 -0
- package/scripts/plan-gate.js +154 -0
- package/scripts/post-everywhere.js +308 -0
- package/scripts/post-to-x-retry.sh +22 -0
- package/scripts/post-to-x.js +369 -0
- package/scripts/pr-manager.js +236 -0
- package/scripts/predictive-insights.js +356 -0
- package/scripts/principle-extractor.js +162 -0
- package/scripts/pro-features.js +40 -0
- package/scripts/pro-local-dashboard.js +174 -0
- package/scripts/problem-detail.js +53 -0
- package/scripts/product-feedback.js +134 -0
- package/scripts/profile-router.js +245 -0
- package/scripts/prompt-dlp.js +221 -0
- package/scripts/prompt-guard.js +83 -0
- package/scripts/prove-adapters.js +863 -0
- package/scripts/prove-attribution.js +365 -0
- package/scripts/prove-automation.js +653 -0
- package/scripts/prove-autoresearch.js +304 -0
- package/scripts/prove-claim-verification.js +277 -0
- package/scripts/prove-cloudflare-sandbox.js +163 -0
- package/scripts/prove-data-pipeline.js +410 -0
- package/scripts/prove-data-quality.js +227 -0
- package/scripts/prove-evolution.js +352 -0
- package/scripts/prove-harnesses.js +287 -0
- package/scripts/prove-intelligence.js +259 -0
- package/scripts/prove-lancedb.js +371 -0
- package/scripts/prove-local-intelligence.js +342 -0
- package/scripts/prove-loop-closure.js +263 -0
- package/scripts/prove-predictive-insights.js +357 -0
- package/scripts/prove-runtime.js +350 -0
- package/scripts/prove-seo-gsd.js +234 -0
- package/scripts/prove-settings.js +279 -0
- package/scripts/prove-subway-upgrades.js +277 -0
- package/scripts/prove-tessl.js +229 -0
- package/scripts/prove-training-export.js +327 -0
- package/scripts/prove-workflow-contract.js +116 -0
- package/scripts/prove-xmemory.js +332 -0
- package/scripts/publish-decision.js +133 -0
- package/scripts/pulse.js +80 -0
- package/scripts/rate-limiter.js +125 -0
- package/scripts/reddit-dm-outreach.js +182 -0
- package/scripts/reddit-monitor-cron.sh +26 -0
- package/scripts/reflector-agent.js +221 -0
- package/scripts/reminder-engine.js +132 -0
- package/scripts/revenue-status.js +472 -0
- package/scripts/risk-scorer.js +459 -0
- package/scripts/rlaif-self-audit.js +129 -0
- package/scripts/rlhf_session_start.sh +32 -0
- package/scripts/rubric-engine.js +230 -0
- package/scripts/schedule-manager.js +251 -0
- package/scripts/secret-scanner.js +414 -0
- package/scripts/self-heal.js +147 -0
- package/scripts/self-healing-check.js +188 -0
- package/scripts/semantic-layer.js +98 -0
- package/scripts/seo-gsd.js +1153 -0
- package/scripts/settings-hierarchy.js +214 -0
- package/scripts/shieldcortex-memory-firewall-runner.mjs +53 -0
- package/scripts/skill-exporter.js +262 -0
- package/scripts/skill-generator.js +446 -0
- package/scripts/skill-materializer.js +134 -0
- package/scripts/skill-packs.js +136 -0
- package/scripts/skill-proposer.js +99 -0
- package/scripts/skill-quality-tracker.js +282 -0
- package/scripts/slo-alert-engine.js +14 -0
- package/scripts/slow-loop.js +72 -0
- package/scripts/social-analytics/db/schema.sql +32 -0
- package/scripts/social-analytics/db/social-analytics.db +0 -0
- package/scripts/social-analytics/digest.js +256 -0
- package/scripts/social-analytics/generate-instagram-card.js +97 -0
- package/scripts/social-analytics/instagram-thumbgate-post.js +107 -0
- package/scripts/social-analytics/load-env.js +46 -0
- package/scripts/social-analytics/mcp-server.js +289 -0
- package/scripts/social-analytics/normalizer.js +580 -0
- package/scripts/social-analytics/notify.js +162 -0
- package/scripts/social-analytics/poll-all.js +92 -0
- package/scripts/social-analytics/pollers/github.js +195 -0
- package/scripts/social-analytics/pollers/instagram.js +253 -0
- package/scripts/social-analytics/pollers/linkedin.js +330 -0
- package/scripts/social-analytics/pollers/plausible.js +247 -0
- package/scripts/social-analytics/pollers/reddit.js +306 -0
- package/scripts/social-analytics/pollers/threads.js +233 -0
- package/scripts/social-analytics/pollers/tiktok.js +203 -0
- package/scripts/social-analytics/pollers/x.js +227 -0
- package/scripts/social-analytics/pollers/youtube.js +304 -0
- package/scripts/social-analytics/pollers/zernio.js +183 -0
- package/scripts/social-analytics/publish-instagram-thumbgate.js +98 -0
- package/scripts/social-analytics/publish-thumbgate-launch.js +316 -0
- package/scripts/social-analytics/publishers/devto.js +122 -0
- package/scripts/social-analytics/publishers/instagram.js +317 -0
- package/scripts/social-analytics/publishers/linkedin.js +294 -0
- package/scripts/social-analytics/publishers/reddit.js +390 -0
- package/scripts/social-analytics/publishers/threads.js +275 -0
- package/scripts/social-analytics/publishers/tiktok.js +217 -0
- package/scripts/social-analytics/publishers/x.js +259 -0
- package/scripts/social-analytics/publishers/youtube.js +223 -0
- package/scripts/social-analytics/publishers/zernio.js +378 -0
- package/scripts/social-analytics/run-digest.js +34 -0
- package/scripts/social-analytics/store.js +257 -0
- package/scripts/social-analytics/utm.js +143 -0
- package/scripts/social-pipeline.js +2628 -0
- package/scripts/social-quality-gate.js +18 -0
- package/scripts/social-reply-monitor.js +445 -0
- package/scripts/status-dashboard.js +155 -0
- package/scripts/statusline-lesson.js +16 -0
- package/scripts/statusline-tower.js +8 -0
- package/scripts/statusline.sh +116 -0
- package/scripts/stripe-live-status.js +115 -0
- package/scripts/subagent-profiles.js +79 -0
- package/scripts/sync-gh-secrets-from-env.sh +70 -0
- package/scripts/sync-github-about.js +52 -0
- package/scripts/sync-version.js +447 -0
- package/scripts/synthetic-dpo.js +234 -0
- package/scripts/telemetry-analytics.js +821 -0
- package/scripts/tessl-export.js +371 -0
- package/scripts/test-coverage.js +120 -0
- package/scripts/thompson-sampling.js +417 -0
- package/scripts/thumbgate-search.js +189 -0
- package/scripts/tool-kpi-tracker.js +12 -0
- package/scripts/tool-registry.js +811 -0
- package/scripts/train_from_feedback.py +933 -0
- package/scripts/user-profile.js +78 -0
- package/scripts/validate-feedback.js +581 -0
- package/scripts/validate-workflow-contract.js +287 -0
- package/scripts/vector-store.js +197 -0
- package/scripts/verification-loop.js +291 -0
- package/scripts/verify-obsidian-setup.sh +269 -0
- package/scripts/verify-run.js +269 -0
- package/scripts/webhook-delivery.js +62 -0
- package/scripts/weekly-auto-post.js +124 -0
- package/scripts/workflow-runs.js +154 -0
- package/scripts/workflow-sprint-intake.js +475 -0
- package/scripts/workspace-evolver.js +374 -0
- package/scripts/x-autonomous-marketing.js +139 -0
- package/scripts/xmemory-lite.js +405 -0
- package/skills/agent-memory/SKILL.md +97 -0
- package/skills/rlhf-feedback/SKILL.md +49 -0
- package/skills/solve-architecture-autonomy/SKILL.md +17 -0
- package/skills/solve-architecture-autonomy/tool.js +33 -0
- package/skills/thumbgate/SKILL.md +114 -0
- package/src/api/server.js +4206 -0
package/README.md
ADDED
|
@@ -0,0 +1,375 @@
|
|
|
1
|
+
# ThumbGate
|
|
2
|
+
|
|
3
|
+
> **npm package:** `thumbgate` — install with `npx thumbgate init`
|
|
4
|
+
|
|
5
|
+
[](https://github.com/IgorGanapolsky/ThumbGate/actions/workflows/ci.yml)
|
|
6
|
+
[](https://github.com/IgorGanapolsky/ThumbGate/actions/workflows/self-healing-monitor.yml)
|
|
7
|
+
[](https://www.npmjs.com/package/thumbgate)
|
|
8
|
+
[](LICENSE)
|
|
9
|
+
[](package.json)
|
|
10
|
+
[](https://github.com/sponsors/IgorGanapolsky)
|
|
11
|
+
[](https://buymeacoffee.com/igorganapolsky)
|
|
12
|
+
[](https://thumbgate-production.up.railway.app/checkout/pro?utm_source=github&utm_medium=readme&utm_campaign=thumbgate) — Free stays local-first with unlimited feedback captures, 5 daily lesson searches, unlimited recall, and gating. Vague thumbs feedback can be distilled from the last ~10 messages and failed tool call. Pro adds a personal local dashboard, **Model Hardening Advisor**, and **LoRA/PEFT export**. Team rollout starts at the shared hosted lesson DB, org dashboard, and generated hosted review views.
|
|
13
|
+
|
|
14
|
+
**Repo boundary:** this repository is the public base runtime (`thumbgate`). The paid overlay now lives in the separate [`thumbgate-pro`](https://github.com/IgorGanapolsky/thumbgate-pro) repo/package and inherits from this base instead of shipping from a `pro/` subtree here.
|
|
15
|
+
|
|
16
|
+
**Thumbs down a mistake. It never happens again.**
|
|
17
|
+
|
|
18
|
+
The safety net for vibe coding. Give your AI agent a thumbs-down and it auto-generates a prevention rule. Give a thumbs-up and it reinforces good behavior. Pre-action gates physically block the agent before it repeats a known mistake — a reliability layer for one sharp agent, without another planner or swarm.
|
|
19
|
+
|
|
20
|
+
> **Honest disclaimer:** ThumbGate is context-engineered behavioral steering — it injects feedback into context to condition the model's behavior. It does not update model weights. Feedback becomes searchable memory, prevention rules, and gates that block known-bad actions before they execute.
|
|
21
|
+
|
|
22
|
+
Works with **Claude Code, Cursor, Codex, Gemini, Amp, OpenCode**, and any MCP-compatible agent.
|
|
23
|
+
|
|
24
|
+
**[Live Demo Dashboard](https://thumbgate-production.up.railway.app/dashboard?utm_source=github&utm_medium=readme&utm_campaign=thumbgate)** | **[Setup Guide](https://thumbgate-production.up.railway.app/guide?utm_source=github&utm_medium=readme&utm_campaign=thumbgate)** | **[Landing Page](https://thumbgate-production.up.railway.app/?utm_source=github&utm_medium=readme&utm_campaign=thumbgate)** | **[Verification Evidence](docs/VERIFICATION_EVIDENCE.md)**
|
|
25
|
+
|
|
26
|
+
Most memory tools only help an agent remember. ThumbGate also enforces.
|
|
27
|
+
|
|
28
|
+
**The problem without it:**
|
|
29
|
+
|
|
30
|
+
> BEFORE: Agent force-pushes to main. You correct it. Next session, it force-pushes again.
|
|
31
|
+
|
|
32
|
+
**With ThumbGate (`thumbgate`):**
|
|
33
|
+
|
|
34
|
+
> AFTER: Gate blocks the force-push before it executes. Agent can't repeat the mistake.
|
|
35
|
+
|
|
36
|
+
- `recall` injects the right context at session start.
|
|
37
|
+
- `search_lessons` shows promoted lessons plus the corrective action, lifecycle state, linked rules, linked gates, and the next harness fix the system should make.
|
|
38
|
+
- `retrieve_lessons` surfaces per-action lessons for the tool or workflow you are about to run.
|
|
39
|
+
- `search_rlhf` searches feedback state across feedback logs, ContextFS memory, and prevention rules (context engineering, not weight training).
|
|
40
|
+
- History-aware distillation turns a vague `👍` or `👎` into a concrete lesson proposal from the last ~10 messages plus the failed tool call.
|
|
41
|
+
- Feedback sessions let Cursor, Claude Desktop, Codex, and the hosted API keep appending context to the same feedback record before promotion.
|
|
42
|
+
- Pre-action gates physically block tool calls that match known failure patterns.
|
|
43
|
+
- Session handoff and primer keep continuity across sessions without adding an extra orchestrator.
|
|
44
|
+
|
|
45
|
+
Free and self-hosted users can invoke `search_lessons` directly through MCP, and via the CLI with `npx thumbgate lessons`.
|
|
46
|
+
|
|
47
|
+
## See it in action
|
|
48
|
+
|
|
49
|
+
```
|
|
50
|
+
$ npx thumbgate serve
|
|
51
|
+
[gate] ⛔ Blocked: git push --force (rule: no-force-push, confidence: 0.94)
|
|
52
|
+
[gate] ✅ Passed: git push origin feature-branch
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## Quick Start
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
# One command install — auto-detects your agent
|
|
59
|
+
npx thumbgate init
|
|
60
|
+
|
|
61
|
+
# Or add the MCP server directly
|
|
62
|
+
claude mcp add thumbgate -- npx -y thumbgate serve
|
|
63
|
+
codex mcp add thumbgate -- npx -y thumbgate serve
|
|
64
|
+
amp mcp add thumbgate -- npx -y thumbgate serve
|
|
65
|
+
gemini mcp add thumbgate "npx -y thumbgate serve"
|
|
66
|
+
|
|
67
|
+
# Wire PreToolUse enforcement hooks
|
|
68
|
+
npx thumbgate init --agent claude-code
|
|
69
|
+
npx thumbgate init --agent codex
|
|
70
|
+
npx thumbgate init --agent gemini
|
|
71
|
+
|
|
72
|
+
# Health check and inspect lessons
|
|
73
|
+
npx thumbgate doctor
|
|
74
|
+
npx thumbgate lessons
|
|
75
|
+
npx thumbgate dashboard
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## Claude Code Skill
|
|
79
|
+
|
|
80
|
+
If you use Claude Code, ThumbGate is available as a built-in skill:
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
# Type in any Claude Code session:
|
|
84
|
+
/thumbgate
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
The skill auto-triggers on keywords like "gate", "feedback", "block mistake", "prevention rule", and "thumbs down". It provides inline access to all ThumbGate commands — capture feedback, view gates, search lessons, and check system health.
|
|
88
|
+
|
|
89
|
+
**Free skill** includes: install, capture feedback, view active gates, search lessons, health checks.
|
|
90
|
+
**Pro skill** adds: multi-hop recall, DPO export, gate debugger, and gate wiring support.
|
|
91
|
+
**Team rollout** adds: shared hosted lesson DB, org dashboard visibility, and generated hosted review views for multi-agent workflows.
|
|
92
|
+
|
|
93
|
+
Source: [`.claude/skills/thumbgate/SKILL.md`](.claude/skills/thumbgate/SKILL.md)
|
|
94
|
+
|
|
95
|
+
## How It Works
|
|
96
|
+
|
|
97
|
+
```
|
|
98
|
+
1. You give feedback → 👎 "Force-pushed and lost commits"
|
|
99
|
+
2. ThumbGate distills → Uses recent conversation + failed action when the signal is vague
|
|
100
|
+
3. ThumbGate validates → Rejects vague signals, promotes actionable ones
|
|
101
|
+
4. Rules auto-generate → "Block git push --force to protected branches"
|
|
102
|
+
5. Gates enforce → PreToolUse hook fires → BLOCKED before execution
|
|
103
|
+
6. Agent improves → Same mistake never happens again
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
Pipeline: **Capture → Distill recent history → Validate → Remember → Propose rule → Gate → Export**
|
|
107
|
+
|
|
108
|
+
Feedback session flow:
|
|
109
|
+
|
|
110
|
+
```
|
|
111
|
+
👎 Thumbs down → Session opens → User types follow-up context → Session finalizes → Lesson inferred from full conversation
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
## What's New in v0.9.9
|
|
115
|
+
|
|
116
|
+
- **ADK-Style Progressive Disclosure** — 3-tier skill loading (L1 metadata → L2 rules → L3 resources) that cuts token usage by 82%. Skill factory auto-generates new skill packs from recurring failure patterns. `measureSkillTokens()` shows exact token cost per tier.
|
|
117
|
+
- **Agent Security Hardening** — credential attestation tracks what creds each agent uses per tool call. Privilege escalation detection checks tool calls against MCP profile allowlists. Dependency attestation gate blocks known-compromised packages (event-stream, ua-parser-js).
|
|
118
|
+
- **Ephemeral Agent Store** — per-agent isolated namespaces for background agents with <10s lifetimes. Auto-merge into main store with PII governance check. Data compaction removes old non-promoted entries.
|
|
119
|
+
- **Prompt-Level DLP** — scans tool call inputs for PII/secrets BEFORE execution. Shadow tool detection flags actions bypassing MCP. Governance score (0-100 + letter grade A-F) per agent session.
|
|
120
|
+
- **Memory Migration** — imports Claude Code MEMORY.md files into ThumbGate's SQLite lesson DB. Health check warns on the 200-line cap Mem0 exposed. Comparison data for marketing.
|
|
121
|
+
|
|
122
|
+
### Previous (v0.9.6)
|
|
123
|
+
|
|
124
|
+
- **Background Agent Governance** — run tracking, pre-run governance gates, CI auto-feedback capture. Blocks agents with >50% failure rate. Warns on protected branches and large blast radius. Auto-captures CI pass/fail as structured feedback — no human in the loop. Governance report shows per-agent pass rates and gate blocks.
|
|
125
|
+
- **Hallucination Detector** — decomposes agent claims ("deployed", "tests pass", "PR merged") into verifiable sub-claims, checks each against evidence. Confidence-weighted gates: low confidence blocks, medium warns, high allows. Retrieval-grounded verification flags contradictions with prevention rules.
|
|
126
|
+
- **PII Scanner + Data Governance** — detects emails, phone numbers, SSNs, credit cards in feedback content. DPO export gate blocks pairs containing PII. User-controlled preferences for what data can be exported, shared, or retained. Compliance-ready audit summary.
|
|
127
|
+
- **CLI Inline Feedback** — `node scripts/cli-feedback.js down "broke tests"` captures feedback and echoes lesson + stats to terminal. No browser needed.
|
|
128
|
+
- **Statusline Lessons** — Claude Code statusbar shows most recent lesson with clickable dashboard/lessons links. Auto-created on every feedback capture.
|
|
129
|
+
|
|
130
|
+
### Previous (v0.9.5)
|
|
131
|
+
|
|
132
|
+
- **Conversation Context Capture** — Captures the last 5-10 conversation turns alongside every thumbs up/down, so lessons include the full story, not just a one-liner summary.
|
|
133
|
+
- **History-aware lesson distillation** — Vague thumbs feedback can reuse the recent conversation window plus the failed tool call to propose `whatWentWrong`, `whatToChange`, and a concrete lesson instead of discarding the signal.
|
|
134
|
+
- **Feedback Sessions** — Follow-up messages after thumbs up/down ("you lied about X", "you forgot Y") are captured for 60 seconds and folded into the lesson.
|
|
135
|
+
- **Self-Healing Reflector** — On negative feedback, automatically runs a post-mortem: analyzes what went wrong, checks for recurrence, and proposes a specific rule back to the user.
|
|
136
|
+
- **Structured IF/THEN Rules** — Every lesson is extracted as a structured rule with trigger, action, confidence, and scope — not flat text.
|
|
137
|
+
- **Per-Action Lesson Retrieval** — `retrieve_lessons` MCP tool returns top-K relevant lessons for each tool call using keyword matching, file path overlap, and recency decay.
|
|
138
|
+
|
|
139
|
+
### Previous (v0.9.0)
|
|
140
|
+
|
|
141
|
+
- **Domain skill packs** — installable best-practice rule sets for Stripe, Railway, database migrations. Auto-match by task context.
|
|
142
|
+
- **Before/after eval harness** — 6 built-in eval cases, 100% pass rate with ThumbGate vs 0% without.
|
|
143
|
+
- **MetaClaw slow loop** — idle-time DPO export scheduler via LaunchAgent cron.
|
|
144
|
+
- **Metered outcome billing** — $0.10/blocked action (Pro), $0.08/seat (Team), floor pricing.
|
|
145
|
+
- **AI Control Tower** — per-tool KPIs (P50/P90/P95 latency, success rate), SLO threshold alerts, access anomaly detection.
|
|
146
|
+
- **Daily digest + weekly stats** — ambient Slack/Teams/Discord push. Social-ready weekly stats for build-in-public.
|
|
147
|
+
- **Statusline upgrade** — Claude Code statusbar shows SLO violations, at-risk tools, anomalies inline.
|
|
148
|
+
- **Gemini MCP adapter** — 14 tool declarations for native Gemini agent interop.
|
|
149
|
+
|
|
150
|
+
### Previous (v0.8.5)
|
|
151
|
+
|
|
152
|
+
- **Gate reasoning chains** — every block/warn explains WHY: pattern match, gate identity, source, bypass hints, historical fire count
|
|
153
|
+
- **Multi-hop retrieval** — iterative retrieve → prune → refine loop for complex queries, inspired by Context-1 agentic retrieval
|
|
154
|
+
- **Active context pruning** — re-scores accumulated items after each retrieval hop, drops weak chunks to keep context quality high
|
|
155
|
+
- **Thompson Sampling calibration** — minimum sample threshold (5) prevents low-sample overconfidence; confidence tiers (none/low/medium/high)
|
|
156
|
+
- **Org dashboard** — `org_dashboard` MCP tool aggregates gate decisions across all agent sessions (Team rollout: full visibility, Free preview: 3 agents)
|
|
157
|
+
- **Distractor-aware DPO** — training data export includes near-miss same-domain distractors for harder negatives
|
|
158
|
+
- **Funnel invariant CI** — 13 tests prevent checkout path regression; Pro parity enforced across free/Pro npm packages
|
|
159
|
+
- **Dual-signal feedback** — optional `failureType` ("decision" vs "execution") on `capture_feedback` creates separate Thompson Sampling sub-arms per failure dimension, inspired by Gen-Searcher's dual reward system
|
|
160
|
+
|
|
161
|
+

|
|
162
|
+
|
|
163
|
+
## Pre-Action Gates
|
|
164
|
+
|
|
165
|
+
Gates are the enforcement layer. They do not ask the agent to cooperate — they physically block the action.
|
|
166
|
+
|
|
167
|
+
```text
|
|
168
|
+
Agent tries git push --force
|
|
169
|
+
→ PreToolUse hook fires
|
|
170
|
+
→ gates-engine checks rules
|
|
171
|
+
→ BLOCKED: no force pushes to protected branches
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
Built-in gates:
|
|
175
|
+
|
|
176
|
+
- `push-without-thread-check` — block push if PR threads unresolved
|
|
177
|
+
- `force-push` — block `git push --force` to protected branches
|
|
178
|
+
- `protected-branch-push` — block direct pushes to main/master
|
|
179
|
+
- `package-lock-reset` — block destructive lock file changes
|
|
180
|
+
- `env-file-edit` — block edits to `.env` files with secrets
|
|
181
|
+
|
|
182
|
+
Define custom gates in [`config/gates/custom.json`](config/gates/custom.json).
|
|
183
|
+
|
|
184
|
+
## What Actually Works
|
|
185
|
+
|
|
186
|
+
| Actually works | Does not work |
|
|
187
|
+
| ---------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------- |
|
|
188
|
+
| `recall` injects past context into the next session | Thumbs up/down changing model weights |
|
|
189
|
+
| `session_handoff` and `session_primer` preserve continuity | Agents magically remembering what happened last session |
|
|
190
|
+
| `search_lessons` exposes corrective actions, lifecycle state, linked rules, linked gates, and next harness fixes | Feedback stats automatically improving behavior by themselves |
|
|
191
|
+
| Natural-language harness specs keep workflow control legible and portable across runtimes | Re-implementing the same agent-control logic in every adapter |
|
|
192
|
+
| Pre-action gates block known-bad tool calls before execution | Agents self-correcting without context injection or gates |
|
|
193
|
+
| Auto-promotion turns repeated failures into warn/block rules | Calling this "RLHF-style feedback" in the strict training sense |
|
|
194
|
+
| Rejection ledger shows why vague feedback was rejected | Vague signals silently helping the system |
|
|
195
|
+
|
|
196
|
+
## Core MCP Tools
|
|
197
|
+
|
|
198
|
+
### Essential profile
|
|
199
|
+
|
|
200
|
+
| Tool | Purpose |
|
|
201
|
+
| ---------------------- | ----------------------------------------------------------------------------------------------------------- |
|
|
202
|
+
| `capture_feedback` | Accept up/down signal + context, validate, promote to memory |
|
|
203
|
+
| `open_feedback_session`| Start a linked feedback session when the correction needs multiple follow-up messages |
|
|
204
|
+
| `append_feedback_context` | Add more transcript or operator notes to the open feedback session |
|
|
205
|
+
| `finalize_feedback_session` | Close the linked session and promote the combined evidence into one feedback record |
|
|
206
|
+
| `recall` | Recall relevant past failures and rules for the current task |
|
|
207
|
+
| `search_lessons` | Search promoted lessons with corrective action, lifecycle state, rules, gates |
|
|
208
|
+
| `retrieve_lessons` | Retrieve the highest-signal lessons for a specific tool, action, or workflow context |
|
|
209
|
+
| `reflect_on_feedback` | Propose a reusable rule or lesson from the recent conversation window |
|
|
210
|
+
| `search_rlhf` | Search feedback state across feedback logs, ContextFS, and rules (context engineering, not weight training) |
|
|
211
|
+
| `prevention_rules` | Generate prevention rules from repeated mistakes |
|
|
212
|
+
| `enforcement_matrix` | Inspect promotion rate, active gates, and rejection ledger |
|
|
213
|
+
| `feedback_stats` | Approval rate and failure-domain summary |
|
|
214
|
+
| `estimate_uncertainty` | Bayesian uncertainty estimate for risky tags |
|
|
215
|
+
| `org_dashboard` | **Team** — Shared lessons plus org-wide multi-agent visibility, adherence rates, and risk alerts |
|
|
216
|
+
| `open_feedback_session` | Start a feedback session after thumbs up/down to capture follow-up context |
|
|
217
|
+
| `append_feedback_context` | Add follow-up messages to an open feedback session within the 60-second window |
|
|
218
|
+
| `finalize_feedback_session` | Close the session and fold all follow-up context into the lesson |
|
|
219
|
+
| `retrieve_lessons` | Return top-K relevant lessons for a tool call using keyword matching, file path overlap, and recency decay |
|
|
220
|
+
| `reflect_on_feedback` | Run a self-healing post-mortem on negative feedback — analyzes what went wrong and proposes a rule |
|
|
221
|
+
|
|
222
|
+
Natural-language harnesses now live in [`harnesses/`](harnesses) and can be executed through the async runtime:
|
|
223
|
+
|
|
224
|
+
```bash
|
|
225
|
+
node scripts/async-job-runner.js --list-harnesses
|
|
226
|
+
node scripts/async-job-runner.js --run-harness=repo-full-verification --harness-inputs='{"verificationCommand":"npm run verify:full"}'
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
Long-context local backends can now expose sparse-attention routing hints through the profile router:
|
|
230
|
+
|
|
231
|
+
```bash
|
|
232
|
+
THUMBGATE_PROVIDER_MODE=local \
|
|
233
|
+
THUMBGATE_LOCAL_MODEL_FAMILY=deepseek-r1 \
|
|
234
|
+
THUMBGATE_LOCAL_MODEL_SERVER=sglang \
|
|
235
|
+
THUMBGATE_INDEXCACHE_ENABLED=true \
|
|
236
|
+
npm run profile:route
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
ThumbGate treats IndexCache-style acceleration as a backend capability, not a blanket claim. Long-context retrieval-heavy workloads will recommend sparse-attention local backends when they are actually available.
|
|
240
|
+
|
|
241
|
+
Lean install for recall + gates + lesson search only:
|
|
242
|
+
|
|
243
|
+
```bash
|
|
244
|
+
THUMBGATE_MCP_PROFILE=essential claude mcp add thumbgate -- npx -y thumbgate serve
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
Free and self-hosted users can invoke `search_lessons` directly through MCP to inspect corrective action per lesson. For broader retrieval across feedback logs, ContextFS memory, and prevention rules, use `search_rlhf` (searches feedback state, not model weights) through MCP or the authenticated `GET /v1/search` API.
|
|
248
|
+
|
|
249
|
+
### Dispatch profile
|
|
250
|
+
|
|
251
|
+
Phone-safe read-only surface for remote ops:
|
|
252
|
+
|
|
253
|
+
```bash
|
|
254
|
+
THUMBGATE_MCP_PROFILE=dispatch claude mcp add thumbgate -- npx -y thumbgate serve
|
|
255
|
+
npx thumbgate dispatch
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
Guide: [docs/guides/dispatch-ops.md](docs/guides/dispatch-ops.md)
|
|
259
|
+
|
|
260
|
+
## ThumbGate vs Alternatives
|
|
261
|
+
|
|
262
|
+
| Feature | ThumbGate | SpecLock | Mem0 | .cursorrules |
|
|
263
|
+
| -------------------------------- | ------------------------------------------------- | ---------------------------------------------- | ------------------ | ---------------- |
|
|
264
|
+
| Blocks mistakes before execution | **Yes** — PreToolUse gates | Yes — Patch Firewall | No | No |
|
|
265
|
+
| Learns from your feedback | **Yes** — thumbs up/down | No — manual spec writing | Yes — auto-capture | No |
|
|
266
|
+
| Works across sessions | **Yes** — SQLite + JSONL | Yes — encrypted store | Yes — cloud | No — per-project |
|
|
267
|
+
| Auto-generates rules | **Yes** — from repeated failures | No — manual or Gemini compile | No | No |
|
|
268
|
+
| Agent support | Claude Code, Codex, Gemini, Amp, Cursor, OpenCode | Claude Code, Cursor, Windsurf, Cline, Bolt.new | Claude, Cursor | Cursor only |
|
|
269
|
+
| Install | `npx thumbgate init` | `npx speclock setup` | Cloud signup | Edit file |
|
|
270
|
+
| Cost | **Free** ($19/mo or $149/yr Pro; Team rollout starts at $12/seat/mo) | Free | Free tier + paid | Free |
|
|
271
|
+
| npm weekly downloads | **724** | 98 | N/A | N/A |
|
|
272
|
+
|
|
273
|
+
**When to use ThumbGate:** You want your agent to learn from mistakes automatically and enforce what it learned. One thumbs-down creates a gate.
|
|
274
|
+
|
|
275
|
+
**When to use SpecLock:** You have a written spec/PRD and want to lock specific sections from AI modification. Manual constraint authoring.
|
|
276
|
+
|
|
277
|
+
**When to use Mem0:** You want cloud-hosted memory shared across apps. No enforcement.
|
|
278
|
+
|
|
279
|
+
## Tech Stack
|
|
280
|
+
|
|
281
|
+
### Core runtime
|
|
282
|
+
|
|
283
|
+
- **Node.js** `>=18.18.0`
|
|
284
|
+
- **Module system:** CommonJS CLI/server runtime
|
|
285
|
+
- **Primary entry points:** CLI, MCP stdio server, authenticated HTTP API, OpenAPI adapters
|
|
286
|
+
|
|
287
|
+
### Interfaces
|
|
288
|
+
|
|
289
|
+
- **MCP stdio:** [adapters/mcp/server-stdio.js](adapters/mcp/server-stdio.js)
|
|
290
|
+
- **HTTP API:** [src/api/server.js](src/api/server.js)
|
|
291
|
+
- **OpenAPI surfaces:** [openapi/openapi.yaml](openapi/openapi.yaml), [adapters/chatgpt/openapi.yaml](adapters/chatgpt/openapi.yaml)
|
|
292
|
+
- **CLI:** `npx thumbgate ...`
|
|
293
|
+
|
|
294
|
+
### Storage and retrieval
|
|
295
|
+
|
|
296
|
+
- **Local memory:** JSONL logs in `.claude/memory/feedback` or `.thumbgate/*`
|
|
297
|
+
- **Lesson DB (v0.8.0):** SQLite + FTS5 full-text search via `better-sqlite3` — dual-written alongside JSONL. Indexed by signal, domain, tags, importance. Replaces linear Jaccard token-overlap with sub-millisecond ranked search.
|
|
298
|
+
- **Corrective actions (v0.8.0):** On negative feedback, `capture_feedback` returns `correctiveActions[]` — top 3 remediation steps inferred from similar past failures by tag/domain overlap.
|
|
299
|
+
- **Context assembly:** ContextFS packs and provenance logs
|
|
300
|
+
- **Default retrieval path:** SQLite FTS5 (primary) with JSONL Jaccard fallback
|
|
301
|
+
- **Semantic/vector lane:** LanceDB + Apache Arrow + local embeddings via Hugging Face Transformers
|
|
302
|
+
|
|
303
|
+
### Intelligence layer
|
|
304
|
+
|
|
305
|
+
- **MemAlign-inspired dual recall:** Principle-based memory (distilled rules) + episodic context (raw feedback with timestamps). Recall surfaces both lanes ranked by relevance.
|
|
306
|
+
- **Thompson Sampling:** Bayesian multi-armed bandit over feedback tags — adapts gate sensitivity per failure domain based on observed positive/negative signal ratios.
|
|
307
|
+
- **Corrective action inference:** On negative feedback, the lesson DB infers top-3 remediation steps from similar past failures by tag/domain overlap.
|
|
308
|
+
- **Bayesian belief update:** Each memory carries a posterior belief that updates on new evidence — high-entropy contradictions auto-prune.
|
|
309
|
+
|
|
310
|
+
### Enforcement and automation
|
|
311
|
+
|
|
312
|
+
- **PreToolUse enforcement:** [scripts/gates-engine.js](scripts/gates-engine.js)
|
|
313
|
+
- **Hook wiring:** `init --agent claude-code|codex|gemini`
|
|
314
|
+
- **Browser automation / ops:** `playwright-core`
|
|
315
|
+
- **Social analytics store:** `better-sqlite3`
|
|
316
|
+
|
|
317
|
+
### Billing and hosting
|
|
318
|
+
|
|
319
|
+
- **Billing:** Stripe
|
|
320
|
+
- **Hosted API / landing page:** Railway
|
|
321
|
+
- **Worker lane:** Cloudflare Workers in [`workers/`](workers)
|
|
322
|
+
|
|
323
|
+
## Agent Integration Guides
|
|
324
|
+
|
|
325
|
+
- [Claude Desktop extension](docs/CLAUDE_DESKTOP_EXTENSION.md)
|
|
326
|
+
- [Cursor plugin operations](docs/CURSOR_PLUGIN_OPERATIONS.md)
|
|
327
|
+
- [Continuity tools integration](docs/guides/continuity-tools-integration.md)
|
|
328
|
+
- [OpenCode integration](docs/guides/opencode-integration.md)
|
|
329
|
+
|
|
330
|
+
## Operator Contract
|
|
331
|
+
|
|
332
|
+
For autonomous agent runs against this or any repo using this workflow:
|
|
333
|
+
|
|
334
|
+
- [WORKFLOW.md](WORKFLOW.md) — scope, proof-of-work, hard stops, done criteria
|
|
335
|
+
- [.github/ISSUE_TEMPLATE/ready-for-agent.yml](.github/ISSUE_TEMPLATE/ready-for-agent.yml) — bounded intake template
|
|
336
|
+
- [.github/pull_request_template.md](.github/pull_request_template.md) — proof-first PR handoff
|
|
337
|
+
|
|
338
|
+
## Pro Pack
|
|
339
|
+
|
|
340
|
+
**[$19/mo or $149/yr](https://thumbgate-production.up.railway.app/checkout/pro?utm_source=github&utm_medium=readme&utm_campaign=thumbgate)** — personal local dashboard, DPO export, advanced data exports, and founder-license support for individual operators.
|
|
341
|
+
|
|
342
|
+
**[Start Team Rollout](https://thumbgate-production.up.railway.app/#workflow-sprint-intake?utm_source=github&utm_medium=readme&utm_campaign=team_rollout)** — shared hosted lesson DB, org dashboard, generated hosted review views, curated gate templates, and workflow-hardening rollout support for teams.
|
|
343
|
+
|
|
344
|
+
### Free vs Pro
|
|
345
|
+
|
|
346
|
+
| Feature | Free | Pro ($19/mo or $149/yr) | Team rollout ($12/seat/mo, min 3) |
|
|
347
|
+
| --------------------------------- | ------ | ----------------------- | --------------------------------- |
|
|
348
|
+
| Feedback capture (thumbs up/down) | 5/day | Unlimited | Shared across team workflow |
|
|
349
|
+
| Lesson search | 10/day | Unlimited | Shared hosted lesson DB |
|
|
350
|
+
| Recall | Unlimited | Unlimited | Shared hosted recall |
|
|
351
|
+
| Prevention rules | Yes | Yes | Team-wide rollout |
|
|
352
|
+
| PreToolUse gates | Yes | Yes | Team-wide rollout |
|
|
353
|
+
| Thompson Sampling | Basic | Advanced | Advanced |
|
|
354
|
+
| DPO training export | No | Yes | Yes |
|
|
355
|
+
| Databricks export | No | Yes | Yes |
|
|
356
|
+
| Personal local dashboard | No | Yes | Yes |
|
|
357
|
+
| Org dashboard + active agents | No | No | Yes |
|
|
358
|
+
| Gate template library | No | No | Yes |
|
|
359
|
+
| Workflow hardening sprint | No | No | Yes |
|
|
360
|
+
| Priority support | No | Yes | Yes |
|
|
361
|
+
|
|
362
|
+
Free keeps the core safety policy, up to 10 auto-promoted gates, unlimited feedback captures, 5 daily lesson searches, and unlimited recall on your machine.
|
|
363
|
+
|
|
364
|
+
**[Get Pro — $19/mo or $149/yr](https://thumbgate-production.up.railway.app/checkout/pro?utm_source=github&utm_medium=readme&utm_campaign=thumbgate_cta)** — recurring self-serve for individual operators.
|
|
365
|
+
|
|
366
|
+
**[Founder one-time offer — $49](https://buy.stripe.com/aFa4gz1M84r419v7mb3sI05)** — preserved legacy founder checkout path.
|
|
367
|
+
|
|
368
|
+
- [Commercial Truth](docs/COMMERCIAL_TRUTH.md)
|
|
369
|
+
- [Verification Evidence](docs/VERIFICATION_EVIDENCE.md)
|
|
370
|
+
- [Pitch](docs/PITCH.md)
|
|
371
|
+
- [Anthropic Marketplace Strategy](docs/ANTHROPIC_MARKETPLACE_STRATEGY.md)
|
|
372
|
+
|
|
373
|
+
## License
|
|
374
|
+
|
|
375
|
+
MIT. See [LICENSE](LICENSE).
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# Adapter Bundles
|
|
2
|
+
|
|
3
|
+
- `chatgpt/openapi.yaml`: import into GPT Actions.
|
|
4
|
+
- `gemini/function-declarations.json`: Gemini function-calling definitions.
|
|
5
|
+
- `mcp/server-stdio.js`: underlying local MCP stdio server implementation.
|
|
6
|
+
- `claude/.mcp.json`: example Claude Code MCP config using `npx -y thumbgate@0.9.9 serve`.
|
|
7
|
+
- `codex/config.toml`: example Codex MCP profile section using the same version-pinned portable launcher.
|
|
8
|
+
- `amp/skills/rlhf-feedback/SKILL.md`: Amp skill template.
|
|
9
|
+
- `opencode/opencode.json`: portable OpenCode MCP profile using the same version-pinned portable launcher.
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: rlhf-feedback
|
|
3
|
+
description: Capture thumbs feedback and apply prevention rules before coding
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Amp ThumbGate Skill
|
|
7
|
+
|
|
8
|
+
On explicit user feedback:
|
|
9
|
+
|
|
10
|
+
```bash
|
|
11
|
+
node .claude/scripts/feedback/capture-feedback.js --feedback=up --context="..." --tags="..."
|
|
12
|
+
node .claude/scripts/feedback/capture-feedback.js --feedback=down --context="..." --tags="..."
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
Do not claim promotion from a bare `thumbs up/down`. Ask for one sentence describing what worked or failed first.
|
|
16
|
+
|
|
17
|
+
Before major implementation:
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
npm run feedback:summary
|
|
21
|
+
npm run feedback:rules
|
|
22
|
+
```
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# ChatGPT GPT Actions: ThumbGate Install
|
|
2
|
+
|
|
3
|
+
Import the OpenAPI spec into a Custom GPT in under 5 minutes. No coding required.
|
|
4
|
+
|
|
5
|
+
## Prerequisites
|
|
6
|
+
|
|
7
|
+
- A ChatGPT Plus or Team account (Custom GPTs require a paid plan)
|
|
8
|
+
- ThumbGate API running at a public HTTPS URL (see [Deployment docs](../../docs/deployment.md))
|
|
9
|
+
|
|
10
|
+
## Step 1 — Open GPT Builder
|
|
11
|
+
|
|
12
|
+
1. Go to [https://chat.openai.com/gpts/editor](https://chat.openai.com/gpts/editor)
|
|
13
|
+
2. Click **Create a GPT**
|
|
14
|
+
3. Switch to the **Configure** tab
|
|
15
|
+
|
|
16
|
+
## Step 2 — Add Actions
|
|
17
|
+
|
|
18
|
+
1. Scroll to the **Actions** section
|
|
19
|
+
2. Click **Create new action**
|
|
20
|
+
3. Click **Import from URL** — paste your hosted spec URL:
|
|
21
|
+
```
|
|
22
|
+
https://<your-railway-domain>/openapi.yaml
|
|
23
|
+
```
|
|
24
|
+
Or click **Upload file** and select:
|
|
25
|
+
```
|
|
26
|
+
adapters/chatgpt/openapi.yaml
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Step 3 — Set Authentication
|
|
30
|
+
|
|
31
|
+
In the Actions panel:
|
|
32
|
+
|
|
33
|
+
1. Select **Authentication type: API Key**
|
|
34
|
+
2. **Auth type**: Bearer
|
|
35
|
+
3. **API Key**: paste your `THUMBGATE_API_KEY` value
|
|
36
|
+
|
|
37
|
+
## Step 4 — Update the Server URL
|
|
38
|
+
|
|
39
|
+
In the imported spec, confirm the `servers.url` points to your deployed API:
|
|
40
|
+
|
|
41
|
+
```yaml
|
|
42
|
+
servers:
|
|
43
|
+
- url: https://<your-railway-domain>
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
If you uploaded the file, edit the server URL in the GPT Actions editor.
|
|
47
|
+
|
|
48
|
+
## Step 5 — Verify
|
|
49
|
+
|
|
50
|
+
Click **Test** on the `captureFeedback` action:
|
|
51
|
+
|
|
52
|
+
```json
|
|
53
|
+
{
|
|
54
|
+
"signal": "up",
|
|
55
|
+
"context": "GPT Actions install verified with a successful test call",
|
|
56
|
+
"whatWorked": "The hosted action returned accepted=true and a promoted status"
|
|
57
|
+
}
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Expected response: `200 OK` with `{ "accepted": true, "status": "promoted" }`.
|
|
61
|
+
|
|
62
|
+
If you only send a bare `thumbs up/down` style payload, expect `422` with `status: "clarification_required"` and a follow-up `prompt`.
|
|
63
|
+
|
|
64
|
+
## Available Actions
|
|
65
|
+
|
|
66
|
+
| Action | Method | Path | Description |
|
|
67
|
+
|---|---|---|---|
|
|
68
|
+
| `captureFeedback` | POST | `/v1/feedback/capture` | Capture up/down signal plus one-line why |
|
|
69
|
+
| `getFeedbackStats` | GET | `/v1/feedback/stats` | Aggregated feedback statistics |
|
|
70
|
+
| `getFeedbackSummary` | GET | `/v1/feedback/summary` | Recent feedback summary |
|
|
71
|
+
| `generatePreventionRules` | POST | `/v1/feedback/rules` | Generate prevention rules |
|
|
72
|
+
| `exportDpoPairs` | POST | `/v1/dpo/export` | Export DPO preference pairs |
|
|
73
|
+
| `listIntentCatalog` | GET | `/v1/intents/catalog` | List available intents |
|
|
74
|
+
| `planIntent` | POST | `/v1/intents/plan` | Generate policy-scoped plan |
|
|
75
|
+
| `constructContextPack` | POST | `/v1/context/construct` | Build context pack |
|
|
76
|
+
|
|
77
|
+
Full spec: `adapters/chatgpt/openapi.yaml`
|
|
78
|
+
|
|
79
|
+
## Troubleshooting
|
|
80
|
+
|
|
81
|
+
- **401 Unauthorized**: Verify `THUMBGATE_API_KEY` is set and matches the Bearer token
|
|
82
|
+
- **Connection refused**: Confirm Railway deployment is live (`curl https://<domain>/health`)
|
|
83
|
+
- **Schema errors**: Ensure you are using the latest `openapi.yaml` (version 1.1.0+)
|