@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,95 @@
|
|
|
1
|
+
# verb-quieter β Tone down maximalist designs
|
|
2
|
+
|
|
3
|
+
## Trigger
|
|
4
|
+
|
|
5
|
+
User invokes `/beauty quieter [target]` or asks to "tone this down," "calm this," "this is too much," "more restraint," "make it whisper." Antagonist of `verb-bolder`. Used when a design is shouting where it should murmur β usually after over-amplification or template-energy maximalism.
|
|
6
|
+
|
|
7
|
+
## Inputs
|
|
8
|
+
|
|
9
|
+
- A target that feels visually loud, over-decorated, or trying-too-hard
|
|
10
|
+
- Optional: a dimension to quiet ("quieter color only", "quieter motion")
|
|
11
|
+
|
|
12
|
+
## Process
|
|
13
|
+
|
|
14
|
+
1. Identify the noise sources: too many accent colors, type contrast too high, motion on every element, decorative shadows, gradient overlays, particle effects.
|
|
15
|
+
2. Read relevant references: `typography.md`, `color-and-contrast.md`, `spatial-design.md`, `motion-design.md`. Anti-patterns 1, 4, 6, 8 are most relevant.
|
|
16
|
+
3. Apply a **0.5x rule** per dimension to quiet:
|
|
17
|
+
- **Type:** drop one weight (700 β 500), narrow size range (delete H4, H5)
|
|
18
|
+
- **Color:** chroma cut 30%, fewer accents (3 β 1), neutrals warmer/cooler but more muted
|
|
19
|
+
- **Composition:** larger negative space, fewer elements per section, more breathing room
|
|
20
|
+
- **Motion:** longer durations (snappy β considered), fewer elements animated, subtler hover (transform: translateY(-1px) instead of -4px)
|
|
21
|
+
- **Decoration:** remove decorative shadows, simplify gradients, drop particles
|
|
22
|
+
4. Anti-pattern check: quiet must not introduce new failures (no gray-on-color, no card-in-card from "removing differentiation").
|
|
23
|
+
|
|
24
|
+
## Output
|
|
25
|
+
|
|
26
|
+
Target file with reductions applied + before/after log.
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
Quieter applied:
|
|
30
|
+
- Removed 2 accent colors (kept primary only)
|
|
31
|
+
- H1 weight 800 β 600
|
|
32
|
+
- Hero motion: 6 elements animating β 1 (just the title)
|
|
33
|
+
- Removed text-shadow on body
|
|
34
|
+
- Spacing increased ~30% across sections (more breathing)
|
|
35
|
+
- Particle system removed entirely
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Pre-checks
|
|
39
|
+
|
|
40
|
+
- [ ] No anti-patterns introduced (less β flat hierarchy, less β all-equal-weight)
|
|
41
|
+
- [ ] Hierarchy still readable after reduction
|
|
42
|
+
- [ ] Brand identity not stripped β quieter β generic
|
|
43
|
+
- [ ] WCAG AA still passes (lower contrast β failing contrast)
|
|
44
|
+
- [ ] Loading + error states still feel deliberate
|
|
45
|
+
- [ ] For Remotion: pacing not killed (quieter β boring)
|
|
46
|
+
|
|
47
|
+
## Examples
|
|
48
|
+
|
|
49
|
+
**Web target quieter pass:**
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
File: components/Pricing.tsx
|
|
53
|
+
|
|
54
|
+
Before:
|
|
55
|
+
- 3 accent colors (orange CTA, green checkmark, red "save")
|
|
56
|
+
- H2 weight 800, decorative gradient text-fill
|
|
57
|
+
- Card backgrounds at 4 different surface levels
|
|
58
|
+
- Hover: scale-105 + shadow-2xl + rotate-1
|
|
59
|
+
- Confetti particles on hover
|
|
60
|
+
|
|
61
|
+
After:
|
|
62
|
+
- 1 accent color (orange CTA), neutral text checkmarks, no red badge (replaced with subtle "Most popular" label)
|
|
63
|
+
- H2 weight 600, solid color
|
|
64
|
+
- 2 surface levels (default + elevated for highlighted plan)
|
|
65
|
+
- Hover: scale-[1.01] + shadow-md (subtle)
|
|
66
|
+
- No particles
|
|
67
|
+
|
|
68
|
+
Identity preserved (still feels confident), noise gone.
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
**Remotion target quieter pass:**
|
|
72
|
+
|
|
73
|
+
```
|
|
74
|
+
File: scene/QuoteScene.tsx
|
|
75
|
+
|
|
76
|
+
Before:
|
|
77
|
+
- Title at 800 weight + LetterSpacing animation + ScaleIn + slow zoom Background
|
|
78
|
+
- ColorGrade preset="neon" (very loud)
|
|
79
|
+
- ParticleSystem preset="confetti"
|
|
80
|
+
- TransitionEffect preset="glitch"
|
|
81
|
+
|
|
82
|
+
After:
|
|
83
|
+
- Title at 500 weight, simple FadeIn over 18 frames
|
|
84
|
+
- ColorGrade preset="dream" (low contrast, soft tint)
|
|
85
|
+
- No particles
|
|
86
|
+
- TransitionEffect preset="cross-dissolve" 24 frames (slower, contemplative)
|
|
87
|
+
|
|
88
|
+
Quote scenes now feel reflective instead of frantic.
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
## Cross-references
|
|
92
|
+
|
|
93
|
+
- Cites: `typography.md`, `color-and-contrast.md`, `spatial-design.md`, `motion-design.md`, `anti-patterns.md`
|
|
94
|
+
- Antagonist verb: `verb-bolder`
|
|
95
|
+
- Sibling: `verb-distill` (when reduction goes further to "what's the essential element")
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
# verb-rebrand β Apply a different aesthetic direction holistically
|
|
2
|
+
|
|
3
|
+
## Trigger
|
|
4
|
+
|
|
5
|
+
User invokes `/beauty rebrand [target]` or asks to "rebrand this," "change the whole feel," "this is too corporate, make it editorial," "what if this were minimalist instead." Goes deeper than `verb-colorize` or `verb-typeset` β shifts the **entire aesthetic** in one coordinated pass. Added by mage-beauty as a native verb (not in upstream).
|
|
6
|
+
|
|
7
|
+
## Inputs
|
|
8
|
+
|
|
9
|
+
- A target with a current aesthetic direction
|
|
10
|
+
- A new aesthetic direction (named style, reference brand, or descriptor)
|
|
11
|
+
|
|
12
|
+
## Process
|
|
13
|
+
|
|
14
|
+
1. Read all references β rebrand touches every dimension: `typography.md`, `color-and-contrast.md`, `spatial-design.md`, `motion-design.md`, `voice-and-microcopy.md`, `anti-patterns.md`. For Remotion: `remotion-bridge.md`.
|
|
15
|
+
2. **Decode the new direction** into 6 concrete decisions:
|
|
16
|
+
- **Mood:** 3β5 adjectives describing the target feeling
|
|
17
|
+
- **Type pairing:** 2 fonts that pair on contrast
|
|
18
|
+
- **Palette:** 3β5 OKLCH values with semantic roles
|
|
19
|
+
- **Layout:** grid system + spacing rhythm + 1 break style
|
|
20
|
+
- **Motion:** base duration + easing + stagger pace
|
|
21
|
+
- **Voice:** 3 adjectives + 3 anti-adjectives
|
|
22
|
+
3. Apply coordinated changes β every dimension shifts together:
|
|
23
|
+
- Type: replace heading + body families simultaneously
|
|
24
|
+
- Palette: regenerate tokens with new OKLCH values, both light + dark mode
|
|
25
|
+
- Spacing: adjust scale (tighter for editorial, looser for luxury)
|
|
26
|
+
- Motion: replace duration tokens, easing curves
|
|
27
|
+
- Microcopy: rewrite key labels in new voice
|
|
28
|
+
- For Remotion: pick a different ColorGrade + CameraMotion emotional set
|
|
29
|
+
4. Verify identity coherence β every touched element should feel like the same person designed it. Mismatches signal incomplete rebrand.
|
|
30
|
+
5. Anti-patterns scan one final time β rebrands often inherit AI-generic defaults if not careful.
|
|
31
|
+
|
|
32
|
+
## Common rebrand directions
|
|
33
|
+
|
|
34
|
+
| Direction | Type pairing | Palette | Spacing | Motion |
|
|
35
|
+
| ---------------------- | -------------------------------- | --------------------------------------- | ------------------------------ | ----------------------- |
|
|
36
|
+
| Editorial premium | Cormorant + Inter | warm neutrals + 1 luxe gold | generous, single column | slow (400 ms), ease-out |
|
|
37
|
+
| Brutalist | Space Mono + Space Mono | high-contrast B/W + 1 saturated accent | grid-locked, asymmetric breaks | fast (150 ms), linear |
|
|
38
|
+
| Liquid glass | Outfit + Inter | dark + iridescent + transparency layers | layered overlap | spring physics |
|
|
39
|
+
| Bento (Apple-style) | Inter + Inter (variable weights) | tinted neutrals + 1-2 accents | grid cells, generous | snappy springs |
|
|
40
|
+
| Cyberpunk | Orbitron + JetBrains Mono | neon + black | tight, technical | sharp, high stagger |
|
|
41
|
+
| Swiss minimalism | Inter or Helvetica + Inter | neutral grays + 1 red | strict 12-col grid | minimal motion |
|
|
42
|
+
| Organic biophilic | Lora + Nunito | warm earth + sage + cream | flowing, asymmetric | gentle springs |
|
|
43
|
+
| AI-native (deliberate) | Geist Sans + Geist Mono | OKLCH gradients + glow | bento + diagonal | spring + stagger |
|
|
44
|
+
|
|
45
|
+
## Output
|
|
46
|
+
|
|
47
|
+
Target with full rebrand applied + new design tokens + voice doc + change log.
|
|
48
|
+
|
|
49
|
+
```
|
|
50
|
+
Rebrand applied: corporate SaaS β editorial premium
|
|
51
|
+
|
|
52
|
+
Tokens (new):
|
|
53
|
+
- Heading family: Inter β Cormorant Garamond (700)
|
|
54
|
+
- Body family: Inter β Inter (kept, but weight 300 for editorial body)
|
|
55
|
+
- Type scale: 1.25 β 1.333 (more dramatic)
|
|
56
|
+
- --color-bg: oklch(98% 0.005 264) β oklch(98% 0.01 80) (warm cream)
|
|
57
|
+
- --color-text: oklch(15% 0.025 264) β oklch(20% 0.05 30) (warm dark, ink-toned)
|
|
58
|
+
- --color-accent: oklch(55% 0.15 264) β oklch(50% 0.20 80) (luxe gold)
|
|
59
|
+
- Spacing scale: tightened (8px base β 6px base for editorial density)
|
|
60
|
+
- --duration-base: 300ms β 400ms (slower, considered)
|
|
61
|
+
- --ease: cubic-bezier(0.16, 1, 0.3, 1) β cubic-bezier(0.4, 0, 0.2, 1) (gentler)
|
|
62
|
+
|
|
63
|
+
Voice doc (new):
|
|
64
|
+
- We are: considered, generous, literary
|
|
65
|
+
- We are not: punchy, casual, technical-jargony
|
|
66
|
+
- We say: "Read more about the philosophy behindβ¦"
|
|
67
|
+
- We don't say: "Get started in 60 seconds"
|
|
68
|
+
|
|
69
|
+
Microcopy rewrites:
|
|
70
|
+
- "Try free for 14 days" β "Begin a 14-day quiet trial"
|
|
71
|
+
- "Get notified" β "Subscribe for letters"
|
|
72
|
+
- "Sign up" β "Become a member"
|
|
73
|
+
|
|
74
|
+
Coherence: every element now reads as the same editorial publication.
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## Pre-checks
|
|
78
|
+
|
|
79
|
+
- [ ] All 6 dimensions addressed (mood/type/palette/layout/motion/voice)
|
|
80
|
+
- [ ] Light + dark mode both regenerated
|
|
81
|
+
- [ ] Anti-patterns scan: did the rebrand introduce any (purple gradient on "modern", Inter alone on "minimal", etc.)?
|
|
82
|
+
- [ ] WCAG AA verified on every text/bg pair in the new palette
|
|
83
|
+
- [ ] Voice doc updated and consistent
|
|
84
|
+
- [ ] Microcopy rewrites cover key surfaces (CTAs, errors, empty states)
|
|
85
|
+
- [ ] Type pairing has explicit contrast rationale
|
|
86
|
+
- [ ] Motion signature differs concretely from the previous direction
|
|
87
|
+
- [ ] For Remotion: ColorGrade preset reset, CameraMotion + TransitionEffect re-evaluated
|
|
88
|
+
- [ ] Identity coherence test: would 8 of 10 designers identify this as one cohesive brand?
|
|
89
|
+
|
|
90
|
+
## Examples
|
|
91
|
+
|
|
92
|
+
**Web target rebrand pass β corporate SaaS β editorial premium:**
|
|
93
|
+
|
|
94
|
+
```
|
|
95
|
+
File: app/landing/page.tsx + globals.css
|
|
96
|
+
|
|
97
|
+
Before: Inter everywhere, indigo + orange palette, 8 px spacing scale, 300 ms snappy motion.
|
|
98
|
+
Before microcopy: "Get Started" / "14-day free trial" / "Sign up now"
|
|
99
|
+
|
|
100
|
+
After: Cormorant + Inter (light), warm cream + luxe gold + ink-text, 6 px tighter spacing, 400 ms gentle motion.
|
|
101
|
+
After microcopy: "Begin a 14-day quiet trial" / "Subscribe for letters" / "Become a member"
|
|
102
|
+
|
|
103
|
+
Same product, different voice. Identity coherence: 9/10 designers would call this an editorial publication.
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
**Remotion target rebrand pass β corporate explainer β cinematic noir:**
|
|
107
|
+
|
|
108
|
+
```
|
|
109
|
+
File: scene/IntroScene.tsx + scene/ContentScene.tsx + scene/OutroScene.tsx
|
|
110
|
+
|
|
111
|
+
Before: default neutral palette, no ColorGrade, hard-cut transitions, weight 500 type.
|
|
112
|
+
Before pace: 200ms reveals, energetic.
|
|
113
|
+
|
|
114
|
+
After: cinematic/ColorGrade preset="noir" across all scenes, cinematic/CameraMotion preset="dolly" (slow), TransitionEffect "fade" 18 frames between scenes, weight 700 + tracking-tight type, monochromatic palette only.
|
|
115
|
+
After pace: 18-frame reveals, deliberate.
|
|
116
|
+
|
|
117
|
+
Brand has shifted from explainer-corporate to literary-noir. Coherence verified across 3 scenes.
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
## Cross-references
|
|
121
|
+
|
|
122
|
+
- Cites: ALL references in this skill (rebrand is the holistic verb)
|
|
123
|
+
- For palette catalog by industry/style: `design-palette` skill
|
|
124
|
+
- For typography pairing catalog: `design-typography` skill
|
|
125
|
+
- For style mapping (25 styles): `design-inspiration` skill
|
|
126
|
+
- Antagonist: `verb-polish` (small refinements within the existing direction); `verb-distill` (reduction within direction)
|
|
127
|
+
- Companion: `verb-shape` (when starting from scratch with the new direction is cleaner than retrofitting)
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
# verb-shape β Plan UX/UI before code
|
|
2
|
+
|
|
3
|
+
## Trigger
|
|
4
|
+
|
|
5
|
+
User invokes `/beauty shape [description]` or asks to "design a [thing] before I code it," "plan the UX," "what should this look like," "give me a brief." This verb is **pre-implementation** β it produces a binding design brief, not code. It delegates heavily to Merlin's `design-inspiration` skill, which already has the brief-generation engine.
|
|
6
|
+
|
|
7
|
+
## Inputs
|
|
8
|
+
|
|
9
|
+
- A description of what's being built (product type, target audience, use case)
|
|
10
|
+
- Optional: industry context ("for fintech", "for healthcare")
|
|
11
|
+
- Optional: brand reference ("like Linear", "like Aesop")
|
|
12
|
+
|
|
13
|
+
## Process
|
|
14
|
+
|
|
15
|
+
1. Invoke `design-inspiration` skill's 4-phase reasoning engine:
|
|
16
|
+
- Phase 1: Analyze the request (extract product type, audience, style preferences)
|
|
17
|
+
- Phase 2: Match product type to style + palette + landing pattern (from its 20-row mapping)
|
|
18
|
+
- Phase 3: Apply industry anti-patterns (`design-inspiration` has industry-specific rules)
|
|
19
|
+
- Phase 4: Generate the binding brief
|
|
20
|
+
2. Augment the brief with mage-beauty's references:
|
|
21
|
+
- Pull a typography pairing recommendation (cite `typography.md` principles)
|
|
22
|
+
- Pull a palette direction with OKLCH values (cite `color-and-contrast.md`)
|
|
23
|
+
- Choose a landing/composition pattern (`spatial-design.md`)
|
|
24
|
+
- Specify motion signature (timing tokens) per `motion-design.md`
|
|
25
|
+
3. For Remotion targets: select a base ColorGrade preset and CameraMotion preset (`remotion-bridge.md`)
|
|
26
|
+
4. Output the binding brief in 5 sections.
|
|
27
|
+
|
|
28
|
+
## Output
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
DESIGN BRIEF β [project name]
|
|
32
|
+
|
|
33
|
+
1. Mood & Tone
|
|
34
|
+
3β5 adjectives, 1 reference style, 1 emotional anchor
|
|
35
|
+
|
|
36
|
+
2. Color Palette
|
|
37
|
+
3β5 OKLCH values with semantic roles (primary, bg, text, accent, error)
|
|
38
|
+
Light mode + dark mode
|
|
39
|
+
|
|
40
|
+
3. Typography
|
|
41
|
+
Heading family + body family (must pair on contrast)
|
|
42
|
+
Type scale ratio (1.25 default, 1.333 editorial, 1.125 dashboard)
|
|
43
|
+
Font weights to load (max 3)
|
|
44
|
+
|
|
45
|
+
4. Layout & Composition
|
|
46
|
+
Grid system (12-col / asymmetric / bento)
|
|
47
|
+
Spacing base (4 / 8 px)
|
|
48
|
+
Breakpoints
|
|
49
|
+
1 grid-break element per major section
|
|
50
|
+
|
|
51
|
+
5. Motion Signature
|
|
52
|
+
Base duration token (300 ms default)
|
|
53
|
+
Easing default (cubic-bezier(0.16, 1, 0.3, 1))
|
|
54
|
+
Stagger interval (50β100 ms)
|
|
55
|
+
Reduced-motion strategy
|
|
56
|
+
|
|
57
|
+
[For Remotion only:]
|
|
58
|
+
6. Cinematic Stack
|
|
59
|
+
ColorGrade preset (1 of 10)
|
|
60
|
+
CameraMotion preset (1 of 14)
|
|
61
|
+
TransitionEffect default
|
|
62
|
+
Particle system (or none)
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
The brief is **binding** β once generated, all subsequent visual work conforms to it. Deviations require an explicit brief amendment.
|
|
66
|
+
|
|
67
|
+
## Pre-checks
|
|
68
|
+
|
|
69
|
+
- [ ] Brief covers all 5 (or 6 for Remotion) sections
|
|
70
|
+
- [ ] Color values are OKLCH (or hex with OKLCH equivalent noted)
|
|
71
|
+
- [ ] No anti-patterns chosen as defaults (no purpleβblue gradient, no Inter alone)
|
|
72
|
+
- [ ] Industry-specific rules applied (no neon for healthcare, no playful fonts for finance)
|
|
73
|
+
- [ ] Type pairing has explicit contrast rationale
|
|
74
|
+
- [ ] Motion signature tokens are concrete (300 ms, not "fast enough")
|
|
75
|
+
|
|
76
|
+
## Examples
|
|
77
|
+
|
|
78
|
+
**Web target shape (fintech dashboard):**
|
|
79
|
+
|
|
80
|
+
```
|
|
81
|
+
DESIGN BRIEF β Lampada Analytics Dashboard
|
|
82
|
+
|
|
83
|
+
1. Mood & Tone
|
|
84
|
+
Trustworthy, dense, calm-luxurious, modern. Reference: Stripe + Linear.
|
|
85
|
+
|
|
86
|
+
2. Color Palette (OKLCH)
|
|
87
|
+
--bg: oklch(98% 0.005 264) # near-white, cool tinted
|
|
88
|
+
--surface: oklch(100% 0 0) # pure white panels
|
|
89
|
+
--text: oklch(15% 0.025 264) # near-black, cool
|
|
90
|
+
--primary: oklch(50% 0.15 264) # trust blue
|
|
91
|
+
--accent: oklch(65% 0.18 27) # signal orange (10% rule)
|
|
92
|
+
--success: oklch(55% 0.16 145)
|
|
93
|
+
--error: oklch(55% 0.20 27)
|
|
94
|
+
Dark mode: bg oklch(14% 0.025 264), surface oklch(18% 0.025 264), text oklch(96% 0.01 264).
|
|
95
|
+
|
|
96
|
+
3. Typography
|
|
97
|
+
Heading: Sora (geometric sans, 600/700)
|
|
98
|
+
Body: Inter (humanist sans, 400/500)
|
|
99
|
+
Scale: 1.25 modular. Body 16 px / heading H1 49 px.
|
|
100
|
+
Weights: 400, 500, 700.
|
|
101
|
+
|
|
102
|
+
4. Layout & Composition
|
|
103
|
+
12-column grid, max-width 1280 px
|
|
104
|
+
Spacing base 8 px
|
|
105
|
+
Breakpoints 640 / 768 / 1024 / 1440
|
|
106
|
+
1 grid-break: hero photo bleeds full-width while content stays constrained
|
|
107
|
+
|
|
108
|
+
5. Motion Signature
|
|
109
|
+
--duration-base: 300ms
|
|
110
|
+
--ease-out: cubic-bezier(0.16, 1, 0.3, 1)
|
|
111
|
+
Stagger 80 ms between siblings
|
|
112
|
+
prefers-reduced-motion: disable all decorative animation
|
|
113
|
+
|
|
114
|
+
Brief is binding. All implementation conforms.
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
**Remotion target shape (campaign reel):**
|
|
118
|
+
|
|
119
|
+
```
|
|
120
|
+
DESIGN BRIEF β Acme LMS Promo Reel (1080Γ1920)
|
|
121
|
+
|
|
122
|
+
1. Mood & Tone
|
|
123
|
+
Energetic, warm, educational, generous. Reference: Duolingo's celebratory moments.
|
|
124
|
+
|
|
125
|
+
2. Color Palette (OKLCH, video-bumped chroma)
|
|
126
|
+
bg: oklch(20% 0.05 30) # warm dark
|
|
127
|
+
text: oklch(96% 0.02 80) # warm white
|
|
128
|
+
accent: oklch(72% 0.20 50) # warm gold
|
|
129
|
+
chroma bumped 18% to compensate H.264
|
|
130
|
+
|
|
131
|
+
3. Typography
|
|
132
|
+
Heading: Outfit 700
|
|
133
|
+
Body / captions: Inter 500
|
|
134
|
+
Scale 1.333
|
|
135
|
+
|
|
136
|
+
4. Composition (9:16)
|
|
137
|
+
Vertical hierarchy. Hero element top-third, body mid-third, CTA bottom-third (above 250 px caption safe area).
|
|
138
|
+
Top 200 px reserved (Instagram username).
|
|
139
|
+
|
|
140
|
+
5. Motion Signature
|
|
141
|
+
Duration: 12 frames default reveal
|
|
142
|
+
Stagger: 6 frames between text lines
|
|
143
|
+
Exit: 8 frames
|
|
144
|
+
|
|
145
|
+
6. Cinematic Stack
|
|
146
|
+
ColorGrade: golden-hour
|
|
147
|
+
CameraMotion: ken-burns (slow drift, nostalgic warmth)
|
|
148
|
+
TransitionEffect: cross-dissolve (default), 18 frames
|
|
149
|
+
Particles: none (clean educational feel)
|
|
150
|
+
|
|
151
|
+
Brief is binding.
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
## Cross-references
|
|
155
|
+
|
|
156
|
+
- Delegates 4-phase reasoning to `design-inspiration` skill
|
|
157
|
+
- Cites: `typography.md`, `color-and-contrast.md`, `spatial-design.md`, `motion-design.md`, `remotion-bridge.md`
|
|
158
|
+
- For palette catalog: `design-palette` skill
|
|
159
|
+
- For typography pairing catalog: `design-typography` skill
|
|
160
|
+
- For landing pattern catalog: `design-ux-patterns` skill
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
# verb-typeset β Fix font choices, hierarchy, sizing
|
|
2
|
+
|
|
3
|
+
## Trigger
|
|
4
|
+
|
|
5
|
+
User invokes `/beauty typeset [target]` or asks to "fix the typography," "the hierarchy is unclear," "wrong fonts," "tighten the type." Specifically a typography pass β doesn't change color, motion, or composition.
|
|
6
|
+
|
|
7
|
+
## Inputs
|
|
8
|
+
|
|
9
|
+
- A target with typographic problems (Inter for everything, weak hierarchy, arbitrary sizes, bad pairing)
|
|
10
|
+
|
|
11
|
+
## Process
|
|
12
|
+
|
|
13
|
+
1. Read `references/typography.md` (primary). For Remotion: also `remotion-bridge.md` (text bucket section).
|
|
14
|
+
2. Audit current state:
|
|
15
|
+
- Font count and family β is anything paired?
|
|
16
|
+
- Type scale β is it modular (1.25 / 1.333 / 1.125) or arbitrary?
|
|
17
|
+
- Weight range β too few (no hierarchy) or too many (visual chaos)?
|
|
18
|
+
- Body size β β₯ 16 px on screen? β₯ weight 500 in video?
|
|
19
|
+
- Line height β 1.5 body / 1.2 heading / 1.4 video subtitles?
|
|
20
|
+
- Letter-spacing β appropriate per size?
|
|
21
|
+
- Line length β body at 65β75 ch?
|
|
22
|
+
3. Replace defaults:
|
|
23
|
+
- **If Inter alone:** add a distinctive heading family (Outfit, Sora, Space Grotesk, Cormorant Garamond, Playfair Display, etc.)
|
|
24
|
+
- **Type scale:** lock to 1.25 (default) or 1.333 (editorial)
|
|
25
|
+
- **Weights:** load 3 max (e.g., 400 / 500 / 700)
|
|
26
|
+
4. Apply tokens, not arbitrary values.
|
|
27
|
+
|
|
28
|
+
## Output
|
|
29
|
+
|
|
30
|
+
Target with typography corrected + tokens added + log.
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
Typeset applied:
|
|
34
|
+
- Heading family: Inter β Outfit (700 for H1/H2, 600 for H3)
|
|
35
|
+
- Body remains Inter (400 / 500)
|
|
36
|
+
- Type scale locked to 1.25 modular: text-base 16 β text-2xl 31 β text-4xl 49
|
|
37
|
+
- Removed: text-[19px] arbitrary value at line 47 β text-lg (20)
|
|
38
|
+
- Letter-spacing on H1: default β -0.04em (display tightening)
|
|
39
|
+
- Line height: H1 1.4 β 1.2 (architectural feel)
|
|
40
|
+
- Body line-length: full width β max-w-prose (65 ch)
|
|
41
|
+
- Weights loaded: was 6 (300/400/500/600/700/800), now 3 (400/500/700)
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Pre-checks
|
|
45
|
+
|
|
46
|
+
- [ ] At least 2 font families (heading + body) OR 1 family used with strong weight contrast
|
|
47
|
+
- [ ] Modular type scale, no arbitrary px values
|
|
48
|
+
- [ ] Body β₯ 16 px web / weight β₯ 500 Remotion
|
|
49
|
+
- [ ] Line heights match: 1.5 body / 1.2 heading / 1.4 captions / 1.7 long-form
|
|
50
|
+
- [ ] Letter-spacing applied: negative on display, positive on caps, neutral on body
|
|
51
|
+
- [ ] Line length 65β75 ch on body
|
|
52
|
+
- [ ] Max 3 weights per family loaded
|
|
53
|
+
- [ ] `font-display: swap` on Google Font imports
|
|
54
|
+
- [ ] No Inter alone (anti-pattern #1)
|
|
55
|
+
- [ ] No ALL CAPS body paragraphs (anti-pattern #3)
|
|
56
|
+
- [ ] No decorative text-shadow on body (anti-pattern #2)
|
|
57
|
+
- [ ] For Remotion: weights β₯ 500 for compression
|
|
58
|
+
|
|
59
|
+
## Examples
|
|
60
|
+
|
|
61
|
+
**Web target typeset pass:**
|
|
62
|
+
|
|
63
|
+
```
|
|
64
|
+
File: app/landing/page.tsx + globals.css
|
|
65
|
+
|
|
66
|
+
Before:
|
|
67
|
+
- All Inter, weights 300/400/500/600/700/800 (6 weights loaded, ~80 KB)
|
|
68
|
+
- H1: text-[42px], H2: text-[28px], H3: text-[20px] β arbitrary
|
|
69
|
+
- Body: text-sm (14 px) β too small for primary content
|
|
70
|
+
- Line length unbounded
|
|
71
|
+
|
|
72
|
+
After:
|
|
73
|
+
- Imported Outfit (heading) + Inter (body) via next/font
|
|
74
|
+
- Loaded 3 weights each
|
|
75
|
+
- H1: text-5xl (48 px) Outfit 700 + tracking-tight
|
|
76
|
+
- H2: text-3xl (30 px) Outfit 600
|
|
77
|
+
- H3: text-xl (20 px) Outfit 600
|
|
78
|
+
- Body: text-base (16 px) Inter 400 / text-lg leading-relaxed for hero subtitle
|
|
79
|
+
- max-w-prose on long body sections
|
|
80
|
+
|
|
81
|
+
Bundle: ~80 KB β ~36 KB.
|
|
82
|
+
Hierarchy reads cleanly across mobile + desktop.
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
**Remotion target typeset pass:**
|
|
86
|
+
|
|
87
|
+
```
|
|
88
|
+
File: scene/IntroScene.tsx
|
|
89
|
+
|
|
90
|
+
Before:
|
|
91
|
+
- Title: weight 400 Inter (degrades under H.264 compression)
|
|
92
|
+
- Subtitle: weight 300 (catastrophically thin for video)
|
|
93
|
+
|
|
94
|
+
After:
|
|
95
|
+
- Title: weight 700 Outfit (display tightness)
|
|
96
|
+
- Subtitle: weight 500 Inter
|
|
97
|
+
- Title letter-spacing animates +0.08em β 0 over 12 frames
|
|
98
|
+
- Line height: 1.1 title / 1.4 subtitle (video-tighter than web)
|
|
99
|
+
- Caption (SubtitleOverlay): weight 500 + backdrop plate at 70% opacity
|
|
100
|
+
|
|
101
|
+
Compression survives. Letterforms remain crisp at 8 Mbps.
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
## Cross-references
|
|
105
|
+
|
|
106
|
+
- Cites: `typography.md` (primary), `remotion-bridge.md` (Remotion text bucket)
|
|
107
|
+
- For 57-pairing catalog: `design-typography` skill, `references/full-pairings.md`
|
|
108
|
+
- For Tailwind v4 font setup: `tailwind-design-system` skill
|
|
109
|
+
- Companion: `verb-clarify` (improves the words inside the typeset hierarchy)
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
# voice-and-microcopy β Labels, errors, captions, tone
|
|
2
|
+
|
|
3
|
+
## Charter
|
|
4
|
+
|
|
5
|
+
Microcopy is the difference between an interface that respects the user and one that talks down to them. Every word is a chance to feel human or feel corporate. AI-generated UI consistently fails here: generic "Get Started" CTAs, cryptic validation errors, empty states that say nothing useful, captions that summarize the obvious. Beauty in voice comes from specificity, brevity, and a tone that's the same across the UI, the captions, and the voiceover script β one voice for one product.
|
|
6
|
+
|
|
7
|
+
## Principles
|
|
8
|
+
|
|
9
|
+
1. **Buttons describe the outcome.** "Save changes" beats "Submit." "Send invite" beats "OK." "Delete project permanently" beats "Confirm." The user reads the button label faster than any other text β make it tell them what happens.
|
|
10
|
+
2. **Errors say what to do, not just what's wrong.** "Email is invalid" is hostile. "Use a format like name@example.com" is helpful. Always end an error with the correction path.
|
|
11
|
+
3. **Empty states have three jobs.** Explain what's normally here, show the action to populate it, and stay encouraging. "No projects yet β create your first one" beats "No data found."
|
|
12
|
+
4. **Tone matches the moment.** Loading: patient, brief. Error: calm, helpful. Success: warm but not effusive. Confirmation: matter-of-fact. A 200% over-cheerful "Awesome! π" on every action wears thin in 30 seconds.
|
|
13
|
+
5. **Avoid jargon and feature names users don't know.** "Webhook delivery failed" means nothing to half your users. "We couldn't notify your other apps about this update" means something to all of them.
|
|
14
|
+
6. **One voice across modalities.** The button label, the error message, the email confirmation, the video caption, and the voiceover script should sound like the same person wrote them. Build a voice doc (3 adjectives + 3 anti-adjectives, see below).
|
|
15
|
+
7. **Specificity wins.** "Recently" β "2 hours ago." "Some users" β "37 users in the last 7 days." "Available now" β "Available since Tuesday." Specificity is care made visible.
|
|
16
|
+
8. **Brevity respects time.** Cut every word that doesn't earn its place. "Please be advised that..." β delete. "In order to..." β "To...". "Make sure you..." β "Check that...". Short prose isn't dumbed-down; it's harder to write.
|
|
17
|
+
|
|
18
|
+
## Voice doc template
|
|
19
|
+
|
|
20
|
+
A product's voice can be defined in 6 lines:
|
|
21
|
+
|
|
22
|
+
```
|
|
23
|
+
We are: [3 adjectives] (e.g., direct, warm, technical)
|
|
24
|
+
We are not: [3 anti-adjectives] (e.g., cute, corporate, vague)
|
|
25
|
+
|
|
26
|
+
We say: [example phrasing the product would use]
|
|
27
|
+
We don't say: [example phrasing that's wrong for this product]
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Every microcopy decision then maps back to this doc. New writers (or LLMs) can self-check.
|
|
31
|
+
|
|
32
|
+
## Button label patterns
|
|
33
|
+
|
|
34
|
+
**Outcome-first:**
|
|
35
|
+
|
|
36
|
+
- "Save changes" / "Save draft" / "Save and continue"
|
|
37
|
+
- "Send invite" / "Send for review"
|
|
38
|
+
- "Publish post" / "Publish to all"
|
|
39
|
+
- "Delete project" / "Delete permanently"
|
|
40
|
+
|
|
41
|
+
**Avoid:**
|
|
42
|
+
|
|
43
|
+
- "Submit" (what does it do?)
|
|
44
|
+
- "OK" (what am I OK-ing?)
|
|
45
|
+
- "Get Started" on every CTA (placeholder energy)
|
|
46
|
+
- "Click here" (links describe the destination)
|
|
47
|
+
|
|
48
|
+
## Error message patterns
|
|
49
|
+
|
|
50
|
+
**Inline form errors:**
|
|
51
|
+
|
|
52
|
+
- "Email looks like a typo β try `name@example.com`"
|
|
53
|
+
- "Password needs 8+ characters and at least one number"
|
|
54
|
+
- "This name's taken. Try `marketing-team-2`?"
|
|
55
|
+
|
|
56
|
+
**System-level errors:**
|
|
57
|
+
|
|
58
|
+
- "We couldn't connect to the payment provider. Try again in a moment, or contact support."
|
|
59
|
+
- "The file's too big β keep videos under 500 MB."
|
|
60
|
+
- "Looks like you're offline. We'll save your work locally and sync when you're back."
|
|
61
|
+
|
|
62
|
+
**Avoid:**
|
|
63
|
+
|
|
64
|
+
- "Error: 500" (means nothing to users)
|
|
65
|
+
- "Invalid input" (which input? what's invalid?)
|
|
66
|
+
- "Something went wrong" (without next-step)
|
|
67
|
+
- "Please try again" alone (without context)
|
|
68
|
+
|
|
69
|
+
## Empty state patterns
|
|
70
|
+
|
|
71
|
+
```
|
|
72
|
+
[Illustration or icon]
|
|
73
|
+
[Single-sentence explanation of what's normally here]
|
|
74
|
+
[Primary action button]
|
|
75
|
+
[Optional secondary text or link]
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Examples:
|
|
79
|
+
|
|
80
|
+
- **Empty inbox**: "No new messages β when you get one, it'll show up here. [Compose β]"
|
|
81
|
+
- **Empty project list**: "Create your first project to get started. [+ New Project]"
|
|
82
|
+
- **Empty search**: "No results for `[query]`. Try fewer keywords, or [view all]."
|
|
83
|
+
|
|
84
|
+
## Loading + waiting microcopy
|
|
85
|
+
|
|
86
|
+
- "Loadingβ¦" is the floor
|
|
87
|
+
- "Saving your changesβ¦" is better
|
|
88
|
+
- "Generating your video β this usually takes 30 seconds" is best (sets expectation)
|
|
89
|
+
- For >5s waits, show progress: "Step 2 of 4: rendering scenesβ¦"
|
|
90
|
+
|
|
91
|
+
## Confirmation dialogs
|
|
92
|
+
|
|
93
|
+
Reserve for genuinely destructive, irreversible actions. Always include:
|
|
94
|
+
|
|
95
|
+
- What's being done (specific, including the object name: "Delete project `Q3-launch`?")
|
|
96
|
+
- What happens next ("This can't be undone β 47 files will be deleted.")
|
|
97
|
+
- Two clearly-labeled actions: dismiss + confirm. NEVER make "Confirm" the destructive verb without explicit re-statement.
|
|
98
|
+
|
|
99
|
+
## Remotion application
|
|
100
|
+
|
|
101
|
+
Captions, lower-thirds, and voice-over scripts share the voice doc with the UI. Specific rules for video:
|
|
102
|
+
|
|
103
|
+
1. **Caption brevity β 17 chars/second reading speed.** A 3-second clip can hold ~50 chars of caption. Anything longer cuts off comprehension.
|
|
104
|
+
2. **`education/ClassSubtitles`** β break captions on natural phrase boundaries. Not mid-clause. Two short cards beat one cramped one.
|
|
105
|
+
3. **`education/LowerThird`** β name + role + brief context. Three lines max. "Maria Silva / Founder, Acme Inc / Speaking at SXSW 2025."
|
|
106
|
+
4. **`music/LyricsOverlay`** β match cue word timing exactly. Use accent color shift, never font-family swap.
|
|
107
|
+
5. **Voice-over script tone** matches the UI tone. If the product UI says "Save draft," the voiceover doesn't say "Click submit to commit your work."
|
|
108
|
+
|
|
109
|
+
**Reading speed table:**
|
|
110
|
+
| Audience | Words/min | Chars/sec |
|
|
111
|
+
|---|---|---|
|
|
112
|
+
| Educational, careful | 140 | ~12 |
|
|
113
|
+
| Default | 160 | ~14 |
|
|
114
|
+
| Energetic, social | 180 | ~17 |
|
|
115
|
+
| Fast-cut, hype | 200+ | ~19 |
|
|
116
|
+
|
|
117
|
+
## Cross-references
|
|
118
|
+
|
|
119
|
+
- For typography that holds the microcopy: read `typography.md` in this skill
|
|
120
|
+
- For caption color/contrast: read `color-and-contrast.md` in this skill
|
|
121
|
+
- For interaction-state UX text (errors, loading): read `interaction-design.md` in this skill
|
|
122
|
+
- For copywriting depth: read Merlin's `copywriting` skill (general/)
|
|
123
|
+
|
|
124
|
+
## Quick checklist
|
|
125
|
+
|
|
126
|
+
- [ ] Voice doc exists (3 adjectives + 3 anti-adjectives + 2 examples)
|
|
127
|
+
- [ ] Every button label describes the outcome
|
|
128
|
+
- [ ] No "Submit" / "OK" / "Click here" on actions
|
|
129
|
+
- [ ] Errors include the correction path
|
|
130
|
+
- [ ] Empty states show the next action
|
|
131
|
+
- [ ] No jargon the user wouldn't recognize
|
|
132
|
+
- [ ] Loading messages set time expectations when >5 s
|
|
133
|
+
- [ ] Confirmation dialogs name the specific object + consequence
|
|
134
|
+
- [ ] Tone consistent UI β captions β voiceover
|
|
135
|
+
- [ ] For Remotion: caption brevity β€ 17 chars/sec
|
|
136
|
+
- [ ] For Remotion: lower-thirds limited to 3 lines
|
|
137
|
+
- [ ] Specific over generic ("2 hours ago" not "recently")
|