docs(plugin): refocus the certification page on developer decisions

Rewrite plugin/certified-plugins in all three locales around the
questions a plugin developer actually asks, and make it the single home
for certification: what it is, why it exists, when it is needed, what
changes after approval, and what the contract requires.

- Decision framing restored, including a needs/does-not-need table and
  the explicit statement that most plugins do not need certification.
- Full manifest example, accepted values for both declaration fields and
  the SDK version that recognises them.
- Constraints kept and tightened: stateless rules, allowed/forbidden
  table, anti-patterns with correct/incorrect snippets, Runner notes,
  self-check list.
- Submission flow moved onto this page so it no longer depends on the
  publishing page.
- Operator content that duplicates the Core architecture document
  removed (Cloud admission matrix, OSS issuer keys, certificate fields,
  internal review tiers).

publish/market is now publishing-only with a one-line pointer, and its
misplaced plugin_submission screenshot moves back under the upload
section where it belongs. dev/basic-info replaces the commented-out
manifest fields with a link to the contract page.

ja had been missing whole sections (36 lines); all three locales now
share the same section structure.
This commit is contained in:
Hyu
2026-09-29 14:40:58 +08:00
parent aab1e66ac1
commit 85fb49c687
9 changed files with 499 additions and 107 deletions
+2 -3
View File
@@ -28,11 +28,10 @@ execution:
python:
path: main.py # Do not modify
attr: HelloPlugin # Do not modify
# Add only after migrating to the stateless singleton certification contract:
# sharedRuntime: shared-runtime-v1
# componentModel: stateless-v1
```
To certify your plugin and let several installations share one runtime, also declare `sharedRuntime` and `componentModel` under `execution`; see [Certified plugins and shared runtime](/en/plugin/certified-plugins).
Plugin multilingual support follows the [RFC 4646](https://datatracker.ietf.org/doc/html/rfc4646) standard. Currently supported languages include:
- `en_US` English (required)
+2 -8
View File
@@ -78,14 +78,8 @@ Plugin built successfully: dist/tmp/RockChinQ-HelloPlugin-0.1.0.lbpkg
You can now check your plugin submission task at [LangBot Plugin Marketplace](https://space.langbot.app/market). Please wait for approval, after which you can view your plugin in the marketplace.
## Request Certified Plugin review
If your release is designed for certification, declare both `execution.sharedRuntime: shared-runtime-v1` and `execution.componentModel: stateless-v1` in `manifest.yaml`, then submit a **new version**. The advisory review verifies singleton components are stateless, re-entrant, read config per invocation and retain no tenant data. The declaration alone grants no badge or runtime privilege.
LangBot Space checks the exact submitted package, runs an advisory code review, and requires a human approval before a Certified Plugin badge can be issued. Certification is bound to the reviewed package version and checksum. Keep workspace configuration, storage, credentials, logs, and background work scoped to the active installation. Do not rely on mutable process-global state.
If the review finds that the release cannot meet these requirements, submit an unsigned normal dedicated plugin and address the findings in a later immutable version. There is no dedicated certification or intermediate certification tier. See [Certified Plugins](/en/plugin/certified-plugins) for user-visible behavior.
<img width="600" src="/images/zh/plugin/dev/plugin_submission.png" />
Publishing does not involve certification: plugins run in dedicated mode by default. If this release should also be certified, see [Certified plugins and shared runtime](/en/plugin/certified-plugins).
If you have any questions, you can send an email to `[email protected]` or contact us through [Community](/en/insight/community).