Files
example/manifest.ts
T
pastilhasandClaude Opus 5 176fb19950 example, extracted from the platform into its own repository
The reference plugin — deliberately the smallest thing that is still a real
plugin, and what EXTRACTING-A-PLUGIN.md sends people to read.

It leaves the platform tree with music and offscale, so that `plugins/` in the
platform repository holds documentation and nothing else. That is the point of
the move: a directory that contains both tracked source and untracked installs
is one where "is this mine or is this installed" has no answer you can see.

Same extraction as the two before it: source only, no history. The platform's
history still holds every commit that shaped this.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-15 18:17:03 +00:00

36 lines
1.3 KiB
TypeScript

import type { PluginManifest } from '@@/plugins/manifest';
// The reference plugin. Not a fixture — this is what a plugin author reads first, and it is deliberately
// the smallest thing that is still a real one: a manifest and one route.
//
// Everything structural is convention, so this directory IS the documentation:
//
// manifest.ts you are here — only what a directory listing cannot say
// api/router.ts exports `router`; mounted at /api/example
// db/schema.ts tables, if it had any (every name prefixed `example_`)
// sidecar/index.ts a process, if it needed one (.mjs instead means node)
// web/Router.tsx a frontend, if it had one
//
// `appName` is not declared anywhere: it is the directory name, so the id cannot disagree with where the
// code sits.
export const manifest: PluginManifest = {
publisher: 'officerdev',
version: '1.0.0',
platform: '>=1.0.0',
label: 'Example',
summary: 'The reference plugin — one route, nothing else',
icon: 'Puzzle',
color: '#94a3b8',
// One permission gating the whole surface. `ownerOnly: false` means a role can be granted it — which is
// the interesting case, because it is the one the permission gate actually has to resolve.
permissions: [
{
key: 'example',
label: 'Example',
description: 'The reference plugin',
},
],
};