Example plugin provided
Why it matters
A plugin authoring guide without a working example leaves developers with no reference implementation to validate their understanding. ISO 25010 maintainability.analysability requires that the system behavior be understandable; a worked example is the fastest path from zero to a functioning plugin. Without one, developers commonly misconfigure lifecycle methods, miss required manifest fields, or wire hooks incorrectly — producing broken plugins that erode trust in the system, not in their implementation.
Severity rationale
Low because the absence of a working example plugin forces every plugin author to start from first principles, increasing the error rate on first-time implementations and slowing ecosystem growth.
Remediation
Create a minimal but complete example plugin in examples/hello-world-plugin/ or src/plugins/example/. The example must be runnable, not just a stub.
// examples/hello-world-plugin/src/index.ts
export default {
name: 'hello-world',
version: '1.0.0',
async init(context) { context.logger.info('hello-world: initialized'); },
async activate() { context.hooks.on('before:request', (ctx) => {
context.logger.info(`Request to ${ctx.request.url}`);
}); },
async deactivate() {},
async destroy() {}
};
DetectionPro
The detection method for this pattern is part of AuditBuffet Pro.
The full method (what to look for, pass and fail conditions, and how results get reported) ships inside the Plugin / Extension Architecture Audit. The pattern definition, severity rationale, and remediation remain openly licensed under CC-BY-4.0.
External references
- iso-25010:2011 · maintainability.analysability — Analysability — a reference example reduces time-to-understand for new plugin authors
Taxons
History
- 2026-04-18·v1.0.0·Initial import from plugin-extension-architecture·automated