Summary
Add namespace scoping to pack names using @scope/pack-name format (similar to npm's scoped packages) to prevent name collisions as the registry grows.
Motivation
The registry currently uses a flat namespace. As more packs are published, name collisions become likely (e.g., multiple teams wanting a pack called python or docker). Scoping prevents this and also provides a trust signal — @anthropic/claude-tools carries more weight than just claude-tools.
Design considerations
- The
@ prefix is already used for registry installs (weave install @webdev), so the syntax would need to distinguish between @pack-name (unscoped registry) and @scope/pack-name (scoped)
- Alternative: use
weave install webdev for unscoped and weave install @myteam/webdev for scoped
- Scopes could map to GitHub organizations for verification
- This should be designed before the registry has many consumers, as it's a protocol-level change
Impact
This is a breaking change to the registry protocol if added later. Better to design the namespace format now, even if scopes are optional initially.
Summary
Add namespace scoping to pack names using
@scope/pack-nameformat (similar to npm's scoped packages) to prevent name collisions as the registry grows.Motivation
The registry currently uses a flat namespace. As more packs are published, name collisions become likely (e.g., multiple teams wanting a pack called
pythonordocker). Scoping prevents this and also provides a trust signal —@anthropic/claude-toolscarries more weight than justclaude-tools.Design considerations
@prefix is already used for registry installs (weave install @webdev), so the syntax would need to distinguish between@pack-name(unscoped registry) and@scope/pack-name(scoped)weave install webdevfor unscoped andweave install @myteam/webdevfor scopedImpact
This is a breaking change to the registry protocol if added later. Better to design the namespace format now, even if scopes are optional initially.