thumbgate 0.9.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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/thumbgate-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 +1484 -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 +283 -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 +1014 -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-312.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 +299 -0
- package/scripts/auto-wire-hooks.js +312 -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 +97 -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 +263 -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 +209 -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 +345 -0
- package/scripts/export-kto-pairs.js +310 -0
- package/scripts/export-training.js +448 -0
- package/scripts/failure-diagnostics.js +558 -0
- package/scripts/feedback-attribution.js +313 -0
- package/scripts/feedback-fallback.js +111 -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 +163 -0
- package/scripts/filesystem-search.js +404 -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 +95 -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 +170 -0
- package/scripts/hybrid-feedback-context.js +676 -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 +315 -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 +383 -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 +194 -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 +712 -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 +458 -0
- package/scripts/rlaif-self-audit.js +129 -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 +284 -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/digest.js +256 -0
- package/scripts/social-analytics/generate-instagram-card.js +97 -0
- package/scripts/social-analytics/instagram-thumbgate-post.js +73 -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 +107 -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 +180 -0
- package/scripts/social-analytics/publish-instagram-thumbgate.js +85 -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 +209 -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 +451 -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 +910 -0
- package/scripts/user-profile.js +78 -0
- package/scripts/validate-feedback.js +580 -0
- package/scripts/validate-workflow-contract.js +287 -0
- package/scripts/vector-store.js +198 -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/solve-architecture-autonomy/SKILL.md +17 -0
- package/skills/solve-architecture-autonomy/tool.js +33 -0
- package/skills/thumbgate/SKILL.md +114 -0
- package/skills/thumbgate-feedback/SKILL.md +49 -0
- package/src/api/server.js +4208 -0
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# ThumbGate for Codex
|
|
2
|
+
|
|
3
|
+
This directory is the repo-local Codex app plugin surface for ThumbGate.
|
|
4
|
+
|
|
5
|
+
It packages the same ThumbGate runtime you already use elsewhere:
|
|
6
|
+
|
|
7
|
+
- `plugins/codex-profile/.codex-plugin/plugin.json` for Codex plugin metadata
|
|
8
|
+
- `plugins/codex-profile/.mcp.json` for the MCP server launcher
|
|
9
|
+
- `adapters/codex/config.toml` for the version-pinned manual install path
|
|
10
|
+
|
|
11
|
+
## What it does
|
|
12
|
+
|
|
13
|
+
- adds ThumbGate's Pre-Action Gates to Codex workflows
|
|
14
|
+
- captures thumbs-up/down feedback that survives session boundaries
|
|
15
|
+
- reuses the same local-first MCP runtime as Claude, Cursor, Gemini, Amp, and OpenCode
|
|
16
|
+
|
|
17
|
+
## Install paths
|
|
18
|
+
|
|
19
|
+
### Codex app plugin
|
|
20
|
+
|
|
21
|
+
Use the repo-local Codex plugin metadata and MCP config in this folder when Codex is loading plugin surfaces from the repository.
|
|
22
|
+
|
|
23
|
+
### Manual install
|
|
24
|
+
|
|
25
|
+
Copy the MCP profile from `adapters/codex/config.toml` into `~/.codex/config.toml`.
|
|
26
|
+
|
|
27
|
+
That profile launches:
|
|
28
|
+
|
|
29
|
+
```toml
|
|
30
|
+
[mcp_servers.thumbgate]
|
|
31
|
+
command = "npx"
|
|
32
|
+
args = ["-y", "thumbgate@0.9.10", "serve"]
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Why this exists
|
|
36
|
+
|
|
37
|
+
The Codex support story is no longer just "copy this config block." This folder is the shipped Codex plugin artifact for ThumbGate, so the repo can truthfully claim a Codex app plugin surface alongside the Claude Desktop bundle and Cursor plugin.
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "thumbgate",
|
|
3
|
+
"displayName": "ThumbGate",
|
|
4
|
+
"description": "👍👎 Thumbs down a mistake — your AI agent won't repeat it. Thumbs up good work — it remembers the pattern.",
|
|
5
|
+
"version": "0.9.10",
|
|
6
|
+
"author": {
|
|
7
|
+
"name": "Igor Ganapolsky"
|
|
8
|
+
},
|
|
9
|
+
"homepage": "https://thumbgate-production.up.railway.app",
|
|
10
|
+
"repository": "https://github.com/IgorGanapolsky/ThumbGate",
|
|
11
|
+
"license": "MIT",
|
|
12
|
+
"keywords": [
|
|
13
|
+
"cursor",
|
|
14
|
+
"cursor-plugin",
|
|
15
|
+
"feedback",
|
|
16
|
+
"thumbs-up-down",
|
|
17
|
+
"thumbgate",
|
|
18
|
+
"ai-agent-memory",
|
|
19
|
+
"mistake-prevention",
|
|
20
|
+
"coding-agent"
|
|
21
|
+
],
|
|
22
|
+
"logo": "assets/logo-400x400.png"
|
|
23
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## 0.8.1 - 2026-03-26
|
|
4
|
+
|
|
5
|
+
- Unified ThumbGate branding across all public surfaces (README, AGENTS.md, CLAUDE.md, GEMINI.md, landing page, package.json).
|
|
6
|
+
- Landing page SEO: "human-in-the-loop enforcement", "vibe coding" positioning, FAQPage JSON-LD schema for Google rich results.
|
|
7
|
+
- Added congruence CI check (`scripts/check-congruence.js`) — enforces version, branding, tech stack terms, and honest disclaimer across README and landing page on every PR.
|
|
8
|
+
- Performance: deferred non-critical side-effects in `captureFeedback` (contextFs, RLAIF self-audit) via `setImmediate`.
|
|
9
|
+
- Added `_captureMs` timing field to accepted feedback responses for observability.
|
|
10
|
+
- Added `mcpize.yaml` to version sync targets.
|
|
11
|
+
- Dead code removal: -1,551 lines (contract-audit.js, prove-rlaif.js, stale landing-page.html, 3 duplicate docs).
|
|
12
|
+
- Fixed GitGuardian incident #29200799: scrubbed hardcoded Google API key from git history.
|
|
13
|
+
- Social automation pipeline: post-everywhere CLI, reply monitor with AutoMod-safe Reddit posts.
|
|
14
|
+
- TDS article draft: "Beyond Prompt Rules: How Pre-Action Gates Stop AI Coding Agents From Repeating Mistakes".
|
|
15
|
+
|
|
16
|
+
## 0.8.0 - 2026-03-25
|
|
17
|
+
|
|
18
|
+
- **Lesson DB:** SQLite + FTS5 full-text search replaces linear Jaccard token-overlap. Sub-millisecond ranked search indexed by signal, domain, tags, importance.
|
|
19
|
+
- **Corrective actions:** On negative feedback, `capture_feedback` returns `correctiveActions[]` — top 3 remediation steps inferred from similar past failures.
|
|
20
|
+
- **search_lessons MCP tool:** Exposes corrective actions, lifecycle state, linked rules, linked gates, and next harness fixes per lesson.
|
|
21
|
+
- **search_thumbgate MCP tool:** Searches raw ThumbGate state across feedback logs, ContextFS memory, and prevention rules.
|
|
22
|
+
- **Rejection ledger:** Tracks why vague feedback was rejected with revival conditions.
|
|
23
|
+
- **Bayesian belief updates:** Each memory carries a posterior that updates on new evidence; high-entropy contradictions auto-prune.
|
|
24
|
+
|
|
25
|
+
## 0.7.4 - 2026-03-20
|
|
26
|
+
|
|
27
|
+
- Added `session_handoff` and `session_primer` MCP tools for seamless cross-session context continuity.
|
|
28
|
+
- New `session` namespace in ContextFS stores primer.json with auto-captured git state (branch, last 5 commits, modified files, working tree status), last completed task, next step, and blockers.
|
|
29
|
+
- `session_handoff` records provenance events for full audit trail of session transitions.
|
|
30
|
+
- Closes Layer 2 (primer.md) of the 5-layer memory stack — no manual primer file needed.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Igor Ganapolsky
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
# ThumbGate — for Cursor
|
|
2
|
+
|
|
3
|
+
`ThumbGate` is the human-facing plugin name in Cursor listings.
|
|
4
|
+
`thumbgate` stays the plugin slug, npm package, and launcher target.
|
|
5
|
+
|
|
6
|
+
The canonical short description is:
|
|
7
|
+
|
|
8
|
+
> 👍👎 Thumbs down a mistake — your AI agent won't repeat it. Thumbs up good work — it remembers the pattern.
|
|
9
|
+
|
|
10
|
+
How it works:
|
|
11
|
+
|
|
12
|
+
- 👎 **Thumbs down** a mistake — it gets blocked from happening again
|
|
13
|
+
- 👍 **Thumbs up** good work — the agent remembers the pattern
|
|
14
|
+
- **History-aware lesson distillation** — vague thumbs signals can be grounded in the last ~10 messages and failed tool call
|
|
15
|
+
- **Cross-session memory** — lessons persist between conversations
|
|
16
|
+
- **Automatic enforcement** — repeated failures become prevention rules
|
|
17
|
+
- **Zero config** — install and start giving feedback
|
|
18
|
+
|
|
19
|
+
## What's included
|
|
20
|
+
|
|
21
|
+
### Rules
|
|
22
|
+
|
|
23
|
+
| File | Always on | Description |
|
|
24
|
+
|------|-----------|-------------|
|
|
25
|
+
| `rules/pre-action-gates.mdc` | Yes | Before risky tool calls (git push, rm -rf, npm publish, deploy), check prevention rules via the thumbgate MCP server. Blocks and explains if a rule matches. |
|
|
26
|
+
| `rules/feedback-capture.mdc` | No | After any mistake or unexpected behavior, prompt to capture structured feedback with context and tags. |
|
|
27
|
+
| `rules/session-continuity.mdc` | No | At session start, recall past context; at session end, hand off state for next session. |
|
|
28
|
+
|
|
29
|
+
### Skills
|
|
30
|
+
|
|
31
|
+
| Skill | Description |
|
|
32
|
+
|-------|-------------|
|
|
33
|
+
| `recall-context` | Recall relevant past failures, prevention rules, and context packs before starting a coding task. |
|
|
34
|
+
| `capture-feedback` | Capture structured thumbs up/down feedback with context, tags, and optional rubric scores. |
|
|
35
|
+
| `search-lessons` | Search promoted lessons for corrective actions, lifecycle state, linked rules, and linked gates. |
|
|
36
|
+
| `prevention-rules` | Generate and review prevention rules auto-promoted from repeated failure patterns. |
|
|
37
|
+
|
|
38
|
+
### Agent
|
|
39
|
+
|
|
40
|
+
| Agent | Description |
|
|
41
|
+
|-------|-------------|
|
|
42
|
+
| `reliability-reviewer` | A reliability-focused reviewer that checks code changes against known failure patterns from the project's ThumbGate memory. |
|
|
43
|
+
|
|
44
|
+
### Commands
|
|
45
|
+
|
|
46
|
+
| Command | Description |
|
|
47
|
+
|---------|-------------|
|
|
48
|
+
| `/check-gates` | Run a Pre-Action Gate check against prevention rules before executing a risky action. |
|
|
49
|
+
| `/show-lessons` | Display promoted lessons and their corrective actions. |
|
|
50
|
+
| `/capture-feedback` | Quick feedback capture with structured signals. |
|
|
51
|
+
|
|
52
|
+
### Hooks
|
|
53
|
+
|
|
54
|
+
| Hook | Trigger | Description |
|
|
55
|
+
|------|---------|-------------|
|
|
56
|
+
| `beforeShellExecution` | `git push`, `rm -rf`, `npm publish`, `deploy` | Runs `scripts/gate-check.sh` to perform a pre-action health check via `thumbgate doctor`. |
|
|
57
|
+
|
|
58
|
+
### MCP Server
|
|
59
|
+
|
|
60
|
+
| Server | Command |
|
|
61
|
+
|--------|---------|
|
|
62
|
+
| `thumbgate` | `npx -y thumbgate@latest serve` |
|
|
63
|
+
|
|
64
|
+
## Install
|
|
65
|
+
|
|
66
|
+
### Cursor Marketplace
|
|
67
|
+
|
|
68
|
+
Search for **ThumbGate** in the Cursor marketplace and install.
|
|
69
|
+
|
|
70
|
+
### Team Marketplace
|
|
71
|
+
|
|
72
|
+
Cursor Teams and Enterprise can import this repository through `Dashboard -> Settings -> Plugins -> Team Marketplaces`. If Cursor exposes `Enable Auto Refresh`, turn it on so repo-backed plugin updates refresh automatically.
|
|
73
|
+
|
|
74
|
+
### Cursor Directory
|
|
75
|
+
|
|
76
|
+
Treat Cursor Directory as a discoverability surface, not the runtime distribution channel. It helps people find the plugin, but npm releases do not rewrite directory copy on their own. The Cursor Directory does not auto-refresh from npm.
|
|
77
|
+
|
|
78
|
+
If a manual submission form asks for `Name`, use `ThumbGate` instead of the slug.
|
|
79
|
+
|
|
80
|
+
### Manual setup
|
|
81
|
+
|
|
82
|
+
Use the existing project bootstrap:
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
npx thumbgate init
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
Or copy the plugin MCP config into `.cursor/mcp.json`:
|
|
89
|
+
|
|
90
|
+
```json
|
|
91
|
+
{
|
|
92
|
+
"mcpServers": {
|
|
93
|
+
"thumbgate": {
|
|
94
|
+
"command": "npx",
|
|
95
|
+
"args": ["-y", "thumbgate@latest", "serve"]
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
## Update behavior
|
|
102
|
+
|
|
103
|
+
- Runtime updates: the plugin asks npm for `thumbgate@latest`, so new npm releases can flow into the Cursor runtime without editing the plugin config.
|
|
104
|
+
- Metadata updates: `npm publish` does not refresh the marketplace description, screenshots, README, or directory listing copy. Republish the plugin bundle when those assets change.
|
|
105
|
+
- Guaranteed rollouts: if you need deterministic behavior for a specific release, pin a version manually in local config instead of relying on `@latest`.
|
|
106
|
+
|
|
107
|
+
## Feedback
|
|
108
|
+
|
|
109
|
+
Use the `/capture-feedback` command or the `capture_feedback` MCP tool to send structured feedback directly to the ThumbGate memory system. Feedback drives prevention rule generation — repeated failure patterns are auto-promoted into enforceable gates.
|
|
110
|
+
|
|
111
|
+
When the user only gives a quick `thumbs_down`, `wrong`, or `correct`, the Cursor plugin should include the last ~10 messages and the failed tool call in `chatHistory` so ThumbGate can propose the lesson automatically. If the explanation comes later, reuse the earlier event with `relatedFeedbackId` instead of creating an isolated duplicate.
|
|
112
|
+
|
|
113
|
+
## What makes this useful in Cursor
|
|
114
|
+
|
|
115
|
+
ThumbGate gives Cursor agents a practical guardrail layer:
|
|
116
|
+
|
|
117
|
+
- **Pre-Action Gates** block known-bad actions before tool use
|
|
118
|
+
- **Prevention rules** auto-generated from repeated failures
|
|
119
|
+
- **Context packs** keep relevant project history in scope
|
|
120
|
+
- **Feedback capture** with structured up/down signals and history-aware lesson proposals
|
|
121
|
+
- **Reliability reviewer** checks changes against known failure patterns
|
|
122
|
+
|
|
123
|
+
Verification evidence for shipped behavior lives in `docs/VERIFICATION_EVIDENCE.md`.
|
|
124
|
+
Release and promotion rules live in `docs/CURSOR_PLUGIN_OPERATIONS.md`.
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: reliability-reviewer
|
|
3
|
+
description: A reliability-focused reviewer agent that checks code changes against known failure patterns from the project's ThumbGate memory. Prioritizes preventing repeated mistakes.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Reliability Reviewer
|
|
7
|
+
|
|
8
|
+
You are a reliability-focused code reviewer. Your job is to check proposed code changes against the project's known failure patterns stored in ThumbGate memory.
|
|
9
|
+
|
|
10
|
+
## Review process
|
|
11
|
+
|
|
12
|
+
1. **Recall context** — Use the `recall` MCP tool to retrieve relevant prevention rules and past failures for the files being changed.
|
|
13
|
+
2. **Search lessons** — Use the `search_lessons` MCP tool to find promoted lessons related to the components being modified.
|
|
14
|
+
3. **Cross-reference changes** — Compare the proposed changes against known failure patterns. Flag any changes that match or resemble past failures.
|
|
15
|
+
4. **Check gates** — Use the `prevention_rules` MCP tool to verify no active prevention rules are violated by the changes.
|
|
16
|
+
5. **Report findings** — Summarize which past failures are relevant, what risks exist, and what corrective actions should be applied.
|
|
17
|
+
|
|
18
|
+
## Review priorities
|
|
19
|
+
|
|
20
|
+
1. **Repeated mistakes** — Changes that match previously captured failure patterns are highest priority.
|
|
21
|
+
2. **Missing gate checks** — Risky operations without corresponding pre-action gate checks.
|
|
22
|
+
3. **Untested paths** — Changes to code paths that previously caused failures without new test coverage.
|
|
23
|
+
4. **Feedback gaps** — Changes in areas with no captured feedback history (unknown risk).
|
|
24
|
+
|
|
25
|
+
## Output format
|
|
26
|
+
|
|
27
|
+
For each finding, include:
|
|
28
|
+
- The matched failure pattern or prevention rule
|
|
29
|
+
- The specific code change that triggered the match
|
|
30
|
+
- The recommended corrective action
|
|
31
|
+
- Severity: critical (matches active prevention rule), warning (matches past failure), or info (no history)
|
|
Binary file
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: capture-feedback
|
|
3
|
+
description: Quick feedback capture with structured signals.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Capture Feedback
|
|
7
|
+
|
|
8
|
+
Quickly capture structured feedback about the current task or action.
|
|
9
|
+
|
|
10
|
+
## Usage
|
|
11
|
+
|
|
12
|
+
Invoke this command to record a feedback signal with context and tags. If the user only gives a quick `thumbs_down`, `wrong`, or `correct`, the command should still call `capture_feedback` and pass recent context through `chatHistory`.
|
|
13
|
+
|
|
14
|
+
## Steps
|
|
15
|
+
|
|
16
|
+
1. Specify signal: `thumbs_up` or `thumbs_down`.
|
|
17
|
+
2. If the user already gave a clear explanation, pass it as `context`.
|
|
18
|
+
3. If the explanation is vague or omitted, gather the last ~10 messages plus the failed tool call into `chatHistory`.
|
|
19
|
+
4. Add tags for categorization.
|
|
20
|
+
5. If this is a later clarification for an existing feedback event, include `relatedFeedbackId`.
|
|
21
|
+
6. Call the `capture_feedback` MCP tool and show the proposed lesson or corrective rule back to the user.
|
|
22
|
+
|
|
23
|
+
## Example
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
/capture-feedback thumbs_down "Tests broke after migration" database,migration
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
/capture-feedback thumbs_down
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
In the second example, the command should rely on history-aware distillation instead of refusing the signal outright.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: check-gates
|
|
3
|
+
description: Run a Pre-Action Gate check against prevention rules before executing a risky action.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Check Gates
|
|
7
|
+
|
|
8
|
+
Run a pre-action gate check to verify if a planned action is safe to execute.
|
|
9
|
+
|
|
10
|
+
## Usage
|
|
11
|
+
|
|
12
|
+
Invoke this command before performing risky operations like deployments, force pushes, or destructive file operations.
|
|
13
|
+
|
|
14
|
+
## Steps
|
|
15
|
+
|
|
16
|
+
1. Describe the action you are about to take.
|
|
17
|
+
2. The command queries the `prevention_rules` MCP tool to check for matching rules.
|
|
18
|
+
3. If a match is found, the blocked action and corrective action are displayed.
|
|
19
|
+
4. If no match is found, the action is cleared to proceed.
|
|
20
|
+
|
|
21
|
+
## Example
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
/check-gates git push --force origin main
|
|
25
|
+
```
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: show-lessons
|
|
3
|
+
description: Display promoted lessons and their corrective actions.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Show Lessons
|
|
7
|
+
|
|
8
|
+
Display promoted lessons from the project's ThumbGate memory along with their corrective actions and linked prevention rules.
|
|
9
|
+
|
|
10
|
+
## Usage
|
|
11
|
+
|
|
12
|
+
Invoke this command to review what the system has learned from past failures.
|
|
13
|
+
|
|
14
|
+
## Steps
|
|
15
|
+
|
|
16
|
+
1. The command calls the `search_lessons` MCP tool to retrieve all active promoted lessons.
|
|
17
|
+
2. Results are displayed with:
|
|
18
|
+
- Lesson description
|
|
19
|
+
- Corrective action
|
|
20
|
+
- Linked prevention rules (if any)
|
|
21
|
+
- Lifecycle state (active, archived, superseded)
|
|
22
|
+
|
|
23
|
+
## Example
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
/show-lessons
|
|
27
|
+
```
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: After any mistake or unexpected behavior, prompt to capture structured feedback with context, history-aware lesson distillation, and tags.
|
|
3
|
+
alwaysApply: false
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Feedback Capture
|
|
7
|
+
|
|
8
|
+
After any mistake, unexpected behavior, or completed task, prompt to capture structured feedback.
|
|
9
|
+
|
|
10
|
+
## When to trigger
|
|
11
|
+
|
|
12
|
+
- A tool call produces an unexpected error
|
|
13
|
+
- A test fails after code changes
|
|
14
|
+
- The user corrects an approach mid-task
|
|
15
|
+
- A task completes successfully (capture positive signal)
|
|
16
|
+
|
|
17
|
+
## How to capture
|
|
18
|
+
|
|
19
|
+
1. Call the `capture_feedback` MCP tool with:
|
|
20
|
+
- `signal`: "thumbs_up" or "thumbs_down"
|
|
21
|
+
- `context`: Brief description of what happened when the explanation is already explicit
|
|
22
|
+
- `tags`: Relevant tags (e.g., "test-failure", "wrong-approach", "deployment-error")
|
|
23
|
+
- `chatHistory`: the last ~10 messages plus the failed tool call when the signal is vague and the lesson should be inferred from recent conversation
|
|
24
|
+
- `relatedFeedbackId`: use for a later clarification that should refine an existing feedback event
|
|
25
|
+
- `rubric_scores`: Optional structured scores if a rubric applies
|
|
26
|
+
|
|
27
|
+
2. Include enough context so the feedback is useful for future prevention rule generation.
|
|
28
|
+
3. If the user only gives a bare thumbs signal or short correction, still capture it and let ThumbGate propose `whatWentWrong` / `whatToChange` from recent history.
|
|
29
|
+
|
|
30
|
+
## Examples
|
|
31
|
+
|
|
32
|
+
- Test failure after refactor: signal=thumbs_down, tags=["test-failure", "refactor"], context="Tests broke after extracting helper function — missed internal dependency"
|
|
33
|
+
- Successful deployment: signal=thumbs_up, tags=["deployment", "success"], context="Clean deploy after running gate checks"
|
|
34
|
+
- Vague correction after failed tool use: signal=thumbs_down, chatHistory=[last 10 messages + failed tool call], tags=["wrong-approach", "tool-failure"]
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Before risky tool calls (git push, rm -rf, npm publish, deploy), check prevention rules via the thumbgate MCP server. If a rule matches, STOP and explain why.
|
|
3
|
+
alwaysApply: true
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Pre-Action Gates
|
|
7
|
+
|
|
8
|
+
Before executing any of these risky actions, query the `prevention_rules` MCP tool to check for matching prevention rules:
|
|
9
|
+
|
|
10
|
+
- `git push` (especially force push)
|
|
11
|
+
- `rm -rf` or recursive file deletion
|
|
12
|
+
- `npm publish`
|
|
13
|
+
- `deploy` commands (any deployment target)
|
|
14
|
+
- Database migration commands
|
|
15
|
+
- Secret or credential changes
|
|
16
|
+
|
|
17
|
+
## Enforcement flow
|
|
18
|
+
|
|
19
|
+
1. Extract the command or action about to be executed.
|
|
20
|
+
2. Call `prevention_rules` with the action description to check for matching rules.
|
|
21
|
+
3. If a rule matches:
|
|
22
|
+
- **STOP** the action immediately.
|
|
23
|
+
- Display the matched rule's description and corrective action.
|
|
24
|
+
- Ask the user to confirm before proceeding.
|
|
25
|
+
4. If no rules match, proceed normally.
|
|
26
|
+
|
|
27
|
+
## After a blocked action
|
|
28
|
+
|
|
29
|
+
- Suggest the corrective action from the matched prevention rule.
|
|
30
|
+
- Offer to capture feedback if the block was incorrect (false positive).
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: At session start, recall past context. At session end, hand off state for next session.
|
|
3
|
+
alwaysApply: false
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Session Continuity
|
|
7
|
+
|
|
8
|
+
Maintain context across coding sessions using the ThumbGate memory system.
|
|
9
|
+
|
|
10
|
+
## Session start
|
|
11
|
+
|
|
12
|
+
1. Call the `recall` MCP tool to retrieve:
|
|
13
|
+
- Recent prevention rules relevant to the current project
|
|
14
|
+
- Past failure patterns and corrective actions
|
|
15
|
+
- Active context packs from previous sessions
|
|
16
|
+
2. Summarize recalled context before starting work.
|
|
17
|
+
|
|
18
|
+
## Session end
|
|
19
|
+
|
|
20
|
+
1. Capture any new feedback from the session using `capture_feedback`.
|
|
21
|
+
2. Note any unfinished work or pending decisions as context for the next session.
|
|
22
|
+
3. If new failure patterns emerged, flag them for potential prevention rule promotion.
|
|
23
|
+
|
|
24
|
+
## Between sessions
|
|
25
|
+
|
|
26
|
+
- Prevention rules persist automatically via the MCP server.
|
|
27
|
+
- Lessons promoted during the session are available in future recalls.
|
|
28
|
+
- Context packs expire based on configured retention policies.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# Pre-action gate check — runs before risky shell commands.
|
|
3
|
+
# Called by hooks/hooks.json beforeShellExecution hook.
|
|
4
|
+
# Performs a quick health check via thumbgate doctor.
|
|
5
|
+
|
|
6
|
+
set -euo pipefail
|
|
7
|
+
|
|
8
|
+
npx -y thumbgate@latest doctor 2>/dev/null || {
|
|
9
|
+
echo "[gate-check] thumbgate doctor returned non-zero — review before proceeding." >&2
|
|
10
|
+
exit 1
|
|
11
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: capture-feedback
|
|
3
|
+
description: Capture structured thumbs up/down feedback with context, history-aware lesson distillation, tags, and optional rubric scores after completing a task.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Capture Feedback
|
|
7
|
+
|
|
8
|
+
Record structured feedback after completing a task or encountering an issue.
|
|
9
|
+
|
|
10
|
+
## When to use
|
|
11
|
+
|
|
12
|
+
- After completing a coding task (positive or negative outcome)
|
|
13
|
+
- When a tool call produces unexpected results
|
|
14
|
+
- After a test failure or deployment issue
|
|
15
|
+
- When the user explicitly wants to record feedback
|
|
16
|
+
|
|
17
|
+
## How it works
|
|
18
|
+
|
|
19
|
+
Use the `capture_feedback` MCP tool with:
|
|
20
|
+
|
|
21
|
+
- **signal** — `"thumbs_up"` or `"thumbs_down"`
|
|
22
|
+
- **context** — Description of what happened and why when the user already said it clearly
|
|
23
|
+
- **tags** — Array of relevant tags for categorization (e.g., `["test-failure", "refactor"]`)
|
|
24
|
+
- **chatHistory** — The last ~10 messages plus the failed tool call when the thumbs signal is vague and the lesson must be distilled from recent context
|
|
25
|
+
- **relatedFeedbackId** — Use when the user adds clarifying detail later and it should refine the existing feedback event
|
|
26
|
+
- **rubric_scores** — Optional object with structured quality scores
|
|
27
|
+
|
|
28
|
+
## Example
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
Capture feedback: thumbs_down for the failed database migration.
|
|
32
|
+
Context: Migration script dropped the wrong index, causing query timeouts.
|
|
33
|
+
Tags: database, migration, production-incident
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Vague signal recovery
|
|
37
|
+
|
|
38
|
+
If the user only says `thumbs_down`, `wrong`, `correct`, or `this failed`, do not stop there. Call `capture_feedback` with:
|
|
39
|
+
|
|
40
|
+
- the signal
|
|
41
|
+
- any minimal context the user already gave
|
|
42
|
+
- `chatHistory` containing the recent conversation window
|
|
43
|
+
- the failed tool call or command when available
|
|
44
|
+
|
|
45
|
+
That lets ThumbGate propose `whatWentWrong`, `whatToChange`, and a candidate rule automatically.
|
|
46
|
+
|
|
47
|
+
Feedback feeds into the prevention rule promotion pipeline. Repeated failures with the same pattern are automatically promoted into enforceable prevention rules.
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: prevention-rules
|
|
3
|
+
description: Generate and review prevention rules auto-promoted from repeated failure patterns.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Prevention Rules
|
|
7
|
+
|
|
8
|
+
Manage prevention rules that are auto-generated from repeated failure patterns.
|
|
9
|
+
|
|
10
|
+
## When to use
|
|
11
|
+
|
|
12
|
+
- Reviewing current active prevention rules for the project
|
|
13
|
+
- Checking if a specific action is blocked by a prevention rule
|
|
14
|
+
- Understanding why an action was blocked
|
|
15
|
+
- Generating new prevention rules from observed patterns
|
|
16
|
+
|
|
17
|
+
## How it works
|
|
18
|
+
|
|
19
|
+
Use the `prevention_rules` MCP tool to:
|
|
20
|
+
|
|
21
|
+
1. **List rules** — View all active prevention rules with their match patterns and corrective actions.
|
|
22
|
+
2. **Check rules** — Test if a specific action matches any prevention rule before execution.
|
|
23
|
+
3. **Review rule history** — See which feedback events led to a rule's promotion.
|
|
24
|
+
|
|
25
|
+
## Example
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
Check prevention rules for "npm publish without running tests" to see if this action is blocked.
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Prevention rules are auto-promoted when the same failure pattern appears multiple times in captured feedback. Each rule includes the original failure context and a corrective action.
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: recall-context
|
|
3
|
+
description: Recall relevant past failures, prevention rules, and context packs before starting a coding task.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Recall Context
|
|
7
|
+
|
|
8
|
+
Retrieve relevant historical context before beginning work on a coding task.
|
|
9
|
+
|
|
10
|
+
## When to use
|
|
11
|
+
|
|
12
|
+
- Starting a new coding task or feature
|
|
13
|
+
- Before making changes to code that has failed before
|
|
14
|
+
- Resuming work from a previous session
|
|
15
|
+
|
|
16
|
+
## How it works
|
|
17
|
+
|
|
18
|
+
Use the `recall` MCP tool to retrieve:
|
|
19
|
+
|
|
20
|
+
1. **Prevention rules** — Rules auto-promoted from repeated failure patterns that apply to the current task.
|
|
21
|
+
2. **Past failures** — Specific failure events with context, tags, and corrective actions.
|
|
22
|
+
3. **Context packs** — Bundled project context from previous sessions.
|
|
23
|
+
|
|
24
|
+
## Example
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
Use the recall MCP tool to check for known issues with the authentication module before refactoring.
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
The tool returns structured context that helps avoid repeating past mistakes and surfaces corrective actions from promoted lessons.
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: search-lessons
|
|
3
|
+
description: Search promoted lessons for corrective actions, lifecycle state, linked rules, and linked gates.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Search Lessons
|
|
7
|
+
|
|
8
|
+
Search the promoted lessons database for corrective actions and guidance.
|
|
9
|
+
|
|
10
|
+
## When to use
|
|
11
|
+
|
|
12
|
+
- Looking for corrective actions for a specific failure pattern
|
|
13
|
+
- Checking if a known lesson applies to the current task
|
|
14
|
+
- Reviewing lifecycle state of lessons (active, archived, superseded)
|
|
15
|
+
- Finding linked prevention rules and gates for a topic
|
|
16
|
+
|
|
17
|
+
## How it works
|
|
18
|
+
|
|
19
|
+
Use the `search_lessons` MCP tool with a query string. The tool searches across:
|
|
20
|
+
|
|
21
|
+
1. **Lesson descriptions** — What happened and why
|
|
22
|
+
2. **Corrective actions** — Specific steps to prevent recurrence
|
|
23
|
+
3. **Linked rules** — Prevention rules generated from the lesson
|
|
24
|
+
4. **Linked gates** — Pre-action gates that enforce the lesson
|
|
25
|
+
5. **Lifecycle state** — Whether the lesson is active, archived, or superseded
|
|
26
|
+
|
|
27
|
+
## Example
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
Search lessons for "force push" to find corrective actions and prevention rules related to force pushing.
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Results include the full lesson context, any linked enforcement rules, and the current lifecycle state.
|