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.
- package/.agents/skills/article-syndication-pipeline/SKILL.md +37 -0
- package/.agents/skills/ci-gha-buildkite-patterns-not-clone/SKILL.md +72 -0
- package/.agents/skills/cobble-hot-store-compare-not-clone/SKILL.md +80 -0
- package/.agents/skills/colab-compute-honesty-not-clone/SKILL.md +70 -0
- package/.agents/skills/comet-session-logger/SKILL.md +59 -0
- package/.agents/skills/datadog-llm-obs-compare-not-clone/SKILL.md +75 -0
- package/.agents/skills/deeppattern-discipline-honesty-not-clone/SKILL.md +73 -0
- package/.agents/skills/thumbgate-board-loop/SKILL.md +72 -0
- package/.agents/skills/thumbgate-daily-discoveries/SKILL.md +57 -0
- package/.agents/skills/token-shunt-honesty-not-clone/SKILL.md +67 -0
- package/.agents/skills/typesafe-typed-questions-not-clone/SKILL.md +86 -0
- package/.claude-plugin/plugin.json +1 -1
- package/.well-known/mcp/server-card.json +1 -1
- package/adapters/claude/.mcp.json +2 -2
- package/adapters/forge/forge.yaml +3 -3
- package/adapters/future-agi/.mcp.json +1 -1
- package/adapters/future-agi/config.toml +1 -1
- package/adapters/future-agi/opencode.json +1 -1
- package/adapters/herdr/herdr-plugin.toml +2 -2
- package/adapters/mcp/server-stdio.js +1 -1
- package/adapters/opencode/opencode.json +1 -1
- package/bin/cli.js +257 -0
- package/config/gate-templates.json +96 -0
- package/package.json +55 -12
- package/public/blog/2026-09-23-datadog-llm-obs-four-practices.html +42 -0
- package/public/index.html +2 -2
- package/public/install.html +7 -7
- package/public/numbers.html +2 -2
- package/scripts/ci-gha-buildkite-patterns.js +393 -0
- package/scripts/cli-schema.js +90 -0
- package/scripts/cobble-hot-store-split.js +600 -0
- package/scripts/colab-compute-honesty.js +281 -0
- package/scripts/deeppattern-discipline-honesty.js +431 -0
- package/scripts/gates-engine.js +16 -5
- package/scripts/install-thumbgate-daily-publish-launchd.sh +83 -0
- package/scripts/llm-obs-honesty.js +478 -0
- package/scripts/thumbgate-board-loop.js +432 -0
- package/scripts/thumbgate-daily-discoveries-publish.js +413 -0
- package/scripts/thumbgate-daily-discoveries-publish.sh +18 -0
- package/scripts/token-shunt-honesty.js +502 -0
- package/scripts/typesafe-typed-questions.js +1138 -0
- package/server.json +2 -2
- package/skills/article-syndication-pipeline/SKILL.md +37 -0
- package/skills/comet-session-logger/SKILL.md +59 -0
- package/skills/thumbgate-daily-discoveries/SKILL.md +57 -0
- package/src/index.js +10 -0
- 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
|