@caoscompanybr/merlin 3.5.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.
- package/.claude/CLAUDE.md +216 -0
- package/.claude/hooks/README-license-gate.md +45 -0
- package/.claude/hooks/auto-summarize.js +47 -0
- package/.claude/hooks/context-monitor.js +60 -0
- package/.claude/hooks/doc-sync.js +111 -0
- package/.claude/hooks/license-gate.cjs +59 -0
- package/.claude/hooks/session-reset.js +27 -0
- package/.claude/hooks/thoughts-indexer.js +80 -0
- package/.claude/rules/merlin-constitution.md +27 -0
- package/.merlin-core/commands/README.md +19 -0
- package/.merlin-core/commands/founder-mode.md +51 -0
- package/.merlin-core/commands/git/commit.md +35 -0
- package/.merlin-core/commands/git/describe-pr.md +43 -0
- package/.merlin-core/commands/git/safe-commit.md +182 -0
- package/.merlin-core/commands/implementation/implement-plan.md +129 -0
- package/.merlin-core/commands/implementation/oneshot.md +63 -0
- package/.merlin-core/commands/implementation/tdd.md +152 -0
- package/.merlin-core/commands/planning/create-plan.md +184 -0
- package/.merlin-core/commands/planning/iterate-plan.md +45 -0
- package/.merlin-core/commands/planning/validate-plan.md +48 -0
- package/.merlin-core/commands/research/analyze-issue.md +155 -0
- package/.merlin-core/commands/research/research-codebase.md +157 -0
- package/.merlin-core/commands/review/adversarial-review.md +112 -0
- package/.merlin-core/commands/review/check.md +91 -0
- package/.merlin-core/commands/review/debug.md +135 -0
- package/.merlin-core/commands/review/doubts.md +178 -0
- package/.merlin-core/commands/review/engineering-audit.md +87 -0
- package/.merlin-core/commands/review/local-review.md +48 -0
- package/.merlin-core/commands/review/verify-goals.md +83 -0
- package/.merlin-core/commands/session/capture-feedback.md +74 -0
- package/.merlin-core/commands/session/capture-learning.md +155 -0
- package/.merlin-core/commands/session/check-objectives.md +85 -0
- package/.merlin-core/commands/session/conclude.md +125 -0
- package/.merlin-core/commands/session/create-handoff.md +88 -0
- package/.merlin-core/commands/session/create-objective.md +111 -0
- package/.merlin-core/commands/session/create-process.md +105 -0
- package/.merlin-core/commands/session/create-reminder.md +86 -0
- package/.merlin-core/commands/session/fast-start.md +261 -0
- package/.merlin-core/commands/session/recall-learnings.md +79 -0
- package/.merlin-core/commands/session/recall-processes.md +74 -0
- package/.merlin-core/commands/session/resume-handoff.md +51 -0
- package/.merlin-core/commands/session/run-process.md +53 -0
- package/.merlin-core/commands/special/beauty.md +89 -0
- package/.merlin-core/commands/special/common-ground.md +114 -0
- package/.merlin-core/commands/special/elicit.md +98 -0
- package/.merlin-core/commands/special/party.md +66 -0
- package/.merlin-core/commands/special/scrape.md +78 -0
- package/.merlin-core/commands/special/skill-audit.md +128 -0
- package/.merlin-core/commands/special/start-here.md +132 -0
- package/.merlin-core/constitution.md +442 -0
- package/.merlin-core/core/README.md +19 -0
- package/.merlin-core/core/alkimia/README.md +20 -0
- package/.merlin-core/core/alkimia/context/context-tracker.js +209 -0
- package/.merlin-core/core/alkimia/domain/domain-loader.js +215 -0
- package/.merlin-core/core/alkimia/engine.js +284 -0
- package/.merlin-core/core/alkimia/layers/l0-constitution.js +47 -0
- package/.merlin-core/core/alkimia/layers/l1-global.js +58 -0
- package/.merlin-core/core/alkimia/layers/l2-agent.js +58 -0
- package/.merlin-core/core/alkimia/layers/l3-workflow.js +54 -0
- package/.merlin-core/core/alkimia/layers/l4-task.js +45 -0
- package/.merlin-core/core/alkimia/layers/l5-squad.js +161 -0
- package/.merlin-core/core/alkimia/layers/l6-skill.js +520 -0
- package/.merlin-core/core/alkimia/layers/l7-star-command.js +87 -0
- package/.merlin-core/core/alkimia/layers/layer-processor.js +78 -0
- package/.merlin-core/core/alkimia/mandate.js +46 -0
- package/.merlin-core/core/alkimia/memory/doc-sync.js +201 -0
- package/.merlin-core/core/alkimia/memory/document-sharder.js +272 -0
- package/.merlin-core/core/alkimia/memory/git-history-retriever.js +225 -0
- package/.merlin-core/core/alkimia/memory/memory-bridge.js +97 -0
- package/.merlin-core/core/alkimia/memory/session-analyzer.js +400 -0
- package/.merlin-core/core/alkimia/memory/thoughts-indexer.js +477 -0
- package/.merlin-core/core/alkimia/memory/thoughts-provider.js +603 -0
- package/.merlin-core/core/alkimia/output/formatter.js +464 -0
- package/.merlin-core/core/alkimia/security/content-sanitizer.js +140 -0
- package/.merlin-core/core/alkimia/skill-importer.js +440 -0
- package/.merlin-core/core/alkimia/squads/default/.synapse/manifest +17 -0
- package/.merlin-core/core/alkimia/utils/frontmatter.js +321 -0
- package/.merlin-core/core/alkimia/utils/tokens.js +24 -0
- package/.merlin-core/core/approval/README.md +16 -0
- package/.merlin-core/core/approval/approval-engine.js +380 -0
- package/.merlin-core/core/approval/channels/cli-channel.js +50 -0
- package/.merlin-core/core/config/README.md +17 -0
- package/.merlin-core/core/config/config-cache.js +182 -0
- package/.merlin-core/core/config/config-loader.js +279 -0
- package/.merlin-core/core/config/config-resolver.js +411 -0
- package/.merlin-core/core/config/env-interpolator.js +123 -0
- package/.merlin-core/core/config/merge-utils.js +102 -0
- package/.merlin-core/core/config/schemas/core-config.schema.json +41 -0
- package/.merlin-core/core/config/schemas/framework-config.schema.json +24 -0
- package/.merlin-core/core/config/schemas/local-config.schema.json +23 -0
- package/.merlin-core/core/config/schemas/project-config.schema.json +189 -0
- package/.merlin-core/core/docs-consistency.js +140 -0
- package/.merlin-core/core/events/event-bus.js +344 -0
- package/.merlin-core/core/events/hook-handler.js +419 -0
- package/.merlin-core/core/execution/README.md +17 -0
- package/.merlin-core/core/execution/attempt-journal.js +380 -0
- package/.merlin-core/core/execution/autonomous-build-loop.js +637 -0
- package/.merlin-core/core/execution/build-orchestrator.js +296 -0
- package/.merlin-core/core/execution/build-state-manager.js +196 -0
- package/.merlin-core/core/execution/context-injector.js +204 -0
- package/.merlin-core/core/execution/cron-engine.js +247 -0
- package/.merlin-core/core/execution/cron-expression.js +148 -0
- package/.merlin-core/core/execution/env-preflight.js +423 -0
- package/.merlin-core/core/execution/guardrail-engine.js +745 -0
- package/.merlin-core/core/execution/heartbeat-engine.js +198 -0
- package/.merlin-core/core/execution/model-router.js +282 -0
- package/.merlin-core/core/execution/parallel-executor.js +378 -0
- package/.merlin-core/core/execution/parallel-monitor.js +201 -0
- package/.merlin-core/core/execution/party-session.js +311 -0
- package/.merlin-core/core/execution/rate-limit-manager.js +152 -0
- package/.merlin-core/core/execution/result-aggregator.js +215 -0
- package/.merlin-core/core/execution/semantic-merge-engine.js +320 -0
- package/.merlin-core/core/execution/subagent-dispatcher.js +721 -0
- package/.merlin-core/core/execution/success-verifier.js +227 -0
- package/.merlin-core/core/execution/task-metadata.js +105 -0
- package/.merlin-core/core/execution/team-executor.js +195 -0
- package/.merlin-core/core/execution/two-tier-editor.js +290 -0
- package/.merlin-core/core/execution/version-snapshot.js +294 -0
- package/.merlin-core/core/execution/wave-executor.js +224 -0
- package/.merlin-core/core/health-check/health-engine.js +415 -0
- package/.merlin-core/core/licensing/activation.js +281 -0
- package/.merlin-core/core/licensing/crc.js +103 -0
- package/.merlin-core/core/licensing/entitlement.js +99 -0
- package/.merlin-core/core/licensing/fingerprint.js +104 -0
- package/.merlin-core/core/licensing/gate.js +133 -0
- package/.merlin-core/core/licensing/hmac.js +42 -0
- package/.merlin-core/core/licensing/key.js +144 -0
- package/.merlin-core/core/licensing/license.js +212 -0
- package/.merlin-core/core/mcp/README.md +16 -0
- package/.merlin-core/core/mcp/browser-capability.js +191 -0
- package/.merlin-core/core/mcp/capability-mapper.js +92 -0
- package/.merlin-core/core/mcp/mcp-connector.js +278 -0
- package/.merlin-core/core/mcp/mcp-registry.js +101 -0
- package/.merlin-core/core/orchestration/README.md +17 -0
- package/.merlin-core/core/orchestration/agent-invoker.js +456 -0
- package/.merlin-core/core/orchestration/condition-evaluator.js +250 -0
- package/.merlin-core/core/orchestration/decision-tree.js +192 -0
- package/.merlin-core/core/orchestration/executor-assignment.js +372 -0
- package/.merlin-core/core/orchestration/gate-evaluator.js +653 -0
- package/.merlin-core/core/orchestration/intent-classifier.js +579 -0
- package/.merlin-core/core/orchestration/lock-manager.js +308 -0
- package/.merlin-core/core/orchestration/master-orchestrator.js +363 -0
- package/.merlin-core/core/orchestration/phase-tool-masks.js +194 -0
- package/.merlin-core/core/orchestration/recovery-handler.js +402 -0
- package/.merlin-core/core/orchestration/reflect-checkpoint.js +431 -0
- package/.merlin-core/core/orchestration/session-state.js +430 -0
- package/.merlin-core/core/orchestration/skill-dispatcher.js +255 -0
- package/.merlin-core/core/orchestration/step-loader.js +226 -0
- package/.merlin-core/core/orchestration/workflow-executor.js +864 -0
- package/.merlin-core/core/process/executor.js +231 -0
- package/.merlin-core/core/process/process-file.js +50 -0
- package/.merlin-core/core/process/secret-scan.js +86 -0
- package/.merlin-core/core/process/signature.js +77 -0
- package/.merlin-core/core/quality-gates/README.md +17 -0
- package/.merlin-core/core/quality-gates/layer1-precommit.js +110 -0
- package/.merlin-core/core/quality-gates/layer2-pr-automation.js +116 -0
- package/.merlin-core/core/quality-gates/layer3-human-review.js +133 -0
- package/.merlin-core/core/registry/service-registry.js +140 -0
- package/.merlin-core/core-config.yaml +159 -0
- package/.merlin-core/development/README.md +17 -0
- package/.merlin-core/development/agents/README.md +16 -0
- package/.merlin-core/development/agents/analyst.md +214 -0
- package/.merlin-core/development/agents/architect.md +166 -0
- package/.merlin-core/development/agents/data-engineer.md +154 -0
- package/.merlin-core/development/agents/dev.md +203 -0
- package/.merlin-core/development/agents/devops.md +236 -0
- package/.merlin-core/development/agents/grimorio.md +125 -0
- package/.merlin-core/development/agents/merlin-master.md +173 -0
- package/.merlin-core/development/agents/meta.md +190 -0
- package/.merlin-core/development/agents/pm.md +145 -0
- package/.merlin-core/development/agents/po.md +172 -0
- package/.merlin-core/development/agents/qa.md +275 -0
- package/.merlin-core/development/agents/researcher.md +218 -0
- package/.merlin-core/development/agents/scout.md +179 -0
- package/.merlin-core/development/agents/sm.md +148 -0
- package/.merlin-core/development/agents/ux.md +169 -0
- package/.merlin-core/development/agents/web-researcher.md +203 -0
- package/.merlin-core/development/checklists/adversarial-review-checklist.md +70 -0
- package/.merlin-core/development/checklists/operations-ci-checklist.md +40 -0
- package/.merlin-core/development/checklists/operations-deploy-checklist.md +54 -0
- package/.merlin-core/development/checklists/operations-publish-checklist.md +47 -0
- package/.merlin-core/development/checklists/source-verification-checklist.md +38 -0
- package/.merlin-core/development/templates/HEARTBEAT-template.md +46 -0
- package/.merlin-core/development/templates/ears-requirements-template.md +93 -0
- package/.merlin-core/development/templates/handoff-template.md +50 -0
- package/.merlin-core/development/templates/prd-template.md +62 -0
- package/.merlin-core/development/templates/research-template.md +53 -0
- package/.merlin-core/development/templates/spec-template.md +84 -0
- package/.merlin-core/development/workflows/brownfield-discovery.yaml +166 -0
- package/.merlin-core/development/workflows/brownfield-service.yaml +52 -0
- package/.merlin-core/development/workflows/development-cycle.yaml +57 -0
- package/.merlin-core/development/workflows/epic-orchestration.yaml +47 -0
- package/.merlin-core/development/workflows/folloni-funnel.yaml +177 -0
- package/.merlin-core/development/workflows/greenfield-fullstack.yaml +167 -0
- package/.merlin-core/development/workflows/greenfield-service.yaml +56 -0
- package/.merlin-core/development/workflows/qa-loop.yaml +115 -0
- package/.merlin-core/development/workflows/spec-pipeline.yaml +185 -0
- package/.merlin-core/development/workflows/steps/folloni-01-research.yaml +35 -0
- package/.merlin-core/development/workflows/steps/folloni-02-architecture.yaml +41 -0
- package/.merlin-core/development/workflows/steps/folloni-03-implementation.yaml +52 -0
- package/.merlin-core/development/workflows/story-development-cycle.yaml +67 -0
- package/.merlin-core/docs/GUIDE.md +413 -0
- package/.merlin-core/docs/merlin-commands-guide-pt.md +183 -0
- package/.merlin-core/framework-config.yaml +148 -0
- package/.merlin-core/hooks/README.md +16 -0
- package/.merlin-core/hooks/precompact-memory-flush.js +69 -0
- package/.merlin-core/hooks/pretooluse-remote-approve.js +113 -0
- package/.merlin-core/hooks/spikes/spike-b-hook.js +70 -0
- package/.merlin-core/hooks/spikes/spike-b-stub.js +70 -0
- package/.merlin-core/index.js +91 -0
- package/.merlin-core/local-config.yaml.template +31 -0
- package/.merlin-core/mcp-servers/lsp-bridge/index.js +397 -0
- package/.merlin-core/modules/scraping/module.json +23 -0
- package/.merlin-core/project-config.yaml +89 -0
- package/.merlin-core/schemas/README.md +18 -0
- package/.merlin-core/schemas/agent-hook-schema.json +152 -0
- package/.merlin-core/schemas/agent-schema.json +31 -0
- package/.merlin-core/schemas/command-schema.json +18 -0
- package/.merlin-core/schemas/feedback-schema.json +36 -0
- package/.merlin-core/schemas/handoff-schema.json +19 -0
- package/.merlin-core/schemas/learning-schema.json +51 -0
- package/.merlin-core/schemas/module.schema.json +124 -0
- package/.merlin-core/schemas/must-haves-schema.json +95 -0
- package/.merlin-core/schemas/objective-schema.json +23 -0
- package/.merlin-core/schemas/plan-schema.json +20 -0
- package/.merlin-core/schemas/process-schema.json +82 -0
- package/.merlin-core/schemas/reminder-schema.json +20 -0
- package/.merlin-core/schemas/skill-eval-schema.json +92 -0
- package/.merlin-core/schemas/skill-schema.json +77 -0
- package/.merlin-core/schemas/workflow-schema.json +38 -0
- package/.merlin-core/skills/README.md +16 -0
- package/.merlin-core/skills/domain/azure-cloud/SKILL.md +211 -0
- package/.merlin-core/skills/domain/azure-cloud/references/appinsights-instrumentation.md +63 -0
- package/.merlin-core/skills/domain/azure-cloud/references/azure-compliance.md +99 -0
- package/.merlin-core/skills/domain/azure-cloud/references/azure-cost-optimization.md +419 -0
- package/.merlin-core/skills/domain/azure-cloud/references/azure-deploy.md +82 -0
- package/.merlin-core/skills/domain/azure-cloud/references/azure-diagnostics.md +130 -0
- package/.merlin-core/skills/domain/azure-cloud/references/azure-prepare.md +134 -0
- package/.merlin-core/skills/domain/azure-cloud/references/azure-quotas.md +290 -0
- package/.merlin-core/skills/domain/azure-cloud/references/azure-rbac.md +11 -0
- package/.merlin-core/skills/domain/azure-cloud/references/azure-resource-lookup.md +97 -0
- package/.merlin-core/skills/domain/azure-cloud/references/azure-resource-visualizer.md +178 -0
- package/.merlin-core/skills/domain/azure-cloud/references/azure-storage.md +91 -0
- package/.merlin-core/skills/domain/azure-cloud/references/azure-validate.md +58 -0
- package/.merlin-core/skills/domain/azure-cloud/references/entra-app-registration.md +192 -0
- package/.merlin-core/skills/domain/browser-automation/SKILL.md +311 -0
- package/.merlin-core/skills/domain/browser-automation/references/agent-browser-skill.md +632 -0
- package/.merlin-core/skills/domain/browser-automation/references/authentication.md +308 -0
- package/.merlin-core/skills/domain/browser-automation/references/commands.md +266 -0
- package/.merlin-core/skills/domain/browser-automation/references/profiling.md +120 -0
- package/.merlin-core/skills/domain/browser-automation/references/proxy-support.md +194 -0
- package/.merlin-core/skills/domain/browser-automation/references/session-management.md +194 -0
- package/.merlin-core/skills/domain/browser-automation/references/snapshot-refs.md +196 -0
- package/.merlin-core/skills/domain/browser-automation/references/video-recording.md +173 -0
- package/.merlin-core/skills/domain/browser-automation/templates/authenticated-session.sh +105 -0
- package/.merlin-core/skills/domain/browser-automation/templates/capture-workflow.sh +69 -0
- package/.merlin-core/skills/domain/browser-automation/templates/form-automation.sh +62 -0
- package/.merlin-core/skills/domain/digital-marketing/SKILL.md +292 -0
- package/.merlin-core/skills/domain/digital-marketing/references/content-strategy.md +320 -0
- package/.merlin-core/skills/domain/digital-marketing/references/copy-formats.md +298 -0
- package/.merlin-core/skills/domain/digital-marketing/references/copy-methodology.md +180 -0
- package/.merlin-core/skills/domain/digital-marketing/references/email-sequences.md +135 -0
- package/.merlin-core/skills/domain/digital-marketing/references/launch-strategy.md +213 -0
- package/.merlin-core/skills/domain/digital-marketing/references/pricing-strategy.md +160 -0
- package/.merlin-core/skills/domain/digital-marketing/references/programmatic-seo.md +237 -0
- package/.merlin-core/skills/domain/digital-marketing/references/revops-lifecycle.md +170 -0
- package/.merlin-core/skills/domain/digital-marketing/references/revops-operations.md +167 -0
- package/.merlin-core/skills/domain/digital-marketing/references/schema-markup.md +190 -0
- package/.merlin-core/skills/domain/digital-marketing/references/strategy-frameworks.md +324 -0
- package/.merlin-core/skills/domain/digital-marketing/references/traffic-management.md +350 -0
- package/.merlin-core/skills/domain/expo-native-ui/SKILL.md +348 -0
- package/.merlin-core/skills/domain/expo-native-ui/references/animations.md +220 -0
- package/.merlin-core/skills/domain/expo-native-ui/references/api-routes.md +361 -0
- package/.merlin-core/skills/domain/expo-native-ui/references/cicd-workflows.md +84 -0
- package/.merlin-core/skills/domain/expo-native-ui/references/controls.md +266 -0
- package/.merlin-core/skills/domain/expo-native-ui/references/data-fetching.md +553 -0
- package/.merlin-core/skills/domain/expo-native-ui/references/deployment-stores.md +1353 -0
- package/.merlin-core/skills/domain/expo-native-ui/references/deployment.md +183 -0
- package/.merlin-core/skills/domain/expo-native-ui/references/dev-client.md +166 -0
- package/.merlin-core/skills/domain/expo-native-ui/references/dom-components.md +410 -0
- package/.merlin-core/skills/domain/expo-native-ui/references/form-sheet.md +253 -0
- package/.merlin-core/skills/domain/expo-native-ui/references/gradients.md +117 -0
- package/.merlin-core/skills/domain/expo-native-ui/references/icons.md +218 -0
- package/.merlin-core/skills/domain/expo-native-ui/references/media.md +245 -0
- package/.merlin-core/skills/domain/expo-native-ui/references/platform-native.md +75 -0
- package/.merlin-core/skills/domain/expo-native-ui/references/route-structure.md +229 -0
- package/.merlin-core/skills/domain/expo-native-ui/references/search.md +249 -0
- package/.merlin-core/skills/domain/expo-native-ui/references/storage.md +121 -0
- package/.merlin-core/skills/domain/expo-native-ui/references/tabs.md +433 -0
- package/.merlin-core/skills/domain/expo-native-ui/references/tailwind-native.md +473 -0
- package/.merlin-core/skills/domain/expo-native-ui/references/toolbar-and-headers.md +284 -0
- package/.merlin-core/skills/domain/expo-native-ui/references/upgrading-guides.md +674 -0
- package/.merlin-core/skills/domain/expo-native-ui/references/upgrading.md +127 -0
- package/.merlin-core/skills/domain/expo-native-ui/references/visual-effects.md +199 -0
- package/.merlin-core/skills/domain/expo-native-ui/references/webgpu-three.md +605 -0
- package/.merlin-core/skills/domain/expo-native-ui/references/zoom-transitions.md +161 -0
- package/.merlin-core/skills/domain/marketing-ops/SKILL.md +117 -0
- package/.merlin-core/skills/domain/marketing-ops/references/_index.md +78 -0
- package/.merlin-core/skills/domain/marketing-ops/references/acquire/ad-creative/references/generative-tools.md +19 -0
- package/.merlin-core/skills/domain/marketing-ops/references/acquire/ad-creative/references/platform-specs.md +19 -0
- package/.merlin-core/skills/domain/marketing-ops/references/acquire/ad-creative.md +251 -0
- package/.merlin-core/skills/domain/marketing-ops/references/acquire/ads/references/ad-copy-templates.md +19 -0
- package/.merlin-core/skills/domain/marketing-ops/references/acquire/ads/references/audience-targeting.md +19 -0
- package/.merlin-core/skills/domain/marketing-ops/references/acquire/ads/references/conversion-tracking.md +19 -0
- package/.merlin-core/skills/domain/marketing-ops/references/acquire/ads/references/platform-setup-checklists.md +19 -0
- package/.merlin-core/skills/domain/marketing-ops/references/acquire/ads.md +322 -0
- package/.merlin-core/skills/domain/marketing-ops/references/acquire/ai-seo/references/content-patterns.md +19 -0
- package/.merlin-core/skills/domain/marketing-ops/references/acquire/ai-seo/references/content-types.md +19 -0
- package/.merlin-core/skills/domain/marketing-ops/references/acquire/ai-seo/references/platform-ranking-factors.md +19 -0
- package/.merlin-core/skills/domain/marketing-ops/references/acquire/ai-seo.md +388 -0
- package/.merlin-core/skills/domain/marketing-ops/references/acquire/aso/references/apple-specs.md +19 -0
- package/.merlin-core/skills/domain/marketing-ops/references/acquire/aso/references/benchmarks.md +19 -0
- package/.merlin-core/skills/domain/marketing-ops/references/acquire/aso/references/google-play-specs.md +19 -0
- package/.merlin-core/skills/domain/marketing-ops/references/acquire/aso/references/report-template.md +19 -0
- package/.merlin-core/skills/domain/marketing-ops/references/acquire/aso/references/scoring-criteria.md +19 -0
- package/.merlin-core/skills/domain/marketing-ops/references/acquire/aso.md +316 -0
- package/.merlin-core/skills/domain/marketing-ops/references/acquire/co-marketing.md +305 -0
- package/.merlin-core/skills/domain/marketing-ops/references/acquire/community-marketing.md +169 -0
- package/.merlin-core/skills/domain/marketing-ops/references/acquire/competitor-profiling/references/templates.md +19 -0
- package/.merlin-core/skills/domain/marketing-ops/references/acquire/competitor-profiling/references/tool-reference.md +19 -0
- package/.merlin-core/skills/domain/marketing-ops/references/acquire/competitor-profiling.md +442 -0
- package/.merlin-core/skills/domain/marketing-ops/references/acquire/competitors/references/content-architecture.md +19 -0
- package/.merlin-core/skills/domain/marketing-ops/references/acquire/competitors/references/templates.md +19 -0
- package/.merlin-core/skills/domain/marketing-ops/references/acquire/competitors.md +281 -0
- package/.merlin-core/skills/domain/marketing-ops/references/acquire/content-strategy.md +16 -0
- package/.merlin-core/skills/domain/marketing-ops/references/acquire/directory-submissions/references/directory-list.md +19 -0
- package/.merlin-core/skills/domain/marketing-ops/references/acquire/directory-submissions/references/positioning-variations.md +19 -0
- package/.merlin-core/skills/domain/marketing-ops/references/acquire/directory-submissions/references/submission-tracker-template.md +19 -0
- package/.merlin-core/skills/domain/marketing-ops/references/acquire/directory-submissions.md +396 -0
- package/.merlin-core/skills/domain/marketing-ops/references/acquire/free-tools/references/tool-types.md +19 -0
- package/.merlin-core/skills/domain/marketing-ops/references/acquire/free-tools.md +196 -0
- package/.merlin-core/skills/domain/marketing-ops/references/acquire/image/references/ai-image-prompting.md +19 -0
- package/.merlin-core/skills/domain/marketing-ops/references/acquire/image.md +352 -0
- package/.merlin-core/skills/domain/marketing-ops/references/acquire/launch.md +18 -0
- package/.merlin-core/skills/domain/marketing-ops/references/acquire/lead-magnets/references/benchmarks.md +19 -0
- package/.merlin-core/skills/domain/marketing-ops/references/acquire/lead-magnets/references/format-guide.md +19 -0
- package/.merlin-core/skills/domain/marketing-ops/references/acquire/lead-magnets.md +333 -0
- package/.merlin-core/skills/domain/marketing-ops/references/acquire/programmatic-seo.md +16 -0
- package/.merlin-core/skills/domain/marketing-ops/references/acquire/schema.md +16 -0
- package/.merlin-core/skills/domain/marketing-ops/references/acquire/seo-audit/references/ai-writing-detection.md +19 -0
- package/.merlin-core/skills/domain/marketing-ops/references/acquire/seo-audit/references/international-seo.md +19 -0
- package/.merlin-core/skills/domain/marketing-ops/references/acquire/seo-audit.md +546 -0
- package/.merlin-core/skills/domain/marketing-ops/references/acquire/site-architecture/references/mermaid-templates.md +19 -0
- package/.merlin-core/skills/domain/marketing-ops/references/acquire/site-architecture/references/navigation-patterns.md +19 -0
- package/.merlin-core/skills/domain/marketing-ops/references/acquire/site-architecture/references/site-type-templates.md +19 -0
- package/.merlin-core/skills/domain/marketing-ops/references/acquire/site-architecture.md +371 -0
- package/.merlin-core/skills/domain/marketing-ops/references/acquire/social/references/platform-limits.md +19 -0
- package/.merlin-core/skills/domain/marketing-ops/references/acquire/social/references/platforms.md +19 -0
- package/.merlin-core/skills/domain/marketing-ops/references/acquire/social/references/post-templates.md +19 -0
- package/.merlin-core/skills/domain/marketing-ops/references/acquire/social/references/reverse-engineering.md +19 -0
- package/.merlin-core/skills/domain/marketing-ops/references/acquire/social/references/short-form-video.md +19 -0
- package/.merlin-core/skills/domain/marketing-ops/references/acquire/social.md +431 -0
- package/.merlin-core/skills/domain/marketing-ops/references/acquire/video/references/ai-video-prompting.md +19 -0
- package/.merlin-core/skills/domain/marketing-ops/references/acquire/video.md +353 -0
- package/.merlin-core/skills/domain/marketing-ops/references/activate/ab-testing/references/sample-size-guide.md +19 -0
- package/.merlin-core/skills/domain/marketing-ops/references/activate/ab-testing/references/test-templates.md +19 -0
- package/.merlin-core/skills/domain/marketing-ops/references/activate/ab-testing.md +379 -0
- package/.merlin-core/skills/domain/marketing-ops/references/activate/analytics/references/event-library.md +19 -0
- package/.merlin-core/skills/domain/marketing-ops/references/activate/analytics/references/ga4-implementation.md +19 -0
- package/.merlin-core/skills/domain/marketing-ops/references/activate/analytics/references/gtm-implementation.md +19 -0
- package/.merlin-core/skills/domain/marketing-ops/references/activate/analytics.md +323 -0
- package/.merlin-core/skills/domain/marketing-ops/references/activate/copy-editing.md +18 -0
- package/.merlin-core/skills/domain/marketing-ops/references/activate/copywriting.md +18 -0
- package/.merlin-core/skills/domain/marketing-ops/references/activate/cro/references/experiments.md +19 -0
- package/.merlin-core/skills/domain/marketing-ops/references/activate/cro/references/form.md +19 -0
- package/.merlin-core/skills/domain/marketing-ops/references/activate/cro.md +211 -0
- package/.merlin-core/skills/domain/marketing-ops/references/activate/emails.md +18 -0
- package/.merlin-core/skills/domain/marketing-ops/references/activate/paywalls/references/experiments.md +19 -0
- package/.merlin-core/skills/domain/marketing-ops/references/activate/paywalls.md +255 -0
- package/.merlin-core/skills/domain/marketing-ops/references/activate/popups.md +518 -0
- package/.merlin-core/skills/domain/marketing-ops/references/activate/pricing.md +18 -0
- package/.merlin-core/skills/domain/marketing-ops/references/activate/sales-enablement/references/deck-frameworks.md +19 -0
- package/.merlin-core/skills/domain/marketing-ops/references/activate/sales-enablement/references/demo-scripts.md +19 -0
- package/.merlin-core/skills/domain/marketing-ops/references/activate/sales-enablement/references/objection-library.md +19 -0
- package/.merlin-core/skills/domain/marketing-ops/references/activate/sales-enablement/references/one-pager-templates.md +19 -0
- package/.merlin-core/skills/domain/marketing-ops/references/activate/sales-enablement.md +371 -0
- package/.merlin-core/skills/domain/marketing-ops/references/activate/signup.md +406 -0
- package/.merlin-core/skills/domain/marketing-ops/references/expand/co-marketing.md +18 -0
- package/.merlin-core/skills/domain/marketing-ops/references/expand/community-marketing.md +18 -0
- package/.merlin-core/skills/domain/marketing-ops/references/expand/referrals/references/affiliate-programs.md +19 -0
- package/.merlin-core/skills/domain/marketing-ops/references/expand/referrals/references/program-examples.md +19 -0
- package/.merlin-core/skills/domain/marketing-ops/references/expand/referrals.md +278 -0
- package/.merlin-core/skills/domain/marketing-ops/references/foundation/customer-research/references/source-guides.md +425 -0
- package/.merlin-core/skills/domain/marketing-ops/references/foundation/customer-research.md +284 -0
- package/.merlin-core/skills/domain/marketing-ops/references/foundation/marketing-ideas/references/ideas-by-category.md +216 -0
- package/.merlin-core/skills/domain/marketing-ops/references/foundation/marketing-ideas.md +188 -0
- package/.merlin-core/skills/domain/marketing-ops/references/foundation/marketing-psychology.md +532 -0
- package/.merlin-core/skills/domain/marketing-ops/references/foundation/product-marketing.md +276 -0
- package/.merlin-core/skills/domain/marketing-ops/references/retain/churn-prevention/references/cancel-flow-patterns.md +19 -0
- package/.merlin-core/skills/domain/marketing-ops/references/retain/churn-prevention/references/dunning-playbook.md +19 -0
- package/.merlin-core/skills/domain/marketing-ops/references/retain/churn-prevention.md +442 -0
- package/.merlin-core/skills/domain/marketing-ops/references/retain/onboarding/references/experiments.md +19 -0
- package/.merlin-core/skills/domain/marketing-ops/references/retain/onboarding.md +243 -0
- package/.merlin-core/skills/domain/marketing-ops/references/retain/revops-lifecycle.md +18 -0
- package/.merlin-core/skills/domain/marketing-ops/references/retain/revops-operations.md +18 -0
- package/.merlin-core/skills/domain/n8n-automation/SKILL.md +149 -0
- package/.merlin-core/skills/domain/n8n-automation/references/code-javascript.md +3744 -0
- package/.merlin-core/skills/domain/n8n-automation/references/code-python.md +3293 -0
- package/.merlin-core/skills/domain/n8n-automation/references/expression-syntax.md +1662 -0
- package/.merlin-core/skills/domain/n8n-automation/references/mcp-tools-expert.md +2111 -0
- package/.merlin-core/skills/domain/n8n-automation/references/node-configuration.md +2523 -0
- package/.merlin-core/skills/domain/n8n-automation/references/validation-expert.md +2491 -0
- package/.merlin-core/skills/domain/n8n-automation/references/workflow-patterns.md +4624 -0
- package/.merlin-core/skills/domain/ops-manual/SKILL.md +225 -0
- package/.merlin-core/skills/domain/ops-manual/references/elicitation-questions.md +141 -0
- package/.merlin-core/skills/domain/ops-manual/references/external-skills-registry.md +63 -0
- package/.merlin-core/skills/domain/ops-manual/references/operations-template.yaml +132 -0
- package/.merlin-core/skills/domain/remotion-best-practices/SKILL.md +99 -0
- package/.merlin-core/skills/domain/remotion-best-practices/rules/3d.md +86 -0
- package/.merlin-core/skills/domain/remotion-best-practices/rules/animations.md +27 -0
- package/.merlin-core/skills/domain/remotion-best-practices/rules/assets/charts-bar-chart.tsx +173 -0
- package/.merlin-core/skills/domain/remotion-best-practices/rules/assets/text-animations-typewriter.tsx +100 -0
- package/.merlin-core/skills/domain/remotion-best-practices/rules/assets/text-animations-word-highlight.tsx +108 -0
- package/.merlin-core/skills/domain/remotion-best-practices/rules/assets.md +78 -0
- package/.merlin-core/skills/domain/remotion-best-practices/rules/audio.md +172 -0
- package/.merlin-core/skills/domain/remotion-best-practices/rules/calculate-metadata.md +131 -0
- package/.merlin-core/skills/domain/remotion-best-practices/rules/can-decode.md +75 -0
- package/.merlin-core/skills/domain/remotion-best-practices/rules/charts.md +68 -0
- package/.merlin-core/skills/domain/remotion-best-practices/rules/compositions.md +154 -0
- package/.merlin-core/skills/domain/remotion-best-practices/rules/display-captions.md +126 -0
- package/.merlin-core/skills/domain/remotion-best-practices/rules/extract-frames.md +229 -0
- package/.merlin-core/skills/domain/remotion-best-practices/rules/fonts.md +152 -0
- package/.merlin-core/skills/domain/remotion-best-practices/rules/get-audio-duration.md +58 -0
- package/.merlin-core/skills/domain/remotion-best-practices/rules/get-video-dimensions.md +68 -0
- package/.merlin-core/skills/domain/remotion-best-practices/rules/get-video-duration.md +58 -0
- package/.merlin-core/skills/domain/remotion-best-practices/rules/gifs.md +144 -0
- package/.merlin-core/skills/domain/remotion-best-practices/rules/images.md +134 -0
- package/.merlin-core/skills/domain/remotion-best-practices/rules/import-srt-captions.md +67 -0
- package/.merlin-core/skills/domain/remotion-best-practices/rules/lottie.md +70 -0
- package/.merlin-core/skills/domain/remotion-best-practices/rules/maps.md +414 -0
- package/.merlin-core/skills/domain/remotion-best-practices/rules/measuring-dom-nodes.md +34 -0
- package/.merlin-core/skills/domain/remotion-best-practices/rules/measuring-text.md +143 -0
- package/.merlin-core/skills/domain/remotion-best-practices/rules/parameters.md +109 -0
- package/.merlin-core/skills/domain/remotion-best-practices/rules/sequencing.md +118 -0
- package/.merlin-core/skills/domain/remotion-best-practices/rules/tailwind.md +11 -0
- package/.merlin-core/skills/domain/remotion-best-practices/rules/text-animations.md +20 -0
- package/.merlin-core/skills/domain/remotion-best-practices/rules/timing.md +179 -0
- package/.merlin-core/skills/domain/remotion-best-practices/rules/transcribe-captions.md +19 -0
- package/.merlin-core/skills/domain/remotion-best-practices/rules/transitions.md +137 -0
- package/.merlin-core/skills/domain/remotion-best-practices/rules/transparent-videos.md +106 -0
- package/.merlin-core/skills/domain/remotion-best-practices/rules/trimming.md +51 -0
- package/.merlin-core/skills/domain/remotion-best-practices/rules/videos.md +171 -0
- package/.merlin-core/skills/domain/resend-email/SKILL.md +377 -0
- package/.merlin-core/skills/general/adversarial-review/SKILL.md +144 -0
- package/.merlin-core/skills/general/api-design/SKILL.md +513 -0
- package/.merlin-core/skills/general/apify-scrape/SKILL.md +137 -0
- package/.merlin-core/skills/general/apify-scrape/scripts/apify-scrape.sh +68 -0
- package/.merlin-core/skills/general/backup/SKILL.md +87 -0
- package/.merlin-core/skills/general/blkskrn/SKILL.md +392 -0
- package/.merlin-core/skills/general/blkskrn/references/animation-patterns.md +521 -0
- package/.merlin-core/skills/general/blkskrn/references/design-system.md +637 -0
- package/.merlin-core/skills/general/blkskrn/references/html-templates.md +440 -0
- package/.merlin-core/skills/general/blkskrn/references/presenter-template.md +45 -0
- package/.merlin-core/skills/general/blkskrn/references/slide-types.md +424 -0
- package/.merlin-core/skills/general/blkskrn/scripts/canvas-manager.js +502 -0
- package/.merlin-core/skills/general/blkskrn/scripts/presenter.js +90 -0
- package/.merlin-core/skills/general/blkskrn/templates/presenter.html +273 -0
- package/.merlin-core/skills/general/blkskrn/templates/slide-base.html +277 -0
- package/.merlin-core/skills/general/blkskrn/templates/viewer.html +165 -0
- package/.merlin-core/skills/general/browser-takeover/SKILL.md +53 -0
- package/.merlin-core/skills/general/claude-api/SKILL.md +90 -0
- package/.merlin-core/skills/general/code-javascript/SKILL.md +268 -0
- package/.merlin-core/skills/general/code-python/SKILL.md +424 -0
- package/.merlin-core/skills/general/code-style/SKILL.md +97 -0
- package/.merlin-core/skills/general/code-typescript/SKILL.md +361 -0
- package/.merlin-core/skills/general/cold-email/SKILL.md +164 -0
- package/.merlin-core/skills/general/cold-email/references/benchmarks.md +18 -0
- package/.merlin-core/skills/general/cold-email/references/follow-up-sequences.md +18 -0
- package/.merlin-core/skills/general/cold-email/references/frameworks.md +18 -0
- package/.merlin-core/skills/general/cold-email/references/personalization.md +18 -0
- package/.merlin-core/skills/general/cold-email/references/subject-lines.md +18 -0
- package/.merlin-core/skills/general/container-security/SKILL.md +462 -0
- package/.merlin-core/skills/general/context-management/SKILL.md +79 -0
- package/.merlin-core/skills/general/copy-editing/SKILL.md +501 -0
- package/.merlin-core/skills/general/copy-editing/references/checklist.md +18 -0
- package/.merlin-core/skills/general/copy-editing/references/content-refresh.md +18 -0
- package/.merlin-core/skills/general/copy-editing/references/plain-english-alternatives.md +18 -0
- package/.merlin-core/skills/general/copywriting/SKILL.md +294 -0
- package/.merlin-core/skills/general/copywriting/references/copy-frameworks.md +392 -0
- package/.merlin-core/skills/general/copywriting/references/natural-transitions.md +276 -0
- package/.merlin-core/skills/general/database/SKILL.md +561 -0
- package/.merlin-core/skills/general/database/references/postgres-concurrency.md +182 -0
- package/.merlin-core/skills/general/database/references/postgres-connections.md +97 -0
- package/.merlin-core/skills/general/database/references/postgres-data-patterns.md +159 -0
- package/.merlin-core/skills/general/database/references/postgres-monitoring.md +136 -0
- package/.merlin-core/skills/general/database/references/postgres-rls.md +140 -0
- package/.merlin-core/skills/general/database-provision/SKILL.md +56 -0
- package/.merlin-core/skills/general/deploy/SKILL.md +65 -0
- package/.merlin-core/skills/general/design-inspiration/SKILL.md +146 -0
- package/.merlin-core/skills/general/design-palette/SKILL.md +99 -0
- package/.merlin-core/skills/general/design-palette/references/full-palettes.md +144 -0
- package/.merlin-core/skills/general/design-system/SKILL.md +94 -0
- package/.merlin-core/skills/general/design-typography/SKILL.md +115 -0
- package/.merlin-core/skills/general/design-typography/references/full-pairings.md +144 -0
- package/.merlin-core/skills/general/design-ux-patterns/SKILL.md +155 -0
- package/.merlin-core/skills/general/design-ux-patterns/references/charts-data-guidelines.md +197 -0
- package/.merlin-core/skills/general/design-ux-patterns/references/landing-patterns.md +199 -0
- package/.merlin-core/skills/general/design-ux-patterns/references/professional-ui-checklist.md +56 -0
- package/.merlin-core/skills/general/design-ux-patterns/references/style-catalog.md +89 -0
- package/.merlin-core/skills/general/design-ux-patterns/references/ux-guidelines.md +837 -0
- package/.merlin-core/skills/general/discover-cloud/SKILL.md +108 -0
- package/.merlin-core/skills/general/doc-sync/SKILL.md +52 -0
- package/.merlin-core/skills/general/document-sharding/SKILL.md +53 -0
- package/.merlin-core/skills/general/docx/SKILL.md +418 -0
- package/.merlin-core/skills/general/docx/references/windows-setup.md +27 -0
- package/.merlin-core/skills/general/docx/scripts/__init__.py +1 -0
- package/.merlin-core/skills/general/docx/scripts/accept_changes.py +135 -0
- package/.merlin-core/skills/general/docx/scripts/comment.py +318 -0
- package/.merlin-core/skills/general/docx/scripts/office/__init__.py +0 -0
- package/.merlin-core/skills/general/docx/scripts/office/helpers/__init__.py +0 -0
- package/.merlin-core/skills/general/docx/scripts/office/helpers/merge_runs.py +199 -0
- package/.merlin-core/skills/general/docx/scripts/office/helpers/simplify_redlines.py +197 -0
- package/.merlin-core/skills/general/docx/scripts/office/pack.py +159 -0
- package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
- package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
- package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
- package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
- package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
- package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
- package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
- package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
- package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
- package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
- package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
- package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
- package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
- package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
- package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
- package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
- package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
- package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
- package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
- package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
- package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
- package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
- package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
- package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
- package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
- package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
- package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
- package/.merlin-core/skills/general/docx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
- package/.merlin-core/skills/general/docx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
- package/.merlin-core/skills/general/docx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
- package/.merlin-core/skills/general/docx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
- package/.merlin-core/skills/general/docx/scripts/office/schemas/mce/mc.xsd +75 -0
- package/.merlin-core/skills/general/docx/scripts/office/schemas/microsoft/wml-2010.xsd +560 -0
- package/.merlin-core/skills/general/docx/scripts/office/schemas/microsoft/wml-2012.xsd +67 -0
- package/.merlin-core/skills/general/docx/scripts/office/schemas/microsoft/wml-2018.xsd +14 -0
- package/.merlin-core/skills/general/docx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -0
- package/.merlin-core/skills/general/docx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -0
- package/.merlin-core/skills/general/docx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
- package/.merlin-core/skills/general/docx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -0
- package/.merlin-core/skills/general/docx/scripts/office/soffice.py +183 -0
- package/.merlin-core/skills/general/docx/scripts/office/unpack.py +132 -0
- package/.merlin-core/skills/general/docx/scripts/office/validate.py +111 -0
- package/.merlin-core/skills/general/docx/scripts/office/validators/__init__.py +15 -0
- package/.merlin-core/skills/general/docx/scripts/office/validators/base.py +847 -0
- package/.merlin-core/skills/general/docx/scripts/office/validators/docx.py +446 -0
- package/.merlin-core/skills/general/docx/scripts/office/validators/pptx.py +275 -0
- package/.merlin-core/skills/general/docx/scripts/office/validators/redlining.py +247 -0
- package/.merlin-core/skills/general/docx/scripts/templates/comments.xml +3 -0
- package/.merlin-core/skills/general/docx/scripts/templates/commentsExtended.xml +3 -0
- package/.merlin-core/skills/general/docx/scripts/templates/commentsExtensible.xml +3 -0
- package/.merlin-core/skills/general/docx/scripts/templates/commentsIds.xml +3 -0
- package/.merlin-core/skills/general/docx/scripts/templates/people.xml +3 -0
- package/.merlin-core/skills/general/elicitation/SKILL.md +188 -0
- package/.merlin-core/skills/general/engineering-audit/SKILL.md +122 -0
- package/.merlin-core/skills/general/find-and-edit/SKILL.md +102 -0
- package/.merlin-core/skills/general/first-party-docs/SKILL.md +51 -0
- package/.merlin-core/skills/general/frontend-design/SKILL.md +204 -0
- package/.merlin-core/skills/general/guardrails/SKILL.md +144 -0
- package/.merlin-core/skills/general/image-gen/SKILL.md +49 -0
- package/.merlin-core/skills/general/learning-capture/SKILL.md +192 -0
- package/.merlin-core/skills/general/lgpd-compliance-audit/SKILL.md +448 -0
- package/.merlin-core/skills/general/load-testing/SKILL.md +114 -0
- package/.merlin-core/skills/general/load-testing/docker/Dockerfile.dashboard +21 -0
- package/.merlin-core/skills/general/load-testing/docker/docker-compose.locust.yml +39 -0
- package/.merlin-core/skills/general/load-testing/requirements.txt +1 -0
- package/.merlin-core/skills/general/load-testing/scripts/compare_baseline.py +172 -0
- package/.merlin-core/skills/general/load-testing/scripts/run_local.py +245 -0
- package/.merlin-core/skills/general/load-testing/templates/load_shape_stepped.py +35 -0
- package/.merlin-core/skills/general/load-testing/templates/locustfile_dashboard.py +47 -0
- package/.merlin-core/skills/general/load-testing/templates/threshold_hook.py +36 -0
- package/.merlin-core/skills/general/mage-beauty/SKILL.md +89 -0
- package/.merlin-core/skills/general/mage-beauty/references/anti-patterns.md +148 -0
- package/.merlin-core/skills/general/mage-beauty/references/color-and-contrast.md +87 -0
- package/.merlin-core/skills/general/mage-beauty/references/interaction-design.md +99 -0
- package/.merlin-core/skills/general/mage-beauty/references/motion-design.md +90 -0
- package/.merlin-core/skills/general/mage-beauty/references/remotion-bridge.md +187 -0
- package/.merlin-core/skills/general/mage-beauty/references/responsive-and-multi-format.md +98 -0
- package/.merlin-core/skills/general/mage-beauty/references/spatial-design.md +88 -0
- package/.merlin-core/skills/general/mage-beauty/references/typography.md +60 -0
- package/.merlin-core/skills/general/mage-beauty/references/verb-adapt.md +102 -0
- package/.merlin-core/skills/general/mage-beauty/references/verb-animate.md +97 -0
- package/.merlin-core/skills/general/mage-beauty/references/verb-audit.md +99 -0
- package/.merlin-core/skills/general/mage-beauty/references/verb-bolder.md +94 -0
- package/.merlin-core/skills/general/mage-beauty/references/verb-cinematic.md +128 -0
- package/.merlin-core/skills/general/mage-beauty/references/verb-clarify.md +107 -0
- package/.merlin-core/skills/general/mage-beauty/references/verb-colorize.md +106 -0
- package/.merlin-core/skills/general/mage-beauty/references/verb-critique.md +88 -0
- package/.merlin-core/skills/general/mage-beauty/references/verb-delight.md +98 -0
- package/.merlin-core/skills/general/mage-beauty/references/verb-distill.md +97 -0
- package/.merlin-core/skills/general/mage-beauty/references/verb-harden.md +79 -0
- package/.merlin-core/skills/general/mage-beauty/references/verb-layout.md +104 -0
- package/.merlin-core/skills/general/mage-beauty/references/verb-onboard.md +98 -0
- package/.merlin-core/skills/general/mage-beauty/references/verb-optimize.md +124 -0
- package/.merlin-core/skills/general/mage-beauty/references/verb-overdrive.md +105 -0
- package/.merlin-core/skills/general/mage-beauty/references/verb-polish.md +91 -0
- package/.merlin-core/skills/general/mage-beauty/references/verb-quieter.md +95 -0
- package/.merlin-core/skills/general/mage-beauty/references/verb-rebrand.md +127 -0
- package/.merlin-core/skills/general/mage-beauty/references/verb-shape.md +160 -0
- package/.merlin-core/skills/general/mage-beauty/references/verb-typeset.md +109 -0
- package/.merlin-core/skills/general/mage-beauty/references/voice-and-microcopy.md +137 -0
- package/.merlin-core/skills/general/mcp-builder/SKILL.md +92 -0
- package/.merlin-core/skills/general/network-debug/SKILL.md +51 -0
- package/.merlin-core/skills/general/next-best-practices/SKILL.md +177 -0
- package/.merlin-core/skills/general/next-best-practices/references/async-patterns.md +87 -0
- package/.merlin-core/skills/general/next-best-practices/references/bundling.md +182 -0
- package/.merlin-core/skills/general/next-best-practices/references/data-patterns.md +306 -0
- package/.merlin-core/skills/general/next-best-practices/references/debug-tricks.md +125 -0
- package/.merlin-core/skills/general/next-best-practices/references/directives.md +74 -0
- package/.merlin-core/skills/general/next-best-practices/references/error-handling.md +232 -0
- package/.merlin-core/skills/general/next-best-practices/references/file-conventions.md +141 -0
- package/.merlin-core/skills/general/next-best-practices/references/font.md +257 -0
- package/.merlin-core/skills/general/next-best-practices/references/functions.md +108 -0
- package/.merlin-core/skills/general/next-best-practices/references/hydration-error.md +88 -0
- package/.merlin-core/skills/general/next-best-practices/references/image.md +179 -0
- package/.merlin-core/skills/general/next-best-practices/references/metadata.md +296 -0
- package/.merlin-core/skills/general/next-best-practices/references/parallel-routes.md +298 -0
- package/.merlin-core/skills/general/next-best-practices/references/route-handlers.md +146 -0
- package/.merlin-core/skills/general/next-best-practices/references/rsc-boundaries.md +164 -0
- package/.merlin-core/skills/general/next-best-practices/references/runtime-selection.md +40 -0
- package/.merlin-core/skills/general/next-best-practices/references/scripts.md +141 -0
- package/.merlin-core/skills/general/next-best-practices/references/self-hosting.md +384 -0
- package/.merlin-core/skills/general/next-best-practices/references/suspense-boundaries.md +67 -0
- package/.merlin-core/skills/general/next-steps/SKILL.md +43 -0
- package/.merlin-core/skills/general/party-mode/SKILL.md +57 -0
- package/.merlin-core/skills/general/pdf/SKILL.md +298 -0
- package/.merlin-core/skills/general/pdf/references/forms.md +312 -0
- package/.merlin-core/skills/general/pdf/references/reference.md +640 -0
- package/.merlin-core/skills/general/pdf/references/windows-setup.md +40 -0
- package/.merlin-core/skills/general/pdf/scripts/check_bounding_boxes.py +65 -0
- package/.merlin-core/skills/general/pdf/scripts/check_fillable_fields.py +11 -0
- package/.merlin-core/skills/general/pdf/scripts/convert_pdf_to_images.py +33 -0
- package/.merlin-core/skills/general/pdf/scripts/create_validation_image.py +37 -0
- package/.merlin-core/skills/general/pdf/scripts/extract_form_field_info.py +122 -0
- package/.merlin-core/skills/general/pdf/scripts/extract_form_structure.py +115 -0
- package/.merlin-core/skills/general/pdf/scripts/fill_fillable_fields.py +98 -0
- package/.merlin-core/skills/general/pdf/scripts/fill_pdf_form_with_annotations.py +107 -0
- package/.merlin-core/skills/general/pptx/SKILL.md +133 -0
- package/.merlin-core/skills/general/pptx/references/editing.md +213 -0
- package/.merlin-core/skills/general/pptx/references/pptxgenjs.md +581 -0
- package/.merlin-core/skills/general/pptx/references/windows-setup.md +27 -0
- package/.merlin-core/skills/general/pptx/scripts/__init__.py +0 -0
- package/.merlin-core/skills/general/pptx/scripts/add_slide.py +195 -0
- package/.merlin-core/skills/general/pptx/scripts/clean.py +286 -0
- package/.merlin-core/skills/general/pptx/scripts/thumbnail.py +289 -0
- package/.merlin-core/skills/general/property-testing/SKILL.md +214 -0
- package/.merlin-core/skills/general/purge-leaked-secret/SKILL.md +383 -0
- package/.merlin-core/skills/general/reflection/SKILL.md +100 -0
- package/.merlin-core/skills/general/secret-safe-commit/SKILL.md +246 -0
- package/.merlin-core/skills/general/secret-safe-commit/templates/.gitleaks.toml +91 -0
- package/.merlin-core/skills/general/secret-safe-commit/templates/.pre-commit-config.yaml +57 -0
- package/.merlin-core/skills/general/secret-safe-commit/templates/secret-scan.yml +48 -0
- package/.merlin-core/skills/general/semantic-search/SKILL.md +79 -0
- package/.merlin-core/skills/general/skill-creator/SKILL.md +342 -0
- package/.merlin-core/skills/general/skill-creator/agents/analyzer.md +283 -0
- package/.merlin-core/skills/general/skill-creator/agents/comparator.md +211 -0
- package/.merlin-core/skills/general/skill-creator/agents/grader.md +227 -0
- package/.merlin-core/skills/general/skill-creator/assets/eval_review.html +146 -0
- package/.merlin-core/skills/general/skill-creator/eval-viewer/generate_review.py +471 -0
- package/.merlin-core/skills/general/skill-creator/eval-viewer/viewer.html +1325 -0
- package/.merlin-core/skills/general/skill-creator/references/schemas.md +439 -0
- package/.merlin-core/skills/general/skill-creator/scripts/__init__.py +0 -0
- package/.merlin-core/skills/general/skill-creator/scripts/aggregate_benchmark.py +401 -0
- package/.merlin-core/skills/general/skill-creator/scripts/generate_report.py +326 -0
- package/.merlin-core/skills/general/skill-creator/scripts/improve_description.py +247 -0
- package/.merlin-core/skills/general/skill-creator/scripts/package_skill.py +136 -0
- package/.merlin-core/skills/general/skill-creator/scripts/quick_validate.py +103 -0
- package/.merlin-core/skills/general/skill-creator/scripts/run_eval.py +310 -0
- package/.merlin-core/skills/general/skill-creator/scripts/run_loop.py +328 -0
- package/.merlin-core/skills/general/skill-creator/scripts/utils.py +47 -0
- package/.merlin-core/skills/general/start-here/SKILL.md +63 -0
- package/.merlin-core/skills/general/start-here/recipes.json +758 -0
- package/.merlin-core/skills/general/start-here/recipes.schema.json +57 -0
- package/.merlin-core/skills/general/static-analysis/SKILL.md +151 -0
- package/.merlin-core/skills/general/tailwind-design-system/SKILL.md +201 -0
- package/.merlin-core/skills/general/tailwind-design-system/references/advanced-v4.md +152 -0
- package/.merlin-core/skills/general/tailwind-design-system/references/component-patterns.md +353 -0
- package/.merlin-core/skills/general/teach-method/SKILL.md +86 -0
- package/.merlin-core/skills/general/team-execution/SKILL.md +67 -0
- package/.merlin-core/skills/general/testing/SKILL.md +412 -0
- package/.merlin-core/skills/general/token-economy/SKILL.md +55 -0
- package/.merlin-core/skills/general/vps-security-hardening/SKILL.md +406 -0
- package/.merlin-core/skills/general/web-quality/SKILL.md +180 -0
- package/.merlin-core/skills/general/webapp-testing/SKILL.md +153 -0
- package/.merlin-core/skills/general/webapp-testing/scripts/screenshot_compare.py +72 -0
- package/.merlin-core/skills/general/webapp-testing/scripts/with_server.py +103 -0
- package/.merlin-core/skills/general/xlsx/SKILL.md +167 -0
- package/.merlin-core/skills/general/xlsx/references/nodejs-sheetjs-styled-reports.md +141 -0
- package/.merlin-core/skills/general/xlsx/references/windows-setup.md +17 -0
- package/.merlin-core/skills/general/xlsx/scripts/recalc.py +184 -0
- package/.merlin-core/skills/general/xlsx/scripts/styled-report.js +130 -0
- package/.merlin-core/skills/general/yolo-mode/SKILL.md +60 -0
- package/.merlin-core/skills/general/youtube-transcript/SKILL.md +177 -0
- package/.merlin-core/skills/general/youtube-transcript/scripts/fetch_transcript.py +188 -0
- package/.merlin-core/skills/general/youtube-transcript/scripts/gladia_transcribe.mjs +230 -0
- package/.merlin-core/tools/commands/activate.js +72 -0
- package/.merlin-core/tools/commands/archive-thoughts.js +181 -0
- package/.merlin-core/tools/commands/backup.js +156 -0
- package/.merlin-core/tools/commands/certify-process.js +196 -0
- package/.merlin-core/tools/commands/convert.js +87 -0
- package/.merlin-core/tools/commands/cron.js +147 -0
- package/.merlin-core/tools/commands/disable.js +73 -0
- package/.merlin-core/tools/commands/doc-sync.js +127 -0
- package/.merlin-core/tools/commands/eval-skill.js +193 -0
- package/.merlin-core/tools/commands/frontmatter.js +49 -0
- package/.merlin-core/tools/commands/heartbeat.js +43 -0
- package/.merlin-core/tools/commands/index-thoughts.js +35 -0
- package/.merlin-core/tools/commands/install-remote-approve.js +184 -0
- package/.merlin-core/tools/commands/install.js +81 -0
- package/.merlin-core/tools/commands/lib/__verify__/diff-reports.js +170 -0
- package/.merlin-core/tools/commands/lib/fs-safe.js +186 -0
- package/.merlin-core/tools/commands/lib/preflight.js +607 -0
- package/.merlin-core/tools/commands/lib/preserve.js +232 -0
- package/.merlin-core/tools/commands/lib/project-config.template.yaml +69 -0
- package/.merlin-core/tools/commands/lib/report.js +231 -0
- package/.merlin-core/tools/commands/lib/settings-merge.js +134 -0
- package/.merlin-core/tools/commands/license.js +52 -0
- package/.merlin-core/tools/commands/list.js +125 -0
- package/.merlin-core/tools/commands/migrate-alkimia.js +271 -0
- package/.merlin-core/tools/commands/modules.js +68 -0
- package/.merlin-core/tools/commands/provision.js +83 -0
- package/.merlin-core/tools/commands/prune-feedback.js +114 -0
- package/.merlin-core/tools/commands/run-process.js +28 -0
- package/.merlin-core/tools/commands/state.js +79 -0
- package/.merlin-core/tools/commands/sync-bridges.js +197 -0
- package/.merlin-core/tools/commands/upgrade.js +1135 -0
- package/.merlin-core/tools/commands/validate-recipes.js +218 -0
- package/.merlin-core/tools/commands/validate.js +159 -0
- package/.merlin-core/tools/commands/yolo.js +82 -0
- package/.merlin-core/tools/compose-rules.mjs +179 -0
- package/.merlin-core/tools/disable-module.mjs +150 -0
- package/.merlin-core/tools/lib/deployer.mjs +131 -0
- package/.merlin-core/tools/lib/modules-activation.mjs +225 -0
- package/.merlin-core/tools/merlin-tools.js +153 -0
- package/.merlin-core/tools/migrate-frontmatter-v3.js +192 -0
- package/.merlin-core/tools/modules-catalog.mjs +174 -0
- package/.merlin-core/tools/provision-module.mjs +191 -0
- package/.merlin-core/tools/verify-module.mjs +99 -0
- package/.merlin-core/tools/vps-security-audit.sh +234 -0
- package/INSTALL.md +312 -0
- package/LICENSE +118 -0
- package/PRIVACY-LICENSING.md +65 -0
- package/README.md +391 -0
- package/bin/README.md +15 -0
- package/bin/convert-to-merlin.sh +109 -0
- package/bin/fleet-patch-hooks.sh +144 -0
- package/bin/fleet-patch-v3-fixes.sh +127 -0
- package/bin/merlin-init.js +232 -0
- package/bin/merlin.js +321 -0
- package/package.json +127 -0
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# verb-harden — Edge cases, i18n, overflow, error states
|
|
2
|
+
|
|
3
|
+
## Trigger
|
|
4
|
+
|
|
5
|
+
User invokes `/beauty harden [target]` or asks to "harden this for production," "handle edge cases," "what about long names / empty data / errors / RTL," "make this robust." **Web only** — Remotion content is deterministic, so hardening doesn't apply the same way.
|
|
6
|
+
|
|
7
|
+
## Inputs
|
|
8
|
+
|
|
9
|
+
- A web target that works in the happy path
|
|
10
|
+
- Optional: focus on a specific dimension ("harden for i18n", "harden for empty states")
|
|
11
|
+
|
|
12
|
+
## Process
|
|
13
|
+
|
|
14
|
+
1. Read `references/interaction-design.md` (loading/error/empty states), `responsive-and-multi-format.md` (overflow), `voice-and-microcopy.md` (i18n-friendly copy).
|
|
15
|
+
2. Run through the **8 hostile scenarios** for every component touched:
|
|
16
|
+
- **Empty state** — what shows when the data array is `[]`?
|
|
17
|
+
- **Single state** — what shows with exactly 1 item? (cards designed for 3 often look broken with 1)
|
|
18
|
+
- **Many state** — what shows with 100+ items? (paginate? virtualize?)
|
|
19
|
+
- **Long text** — German labels are ~30% longer than English. "Anmelden" vs "Sign in" is fine; "Datenschutzerklärung" overflows. Test with 2x string length.
|
|
20
|
+
- **Network failure** — async operation fails: error message? retry? cached fallback?
|
|
21
|
+
- **Slow network** — loading state visible? skeleton or spinner?
|
|
22
|
+
- **No JS** — does the core function work without client-side JS? (server-side rendering / progressive enhancement)
|
|
23
|
+
- **RTL languages** — Arabic, Hebrew, Persian: does the layout mirror correctly? icons that imply direction (chevrons, arrows)?
|
|
24
|
+
3. For each scenario, add the missing handling: empty-state component, error UI, fallback content, overflow ellipsis or wrap, RTL-aware logical properties (margin-inline-start instead of margin-left).
|
|
25
|
+
|
|
26
|
+
## Output
|
|
27
|
+
|
|
28
|
+
Target with hardening applied + checklist of scenarios covered.
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
Harden applied:
|
|
32
|
+
- Empty state: "No projects yet" with [+ New Project] CTA
|
|
33
|
+
- Long-text: H1 max-width: 65ch + word-break: balance
|
|
34
|
+
- Network error: try/catch in fetcher + error toast with retry
|
|
35
|
+
- Loading: skeleton component for 200ms+ async
|
|
36
|
+
- RTL: replaced ml-4 with ms-4, replaced ChevronRight with logical icon
|
|
37
|
+
- Slow network: loading.tsx (Next.js) + Suspense boundaries
|
|
38
|
+
|
|
39
|
+
Scenarios covered: 8/8
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## Pre-checks
|
|
43
|
+
|
|
44
|
+
- [ ] Empty state designed for every list/grid component
|
|
45
|
+
- [ ] Single-item state doesn't break "feature card row" layouts
|
|
46
|
+
- [ ] Long strings don't break layout (max-width or wrapping)
|
|
47
|
+
- [ ] All async ops have error + loading states
|
|
48
|
+
- [ ] Logical properties (`ms-`, `me-`, `ps-`, `pe-`) used instead of physical (`ml-`, `mr-`, `pl-`, `pr-`)
|
|
49
|
+
- [ ] Direction-implying icons swapped or auto-mirrored
|
|
50
|
+
- [ ] No JS path tested (SSR/static fallback)
|
|
51
|
+
- [ ] Keyboard navigation works through new states (empty, loading, error)
|
|
52
|
+
|
|
53
|
+
## Examples
|
|
54
|
+
|
|
55
|
+
**Web target harden pass:**
|
|
56
|
+
|
|
57
|
+
```
|
|
58
|
+
File: components/ProjectsList.tsx
|
|
59
|
+
|
|
60
|
+
Before:
|
|
61
|
+
- Renders projects.map(project => <Card>) — explodes on empty array (no items shown, blank space)
|
|
62
|
+
- Card title h-12 fixed — overflows with German project name
|
|
63
|
+
- No loading state during fetch
|
|
64
|
+
- No error handling
|
|
65
|
+
|
|
66
|
+
After:
|
|
67
|
+
- Empty state component with "Create your first project" CTA when projects.length === 0
|
|
68
|
+
- Card title min-h-[3rem] + line-clamp-2 + max-w-prose
|
|
69
|
+
- Suspense boundary around ProjectsList → loading.tsx shows skeleton 200ms+
|
|
70
|
+
- ErrorBoundary with "Couldn't load projects, retry?" UI
|
|
71
|
+
- ms-4 instead of ml-4 (RTL-safe)
|
|
72
|
+
- Card chevron uses inline-start icon variant
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## Cross-references
|
|
76
|
+
|
|
77
|
+
- Cites: `interaction-design.md`, `responsive-and-multi-format.md`, `voice-and-microcopy.md`
|
|
78
|
+
- For full UX guidelines on edge cases: `design-ux-patterns` skill, `references/ux-guidelines.md`
|
|
79
|
+
- Companion: `verb-onboard` (designs the empty state's first-run flow specifically)
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
# verb-layout — Fix spatial rhythm, composition, grid
|
|
2
|
+
|
|
3
|
+
## Trigger
|
|
4
|
+
|
|
5
|
+
User invokes `/beauty layout [target]` or asks to "fix the layout," "the spacing is off," "this feels cramped," "rebuild the grid." Targets composition specifically — doesn't touch type/color/motion.
|
|
6
|
+
|
|
7
|
+
## Inputs
|
|
8
|
+
|
|
9
|
+
- A target with composition problems (cramped padding, broken grid, no negative space, centered-everything)
|
|
10
|
+
|
|
11
|
+
## Process
|
|
12
|
+
|
|
13
|
+
1. Read `references/spatial-design.md` (primary). For Remotion: `responsive-and-multi-format.md` + `remotion-bridge.md` for layout bucket.
|
|
14
|
+
2. Audit current state:
|
|
15
|
+
- Spacing scale used or arbitrary px values?
|
|
16
|
+
- Section padding — generous or cramped?
|
|
17
|
+
- Grid — single column, 12-col, asymmetric, bento?
|
|
18
|
+
- Negative space — element or wasted space?
|
|
19
|
+
- Layout breaks — present or symmetric throughout?
|
|
20
|
+
- Max-width discipline — body 65 ch / marketing 1280 px / full-bleed?
|
|
21
|
+
3. Apply fixes:
|
|
22
|
+
- **Spacing tokens** — replace arbitrary values with `space-1` through `space-16`
|
|
23
|
+
- **Section padding** — mobile ≥ 48 px Y, desktop ≥ 96 px Y
|
|
24
|
+
- **One grid break per section** — bleed photo, asymmetric split, layered card
|
|
25
|
+
- **Container queries** if components reflow at component-level
|
|
26
|
+
- **Logical max-widths** — `max-w-prose` for body, `max-w-7xl` for marketing, `w-full` for bleed
|
|
27
|
+
4. For Remotion: pick layout component per aspect ratio (vertical / square / wide all need different compositions).
|
|
28
|
+
|
|
29
|
+
## Output
|
|
30
|
+
|
|
31
|
+
Target with layout fixed + spacing tokens + grid rationale.
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
Layout applied:
|
|
35
|
+
- Section padding mobile: py-12 → py-16 (more breathing)
|
|
36
|
+
- Section padding desktop: py-20 → py-32 (luxurious)
|
|
37
|
+
- Hero composition: centered → 5-col text + 7-col image (asymmetric)
|
|
38
|
+
- Hero photo: max-w-screen-lg → bleed full-width (one grid break)
|
|
39
|
+
- Body sections: w-full → max-w-prose (65 ch line length)
|
|
40
|
+
- Replaced: padding: 19px → space-5 (20 px from token scale)
|
|
41
|
+
- Removed: card-in-card nesting (anti-pattern #10)
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Pre-checks
|
|
45
|
+
|
|
46
|
+
- [ ] Spacing tokens used everywhere (no arbitrary px)
|
|
47
|
+
- [ ] Section padding generous (mobile 48+ Y, desktop 96+ Y)
|
|
48
|
+
- [ ] At least one intentional grid break per major section
|
|
49
|
+
- [ ] Asymmetric composition where appropriate (no centered-everything anti-pattern)
|
|
50
|
+
- [ ] Negative space treated as a design element
|
|
51
|
+
- [ ] Max-width discipline (prose / marketing / bleed are distinct)
|
|
52
|
+
- [ ] No card-in-card nesting (anti-pattern #10)
|
|
53
|
+
- [ ] No equal-weight navigation (anti-pattern #12)
|
|
54
|
+
- [ ] For Remotion: format-specific composition (vertical ≠ wide)
|
|
55
|
+
- [ ] For Remotion: safe areas respected per platform
|
|
56
|
+
|
|
57
|
+
## Examples
|
|
58
|
+
|
|
59
|
+
**Web target layout pass:**
|
|
60
|
+
|
|
61
|
+
```
|
|
62
|
+
File: app/landing/page.tsx
|
|
63
|
+
|
|
64
|
+
Before:
|
|
65
|
+
- All sections py-12 (cramped on desktop)
|
|
66
|
+
- Hero: 12-col grid, all 12 cols filled with centered content
|
|
67
|
+
- Feature cards: 3-col grid, all identical sizes
|
|
68
|
+
- No grid breaks, symmetric throughout
|
|
69
|
+
|
|
70
|
+
After:
|
|
71
|
+
- Sections: py-16 mobile / py-32 desktop
|
|
72
|
+
- Hero: 5-col text + 7-col image, image bleeds beyond container right edge
|
|
73
|
+
- Feature cards: bento grid (1 large + 2 medium + 3 small), max 4 cells per row
|
|
74
|
+
- One grid break per section: hero (image bleed), features (large card), testimonials (full-width quote on dark band)
|
|
75
|
+
- All padding from token scale
|
|
76
|
+
|
|
77
|
+
Page now has visual rhythm — sections breathe and contrast.
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
**Remotion target layout pass:**
|
|
81
|
+
|
|
82
|
+
```
|
|
83
|
+
File: scene/ContentScene.tsx (1080×1920 vertical)
|
|
84
|
+
|
|
85
|
+
Before:
|
|
86
|
+
- layout/CenteredContent — single text block centered vertically
|
|
87
|
+
- Top 50 px wasted, bottom 100 px wasted
|
|
88
|
+
- Critical text near platform UI overlay zone
|
|
89
|
+
|
|
90
|
+
After:
|
|
91
|
+
- layout/SplitScreen 50/50 (top: heading, bottom: supporting)
|
|
92
|
+
- Top reserved 200 px (Instagram username)
|
|
93
|
+
- Bottom reserved 250 px (caption zone)
|
|
94
|
+
- Critical content in central 980×1470 region
|
|
95
|
+
- Heading at vertical-third intersection (rule of thirds)
|
|
96
|
+
|
|
97
|
+
Composition now respects platform constraints + reads with hierarchy.
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
## Cross-references
|
|
101
|
+
|
|
102
|
+
- Cites: `spatial-design.md` (primary), `responsive-and-multi-format.md`, `remotion-bridge.md`
|
|
103
|
+
- For 30 landing pattern catalog: `design-ux-patterns` skill, `references/landing-patterns.md`
|
|
104
|
+
- Companion: `verb-typeset` (typography inside the new layout), `verb-adapt` (multi-format reflow)
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
# verb-onboard — First-run flows, empty states, activation paths
|
|
2
|
+
|
|
3
|
+
## Trigger
|
|
4
|
+
|
|
5
|
+
User invokes `/beauty onboard [target]` or asks to "design the first-run experience," "make the empty state useful," "help users activate," "what should new users see." **Web only** — covers the moment between sign-up and the user's first meaningful action.
|
|
6
|
+
|
|
7
|
+
## Inputs
|
|
8
|
+
|
|
9
|
+
- A target that's the entry point or empty container (dashboard, list, project area)
|
|
10
|
+
- Context: who is the new user, what's the first action they should take
|
|
11
|
+
|
|
12
|
+
## Process
|
|
13
|
+
|
|
14
|
+
1. Read `references/interaction-design.md` (empty states + loading), `voice-and-microcopy.md` (encouraging tone, action-first labels).
|
|
15
|
+
2. Define the **activation moment** — the first action that proves the product's value. For a project tool, "create first project." For analytics, "see first chart." Single action, low friction.
|
|
16
|
+
3. Strip the empty state to 3 elements:
|
|
17
|
+
- **Context** — one sentence explaining what's normally here
|
|
18
|
+
- **Action** — primary CTA leading to the activation moment
|
|
19
|
+
- **Optional secondary** — link to docs, sample data, or import flow
|
|
20
|
+
4. Design the **first-run flow** as a sequence:
|
|
21
|
+
- Welcome card or modal (skippable, never blocking)
|
|
22
|
+
- One contextual hint (tooltip on the primary action)
|
|
23
|
+
- Confirmation of first success ("Project created — let's add a task")
|
|
24
|
+
5. Don't gate the product behind a tour. Tours are skipped 70%+ of the time. Build the product so the empty state itself teaches.
|
|
25
|
+
|
|
26
|
+
## Output
|
|
27
|
+
|
|
28
|
+
Target with empty state, activation CTA, and (optionally) a contextual hint added. Plus copy for each.
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
Onboard applied:
|
|
32
|
+
- Empty state: illustration + "Your first project starts here" + [+ New Project]
|
|
33
|
+
- Secondary: "Or import from CSV" + "Try with sample data"
|
|
34
|
+
- First success: toast "Project created! Add your first task →"
|
|
35
|
+
- Removed: 5-step tour modal (was 60% drop-off at step 3)
|
|
36
|
+
- Microcopy reviewed for warmth + specificity
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Pre-checks
|
|
40
|
+
|
|
41
|
+
- [ ] Single primary action in the empty state
|
|
42
|
+
- [ ] Activation moment achievable in <1 minute from sign-up
|
|
43
|
+
- [ ] No blocking tour or wizard
|
|
44
|
+
- [ ] First success has a clear "what's next" prompt
|
|
45
|
+
- [ ] Microcopy uses outcome-based verbs ("Create your first project" not "Get started")
|
|
46
|
+
- [ ] Empty state visually balanced (illustration not requiring 200 KB SVG)
|
|
47
|
+
- [ ] Sample data or quick-start option available
|
|
48
|
+
- [ ] Keyboard-accessible — Enter on the primary action works
|
|
49
|
+
- [ ] Touch targets ≥ 44 px on mobile
|
|
50
|
+
|
|
51
|
+
## Examples
|
|
52
|
+
|
|
53
|
+
**Web target onboard pass:**
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
File: app/dashboard/page.tsx
|
|
57
|
+
|
|
58
|
+
Before:
|
|
59
|
+
- Empty dashboard shows "No data" placeholder text + tiny "Add data" link
|
|
60
|
+
- Tour modal pops on every visit until dismissed (60% skip rate)
|
|
61
|
+
- New users bounce in 90 seconds
|
|
62
|
+
|
|
63
|
+
After:
|
|
64
|
+
- Empty dashboard: "Connect your first data source" + 3 large CTA tiles (CSV / API / Sample data)
|
|
65
|
+
- One-time inline tooltip on the CSV tile: "Most users start here"
|
|
66
|
+
- After first import: "Your data is in — explore your first chart →"
|
|
67
|
+
- Tour removed
|
|
68
|
+
- Average time-to-first-chart: dropped from 4 min to 90 s
|
|
69
|
+
|
|
70
|
+
Activation rate (% reaching first chart): 38% → 71%
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
**Empty state copy patterns:**
|
|
74
|
+
|
|
75
|
+
```
|
|
76
|
+
[Standard empty]
|
|
77
|
+
"No projects yet"
|
|
78
|
+
[+ Create your first project]
|
|
79
|
+
"Or import from another tool"
|
|
80
|
+
|
|
81
|
+
[Filtered empty]
|
|
82
|
+
"No projects match `[filter]`"
|
|
83
|
+
[Clear filter] [Try different keywords]
|
|
84
|
+
|
|
85
|
+
[Recently completed]
|
|
86
|
+
"You've cleared your inbox 🌟"
|
|
87
|
+
"Take a break, or [start something new]"
|
|
88
|
+
|
|
89
|
+
[Permission-blocked]
|
|
90
|
+
"You don't have access to this workspace"
|
|
91
|
+
"Ask the owner to invite you, or [request access]"
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
## Cross-references
|
|
95
|
+
|
|
96
|
+
- Cites: `interaction-design.md`, `voice-and-microcopy.md`, `spatial-design.md` (empty-state composition)
|
|
97
|
+
- For activation funnel patterns: `design-ux-patterns` skill, conversion flows
|
|
98
|
+
- Companion: `verb-clarify` (refines copy in the onboard flow), `verb-harden` (handles error edge cases)
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
# verb-optimize — Performance improvements
|
|
2
|
+
|
|
3
|
+
## Trigger
|
|
4
|
+
|
|
5
|
+
User invokes `/beauty optimize [target]` or asks to "make this faster," "improve performance," "reduce bundle / render time," "fix the LCP." Targets performance specifically — does not change visual design (use `verb-distill` for visual reduction).
|
|
6
|
+
|
|
7
|
+
## Inputs
|
|
8
|
+
|
|
9
|
+
- A target with measurable performance issues (slow LCP, large bundle, slow renders, large videos)
|
|
10
|
+
- Optional: focus area ("optimize images", "optimize render", "reduce JS")
|
|
11
|
+
|
|
12
|
+
## Process
|
|
13
|
+
|
|
14
|
+
1. **For web targets:**
|
|
15
|
+
- Read `references/responsive-and-multi-format.md`, `motion-design.md`
|
|
16
|
+
- Run mental Lighthouse pass: LCP ≤ 2.5 s, CLS ≤ 0.1, INP ≤ 200 ms, TBT ≤ 200 ms
|
|
17
|
+
- **Image optimization** — WebP/AVIF with `<picture>` fallback, explicit width/height (prevents CLS), `loading="lazy"` below fold, `sizes` attribute for responsive images
|
|
18
|
+
- **Font optimization** — preload critical fonts, `font-display: swap`, subset to used characters, prefer variable fonts
|
|
19
|
+
- **Bundle** — code-split routes, dynamic imports for heavy components, tree-shake unused code, audit for duplicate dependencies
|
|
20
|
+
- **Render** — virtualize long lists (≥100 items), memoize expensive components, debounce inputs, avoid re-renders
|
|
21
|
+
- **Network** — HTTP/2 push for critical CSS, brotli compression, cache strategy (immutable for hashed assets)
|
|
22
|
+
2. **For Remotion targets:**
|
|
23
|
+
- Read `references/remotion-bridge.md` (component-bucket-specific render perf)
|
|
24
|
+
- Audit render time per scene
|
|
25
|
+
- Reduce VideoLayerStack to ≤ 4 layers per segment
|
|
26
|
+
- Maximum 1 ParticleSystem per video
|
|
27
|
+
- Pre-compose static elements (don't re-render unchanged)
|
|
28
|
+
- Lower fps if quality permits (60 → 30 fps cuts render in half)
|
|
29
|
+
- Resolution: 1080p ships, 4K only when needed
|
|
30
|
+
3. Measure before + after (Lighthouse for web, render duration for Remotion).
|
|
31
|
+
|
|
32
|
+
## Output
|
|
33
|
+
|
|
34
|
+
Target with optimizations applied + before/after metrics.
|
|
35
|
+
|
|
36
|
+
```
|
|
37
|
+
Optimize applied (web):
|
|
38
|
+
- Hero image: 800 KB JPG → 95 KB AVIF + WebP fallback
|
|
39
|
+
- Added: explicit width/height on all images (CLS 0.18 → 0.04)
|
|
40
|
+
- Fonts: 6 weights loaded → 3 weights, 80 KB → 36 KB
|
|
41
|
+
- Code-split: /pricing route now dynamic-imported (saved 120 KB initial bundle)
|
|
42
|
+
- Replaced: lodash full import → lodash-es tree-shaken (saved 60 KB)
|
|
43
|
+
- Lighthouse: LCP 4.2 s → 1.8 s, TBT 480 ms → 140 ms
|
|
44
|
+
|
|
45
|
+
Optimize applied (Remotion):
|
|
46
|
+
- Render time per video: 4 min → 2.2 min
|
|
47
|
+
- Reduced VideoLayerStack from 6 → 4 layers per segment
|
|
48
|
+
- Removed redundant ColorGrade per element (now applied once at scene level)
|
|
49
|
+
- Particle count: 800 → 200 (still reads as "celebratory")
|
|
50
|
+
- fps unchanged (30 was already correct)
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## Pre-checks
|
|
54
|
+
|
|
55
|
+
**Web:**
|
|
56
|
+
|
|
57
|
+
- [ ] LCP ≤ 2.5 s, CLS ≤ 0.1, INP ≤ 200 ms
|
|
58
|
+
- [ ] All images WebP/AVIF with fallback
|
|
59
|
+
- [ ] Explicit width/height on images
|
|
60
|
+
- [ ] Below-fold images `loading="lazy"`
|
|
61
|
+
- [ ] Critical fonts preloaded
|
|
62
|
+
- [ ] Routes code-split
|
|
63
|
+
- [ ] No unused dependencies in bundle
|
|
64
|
+
- [ ] Long lists virtualized (≥100 items)
|
|
65
|
+
- [ ] Brotli/gzip compression enabled
|
|
66
|
+
|
|
67
|
+
**Remotion:**
|
|
68
|
+
|
|
69
|
+
- [ ] VideoLayerStack ≤ 4 layers per segment
|
|
70
|
+
- [ ] Max 1 ParticleSystem per video
|
|
71
|
+
- [ ] ColorGrade at scene level, not per-element
|
|
72
|
+
- [ ] Static elements pre-composed where possible
|
|
73
|
+
- [ ] fps appropriate to use case (30 fps default; 60 only for sport/gameplay)
|
|
74
|
+
- [ ] Resolution matches delivery (1080p ships)
|
|
75
|
+
|
|
76
|
+
## Examples
|
|
77
|
+
|
|
78
|
+
**Web target optimize pass:**
|
|
79
|
+
|
|
80
|
+
```
|
|
81
|
+
File: app/landing/page.tsx + next.config.js
|
|
82
|
+
|
|
83
|
+
Before:
|
|
84
|
+
- Hero image: 1.2 MB original JPG, no width/height
|
|
85
|
+
- LCP: 4.6 s
|
|
86
|
+
- CLS: 0.22 (image loads after layout)
|
|
87
|
+
- Bundle: 540 KB (lodash full import + moment.js + duplicates)
|
|
88
|
+
|
|
89
|
+
After:
|
|
90
|
+
- Hero image: next/image with priority, AVIF source 95 KB
|
|
91
|
+
- next/image auto-handles width/height (CLS 0.03)
|
|
92
|
+
- Replaced moment.js → date-fns (saved 70 KB)
|
|
93
|
+
- lodash → lodash-es tree-shaken (saved 50 KB)
|
|
94
|
+
- Removed duplicate React versions in pnpm-lock
|
|
95
|
+
- LCP: 1.6 s (target ≤ 2.5)
|
|
96
|
+
- CLS: 0.03 (target ≤ 0.1)
|
|
97
|
+
- Bundle: 380 KB
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
**Remotion target optimize pass:**
|
|
101
|
+
|
|
102
|
+
```
|
|
103
|
+
File: renderer/src/Compositions/DynamicVideo.tsx
|
|
104
|
+
|
|
105
|
+
Before:
|
|
106
|
+
- 6 VideoLayerStack layers per segment
|
|
107
|
+
- ColorGrade applied per element (redundant)
|
|
108
|
+
- ParticleSystem count: 800 (overkill)
|
|
109
|
+
- Render: 5.8 min for 60s video
|
|
110
|
+
|
|
111
|
+
After:
|
|
112
|
+
- Reduced to 4 layers per segment (compose foreground vs background once)
|
|
113
|
+
- ColorGrade hoisted to scene level (single application)
|
|
114
|
+
- ParticleSystem count: 200 (still reads celebratory)
|
|
115
|
+
- Pre-rendered static lower-third graphic (was redrawn every frame)
|
|
116
|
+
- Render: 2.4 min for 60 s video (-58%)
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
## Cross-references
|
|
120
|
+
|
|
121
|
+
- Cites: `responsive-and-multi-format.md`, `motion-design.md`, `remotion-bridge.md`
|
|
122
|
+
- For full web perf rules: Merlin's `web-perf` skill (Core Web Vitals)
|
|
123
|
+
- For Remotion performance: see `renderer/CLAUDE.md` in FF for ANGLE/GPU specifics
|
|
124
|
+
- Companion: `verb-distill` (visual reduction often = perf gain)
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
# verb-overdrive — Technically extraordinary effects
|
|
2
|
+
|
|
3
|
+
## Trigger
|
|
4
|
+
|
|
5
|
+
User invokes `/beauty overdrive [target]` or asks to "go all out," "make this technically impressive," "wow them," "no holds barred." This is the **maximalist** verb — used for hero moments, launch announcements, portfolio showcases, brand films. Use sparingly: overdrive on every page is template-energy maximalism, which is exactly what we don't want.
|
|
6
|
+
|
|
7
|
+
## Inputs
|
|
8
|
+
|
|
9
|
+
- A target that needs to be a wow-moment (hero, launch banner, finale scene)
|
|
10
|
+
- Optional: technical direction ("WebGL fluid sim", "scroll-triggered cinematic timeline", "glitch grade stack")
|
|
11
|
+
|
|
12
|
+
## Process
|
|
13
|
+
|
|
14
|
+
1. Read all references — overdrive uses the full skill: `motion-design.md`, `color-and-contrast.md`, `spatial-design.md`, `typography.md`, `voice-and-microcopy.md`, `remotion-bridge.md` for video.
|
|
15
|
+
2. Pick a **single technically extraordinary effect** as the centerpiece. One. Not five.
|
|
16
|
+
- **Web options:**
|
|
17
|
+
- WebGL shader background (fluid simulation, generative noise, displacement)
|
|
18
|
+
- Scroll-triggered cinematic timeline (GSAP ScrollTrigger sequencing)
|
|
19
|
+
- 3D scene (Three.js / React Three Fiber) with controlled camera
|
|
20
|
+
- SVG path morphing / drawing animation
|
|
21
|
+
- Hover-tilt-cards with realistic light response
|
|
22
|
+
- Cursor-following effects with physics
|
|
23
|
+
- **Remotion options:**
|
|
24
|
+
- Stacked cinematic (ColorGrade + CameraMotion + multiple TransitionEffect variants)
|
|
25
|
+
- Beat-synced edit with timeline-driven effects
|
|
26
|
+
- Custom glitch + chromatic aberration + grain stack
|
|
27
|
+
- Multi-layer composited segments with depth
|
|
28
|
+
3. Layer **4-7 supporting techniques** around it (carefully): typographic display weight, dramatic letter-spacing animation, motion stagger pronounced, accent color used sparingly + intensely, full-bleed media, microcopy direct.
|
|
29
|
+
4. Verify the overdrive doesn't break: respects `prefers-reduced-motion` (provides static fallback), still loads on mid-range devices (test on throttled network + CPU), maintains a11y (focus rings, keyboard nav).
|
|
30
|
+
5. Pre-check anti-patterns more strictly than any other verb — overdrive is where it's easiest to slip into "AI-generic maximalism" (e.g., the WebGL shader becoming a purple-blue gradient).
|
|
31
|
+
|
|
32
|
+
## Output
|
|
33
|
+
|
|
34
|
+
Target with the centerpiece + supporting techniques + reduced-motion fallback + log.
|
|
35
|
+
|
|
36
|
+
```
|
|
37
|
+
Overdrive applied (web hero):
|
|
38
|
+
- Centerpiece: WebGL fluid simulation background (GLSL shader, OKLCH-colored, responds to mouse)
|
|
39
|
+
- Supporting: H1 weight 900, letter-spacing -0.06em, animated +0.1em → -0.06em over 600ms
|
|
40
|
+
- Stagger reveals: 80ms → 120ms (more dramatic)
|
|
41
|
+
- CTA hover: 3D tilt + light response, 200ms ease-out
|
|
42
|
+
- Particles disabled on prefers-reduced-motion (CSS gradient fallback)
|
|
43
|
+
- Mid-range device perf: tested on M1 Air at 4G throttle, holds 60fps
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## Pre-checks
|
|
47
|
+
|
|
48
|
+
- [ ] One centerpiece, not five (overdrive ≠ kitchen sink)
|
|
49
|
+
- [ ] All anti-patterns hard-checked (no purple→blue, no Inter alone, no card-in-card)
|
|
50
|
+
- [ ] prefers-reduced-motion provides static fallback
|
|
51
|
+
- [ ] Tested on mid-range device + 4G throttle (still loads + interacts)
|
|
52
|
+
- [ ] WCAG AA still passes (overdrive ≠ accessibility regression)
|
|
53
|
+
- [ ] Keyboard navigation works through dramatic states
|
|
54
|
+
- [ ] Focus rings visible despite dramatic effects
|
|
55
|
+
- [ ] No autoplay audio
|
|
56
|
+
- [ ] For Remotion: ParticleSystem still ≤ 1 per video
|
|
57
|
+
- [ ] For Remotion: VideoLayerStack still ≤ 4 layers per segment
|
|
58
|
+
- [ ] Mental check: if 100 designers saw this, would 80+ call it impressive — or generic? If <80, redo.
|
|
59
|
+
|
|
60
|
+
## Examples
|
|
61
|
+
|
|
62
|
+
**Web target overdrive pass:**
|
|
63
|
+
|
|
64
|
+
```
|
|
65
|
+
File: app/landing/page.tsx
|
|
66
|
+
|
|
67
|
+
Before:
|
|
68
|
+
- Standard SaaS landing: hero text + photo + CTA + features grid
|
|
69
|
+
- Identity moderate
|
|
70
|
+
|
|
71
|
+
After:
|
|
72
|
+
- Centerpiece: WebGL fluid sim background (custom GLSL, brand-OKLCH palette, mouse-responsive at low intensity)
|
|
73
|
+
- H1 "Build with intention" / weight 900 / letter-spacing animation +0.10em → -0.04em over 800 ms ease-out
|
|
74
|
+
- Stagger reveal: H1 → subtitle → CTA, 120 ms apart, exits 60 ms (snappy on dismiss)
|
|
75
|
+
- Hover-tilt cards in features section (max 3-degree tilt with brand-color light response)
|
|
76
|
+
- prefers-reduced-motion: WebGL replaced with subtle CSS gradient + static fade-in on H1
|
|
77
|
+
- Mid-range perf: 60 fps M1 Air, 45 fps Pixel 6, falls back to gradient on ≤ 30 fps detected
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
**Remotion target overdrive pass:**
|
|
81
|
+
|
|
82
|
+
```
|
|
83
|
+
File: scene/IntroScene-overdrive.tsx (campaign launch reel)
|
|
84
|
+
|
|
85
|
+
Before:
|
|
86
|
+
- Standard intro: title + subtitle + simple fade-in
|
|
87
|
+
|
|
88
|
+
After:
|
|
89
|
+
- Stacked cinematic centerpiece:
|
|
90
|
+
- cinematic/ColorGrade preset="cyberpunk" (high-impact emotion)
|
|
91
|
+
- cinematic/CameraMotion preset="dolly" (forward push, urgency)
|
|
92
|
+
- cinematic/TransitionEffect "glitch" on entry, "wipe" on exit
|
|
93
|
+
- Title weight 900 + letter-spacing animation +0.12em → 0 over 18 frames
|
|
94
|
+
- Subtitle stagger: 4 frames after title (compressed = energy)
|
|
95
|
+
- cinematic/ParticleSystem preset="glitch-blocks" 24 frames (single use, first scene only)
|
|
96
|
+
- Layer count: 4 (max per stack rule respected)
|
|
97
|
+
- Render: 90 s scene at 6.2 min — within budget
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
## Cross-references
|
|
101
|
+
|
|
102
|
+
- Cites: ALL thematic references + `remotion-bridge.md`
|
|
103
|
+
- Anti-patterns enforcement: `anti-patterns.md` (mandatory pre-check, stricter than other verbs)
|
|
104
|
+
- Antagonist: `verb-quieter` and `verb-distill` (when overdrive overshoots)
|
|
105
|
+
- Companion: `verb-cinematic` (Remotion-first overdrive); `verb-rebrand` (when overdrive is part of a fresh aesthetic direction)
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
# verb-polish — Final pass before ship
|
|
2
|
+
|
|
3
|
+
## Trigger
|
|
4
|
+
|
|
5
|
+
User invokes `/beauty polish [target]` or asks to "finalize this design," "ready it for ship," "do a polish pass," "make it production-ready." This verb is the **last step** before delivery — it assumes the design is fundamentally right and tightens execution.
|
|
6
|
+
|
|
7
|
+
## Inputs
|
|
8
|
+
|
|
9
|
+
- A target file or component (presumed near-final)
|
|
10
|
+
- Optional: focus area ("polish the hero", "polish the form")
|
|
11
|
+
|
|
12
|
+
## Process
|
|
13
|
+
|
|
14
|
+
1. Run `verb-critique` mentally first — if there are fundamental issues, redirect to those verbs (`bolder`, `distill`, `rebrand`). Polish is for tight execution, not for fixing direction.
|
|
15
|
+
2. Read references in priority order: `anti-patterns.md` (must-pass), `typography.md`, `color-and-contrast.md`, `spatial-design.md`, `motion-design.md`, `voice-and-microcopy.md`. For Remotion: also `remotion-bridge.md`.
|
|
16
|
+
3. Apply micro-fixes across:
|
|
17
|
+
- **Type:** letter-spacing on display, line-height, font-weight balance
|
|
18
|
+
- **Color:** verify WCAG, check tinted neutrals, hover/active state colors
|
|
19
|
+
- **Spacing:** consistent token usage, generous section padding, single grid break per section
|
|
20
|
+
- **Motion:** stagger correct, exit faster than entrance, hover at 150 ms, reduced-motion respected
|
|
21
|
+
- **Microcopy:** every button label outcome-based, errors include fix path, no em-dash overuse
|
|
22
|
+
4. Run anti-patterns scan (15 rules). Fix any violations.
|
|
23
|
+
5. Verify pre-delivery checklist (cursor-pointer, smooth transitions, keyboard focus, touch targets, no layout shift on hover).
|
|
24
|
+
|
|
25
|
+
## Output
|
|
26
|
+
|
|
27
|
+
The target file with edits applied. Each edit is a small, targeted change — no refactors, no architectural shifts. After polish, the design should feel **inevitable**, not just complete.
|
|
28
|
+
|
|
29
|
+
Output also includes a brief change log:
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
Polish applied:
|
|
33
|
+
- Letter-spacing on H1: 0 → -0.02em
|
|
34
|
+
- Section padding mobile: space-8 → space-12
|
|
35
|
+
- Hover transition: 200ms → 150ms
|
|
36
|
+
- 3 anti-patterns fixed (purple gradient, gray-on-color, em-dash overuse)
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Pre-checks
|
|
40
|
+
|
|
41
|
+
- [ ] No anti-pattern violations remain post-polish
|
|
42
|
+
- [ ] WCAG AA verified for every text pair touched
|
|
43
|
+
- [ ] All transitions in 150–300 ms range
|
|
44
|
+
- [ ] All touch targets ≥ 44 px
|
|
45
|
+
- [ ] Body text ≥ 16 px
|
|
46
|
+
- [ ] Focus states visible on every interactive element
|
|
47
|
+
- [ ] No layout shift on hover/focus
|
|
48
|
+
- [ ] Reduced-motion respected
|
|
49
|
+
- [ ] For Remotion: weights ≥500, captions ≤17 ch/s, safe areas honored
|
|
50
|
+
- [ ] Microcopy: outcome-based buttons, helpful errors
|
|
51
|
+
|
|
52
|
+
## Examples
|
|
53
|
+
|
|
54
|
+
**Web target polish:**
|
|
55
|
+
|
|
56
|
+
```
|
|
57
|
+
File: components/landing/Hero.tsx
|
|
58
|
+
|
|
59
|
+
Changes:
|
|
60
|
+
- Line 12: H1 letter-spacing 0 → -0.02em
|
|
61
|
+
- Line 18: subtitle font-weight 400 → 500 (better hierarchy with H1 700)
|
|
62
|
+
- Line 24: CTA button "Get Started" → "Start your free 7-day trial"
|
|
63
|
+
- Line 31: section-y padding `py-16` → `py-24` (mobile generous)
|
|
64
|
+
- Line 38: hover transition `duration-200` → `duration-150`
|
|
65
|
+
- Line 42: focus-visible:outline-none added focus-visible:ring-2 ring-primary
|
|
66
|
+
- Removed: bg-gradient-to-br from-purple-500 to-blue-500 (anti-pattern #4)
|
|
67
|
+
- Replaced with: bg-[oklch(20%_0.05_264)] (tinted dark, on-brand)
|
|
68
|
+
|
|
69
|
+
Polish verdict: ready to ship.
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
**Remotion target polish:**
|
|
73
|
+
|
|
74
|
+
```
|
|
75
|
+
File: renderer/src/components/scene/CTAScene.tsx
|
|
76
|
+
|
|
77
|
+
Changes:
|
|
78
|
+
- Title weight: 600 → 700 (better compression survival)
|
|
79
|
+
- Title letter-spacing animation: starts at +0.04em → +0.08em (more dramatic reveal)
|
|
80
|
+
- Stagger between title and CTA: 12 frames → 8 frames (snappier)
|
|
81
|
+
- Added: cinematic/ColorGrade preset="golden-hour" wrapping scene
|
|
82
|
+
- CTA copy: "Click here" → "Start your campaign in 60 seconds"
|
|
83
|
+
- ProgressBar end animation: ends at frame 60 → ends at frame 54 (6 frames before cut, lets viewer read final state)
|
|
84
|
+
|
|
85
|
+
Polish verdict: ready to render.
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
## Cross-references
|
|
89
|
+
|
|
90
|
+
- Cites: `anti-patterns.md` (mandatory), `typography.md`, `color-and-contrast.md`, `spatial-design.md`, `motion-design.md`, `voice-and-microcopy.md`, `remotion-bridge.md` (Remotion only)
|
|
91
|
+
- Uses pre-delivery checklist from `design-system` skill
|