nocobase-app-plugin-skills-example · git:20260831.1b5f10f · 2026-08-31 · sha256 d811e8c9356d0ca5
nocobase-app-plugin-skills-example git:20260831.1b5f10fA
Immutable. This exact content never changes and is served at /api/v1/blob/d811e8c9356d0ca5.
--- name: nocobase-app-plugin-skills-example description: Use the Skills Example plugin to add its App Notice component, read its authenticated default Notice API, or consume its Server ServiceToken in a NocoBase App. metadata: short-description: Integrate the Skills Example App Notice --- # Skills Example App Plugin Use this Skill when the user wants to add the plugin-provided App Notice to an application page, read its default Notice over HTTP, or consume the same Notice through a Server ServiceToken. Do not use it to modify this plugin's source. ## Public surfaces - Client component: `AppNotice` and `AppNoticeProps` from `@nocobase/app-plugin-skills-example/client/components/app-notice`. - Server contract: `appNoticeServiceToken`, `AppNoticeService`, and `AppNoticeData` from `@nocobase/app-plugin-skills-example/server/tokens`. - HTTP API: `GET /api/skills-example/notice`. The API requires an authenticated application session. It intentionally has no additional business authorization check because the fixed example Notice is non-sensitive. Reassess that decision before changing the response to include private or user-specific data. ## Add the Notice to an App page 1. Confirm the plugin is registered and `plugin:inspect skills-example --json` reports consistent Server and Skill state. 2. Import `AppNotice` from its public component export in an App-owned page or component. 3. Either pass App-owned typed content directly or use the App's authenticated client to request `GET /api/skills-example/notice`. 4. Render the returned `title`, `description`, and `tone` through `AppNotice`. 5. Add an App behavior test, then run the App typecheck and build. Do not create a Client plugin registration just to import this component. The package provides a reusable component export, but no Client runtime contribution. ## Consume the Server contract Import `appNoticeServiceToken` from the public Server Token export and resolve it from the shared application container. Do not construct the default Service implementation or recreate a Token with the same name. ## Ownership and constraints - The plugin owns the component, Token, Service, Route, and fixed default data. - The App owns page placement, loading and error UI, and any App-specific content passed through component props. - Import only the documented package exports; do not use plugin source paths or private implementation classes. - The plugin does not persist Notices and does not provide a Settings page. - The source Skill under the plugin's `skills/` directory is authoritative. The App copy under `.agents/skills/` is synchronized output and must not be edited directly. ## Verification - An anonymous API request returns `401`. - An authenticated API request returns the Notice payload with `title`, `description`, and `tone`. - The target App renders the visible Notice through the public component. - `plugin:inspect skills-example --json` reports `consistent: true` with no issues. - The target App passes its relevant tests, typecheck, and build.