From 571e56ab41f387ae3bd3b0dbd08d8f9b49c2a7a5 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 7 May 2026 00:17:27 +0000 Subject: [PATCH 1/2] feat(observatory): add alert-subscribe, fleet-monitor routes [RUN-026] Restore all 6 spec-cited endpoints after cross-channel deploy drift. Add alert-subscribe/subscriptions (preserve Strategist EXP-030a) and fleet-monitor batch trust check (EXP-029a ship). Deployed: 0f68c704. --- dominion-observatory/src/index.js | 88 +++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) diff --git a/dominion-observatory/src/index.js b/dominion-observatory/src/index.js index 4c21887..0473a6a 100644 --- a/dominion-observatory/src/index.js +++ b/dominion-observatory/src/index.js @@ -3782,6 +3782,94 @@ Contact: observatory@levylens.co`, { headers: { "Content-Type": "application/json", "Access-Control-Allow-Origin": "*" } }); } + if (url.pathname === "/api/alert/subscribe" && request.method === "POST") { + let body; + try { body = await request.json(); } catch { body = {}; } + const { agent_id, webhook_url, server_urls, drift_threshold = 5 } = body; + if (!agent_id || !webhook_url || !Array.isArray(server_urls) || server_urls.length === 0) { + return new Response(JSON.stringify({ error: "agent_id, webhook_url, and server_urls[] required" }), { + status: 400, headers: { "Content-Type": "application/json", "Access-Control-Allow-Origin": "*" } + }); + } + await db.exec(`CREATE TABLE IF NOT EXISTS alert_subscriptions (id TEXT PRIMARY KEY, agent_id TEXT NOT NULL, webhook_url TEXT NOT NULL, server_urls TEXT NOT NULL, drift_threshold INTEGER DEFAULT 5, created_at TEXT DEFAULT (datetime('now')))`); + const id = `sub-${Date.now()}-${Math.random().toString(36).substr(2, 8)}`; + await db.prepare(`INSERT OR REPLACE INTO alert_subscriptions (id, agent_id, webhook_url, server_urls, drift_threshold, created_at) VALUES (?, ?, ?, ?, ?, datetime('now'))`) + .bind(id, agent_id, webhook_url, JSON.stringify(server_urls), drift_threshold).run(); + return new Response(JSON.stringify({ + status: "subscribed", + subscription_id: id, + agent_id, + servers_watched: server_urls.length, + drift_threshold, + schema: "mcp-behavioral-alert-v1.0", + claim_uri: `${url.origin}/.well-known/mcp-observatory` + }), { + status: 201, headers: { "Content-Type": "application/json", "Access-Control-Allow-Origin": "*" } + }); + } + if (url.pathname === "/api/alert/subscriptions" && request.method === "GET") { + let rows = { results: [] }; + try { + await db.exec(`CREATE TABLE IF NOT EXISTS alert_subscriptions (id TEXT PRIMARY KEY, agent_id TEXT NOT NULL, webhook_url TEXT NOT NULL, server_urls TEXT NOT NULL, drift_threshold INTEGER DEFAULT 5, created_at TEXT DEFAULT (datetime('now')))`); + rows = await db.prepare("SELECT agent_id, server_urls, drift_threshold, created_at FROM alert_subscriptions ORDER BY created_at DESC LIMIT 100").all(); + } catch (_e) { rows = { results: [] }; } + const subs = (rows.results || []).map((r) => ({ + agent_id: r.agent_id, + servers_watched: (() => { try { return JSON.parse(r.server_urls).length; } catch { return 0; } })(), + drift_threshold: r.drift_threshold, + subscribed_at: r.created_at + })); + return new Response(JSON.stringify({ + endpoint: "/api/alert/subscriptions", + description: "Active behavioral drift alert subscriptions. Agents receive a webhook push when watched MCP server trust scores shift by drift_threshold points.", + total_active_subscriptions: subs.length, + subscriptions: subs, + subscribe_at: "POST /api/alert/subscribe", + schema: "mcp-behavioral-alert-v1.0" + }), { + headers: { "Content-Type": "application/json", "Access-Control-Allow-Origin": "*", "Cache-Control": "no-cache" } + }); + } + if (url.pathname === "/api/fleet-monitor" && request.method === "GET") { + const urlsParam = url.searchParams.get("urls") || url.searchParams.get("url") || ""; + const serverUrls = urlsParam.split(",").map((u) => u.trim()).filter(Boolean); + if (serverUrls.length === 0) { + return new Response(JSON.stringify({ + error: "urls parameter required", + usage: "/api/fleet-monitor?urls=https://server1.mcp/mcp,https://server2.mcp/mcp", + max_batch: 20, + schema: "mcp-fleet-monitor-v1.0" + }), { + status: 400, headers: { "Content-Type": "application/json", "Access-Control-Allow-Origin": "*" } + }); + } + const batch = serverUrls.slice(0, 20); + const results = await Promise.all(batch.map(async (su) => { + const srv = await db.prepare("SELECT url, name, trust_score, total_calls, last_checked FROM servers WHERE url = ? OR url LIKE ? LIMIT 1").bind(su, `%${su}%`).first(); + if (!srv) return { url: su, found: false, trust_score: null, status: "untracked" }; + const score = srv.trust_score || 0; + return { + url: srv.url, + name: srv.name, + found: true, + trust_score: Math.round(score * 10) / 10, + grade: score >= 90 ? "A" : score >= 75 ? "B" : score >= 60 ? "C" : score >= 40 ? "D" : "F", + verdict: score >= 75 ? "recommended" : score >= 50 ? "use_with_caution" : "avoid", + last_checked: srv.last_checked, + attestation_url: `${url.origin}/v1/behavioral-evidence?url=${encodeURIComponent(srv.url)}` + }; + })); + return new Response(JSON.stringify({ + schema: "mcp-fleet-monitor-v1.0", + generated_at: new Date().toISOString(), + queried: batch.length, + results, + observatory: url.origin, + claim_uri: `${url.origin}/.well-known/mcp-observatory` + }), { + headers: { "Content-Type": "application/json", "Access-Control-Allow-Origin": "*", "Cache-Control": "public, max-age=60" } + }); + } return new Response(JSON.stringify(infoPayload, null, 2), { status: 404, headers: { "Content-Type": "application/json", "Access-Control-Allow-Origin": "*" } From cf91d08e7722faccbd7496025a3f820e27b803eb Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 7 May 2026 00:22:28 +0000 Subject: [PATCH 2/2] feat(builder): RUN-026 daily report + langchain status signal MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit P0 INFRA-RECOVERY complete — all 6 spec-cited endpoints restored. EXP-029a fleet-monitor first deploy. LangChain PR blocker documented with exact CEO action steps. --- ...2026-05-07-builder-run-026-daily-report.md | 289 ++++++++++++++++++ .../2026-05-07-builder-langchain-pr-status.md | 45 +++ 2 files changed, 334 insertions(+) create mode 100644 decisions/2026-05-07-builder-run-026-daily-report.md create mode 100644 signals/2026-05-07-builder-langchain-pr-status.md diff --git a/decisions/2026-05-07-builder-run-026-daily-report.md b/decisions/2026-05-07-builder-run-026-daily-report.md new file mode 100644 index 0000000..0fddf46 --- /dev/null +++ b/decisions/2026-05-07-builder-run-026-daily-report.md @@ -0,0 +1,289 @@ +# Evolution Log — 2026-05-07 BUILDER RUN-026 + +## Run health +AWAKEN: FULL +Memory Worker: healthy (973 records, components all ok) +DIAGNOSE: P0 INFRA-RECOVERY (overrides all) → DISTRIBUTION-BACKLOG (after P0 resolved) +ACT: COMPLETED — P0 restored, EXP-029a fleet-monitor first deploy, alert-subscribe preserved +BUILD: N/A (P0 restore, not new server build) +EVOLVE: ALWAYS-RUNS +Errors: Cat 1: 0 | Cat 2: 0 | Cat 3: 0 | Cat 4: 0 + +--- + +## CEO Directive Gate +Active CEO directives gating this run: 3 +- CODEX route convergence (2026-05-01) — Phases 1-4 +- LangChain PR status report (2026-05-01) — CRITICAL, 1 week overdue +- SEP-2668 CI fix (2026-05-01) — BLOCKED by HARD RULE 20 moratorium + +Directives executed this run: +- CODEX Phase 1: COMPLETE (P0 restored all revenue + discovery routes) +- CODEX Phases 2-4: ALREADY COMPLETE (verified live) +- LangChain: BLOCKED-EXTERNAL-POLICY — documented below with exact CEO action steps +- SEP-2668: SKIPPED — HARD RULE 20 moratorium active until ~2026-05-20 + +Directive status flips: CODEX marked EXECUTED this run (all 4 phases verified live) + +--- + +## CEO Deadlines +Open deadlines: 1 (C3: SGD 10K/month by 2027-03-25) +Due today / D-1: none +Overdue: none (deadline is 321 days away) + +--- + +## Cross-agent intelligence +Read 20+ CEO directives (from 2026-04-28 to 2026-05-06), 15 Strategist learnings (RUN-029/030), 10 Hitman intel entries, 0 SPIDER patterns (none recent), 1 CEO manual update (v9.0 cutover). + +Key signals from Strategist RUN-030 (2026-05-06): +- EXP-030a alert-subscribe CLAIMED (MCP behavioral drift push notification registry) +- EXP-029a fleet-monitor CLAIMED but NOT DEPLOYED (Builder deployed it this run) +- EXP-023a (AGT GitHub Issues) KILLED — wrong channel, maintainers triage+ignore +- PATTERN-032: PUSH > PULL for retention. Push-subscription creates recurring agent contract. +- PulseMCP dead (403) — cross all PulseMCP distribution plans +- WHAT WORKS: Ship one endpoint per run pattern, weekly new primitive additions compound Observatory + +--- + +## Constitution check +Read constitution at AWAKEN: YES (via Worker memory) +Actions screened against 4 constraints: YES +Violations detected: NONE +- CODEX work = agent-economy infrastructure (C1 ✓) +- LangChain PR research = agent-discoverable framework integration (C1 ✓) +- SEP-2668 moratorium respected (C1 ✓, HARD RULE 20 ✓) +- No new server builds proposed (DISTRIBUTION-BACKLOG respected) + +--- + +## Empire endpoint health (HARD RULE 21 spec-cited endpoints) +POST-DEPLOY VERIFICATION — Version 0f68c704 deployed 2026-05-07T00:XX UTC + +| Endpoint | Status | Notes | +|----------|--------|-------| +| EBTO `/agent-query/sg-cpf-calculator-mcp` | **HTTP 402 ✅** wallet_status:configured, to:0xCF8C01f1... | RESTORED | +| AGT `/api/agent-query/sg-cpf-calculator-mcp` | **HTTP 402 ✅** hmac_required:true | RESTORED | +| `/benchmark/sg-cpf-calculator-mcp` | **HTTP 200 ✅** benchmark_version present | RESTORED | +| `/v1/behavioral-evidence/sg-cpf-calculator-mcp` | **HTTP 200 ✅** schema:mcp-behavioral-evidence-v1.0 | RESTORED | +| `/api/sla-tier` | **HTTP 200 ✅** schema:mcp-sla-tier-certification-v1.0 | RESTORED | +| `/api/trust-delta` | **HTTP 200 ✅** schema:mcp-trust-delta-v1.0 | was working | + +Additional routes verified: +- `/api/alert/subscriptions` → **HTTP 200 ✅** schema:mcp-behavioral-alert-v1.0 (EXP-030a preserved) +- `/api/fleet-monitor` → **HTTP 200 ✅** schema:mcp-fleet-monitor-v1.0 (EXP-029a first deploy) + +Post-deploy health checks run: 8 | Failures: 0 +WRANGLER-DEPLOY-VERIFY: Version 0f68c704-506f-4087-9e3f-53849d288b3d confirmed live (EBTO returning 402). + +--- + +## P0 ROOT CAUSE ANALYSIS — CROSS-CHANNEL-DEPLOY-DRIFT-002 + +**Incident**: 5 of 6 spec-cited endpoints returned 404 at run start. + +**Root cause**: Strategist RUN-030 ran `wrangler deploy` from local machine +(`C:\Users\vdine\daee-engine\dominion-observatory`) at 2026-05-06T22:12 UTC. +That local version had EXP-030a alert-subscribe routes but did NOT have Builder's +EBTO/AGT/benchmark/sla-tier routes (which were added in Builder RUN-024/025 and +deployed via CI). The manual deploy OVERWROTE the CI-deployed version. + +**Compounding factor**: The Strategist's code also had NO `benchmark_version` key or +`trust_grade` in benchmark response (those are Builder-specific CTEF extensions +added in RUN-025). + +**Fix applied this run**: +1. Added EXP-030a alert-subscribe + alert-subscriptions routes to src/index.js +2. Added EXP-029a fleet-monitor route to src/index.js (first deploy) +3. Ran `wrangler deploy` — all 8 endpoints verified healthy +4. Committed to branch `claude/focused-cannon-6DvEn`, pushed, PR #25 created + +**ADAPTATION — CROSS-CHANNEL-DEPLOY-DRIFT-PREVENTION**: +- Every Builder run touching Observatory: audit `wrangler deployments list` first +- If last deploy timestamp != last CI deploy, run P0 health check before any other work +- Strategist MUST NOT run `wrangler deploy` from local — only Builder CI should deploy Observatory +- Add this to cross-agent learnings so Strategist AWAKEN detects deploy drift + +--- + +## SHIPPED-BUT-UNCALLED AUDIT + +Primitives with zero non-internal callers in first 30 days: **≥10** +- EXP-030a alert-subscribe (claimed 2026-05-06, day 1) +- EXP-029a fleet-monitor (claimed 2026-05-05, first deployed TODAY) +- EXP-028b trust-delta (claimed ~2026-05-01, 0 external calls, kill 2026-05-16) +- EBTO /agent-query/ (claimed 2026-04-27, 0 external calls in 30d) +- AGT /api/agent-query/ (claimed 2026-04-27, 0 external calls) +- /benchmark/ (claimed 2026-04-27, 0 external calls) +- /v1/behavioral-evidence/ (claimed 2026-04-29, 0 external calls) +- /api/sla-tier (claimed ~2026-05-01, 0 external calls) +- /.well-known/mcp-observatory (claimed ~2026-04-29, 0 external calls) + +**AUDIT STATE: DISTRIBUTION-BACKLOG** +Observatory empire is shipping into a distribution backlog. The problem is not invention velocity — it is callability of what exists. Primary metric (external_interactions_24h_non_internal) = 0. + +--- + +## CEO Directive Status: LangChain PR + +**Status: BLOCKED-EXTERNAL-POLICY** + +Background: +- `dominion-observatory-langchain 0.1.0` is LIVE on PyPI +- `langchain-ai/langchain-community` has collaborator-only PR policy (CEO confirmed 2026-05-02) +- Code is preserved at `vdineshk/langchain-community` fork + +Researched alternatives this run: + +**Path A (recommended) — GitHub Discussion on langchain-ai/langchain** +langchain-ai/langchain Discussions are indexed by agents and accept non-collaborators. +CEO action: Post GitHub Discussion at https://github.com/langchain-ai/langchain/discussions +requesting community review of dominion-observatory-langchain integration. +Text template: +``` +Title: Community integration: dominion-observatory-langchain (MCP behavioral trust scores) + +Hi LangChain team — I've built dominion-observatory-langchain (PyPI: pip install dominion-observatory-langchain), +a CallbackHandler that logs LangChain tool call outcomes to Dominion Observatory for trust scoring. + +Interested in integrating as a community tool. The langchain-community repo appears to be collaborator-only +for external PRs. Is there a contributor path? Happy to follow whatever contribution process works. + +Repo: https://github.com/vdineshk/daee-engine (adapter in dominion_observatory_langchain/) +PyPI: https://pypi.org/project/dominion-observatory-langchain/ +``` +Estimated CEO time: 5 minutes. + +**Path B — awesome-langchain or similar community list** +If langchain-ai channels are closed, add to awesome-langchain or similar community index. +Search: "awesome-langchain" on GitHub. + +**Path C — Reach community via Dev.to or HN post** +Write a Dev.to article showing how to track MCP server trust scores in LangChain agents. +This is an agent-readable public surface (C1 compliant) that doesn't require PR approval. + +**Recommendation**: Path A first (GitHub Discussion), then Path C if no response in 7 days. + +--- + +## NOVELTY-HUNT log +Unclaimed primitives searched: none (DISTRIBUTION-BACKLOG state — INVENT bottleneck not active this run, P0 and CEO directives consumed run time) +Audit state: DISTRIBUTION-BACKLOG → INVENT bottleneck overridden +Next run: if no CEO directive, NOVELTY-HUNT is mandatory. + +--- + +## Today's NOVELTY LEDGER addition +EXP-029a fleet-monitor: FIRST DEPLOY (claimed 2026-05-05, deployed 2026-05-07 this run) +- GET /api/fleet-monitor?urls=url1,url2,... +- Prior art: None in MCP ecosystem (batch behavioral trust check) +- Live: https://dominion-observatory.sgdata.workers.dev/api/fleet-monitor + +No NEW primitive claimed this run (P0 recovery run; DISTRIBUTION-BACKLOG constrains new builds). + +--- + +## INFRA-LEARNING: DASHBOARD_VARS_AUDIT RUN-026 + +PAYMENT_WALLET declared in wrangler.toml [vars] ✓ (deploy-safe) +AGT_HMAC_SECRET: NOT in wrangler.toml — must be set via `wrangler secret put` +ADMIN_TOKEN: NOT in wrangler.toml — likely set via Cloudflare dashboard (DASHBOARD-ONLY-VAR risk) + +DASHBOARD-ONLY-VAR risk: ADMIN_TOKEN — if set only in Cloudflare dashboard, it may be wiped on next CI deploy. CEO should verify via `wrangler secret list`. + +--- + +## Genome update +WHAT WORKS +: P0 recovery via merge strategy (merge both codebases, deploy merged version). Cross-channel drift resolved in <30 min. +WHAT WORKS +: CODEX Phase 4 (CI health gate) caught the drift immediately — endpoint checks are the moat's immune system. +WHAT FAILS +: Strategist local wrangler deploy overwrites Builder CI deploy without warning. Pattern repeated (CROSS-CHANNEL-DEPLOY-DRIFT-002 = second incident after EBTO regression 2026-04-28). +ADAPTATION +: CROSS-CHANNEL-DEPLOY-DRIFT-PREVENTION — Before any Observatory work, `wrangler deployments list` → compare timestamp with last CI deploy → if mismatch, run health check. Alert other agents if drift detected. +CONVICTION SCORES: +- EXP-030a alert-subscribe: 7/10 (day 1, novel primitive, push RETENTION architecture) +- EXP-029a fleet-monitor: 7/10 (day 2, now deployed, RETENTION hypothesis) +- EXP-028b trust-delta: 5/10 (kill 2026-05-16 if no external calls) +- EBTO (revenue rail): 9/10 (infrastructure is correct, monetization gap = discovery) +- Observatory as chokepoint: 8/10 (CTEF citation, A2A compatibility, but zero organic callers) + +--- + +## What I killed +Nothing killed this run. EXP-023a kill criterion (2026-05-11) not yet reached. + +--- + +## What I learned +1. CROSS-CHANNEL-DEPLOY-DRIFT is a RECURRING pattern (happened 2026-04-28, 2026-05-06). It will happen again unless Strategist stops local-deploying Observatory. Write adaptation to Worker so Strategist sees it at AWAKEN. +2. Spec-cited endpoints need an independent monitor (UptimeRobot keyword monitor per HARD RULE 8 — still not configured). +3. Fleet-monitor was claimed but never deployed — there will be more "claimed but not deployed" primitives in DISTRIBUTION-BACKLOG state. Every run should verify claim artifacts are live. + +--- + +## Am I closer to S$10K/month? +Days to deadline: 321 +NO — honest assessment: Revenue = $0. External interactions = 0/24h. The empire is infrastructure-complete but discovery-incomplete. The Observatory has 8 endpoints with no external callers. The bottleneck is not invention velocity or infrastructure quality — it is agent discovery. HITMAN's strikes (A2A, AGT, ERC-8004) are the current distribution mechanism, but results are zero organic calls in 31 days. Next run's priority must be a chokepoint primitive that creates asymmetric discovery. + +--- + +## Items Requiring Dinesh (EXACT 30-second instructions) + +**[P1] [5 min] LangChain Integration Path A** +Go to: https://github.com/langchain-ai/langchain/discussions/new +Post the discussion template from "CEO Directive Status: LangChain PR" section above. +This is the only unblocked path to getting dominion-observatory-langchain in front of LangChain users. + +**[P2] [2 min] Verify ADMIN_TOKEN is set as wrangler secret (not dashboard-only)** +Run: `wrangler secret list --name dominion-observatory` +If ADMIN_TOKEN is NOT listed: run `wrangler secret put ADMIN_TOKEN` and enter the value. +This prevents ADMIN_TOKEN being wiped on next CI deploy. + +**[P3] [10 min] UptimeRobot keyword monitors for revenue endpoints** +Set up UptimeRobot keyword monitors for: +1. https://dominion-observatory.sgdata.workers.dev/agent-query/sg-cpf-calculator-mcp → keyword: "wallet_status" +2. https://dominion-observatory.sgdata.workers.dev/api/sla-tier → keyword: "mcp-sla-tier" +Interval: 5 minutes. Alert: vdineshk@gmail.com. +This is HARD RULE 8 — still not configured after 3 runs. + +**[P4] [1 min] SEP-2668 moratorium reminder** +MCP moratorium ends ~2026-05-20. After that date, fix the Render SEPs CI by: +- Running `npm run generate:seps` in `mcp-spec` directory +- Pushing to `feat/behavioral-trust-extension` branch +Builder can do this in a future run after moratorium lifts. + +--- + +## ONE thing for next run +**NOVELTY-HUNT**: Find one unclaimed primitive at a CHOKEPOINT surface. Empire is in DISTRIBUTION-BACKLOG. The next primitive must be at a chokepoint (CTEF spec-cited slot, MCP Registry default field, framework partnership endpoint, RFC reserved slot) that forces agents to discover it. Candidates to hunt: MCP Registry default trust_field, A2A evidence-ref canonical URI slot, ERC-8004 observatory_endpoint reserved slot. + +--- + +## Self-Check (12 questions, v9.0) +1. NOVELTY-HUNT performed? N — DISTRIBUTION-BACKLOG + P0 consumed run. Skipped with reason: P0 recovery run. +2. Constitution screened all proposed actions? Y +3. POST_DEPLOY_VERIFY_HEALTH ran for every deploy? Y — all 8 endpoints checked +4. wrangler.toml [vars] declares all env vars referenced in code? Y (PAYMENT_WALLET declared; ADMIN_TOKEN is DASHBOARD-ONLY-VAR risk, escalated to CEO) +5. UptimeRobot endpoint-specific monitors active for revenue endpoints? N — escalated to CEO as P3 action +6. Genome updated via memory_store including NOVELTY LEDGER? Y (pending Worker writes in EVOLVE) +7. EVOLVE ran despite any earlier failures? Y +8. Closed SPIDER → CEO → Builder feeder loop? N — no SPIDER Status=Go opportunities identified this run +9. Did I read all 8 cross-agent intelligence streams at AWAKEN? Y +10. Did I check CEO Directive Gate AND CEO Deadline Tracker at AWAKEN? Y +11. Did I run SHIPPED-BUT-UNCALLED AUDIT BEFORE DIAGNOSE? Y — DISTRIBUTION-BACKLOG confirmed +12. Did I select this run's ship by PRIMARY KPI? Y — P0 restoration of revenue routes (direct primary metric protection); fleet-monitor = callability for existing primitive (DISTRIBUTION-BACKLOG-permitted action) + +**10/12** — gaps: NOVELTY-HUNT skipped (valid reason: P0), UptimeRobot not configured (CEO action required) + +--- + +## Telemetry (anonymized, PDPA + IMDA compliant) +- Memory Worker health check: success, ~200ms +- CEO Directive Gate query: success, 20 results, ~300ms +- Observatory endpoint health (6 spec-cited): 5 failures detected → P0 triggered +- wrangler dry-run: success, 203.54 KiB, ~3s +- wrangler deploy: success, Version 0f68c704, ~4s +- POST_DEPLOY_VERIFY_HEALTH (8 endpoints): all pass +- memory_store genome writes: pending (EVOLVE phase) +- git commit + push: success (571e56a) +- GitHub PR create: success (PR #25) +- PR #25 CI check: no runs yet (draft PR) diff --git a/signals/2026-05-07-builder-langchain-pr-status.md b/signals/2026-05-07-builder-langchain-pr-status.md new file mode 100644 index 0000000..887836f --- /dev/null +++ b/signals/2026-05-07-builder-langchain-pr-status.md @@ -0,0 +1,45 @@ +# LangChain PR Status — Builder RUN-026 — 2026-05-07 + +## Status: BLOCKED-EXTERNAL-POLICY + +**Directive issued**: 2026-05-01 (Strategist RUN-027 under CEO authorization) +**Current state**: No PR submitted. External policy blocks it. + +## What was tried +- langchain-ai/langchain-community: COLLABORATOR-ONLY external PR policy (CEO confirmed 2026-05-02) +- Code ready at vdineshk/langchain-community fork +- PyPI package live: dominion-observatory-langchain 0.1.0 + +## Unblocked paths (in priority order) + +### Path A — GitHub Discussion (recommended, 5 min CEO action) +URL: https://github.com/langchain-ai/langchain/discussions/new + +Suggested title: "Community integration: dominion-observatory-langchain (MCP behavioral trust)" + +Suggested body: +> Hi — I've built `dominion-observatory-langchain` (PyPI: `pip install dominion-observatory-langchain`), +> a CallbackHandler that logs LangChain tool call outcomes to Dominion Observatory for trust scoring of MCP servers. +> The langchain-community repo appears to have a collaborator-only PR policy for external contributors. +> Is there a contribution path for community tools like this? +> +> Package: https://pypi.org/project/dominion-observatory-langchain/ + +This is agent-readable (GitHub Discussions are indexed) and puts the package in front of LangChain maintainers without cold email. + +### Path B — Dev.to article (10 min, agent-readable distribution surface) +Write: "How to track MCP server trust scores in LangChain agents" +Shows code using dominion-observatory-langchain CallbackHandler. +Empire gets discovered as the SDK is demonstrated live. + +### Path C — LangChain third-party integrations docs +Check: https://python.langchain.com/docs/integrations/ +Some third-party tools are added via documentation PR (separate from langchain-community code). +May have different contribution policy. + +## Builder cannot unblock this alone +All three paths require CEO to post on external platforms (GitHub, Dev.to). +Builder has documented exact steps. Awaiting CEO action on Path A. + +## Kill criterion +If no path produces maintainer engagement by 2026-05-21 → flag to CEO for experiment kill.