thumbgate 1.37.1 → 1.37.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/.agents/skills/article-syndication-pipeline/SKILL.md +37 -0
  2. package/.agents/skills/ci-gha-buildkite-patterns-not-clone/SKILL.md +72 -0
  3. package/.agents/skills/cobble-hot-store-compare-not-clone/SKILL.md +80 -0
  4. package/.agents/skills/colab-compute-honesty-not-clone/SKILL.md +70 -0
  5. package/.agents/skills/comet-session-logger/SKILL.md +59 -0
  6. package/.agents/skills/datadog-llm-obs-compare-not-clone/SKILL.md +75 -0
  7. package/.agents/skills/deeppattern-discipline-honesty-not-clone/SKILL.md +73 -0
  8. package/.agents/skills/thumbgate-board-loop/SKILL.md +72 -0
  9. package/.agents/skills/thumbgate-daily-discoveries/SKILL.md +57 -0
  10. package/.agents/skills/token-shunt-honesty-not-clone/SKILL.md +67 -0
  11. package/.agents/skills/typesafe-typed-questions-not-clone/SKILL.md +86 -0
  12. package/.claude-plugin/plugin.json +1 -1
  13. package/.well-known/mcp/server-card.json +1 -1
  14. package/adapters/claude/.mcp.json +2 -2
  15. package/adapters/forge/forge.yaml +3 -3
  16. package/adapters/future-agi/.mcp.json +1 -1
  17. package/adapters/future-agi/config.toml +1 -1
  18. package/adapters/future-agi/opencode.json +1 -1
  19. package/adapters/herdr/herdr-plugin.toml +2 -2
  20. package/adapters/mcp/server-stdio.js +1 -1
  21. package/adapters/opencode/opencode.json +1 -1
  22. package/bin/cli.js +257 -0
  23. package/config/gate-templates.json +96 -0
  24. package/package.json +55 -12
  25. package/public/blog/2026-09-23-datadog-llm-obs-four-practices.html +42 -0
  26. package/public/index.html +2 -2
  27. package/public/install.html +7 -7
  28. package/public/numbers.html +2 -2
  29. package/scripts/ci-gha-buildkite-patterns.js +393 -0
  30. package/scripts/cli-schema.js +90 -0
  31. package/scripts/cobble-hot-store-split.js +600 -0
  32. package/scripts/colab-compute-honesty.js +281 -0
  33. package/scripts/deeppattern-discipline-honesty.js +431 -0
  34. package/scripts/gates-engine.js +16 -5
  35. package/scripts/install-thumbgate-daily-publish-launchd.sh +83 -0
  36. package/scripts/llm-obs-honesty.js +478 -0
  37. package/scripts/thumbgate-board-loop.js +432 -0
  38. package/scripts/thumbgate-daily-discoveries-publish.js +413 -0
  39. package/scripts/thumbgate-daily-discoveries-publish.sh +18 -0
  40. package/scripts/token-shunt-honesty.js +502 -0
  41. package/scripts/typesafe-typed-questions.js +1138 -0
  42. package/server.json +2 -2
  43. package/skills/article-syndication-pipeline/SKILL.md +37 -0
  44. package/skills/comet-session-logger/SKILL.md +59 -0
  45. package/skills/thumbgate-daily-discoveries/SKILL.md +57 -0
  46. package/src/index.js +10 -0
  47. package/src/integrations/ideabrowser-connector.js +190 -0
