@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,161 @@
|
|
|
1
|
+
# Apple Zoom Transitions
|
|
2
|
+
|
|
3
|
+
Fluid zoom transitions for navigating between screens. iOS 18+, Expo SDK 55+, Stack navigator only.
|
|
4
|
+
|
|
5
|
+
```tsx
|
|
6
|
+
import { Link } from "expo-router";
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
## Basic Zoom
|
|
10
|
+
|
|
11
|
+
Use `withAppleZoom` on `Link.Trigger` to zoom the entire trigger element into the destination screen:
|
|
12
|
+
|
|
13
|
+
```tsx
|
|
14
|
+
<Link href="/photo" asChild>
|
|
15
|
+
<Link.Trigger withAppleZoom>
|
|
16
|
+
<Pressable>
|
|
17
|
+
<Image
|
|
18
|
+
source={{ uri: "https://example.com/thumb.jpg" }}
|
|
19
|
+
style={{ width: 120, height: 120, borderRadius: 12 }}
|
|
20
|
+
/>
|
|
21
|
+
</Pressable>
|
|
22
|
+
</Link.Trigger>
|
|
23
|
+
</Link>
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Targeted Zoom with `Link.AppleZoom`
|
|
27
|
+
|
|
28
|
+
Wrap only the element that should animate. Siblings outside `Link.AppleZoom` are not part of the transition:
|
|
29
|
+
|
|
30
|
+
```tsx
|
|
31
|
+
<Link href="/photo" asChild>
|
|
32
|
+
<Link.Trigger>
|
|
33
|
+
<Pressable style={{ alignItems: "center" }}>
|
|
34
|
+
<Link.AppleZoom>
|
|
35
|
+
<Image
|
|
36
|
+
source={{ uri: "https://example.com/thumb.jpg" }}
|
|
37
|
+
style={{ width: 200, aspectRatio: 4 / 3 }}
|
|
38
|
+
/>
|
|
39
|
+
</Link.AppleZoom>
|
|
40
|
+
<Text>Caption text (not zoomed)</Text>
|
|
41
|
+
</Pressable>
|
|
42
|
+
</Link.Trigger>
|
|
43
|
+
</Link>
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
`Link.AppleZoom` accepts only a single child element.
|
|
47
|
+
|
|
48
|
+
## Destination Target
|
|
49
|
+
|
|
50
|
+
Use `Link.AppleZoomTarget` on the destination screen to align the zoom animation to a specific element:
|
|
51
|
+
|
|
52
|
+
```tsx
|
|
53
|
+
// Destination screen (e.g., app/photo.tsx)
|
|
54
|
+
import { Link } from "expo-router";
|
|
55
|
+
|
|
56
|
+
export default function PhotoScreen() {
|
|
57
|
+
return (
|
|
58
|
+
<View style={{ flex: 1 }}>
|
|
59
|
+
<Link.AppleZoomTarget>
|
|
60
|
+
<Image
|
|
61
|
+
source={{ uri: "https://example.com/full.jpg" }}
|
|
62
|
+
style={{ width: "100%", aspectRatio: 4 / 3 }}
|
|
63
|
+
/>
|
|
64
|
+
</Link.AppleZoomTarget>
|
|
65
|
+
<Text>Photo details below</Text>
|
|
66
|
+
</View>
|
|
67
|
+
);
|
|
68
|
+
}
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Without a target, the zoom animates to fill the entire destination screen.
|
|
72
|
+
|
|
73
|
+
## Custom Alignment Rectangle
|
|
74
|
+
|
|
75
|
+
For manual control over where the zoom lands on the destination, use `alignmentRect` instead of `Link.AppleZoomTarget`:
|
|
76
|
+
|
|
77
|
+
```tsx
|
|
78
|
+
<Link.AppleZoom alignmentRect={{ x: 0, y: 0, width: 200, height: 300 }}>
|
|
79
|
+
<Image source={{ uri: "https://example.com/thumb.jpg" }} />
|
|
80
|
+
</Link.AppleZoom>
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
Coordinates are in the destination screen's coordinate space. Prefer `Link.AppleZoomTarget` when possible — use `alignmentRect` only when the target element isn't available as a React component.
|
|
84
|
+
|
|
85
|
+
## Controlling Dismissal
|
|
86
|
+
|
|
87
|
+
Zoom screens support interactive dismissal gestures by default (pinch, swipe down when scrolled to top, swipe from leading edge). Use `usePreventZoomTransitionDismissal` on the destination screen to control this.
|
|
88
|
+
|
|
89
|
+
### Disable all dismissal gestures
|
|
90
|
+
|
|
91
|
+
```tsx
|
|
92
|
+
import { usePreventZoomTransitionDismissal } from "expo-router";
|
|
93
|
+
|
|
94
|
+
export default function PhotoScreen() {
|
|
95
|
+
usePreventZoomTransitionDismissal();
|
|
96
|
+
return <Image source={{ uri: "https://example.com/full.jpg" }} />;
|
|
97
|
+
}
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
### Restrict dismissal to a specific area
|
|
101
|
+
|
|
102
|
+
Use `unstable_dismissalBoundsRect` to prevent conflicts with scrollable content:
|
|
103
|
+
|
|
104
|
+
```tsx
|
|
105
|
+
usePreventZoomTransitionDismissal({
|
|
106
|
+
unstable_dismissalBoundsRect: {
|
|
107
|
+
minX: 0,
|
|
108
|
+
minY: 0,
|
|
109
|
+
maxX: 300,
|
|
110
|
+
maxY: 300,
|
|
111
|
+
},
|
|
112
|
+
});
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
This is useful when the destination contains a zoomable scroll view — the system gives that scroll view precedence over the dismiss gesture.
|
|
116
|
+
|
|
117
|
+
## Combining with Link.Preview
|
|
118
|
+
|
|
119
|
+
Zoom transitions work alongside long-press previews:
|
|
120
|
+
|
|
121
|
+
```tsx
|
|
122
|
+
<Link href="/photo" asChild>
|
|
123
|
+
<Link.Trigger withAppleZoom>
|
|
124
|
+
<Pressable>
|
|
125
|
+
<Image
|
|
126
|
+
source={{ uri: "https://example.com/thumb.jpg" }}
|
|
127
|
+
style={{ width: 120, height: 120 }}
|
|
128
|
+
/>
|
|
129
|
+
</Pressable>
|
|
130
|
+
</Link.Trigger>
|
|
131
|
+
<Link.Preview />
|
|
132
|
+
</Link>
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
## Best Practices
|
|
136
|
+
|
|
137
|
+
**Good use cases:**
|
|
138
|
+
|
|
139
|
+
- Thumbnail → full image (gallery, profile photos)
|
|
140
|
+
- Card → detail screen with similar visual content
|
|
141
|
+
- Source and destination with similar aspect ratios
|
|
142
|
+
|
|
143
|
+
**Avoid:**
|
|
144
|
+
|
|
145
|
+
- Skinny full-width list rows as zoom sources — the transition looks unnatural
|
|
146
|
+
- Mismatched aspect ratios between source and destination without `alignmentRect`
|
|
147
|
+
- Using zoom with sheets or popovers — only works in Stack navigator
|
|
148
|
+
- Hiding the navigation bar — known issues with header visibility during transitions
|
|
149
|
+
|
|
150
|
+
**Tips:**
|
|
151
|
+
|
|
152
|
+
- Always provide a close or back button — dismissal gestures are not discoverable
|
|
153
|
+
- If the destination has a zoomable scroll view, use `unstable_dismissalBoundsRect` to avoid gesture conflicts
|
|
154
|
+
- Source view doesn't need to match the tap target — only the `Link.AppleZoom` wrapped element animates
|
|
155
|
+
- When source is unavailable (e.g., scrolled off screen), the transition zooms from the center of the screen
|
|
156
|
+
|
|
157
|
+
## References
|
|
158
|
+
|
|
159
|
+
- Expo Router Zoom Transitions: https://docs.expo.dev/router/advanced/zoom-transition/
|
|
160
|
+
- Link.AppleZoom API: https://docs.expo.dev/versions/v55.0.0/sdk/router/#linkapplezoom
|
|
161
|
+
- Apple UIKit Fluid Transitions: https://developer.apple.com/documentation/uikit/enhancing-your-app-with-fluid-transitions
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: marketing-ops
|
|
3
|
+
description: "Funnel-stage organized marketing playbook covering Foundation (product-marketing, customer-research, marketing-psychology, marketing-ideas), Acquire (paid ads, SEO/AI-SEO, content, social, video, image, outbound, launch, directories, community, free-tools, lead-magnets), Activate (CRO, signup, popups, paywalls, copy editing, A/B testing, analytics, sales enablement, pricing), Retain (onboarding, churn prevention, RevOps lifecycle), Expand (referrals, co-marketing). Use when planning, designing, or executing marketing campaigns end-to-end. For Brazilian direct-response copy methodology, paid traffic ROAS, WhatsApp formats, and Schwartz awareness, see digital-marketing. For SaaS page copy, see general/copywriting."
|
|
4
|
+
license: MIT
|
|
5
|
+
metadata:
|
|
6
|
+
source: "coreyhaines31/marketingskills (MIT) v2.0.1 + Merlin marketing-ops adaptation"
|
|
7
|
+
imported: 2026-05-20
|
|
8
|
+
version: "1.0.0"
|
|
9
|
+
upstream_baseline: "coreyhaines31/marketingskills v2.0.1 (2026-05-18)"
|
|
10
|
+
auto_activate:
|
|
11
|
+
[
|
|
12
|
+
marketing-ops,
|
|
13
|
+
campaign,
|
|
14
|
+
growth-marketing,
|
|
15
|
+
cro,
|
|
16
|
+
lead-magnet,
|
|
17
|
+
customer-research,
|
|
18
|
+
]
|
|
19
|
+
file_triggers:
|
|
20
|
+
[
|
|
21
|
+
"**/landing-page/**",
|
|
22
|
+
"**/lead-magnet/**",
|
|
23
|
+
"**/funnel/**",
|
|
24
|
+
"**/cro/**",
|
|
25
|
+
"**/lifecycle-email/**",
|
|
26
|
+
]
|
|
27
|
+
tool_reminders:
|
|
28
|
+
- "Before writing any campaign artifact, read .merlin-core/thoughts/shared/decisions/<project>-product-marketing.md if it exists; otherwise activate references/foundation/product-marketing.md to generate it"
|
|
29
|
+
- "Map every artifact to a funnel stage explicitly (Foundation/Acquire/Activate/Retain/Expand) — refuse to write generic 'marketing copy' without stage assignment"
|
|
30
|
+
- "Cross-link to digital-marketing for Brazilian DR methodology (3-Document Protocol, Schwartz, Anti-AI, ROAS, WhatsApp formats, R$ benchmarks)"
|
|
31
|
+
- "For page-level copy structure, route to general/copywriting; for delivery to general/resend-email; for visuals to general/image-gen; for decks to general/blkskrn"
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
# marketing-ops — Funnel-Stage Marketing Umbrella
|
|
35
|
+
|
|
36
|
+
Full-funnel marketing playbook organized by stage: **Foundation → Acquire → Activate → Retain → Expand**. Imports 40 skills from `coreyhaines31/marketingskills` v2.0.1 (MIT), wired into the Alkimia engine. Methodology authority on Brazilian direct-response copy, ROAS, WhatsApp formats, and Schwartz awareness remains with [`digital-marketing`](../digital-marketing/SKILL.md).
|
|
37
|
+
|
|
38
|
+
## Adjacency Map
|
|
39
|
+
|
|
40
|
+
| Need | Skill |
|
|
41
|
+
| ----------------------------------------------------------- | ------------------------------------------------------------- |
|
|
42
|
+
| Brazilian DR methodology, Schwartz, Anti-AI, ROAS, WhatsApp | [`digital-marketing`](../digital-marketing/SKILL.md) |
|
|
43
|
+
| SaaS page copy (homepage, LP, pricing, feature) | [`general/copywriting`](../../general/copywriting/SKILL.md) |
|
|
44
|
+
| Edit/refine existing copy | [`general/copy-editing`](../../general/copy-editing/SKILL.md) |
|
|
45
|
+
| B2B cold outreach + follow-up sequences | [`general/cold-email`](../../general/cold-email/SKILL.md) |
|
|
46
|
+
| Email delivery layer | [`general/resend-email`](../../general/resend-email/SKILL.md) |
|
|
47
|
+
| AI image generation | [`general/image-gen`](../../general/image-gen/SKILL.md) |
|
|
48
|
+
| Presentation decks | [`general/blkskrn`](../../general/blkskrn/SKILL.md) |
|
|
49
|
+
| Visual finishing | [`general/mage-beauty`](../../general/mage-beauty/SKILL.md) |
|
|
50
|
+
|
|
51
|
+
## Funnel-Stage Map
|
|
52
|
+
|
|
53
|
+
### 🏛️ Foundation — `references/foundation/`
|
|
54
|
+
|
|
55
|
+
Foundation-stage skills produce the canonical project brief that every other skill reads first.
|
|
56
|
+
|
|
57
|
+
- `product-marketing.md` — Positioning + ICP + market context artifact (`.merlin-core/thoughts/shared/decisions/<project>-product-marketing.md`)
|
|
58
|
+
- `customer-research.md` — JTBD, VoC, Reddit/G2 mining, theme clustering
|
|
59
|
+
- `marketing-psychology.md` — Fogg, EAST, COM-B, prospect theory, anchoring
|
|
60
|
+
- `marketing-ideas.md` — 139-idea SaaS marketing catalog
|
|
61
|
+
|
|
62
|
+
### 🎯 Acquire — `references/acquire/`
|
|
63
|
+
|
|
64
|
+
Get attention. Paid traffic, SEO, content, social, video, image, outbound, launch, directories, community, partnerships, lead magnets.
|
|
65
|
+
|
|
66
|
+
- `ads.md`, `ad-creative.md` — Multi-platform paid + bulk creative
|
|
67
|
+
- `ai-seo.md`, `seo-audit.md`, `site-architecture.md`, `schema.md` — Discovery
|
|
68
|
+
- `programmatic-seo.md` _(pointer → digital-marketing)_, `content-strategy.md` _(pointer)_, `launch.md` _(pointer)_
|
|
69
|
+
- `competitors.md`, `competitor-profiling.md` — Comparison & intel
|
|
70
|
+
- `social.md`, `video.md`, `image.md` — Production
|
|
71
|
+
- `directory-submissions.md` — PH + G2 + AI dirs
|
|
72
|
+
- `community-marketing.md`, `co-marketing.md`, `free-tools.md`, `lead-magnets.md` — Pull-based
|
|
73
|
+
- `aso.md` — Mobile
|
|
74
|
+
|
|
75
|
+
### 🔥 Activate — `references/activate/`
|
|
76
|
+
|
|
77
|
+
Turn attention into signup/purchase. LP CRO, signup, popups, paywalls, copy editing, A/B testing, analytics, sales enablement.
|
|
78
|
+
|
|
79
|
+
- `cro.md`, `signup.md`, `popups.md`, `paywalls.md`
|
|
80
|
+
- `copywriting.md` _(pointer → general)_, `copy-editing.md` _(pointer → general)_
|
|
81
|
+
- `emails.md` _(pointer → digital-marketing/email-sequences.md)_, `pricing.md` _(pointer)_
|
|
82
|
+
- `ab-testing.md`, `analytics.md`, `sales-enablement.md`
|
|
83
|
+
|
|
84
|
+
### 🔄 Retain — `references/retain/`
|
|
85
|
+
|
|
86
|
+
Keep them using/paying. Onboarding, churn prevention, lifecycle.
|
|
87
|
+
|
|
88
|
+
- `onboarding.md`, `churn-prevention.md`
|
|
89
|
+
- `revops-lifecycle.md` _(pointer → digital-marketing)_, `revops-operations.md` _(pointer)_
|
|
90
|
+
|
|
91
|
+
### 🚀 Expand — `references/expand/`
|
|
92
|
+
|
|
93
|
+
Turn customers into growth.
|
|
94
|
+
|
|
95
|
+
- `referrals.md`
|
|
96
|
+
- `co-marketing.md`, `community-marketing.md` _(both pointers → acquire stage)_
|
|
97
|
+
|
|
98
|
+
## When to Activate marketing-ops vs digital-marketing vs general
|
|
99
|
+
|
|
100
|
+
Decision tree:
|
|
101
|
+
|
|
102
|
+
1. **Brazilian audience + WhatsApp + info-product launch + R$ ROAS** → `digital-marketing` (it owns the methodology)
|
|
103
|
+
2. **SaaS funnel design / CRO / churn / sales enablement / SEO at scale / lead magnets** → `marketing-ops` (funnel-stage router)
|
|
104
|
+
3. **Need to write the page itself (homepage, LP, pricing, feature, about)** → `general/copywriting`
|
|
105
|
+
4. **Need to edit existing copy** → `general/copy-editing`
|
|
106
|
+
5. **B2B cold outbound prospecting** → `general/cold-email`
|
|
107
|
+
6. **Production artifacts only (email blast, OG image, deck)** → general/{resend-email, image-gen, blkskrn}
|
|
108
|
+
|
|
109
|
+
When both `digital-marketing` and `marketing-ops` could apply, `digital-marketing` wins on methodology (3-Document Protocol, Schwartz, Anti-AI, ROAS, WhatsApp), `marketing-ops` wins on funnel-stage navigation and skill composition.
|
|
110
|
+
|
|
111
|
+
## Bundled References (40 skills, organized in `references/`)
|
|
112
|
+
|
|
113
|
+
See [`references/_index.md`](references/_index.md) for the full funnel-stage map with canonical paths, source attribution, and pointer/imported status.
|
|
114
|
+
|
|
115
|
+
## Provenance
|
|
116
|
+
|
|
117
|
+
Imported 2026-05-20 from `coreyhaines31/marketingskills` v2.0.1 (MIT). Per-file attribution is preserved in each reference's frontmatter `metadata.source` field. The `digital-marketing` skill remains authoritative for Brazilian direct-response methodology — see its SKILL.md Integration section for the boundary statement.
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# marketing-ops References — Funnel-Stage Index
|
|
2
|
+
|
|
3
|
+
Full map of all 40 imported skills from `coreyhaines31/marketingskills` v2.0.1 (MIT), organized by funnel stage. Status legend: **IMPORTED** = upstream body imported here; **POINTER → path** = canonical body lives elsewhere; **POINTER → general/X** = production utility skill in general/.
|
|
4
|
+
|
|
5
|
+
## 🏛️ Foundation (4 skills)
|
|
6
|
+
|
|
7
|
+
| Skill | Canonical path | Status |
|
|
8
|
+
| -------------------- | ------------------------------------ | -------- |
|
|
9
|
+
| product-marketing | `foundation/product-marketing.md` | IMPORTED |
|
|
10
|
+
| customer-research | `foundation/customer-research.md` | IMPORTED |
|
|
11
|
+
| marketing-psychology | `foundation/marketing-psychology.md` | IMPORTED |
|
|
12
|
+
| marketing-ideas | `foundation/marketing-ideas.md` | IMPORTED |
|
|
13
|
+
|
|
14
|
+
## 🎯 Acquire (20 skills)
|
|
15
|
+
|
|
16
|
+
| Skill | Canonical path | Status |
|
|
17
|
+
| --------------------- | ---------------------------------- | ------------------------------------------------------------------ |
|
|
18
|
+
| ads | `acquire/ads.md` | IMPORTED |
|
|
19
|
+
| ad-creative | `acquire/ad-creative.md` | IMPORTED |
|
|
20
|
+
| ai-seo | `acquire/ai-seo.md` | IMPORTED |
|
|
21
|
+
| seo-audit | `acquire/seo-audit.md` | IMPORTED |
|
|
22
|
+
| site-architecture | `acquire/site-architecture.md` | IMPORTED |
|
|
23
|
+
| competitors | `acquire/competitors.md` | IMPORTED |
|
|
24
|
+
| competitor-profiling | `acquire/competitor-profiling.md` | IMPORTED |
|
|
25
|
+
| social | `acquire/social.md` | IMPORTED |
|
|
26
|
+
| video | `acquire/video.md` | IMPORTED |
|
|
27
|
+
| image | `acquire/image.md` | IMPORTED |
|
|
28
|
+
| directory-submissions | `acquire/directory-submissions.md` | IMPORTED |
|
|
29
|
+
| community-marketing | `acquire/community-marketing.md` | IMPORTED |
|
|
30
|
+
| co-marketing | `acquire/co-marketing.md` | IMPORTED |
|
|
31
|
+
| free-tools | `acquire/free-tools.md` | IMPORTED |
|
|
32
|
+
| lead-magnets | `acquire/lead-magnets.md` | IMPORTED |
|
|
33
|
+
| aso | `acquire/aso.md` | IMPORTED |
|
|
34
|
+
| content-strategy | `acquire/content-strategy.md` | POINTER → `../../digital-marketing/references/content-strategy.md` |
|
|
35
|
+
| programmatic-seo | `acquire/programmatic-seo.md` | POINTER → `../../digital-marketing/references/programmatic-seo.md` |
|
|
36
|
+
| schema | `acquire/schema.md` | POINTER → `../../digital-marketing/references/schema-markup.md` |
|
|
37
|
+
| launch | `acquire/launch.md` | POINTER → `../../digital-marketing/references/launch-strategy.md` |
|
|
38
|
+
|
|
39
|
+
## 🔥 Activate (11 skills)
|
|
40
|
+
|
|
41
|
+
| Skill | Canonical path | Status |
|
|
42
|
+
| ---------------- | ------------------------------ | ------------------------------------------------------------------ |
|
|
43
|
+
| cro | `activate/cro.md` | IMPORTED |
|
|
44
|
+
| signup | `activate/signup.md` | IMPORTED |
|
|
45
|
+
| popups | `activate/popups.md` | IMPORTED |
|
|
46
|
+
| paywalls | `activate/paywalls.md` | IMPORTED |
|
|
47
|
+
| ab-testing | `activate/ab-testing.md` | IMPORTED |
|
|
48
|
+
| analytics | `activate/analytics.md` | IMPORTED |
|
|
49
|
+
| sales-enablement | `activate/sales-enablement.md` | IMPORTED |
|
|
50
|
+
| pricing | `activate/pricing.md` | POINTER → `../../digital-marketing/references/pricing-strategy.md` |
|
|
51
|
+
| copywriting | `activate/copywriting.md` | POINTER → general/copywriting |
|
|
52
|
+
| copy-editing | `activate/copy-editing.md` | POINTER → general/copy-editing |
|
|
53
|
+
| emails | `activate/emails.md` | POINTER → `../../digital-marketing/references/email-sequences.md` |
|
|
54
|
+
|
|
55
|
+
## 🔄 Retain (4 skills)
|
|
56
|
+
|
|
57
|
+
| Skill | Canonical path | Status |
|
|
58
|
+
| ----------------- | ----------------------------- | ------------------------------------------------------------------- |
|
|
59
|
+
| onboarding | `retain/onboarding.md` | IMPORTED |
|
|
60
|
+
| churn-prevention | `retain/churn-prevention.md` | IMPORTED |
|
|
61
|
+
| revops-lifecycle | `retain/revops-lifecycle.md` | POINTER → `../../digital-marketing/references/revops-lifecycle.md` |
|
|
62
|
+
| revops-operations | `retain/revops-operations.md` | POINTER → `../../digital-marketing/references/revops-operations.md` |
|
|
63
|
+
|
|
64
|
+
## 🚀 Expand (3 skills)
|
|
65
|
+
|
|
66
|
+
| Skill | Canonical path | Status |
|
|
67
|
+
| ------------------- | ------------------------------- | -------------------------------------------------------------------- |
|
|
68
|
+
| referrals | `expand/referrals.md` | IMPORTED |
|
|
69
|
+
| co-marketing | `expand/co-marketing.md` | POINTER → `../acquire/co-marketing.md` (canonical in Acquire) |
|
|
70
|
+
| community-marketing | `expand/community-marketing.md` | POINTER → `../acquire/community-marketing.md` (canonical in Acquire) |
|
|
71
|
+
|
|
72
|
+
## Summary
|
|
73
|
+
|
|
74
|
+
- **Total skills:** 40 (matches upstream v2.0.1 count)
|
|
75
|
+
- **IMPORTED bodies:** 32 (canonical upstream content lives here under `marketing-ops/references/`)
|
|
76
|
+
- **POINTER files:** 8 (canonical bodies live in `digital-marketing/references/` or `general/`)
|
|
77
|
+
- **Source:** `coreyhaines31/marketingskills` v2.0.1 (MIT), 2026-05-18 upstream baseline
|
|
78
|
+
- **Imported:** 2026-05-20
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
---
|
|
2
|
+
source: coreyhaines31/marketingskills (MIT) v2.0.1
|
|
3
|
+
imported: 2026-05-20 (stub) — full body deferred to follow-up cleanup
|
|
4
|
+
stage: acquire
|
|
5
|
+
skill: ad-creative
|
|
6
|
+
upstream_path: skills/ad-creative/references/generative-tools.md
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# generative-tools — reference stub
|
|
10
|
+
|
|
11
|
+
This is a thin pointer to an upstream reference. The full verbatim body is **deferred** to a future cleanup phase to manage context budget.
|
|
12
|
+
|
|
13
|
+
**Upstream URL (canonical body):** https://github.com/coreyhaines31/marketingskills/blob/main/skills/ad-creative/references/generative-tools.md
|
|
14
|
+
|
|
15
|
+
**Raw fetch URL:** https://raw.githubusercontent.com/coreyhaines31/marketingskills/main/skills/ad-creative/references/generative-tools.md
|
|
16
|
+
|
|
17
|
+
**Parent skill:** [`../ad-creative.md`](../ad-creative.md) (stage: acquire)
|
|
18
|
+
|
|
19
|
+
**To import the full body** (future task): `curl -sSL <raw URL> -o references/acquire/ad-creative/references/generative-tools.md`, then prepend the standard Adjacency header.
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
---
|
|
2
|
+
source: coreyhaines31/marketingskills (MIT) v2.0.1
|
|
3
|
+
imported: 2026-05-20 (stub) — full body deferred to follow-up cleanup
|
|
4
|
+
stage: acquire
|
|
5
|
+
skill: ad-creative
|
|
6
|
+
upstream_path: skills/ad-creative/references/platform-specs.md
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# platform-specs — reference stub
|
|
10
|
+
|
|
11
|
+
This is a thin pointer to an upstream reference. The full verbatim body is **deferred** to a future cleanup phase to manage context budget.
|
|
12
|
+
|
|
13
|
+
**Upstream URL (canonical body):** https://github.com/coreyhaines31/marketingskills/blob/main/skills/ad-creative/references/platform-specs.md
|
|
14
|
+
|
|
15
|
+
**Raw fetch URL:** https://raw.githubusercontent.com/coreyhaines31/marketingskills/main/skills/ad-creative/references/platform-specs.md
|
|
16
|
+
|
|
17
|
+
**Parent skill:** [`../ad-creative.md`](../ad-creative.md) (stage: acquire)
|
|
18
|
+
|
|
19
|
+
**To import the full body** (future task): `curl -sSL <raw URL> -o references/acquire/ad-creative/references/platform-specs.md`, then prepend the standard Adjacency header.
|
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
---
|
|
2
|
+
source: coreyhaines31/marketingskills (MIT) v2.0.1
|
|
3
|
+
imported: 2026-05-20
|
|
4
|
+
stage: acquire
|
|
5
|
+
upstream_path: skills/ad-creative/SKILL.md
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
> **Adjacency:** Part of the [`marketing-ops`](../../SKILL.md) umbrella. For Brazilian-DR creative angles + Anti-AI Copy Detection + 7-part Video Ad Script + Image Ad 4-block templates, see [`digital-marketing/references/copy-formats.md`](../../../digital-marketing/references/copy-formats.md). For campaign strategy, see sibling [`ads.md`](ads.md). For visual production, see [`image.md`](image.md), [`video.md`](video.md), and [`general/image-gen`](../../../../general/image-gen/SKILL.md).
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Ad Creative
|
|
13
|
+
|
|
14
|
+
You are an expert performance creative strategist. Your goal is to generate high-performing ad creative at scale — headlines, descriptions, and primary text that drive clicks and conversions — and iterate based on real performance data.
|
|
15
|
+
|
|
16
|
+
## Before Starting
|
|
17
|
+
|
|
18
|
+
**Check for product marketing context first:**
|
|
19
|
+
If `.merlin-core/thoughts/shared/decisions/<project>-product-marketing.md` exists (or legacy `.agents/product-marketing.md`), read it before asking questions.
|
|
20
|
+
|
|
21
|
+
Gather this context (ask if not provided):
|
|
22
|
+
|
|
23
|
+
### 1. Platform & Format
|
|
24
|
+
|
|
25
|
+
- What platform? (Google Ads, Meta, LinkedIn, TikTok, Twitter/X)
|
|
26
|
+
- What ad format? (Search RSAs, display, social feed, stories, video)
|
|
27
|
+
- Are there existing ads to iterate on, or starting from scratch?
|
|
28
|
+
|
|
29
|
+
### 2. Product & Offer
|
|
30
|
+
|
|
31
|
+
- What are you promoting?
|
|
32
|
+
- What's the core value proposition?
|
|
33
|
+
- What makes this different from competitors?
|
|
34
|
+
|
|
35
|
+
### 3. Audience & Intent
|
|
36
|
+
|
|
37
|
+
- Who is the target audience?
|
|
38
|
+
- What stage of awareness? (Problem-aware, solution-aware, product-aware)
|
|
39
|
+
- What pain points or desires drive them?
|
|
40
|
+
|
|
41
|
+
### 4. Performance Data (if iterating)
|
|
42
|
+
|
|
43
|
+
- What creative is currently running?
|
|
44
|
+
- Which headlines/descriptions are performing best? (CTR, conversion rate, ROAS)
|
|
45
|
+
- Which are underperforming?
|
|
46
|
+
- What angles or themes have been tested?
|
|
47
|
+
|
|
48
|
+
### 5. Constraints
|
|
49
|
+
|
|
50
|
+
- Brand voice guidelines or words to avoid?
|
|
51
|
+
- Compliance requirements?
|
|
52
|
+
- Any mandatory elements? (Brand name, trademark symbols, disclaimers)
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## How This Skill Works
|
|
57
|
+
|
|
58
|
+
### Mode 1: Generate from Scratch
|
|
59
|
+
|
|
60
|
+
Generate a full set of ad creative based on product context, audience insights, and platform best practices.
|
|
61
|
+
|
|
62
|
+
### Mode 2: Iterate from Performance Data
|
|
63
|
+
|
|
64
|
+
Analyze what's working, identify patterns in top performers, and generate new variations that build on winning themes while exploring new angles.
|
|
65
|
+
|
|
66
|
+
Core loop: Pull performance data → Identify winning patterns → Generate new variations → Validate specs → Deliver
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## Platform Specs
|
|
71
|
+
|
|
72
|
+
### Google Ads (Responsive Search Ads)
|
|
73
|
+
|
|
74
|
+
| Element | Limit | Quantity |
|
|
75
|
+
| ---------------- | ------------------ | -------- |
|
|
76
|
+
| Headline | 30 characters | Up to 15 |
|
|
77
|
+
| Description | 90 characters | Up to 4 |
|
|
78
|
+
| Display URL path | 15 characters each | 2 paths |
|
|
79
|
+
|
|
80
|
+
**RSA rules:**
|
|
81
|
+
|
|
82
|
+
- Headlines must make sense independently and in any combination
|
|
83
|
+
- Pin headlines to positions only when necessary
|
|
84
|
+
- Include at least one keyword-focused, one benefit-focused, one CTA headline
|
|
85
|
+
|
|
86
|
+
### Meta Ads (Facebook/Instagram)
|
|
87
|
+
|
|
88
|
+
| Element | Limit | Notes |
|
|
89
|
+
| ------------ | ------------------------------- | ------------------- |
|
|
90
|
+
| Primary text | 125 chars visible (up to 2,200) | Front-load the hook |
|
|
91
|
+
| Headline | 40 characters recommended | Below the image |
|
|
92
|
+
| Description | 30 characters recommended | Below headline |
|
|
93
|
+
|
|
94
|
+
### LinkedIn Ads
|
|
95
|
+
|
|
96
|
+
| Element | Limit | Notes |
|
|
97
|
+
| ----------- | ------------------------------- | --------------- |
|
|
98
|
+
| Intro text | 150 chars recommended (600 max) | Above the image |
|
|
99
|
+
| Headline | 70 chars recommended (200 max) | Below the image |
|
|
100
|
+
| Description | 100 chars recommended (300 max) | Some placements |
|
|
101
|
+
|
|
102
|
+
### TikTok Ads
|
|
103
|
+
|
|
104
|
+
| Element | Limit | Notes |
|
|
105
|
+
| ------------ | ------------------------------ | --------------- |
|
|
106
|
+
| Ad text | 80 chars recommended (100 max) | Above the video |
|
|
107
|
+
| Display name | 40 characters | Brand name |
|
|
108
|
+
|
|
109
|
+
### Twitter/X Ads
|
|
110
|
+
|
|
111
|
+
| Element | Limit | Notes |
|
|
112
|
+
| ----------- | -------------- | ---------------- |
|
|
113
|
+
| Tweet text | 280 characters | The ad copy |
|
|
114
|
+
| Headline | 70 characters | Card headline |
|
|
115
|
+
| Description | 200 characters | Card description |
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
## Generating Ad Copy
|
|
120
|
+
|
|
121
|
+
### Step 1: Define Your Angles
|
|
122
|
+
|
|
123
|
+
Before writing individual headlines, establish 3-5 distinct **angles** — different reasons someone would click. Each angle should tap into a different motivation.
|
|
124
|
+
|
|
125
|
+
**Common angle categories:**
|
|
126
|
+
|
|
127
|
+
| Category | Example Angle |
|
|
128
|
+
| ------------ | ------------------------------------ |
|
|
129
|
+
| Pain point | "Stop wasting time on X" |
|
|
130
|
+
| Outcome | "Achieve Y in Z days" |
|
|
131
|
+
| Social proof | "Join 10,000+ teams who..." |
|
|
132
|
+
| Curiosity | "The X secret top companies use" |
|
|
133
|
+
| Comparison | "Unlike X, we do Y" |
|
|
134
|
+
| Urgency | "Limited time: get X free" |
|
|
135
|
+
| Identity | "Built for [specific role/type]" |
|
|
136
|
+
| Contrarian | "Why [common practice] doesn't work" |
|
|
137
|
+
|
|
138
|
+
### Step 2: Generate Variations per Angle
|
|
139
|
+
|
|
140
|
+
For each angle, generate multiple variations. Vary:
|
|
141
|
+
|
|
142
|
+
- **Word choice** — synonyms, active vs. passive
|
|
143
|
+
- **Specificity** — numbers vs. general claims
|
|
144
|
+
- **Tone** — direct vs. question vs. command
|
|
145
|
+
- **Structure** — short punch vs. full benefit statement
|
|
146
|
+
|
|
147
|
+
### Step 3: Validate Against Specs
|
|
148
|
+
|
|
149
|
+
Before delivering, check every piece of creative against the platform's character limits.
|
|
150
|
+
|
|
151
|
+
### Step 4: Organize for Upload
|
|
152
|
+
|
|
153
|
+
Present creative in a structured format that maps to the ad platform's upload requirements.
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
## Iterating from Performance Data
|
|
158
|
+
|
|
159
|
+
When the user provides performance data:
|
|
160
|
+
|
|
161
|
+
### Step 1: Analyze Winners
|
|
162
|
+
|
|
163
|
+
- **Winning themes** — What topics or pain points appear in top performers?
|
|
164
|
+
- **Winning structures** — Questions? Statements? Commands? Numbers?
|
|
165
|
+
- **Winning word patterns** — Specific words or phrases that recur?
|
|
166
|
+
- **Character utilization** — Are top performers shorter or longer?
|
|
167
|
+
|
|
168
|
+
### Step 2: Analyze Losers
|
|
169
|
+
|
|
170
|
+
- **Themes that fall flat** — What angles aren't resonating?
|
|
171
|
+
- **Common patterns in low performers** — Too generic? Too long? Wrong tone?
|
|
172
|
+
|
|
173
|
+
### Step 3: Generate New Variations
|
|
174
|
+
|
|
175
|
+
- **Doubles down** on winning themes with fresh phrasing
|
|
176
|
+
- **Extends** winning angles into new variations
|
|
177
|
+
- **Tests** 1-2 new angles not yet explored
|
|
178
|
+
- **Avoids** patterns found in underperformers
|
|
179
|
+
|
|
180
|
+
---
|
|
181
|
+
|
|
182
|
+
## Writing Quality Standards
|
|
183
|
+
|
|
184
|
+
### Headlines That Click
|
|
185
|
+
|
|
186
|
+
**Strong headlines:**
|
|
187
|
+
|
|
188
|
+
- Specific ("Cut reporting time 75%") over vague ("Save time")
|
|
189
|
+
- Benefits ("Ship code faster") over features ("CI/CD pipeline")
|
|
190
|
+
- Active voice ("Automate your reports") over passive ("Reports are automated")
|
|
191
|
+
- Include numbers when possible ("3x faster," "in 5 minutes," "10,000+ teams")
|
|
192
|
+
|
|
193
|
+
**Avoid:**
|
|
194
|
+
|
|
195
|
+
- Jargon the audience won't recognize
|
|
196
|
+
- Claims without specificity ("Best," "Leading," "Top")
|
|
197
|
+
- All caps or excessive punctuation
|
|
198
|
+
- Clickbait that the landing page can't deliver on
|
|
199
|
+
|
|
200
|
+
### Descriptions That Convert
|
|
201
|
+
|
|
202
|
+
Use descriptions to:
|
|
203
|
+
|
|
204
|
+
- Add proof points (numbers, testimonials, awards)
|
|
205
|
+
- Handle objections ("No credit card required")
|
|
206
|
+
- Reinforce CTAs ("Start your free trial today")
|
|
207
|
+
- Add urgency when genuine ("Limited to first 500 signups")
|
|
208
|
+
|
|
209
|
+
---
|
|
210
|
+
|
|
211
|
+
## Generating Ad Visuals
|
|
212
|
+
|
|
213
|
+
For image and video ad creative, use generative AI tools and code-based video rendering:
|
|
214
|
+
|
|
215
|
+
- **Image generation** — Nano Banana Pro (Gemini), Flux, Ideogram for static ad images
|
|
216
|
+
- **Video generation** — Veo, Kling, Runway, Sora, Seedance, Higgsfield for video ads
|
|
217
|
+
- **Voice & audio** — ElevenLabs, OpenAI TTS, Cartesia for voiceovers, cloning, multilingual
|
|
218
|
+
- **Code-based video** — Remotion for templated, data-driven video at scale
|
|
219
|
+
|
|
220
|
+
**Recommended workflow:**
|
|
221
|
+
|
|
222
|
+
1. Generate hero creative with AI tools (exploratory, high-quality)
|
|
223
|
+
2. Build Remotion templates based on winning patterns
|
|
224
|
+
3. Batch produce variations with Remotion using data feeds
|
|
225
|
+
4. Iterate — AI for new angles, Remotion for scale
|
|
226
|
+
|
|
227
|
+
For Brazilian-DR Anti-AI Visual Protocol (rejects generic gradients, symmetric compositions, template-like layouts), see [`digital-marketing/SKILL.md`](../../../digital-marketing/SKILL.md#anti-ai-visual-protocol).
|
|
228
|
+
|
|
229
|
+
---
|
|
230
|
+
|
|
231
|
+
## Common Mistakes
|
|
232
|
+
|
|
233
|
+
- **Writing headlines that only work together** — RSA headlines get combined randomly
|
|
234
|
+
- **Ignoring character limits** — Platforms truncate without warning
|
|
235
|
+
- **All variations sound the same** — Vary angles, not just word choice
|
|
236
|
+
- **No CTA headlines** — Include at least 2-3 action-oriented headlines
|
|
237
|
+
- **Generic descriptions** — "Learn more about our solution" wastes the slot
|
|
238
|
+
- **Iterating without data** — Gut feelings are less reliable than metrics
|
|
239
|
+
- **Testing too many things at once** — Change one variable per test cycle
|
|
240
|
+
- **Retiring creative too early** — Allow 1,000+ impressions before judging
|
|
241
|
+
|
|
242
|
+
---
|
|
243
|
+
|
|
244
|
+
## Related Skills
|
|
245
|
+
|
|
246
|
+
- **ads** (sibling): Campaign strategy, targeting, budgets, optimization
|
|
247
|
+
- **copywriting** (general): Landing page copy
|
|
248
|
+
- **ab-testing** (activate): Structuring creative tests with statistical rigor
|
|
249
|
+
- **marketing-psychology** (foundation): Psychological principles behind high-performing creative
|
|
250
|
+
- **copy-editing** (general): Polishing ad copy before launch
|
|
251
|
+
- **digital-marketing/copy-formats**: Brazilian-DR 7-part Video Ad + Image Ad 4-block templates + Creative Angle Matrix
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
---
|
|
2
|
+
source: coreyhaines31/marketingskills (MIT) v2.0.1
|
|
3
|
+
imported: 2026-05-20 (stub) — full body deferred to follow-up cleanup
|
|
4
|
+
stage: acquire
|
|
5
|
+
skill: ads
|
|
6
|
+
upstream_path: skills/ads/references/ad-copy-templates.md
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# ad-copy-templates — reference stub
|
|
10
|
+
|
|
11
|
+
This is a thin pointer to an upstream reference. The full verbatim body is **deferred** to a future cleanup phase to manage context budget.
|
|
12
|
+
|
|
13
|
+
**Upstream URL (canonical body):** https://github.com/coreyhaines31/marketingskills/blob/main/skills/ads/references/ad-copy-templates.md
|
|
14
|
+
|
|
15
|
+
**Raw fetch URL:** https://raw.githubusercontent.com/coreyhaines31/marketingskills/main/skills/ads/references/ad-copy-templates.md
|
|
16
|
+
|
|
17
|
+
**Parent skill:** [`../ads.md`](../ads.md) (stage: acquire)
|
|
18
|
+
|
|
19
|
+
**To import the full body** (future task): `curl -sSL <raw URL> -o references/acquire/ads/references/ad-copy-templates.md`, then prepend the standard Adjacency header.
|