

Also from Kynth Studios


Also from Kynth Studios


Also from Kynth Studios
1# Plugins Boundary23This directory owns plugin discovery, manifest validation, loading, registry4assembly, and contract enforcement.56## Public Contracts78- Docs:9 - `docs/plugins/architecture.md`10 - `docs/plugins/manifest.md`11 - `docs/plugins/sdk-overview.md`12 - `docs/plugins/sdk-entrypoints.md`13- Definition files:14 - `src/plugins/types.ts`15 - `src/plugins/runtime/types.ts`16 - `src/plugins/contracts/registry.ts`17 - `src/plugins/public-surface-loader.ts`18 - `src/plugins/public-surface-runtime.ts`19 - `src/plugins/provider-public-artifacts.ts`20 - `src/plugins/web-provider-public-artifacts.ts`2122## Boundary Rules2324- Keep control-plane and runtime-plane concerns separate:25 discovery, manifest parsing, config validation, setup/onboarding hints, and26 activation planning belong to the control plane; actual plugin execution27 belongs to runtime resolution.28- Preserve manifest-first behavior: discovery, config validation, and setup29 should work from metadata before plugin runtime executes.30- Cache concept: gateway plugin metadata is stable while gateway runs. Reuse31 current snapshots, install records, discovery, lookup tables, and bounded32 process caches; avoid per-call stat/read/hash freshness. Plugin metadata33 changes require restart or explicit plugin owner reload/install/doctor flow.34 No broad persistent caches; lifecycle-owned facts only, test-clearable.35- Keep loader behavior aligned with the documented Plugin SDK and manifest36 contracts. Do not create private backdoors that bundled plugins can use but37 external plugins cannot.38- Preserve laziness in discovery and activation flows. Loader, registry, and39 public-artifact changes must not eagerly import bundled plugin runtime barrels40 when metadata, light exports, or typed contracts are sufficient.41- If a plugin exposes separate light and heavy runtime surfaces, keep discovery,42 inventory, and setup-state checks on the light path until actual execution43 needs the heavy module.44- If a loader or registry change affects plugin authors, update the public SDK,45 docs, and contract tests instead of relying on incidental internals.46- Prefer explicit activation planning from manifest/descriptor ownership over47 “load everything in this scope” behavior. Broad registry materialization48 should be the exception, not the design center.49- Do not normalize "plugin-owned" into "core-owned" by scattering direct reads50 of `plugins.entries.<id>.config` through unrelated core paths. Prefer generic51 helpers, plugin runtime hooks, manifest metadata, and explicit auto-enable52 wiring.53- When plugin-owned tools or provider fallbacks need core participation, keep54 the contract generic and honor plugin disablement plus SecretRef semantics.55- Keep contract loading and contract tests on the dedicated bundled registry56 path. Do not make contract validation depend on activating providers through57 unrelated production resolution flows.58- Prefer shared provider-family helpers over ad hoc policy in plugin registry59 hooks. If multiple providers need the same replay policy, tool compat, stream60 wrapper composition, or payload patch behavior, centralize that helper before61 adding another plugin-local lambda.62- Keep provider policy layers separated:63 auth/catalog/onboarding stay plugin-owned,64 transport/replay/tool compat families belong in shared helpers,65 registry/runtime code should compose those layers rather than re-encoding66 policy inline.67- When a provider hook grows a nested chain of wrapper composition or repeated68 compat flags, treat that as a regression signal. Extract the shared helper or69 composer instead of letting one more plugin carry a near-copy.70- Treat mutable global runtime registry state as compatibility scaffolding, not71 the desired source of truth for request-time execution. Prefer immutable or72 request-scoped handles when adding new runtime flows.73- If setup, discovery, or doctor flows need plugin runtime, make that need74 explicit and narrow. Do not let cold control-plane paths quietly import broad75 runtime surfaces.76- Resolver and public-surface loader tests must use generated tiny plugin77 fixtures for broad `api.js` / `runtime-api.js` fallback behavior. Do not point78 those tests at real bundled plugin source APIs just to prove path resolution.7980## Verification8182- If you touch loader, registry, activation, or public-artifact code that can83 change bundled plugin import fanout, run `pnpm build`.84- If the change can alter bundled plugin startup cost, re-profile the affected85 plugin entrypoint with:86 `OPENCLAW_LOCAL_CHECK=0 node scripts/profile-extension-memory.mjs --extension <id> --skip-combined --concurrency 1`87
One repository carrying more than one format is the comparison this product exists for: does anyone actually write different content in each file, or is one a copy of the other?
| Repository | Format | Stack | Covers | Score | Changed |
|---|---|---|---|---|---|
| openclaw/openclawtest/helpers/AGENTS.md · 386k | AGENTS.md | buildteststyle | 51/100 | 14 days ago | |
| openclaw/openclawscripts/AGENTS.md · 386k | AGENTS.md | teststylegitsecurity+1 | 83/100 | 14 days ago | |
| openclaw/openclawsrc/plugin-sdk/AGENTS.md · 386k | AGENTS.md | styledo-not | 67/100 | 14 days ago | |
| openclaw/openclawextensions/telegram/AGENTS.md · 386k | AGENTS.md | stylegitsecurityapi+1 | 59/100 | 14 days ago | |
| openclaw/openclawsrc/agents/tools/AGENTS.md · 386k | AGENTS.md | testperformanceagent-behaviour | 51/100 | 14 days ago | |
| openclaw/openclawsrc/agents/embedded-agent-runner/run/AGENTS.md · 386k | AGENTS.md | teststyleperformance | 47/100 | 14 days ago |
Same format, overlapping stack, ranked by quality.
| Repository | Format | Stack | Covers | Score | Changed |
|---|---|---|---|---|---|
| n8n-io/n8npackages/@n8n/agents/AGENTS.md · 200k | AGENTS.md | buildteststylearch+3 | 100/100 | 14 days ago | |
| aaif-goose/gooseAGENTS.md · 53k | AGENTS.md | setupbuildtestlint-format+7 | 100/100 | 8 days ago | |
| duckduckgo/content-scope-scriptsspecial-pages/AGENTS.md · 70 | AGENTS.md | buildteststylearch+3 | 100/100 | 14 days ago | |
| TryGhost/Ghoste2e/AGENTS.md · 55k | AGENTS.md | setupteststylearch+2 | 100/100 | 14 days ago | |
| elastic/elasticsearchx-pack/plugin/inference/AGENTS.md · 78k | AGENTS.md | buildtestlint-formatstyle+3 | 100/100 | 14 days ago | |
| wpscanteam/wpscanAGENTS.md · 9.7k | AGENTS.md | setupbuildteststyle+6 | 100/100 | 13 days ago | |
| bagisto/bagistoAGENTS.md · 28k | AGENTS.md | setupbuildteststyle+7 | 100/100 | 7 days ago | |
| code-yeongyu/oh-my-openagentpackages/web/AGENTS.md · 67k | AGENTS.md | setupbuildtestlint-format+6 | 100/100 | 13 days ago |
A badge carrying the measured quality of the strongest agent config file in this repository, out of 100. It reads from this index every time somebody loads your page, so it changes when the measurement changes and there is nothing to keep up to date. Free, no account, and the value is not something you or we can set by hand.
[](https://rulestack.kynth.studio/configs/openclaw-openclaw-src-plugins-agents)Would rather not hotlink us? Every badge is also served in shields.io’s endpoint schema, so shields renders the image and your readers never talk to our domain:
Published by Toolproof, the masthead over this index and eight others. The method behind the number is at toolproof.kynth.studio/methodology, and the whole thing is readable as JSON with no key at /api.