Relationships
#4131 Skill/docs: document registry listing limits, static-extraction rules, and splitting large APIs by domain
Opened by keeb · 10/29/2026
Problem
The swamp skill's extension guidance (references/extension/, references/extension-publish/, references/extension/references/quality/rubric.md) never mentions the registry's listing limits or that the listing is read statically from source. An agent following the skill to wrap a large API will produce a single extension that publishes with a blank page. That is what happened with @keeb/ashby (57 models > 50); see the companion bug and the listing-limits check request.
The only related hint is one line in the extension guide ("Method lists are read from source at push time and can be incomplete (… methods merged in by spread)"). That doesn't say what to do about it, and doesn't mention the limits at all.
Proposal
Add a short section to the extension and publishing guides covering:
- The limits, with the consequence spelled out. More than 50 models per extension, 50 methods per model, or 30 arguments per method or model makes the registry discard the whole listing, and the extension page shows nothing.
- Split by domain when you would exceed them. For large APIs, publish several extensions, one manifest each, named
@collective/<vendor>/<domain>(as@swamp/vercel/*and@swamp/aws/*do), each with its own_lib, README and LICENSE. Include a worked layout example and plan the split before generating code. - Static-extraction rules. The listing is read from source text, not by running the module, so:
- declare
type: "..."literally; - declare
globalArgumentsinline or as aconstin the same file (an imported schema lists no arguments); - write
methods: { ... }literally (spread-in methods list as nothing); - give each description as a single string literal (only the first literal of a concatenation is read; 500-character cap).
- declare
- After pushing, read
warnings.registryin the push result and confirm withswamp extension info <name> --jsonthatcontentMetadata.modelsis populated.
A matching line in the adversarial-review "published-surface" or "api-contracts" dimension ("does the listing fit the registry limits?") would catch it at review time too.
Alternatives
Rely on a CLI check alone (companion request). Worth doing, but the skill should steer the design up front, because by the time a check fires the generator and package layout are already built around one extension.
Open
No activity in this phase yet.
system commented 10/29/2026, 6:16:41 PM
Classified automatically when this issue was filed.
- Source: Swamp Club
If you feel this classification is incorrect, add a ripple to tell us so.
keeb commented 10/29/2026, 6:16:47 PM
Related: #4129 (the blank-page bug) and #4130 (CLI check that enforces what this documents).
Sign in to post a ripple.