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.
Files changed (369) hide show
  1. package/.claude-plugin/README.md +134 -0
  2. package/.claude-plugin/bundle/icon.png +0 -0
  3. package/.claude-plugin/bundle/icon.svg +18 -0
  4. package/.claude-plugin/bundle/server/index.js +24 -0
  5. package/.claude-plugin/marketplace.json +36 -0
  6. package/.claude-plugin/plugin.json +21 -0
  7. package/.well-known/mcp/server-card.json +231 -0
  8. package/LICENSE +21 -0
  9. package/README.md +375 -0
  10. package/adapters/README.md +9 -0
  11. package/adapters/amp/skills/rlhf-feedback/SKILL.md +22 -0
  12. package/adapters/chatgpt/INSTALL.md +83 -0
  13. package/adapters/chatgpt/openapi.yaml +1281 -0
  14. package/adapters/claude/.mcp.json +14 -0
  15. package/adapters/codex/config.toml +9 -0
  16. package/adapters/gemini/function-declarations.json +224 -0
  17. package/adapters/mcp/server-stdio.js +788 -0
  18. package/adapters/opencode/opencode.json +15 -0
  19. package/bin/cli.js +1483 -0
  20. package/bin/memory.sh +64 -0
  21. package/bin/obsidian-sync.sh +20 -0
  22. package/bin/postinstall.js +37 -0
  23. package/config/build-metadata.json +4 -0
  24. package/config/e2e-critical-flows.json +45 -0
  25. package/config/gate-templates.json +77 -0
  26. package/config/gates/claim-verification.json +29 -0
  27. package/config/gates/computer-use.json +39 -0
  28. package/config/gates/default.json +117 -0
  29. package/config/github-about.json +25 -0
  30. package/config/mcp-allowlists.json +135 -0
  31. package/config/model-tiers.json +33 -0
  32. package/config/partner-routing.json +132 -0
  33. package/config/policy-bundles/constrained-v1.json +64 -0
  34. package/config/policy-bundles/default-v1.json +91 -0
  35. package/config/rubrics/default-v1.json +52 -0
  36. package/config/skill-packs/react-testing.json +23 -0
  37. package/config/skill-packs/stripe-integration/references/api-spec.json +1 -0
  38. package/config/skill-packs/stripe-integration/references/webhook-guide.md +3 -0
  39. package/config/skill-specs/pr-reviewer.json +9 -0
  40. package/config/skill-specs/release-status.json +9 -0
  41. package/config/skill-specs/ticket-triage.json +9 -0
  42. package/config/subagent-profiles.json +32 -0
  43. package/config/tessl-tiles.json +29 -0
  44. package/config/thumbgate-settings.managed.json +12 -0
  45. package/openapi/openapi.yaml +1281 -0
  46. package/package.json +286 -0
  47. package/plugins/amp-skill/INSTALL.md +52 -0
  48. package/plugins/amp-skill/SKILL.md +64 -0
  49. package/plugins/claude-codex-bridge/.claude-plugin/plugin.json +22 -0
  50. package/plugins/claude-codex-bridge/.mcp.json +12 -0
  51. package/plugins/claude-codex-bridge/INSTALL.md +43 -0
  52. package/plugins/claude-codex-bridge/README.md +46 -0
  53. package/plugins/claude-codex-bridge/scripts/codex-bridge.js +288 -0
  54. package/plugins/claude-codex-bridge/skills/adversarial-review/SKILL.md +24 -0
  55. package/plugins/claude-codex-bridge/skills/result/SKILL.md +22 -0
  56. package/plugins/claude-codex-bridge/skills/review/SKILL.md +28 -0
  57. package/plugins/claude-codex-bridge/skills/second-pass/SKILL.md +27 -0
  58. package/plugins/claude-codex-bridge/skills/setup/SKILL.md +21 -0
  59. package/plugins/claude-codex-bridge/skills/status/SKILL.md +19 -0
  60. package/plugins/claude-skill/INSTALL.md +55 -0
  61. package/plugins/claude-skill/SKILL.md +46 -0
  62. package/plugins/codex-profile/.codex-plugin/plugin.json +43 -0
  63. package/plugins/codex-profile/.mcp.json +12 -0
  64. package/plugins/codex-profile/AGENTS.md +20 -0
  65. package/plugins/codex-profile/INSTALL.md +66 -0
  66. package/plugins/codex-profile/README.md +37 -0
  67. package/plugins/cursor-marketplace/.cursor-plugin/plugin.json +23 -0
  68. package/plugins/cursor-marketplace/CHANGELOG.md +30 -0
  69. package/plugins/cursor-marketplace/LICENSE +21 -0
  70. package/plugins/cursor-marketplace/README.md +124 -0
  71. package/plugins/cursor-marketplace/agents/reliability-reviewer.md +31 -0
  72. package/plugins/cursor-marketplace/assets/logo-400x400.png +0 -0
  73. package/plugins/cursor-marketplace/commands/capture-feedback.md +33 -0
  74. package/plugins/cursor-marketplace/commands/check-gates.md +25 -0
  75. package/plugins/cursor-marketplace/commands/show-lessons.md +27 -0
  76. package/plugins/cursor-marketplace/hooks/hooks.json +10 -0
  77. package/plugins/cursor-marketplace/mcp.json +12 -0
  78. package/plugins/cursor-marketplace/rules/feedback-capture.mdc +34 -0
  79. package/plugins/cursor-marketplace/rules/pre-action-gates.mdc +30 -0
  80. package/plugins/cursor-marketplace/rules/session-continuity.mdc +28 -0
  81. package/plugins/cursor-marketplace/scripts/gate-check.sh +11 -0
  82. package/plugins/cursor-marketplace/skills/capture-feedback/SKILL.md +47 -0
  83. package/plugins/cursor-marketplace/skills/prevention-rules/SKILL.md +31 -0
  84. package/plugins/cursor-marketplace/skills/recall-context/SKILL.md +30 -0
  85. package/plugins/cursor-marketplace/skills/search-lessons/SKILL.md +33 -0
  86. package/plugins/gemini-extension/INSTALL.md +92 -0
  87. package/plugins/gemini-extension/gemini_prompt.txt +14 -0
  88. package/plugins/gemini-extension/tool_contract.json +45 -0
  89. package/plugins/opencode-profile/INSTALL.md +57 -0
  90. package/public/assets/instagram-card.png +0 -0
  91. package/public/assets/tiktok-agent-memory.mp4 +0 -0
  92. package/public/blog.html +400 -0
  93. package/public/dashboard.html +1093 -0
  94. package/public/guide.html +317 -0
  95. package/public/index.html +1195 -0
  96. package/public/learn/agent-harness-pattern.html +180 -0
  97. package/public/learn/ai-agent-persistent-memory.html +202 -0
  98. package/public/learn/learn.css +45 -0
  99. package/public/learn/mcp-pre-action-gates-explained.html +172 -0
  100. package/public/learn/stop-ai-agent-force-push.html +134 -0
  101. package/public/learn/vibe-coding-safety-net.html +142 -0
  102. package/public/learn.html +213 -0
  103. package/public/lessons.html +650 -0
  104. package/public/vercel.json +8 -0
  105. package/scripts/__pycache__/train_from_feedback.cpython-314.pyc +0 -0
  106. package/scripts/a2ui-engine.js +73 -0
  107. package/scripts/access-anomaly-detector.js +12 -0
  108. package/scripts/adk-consolidator.js +266 -0
  109. package/scripts/agent-readiness.js +220 -0
  110. package/scripts/agent-security-hardening.js +227 -0
  111. package/scripts/agentic-data-pipeline.js +847 -0
  112. package/scripts/analytics-report.js +328 -0
  113. package/scripts/analytics-window.js +158 -0
  114. package/scripts/async-job-runner.js +1001 -0
  115. package/scripts/audit-trail.js +398 -0
  116. package/scripts/auto-promote-gates.js +293 -0
  117. package/scripts/auto-wire-hooks.js +316 -0
  118. package/scripts/autonomous-sales-agent.js +39 -0
  119. package/scripts/autoresearch-runner.js +216 -0
  120. package/scripts/background-agent-governance.js +237 -0
  121. package/scripts/behavioral-extraction.js +93 -0
  122. package/scripts/belief-update.js +84 -0
  123. package/scripts/billing.js +2438 -0
  124. package/scripts/bot-detector.js +50 -0
  125. package/scripts/budget-guard.js +173 -0
  126. package/scripts/build-claude-mcpb.js +189 -0
  127. package/scripts/build-metadata.js +97 -0
  128. package/scripts/check-congruence.js +322 -0
  129. package/scripts/cli-feedback.js +135 -0
  130. package/scripts/cli-telemetry.js +87 -0
  131. package/scripts/cloudflare-dynamic-sandbox.js +315 -0
  132. package/scripts/code-reasoning.js +350 -0
  133. package/scripts/codegraph-context.js +466 -0
  134. package/scripts/commercial-offer.js +56 -0
  135. package/scripts/computer-use-firewall.js +250 -0
  136. package/scripts/context-engine.js +694 -0
  137. package/scripts/contextfs.js +1287 -0
  138. package/scripts/conversation-context.js +119 -0
  139. package/scripts/creator-campaigns.js +239 -0
  140. package/scripts/daemon-manager.js +108 -0
  141. package/scripts/daily-digest.js +11 -0
  142. package/scripts/dashboard-render-spec.js +395 -0
  143. package/scripts/dashboard.js +1058 -0
  144. package/scripts/data-governance.js +173 -0
  145. package/scripts/delegation-runtime.js +900 -0
  146. package/scripts/deploy-gcp.sh +44 -0
  147. package/scripts/deploy-policy.js +231 -0
  148. package/scripts/disagreement-mining.js +315 -0
  149. package/scripts/dispatch-brief.js +159 -0
  150. package/scripts/distribution-surfaces.js +44 -0
  151. package/scripts/dpo-optimizer.js +206 -0
  152. package/scripts/ensure-repo-bootstrap.js +129 -0
  153. package/scripts/ephemeral-agent-store.js +219 -0
  154. package/scripts/eval-harness.js +56 -0
  155. package/scripts/evolution-state.js +241 -0
  156. package/scripts/experiment-tracker.js +267 -0
  157. package/scripts/export-databricks-bundle.js +242 -0
  158. package/scripts/export-dpo-pairs.js +344 -0
  159. package/scripts/export-kto-pairs.js +309 -0
  160. package/scripts/export-training.js +450 -0
  161. package/scripts/failure-diagnostics.js +558 -0
  162. package/scripts/feedback-attribution.js +313 -0
  163. package/scripts/feedback-fallback.js +110 -0
  164. package/scripts/feedback-history-distiller.js +391 -0
  165. package/scripts/feedback-inbox-read.js +162 -0
  166. package/scripts/feedback-loop.js +1887 -0
  167. package/scripts/feedback-paths.js +145 -0
  168. package/scripts/feedback-quality.js +139 -0
  169. package/scripts/feedback-root-consolidator.js +238 -0
  170. package/scripts/feedback-schema.js +426 -0
  171. package/scripts/feedback-session.js +286 -0
  172. package/scripts/feedback-to-memory.js +185 -0
  173. package/scripts/feedback-to-rules.js +164 -0
  174. package/scripts/filesystem-search.js +405 -0
  175. package/scripts/funnel-analytics.js +35 -0
  176. package/scripts/gate-satisfy.js +42 -0
  177. package/scripts/gate-stats.js +116 -0
  178. package/scripts/gate-templates.js +70 -0
  179. package/scripts/gates-engine.js +816 -0
  180. package/scripts/generate-paperbanana-diagrams.sh +99 -0
  181. package/scripts/generate-pretool-hook.sh +40 -0
  182. package/scripts/github-about.js +350 -0
  183. package/scripts/github-outreach.js +65 -0
  184. package/scripts/gtm-revenue-loop.js +520 -0
  185. package/scripts/hallucination-detector.js +226 -0
  186. package/scripts/hf-papers.js +317 -0
  187. package/scripts/history-distiller.js +200 -0
  188. package/scripts/hook-auto-capture.sh +100 -0
  189. package/scripts/hook-stop-pr-thread-check.sh +68 -0
  190. package/scripts/hook-stop-self-score.sh +51 -0
  191. package/scripts/hook-stop-verify-deploy.sh +31 -0
  192. package/scripts/hook-thumbgate-cache-updater.js +48 -0
  193. package/scripts/hook-verify-before-done.sh +20 -0
  194. package/scripts/hosted-config.js +156 -0
  195. package/scripts/hybrid-feedback-context.js +675 -0
  196. package/scripts/install-mcp.js +159 -0
  197. package/scripts/intent-router.js +392 -0
  198. package/scripts/internal-agent-bootstrap.js +490 -0
  199. package/scripts/jsonl-watcher.js +155 -0
  200. package/scripts/lesson-db.js +613 -0
  201. package/scripts/lesson-inference.js +310 -0
  202. package/scripts/lesson-retrieval.js +95 -0
  203. package/scripts/lesson-rotation.js +137 -0
  204. package/scripts/lesson-search.js +644 -0
  205. package/scripts/lesson-synthesis.js +196 -0
  206. package/scripts/license.js +50 -0
  207. package/scripts/local-model-profile.js +384 -0
  208. package/scripts/markdown-escape.js +12 -0
  209. package/scripts/marketing-experiment.js +671 -0
  210. package/scripts/mcp-config.js +149 -0
  211. package/scripts/mcp-policy.js +99 -0
  212. package/scripts/memalign-recall.js +111 -0
  213. package/scripts/memory-firewall.js +222 -0
  214. package/scripts/memory-migration.js +296 -0
  215. package/scripts/meta-policy.js +190 -0
  216. package/scripts/metered-billing.js +16 -0
  217. package/scripts/model-tier-router.js +301 -0
  218. package/scripts/money-watcher.js +71 -0
  219. package/scripts/multi-hop-recall.js +240 -0
  220. package/scripts/natural-language-harness.js +330 -0
  221. package/scripts/obsidian-export.js +713 -0
  222. package/scripts/operational-dashboard.js +103 -0
  223. package/scripts/operational-summary.js +93 -0
  224. package/scripts/optimize-context.js +17 -0
  225. package/scripts/org-dashboard.js +201 -0
  226. package/scripts/partner-orchestration.js +146 -0
  227. package/scripts/per-step-scoring.js +165 -0
  228. package/scripts/perplexity-marketing.js +466 -0
  229. package/scripts/pii-scanner.js +153 -0
  230. package/scripts/plan-gate.js +154 -0
  231. package/scripts/post-everywhere.js +308 -0
  232. package/scripts/post-to-x-retry.sh +22 -0
  233. package/scripts/post-to-x.js +369 -0
  234. package/scripts/pr-manager.js +236 -0
  235. package/scripts/predictive-insights.js +356 -0
  236. package/scripts/principle-extractor.js +162 -0
  237. package/scripts/pro-features.js +40 -0
  238. package/scripts/pro-local-dashboard.js +174 -0
  239. package/scripts/problem-detail.js +53 -0
  240. package/scripts/product-feedback.js +134 -0
  241. package/scripts/profile-router.js +245 -0
  242. package/scripts/prompt-dlp.js +221 -0
  243. package/scripts/prompt-guard.js +83 -0
  244. package/scripts/prove-adapters.js +863 -0
  245. package/scripts/prove-attribution.js +365 -0
  246. package/scripts/prove-automation.js +653 -0
  247. package/scripts/prove-autoresearch.js +304 -0
  248. package/scripts/prove-claim-verification.js +277 -0
  249. package/scripts/prove-cloudflare-sandbox.js +163 -0
  250. package/scripts/prove-data-pipeline.js +410 -0
  251. package/scripts/prove-data-quality.js +227 -0
  252. package/scripts/prove-evolution.js +352 -0
  253. package/scripts/prove-harnesses.js +287 -0
  254. package/scripts/prove-intelligence.js +259 -0
  255. package/scripts/prove-lancedb.js +371 -0
  256. package/scripts/prove-local-intelligence.js +342 -0
  257. package/scripts/prove-loop-closure.js +263 -0
  258. package/scripts/prove-predictive-insights.js +357 -0
  259. package/scripts/prove-runtime.js +350 -0
  260. package/scripts/prove-seo-gsd.js +234 -0
  261. package/scripts/prove-settings.js +279 -0
  262. package/scripts/prove-subway-upgrades.js +277 -0
  263. package/scripts/prove-tessl.js +229 -0
  264. package/scripts/prove-training-export.js +327 -0
  265. package/scripts/prove-workflow-contract.js +116 -0
  266. package/scripts/prove-xmemory.js +332 -0
  267. package/scripts/publish-decision.js +133 -0
  268. package/scripts/pulse.js +80 -0
  269. package/scripts/rate-limiter.js +125 -0
  270. package/scripts/reddit-dm-outreach.js +182 -0
  271. package/scripts/reddit-monitor-cron.sh +26 -0
  272. package/scripts/reflector-agent.js +221 -0
  273. package/scripts/reminder-engine.js +132 -0
  274. package/scripts/revenue-status.js +472 -0
  275. package/scripts/risk-scorer.js +459 -0
  276. package/scripts/rlaif-self-audit.js +129 -0
  277. package/scripts/rlhf_session_start.sh +32 -0
  278. package/scripts/rubric-engine.js +230 -0
  279. package/scripts/schedule-manager.js +251 -0
  280. package/scripts/secret-scanner.js +414 -0
  281. package/scripts/self-heal.js +147 -0
  282. package/scripts/self-healing-check.js +188 -0
  283. package/scripts/semantic-layer.js +98 -0
  284. package/scripts/seo-gsd.js +1153 -0
  285. package/scripts/settings-hierarchy.js +214 -0
  286. package/scripts/shieldcortex-memory-firewall-runner.mjs +53 -0
  287. package/scripts/skill-exporter.js +262 -0
  288. package/scripts/skill-generator.js +446 -0
  289. package/scripts/skill-materializer.js +134 -0
  290. package/scripts/skill-packs.js +136 -0
  291. package/scripts/skill-proposer.js +99 -0
  292. package/scripts/skill-quality-tracker.js +282 -0
  293. package/scripts/slo-alert-engine.js +14 -0
  294. package/scripts/slow-loop.js +72 -0
  295. package/scripts/social-analytics/db/schema.sql +32 -0
  296. package/scripts/social-analytics/db/social-analytics.db +0 -0
  297. package/scripts/social-analytics/digest.js +256 -0
  298. package/scripts/social-analytics/generate-instagram-card.js +97 -0
  299. package/scripts/social-analytics/instagram-thumbgate-post.js +107 -0
  300. package/scripts/social-analytics/load-env.js +46 -0
  301. package/scripts/social-analytics/mcp-server.js +289 -0
  302. package/scripts/social-analytics/normalizer.js +580 -0
  303. package/scripts/social-analytics/notify.js +162 -0
  304. package/scripts/social-analytics/poll-all.js +92 -0
  305. package/scripts/social-analytics/pollers/github.js +195 -0
  306. package/scripts/social-analytics/pollers/instagram.js +253 -0
  307. package/scripts/social-analytics/pollers/linkedin.js +330 -0
  308. package/scripts/social-analytics/pollers/plausible.js +247 -0
  309. package/scripts/social-analytics/pollers/reddit.js +306 -0
  310. package/scripts/social-analytics/pollers/threads.js +233 -0
  311. package/scripts/social-analytics/pollers/tiktok.js +203 -0
  312. package/scripts/social-analytics/pollers/x.js +227 -0
  313. package/scripts/social-analytics/pollers/youtube.js +304 -0
  314. package/scripts/social-analytics/pollers/zernio.js +183 -0
  315. package/scripts/social-analytics/publish-instagram-thumbgate.js +98 -0
  316. package/scripts/social-analytics/publish-thumbgate-launch.js +316 -0
  317. package/scripts/social-analytics/publishers/devto.js +122 -0
  318. package/scripts/social-analytics/publishers/instagram.js +317 -0
  319. package/scripts/social-analytics/publishers/linkedin.js +294 -0
  320. package/scripts/social-analytics/publishers/reddit.js +390 -0
  321. package/scripts/social-analytics/publishers/threads.js +275 -0
  322. package/scripts/social-analytics/publishers/tiktok.js +217 -0
  323. package/scripts/social-analytics/publishers/x.js +259 -0
  324. package/scripts/social-analytics/publishers/youtube.js +223 -0
  325. package/scripts/social-analytics/publishers/zernio.js +378 -0
  326. package/scripts/social-analytics/run-digest.js +34 -0
  327. package/scripts/social-analytics/store.js +257 -0
  328. package/scripts/social-analytics/utm.js +143 -0
  329. package/scripts/social-pipeline.js +2628 -0
  330. package/scripts/social-quality-gate.js +18 -0
  331. package/scripts/social-reply-monitor.js +445 -0
  332. package/scripts/status-dashboard.js +155 -0
  333. package/scripts/statusline-lesson.js +16 -0
  334. package/scripts/statusline-tower.js +8 -0
  335. package/scripts/statusline.sh +116 -0
  336. package/scripts/stripe-live-status.js +115 -0
  337. package/scripts/subagent-profiles.js +79 -0
  338. package/scripts/sync-gh-secrets-from-env.sh +70 -0
  339. package/scripts/sync-github-about.js +52 -0
  340. package/scripts/sync-version.js +447 -0
  341. package/scripts/synthetic-dpo.js +234 -0
  342. package/scripts/telemetry-analytics.js +821 -0
  343. package/scripts/tessl-export.js +371 -0
  344. package/scripts/test-coverage.js +120 -0
  345. package/scripts/thompson-sampling.js +417 -0
  346. package/scripts/thumbgate-search.js +189 -0
  347. package/scripts/tool-kpi-tracker.js +12 -0
  348. package/scripts/tool-registry.js +811 -0
  349. package/scripts/train_from_feedback.py +933 -0
  350. package/scripts/user-profile.js +78 -0
  351. package/scripts/validate-feedback.js +581 -0
  352. package/scripts/validate-workflow-contract.js +287 -0
  353. package/scripts/vector-store.js +197 -0
  354. package/scripts/verification-loop.js +291 -0
  355. package/scripts/verify-obsidian-setup.sh +269 -0
  356. package/scripts/verify-run.js +269 -0
  357. package/scripts/webhook-delivery.js +62 -0
  358. package/scripts/weekly-auto-post.js +124 -0
  359. package/scripts/workflow-runs.js +154 -0
  360. package/scripts/workflow-sprint-intake.js +475 -0
  361. package/scripts/workspace-evolver.js +374 -0
  362. package/scripts/x-autonomous-marketing.js +139 -0
  363. package/scripts/xmemory-lite.js +405 -0
  364. package/skills/agent-memory/SKILL.md +97 -0
  365. package/skills/rlhf-feedback/SKILL.md +49 -0
  366. package/skills/solve-architecture-autonomy/SKILL.md +17 -0
  367. package/skills/solve-architecture-autonomy/tool.js +33 -0
  368. package/skills/thumbgate/SKILL.md +114 -0
  369. package/src/api/server.js +4206 -0
