@polymorphism-tech/morph-spec 8.28.0 → 8.29.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/README.md +2 -2
  2. package/claude-plugin.json +1 -1
  3. package/docs/CHEATSHEET.md +1 -1
  4. package/docs/QUICKSTART.md +1 -1
  5. package/framework/agents.json +14 -3
  6. package/framework/commands/create-umbraco-lp.md +1 -1
  7. package/framework/mcp/registry.json +59 -8
  8. package/framework/skills/core/create-umbraco-lp/SKILL.md +13 -2
  9. package/framework/skills/core/create-umbraco-lp/references/umbraco-lp-patterns.md +598 -0
  10. package/framework/skills/core/migrate-lp-to-umbraco/SKILL.md +92 -7
  11. package/framework/skills/core/morph-apply/SKILL.md +1 -1
  12. package/framework/skills/core/morph-brainstorming/SKILL.md +1 -1
  13. package/framework/skills/core/morph-eval/SKILL.md +1 -1
  14. package/framework/skills/core/morph-hotfix/SKILL.md +1 -1
  15. package/framework/skills/core/morph-implement/SKILL.md +1 -1
  16. package/framework/skills/core/morph-plan/SKILL.md +1 -1
  17. package/framework/skills/core/morph-proposal/SKILL.md +1 -1
  18. package/framework/skills/core/morph-review/SKILL.md +1 -1
  19. package/framework/skills/core/morph-stack-scan/SKILL.md +1 -1
  20. package/framework/skills/core/morph-standards/SKILL.md +1 -1
  21. package/framework/skills/core/morph-uiux/SKILL.md +1 -1
  22. package/framework/standards/PROVENANCE.json +41 -0
  23. package/framework/standards/STANDARDS.json +218 -7
  24. package/framework/standards/frontend/design-system/ai-image-generation.md +43 -0
  25. package/framework/standards/frontend/design-system/ai-video-generation.md +113 -0
  26. package/framework/standards/frontend/design-system/premium-finish.md +160 -0
  27. package/framework/standards/frontend/gsap/gsap-core.md +1 -1
  28. package/framework/standards/frontend/gsap/gsap-plugins.md +1 -1
  29. package/framework/standards/frontend/gsap/gsap-scrolltrigger.md +3 -1
  30. package/framework/standards/frontend/nextjs/motion-patterns.md +3 -1
  31. package/framework/standards/frontend/scroll-driven/frame-scrub.md +287 -0
  32. package/framework/standards/frontend/scroll-driven/scroll-components.md +256 -0
  33. package/framework/standards/frontend/scroll-driven/smooth-scroll.md +148 -0
  34. package/framework/standards/frontend/seo/meta-schema-audit.md +134 -0
  35. package/package.json +1 -1
package/README.md CHANGED
@@ -3,7 +3,7 @@
3
3
  > Spec-driven development framework for multi-stack projects. Turns feature requests into implementation-ready code through structured, AI-orchestrated phases.
4
4
 
5
5
  **Package:** `@polymorphism-tech/morph-spec`
6
- **Version:** 8.28.0
6
+ **Version:** 8.29.0
7
7
  **Requires:** Node.js 22+, Claude Code
8
8
 
9
9
  ---
@@ -368,4 +368,4 @@ Code generated by morph-spec (contracts, templates, implementation output) belon
368
368
 
369
369
  ---
370
370
 
