The platform models contract contributions as published npm packages and rejects an unscoped packageId at composition time. Use @tech-log/studio-contract, the name a real publish would carry. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>