package/bin/memory.sh ADDED
@@ -0,0 +1,64 @@
1
+ #!/bin/bash
2
+ # bin/memory.sh - Layer 3 & 4 & 5 Memory Stack Refresher
3
+
4
+ PRIMER_FILE="primer.md"
5
+
6
+ if [ ! -f "$PRIMER_FILE" ]; then
7
+ echo "Error: $PRIMER_FILE not found."
8
+ exit 1
9
+ fi
10
+
11
+ echo "🤖 [Memory Stack] Refreshing context..."
12
+
13
+ # 1. Behavioral Extraction (Layer 4)
14
+ node scripts/behavioral-extraction.js > /dev/null
15
+ TRAITS_FILE="$(node -e "const path = require('path'); const { resolveFeedbackDir } = require('./scripts/feedback-paths'); process.stdout.write(path.join(resolveFeedbackDir(), 'behavioral-traits.json'));" 2>/dev/null)"
16
+ if [ -z "$TRAITS_FILE" ]; then
17
+ TRAITS_FILE=".thumbgate/behavioral-traits.json"
18
+ fi
19
+
20
+ # 2. Capture git context (Layer 3)
21
+ CURRENT_BRANCH=$(git rev-parse --abbrev-ref HEAD 2>/dev/null || echo "unknown")
22
+ LAST_COMMITS=$(git log -n 5 --oneline 2>/dev/null || echo "No commits found")
23
+ DIRTY_FILES=$(git status --short 2>/dev/null || echo "")
24
+
25
+ # 3. Rebuild Primer
26
+ TEMP_FILE=$(mktemp)
27
+
28
+ # Read primer until "## Behavioral Traits"
29
+ sed -n '1,/## Behavioral Traits/p' "$PRIMER_FILE" > "$TEMP_FILE"
30
+ echo "" >> "$TEMP_FILE"
31
+
32
+ if [ -f "$TRAITS_FILE" ]; then
33
+ # Extract trait descriptions from JSON
34
+ cat "$TRAITS_FILE" | grep "description" | sed 's/.*: "//;s/".*//' | sed 's/^/- /' >> "$TEMP_FILE"
35
+ else
36
+ echo "_No strong behavioral patterns identified yet._" >> "$TEMP_FILE"
37
+ fi
38
+
39
+ echo "" >> "$TEMP_FILE"
40
+ echo "## Live Git Context" >> "$TEMP_FILE"
41
+ echo "" >> "$TEMP_FILE"
42
+ echo "### Branch: $CURRENT_BRANCH" >> "$TEMP_FILE"
43
+ echo "" >> "$TEMP_FILE"
44
+ echo "### Last 5 Commits:" >> "$TEMP_FILE"
45
+ echo '```' >> "$TEMP_FILE"
46
+ echo "$LAST_COMMITS" >> "$TEMP_FILE"
47
+ echo '```' >> "$TEMP_FILE"
48
+ echo "" >> "$TEMP_FILE"
49
+ echo "### Modified Files:" >> "$TEMP_FILE"
50
+ if [ -z "$DIRTY_FILES" ]; then
51
+ echo "_None (Clean working tree)_" >> "$TEMP_FILE"
52
+ else
53
+ echo '```' >> "$TEMP_FILE"
54
+ echo "$DIRTY_FILES" >> "$TEMP_FILE"
55
+ echo '```' >> "$TEMP_FILE"
56
+ fi
57
+
58
+ mv "$TEMP_FILE" "$PRIMER_FILE"
59
+
60
+ # 4. Sync to Obsidian (Layer 5)
61
+ chmod +x bin/obsidian-sync.sh
62
+ ./bin/obsidian-sync.sh
63
+
64
+ echo "✅ Context refresh complete."
@@ -0,0 +1,20 @@
1
+ #!/bin/bash
2
+
3
+ # obsidian-sync.sh
4
+ #
5
+ # Layer 5: Obsidian Knowledge Bridge
6
+ # Exports ThumbGate data as interlinked Obsidian markdown notes to a vault.
7
+
8
+ VAULT_PATH=$THUMBGATE_OBSIDIAN_VAULT_PATH
9
+ PROJECT_NAME=$(basename "$(pwd)")
10
+
11
+ if [ -z "$VAULT_PATH" ]; then
12
+ echo "🤖 [Layer 5] THUMBGATE_OBSIDIAN_VAULT_PATH not set. Skipping sync."
13
+ exit 0
14
+ fi
15
+
16
+ echo "🤖 [Layer 5] Exporting memories to Obsidian vault: $VAULT_PATH/AI-Memories/$PROJECT_NAME"
17
+
18
+ npx thumbgate obsidian-export --vault-path="$VAULT_PATH" --output-dir="AI-Memories/$PROJECT_NAME"
19
+
20
+ echo "✅ Sync complete."
@@ -0,0 +1,37 @@
1
+ #!/usr/bin/env node
2
+ 'use strict';
3
+
4
+ /**
5
+ * Post-install banner — the ONE place every npm user sees ThumbGate.
6
+ * Prints to stderr so it never contaminates piped output.
7
+ * Respects THUMBGATE_NO_NUDGE=1 and CI environments.
8
+ */
9
+
10
+ const isCI = !!(process.env.CI || process.env.CONTINUOUS_INTEGRATION || process.env.GITHUB_ACTIONS);
11
+ const isQuiet = process.env.THUMBGATE_NO_NUDGE === '1' || process.env.npm_config_loglevel === 'silent';
12
+
13
+ if (isCI || isQuiet) process.exit(0);
14
+
15
+ const {
16
+ PRO_MONTHLY_PAYMENT_LINK,
17
+ PRO_PRICE_LABEL,
18
+ } = require('../scripts/commercial-offer');
19
+
20
+ process.stderr.write(`
21
+ ┌─────────────────────────────────────────────────────┐
22
+ │ │
23
+ │ ThumbGate installed successfully. │
24
+ │ │
25
+ │ Quick start: │
26
+ │ npx thumbgate init │
27
+ │ npx thumbgate stats │
28
+ │ │
29
+ │ Unlock Pro (personal local dashboard, DPO export, │
30
+ │ optional hosted API key) — ${PRO_PRICE_LABEL}: │
31
+ │ ${PRO_MONTHLY_PAYMENT_LINK} │
32
+ │ │
33
+ │ Or run: npx thumbgate pro │
34
+ │ │
35
+ └─────────────────────────────────────────────────────┘
36
+
37
+ `);
@@ -0,0 +1,4 @@
1
+ {
2
+ "buildSha": null,
3
+ "generatedAt": null
4
+ }
@@ -0,0 +1,45 @@
1
+ {
2
+ "version": 1,
3
+ "flows": [
4
+ {
5
+ "id": "feedback_pipeline_roundtrip",
6
+ "title": "E2E: feedback capture -> memory -> DPO export -> prevention rules"
7
+ },
8
+ {
9
+ "id": "feedback_api_roundtrip",
10
+ "title": "E2E: API server feedback capture -> stats -> summary round-trip"
11
+ },
12
+ {
13
+ "id": "pro_team_checkout_to_dashboard",
14
+ "title": "E2E: public checkout -> paid local session -> usable dashboard key -> admin billing summary"
15
+ },
16
+ {
17
+ "id": "localhost_pro_dashboard_bootstrap",
18
+ "title": "E2E: localhost dashboard bootstraps Local Pro while forwarded hosts stay unbootstrapped"
19
+ },
20
+ {
21
+ "id": "rotated_billing_key_survives_dashboard",
22
+ "title": "E2E: rotated billing key disables the old key and keeps dashboard access alive"
23
+ },
24
+ {
25
+ "id": "history_aware_feedback_distillation",
26
+ "title": "E2E: vague thumbs-down distills a lesson and preserves linked follow-up context"
27
+ },
28
+ {
29
+ "id": "learn_hub_http_surface",
30
+ "title": "E2E: learn hub and article pages serve live over HTTP"
31
+ },
32
+ {
33
+ "id": "team_workflow_sprint_to_analytics",
34
+ "title": "E2E: workflow sprint intake progresses to paid team and surfaces in dashboard analytics"
35
+ },
36
+ {
37
+ "id": "promoted_lesson_http_crud",
38
+ "title": "E2E: promoted lesson can be viewed, updated, searched, and deleted through the HTTP surface"
39
+ },
40
+ {
41
+ "id": "bayesian_uncertainty_via_mcp",
42
+ "title": "E2E: contradictory feedback drives uncertainty through the MCP tool surface"
43
+ }
44
+ ]
45
+ }
@@ -0,0 +1,77 @@
1
+ {
2
+ "version": 1,
3
+ "templates": [
4
+ {
5
+ "id": "never-force-push-main",
6
+ "name": "Never force-push to main",
7
+ "category": "Git Safety",
8
+ "signal": "👎",
9
+ "defaultAction": "block",
10
+ "severity": "critical",
11
+ "pattern": "git\\s+push\\s+(--force|-f)",
12
+ "problem": "Stops destructive history rewrites on protected branches before they land.",
13
+ "roi": "Protects every shared repo from the fastest irreversible mistake.",
14
+ "rollout": "Enable on every team repo on day one."
15
+ },
16
+ {
17
+ "id": "never-skip-tests-before-commit",
18
+ "name": "Never skip tests before commit",
19
+ "category": "Verification",
20
+ "signal": "👎",
21
+ "defaultAction": "block",
22
+ "severity": "high",
23
+ "pattern": "git\\s+commit",
24
+ "problem": "Requires proof before code leaves the laptop, reducing broken commits and noisy CI.",
25
+ "roi": "Cuts review churn and CI rollback time across the team.",
26
+ "rollout": "Pair with repository-specific test commands."
27
+ },
28
+ {
29
+ "id": "evidence-before-done",
30
+ "name": "Require evidence before saying done",
31
+ "category": "Agent Honesty",
32
+ "signal": "👎",
33
+ "defaultAction": "block",
34
+ "severity": "high",
35
+ "pattern": "completion_claim_without_verification",
36
+ "problem": "Prevents agents from claiming success without test, deploy, or runtime evidence.",
37
+ "roi": "Raises trust in autonomous runs and reduces manual re-checking.",
38
+ "rollout": "Use for every workflow where proof matters more than speed."
39
+ },
40
+ {
41
+ "id": "protect-production-sql",
42
+ "name": "Protect production SQL",
43
+ "category": "Database Safety",
44
+ "signal": "👎",
45
+ "defaultAction": "block",
46
+ "severity": "critical",
47
+ "pattern": "(drop|truncate|delete)\\s+.*production",
48
+ "problem": "Blocks destructive SQL operations against production-like targets.",
49
+ "roi": "One saved incident pays for the whole rollout.",
50
+ "rollout": "Turn on for any team touching live data."
51
+ },
52
+ {
53
+ "id": "back-up-env-before-edit",
54
+ "name": "Back up .env before editing",
55
+ "category": "Secrets Hygiene",
56
+ "signal": "👎",
57
+ "defaultAction": "warn",
58
+ "severity": "medium",
59
+ "pattern": "\\.env",
60
+ "problem": "Flags risky config edits before tokens or local credentials are lost.",
61
+ "roi": "Reduces secret churn and local breakage during setup work.",
62
+ "rollout": "Good default for every machine and shared repo."
63
+ },
64
+ {
65
+ "id": "promote-known-good-workflows",
66
+ "name": "Promote known-good workflows",
67
+ "category": "Positive Reinforcement",
68
+ "signal": "👍",
69
+ "defaultAction": "allow",
70
+ "severity": "medium",
71
+ "pattern": "verified_workflow_pattern",
72
+ "problem": "Turns repeated thumbs-up patterns into recommended workflow defaults and starter rules.",
73
+ "roi": "Helps new agents and new teammates start from what already works.",
74
+ "rollout": "Use with shared lessons to accelerate onboarding."
75
+ }
76
+ ]
77
+ }
@@ -0,0 +1,29 @@
1
+ {
2
+ "version": 1,
3
+ "claims": [
4
+ {
5
+ "pattern": "match.*figma|figma.*correct|design.*match|colors.*match|styling.*correct",
6
+ "requiredActions": ["figma_verified"],
7
+ "message": "You claimed the design matches Figma without calling mcp__figma__get_design_context. Verify the design first, then call track_action('figma_verified').",
8
+ "createdAt": 1774972800000
9
+ },
10
+ {
11
+ "pattern": "tests? pass|all tests|ci.*green|ci.*pass",
12
+ "requiredActions": ["tests_passed"],
13
+ "message": "You claimed tests pass without evidence. Run the tests first, then call track_action('tests_passed').",
14
+ "createdAt": 1774972800000
15
+ },
16
+ {
17
+ "pattern": "ready to merge|pr.*ready|mark.*ready",
18
+ "requiredActions": ["tests_passed", "pr_threads_checked"],
19
+ "message": "You claimed PR readiness without verifying tests pass and review threads are resolved.",
20
+ "createdAt": 1774972800000
21
+ },
22
+ {
23
+ "pattern": "verified on device|works on device|device.*verified|on.device.*correct",
24
+ "requiredActions": ["on_device_verified"],
25
+ "message": "You claimed on-device verification without evidence. Capture the proof first, then call track_action('on_device_verified').",
26
+ "createdAt": 1774972800000
27
+ }
28
+ ]
29
+ }
@@ -0,0 +1,39 @@
1
+ {
2
+ "version": 1,
3
+ "description": "Computer-use action gates for OpenAI Responses API environment",
4
+ "presets": {
5
+ "safe-readonly": {
6
+ "description": "Read-only browsing and file access. No writes, no shell, no uploads.",
7
+ "allowedActions": ["browser.open", "browser.click", "file.read", "clipboard.read"],
8
+ "deniedActions": ["shell.exec", "file.write", "file.delete", "upload", "message.send"],
9
+ "approvalRequired": ["browser.type", "download", "clipboard.write"]
10
+ },
11
+ "dev-sandbox": {
12
+ "description": "Development sandbox. Code editing allowed, no external communication.",
13
+ "allowedActions": ["browser.open", "browser.click", "browser.type", "file.read", "file.write", "clipboard.read", "clipboard.write", "download"],
14
+ "deniedActions": ["upload", "message.send"],
15
+ "approvalRequired": ["shell.exec", "file.delete"]
16
+ },
17
+ "human-approval-for-write": {
18
+ "description": "All write actions require human approval.",
19
+ "allowedActions": ["browser.open", "browser.click", "file.read", "clipboard.read"],
20
+ "deniedActions": [],
21
+ "approvalRequired": ["browser.type", "shell.exec", "file.write", "file.delete", "clipboard.write", "download", "upload", "message.send"]
22
+ }
23
+ },
24
+ "secretPatterns": [
25
+ "(?i)(api[_-]?key|secret|token|password|credential|auth)\\s*[:=]",
26
+ "(?i)bearer\\s+[a-zA-Z0-9._-]+",
27
+ "ghp_[a-zA-Z0-9]{36}",
28
+ "sk-[a-zA-Z0-9]{48}"
29
+ ],
30
+ "dangerousShellPatterns": [
31
+ "rm\\s+-rf\\s+/",
32
+ "rm\\s+-rf\\s+~",
33
+ ":(){ :|:& };:",
34
+ "dd\\s+if=/dev/zero",
35
+ "mkfs\\.",
36
+ "curl.*\\|.*sh",
37
+ "wget.*\\|.*bash"
38
+ ]
39
+ }
@@ -0,0 +1,117 @@
1
+ {
2
+ "version": 1,
3
+ "gates": [
4
+ {
5
+ "id": "local-only-git-writes",
6
+ "layer": "Identity",
7
+ "pattern": "^(git\\s+(add|commit|push)|gh\\s+pr\\s+)",
8
+ "action": "block",
9
+ "when": { "constraints": { "local_only": true } },
10
+ "message": "User requested local-only work. Git writes and PR operations are blocked.",
11
+ "severity": "critical"
12
+ },
13
+ {
14
+ "id": "gh-pr-create-restricted",
15
+ "layer": "Identity",
16
+ "pattern": "gh\\s+pr\\s+create",
17
+ "action": "block",
18
+ "unless": "pr_create_allowed",
19
+ "message": "PR creation requires explicit 'pr_create_allowed' satisfaction with evidence of user permission.",
20
+ "severity": "high"
21
+ },
22
+ {
23
+ "id": "gh-pr-merge-restricted",
24
+ "layer": "Identity",
25
+ "pattern": "gh\\s+pr\\s+merge",
26
+ "action": "block",
27
+ "unless": "pr_merge_allowed",
28
+ "message": "PR merging requires explicit 'pr_merge_allowed' satisfaction with evidence of user permission.",
29
+ "severity": "high"
30
+ },
31
+ {
32
+ "id": "loop-abuse-prevention",
33
+ "layer": "Decisions",
34
+ "pattern": "loop\\s+\\d+\\s+.*(curl|wget|rm\\s+-rf|git\\s+push|gh\\s+pr)",
35
+ "action": "block",
36
+ "message": "High-risk command detected inside a loop. Scheduled tasks must not perform egress or destructive writes without explicit approval.",
37
+ "severity": "critical"
38
+ },
39
+ {
40
+ "id": "push-without-thread-check",
41
+ "layer": "Decisions",
42
+ "trigger": "Bash:git_push",
43
+ "pattern": "git\\s+push",
44
+ "action": "block",
45
+ "unless": "pr_threads_checked",
46
+ "message": "Check PR review threads (reviewThreads first:50) before pushing. Use satisfy_gate('pr_threads_checked', 'evidence') to bypass.",
47
+ "severity": "critical"
48
+ },
49
+ {
50
+ "id": "package-lock-reset",
51
+ "layer": "Execution",
52
+ "trigger": "Bash:package_lock",
53
+ "pattern": "git\\s+checkout\\s+\\S+\\s+--\\s+package-lock\\.json",
54
+ "action": "block",
55
+ "message": "Never reset package-lock.json from another branch. Run npm install instead.",
56
+ "severity": "critical"
57
+ },
58
+ {
59
+ "id": "force-push",
60
+ "layer": "Execution",
61
+ "trigger": "Bash:git_force_push",
62
+ "pattern": "git\\s+push\\s+(--force|-f)",
63
+ "action": "block",
64
+ "message": "Force push blocked. This is destructive and irreversible.",
65
+ "severity": "critical"
66
+ },
67
+ {
68
+ "id": "protected-branch-push",
69
+ "layer": "Execution",
70
+ "trigger": "Bash:protected_push",
71
+ "pattern": "git\\s+push\\s+(?:\\S+\\s+)?(?:develop|main|master)\\b",
72
+ "action": "block",
73
+ "message": "Direct push to protected branch. Use feature branches and PRs.",
74
+ "severity": "critical"
75
+ },
76
+ {
77
+ "id": "env-file-edit",
78
+ "layer": "Cloud",
79
+ "trigger": "Edit:env_file",
80
+ "pattern": "\\.env",
81
+ "action": "warn",
82
+ "message": "Editing .env file — verify you are not deleting existing tokens",
83
+ "severity": "medium"
84
+ },
85
+ {
86
+ "id": "deny-network-egress",
87
+ "layer": "Cloud",
88
+ "pattern": "curl\\s|wget\\s|fetch\\(|https?://(?!github\\.com|registry\\.npmjs\\.org|api\\.anthropic\\.com)",
89
+ "action": "warn",
90
+ "unless": "egress_approved",
91
+ "message": "Potential unauthorized network egress detected.",
92
+ "severity": "medium"
93
+ },
94
+ {
95
+ "id": "unverified-skill-use",
96
+ "layer": "Supply Chain",
97
+ "trigger": "Skill:load",
98
+ "pattern": ".*",
99
+ "when": { "constraints": { "THUMBGATE_DELEGATION_MODE": true } },
100
+ "action": "warn",
101
+ "unless": "skill_verified",
102
+ "message": "Skill provenance check failed. Run 'npm run skill:verify' or satisfy 'skill_verified' with a valid signature to proceed.",
103
+ "severity": "high"
104
+ },
105
+ {
106
+ "id": "blocked-npx-content",
107
+ "layer": "Supply Chain",
108
+ "trigger": "Bash:exec",
109
+ "pattern": ".*",
110
+ "executable_hash": "237adf8f3747cad8b9b62fcfd0d9c8d509a64e550337707f55100afcb79e8900",
111
+ "when": { "constraints": { "THUMBGATE_DELEGATION_MODE": true } },
112
+ "action": "block",
113
+ "message": "Blocked npx execution by content hash. Renaming the binary does not bypass this gate.",
114
+ "severity": "critical"
115
+ }
116
+ ]
117
+ }
@@ -0,0 +1,25 @@
1
+ {
2
+ "repo": "IgorGanapolsky/ThumbGate",
3
+ "repositoryUrl": "https://github.com/IgorGanapolsky/ThumbGate",
4
+ "homepageUrl": "https://thumbgate-production.up.railway.app",
5
+ "description": "Pre-action gates for AI coding agents. Skill disclosure cuts tokens. Hallucination and PII checks harden outputs. 👍 Thumbs up reinforces good behavior. 👎 Thumbs down blocks repeated mistakes. Free is local. History-aware lessons distill vague feedback. Team adds shared lessons and org visibility, plus generated review views.",
6
+ "topics": [
7
+ "thumbgate",
8
+ "pre-action-gates",
9
+ "mcp",
10
+ "mcp-server",
11
+ "ai-agents",
12
+ "agent-reliability",
13
+ "guardrails",
14
+ "ai-safety",
15
+ "developer-tools",
16
+ "feedback-loop",
17
+ "claude-code",
18
+ "cursor",
19
+ "codex",
20
+ "gemini",
21
+ "amp",
22
+ "opencode",
23
+ "thompson-sampling"
24
+ ]
25
+ }
@@ -0,0 +1,135 @@
1
+ {
2
+ "version": 3,
3
+ "profiles": {
4
+ "default": [
5
+ "recall",
6
+ "capture_feedback",
7
+ "open_feedback_session",
8
+ "append_feedback_context",
9
+ "finalize_feedback_session",
10
+ "feedback_summary",
11
+ "search_lessons",
12
+ "retrieve_lessons",
13
+ "search_rlhf",
14
+ "reflect_on_feedback",
15
+ "feedback_stats",
16
+ "diagnose_failure",
17
+ "list_intents",
18
+ "plan_intent",
19
+ "start_handoff",
20
+ "complete_handoff",
21
+ "bootstrap_internal_agent",
22
+ "prevention_rules",
23
+ "export_dpo_pairs",
24
+ "export_databricks_bundle",
25
+ "construct_context_pack",
26
+ "evaluate_context_pack",
27
+ "context_provenance",
28
+ "commerce_recall",
29
+ "generate_skill",
30
+ "satisfy_gate",
31
+ "track_action",
32
+ "verify_claim",
33
+ "register_claim_gate",
34
+ "gate_stats",
35
+ "dashboard",
36
+ "settings_status",
37
+ "list_harnesses",
38
+ "run_harness",
39
+ "estimate_uncertainty",
40
+ "get_business_metrics",
41
+ "describe_semantic_entity",
42
+ "capture_memory_feedback",
43
+ "get_reliability_rules",
44
+ "describe_reliability_entity",
45
+ "report_product_issue"
46
+ ],
47
+ "essential": [
48
+ "capture_feedback",
49
+ "open_feedback_session",
50
+ "append_feedback_context",
51
+ "finalize_feedback_session",
52
+ "recall",
53
+ "search_lessons",
54
+ "retrieve_lessons",
55
+ "search_rlhf",
56
+ "reflect_on_feedback",
57
+ "prevention_rules",
58
+ "track_action",
59
+ "verify_claim",
60
+ "feedback_stats",
61
+ "feedback_summary",
62
+ "estimate_uncertainty",
63
+ "report_product_issue"
64
+ ],
65
+ "commerce": [
66
+ "capture_feedback",
67
+ "recall",
68
+ "retrieve_lessons",
69
+ "search_rlhf",
70
+ "commerce_recall",
71
+ "track_action",
72
+ "verify_claim",
73
+ "prevention_rules",
74
+ "feedback_stats",
75
+ "feedback_summary"
76
+ ],
77
+ "readonly": [
78
+ "recall",
79
+ "feedback_summary",
80
+ "search_lessons",
81
+ "retrieve_lessons",
82
+ "search_rlhf",
83
+ "feedback_stats",
84
+ "diagnose_failure",
85
+ "list_harnesses",
86
+ "list_intents",
87
+ "plan_intent",
88
+ "start_handoff",
89
+ "complete_handoff",
90
+ "context_provenance",
91
+ "verify_claim",
92
+ "gate_stats",
93
+ "dashboard",
94
+ "settings_status",
95
+ "get_business_metrics",
96
+ "describe_semantic_entity",
97
+ "get_reliability_rules",
98
+ "describe_reliability_entity"
99
+ ],
100
+ "dispatch": [
101
+ "recall",
102
+ "feedback_summary",
103
+ "search_lessons",
104
+ "retrieve_lessons",
105
+ "search_rlhf",
106
+ "feedback_stats",
107
+ "diagnose_failure",
108
+ "list_harnesses",
109
+ "list_intents",
110
+ "plan_intent",
111
+ "run_harness",
112
+ "context_provenance",
113
+ "verify_claim",
114
+ "gate_stats",
115
+ "dashboard",
116
+ "settings_status",
117
+ "get_business_metrics",
118
+ "describe_semantic_entity",
119
+ "get_reliability_rules",
120
+ "describe_reliability_entity"
121
+ ],
122
+ "locked": [
123
+ "feedback_summary",
124
+ "search_lessons",
125
+ "retrieve_lessons",
126
+ "search_rlhf",
127
+ "diagnose_failure",
128
+ "list_intents",
129
+ "plan_intent",
130
+ "list_harnesses",
131
+ "verify_claim",
132
+ "settings_status"
133
+ ]
134
+ }
135
+ }
@@ -0,0 +1,33 @@
1
+ {
2
+ "version": 1,
3
+ "tiers": {
4
+ "nano": {
5
+ "label": "GPT-5.4 nano",
6
+ "taskTypes": ["classification", "extraction", "ranking", "labeling", "summarization"],
7
+ "maxContextTokens": 32000,
8
+ "costMultiplier": 0.1
9
+ },
10
+ "mini": {
11
+ "label": "GPT-5.4 mini",
12
+ "taskTypes": ["code-edit", "test-generation", "review", "tool-use", "debugging"],
13
+ "maxContextTokens": 200000,
14
+ "costMultiplier": 0.4
15
+ },
16
+ "frontier": {
17
+ "label": "GPT-5.4",
18
+ "taskTypes": ["architecture", "cross-file", "complex-debugging", "large-context"],
19
+ "maxContextTokens": 1000000,
20
+ "costMultiplier": 1.0,
21
+ "budgetDefaults": {
22
+ "tokenCap": 500000,
23
+ "requireReason": true
24
+ }
25
+ }
26
+ },
27
+ "escalationRules": {
28
+ "contextThreshold": 200000,
29
+ "failureRetryThreshold": 2,
30
+ "highRiskEscalation": true,
31
+ "architectureTags": ["architecture", "cross-file", "multi-module", "system-design"]
32
+ }
33
+ }