Skip to main content
← Back to list
01Issue
FeatureOpenSwamp CLIPublic
AssigneesNone

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:

  1. 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.
  2. 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.
  3. Static-extraction rules. The listing is read from source text, not by running the module, so:
    • declare type: "..." literally;
    • declare globalArguments inline or as a const in 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).
  4. After pushing, read warnings.registry in the push result and confirm with swamp extension info <name> --json that contentMetadata.models is 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.

02Bog Flow
◉OPEN○TRIAGED○IN PROGRESS○SHIPPED

Open

10/29/2026, 6:16:41 PM

No activity in this phase yet.

03Sludge Pulse
Editable. Press Enter to edit.

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.