371
- *morph-spec v8.28.0 by [Polymorphism Tech](https://polymorphism.tech)*
371
+ *morph-spec v8.29.0 by [Polymorphism Tech](https://polymorphism.tech)*
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "morph-spec",
3
- "version": "8.28.0",
3
+ "version": "8.29.0",
4
4
  "displayName": "MORPH-SPEC Framework",
5
5
  "description": "Spec-driven development with 38 agents and 8-phase workflow for .NET/Blazor/Next.js/Azure",
6
6
  "publisher": "polymorphism-tech",
@@ -186,4 +186,4 @@ Never edited directly — go through CLI commands or `morph-spec update` instead
186
186
 
187
187
  ---
188
188
 
189
- *morph-spec v8.28.0 by Polymorphism Tech*
189
+ *morph-spec v8.29.0 by Polymorphism Tech*
@@ -249,4 +249,4 @@ morph-spec doctor
249
249
 
250
250
  ---
251
251
 
252
- *morph-spec v8.28.0 by Polymorphism Tech*
252
+ *morph-spec v8.29.0 by Polymorphism Tech*
@@ -101,16 +101,27 @@
101
101
  "domains": ["ui", "ux", "design-system", "accessibility"],
102
102
  "keywords": [
103
103
  "design", "ui", "ux", "design system", "tokens", "wcag",
104
- "accessibility", "mockup", "flow", "shadcn", "tailwind"
104
+ "accessibility", "mockup", "flow", "shadcn", "tailwind",
105
+ "motion", "scroll", "scrub", "gsap", "lenis", "seo"
105
106
  ],
106
107
  "stack": ["*"],
107
108
  "standards": [
108
109
  "frontend-design-system-naming",
109
110
  "frontend-design-system-animations",
110
- "frontend-nextjs-motion-patterns"
111
+ "frontend-nextjs-motion-patterns",
112
+ "frontend-design-system-premium-finish",
113
+ "frontend-design-system-ai-image-generation",
114
+ "frontend-design-system-ai-video-generation",
115
+ "frontend-scroll-driven-frame-scrub",
116
+ "frontend-scroll-driven-smooth-scroll",
117
+ "frontend-scroll-driven-scroll-components",
118
+ "frontend-seo-meta-schema-audit",
119
+ "frontend-gsap-core",
120
+ "frontend-gsap-scrolltrigger",
121
+ "frontend-gsap-plugins"
111
122
  ],
112
123
  "tools": "Read, Write, Edit, Glob, Grep",
113
- "mcp": ["context7", "stitch", "gemini-image", "playwright"],
124
+ "mcp": ["context7", "stitch", "gemini-image", "playwright", "seedance"],
114
125
  "model": "sonnet",
115
126
  "persona": "Você desenha sistemas, não telas isoladas. Pensa em tokens (cor, espaço, tipografia), componentes reutilizáveis, estados (default/hover/focus/disabled/loading/error), acessibilidade WCAG AA. Mockups em Tailwind direto, sem Figma intermediário."
116
127
  },
@@ -30,6 +30,6 @@ Cria um projeto de landing page novo a partir do template canônico `MORPH_Umbra
30
30
  ## Referências
31
31
 
32
32
  - `.claude/skills/create-umbraco-lp/SKILL.md`
33
- - `docs/umbraco-lp-patterns.md` (em `main`)
33
+ - `references/umbraco-lp-patterns.md` (dentro da skill `create-umbraco-lp`)
34
34
 
35
35
  **Projeto:** $ARGUMENTS
@@ -176,15 +176,15 @@
176
176
  "testCall": "Call get_configuration_status to verify API key and server health",
177
177
  "testParams": {},
178
178
  "successIndicator": "Returns status with valid API key configured",
179
- "failureHint": "Gemini Image MCP not responding. Ensure GEMINI_API_KEY is set in MCP server configuration. Install: npx gemini-image-mcp@latest"
179
+ "failureHint": "Gemini Image MCP not responding. Check that GEMINI_API_KEY is set in the MCP env config and that MORPH_HUB points at a built morph-HUB checkout."
180
180
  },
181
181
  "install": {
182
182
  "autoInstall": false,
183
183
  "transport": "stdio",
184
184
  "config": {
185
185
  "type": "stdio",
186
- "command": "cmd",
187
- "args": ["/c", "npx", "-y", "gemini-image-mcp@latest"]
186
+ "command": "node",
187
+ "args": ["${MORPH_HUB}/mcps/gemini-image/dist/index.js"]
188
188
  },
189
189
  "credentials": [
190
190
  {
@@ -194,19 +194,70 @@
194
194
  "helpUrl": "https://aistudio.google.com/apikey"
195
195
  }
196
196
  ],
197
- "prerequisites": ["Google AI Studio API key"],
197
+ "prerequisites": [
198
+ "Google AI Studio API key",
199
+ "Local morph-HUB checkout with mcps/gemini-image built, exposed via the MORPH_HUB env var"
200
+ ],
198
201
  "stackRelevance": ["nextjs", "next"],
199
- "warnings": ["Requires GEMINI_API_KEY environment variable. Image generation costs apply per Google AI pricing."],
200
- "setupGuide": "1. Get API key from https://aistudio.google.com/apikey\n2. Run: claude mcp add gemini-image-mcp -- npx gemini-image-mcp@latest\n3. Set GEMINI_API_KEY in MCP env config"
202
+ "warnings": [
203
+ "Internal Polymorphism MCP, not published to npm. The public gemini-image-mcp package was unpublished in 2025-04, so npx installs no longer work.",
204
+ "Requires GEMINI_API_KEY environment variable. Image generation costs apply per Google AI pricing."
205
+ ],
206
+ "setupGuide": "1. Get an API key at https://aistudio.google.com/apikey\n2. Build the MCP: cd $MORPH_HUB/mcps/gemini-image && npm install && npm run build\n3. Run: claude mcp add gemini-image-mcp -e GEMINI_API_KEY=<key> -- node $MORPH_HUB/mcps/gemini-image/dist/index.js\n4. Verify with get_configuration_status"
207
+ }
208
+ },
209
+ "seedance": {
210
+ "phases": ["uiux", "implement"],
211
+ "tools": ["generate_video", "generate_loop_video", "get_video", "list_videos"],
212
+ "detection": "mcpServers includes seedance",
213
+ "fallback": "Use client-provided footage or a static poster image; canvas frame-scrub works from any frame sequence, AI-generated or not",
214
+ "usage": "AI video generation for scroll-driven heroes and ambient backgrounds. generate_video with endImage produces the directional footage that frame-scrub needs (start frame differs from end frame); generate_loop_video is only for seamless ambient loops",
215
+ "healthCheck": {
216
+ "toolPattern": "seedance",
217
+ "testCall": "Call list_videos with limit 1 to verify the server responds (reads local history, spends no credits)",
218
+ "testParams": {
219
+ "limit": 1
220
+ },
221
+ "successIndicator": "Returns the local job history, or 'No videos in history yet'",
222
+ "failureHint": "Seedance MCP not responding. Check that REPLICATE_API_TOKEN is set in the MCP env config and that MORPH_HUB points at a built morph-HUB checkout."
223
+ },
224
+ "install": {
225
+ "autoInstall": false,
226
+ "transport": "stdio",
227
+ "config": {
228
+ "type": "stdio",
229
+ "command": "node",
230
+ "args": ["${MORPH_HUB}/mcps/seedance/dist/index.js"]
231
+ },
232
+ "credentials": [
233
+ {
234
+ "name": "Replicate API Token",
235
+ "envVar": "REPLICATE_API_TOKEN",
236
+ "secret": true,
237
+ "helpUrl": "https://replicate.com/account/api-tokens"
238
+ }
239
+ ],
240
+ "prerequisites": [
241
+ "Replicate account with billing enabled",
242
+ "Local morph-HUB checkout with mcps/seedance built, exposed via the MORPH_HUB env var",
243
+ "ffmpeg on PATH to extract frames for scroll-scrubbing"
244
+ ],
245
+ "stackRelevance": ["next", "react", "vite", "astro"],
246
+ "warnings": [
247
+ "Internal Polymorphism MCP, not published to npm. Requires a local morph-HUB checkout.",
248
+ "Paid per generation. Draft at fast/480p/4s first, render 1080p only after the take is approved.",
249
+ "Generation is stochastic and needs a human approval gate. Do not wire it into an unattended phase."
250
+ ],
251
+ "setupGuide": "1. Get a token at https://replicate.com/account/api-tokens\n2. Build the MCP: cd $MORPH_HUB/mcps/seedance && npm install && npm run build\n3. Run: claude mcp add seedance -e REPLICATE_API_TOKEN=<token> -- node $MORPH_HUB/mcps/seedance/dist/index.js\n4. Verify with list_videos (reads local history, spends no credits)"
201
252
  }
202
253
  }
203
254
  },
204
255
  "_phaseMatrixNote": "Keys must be the v5 phases from framework/phases.json. The v4 keys 'design' and 'tasks' both collapsed into 'plan'; 'review' was absent entirely, so a project in review resolved to undefined. Stack-scoped MCPs (asaas) stay out of this matrix on purpose — only universal ones are listed.",
205
256
  "phaseMatrix": {
206
257
  "proposal": ["context7"],
207
- "uiux": ["playwright", "context7", "stitch", "gemini-image"],
258
+ "uiux": ["playwright", "context7", "stitch", "gemini-image", "seedance"],
208
259
  "plan": ["context7"],
209
- "implement": ["context7", "playwright", "vercel", "gemini-image"],
260
+ "implement": ["context7", "playwright", "vercel", "gemini-image", "seedance"],
210
261
  "review": ["playwright", "context7"]
211
262
  }
212
263
  }
@@ -4,7 +4,7 @@ description: Guia a criação de uma landing page nova ponta-a-ponta a partir do
4
4
  version: core
5
5
  when-to-invoke: ao iniciar um novo projeto de LP com o template Umbraco genérico
6
6
  user-invokable: true
7
- cliVersion: "8.28.0"
7
+ cliVersion: "8.29.0"
8
8
  stacks:
9
9
  - umbraco
10
10
  ---
@@ -199,6 +199,17 @@ Edite `frontend/src/app/globals.css`. As variáveis CSS de base do tema são def
199
199
 
200
200
  Para tipografias customizadas, importe via `next/font` em `frontend/src/app/layout.tsx` e exponha como variável CSS.
201
201
 
202
+ > **Se a LP nasce cinematográfica (scroll-driven):** o template não traz `gsap` nem `lenis`; adicione ao
203
+ > `frontend/package.json` e monte o runtime de motion como componente `'use client'` montado uma vez na
204
+ > page, com guard de SSR no registro do ScrollTrigger. O conhecimento está nos standards
205
+ > `frontend/scroll-driven/smooth-scroll.md` (wiring Lenis com o ticker do GSAP, `window.__lenis`,
206
+ > armadilha de HMR), `frame-scrub.md` (canvas quadro a quadro, extração ffmpeg, poster no mobile) e
207
+ > `scroll-components.md` (pin, modal, parallax, reveal). Regra de assets que vale desde o primeiro dia:
208
+ > **sequência de frames é asset estrutural em `frontend/public/` com cache-bust `?v=N` manual, e só o
209
+ > poster vira mídia editável no backoffice.** Frames na Media Library perdem o webp (o ImageSharp do
210
+ > Umbraco 17 exige URL assinada por HMAC, não relaxável por config) e viram 145 requests assinadas
211
+ > por visitante.
212
+
202
213
  **4.2 — Módulos disponíveis (Content Types *Section):**
203
214
 
204
215
  O template já inclui os seguintes módulos versionados em `backend/uSync/v17/ContentTypes/`:
@@ -268,7 +279,7 @@ Antes de fazer deploy ou entregar o projeto ao cliente:
268
279
  ## Referências
269
280
 
270
281
  - `polymorphism-tech/MORPH_Umbraco_LP_Template` (privado, branch `master`) — template canônico: `scripts/new-lp.ps1`, `scripts/new-lp.sh`, `backend/Infrastructure/SeedContentHandler.cs`, `backend/Controllers/LeadController.cs`, `backend/uSync/v17/`.
271
- - `docs/umbraco-lp-patterns.md` (em `main` neste repo) — padrões e gotchas detalhados: controller público (seção 1), DI multi-sink (seção 2), leitura server-side de config oculta (seção 3), segurança Delivery API (seção 4), uSync config-as-code (seção 5), dropdown gotcha (seção 6), seed idempotente (seção 7), endpoint Ping (seção 10), skip silencioso em dev (seção 11), build Next.js exige backend (seção 12).
282
+ - `references/umbraco-lp-patterns.md` (carregue sob demanda) — padrões e gotchas detalhados: controller público (seção 1), DI multi-sink (seção 2), leitura server-side de config oculta (seção 3), segurança Delivery API (seção 4), uSync config-as-code (seção 5), dropdown gotcha (seção 6), seed idempotente (seção 7), endpoint Ping (seção 10), skip silencioso em dev (seção 11), build Next.js exige backend (seção 12).
272
283
  - `backend/appsettings.json` — `Umbraco:CMS:DeliveryApi:DisallowedContentTypeAliases` e `uSync:Settings:ImportAtStartup`.
273
284
  - `backend/Properties/launchSettings.json` — portas de dev: HTTP `:19223`, HTTPS `:44324`.
274
285
  - `docker-compose.yml` — orquestração de produção (backend porta `5001`, frontend `3000`).