specs-27-migration

Migrates Lens Studio projects from deprecated Spectacles 2024 APIs to SPECS 27 replacements.

16|2|Updated Apr 13, 2026
One-click install
npx skills add https://github.com/lens-studio-devs/ls-extensions --skill specs-27-migration-lens-studio-devs
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: specs-27-migration
Source: https://github.com/lens-studio-devs/ls-extensions/tree/main/plugins/ls-clad/skills/specs-27-migration
Command: npx skills add https://github.com/lens-studio-devs/ls-extensions --skill specs-27-migration-lens-studio-devs

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) and references (resource) and assets (resource) components.

What problem does it solve? Lens projects built for Spectacles (2024) rely on deprecated APIs like RemoteServiceModule, VoiceML, and native Leaderboard that no longer work on SPECS 27, and manually porting JavaScript/TypeScript code across eight different API areas is error-prone and time-consuming. ## Core Features & Use Cases - End-to-end project upgrade: Runs the Lens Studio CLI project-update flow, updates all Asset Library packages via pull-update, and stabilizes the TypeScript compile before touching API code. - Eight migration areas: Covers WebView/HTTP (RemoteServiceModule to InternetModule), Remote Media, Camera, Depth, Motion Controller, SyncKit StorageProperty generics, Leaderboard (to Supabase/Snap Cloud), and VoiceML-to-ASR speech transcription. - Runtime validation: Launches the Lens in the SPECS 27 preview simulation, detects orphaned @input fields and outdated package prefabs, and iterates until the preview runs clean. - Use Case: A developer opens a 2024-era Lens that uses VoiceML voice commands and a native leaderboard, invokes the skill, and receives a migrated project with ASR transcription, a Supabase-backed leaderboard, and a verified clean compile and preview run. ## Quick Start Migrate my Lens project in this directory from Spectacles 2024 APIs to SPECS 27 and validate it in the preview.

Frequently Asked Questions about specs-27-migration

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I migrate a Spectacles 2024 Lens to SPECS 27?

Run the migration skill against the project directory. It upgrades the .esproj via the Lens Studio CLI project-update command, pull-updates all Asset Library packages, scans for deprecated API usage, applies per-area code migrations, and validates the result with a final TypeScript compile and preview run.

How to replace RemoteServiceModule in Lens Studio SPECS 27?

RemoteServiceModule swaps directly to InternetModule with identical method signatures for fetch, WebSocket, WebView, and HTTP calls. The exception is createAPIWebSocket, which stays on RemoteServiceModule for Snap authorized remote services.

Can VoiceML voice commands be migrated to ASR on SPECS 27?

Free-form transcription migrates to the LensStudio:AsrModule, but voice-command flows using NlpKeywordModelOptions, NlpIntentsModelOptions, or enableSystemCommands cannot. ASR lacks keyterm biasing, so the skill removes voice-command code and warns that those commands no longer work.

Why does my Lens crash with 'Input was not provided for the object' after migration?

This runtime error comes from orphaned @input declarations left behind after type swaps, typically an unused @input remoteServiceModule alongside a require() of InternetModule. The TypeScript compiler does not flag it; the fix is deleting the orphaned @input line.

Does the SPECS 27 migration support the native Leaderboard module?

The native LeaderboardModule is replaced with a Supabase/Snap Cloud-backed global leaderboard using submit_score and get_top_scores RPCs. Friends-only leaderboards and automatic score reset intervals have no equivalent and are flagged to the user.

What is out of scope for the Spectacles to SPECS 27 migration?

SnapML quantization, BBG/SPK repackaging, and Smartgate API changes require separate investigation. The migration also requires restarting the editor after the project upgrade so the Lens Studio MCP server connection is available.