From b27b025f931ee31f78554c56a59839fb71b50b22 Mon Sep 17 00:00:00 2001 From: Noah Date: Wed, 5 Aug 2026 14:34:47 +0200 Subject: [PATCH 1/2] =?UTF-8?q?docs:=20short=20descriptions=20say=20what?= =?UTF-8?q?=20the=20tool=20does=20=E2=80=94=20reports=20candidates?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit npm/registry/plugin descriptions and the README lead claimed "verifies (WCAG 2.2.2/2.3.3)". After the Weg-0 rollout the honest verb is "reports": WCAG 2.2.2 pause-path candidates, with the reduced-motion guard named as what it is (2.3.3, Level AAA best practice). motion_catalog no longer tells keyless MCP users to call motion_compile (not in the free tier; this mirrors the Glama tool-list confusion). Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_0149NhkePB1zzszxUyG1L5vW --- .claude-plugin/plugin.json | 2 +- README.md | 4 ++-- llms.txt | 2 +- package.json | 2 +- server.json | 2 +- src/mcp/register-tools.js | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.claude-plugin/plugin.json b/.claude-plugin/plugin.json index b5ddf24..08832d2 100644 --- a/.claude-plugin/plugin.json +++ b/.claude-plugin/plugin.json @@ -1,6 +1,6 @@ { "name": "motionspec", - "description": "Verified web motion for AI-built sites: write a MotionSpec JSON spec, validate it against a strict schema, and compile deterministic GSAP/CSS with reduced-motion support and performance budgets enforced by construction (WCAG 2.2.2/2.3.3). Includes a motion-accessibility audit for any URL.", + "description": "Verified web motion for AI-built sites: write a MotionSpec JSON spec, validate it against a strict schema, and compile deterministic GSAP/CSS with reduced-motion support and performance budgets enforced by construction. Reports WCAG 2.2.2 pause-path candidates (reduced-motion guard = 2.3.3, AAA). Includes a motion-accessibility audit for any URL.", "version": "1.2.6", "author": { "name": "Kevin Fröba", diff --git a/README.md b/README.md index caea028..a760592 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ ![MCP Registry](https://img.shields.io/badge/MCP%20Registry-io.github.MasterPlayspots%2Fmotionspec-6f42c1) [![smithery badge](https://smithery.ai/badge/kevin-froeba/motionspec)](https://smithery.ai/servers/kevin-froeba/motionspec) -**MotionSpec is an open-core trust layer that verifies and compiles reduced-motion-safe, on-budget UI animation for AI-generated web apps.** An LLM authors a **schema-validated JSON spec**; a **deterministic compiler** emits vanilla-GSAP JavaScript + CSS — injection-proof and catalog-validated *by construction*, with an enforced `prefers-reduced-motion` fallback and a performance budget, checked against WCAG 2.2.2 (Pause, Stop, Hide) and WCAG 2.3.3 (Animation from Interactions). +**MotionSpec is an open-core trust layer that checks and compiles reduced-motion-safe, on-budget UI animation for AI-generated web apps.** An LLM authors a **schema-validated JSON spec**; a **deterministic compiler** emits vanilla-GSAP JavaScript + CSS — injection-proof and catalog-validated *by construction*, with an enforced `prefers-reduced-motion` fallback and a performance budget, with WCAG 2.2.2 (Pause, Stop, Hide) pause-path candidates reported — reduced-motion guards map to WCAG 2.3.3 (Animation from Interactions), Level AAA. Run it two ways: as a keyless **MCP server** any LLM host can call (`npx motionspec`), or as a **CLI compiler** in your build (`motion compile spec.json`). Either way you keep plain files — a GSAP build or a dependency-free WAAPI/CSS lowering. MIT core. Docs: https://motionspec.dev @@ -32,7 +32,7 @@ request ──> Routing (small model, Stage A) ──> MotionSpec (JSON) ### Not to be confused with -> **Not to be confused with:** the Android Material Components `MotionSpec` class, the iOS material-motion `MotionSpec`, Motion.dev / Framer Motion, the usemotion.com calendar app, the Motion Specialties mobility brand, or text-to-video generators (Runway/Sora/Kling/Viggle). MotionSpec verifies the *UI animation inside web apps* — it does not generate video. +> **Not to be confused with:** the Android Material Components `MotionSpec` class, the iOS material-motion `MotionSpec`, Motion.dev / Framer Motion, the usemotion.com calendar app, the Motion Specialties mobility brand, or text-to-video generators (Runway/Sora/Kling/Viggle). MotionSpec checks the *UI animation inside web apps* — it does not generate video. ## 60-second start diff --git a/llms.txt b/llms.txt index 021d8c6..7a18c7a 100644 --- a/llms.txt +++ b/llms.txt @@ -1,6 +1,6 @@ # motionspec (npm package / GitHub repo) -> MotionSpec is an open-core trust layer that verifies and compiles reduced-motion-safe, on-budget UI animation for AI-generated web apps. It is NOT the Android Material Components MotionSpec class, NOT the iOS material-motion MotionSpec, NOT Motion.dev / Framer Motion, NOT the usemotion.com calendar app, and NOT a text-to-video generator. +> MotionSpec is an open-core trust layer that checks and compiles reduced-motion-safe, on-budget UI animation for AI-generated web apps. It is NOT the Android Material Components MotionSpec class, NOT the iOS material-motion MotionSpec, NOT Motion.dev / Framer Motion, NOT the usemotion.com calendar app, and NOT a text-to-video generator. - Docs & product: https://motionspec.dev (full content: https://motionspec.dev/llms-full.txt) - MCP setup: https://motionspec.dev/docs — keyless remote: https://api.motionspec.dev/mcp (motion_catalog, motion_validate); local: `npx motionspec` (stdio) diff --git a/package.json b/package.json index b375aa2..0269843 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "motionspec", "version": "1.2.6", "mcpName": "io.github.MasterPlayspots/motionspec", - "description": "Open-core trust layer for web motion: verifies and compiles reduced-motion-safe, on-budget UI animation for AI-generated web apps (WCAG 2.2.2/2.3.3). Deterministic compiler + MCP server.", + "description": "Open-core motion layer for the web: deterministic compiler + MCP server. Validates motion specs fail-closed, reports WCAG 2.2.2 pause-path candidates, and flags missing reduced-motion guards (2.3.3, an AAA best practice).", "license": "MIT", "author": "Kevin Fröba ", "keywords": [ diff --git a/server.json b/server.json index d6c11b3..a5c2a12 100644 --- a/server.json +++ b/server.json @@ -2,7 +2,7 @@ "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json", "name": "io.github.MasterPlayspots/motionspec", "title": "MotionSpec — verified web motion (reduced-motion / WCAG)", - "description": "Verifies web animation vs WCAG 2.2.2/2.3.3: validated specs, deterministic reduced-motion-safe CSS.", + "description": "Deterministic motion compiler + validator: reports WCAG 2.2.2 pause-path candidates, fail-closed.", "repository": { "url": "https://github.com/MasterPlayspots/motionspec", "source": "github" diff --git a/src/mcp/register-tools.js b/src/mcp/register-tools.js index 7aa935d..fd0ecf8 100644 --- a/src/mcp/register-tools.js +++ b/src/mcp/register-tools.js @@ -51,7 +51,7 @@ function registerMotionspecTools(server, deps) { { title: "MotionSpec catalog & authoring rules", description: - "Returns the catalog of verified motion primitives (names, purpose, parameter schemas, defaults) plus the authoring rules for writing a MotionSpec. Call this FIRST, then write the spec yourself and pass it to motion_compile.", + "Returns the catalog of verified motion primitives (names, purpose, parameter schemas, defaults) plus the authoring rules for writing a MotionSpec. Call this FIRST, then write the spec yourself and validate it with motion_validate (motion_compile runs in the CLI or with a key on the hosted endpoint).", inputSchema: {}, annotations: { readOnlyHint: true, openWorldHint: false }, }, From 404b510ae70278c842e9be33d024d5f0f04a0a17 Mon Sep 17 00:00:00 2001 From: Noah Date: Wed, 5 Aug 2026 14:34:48 +0200 Subject: [PATCH 2/2] chore(release): 1.2.7 Ships the Weg-0 validator fixes (warnings surfaced, MS-GLOBALS-RRM-TYPE, MS-PARAM-EASE), the hono 4.13.0 lockfile bump (GHSA-8j4g-w8fx-2239) and the corrected short descriptions to npm and the MCP registry. Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_0149NhkePB1zzszxUyG1L5vW --- .claude-plugin/plugin.json | 2 +- README.md | 2 +- package-lock.json | 4 ++-- package.json | 2 +- server.json | 4 ++-- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.claude-plugin/plugin.json b/.claude-plugin/plugin.json index 08832d2..0703e40 100644 --- a/.claude-plugin/plugin.json +++ b/.claude-plugin/plugin.json @@ -1,7 +1,7 @@ { "name": "motionspec", "description": "Verified web motion for AI-built sites: write a MotionSpec JSON spec, validate it against a strict schema, and compile deterministic GSAP/CSS with reduced-motion support and performance budgets enforced by construction. Reports WCAG 2.2.2 pause-path candidates (reduced-motion guard = 2.3.3, AAA). Includes a motion-accessibility audit for any URL.", - "version": "1.2.6", + "version": "1.2.7", "author": { "name": "Kevin Fröba", "email": "security@motionspec.dev", diff --git a/README.md b/README.md index a760592..262e4c4 100644 --- a/README.md +++ b/README.md @@ -59,7 +59,7 @@ This repo is also a Claude Code plugin: it bundles the MCP server (`npx motionsp | | | |---|---| -| Version | **v1.2.6** · schema frozen at spec v1 (ADR-0001, signed) | +| Version | **v1.2.7** · schema frozen at spec v1 (ADR-0001, signed) | | Published | **npm `motionspec`** (82 kB packed, 67 files, nothing dev-only ships) · MCP Registry | | Tests | **295 green** — injection attacks, 6000-spec fuzz, golden determinism, schema parity, pause-controls, motion-a11y audit · CI on Node 18/20/22 + x86 Playwright e2e | | Catalog | **40 primitives**, every one device-verified, reduced-motion-fallback mandatory; the 18 continuous loops also carry a WCAG-2.2.2 pause path | diff --git a/package-lock.json b/package-lock.json index 0888285..e022100 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "motionspec", - "version": "1.2.6", + "version": "1.2.7", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "motionspec", - "version": "1.2.6", + "version": "1.2.7", "license": "MIT", "dependencies": { "@modelcontextprotocol/sdk": "1.30.0", diff --git a/package.json b/package.json index 0269843..abd7f63 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "motionspec", - "version": "1.2.6", + "version": "1.2.7", "mcpName": "io.github.MasterPlayspots/motionspec", "description": "Open-core motion layer for the web: deterministic compiler + MCP server. Validates motion specs fail-closed, reports WCAG 2.2.2 pause-path candidates, and flags missing reduced-motion guards (2.3.3, an AAA best practice).", "license": "MIT", diff --git a/server.json b/server.json index a5c2a12..a30795f 100644 --- a/server.json +++ b/server.json @@ -8,13 +8,13 @@ "source": "github" }, "websiteUrl": "https://motionspec.dev", - "version": "1.2.6", + "version": "1.2.7", "packages": [ { "registryType": "npm", "registryBaseUrl": "https://registry.npmjs.org", "identifier": "motionspec", - "version": "1.2.6", + "version": "1.2.7", "runtimeHint": "npx", "transport": { "type": "stdio"