Skip to content

Two more author-facing sites still teach contributes.routes — a full worked manifest example in plugin-rest-api.zod.ts and the router delivered-form comments in metadata-plugin.zod.ts #11328

Description

@os-sam

Filed unassigned by the dev seat that landed the doc-correction half of #10726 (PR #11327). These two sites are outside that PR's dispatched file surface (which was fenced to exactly the four sites the 2026-08-22 ruling enumerated), but they carry the same defect and should land with the contributes.routes tombstone.

Why this is not already covered

The ruling says the key "is tombstoned with #10724". #10724's own body explicitly excludes it, verbatim:

Deliberately not in this card:contributes.routes (line 419) is an enforce-or-remove fork, not a mechanical removal — filed separately. contributes.kinds (line 327) survives; it has a reader.

So neither #10724 nor the four sites the ruling enumerated reach these two. Worth a PM look on its own: the tombstone half of #10726 currently has no card that owns it.

The two sites (on main @ b9e9227e3)

1. packages/spec/src/api/plugin-rest-api.zod.ts:31-63 — a full worked manifest example

A TSDoc @example Plugin Manifest block containing a complete, copy-pasteable contributes.routes manifest with three route entries:

 * @example Plugin Manifest
* {
* "name": "rest_api",
* "contributes": {
* "routes": [
* { "prefix": "/api/v1/discovery", "service": "metadata", "methods": ["getDiscovery"], … },
* { "prefix": "/api/v1/meta", "service": "metadata", … },
* { "prefix": "/api/v1/data", "service": "data", … }
* ]
* }
* }

This is arguably the highest-risk of all the contributes.routes sites for the AI-authoring axis: it is not a one-line recommendation but a complete artifact an author (human or AI) can lift wholesale, and every route in it serves nothing.

2. packages/spec/src/kernel/metadata-plugin.zod.ts:119 and :125router delivered-form comments

Both credit contributes.routes as a delivered form, mirroring the ADR-0088 row that PR #11327 just corrected:

  • :119// code contributions: plugin \contributes.routes` + declarative `apis:``
  • :125// as a KIND because its delivered forms (\contributes.routes`, imperative`

Leaving these is the ADR-0088 row's defect one layer down: the ADR now says one thing and the schema comment it was derived from says the old thing.

Suggested handling

Correct both to the imperative http.server mount, the same redirect PR #11327 applied to the four ruled sites — ideally in the tombstone PR, so the key and everything teaching it go together. Verified live on main: http.server is registered at packages/plugins/plugin-hono-server/src/hono-plugin.ts:271 and mounted by real consumers, e.g. examples/app-showcase/src/system/server/recalc-endpoint.ts:52.

Note site 1 sits in packages/spec/src/api/, not in the plugin-manifest zod, so correcting it does not by itself touch the key.


Generated by Claude Code

Blocked-by: #10726


Generated by Claude Code

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions