19. Subscription and licensing
Same commercial model as Project Board (see its licensing.md).
Same commercial model as Project Board (see its licensing.md).
| ID | Requirement | P | Type | Ver. | M |
|---|---|---|---|---|---|
| LIC-1 | The extension shall be sold under the SoftForge subscription model. Proprietary licence; product “UI Designer” on the Soft Forge Payments server, key prefix UD; plans Pro, Pro yearly and Team in plans.json. |
Must | constraint | inspection | 1.0 |
| LIC-2 | A trial, a Free plan and paid plans shall gate editing. 30-minute trial with everything. Free: open, view, inspect, comment, export images and tokens, every read tool and read command of ud and ud mcp (including get_design_context, get_screenshot and ud render). Paid: editing (UI and CLI mutations, which gates ud mcp and the language model tools exactly as it gates ud), code generation into the workspace (DEV-3), AI features, library publishing. “AI features” means the AI panel (AI-4) and the quick actions (AI-10) only; an external agent using ud or ud mcp is gated by the mutation rule, nothing else. |
Must | functional | test | 1.0 |
| LIC-3 | Users shall sign in through the platform or paste a licence key. Browser sign-in with a matching code and machine-bound session keys, or a pasted key; the vendored licensing client. | Must | functional | test | 1.0 |
| LIC-4 | Licensing shall work offline within a grace period. Offline signature checks; a server call about once a day. | Must | functional | test | 1.0 |
| LIC-5 | Reading shall never be gated. Opening, viewing, rendering, exporting and saving an edit already made always work, and so do all read tools of ud, ud mcp and the language model tools (get_metadata, get_screenshot, get_design_context, get_variable_defs, search_design_system, get_libraries, whoami, ud tree/inspect/render/system); a refused CLI or MCP mutation exits with code 4 (or isError with the code, CMD-30) and a message saying how to unlock it. |
Must | functional | test | 1.0 |
| LIC-6 | The subscription shall be visible and manageable. Settings section, status bar item, and commands: sign in, sign out, plans, manage, activate, refresh, deactivate. | Must | functional | demonstration | 1.0 |
| LIC-7 | The licence gate shall exist from the first release. A licence-provider interface in the core with an “always paid” stub implementation at 0.1; the command registry checks the provider before every command flagged mutates (one gate, no second check in the UI or CLI); exit code 4 and whoami’s plans and seat are wired to the provider. The real provider (LIC-1, LIC-3, LIC-4) replaces the stub at 1.0 without touching the gate. |
Must | constraint | test | 0.1 |