affordances: officer/core and officerdev/<plugin> are both right

The path takes `publisher` from the manifest verbatim, so a plugin published
by officerdev lands under officerdev/. `officer/core` is not a plugin at all —
it is the platform's own, shipped by the setup script from the capabilities
repository.

Two spellings marking two different things: platform versus publisher. Arrived
at by accident and kept on purpose. Recorded because the obvious tidy-up
removes the distinction rather than the inconsistency.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-19 08:24:57 +00:00
co-authored by Claude Opus 5
parent 8fe1b1824b
commit 51afa40a19
2 changed files with 9 additions and 5 deletions
+5 -4
View File
@@ -326,10 +326,11 @@ Still to build:
- **The other categories.** A plugin can contribute affordances and nothing else. Skills, tools, tasks
and processes are the obvious next ones and were deliberately left out — one mechanism, proven, before
five. When they land, `publishAffordances` generalises rather than gaining siblings.
- **The path uses `publisher` verbatim**, so gitea's is `officerdev/gitea` while the platform's own is
`officer/core`. Consistent with `mountPrefix`, which is the only thing allowed to branch on provenance,
but it does mean `officer` and `officerdev` both appear in the tree. Rename `core` to `officerdev/core`
or normalise first-party to `officer` — either is fine, neither is done.
- **`officer/core` and `officerdev/<plugin>` are both correct — do not normalise them.** The path uses
`publisher` verbatim, so a plugin published by officerdev lands under `officerdev/`. `officer/core` is
not a plugin at all: it is the PLATFORM's own, shipped by the setup script from the capabilities
repository. Two spellings marking two different things, arrived at by accident and kept on purpose.
Anyone tidying this into one name is removing the distinction, not the inconsistency.
Open, and deliberately deferred:
+4 -1
View File
@@ -112,7 +112,10 @@ capabilities/affordances/
gitea.md
```
`<publisher>/<plugin>`, with `core` occupying the plugin slot for the platform's own. A plugin ships an
`<publisher>/<plugin>`, taken from the manifest verbatim — so a plugin published by `officerdev` lands
under `officerdev/`. `officer/core` is not a plugin: it is the platform's own, shipped by the setup
script from the capabilities repository. The two spellings mark two different things and should not be
normalised into one. A plugin ships an
`affordances/` directory in its repository; installing copies it in, uninstalling removes it — the same
shape as `assets/` and `publishAssets`.