@@ -0,0 +1,37 @@
1
+ ---
2
+ name: article-syndication-pipeline
3
+ description: Technical article syndication pipeline for cross-posting Dev.to articles to CoderLegion and other developer platforms with canonical URL preservation, UTM parameter attribution, and contributor onboarding compliance.
4
+ ---
5
+
6
+ # ✍️ Article Syndication & Contributor Pipeline
7
+
8
+ This skill guides the autonomous syndication of ThumbGate technical discoveries, security postmortems, and engineering deep dives across developer platforms (Dev.to, CoderLegion, Hashnode, Medium).
9
+
10
+ ---
11
+
12
+ ## 🎯 Architecture & Operating Directives
13
+
14
+ 1. **Canonical SEO Integrity:**
15
+ - Always preserve the primary origin as the canonical URL (e.g. `https://dev.to/igorganapolsky/...`).
16
+ - Syndicated copies on CoderLegion or elsewhere must link back to avoid search engine duplicate-content penalties.
17
+ 2. **First-Party Revenue Attribution:**
18
+ - All inbound links to `thumbgate.ai` must include UTM campaign tags (`utm_source=coderlegion`, `utm_medium=community`, `utm_campaign=guest-post`).
19
+ - Conversion links (Pro license checkout) must route through `/go/pro` (`https://thumbgate.ai/go/pro?utm_source=...`) to ensure server-side redirect logging.
20
+ 3. **CoderLegion Contributor Compliance:**
21
+ - URL import endpoint: `https://coderlegion.com/import-post`.
22
+ - Supports 2 imported Dev.to articles with full attribution.
23
+ - Contributor checklist: `https://coderlegion.com/guest-blog-checklists`.
24
+ - All imported posts undergo editorial review before appearing on the main feed.
25
+
26
+ ---
27
+
28
+ ## 🛠️ Step-by-Step Workflow
29
+
30
+ 1. **Verify Original Article:**
31
+ Verify original URL exists, returns HTTP 200, and has correct canonical tags.
32
+ 2. **Fetch via Platform Parser:**
33
+ Submit `import_url` to `https://coderlegion.com/import-post`.
34
+ 3. **Review & Confirm Metadata:**
35
+ Confirm title, tags (`ai`, `security`, `architecture`, `opensource`), and backlink to canonical source.
36
+ 4. **Publish & Track:**
37
+ Submit publication step and record post URL in session log and Comet browser tab.
@@ -0,0 +1,72 @@
1
+ ---
2
+ name: ci-gha-buildkite-patterns-not-clone
3
+ description: >
4
+ Buildkite pipeline architecture is FORMAT, not a ThumbGate CI vendor.
5
+ Steal first-fail step identity, PR fail-fast, needs:/wait honesty, skip
6
+ conditions, and GITHUB_STEP_SUMMARY annotations onto existing GitHub
7
+ Actions. Never add Buildkite Pipelines, agents, Test Engine, or a second
8
+ required check. Slash: /ci-gha-buildkite-patterns-not-clone.
9
+ ---
10
+
11
+ # CI GHA Buildkite patterns — compare, do not clone
12
+
13
+ ## Goal
14
+
15
+ Fail-closed GitHub Actions diagnosis for whom: ThumbGate public CI — so a
16
+ red PR names the **first failed step**, cancels leftover PR runs, and never
17
+ grows a Buildkite bill.
18
+
19
+ ## Constraints
20
+
21
+ | NEVER | ALWAYS |
22
+ | --- | --- |
23
+ | Migrate this public repo to Buildkite | Keep the required GHA contexts on `ubuntu-latest` |
24
+ | Dump `--log-failed` first | `npx thumbgate ci-gha-buildkite-patterns --jobs-json=…` |
25
+ | `gh run rerun` a queued job | Wait for Actions to drain |
26
+ | Test Engine auto-quarantine | First fail is a regression until proven otherwise |
27
+ | `cancel-in-progress: true` on `main` | Cancel PR reruns only |
28
+
29
+ HARD fail closed. REFUSE SKU clones. This is **not a Buildkite clone**.
30
+ Never migrate this public repo to Buildkite.
31
+
32
+ ## Reference
33
+
34
+ - https://buildkite.com/docs/pipelines/best-practices/pipeline-design-and-structure
35
+ - https://buildkite.com/docs/pipelines/configure/annotations
36
+ - `scripts/ci-gha-buildkite-patterns.js`
37
+ - Complements `/ci-first-fail` (same FORMAT, global copy)
38
+
39
+ ## Examples (show, don't tell)
40
+
41
+ Weak: "Buildkite is faster, add it as a required check."
42
+
43
+ Gold:
44
+
45
+ ```bash
46
+ $ npx thumbgate ci-gha-buildkite-patterns --json --map-only
47
+ ok: true
48
+ $ npx thumbgate ci-gha-buildkite-patterns --json --migrate
49
+ ok: false # migrate_vendor
50
+ ```
51
+
52
+ ## Procedures
53
+
54
+ ```bash
55
+ npx thumbgate ci-gha-buildkite-patterns --json --map-only
56
+ npx thumbgate ci-gha-buildkite-patterns --json --workflow=.github/workflows/ci.yml
57
+ npx thumbgate ci-gha-buildkite-patterns --json --jobs-json=jobs.json
58
+ npm run test:ci-gha-buildkite-patterns
59
+ ```
60
+
61
+ 1. Name `first_fail.step` before opening logs.
62
+ 2. Absent required contexts → githubstatus.com, not a code blame.
63
+ 3. E2E shards stay `fail-fast: false` so merge-reports can still annotate (Buildkite `wait` + `continue_on_failure`).
64
+ 4. Do not vendor `buildkite-agent`.
65
+
66
+ ## Rubric
67
+
68
+ - `--map-only` → `ok=true`
69
+ - `--clone-buildkite` / `--migrate` / `--quarantine` / `--rerun-queued` → fail
70
+ - live `ci.yml` concurrency excludes `main`
71
+ - doctor tests PASS
72
+ - evidence: `--json` in the same turn
@@ -0,0 +1,80 @@
1
+ ---
2
+ name: cobble-hot-store-compare-not-clone
3
+ description: >
4
+ CobbleDB (Perplexity 2026-09) is a batch-read hot store, not a ThumbGate
5
+ clone. Steal the three-plane FORMAT (durable state / batched delivery /
6
+ query-time MultiGet + hedge + hot subset) onto existing lesson rails; never
7
+ vendor RocksDB, YTsaurus, Pillar, or Lorry. Slash: /cobble-hot-store-compare-not-clone.
8
+ ---
9
+
10
+ # CobbleDB — compare, do not clone
11
+
12
+ ## Goal
13
+
14
+ Produce fail-closed honesty for whom: ThumbGate agents writing feedback or
15
+ serving lessons — so processing never contends with PreToolUse reads, batch
16
+ lookups hedge slow sources, and only promoted/matchable records occupy the
17
+ hot path.
18
+
19
+ ## Constraints
20
+
21
+ | NEVER | ALWAYS |
22
+ | --- | --- |
23
+ | Clone CobbleDB / Pillar / Lorry / RocksDB / YTsaurus | Map planes onto existing lesson rails |
24
+ | Write processing output onto `hybrid-feedback-context` | Durable log → `feedback-to-memory` → retrieval |
25
+ | Sequential per-key hot reads of a batch | `batchGetPrepared` (partition + hedge) |
26
+ | Dump raw `feedback-log.jsonl` into retrieval | `promoted_matchable` (or `fresh_high_value`) subset |
27
+ | Overwrite embedding/chunk versions | Coexist representations |
28
+ | Dual-edit DIRTY lesson-graph PR #3650 | Leave graph layer alone |
29
+ | Quote Perplexity 5× / 20% as ours | Measure ThumbGate rails with `perf-budget-check` |
30
+ | Hero Continuity / net-new storage SKU | ECI: existing retrieval rails only |
31
+
32
+ HARD fail closed. REFUSE SKU clones.
33
+
34
+ ## Reference
35
+
36
+ - https://www.perplexity.ai/hub/blog/cobbledb
37
+ - `scripts/cobble-hot-store-split.js`
38
+ - `scripts/lesson-retrieval.js` · `scripts/feedback-to-memory.js` · `scripts/memory-vs-rag-route.js`
39
+ - `docs/agents/cobble-hot-store-split.md`
40
+ - `/high-roi-steal-and-finish` · `/eci-thumbgate-ip-wall`
41
+
42
+ ## Examples (show, don't tell)
43
+
44
+ Weak: Summarize CobbleDB and add a RocksDB cluster class.
45
+
46
+ Gold:
47
+
48
+ ```bash
49
+ $ npx thumbgate cobble-hot-store-split --json
50
+ ok: true
51
+ status: ready
52
+ $ node --test tests/cobble-hot-store-split.test.js
53
+ # processing → hot write → coupled_processing_hot_write deny
54
+ ```
55
+
56
+ ## Procedures
57
+
58
+ ```bash
59
+ npx thumbgate cobble-hot-store-split --json
60
+ npx thumbgate cobble-hot-store-split --map-only
61
+ npx thumbgate cobble-hot-store-split --trace=tests/fixtures/cobble-hot-store-split-coupled.json --json
62
+ npx thumbgate cobble-hot-store-split --keys=lesson-1,lesson-2 --json
63
+ npm run test:cobble-hot-store-split
64
+ ```
65
+
66
+ 1. Classify every write as `durable`, `delivery`, or `hot`.
67
+ 2. Deny processing → hot coupling.
68
+ 3. Require batched MultiGet (+ hedge) for ≥3 serving keys.
69
+ 4. Keep the hot subset to promoted/matchable records.
70
+ 5. Refuse `--clone-cobbledb`.
71
+
72
+ ## Rubric
73
+
74
+ - gold default (this repo) → `ok=true`, `status=ready`
75
+ - `--trace` coupled fixture → `ok=false`, `coupled_processing_hot_write`
76
+ - `--clone-cobbledb` → `ok=false`, `cobble_clone_refused`
77
+ - sequential ≥3-key hot read → `sequential_hot_batch`
78
+ - unbounded hot subset → `unbounded_hot_subset`
79
+ - doctor: `npm run test:cobble-hot-store-split` PASS
80
+ - evidence: command output in the same turn
@@ -0,0 +1,70 @@
1
+ ---
2
+ name: colab-compute-honesty-not-clone
3
+ description: >
4
+ Google Colab /signup is a compute-unit storefront, not a ThumbGate GPU SKU.
5
+ Steal CU-pack honesty (subscribe≠receipt, CU≠dedicated GPU, 24h background
6
+ is Pro+). Never buy Pro/Pro+/PAYG from an agent session. Never clone
7
+ colab-cli. Slash: /colab-compute-honesty-not-clone.
8
+ ---
9
+
10
+ # Colab compute honesty — compare, do not clone
11
+
12
+ ## Goal
13
+
14
+ Fail-closed compute claims for whom: ThumbGate evals and fleet offload talk —
15
+ so "Colab Pro+ A100" cannot pass without a live Current-plan receipt.
16
+ Colab stays a neighbor notebook host, not a product.
17
+
18
+ ## Constraints
19
+
20
+ | NEVER | ALWAYS |
21
+ | --- | --- |
22
+ | Buy Colab Pro / Pro+ / Compute Units | `npx thumbgate colab-compute-honesty --json` |
23
+ | Claim Pro+ because Subscribe is on /signup | `--plan-proof` from a Current-plan receipt |
24
+ | colab-cli / ngrok SSH / zero-cost A100 | GitHub Actions remains the eval runner |
25
+ | Dual-edit unverified `google-colab-pro-runner` theater | Treat that skill as a claim to audit |
26
+
27
+ HARD fail closed. REFUSE SKU clones. Do NOT spend.
28
+
29
+ ## Reference
30
+
31
+ - https://colab.research.google.com/signup (live 2026-09-17, `iganapolsky@gmail.com`)
32
+ - PAYG $9.99/100 CU and $49.99/500 CU (buttons disabled on that account)
33
+ - Pro $9.99/mo and Pro+ $49.99/mo still showed Subscribe
34
+ - `scripts/colab-compute-honesty.js`
35
+
36
+ ## Examples (show, don't tell)
37
+
38
+ Weak: Subscribe to Pro+ and offload gate-eval to A100 via colab-cli.
39
+
40
+ Gold:
41
+
42
+ ```bash
43
+ $ npx thumbgate colab-compute-honesty --json --map-only
44
+ ok: true
45
+ $ npx thumbgate colab-compute-honesty --json --claim='Colab Pro+ A100 eval sweep'
46
+ ok: false # paid_feature_without_plan_proof
47
+ ```
48
+
49
+ ## Procedures
50
+
51
+ ```bash
52
+ npx thumbgate colab-compute-honesty --json --map-only
53
+ npx thumbgate colab-compute-honesty --json --claim='offload to Colab A100'
54
+ npx thumbgate colab-compute-honesty --json --clone-colab
55
+ npm run test:colab-compute-honesty
56
+ ```
57
+
58
+ 1. Open /signup signed in. Subscribe visible ⇒ not a receipt.
59
+ 2. Do not click Buy / Subscribe.
60
+ 3. Run the doctor on any Colab/GPU offload claim.
61
+ 4. Keep ThumbGate tests on GitHub Actions.
62
+
63
+ ## Rubric
64
+
65
+ - `--map-only` → `ok=true`
66
+ - Pro+/A100/24h without `--plan-proof` → fail
67
+ - live snapshot with Subscribe + `--plan-proof=proplus` → `subscribe_button_is_not_receipt`
68
+ - `--buy-pro` / `colab-cli` → fail
69
+ - doctor tests PASS
70
+ - evidence: `--json` in the same turn
@@ -0,0 +1,59 @@
1
+ ---
2
+ name: comet-session-logger
3
+ description: Live session logger and observability dashboard driver for Comet browser. Ensures every PR, deployment status check, CoderLegion/Dev.to publication, and Railway production health metric is actively logged and visualized in Comet tabs.
4
+ ---
5
+
6
+ # ☄️ Comet Session Logger & Visual HUD
7
+
8
+ This skill governs the automated logging, tab orchestration, and visual tracking of all ThumbGate agentic tasks inside the **Comet** browser on macOS.
9
+
10
+ ---
11
+
12
+ ## 🎯 Purpose & Directives
13
+
14
+ 1. **CEO Visual Observability:** The CEO monitors agent progress via open tabs in Comet. Every major milestone must be reflected in Comet tabs without disrupting existing work.
15
+ 2. **Deterministic Tab Management:** Uses macOS AppleScript (`osascript`) to inspect, activate, create, or update Comet tabs.
16
+ 3. **Fail-Safe & Non-Destructive:** Never closes existing tabs; always reuses matching URLs or opens clean dedicated monitoring tabs.
17
+
18
+ ---
19
+
20
+ ## 🧭 Standard Tab Targets
21
+
22
+ | Surface | Target URL | Trigger Milestone |
23
+ |---------|------------|-------------------|
24
+ | **Pull Requests** | `https://github.com/IgorGanapolsky/ThumbGate/pull/<NUM>` | After creating or advancing a PR |
25
+ | **CI / Checks** | `https://github.com/IgorGanapolsky/ThumbGate/actions` | During workflow verification |
26
+ | **Production Health** | `https://thumbgate-production.up.railway.app/health` | After deployment gate verification |
27
+ | **Railway Console** | `https://railway.com/project/thumbgate-production` | When inspecting infrastructure |
28
+ | **CoderLegion** | `https://coderlegion.com/import-post` | When onboarding or syndicating articles |
29
+ | **Dev.to Dashboard** | `https://dev.to/dashboard` | When tracking article reach & analytics |
30
+
31
+ ---
32
+
33
+ ## 🛠️ AppleScript Orchestration Helpers
34
+
35
+ ```bash
36
+ # Check existing Comet tabs
37
+ osascript -e '
38
+ tell application "Comet"
39
+ set outList to ""
40
+ repeat with w in windows
41
+ repeat with t in tabs of w
42
+ set outList to outList & (URL of t) & " | " & (title of t) & linefeed
43
+ end repeat
44
+ end repeat
45
+ return outList
46
+ end tell'
47
+
48
+ # Open or focus a specific URL in Comet
49
+ open_comet_url() {
50
+ local target_url="$1"
51
+ osascript -e "
52
+ tell application \"Comet\"
53
+ activate
54
+ tell front window
55
+ make new tab with properties {URL:\"${target_url}\"}
56
+ end tell
57
+ end tell"
58
+ }
59
+ ```
@@ -0,0 +1,75 @@
1
+ ---
2
+ name: datadog-llm-obs-compare-not-clone
3
+ description: >
4
+ Datadog LLM Observability eBook is FORMAT, not a ThumbGate clone. Steal four
5
+ practices (operational metrics, injection+PII scrub, quality evals, e2e
6
+ parented spans) onto existing receipts/redaction/feedback/audit-trace.
7
+ Never vendor dd-trace, DatadogAgentObservability, or OTLP. Never dual-edit
8
+ PR #3881. Slash: /datadog-llm-obs-compare-not-clone.
9
+ ---
10
+
11
+ # Datadog LLM-obs — compare, do not clone
12
+
13
+ ## Goal
14
+
15
+ Produce fail-closed honesty for whom: ThumbGate agents claiming an LLM/agent
16
+ run is observed — so errors, latency, tokens, injection/PII, quality, and
17
+ parented spans exist on **existing** rails before any "we have observability" claim.
18
+
19
+ ## Constraints
20
+
21
+ | NEVER | ALWAYS |
22
+ | --- | --- |
23
+ | Clone Datadog Agent Observability / SDS / Clusters | Map 4 practices onto existing rails |
24
+ | `npm install dd-trace` / `DD_API_KEY` LLM obs | `scripts/secret-redaction.js` + `agent-audit-trace.js` |
25
+ | Dual-edit PR #3881 Datadog-style engine | Complement; orchestrator overlap is board-loop #3883 |
26
+ | Dual-edit PR #3883 board-loop | Leave PR drain there |
27
+ | OTLP-export prompt traces | Local receipts + redaction |
28
+ | Quote Datadog MTTR as ours | Measure ThumbGate latency-budget / task-outcomes |
29
+ | Hero Continuity / net-new obs SKU | ECI: maintenance of existing surfaces |
30
+
31
+ HARD fail closed. REFUSE SKU clones.
32
+
33
+ ## Reference
34
+
35
+ - https://lp.datadoghq.com/rs/875-UVY-685/images/eBook-LLMObservabilityBestPractices.pdf
36
+ - `scripts/llm-obs-honesty.js`
37
+ - `scripts/latency-budget.js` · `action-receipts.js` · `secret-redaction.js` · `agent-audit-trace.js` · `task-outcomes.js`
38
+ - `/high-roi-steal-and-finish` · `/eci-thumbgate-ip-wall`
39
+
40
+ ## Examples (show, don't tell)
41
+
42
+ Weak: Summarize the eBook and add a DatadogAgentObservability class.
43
+
44
+ Gold:
45
+
46
+ ```bash
47
+ $ npx thumbgate llm-obs-honesty --json
48
+ ok: true
49
+ status: ready
50
+ $ npx thumbgate llm-obs-honesty --clone-datadog --json
51
+ datadog_clone_refused
52
+ ```
53
+
54
+ ## Procedures
55
+
56
+ ```bash
57
+ npx thumbgate llm-obs-honesty --json
58
+ npx thumbgate llm-obs-honesty --map-only
59
+ npx thumbgate llm-obs-honesty --trace=tests/fixtures/llm-obs-honesty-blind.json --json
60
+ npm run test:llm-obs-honesty
61
+ ```
62
+
63
+ 1. Require operational counts + latency + tokens + budget alert.
64
+ 2. Require prompt-injection check + `secret-redaction.js` scrub.
65
+ 3. Require failure-to-answer, topic relevancy, toxicity (+ thumbs).
66
+ 4. Require parented retrieve/llm/tool spans with evidenceIds.
67
+ 5. Refuse `--clone-datadog`.
68
+
69
+ ## Rubric
70
+
71
+ - gold default → `ok=true`
72
+ - empty `{}` or blind fixture → `ok=false`
73
+ - `--clone-datadog` → `datadog_clone_refused`
74
+ - doctor: `npm run test:llm-obs-honesty` PASS
75
+ - evidence: command output in the same turn
@@ -0,0 +1,73 @@
1
+ ---
2
+ name: deeppattern-discipline-honesty-not-clone
3
+ description: >
4
+ DeepPattern Agent Quality Gates + Decision Engine are neighbors, not a
5
+ ThumbGate clone. Steal layer-check (same-layer substitutes only) and
6
+ evidence-closeout (six required items before "done") onto existing rails.
7
+ Never install AQG/DE/dp-install or unpark a cross-vendor audit SKU.
8
+ Slash: /deeppattern-discipline-honesty-not-clone.
9
+ ---
10
+
11
+ # DeepPattern discipline honesty — compare, do not clone
12
+
13
+ ## Goal
14
+
15
+ Fail-closed comparative analysis and completion claims for whom: ThumbGate
16
+ FORMAT steals and Completion Claim Contract — so L4 API gateways / hosted
17
+ multi-model panels cannot be treated as PreToolUse substitutes, and "done"
18
+ cannot pass without six evidence items.
19
+
20
+ ## Constraints
21
+
22
+ | NEVER | ALWAYS |
23
+ | --- | --- |
24
+ | Install AQG, Decision Engine, `dp-install` | `npx thumbgate deeppattern-discipline-honesty --json` |
25
+ | Treat OpenRouter / LiteLLM / token pools as ThumbGate competitors | Tag L1–L8; same job-to-be-done only |
26
+ | Claim done without evidence heading + six items | `--closeout=path.md --strict` |
27
+ | Unpark LLM adjudicator / cross-vendor panel SKU | Deterministic local gates; hosted panel stays external |
28
+
29
+ HARD fail closed. REFUSE SKU clones.
30
+
31
+ ## Reference
32
+
33
+ - https://github.com/deeppatternai/agent-quality-gates (evidence-closeout)
34
+ - https://github.com/deeppatternai/decision-engine (`/layer-check`)
35
+ - ThumbGate Completion Claim Contract in `AGENTS.md` / `CLAUDE.md`
36
+ - `scripts/deeppattern-discipline-honesty.js`
37
+
38
+ ## Examples (show, don't tell)
39
+
40
+ Weak: "LiteLLM commoditizes ThumbGate because both route models."
41
+
42
+ Gold:
43
+
44
+ ```bash
45
+ $ npx thumbgate deeppattern-discipline-honesty --json --map-only
46
+ ok: true
47
+ $ npx thumbgate deeppattern-discipline-honesty --json \
48
+ --claim='LiteLLM replaces ThumbGate PreToolUse'
49
+ ok: false # cross_layer_substitute
50
+ ```
51
+
52
+ ## Procedures
53
+
54
+ ```bash
55
+ npx thumbgate deeppattern-discipline-honesty --json --map-only
56
+ npx thumbgate deeppattern-discipline-honesty --json --claim='DE replaces ThumbGate'
57
+ npx thumbgate deeppattern-discipline-honesty --json --closeout=pr-body.md --strict
58
+ npm run test:deeppattern-discipline-honesty
59
+ ```
60
+
61
+ 1. Tag subject + every cited product L1–L8 before competitive claims.
62
+ 2. Drop cross-layer substitutes; keep dependency language when honest.
63
+ 3. Before saying done/fixed/shipped: Evidence/Closeout heading + six items.
64
+ 4. Do not vendor AQG/DE.
65
+
66
+ ## Rubric
67
+
68
+ - `--map-only` → `ok=true`
69
+ - substitute claim naming L4/L2/L5 vs ThumbGate → `cross_layer_substitute`
70
+ - `--clone-deeppattern` / `dp-install` → fail
71
+ - closeout missing heading or item / placeholder → fail
72
+ - doctor tests PASS
73
+ - evidence: `--json` in the same turn
@@ -0,0 +1,72 @@
1
+ ---
2
+ name: thumbgate-board-loop
3
+ description: >
4
+ Autonomous ThumbGate Issues+PR wall loop. Classifies every open Issue and PR,
5
+ update-branches BEHIND green Dependabot, submits READY via pr:manage/Trunk,
6
+ comments DIRTY and ECI/umbrella issues. Never approve. Never --admin.
7
+ Auto-invoke on holdup screenshots, 18 open PRs, 4 open issues, 4/4 green
8
+ Dependabot wall, "what's the holdup". Slash: /thumbgate-board-loop.
9
+ ---
10
+
11
+ # ThumbGate board loop
12
+
13
+ ## Goal
14
+
15
+ Drain the GitHub Issues + PR wall without a CEO screenshot. The list-view
16
+ **4/4** badge is not mergeable — those Dependabot PRs are usually `SUCCESS` +
17
+ `BEHIND` after a Trunk land.
18
+
19
+ ## Constraints
20
+
21
+ | NEVER | ALWAYS |
22
+ | --- | --- |
23
+ | Approve a PR / `--admin` / `gh pr merge --auto` | `npx thumbgate board-loop --apply --json` |
24
+ | Treat 4/4 as READY | Classify `mss` + required checks (`test`, CodeQL, changeset, Socket, GitGuardian) |
25
+ | Re-`pr:manage` a live `trunk-merge/pr-N` | Skip; that PR is already queued |
26
+ | Close DIRTY <30d | Comment needs-rebase once (marker `<!-- thumbgate-board-loop -->`) |
27
+ | Implement #3690/#3687 LLM adjudicator | ECI pause |
28
+ | Dual-edit DIRTY #3650 graph layer | Leave it DIRTY |
29
+ | GHA `schedule:` | Event-driven `workflow_run` + local LaunchAgent (CodeQL-only schedule policy) |
30
+
31
+ ## Reference
32
+
33
+ - `scripts/thumbgate-board-loop.js`
34
+ - `scripts/pr-manager.js`
35
+ - `.github/workflows/agent-automerge.yml` (must resolve `workflow_run.head_sha` + `dependabot/*`)
36
+ - `/thumbgate-pr-queue-autopilot` · `/thumbgate-issues-board-hygiene` · `/eci-thumbgate-ip-wall`
37
+
38
+ ## Examples (show, don't tell)
39
+
40
+ Weak: Paste the 18-open screenshot and ask which PR to merge.
41
+
42
+ Gold:
43
+
44
+ ```bash
45
+ $ npx thumbgate board-loop --json
46
+ counts.behind=8 counts.dirty=8 trunkQueued=[3874]
47
+ $ npx thumbgate board-loop --apply --max-update-branch=1 --json
48
+ # gh pr update-branch 3873
49
+ ```
50
+
51
+ ## Procedures
52
+
53
+ ```bash
54
+ npx thumbgate board-loop --json
55
+ npx thumbgate board-loop --apply --json
56
+ npm run test:board-loop
57
+ ```
58
+
59
+ 1. Inventory open PRs + Issues.
60
+ 2. Skip trunk-merge drafts.
61
+ 3. One BEHIND green `update-branch` per tick (serial — each land re-BEHINDs siblings).
62
+ 4. One READY `pr-manager` / Trunk submit per tick.
63
+ 5. Comment Issues: ECI pause vs IMPLEMENT residual vs umbrella.
64
+ 6. Never approve.
65
+
66
+ ## Rubric
67
+
68
+ - gold classify: SUCCESS+BEHIND → `update_branch`
69
+ - trunk-merge draft → `skip`
70
+ - `--apply` never emits `APPROVE` / `--admin` / `--auto`
71
+ - doctor: `npm run test:board-loop` PASS
72
+ - evidence: command output in the same turn
@@ -0,0 +1,57 @@
1
+ ---
2
+ name: thumbgate-daily-discoveries
3
+ description: Autonomous daily publishing engine and monitoring skill for ThumbGate news and technical discoveries. Generates high-density engineering posts with full UTM attribution, synchronizes to Obsidian, schedules dual cron/launchd runs at 9:00 AM EST, and tracks publication ledgers.
4
+ ---
5
+
6
+ # 📰 ThumbGate Daily Technical Discoveries & News Engine
7
+
8
+ This skill automates the daily harvesting, synthesis, UTM attribution, and multi-channel publication of ThumbGate engineering discoveries and release news.
9
+
10
+ ---
11
+
12
+ ## 🎯 Architecture & Operating Principles
13
+
14
+ 1. **Daily Cadence (9:00 AM EST):** Runs once per calendar day. Avoids spam while establishing consistent technical authority.
15
+ 2. **Dual Scheduling Redundancy:**
16
+ - Primary: macOS crontab (`0 9 * * * /bin/bash scripts/thumbgate-daily-discoveries-publish.sh ...`)
17
+ - Fallback: macOS LaunchAgent (`~/Library/LaunchAgents/com.thumbgate.daily-publish.plist`)
18
+ - Note: GitHub Actions `schedule:` is strictly limited to `codeql.yml` per repo hygiene tests.
19
+ 3. **Full UTM Attribution & Tracked Redirects:**
20
+ - All outbound links to `thumbgate.ai` must use `buildUTMLink` from `scripts/social-analytics/utm.js`.
21
+ - Outbound pro/checkout links must route through `/go/pro` (`serveTrackedLinkRedirect` in `src/api/server.js`) to capture first-party funnel telemetry.
22
+ 4. **Multi-Surface Staging & Sync:**
23
+ - Staged locally at `docs/marketing/daily-discoveries/YYYY-MM-DD-<slug>.md`.
24
+ - Synchronized to the CEO's Obsidian Vault at `~/Documents/Igor/Research/Daily-Discoveries/`.
25
+ - Logged idempotently to `.thumbgate/daily-discoveries-ledger.jsonl`.
26
+ - Dispatches to Dev.to / Zernio if API keys are configured.
27
+
28
+ ---
29
+
30
+ ## 🛠️ CLI Commands & Usage
31
+
32
+ ```bash
33
+ # Preview today's technical discovery without making mutations or network calls
34
+ node scripts/thumbgate-daily-discoveries-publish.js --dry-run
35
+
36
+ # Output structured JSON report
37
+ node scripts/thumbgate-daily-discoveries-publish.js --json
38
+
39
+ # Force publish/restage today's discovery even if already logged in ledger
40
+ node scripts/thumbgate-daily-discoveries-publish.js --force
41
+
42
+ # Shell wrapper (used by crontab / launchd)
43
+ ./scripts/thumbgate-daily-discoveries-publish.sh
44
+
45
+ # Run test suite
46
+ node --test tests/thumbgate-daily-discoveries-publish.test.js
47
+ ```
48
+
49
+ ---
50
+
51
+ ## 📋 Pre-Flight Verification Checklist
52
+
53
+ - [ ] Verify `node --test tests/thumbgate-daily-discoveries-publish.test.js` passes.
54
+ - [ ] Verify outbound links contain valid UTM parameters (`utm_source=daily_discoveries`, `utm_campaign=daily_technical_discoveries`).
55
+ - [ ] Verify `launchctl list | grep thumbgate` reports exit code 0.
56
+ - [ ] Verify `crontab -l | grep thumbgate` contains the 9:00 AM daily trigger.
57
+ - [ ] Check `.thumbgate/daily-discoveries-ledger.jsonl` for recent execution receipts.
@@ -0,0 +1,67 @@
1
+ ---
2
+ name: token-shunt-honesty-not-clone
3
+ description: >
4
+ Steal Spotify Portal/shunt FORMAT: PreToolUse blocks untargeted Read above
5
+ 350 lines, bare cat of large files, and full-file dumps. Do NOT install
6
+ shunt@portal, buy Portal, or claim 90% savings from GitHub App 162279530.
7
+ Slash: /token-shunt-honesty-not-clone.
8
+ ---
9
+
10
+ # Token shunt FORMAT — intercept, don't clone Portal
11
+
12
+ ## Goal
13
+
14
+ Produce fail-closed bulk-read intercepts for whom: ThumbGate agents — so
15
+ untargeted Read/cat of large files never dump into the frontier context, and
16
+ Spotify Portal stays a compare-not-clone neighbor, not a SKU or cash rail.
17
+
18
+ ## Constraints
19
+
20
+ | NEVER | ALWAYS |
21
+ | --- | --- |
22
+ | Install `shunt@portal` / `@spotify/portal-cli` | `npx thumbgate token-shunt-honesty --json` |
23
+ | Buy Spotify Portal / Contact Sales as "make money" | Local slice (`offset`/`limit`, `cat \| grep`) |
24
+ | Claim 90% token savings from App 162279530 | Measure `--lines` + `--returned-lines` |
25
+ | Delegate architecture to Flash/Portal/AiKA | Frontier for reasoning; `local_slice` for boilerplate |
26
+ | Spam buy links via All-repositories write | ECI: no ThumbGate paid outreach through Portal |
27
+
28
+ ## Reference
29
+
30
+ - https://github.com/spotify/portal-ai-plugins (Apache-2.0 shunt plugin — we do not vendor it)
31
+ - GitHub App install 162279530 = catalog connector, not revenue
32
+ - Marketplace (free cite only): https://github.com/marketplace/actions/thumbgate-agent-governance
33
+
34
+ ```bash
35
+ npx thumbgate token-shunt-honesty --json --lines=800
36
+ npx thumbgate token-shunt-honesty --json --lines=800 --targeted
37
+ npx thumbgate token-shunt-honesty --json --clone-portal
38
+ ```
39
+
40
+ ## Examples (show, don't tell)
41
+
42
+ Weak: "Install Portal, we will save 90% and make money."
43
+
44
+ Gold:
45
+
46
+ ```bash
47
+ $ npx thumbgate token-shunt-honesty --json --lines=800
48
+ {"ok":false,"findings":[{"id":"untargeted_bulk_read"}]}
49
+ $ npx thumbgate token-shunt-honesty --json --lines=800 --targeted
50
+ {"ok":true}
51
+ ```
52
+
53
+ ## Procedures
54
+
55
+ 1. Block untargeted Read above 350 lines.
56
+ 2. Block bare `cat`/`head`/`tail`/`less`/`more` of large files; allow pipes to grep/rg.
57
+ 3. Block returning the whole file to the frontier model.
58
+ 4. Refuse Portal/AiKA/Flash for architecture/debug.
59
+ 5. Treat GitHub App all-repos write as a warn, not a payout.
60
+
61
+ ## Rubric
62
+
63
+ - `--lines=800` → `untargeted_bulk_read`
64
+ - `--targeted` → `ok=true`
65
+ - `--clone-portal` → `portal_clone_refused`
66
+ - doctor: `npm run test:token-shunt-honesty` PASS
67
+ - evidence: command output in the same turn