opencode-agent-skill 13.0.0-beta.2 → 14.2.0-beta.1

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 (93) hide show
  1. package/README.md +1556 -607
  2. package/bin/ocskill.mjs +172 -24
  3. package/docs/OPENCODE-COMPAT.md +34 -97
  4. package/docs/PI-COMPAT.md +188 -0
  5. package/docs/V14-CONTEXT-MEMORY-FABRIC.md +70 -0
  6. package/docs/V14.1-QUALITY-PERFORMANCE-FABRIC.md +114 -0
  7. package/docs/V14.2-TURBO-WEAK-MODEL-RUNTIME.md +448 -0
  8. package/evals/v14/tasks.json +46 -0
  9. package/global-config/agents/executor.md +7 -0
  10. package/global-config/agents/visual-verifier.md +22 -3
  11. package/global-config/plugins/ues-router/index.js +13 -8
  12. package/global-config/plugins/ues-router/policy-runtime.js +7 -0
  13. package/global-config/plugins/ues-router/router.js +12 -2
  14. package/global-config/skills/ecommerce-engineering/SKILL.md +1 -1
  15. package/global-config/skills/file-upload-engineering/SKILL.md +1 -1
  16. package/global-config/skills/git-safety/SKILL.md +1 -1
  17. package/global-config/skills/nestjs-engineering/SKILL.md +1 -1
  18. package/global-config/skills/performance-engineering/SKILL.md +1 -1
  19. package/global-config/skills/react-native-engineering/SKILL.md +1 -1
  20. package/global-config/skills/rest-api-design/SKILL.md +1 -1
  21. package/global-config/skills/ui-ux-engineering/SKILL.md +1 -1
  22. package/lib/adaptive-context-budget.mjs +97 -0
  23. package/lib/affected-tests.mjs +260 -0
  24. package/lib/benchmark-confidence.mjs +41 -2
  25. package/lib/browser-mcp-routing.mjs +166 -0
  26. package/lib/capability-fabric.mjs +336 -0
  27. package/lib/capability-registry.mjs +9 -0
  28. package/lib/context-engine-v11.mjs +65 -1
  29. package/lib/context-graph-rank.mjs +118 -0
  30. package/lib/context-manifest.mjs +97 -18
  31. package/lib/control-center.mjs +19 -1
  32. package/lib/dynamic-workflow.mjs +3 -1
  33. package/lib/evidence-store.mjs +82 -1
  34. package/lib/hierarchical-context.mjs +215 -0
  35. package/lib/memory-engine.mjs +465 -0
  36. package/lib/model-performance.mjs +33 -8
  37. package/lib/model-policy.mjs +3 -3
  38. package/lib/orchestrator-policy.mjs +5 -209
  39. package/lib/performance-fabric.mjs +229 -0
  40. package/lib/pi-rpc-pool.mjs +433 -0
  41. package/lib/process-hang-detector.mjs +83 -0
  42. package/lib/process-supervisor.mjs +193 -0
  43. package/lib/prompt-cache.mjs +2 -0
  44. package/lib/repo-graph.mjs +53 -2
  45. package/lib/runtime-config.mjs +31 -0
  46. package/lib/safety.mjs +132 -0
  47. package/lib/semantic-index.mjs +52 -3
  48. package/lib/skill-compiler.mjs +128 -0
  49. package/lib/skill-quality.mjs +48 -2
  50. package/lib/task-engine.mjs +66 -5
  51. package/lib/task-policy.mjs +235 -0
  52. package/lib/verification-broker.mjs +284 -0
  53. package/lib/verification-command.mjs +111 -0
  54. package/lib/windows-shim.mjs +35 -0
  55. package/lib/workspace-fingerprint.mjs +198 -0
  56. package/package.json +52 -42
  57. package/pi/extensions/ues-child-runtime.ts +238 -0
  58. package/pi/extensions/ues.ts +3200 -0
  59. package/pi/prompts/ues-audit.md +9 -0
  60. package/pi/prompts/ues-critique.md +9 -0
  61. package/pi/prompts/ues-debug.md +9 -0
  62. package/pi/prompts/ues-feature.md +9 -0
  63. package/pi/prompts/ues-fix.md +9 -0
  64. package/pi/prompts/ues-plan.md +9 -0
  65. package/pi/prompts/ues-research.md +9 -0
  66. package/pi/prompts/ues-resume.md +9 -0
  67. package/pi/prompts/ues-review.md +7 -0
  68. package/pi/prompts/ues-run.md +17 -0
  69. package/pi/prompts/ues-verify.md +9 -0
  70. package/scripts/check-release-consistency.mjs +119 -185
  71. package/scripts/check-runtime-exports.mjs +66 -0
  72. package/scripts/check-source-integrity.mjs +184 -0
  73. package/scripts/eval-pi.mjs +492 -0
  74. package/scripts/install.mjs +16 -0
  75. package/scripts/smoke-package-closure.mjs +110 -0
  76. package/scripts/smoke-packed-install.mjs +24 -11
  77. package/scripts/smoke-pi-extension.mjs +144 -0
  78. package/scripts/uninstall.mjs +44 -0
  79. package/CHANGELOG.md +0 -415
  80. package/docs/DETERMINISTIC-TOOLS.md +0 -105
  81. package/docs/ENGINEERING-DESIGN.md +0 -194
  82. package/docs/EVALS.md +0 -158
  83. package/docs/GITHUB-RULESET.md +0 -50
  84. package/docs/NPM-PUBLISH.md +0 -116
  85. package/docs/RESEARCH-SOURCES.md +0 -37
  86. package/docs/TRACE-SCHEMA.md +0 -122
  87. package/docs/V11-PERCEPTION-ADAPTIVE-EXECUTION.md +0 -75
  88. package/docs/V11-PERCEPTION-ADAPTIVE.md +0 -220
  89. package/docs/V12-WEAK-MODEL-INTELLIGENCE.md +0 -27
  90. package/docs/V13-PARALLEL-WEAK-MODEL-RUNTIME.md +0 -86
  91. package/docs/V7-INTELLIGENCE-RUNTIME.md +0 -166
  92. package/docs/V8-INTELLIGENCE-RELIABILITY.md +0 -206
  93. package/docs/V9-SPEED-INTELLIGENCE.md +0 -102
@@ -0,0 +1,188 @@
1
+ # Pi Agent runtime
2
+
3
+ Repository này hiện đóng gói UES cho **Pi Agent**.
4
+
5
+ ## Requirements
6
+
7
+ - Node.js 22.19+
8
+ - Git
9
+ - `@earendil-works/pi-coding-agent`
10
+
11
+ ## Install
12
+
13
+ ```cmd
14
+ npm install -g @earendil-works/pi-coding-agent
15
+ pi install git:github.com/laivannha0202/opencode-agent-skill-
16
+ pi list
17
+ pi
18
+ ```
19
+
20
+ Project-local:
21
+
22
+ ```cmd
23
+ pi install git:github.com/laivannha0202/opencode-agent-skill- -l
24
+ ```
25
+
26
+ Hoặc từ checkout local:
27
+
28
+ ```cmd
29
+ pi install .
30
+ ```
31
+
32
+ ## Resources loaded by Pi
33
+
34
+ `package.json` exposes:
35
+
36
+ - extension: `./pi/extensions/ues.ts`
37
+ - skills: `./global-config/skills`
38
+ - prompts: `./pi/prompts/*.md`
39
+
40
+ The packaged runtime also contains `global-config/agents/`, `bin/ocskill.mjs`, and `lib/` because the Pi extension uses them for specialist child-agent execution and deterministic UES operations.
41
+
42
+ ## Tools
43
+
44
+ ### ues_cli
45
+
46
+ Runs bundled `ocskill` functionality directly, without requiring a separate global `ocskill` installation.
47
+
48
+ Typical uses:
49
+
50
+ - task policy;
51
+ - repository inspection;
52
+ - dependency/task graph;
53
+ - durable `.ues-work/` state;
54
+ - evidence and receipts;
55
+ - verification and recovery;
56
+ - worktree isolation.
57
+
58
+ ### ues_execute
59
+
60
+ Runs the high-level deterministic controller for end-to-end engineering work.
61
+
62
+ The controller applies task policy, adaptive context, model-tier routing, optional diagnosis/plan gating, implementation, verifier/integration-verifier gates, bounded retries, and model-performance telemetry. This is the preferred entry point for weak models because the parent model no longer has to remember the orchestration protocol.
63
+
64
+ For a valid multi-task structured plan, the controller also computes dependency-safe waves, creates isolated Git worktrees for writing tasks, verifies each task independently, rejects writes outside the declared file scope, integrates successful work serially, and rolls back already-integrated work if a later integration in the same wave fails.
65
+
66
+ ### ues_dispatch
67
+
68
+
69
+ Runs bundled specialist roles in isolated child Pi processes. Each child receives routed model selection plus a bounded adaptive context pack before execution.
70
+
71
+ Supported execution patterns:
72
+
73
+ - single;
74
+ - chain;
75
+ - bounded parallel.
76
+
77
+ Parallel writer agents require distinct explicit cwd/worktrees. Read-only agents may share the same repository.
78
+
79
+ Child Pi processes keep extension discovery enabled so custom model providers remain available, while skills, prompt templates and context files are disabled and each specialist receives a strict tool allowlist. Enriched task/context input is piped through stdin instead of argv for Windows command-line safety.
80
+
81
+ Each child also has bounded runtime supervision: a 30-minute hard timeout, a 5-minute idle timeout and a 15-second heartbeat by default. These can be tuned with `UES_CHILD_HARD_TIMEOUT_MS`, `UES_CHILD_IDLE_TIMEOUT_MS` and `UES_CHILD_HEARTBEAT_MS`.
82
+
83
+
84
+ ## V14.2 Turbo Weak-Model Runtime
85
+
86
+ V14.2 keeps the Pi-native controller and specialist roles but changes the hot path to reduce repeated startup, context and verification work.
87
+
88
+ - `UES_CHILD_RUNTIME=auto` prefers persistent Pi RPC workers and falls back to one-shot CLI children.
89
+ - A fresh Pi session is started between specialist runs even when the worker process stays warm.
90
+ - Interactive steering is forwarded to the single active RPC child; stop/cancel/dừng/hủy abort active children. RPC steer/abort control waits are bounded to 3 seconds by default before abort escalates to process-tree termination.
91
+ - `pi/extensions/ues-child-runtime.ts` is loaded explicitly in child sessions for output compaction, evidence recovery, shell safety and verification receipts.
92
+ - Test/lint/typecheck/build commands receive bounded default timeouts when the model omitted one.
93
+ - Pi's `details.fullOutputPath` is used when available so Evidence Store can preserve the full shell output instead of only the visible truncated tail.
94
+ - Low/medium-risk verifier roles may reuse an exact fresh PASS receipt when the workspace fingerprint is unchanged; high-risk verification does not receive this optimization.
95
+ - Context uses adaptive role budgets, bounded micro-skills, cached dependency graphs and affected-test hints.
96
+ - DEEP/long-horizon structured runs auto-create `.ues-work/<slug>` and require plan/task/integration receipts before finalization.
97
+
98
+ Useful switches:
99
+
100
+ ```text
101
+ UES_CHILD_RUNTIME=auto
102
+ UES_RPC_MAX_WORKERS=8
103
+ UES_RPC_CONTROL_TIMEOUT_MS=3000
104
+ UES_ADAPTIVE_CONTEXT=1
105
+ UES_MICRO_SKILLS=1
106
+ UES_AFFECTED_TEST_HINTS=1
107
+ UES_CHILD_TOOL_COMPACTION=1
108
+ ```
109
+
110
+ See `docs/V14.2-TURBO-WEAK-MODEL-RUNTIME.md`.
111
+
112
+ ## Prompts
113
+
114
+ ```text
115
+ /ues-run
116
+ /ues-plan
117
+ /ues-feature
118
+ /ues-fix
119
+ /ues-debug
120
+ /ues-review
121
+ /ues-verify
122
+ /ues-audit
123
+ /ues-research
124
+ /ues-critique
125
+ /ues-resume
126
+ ```
127
+
128
+ ## Safety
129
+
130
+ The extension intercepts risky `bash`/`powershell` calls and applies the UES destructive-command guard. Interactive Pi can ask for confirmation; non-interactive risky execution fails closed.
131
+
132
+ ## Validation
133
+
134
+ Run from the repository:
135
+
136
+ ```cmd
137
+ npm ci --ignore-scripts
138
+ npm test
139
+ npm run syntax
140
+ npm run smoke:pi
141
+ npm run smoke:package
142
+ npm pack --dry-run
143
+ ```
144
+
145
+ The npm package manifest is Pi-only: it does not run lifecycle setup for another coding-agent host.
146
+
147
+
148
+ ## Weak-model benchmark
149
+
150
+ Use the Pi-native benchmark to compare the same model with and without UES:
151
+
152
+ ```cmd
153
+ ues eval-pi --model provider/model --thinking low --suite live --trials 3 --mode both
154
+ ```
155
+
156
+ Each run uses an isolated workspace and an external grader. Extension discovery is disabled for fairness, then the model-provider extension is loaded explicitly in both baseline and UES modes; only UES mode additionally loads the UES extension. For `kilo/...` models the benchmark reuses the installed Kilo Pi provider when available and otherwise uses `git:github.com/Kilo-Org/kilo-pi-provider`. Other custom providers can be supplied with repeatable `--provider-extension <source>`. UES mode uses an isolated `UES_CONFIG_DIR` so role routing cannot silently substitute a stronger configured model. Telemetry includes parent and child-agent token/tool usage.
157
+
158
+ When `--mode both` is used, V14.2 also emits paired benchmark confidence. The turbo promotion view requires quality non-regression, isolated baseline arms, no controller false-PASS, bounded overhead and at least one measured efficiency improvement.
159
+
160
+ ## Model routing
161
+
162
+ Runtime model routing is configured with `ocskill models ...` and is consumed directly by Pi child-agent dispatch. Set `UES_CONFIG_DIR` to override the UES config root. If a native UES policy does not exist, the runtime can read an existing legacy OpenCode model policy for migration compatibility.
163
+
164
+ ## Package closure
165
+
166
+ `npm run smoke:package` inspects the actual npm pack file list, verifies required Pi/runtime files are present, checks relative module imports do not point outside the published package, and smoke-runs the deterministic task policy. This guards against the previous class of errors where Git installs worked but npm publication omitted a core dependency.
167
+
168
+
169
+ ## V14 context and memory fabric
170
+
171
+ Pi child-agent dispatch keeps the existing specialist set. V14 strengthens the context supplied to those agents instead of adding more roles:
172
+
173
+ - L0/L1 hierarchy scopes are selected before broad L2 excerpts;
174
+ - only evidence-verified, non-superseded project memories are injected;
175
+ - capability providers expose deterministic health and fallback state.
176
+
177
+ Useful deterministic commands:
178
+
179
+ ```cmd
180
+ ues capability-fabric status .
181
+ ues hierarchy "task query" .
182
+ ues memory status .
183
+ ues memory search "task query" .
184
+ ```
185
+
186
+ `ues_execute` may persist a verified episodic memory only after an independent verifier has returned PASS. The memory record is backed by a content-addressed evidence receipt and is stored under ignored local `.ues-memory/` state.
187
+
188
+ See `docs/V14-CONTEXT-MEMORY-FABRIC.md`.
@@ -0,0 +1,70 @@
1
+ # V14 Context & Memory Fabric
2
+
3
+ Status: beta prerelease (`14.0.0-beta.1`).
4
+
5
+ ## Goal
6
+
7
+ V14 improves weak-model reliability without adding more specialist agents. It moves repository understanding, persistent memory, and tool/provider selection into deterministic runtime layers so the model receives less irrelevant context and makes fewer infrastructure choices itself.
8
+
9
+ ## Architecture
10
+
11
+ ### Hierarchical context
12
+
13
+ UES builds deterministic repository summaries on top of the incremental semantic index:
14
+
15
+ - **L0**: bounded routing abstract for a directory/subtree;
16
+ - **L1**: bounded overview with child areas, important symbols, extensions and files;
17
+ - **L2**: existing task-context source/test/instruction excerpts loaded only after scope selection.
18
+
19
+ `buildContextManifest` still preserves declared files, tests, Git changes and graph evidence, but semantic references inside selected hierarchy scopes receive a deterministic boost. The compact Pi child context includes only the highest-ranked L0/L1 scopes. A diversity fence prevents a single parent/child directory chain from consuming the complete scope budget. Durable `.ues-work` task packs use the same hierarchy, verified-memory recall and bounded capability-provider hints as inline Pi execution.
20
+
21
+ ### Verified persistent memory
22
+
23
+ Project memory lives in ignored local state under `.ues-memory/MEMORY.json`.
24
+
25
+ Memory lifecycle:
26
+
27
+ ```text
28
+ candidate -> durable evidence -> independent PASS -> verified -> retrieval
29
+ \-> superseded
30
+ ```
31
+
32
+ A memory cannot become retrievable merely because an agent emitted text. Verification requires at least one content-addressed Evidence Store reference and a named verifier. Successful `ues_execute` runs record a bounded evidence receipt and promote an episodic memory only after task or integration verification passes. Durable work finalization does the same after a recorded integration PASS, using declared plan files rather than unrelated dirty workspace files.
33
+
34
+ Retrieval combines deterministic lexical BM25-style relevance, hashed-vector similarity, file-path affinity, task-class affinity, scope, recency and confidence using reciprocal-rank fusion. Candidate, superseded and expired memories are excluded. Recalled memories track `lastUsedAt` and `useCount` for future policy tuning.
35
+
36
+ ### Capability fabric
37
+
38
+ `lib/capability-fabric.mjs` adds a provider layer above individual tools. Each capability may expose primary and fallback providers with health, priority, quality, latency and cost hints. Built-in UES services are health-checked without external network calls; optional command/package providers may be unavailable without making unrelated tasks fail. Bounded success/failure/latency observations are persisted in ignored `.ues-learning/CAPABILITY-OBSERVATIONS.json`; observation weight ramps up over repeated samples so one transient failure cannot immediately poison routing.
39
+
40
+ Project overrides may be placed in `.ues-capabilities.json` or supplied through `UES_CAPABILITY_CONFIG`.
41
+
42
+ ## CLI
43
+
44
+ ```text
45
+ ues capability-fabric status [dir]
46
+ ues capability-fabric select <capability> [dir]
47
+
48
+ ues hierarchy "<query>" [dir]
49
+
50
+ ues memory status [dir]
51
+ ues memory search "<query>" [dir] [--limit N]
52
+ ues memory propose "<text>" [dir] --evidence <evidence:sha256:...>
53
+ ues memory verify <id> [dir] --verdict PASS --verifier <name> [--evidence <ref>]
54
+ ues memory supersede <id> <replacement-id> [dir]
55
+ ```
56
+
57
+ `ues doctor` also prints the currently selected capability providers and fallbacks.
58
+
59
+ ## Safety properties
60
+
61
+ - no new autonomous specialist role is introduced;
62
+ - memory is fail-closed on missing evidence;
63
+ - supersession requires the replacement memory to be verified first;
64
+ - provider health is deterministic and optional providers do not silently masquerade as healthy;
65
+ - hierarchy and memory are bounded before being injected into child Pi context;
66
+ - memory recording failures never turn a verified engineering task into a failed task.
67
+
68
+ ## Evaluation
69
+
70
+ V14 adds deterministic unit/CLI regression coverage plus `evals/v14/tasks.json` for hierarchy routing, verified recall, supersession, provider failover and context contamination. The existing weak-model baseline-vs-UES Pi benchmark remains the release-quality measure; V14 does not claim that orchestration makes a weak base model equivalent to a stronger model.
@@ -0,0 +1,114 @@
1
+ # V14.1 Quality-Preserving Performance Fabric
2
+
3
+ Status: incremental V14.1 work on top of `14.0.0-beta.1`.
4
+
5
+ ## Goal
6
+
7
+ Increase throughput for weak models without lowering reasoning effort or weakening UES completion gates. V14.1 removes model-visible noise before it removes reasoning, verification, or evidence.
8
+
9
+ ## Non-regression invariants
10
+
11
+ The default path keeps these properties unchanged:
12
+
13
+ - inherited Pi thinking level is preserved;
14
+ - executor work still requires independent verification;
15
+ - high-risk and long-horizon work keeps plan, scope, sandbox, retry, fresh-evidence and integration-verification gates;
16
+ - raw evidence remains recoverable;
17
+ - no external optimizer is installed, enabled, or wrapped around Pi automatically;
18
+ - optimization failure is fail-open: UES returns raw output rather than hiding evidence.
19
+
20
+ ## Reversible model-visible output
21
+
22
+ `lib/performance-fabric.mjs` bounds oversized UES deterministic CLI output using a head / high-signal lines / tail preview. Before any reduction, the exact original is written to the content-addressed Evidence Store.
23
+
24
+ The compact result includes an `evidence:sha256:...` handle. The original can be recovered with:
25
+
26
+ ```text
27
+ ues store get evidence:sha256:<hash>
28
+ ```
29
+
30
+ Small outputs are returned unchanged. `UES_MODEL_VISIBLE_OUTPUT_LIMIT` controls the Pi adapter threshold and defaults to 64 KiB.
31
+
32
+ This layer does not rewrite model prompts, source files, verifier reports, or the model's thinking configuration.
33
+
34
+ ## Compact hierarchy
35
+
36
+ `ues hierarchy` now returns bounded routing data by default: L0/L1 summaries, scores, reasons, counts, top files and top symbols. Complete file arrays remain available explicitly:
37
+
38
+ ```text
39
+ ues hierarchy "<query>" . --full
40
+ ```
41
+
42
+ The adaptive child context was already bounded separately; this change protects direct `ues_cli` use from accidentally injecting very large scope payloads.
43
+
44
+ ## Deterministic read-only fast path
45
+
46
+ Structured tasks classified by Dynamic Workflow as `deterministic` skip the executor only when `taskWriteFiles()` is empty. The read-only `ues-verifier` still runs with the inherited thinking level and must return PASS. Any task with create/modify/test/delete scope keeps the existing executor → verifier path.
47
+
48
+ This makes verification-only plan steps such as test, typecheck, lint, compile or explicit verify-command tasks consume one specialist model call instead of two without removing the independent evidence gate.
49
+
50
+ ## Minimal-solution executor policy
51
+
52
+ The executor now prefers the first maintainable solution that fully satisfies the task:
53
+
54
+ 1. reuse an existing codebase primitive;
55
+ 2. use the standard library or native platform capability;
56
+ 3. use an already-installed dependency;
57
+ 4. write the smallest necessary new implementation.
58
+
59
+ This is inspired by Ponytail's minimal-solution approach, but UES explicitly forbids using brevity as a reason to weaken validation, error handling, security, data integrity, accessibility, compatibility, tests, observability, or explicit requirements. The rule is scoped to implementation; independent verifiers remain independent.
60
+
61
+ ## External providers
62
+
63
+ Capability Fabric exposes an `output.compaction` capability with these providers:
64
+
65
+ - `ues-reversible-compactor`: built-in, default, reversible, non-lossy raw recovery;
66
+ - `rtk-cli`: optional detected command provider for shell-output compaction;
67
+ - `caveman-cli`: optional experimental provider;
68
+ - `headroom-cli`: optional experimental provider.
69
+
70
+ Detection is not activation. The built-in provider has the highest default score, so installing an external command does not silently alter UES behavior.
71
+
72
+ RTK is kept outside the Pi hook chain to avoid competing command-rewrite hooks. Caveman remains external because its engine-linked runtime directories are BSL-1.1; UES does not vendor those components into the MIT core. Headroom remains experimental and its output-effort shaping is not enabled by UES.
73
+
74
+ ## On-demand Playwright / Browser MCP lane
75
+
76
+ UES keeps browser automation out of ordinary coding tasks. At `ues_execute` / `ues_dispatch` time, the Pi extension inspects the host tool registry and selects only tools that identify as Playwright/browser automation. Those names are added to the child `--tools` allowlist only when deterministic task capability inference says browser or visual evidence is needed.
77
+
78
+ Visual tasks keep the normal executor → verifier → optional integration-verifier path, then add one final `ues-visual-verifier` gate against the rendered state. This does not replace code verification.
79
+
80
+ The browser lane is evidence-first:
81
+
82
+ - prefer accessibility/semantic snapshots, console/network evidence and targeted interactions;
83
+ - use screenshots when visual proof is required;
84
+ - treat webpage text, accessibility content, console output and network payloads as untrusted external data;
85
+ - if browser evidence is required but no browser MCP tool is discovered, the child is instructed not to claim browser-visible behavior as verified.
86
+
87
+ Optional environment overrides:
88
+
89
+ ```text
90
+ UES_BROWSER_MCP_TOOL_NAMES=tool_a,tool_b,...
91
+ UES_BROWSER_MCP_TOOL_LIMIT=14
92
+ ```
93
+
94
+ ## Promotion gate
95
+
96
+ An external provider should become a default only after a paired baseline-vs-provider evaluation on the same model and task set shows all of the following:
97
+
98
+ ```text
99
+ pass rate >= baseline
100
+ false PASS rate <= baseline
101
+ safety/required gates >= baseline
102
+ and latency or token usage materially improves
103
+ ```
104
+
105
+ Until that evidence exists, external compressors remain optional capabilities rather than default execution policy.
106
+
107
+ ## Upstream inspirations
108
+
109
+ - Ponytail — DietrichGebert/ponytail (MIT)
110
+ - RTK — rtk-ai/rtk (Apache-2.0)
111
+ - Headroom — headroomlabs-ai/headroom (Apache-2.0)
112
+ - Caveman — JuliusBrussee/caveman (MIT skill/CLI areas plus BSL-1.1 engine-linked runtime areas)
113
+
114
+ UES uses architectural ideas and external provider detection; it does not vendor upstream runtime code in this change.