@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,225 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ops-manual
|
|
3
|
+
description: Project-specific operations manual — routes agents to the right commit, build, deploy, CI/CD, and publish instructions based on project-config.yaml operations section.
|
|
4
|
+
license: Apache-2.0
|
|
5
|
+
metadata:
|
|
6
|
+
author: merlin-framework
|
|
7
|
+
version: "3.0.0"
|
|
8
|
+
auto_activate:
|
|
9
|
+
[ops, operations, project-setup, onboard-project, deploy-config, ci-config]
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## Purpose
|
|
13
|
+
|
|
14
|
+
Every project has different answers to the same questions: How do I commit? How do I deploy? What CI runs? Where does it publish?
|
|
15
|
+
|
|
16
|
+
This skill is the **single source of truth** for operational procedures. Instead of each agent guessing or asking every time, they read `operations` from the project's `project-config.yaml` and follow it.
|
|
17
|
+
|
|
18
|
+
## How It Works
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
project-config.yaml → operations: { git, build, deploy[], ci, publish }
|
|
22
|
+
↓
|
|
23
|
+
ops-manual skill
|
|
24
|
+
┌────────┼────────┐
|
|
25
|
+
↓ ↓ ↓
|
|
26
|
+
Dex Gage /commit
|
|
27
|
+
(git,build) (deploy, (git config)
|
|
28
|
+
ci,publish)
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### Agent Ownership
|
|
32
|
+
|
|
33
|
+
| Section | Primary Agent | Reads When |
|
|
34
|
+
| -------------------- | --------------- | ----------------------------------------- |
|
|
35
|
+
| `operations.git` | Dex (dev) | Committing, branching, pre-commit hooks |
|
|
36
|
+
| `operations.git` | /commit command | Formatting commit messages |
|
|
37
|
+
| `operations.build` | Dex (dev) | Running builds during /implement |
|
|
38
|
+
| `operations.deploy` | Gage (devops) | Any deploy, go-live, or push-to-prod |
|
|
39
|
+
| `operations.ci` | Gage (devops) | Setting up or troubleshooting CI/CD |
|
|
40
|
+
| `operations.publish` | Gage (devops) | Publishing packages, extensions, releases |
|
|
41
|
+
|
|
42
|
+
### External Skill Routing
|
|
43
|
+
|
|
44
|
+
When the `deploy[].platform` value points to an external skill, Gage reads the corresponding skill for deep platform knowledge:
|
|
45
|
+
|
|
46
|
+
| Platform | External Skill Path |
|
|
47
|
+
| ---------- | --------------------------------------------------------------------------- |
|
|
48
|
+
| firebase | `.agents/skills/firebase-hosting-basics/` or `firebase-app-hosting-basics/` |
|
|
49
|
+
| cloudflare | `.agents/skills/cloudflare/` + `wrangler/` |
|
|
50
|
+
| docker | `.agents/skills/docker-deployment/` |
|
|
51
|
+
| vps | `.agents/skills/ssh-hardening/` + `.agents/skills/docker-deployment/` |
|
|
52
|
+
| vercel | Built-in deploy skill |
|
|
53
|
+
| netlify | Built-in deploy skill |
|
|
54
|
+
| azure | `.merlin-core/skills/domain/azure-cloud/` (if created) |
|
|
55
|
+
|
|
56
|
+
If a platform skill is not installed, Gage falls back to the `operations.deploy[].command` and `deploy_steps` from config — the external skill adds depth, not dependency.
|
|
57
|
+
|
|
58
|
+
## Reading Operations Config
|
|
59
|
+
|
|
60
|
+
At the start of any operational task, the acting agent reads the config:
|
|
61
|
+
|
|
62
|
+
```
|
|
63
|
+
1. Read .merlin-core/project-config.yaml → operations section
|
|
64
|
+
2. If operations section exists → follow it
|
|
65
|
+
3. If operations section is missing → run elicitation (see references/elicitation-questions.md)
|
|
66
|
+
4. If specific field is empty → use sensible defaults or ask user
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### Sensible Defaults (when config is missing)
|
|
70
|
+
|
|
71
|
+
| Field | Default |
|
|
72
|
+
| ----------------------- | ---------------------------------------- |
|
|
73
|
+
| `git.branch_strategy` | trunk |
|
|
74
|
+
| `git.main_branch` | main |
|
|
75
|
+
| `git.commit_convention` | conventional |
|
|
76
|
+
| `build.command` | `npm run build` (if package.json exists) |
|
|
77
|
+
| `deploy[].approval` | HIGH |
|
|
78
|
+
| `ci.provider` | none |
|
|
79
|
+
| `publish.platform` | none |
|
|
80
|
+
|
|
81
|
+
## Operational Checklists
|
|
82
|
+
|
|
83
|
+
### Commit Checklist (Dex + /commit)
|
|
84
|
+
|
|
85
|
+
```
|
|
86
|
+
□ Read operations.git from project-config.yaml
|
|
87
|
+
□ Use commit_convention format (conventional, jira, plain)
|
|
88
|
+
□ Apply commit_prefix if set (e.g., "PROJ-123: ")
|
|
89
|
+
□ Verify branch matches branch_strategy expectations
|
|
90
|
+
□ Run pre_commit_hooks if defined
|
|
91
|
+
□ Stage specific files — never git add -A
|
|
92
|
+
□ Never --no-verify unless user explicitly requests
|
|
93
|
+
□ Present message for user approval before committing
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### Build Checklist (Dex)
|
|
97
|
+
|
|
98
|
+
```
|
|
99
|
+
□ Read operations.build from project-config.yaml
|
|
100
|
+
□ Run pre_build commands if defined (npm install, prisma generate, etc.)
|
|
101
|
+
□ Execute build.command
|
|
102
|
+
□ Verify output appears in build.output_dir
|
|
103
|
+
□ Check for TypeScript/lint errors in build output
|
|
104
|
+
□ If build fails, diagnose before retrying
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### Deploy Checklist (Gage)
|
|
108
|
+
|
|
109
|
+
```
|
|
110
|
+
□ Read operations.deploy[] from project-config.yaml
|
|
111
|
+
□ Identify target by name (production, staging, vps-primary, etc.)
|
|
112
|
+
□ Check approval level — if HIGH, require explicit user confirmation
|
|
113
|
+
□ Load external skill for the platform (firebase, docker, vps, etc.)
|
|
114
|
+
□ For VPS targets:
|
|
115
|
+
□ SSH to vps.host as vps.user on vps.port
|
|
116
|
+
□ Execute vps.deploy_steps in order
|
|
117
|
+
□ On failure, run vps.rollback
|
|
118
|
+
□ For platform targets:
|
|
119
|
+
□ Verify env vars are configured at env_vars_location
|
|
120
|
+
□ Execute deploy command
|
|
121
|
+
□ Post-deploy: verify URL responds
|
|
122
|
+
□ On failure: report full error + rollback instructions
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
### CI/CD Checklist (Gage)
|
|
126
|
+
|
|
127
|
+
```
|
|
128
|
+
□ Read operations.ci from project-config.yaml
|
|
129
|
+
□ If provider is "none", skip CI
|
|
130
|
+
□ Check ci.config_file exists and is valid
|
|
131
|
+
□ For github-actions: validate .github/workflows/ YAML
|
|
132
|
+
□ Verify pipeline runs on protected_branches (from git config)
|
|
133
|
+
□ Pipeline must run: lint, test, typecheck, build (Quality Layer 1)
|
|
134
|
+
□ If pipeline_url exists, provide it for monitoring
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
### Publish Checklist (Gage)
|
|
138
|
+
|
|
139
|
+
```
|
|
140
|
+
□ Read operations.publish from project-config.yaml
|
|
141
|
+
□ If platform is "none", skip
|
|
142
|
+
□ Run pre_publish commands (build, test)
|
|
143
|
+
□ Approval: ALWAYS HIGH for publishing
|
|
144
|
+
□ Execute publish.command
|
|
145
|
+
□ Verify published artifact is accessible
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
## Onboarding New Projects
|
|
149
|
+
|
|
150
|
+
When a project has no `operations` section, trigger elicitation:
|
|
151
|
+
|
|
152
|
+
1. Auto-detect from project files (see `references/elicitation-questions.md` auto-detection checklist)
|
|
153
|
+
2. Ask user only for what can't be auto-detected
|
|
154
|
+
3. Write results to `project-config.yaml` under `operations:`
|
|
155
|
+
4. Use `references/operations-template.yaml` as the base structure
|
|
156
|
+
|
|
157
|
+
This happens during:
|
|
158
|
+
|
|
159
|
+
- `/converterparamagos` (full project onboarding)
|
|
160
|
+
- First time `/commit` is run and no `operations.git` exists
|
|
161
|
+
- First time `/deploy` is run and no `operations.deploy` exists
|
|
162
|
+
|
|
163
|
+
## Examples
|
|
164
|
+
|
|
165
|
+
### Example 1: Dex committing with Jira convention
|
|
166
|
+
|
|
167
|
+
```yaml
|
|
168
|
+
# project-config.yaml
|
|
169
|
+
operations:
|
|
170
|
+
git:
|
|
171
|
+
commit_convention: jira
|
|
172
|
+
commit_prefix: "BACK-"
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
Dex reads this and formats commits as: `BACK-42: Add user authentication endpoint`
|
|
176
|
+
|
|
177
|
+
### Example 2: Gage deploying to VPS
|
|
178
|
+
|
|
179
|
+
```yaml
|
|
180
|
+
# project-config.yaml
|
|
181
|
+
operations:
|
|
182
|
+
deploy:
|
|
183
|
+
- name: production
|
|
184
|
+
platform: vps
|
|
185
|
+
approval: HIGH
|
|
186
|
+
vps:
|
|
187
|
+
host: "app.example.com"
|
|
188
|
+
user: "deploy"
|
|
189
|
+
deploy_path: "/opt/webapp"
|
|
190
|
+
deploy_steps:
|
|
191
|
+
- "cd /opt/webapp && git pull origin main"
|
|
192
|
+
- "npm install --production"
|
|
193
|
+
- "npm run build"
|
|
194
|
+
- "pm2 restart webapp"
|
|
195
|
+
rollback: "cd /opt/webapp && git checkout HEAD~1 && pm2 restart webapp"
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
Gage asks for user confirmation (HIGH), SSHs in, runs steps sequentially, reports success or triggers rollback.
|
|
199
|
+
|
|
200
|
+
### Example 3: Firebase + GitHub Actions
|
|
201
|
+
|
|
202
|
+
```yaml
|
|
203
|
+
# project-config.yaml
|
|
204
|
+
operations:
|
|
205
|
+
deploy:
|
|
206
|
+
- name: production
|
|
207
|
+
platform: firebase
|
|
208
|
+
command: "firebase deploy --only hosting"
|
|
209
|
+
url: "https://myapp.web.app"
|
|
210
|
+
approval: HIGH
|
|
211
|
+
ci:
|
|
212
|
+
provider: github-actions
|
|
213
|
+
config_file: ".github/workflows/deploy.yml"
|
|
214
|
+
pipeline_url: "https://github.com/org/repo/actions"
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
Gage reads the firebase platform, loads `.agents/skills/firebase-hosting-basics/` for deep docs, runs the deploy command, then checks the pipeline URL.
|
|
218
|
+
|
|
219
|
+
## References
|
|
220
|
+
|
|
221
|
+
| File | Purpose |
|
|
222
|
+
| ---------------------------------------- | --------------------------------------------- |
|
|
223
|
+
| `references/operations-template.yaml` | Copy-paste template for project-config.yaml |
|
|
224
|
+
| `references/elicitation-questions.md` | 23 questions for populating operations config |
|
|
225
|
+
| `references/external-skills-registry.md` | Inventory of 18 installed external skills |
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
# Operations Elicitation Questions
|
|
2
|
+
|
|
3
|
+
When onboarding a new project (via `/converterparamagos` or manually), Orion asks these questions to populate the `operations` section of `project-config.yaml`.
|
|
4
|
+
|
|
5
|
+
**Auto-detect first, ask second.** Many answers can be inferred from the project's files. Only ask the user when auto-detection is ambiguous or impossible.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Auto-Detection Checklist
|
|
10
|
+
|
|
11
|
+
Before asking questions, check for these files:
|
|
12
|
+
|
|
13
|
+
| File Found | Infer |
|
|
14
|
+
| ------------------------------------------- | -------------------------------------- |
|
|
15
|
+
| `firebase.json` | platform: firebase |
|
|
16
|
+
| `apphosting.yaml` | platform: firebase (app hosting / SSR) |
|
|
17
|
+
| `vercel.json` | platform: vercel |
|
|
18
|
+
| `netlify.toml` | platform: netlify |
|
|
19
|
+
| `wrangler.toml` | platform: cloudflare |
|
|
20
|
+
| `Dockerfile` or `docker-compose.yml` | platform: docker |
|
|
21
|
+
| `azure.yaml` or `*.bicep` | platform: azure |
|
|
22
|
+
| `.github/workflows/*.yml` | ci.provider: github-actions |
|
|
23
|
+
| `.gitlab-ci.yml` | ci.provider: gitlab-ci |
|
|
24
|
+
| `package.json` scripts.build | build.command |
|
|
25
|
+
| `package.json` scripts.deploy | deploy command |
|
|
26
|
+
| `.husky/` or `lint-staged` in package.json | pre_commit_hooks |
|
|
27
|
+
| `git branch --show-current` or `git remote` | main_branch |
|
|
28
|
+
| `.nvmrc`, `requirements.txt`, `Cargo.toml` | stack detection |
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## Questions by Section
|
|
33
|
+
|
|
34
|
+
### Git & Commit (populates `operations.git`)
|
|
35
|
+
|
|
36
|
+
1. **What's your branching strategy?**
|
|
37
|
+
- Auto-detect: If only `main` exists → trunk. If `develop` exists → gitflow.
|
|
38
|
+
- Ask if ambiguous: "I see branches `main` and `develop`. Do you use gitflow or github-flow?"
|
|
39
|
+
- Values: `gitflow` | `trunk` | `github-flow` | `custom`
|
|
40
|
+
|
|
41
|
+
2. **What's the main branch name?**
|
|
42
|
+
- Auto-detect: `git symbolic-ref refs/remotes/origin/HEAD` or check `main` vs `master`
|
|
43
|
+
- Ask if no remote or multiple candidates
|
|
44
|
+
|
|
45
|
+
3. **Are there protected branches?**
|
|
46
|
+
- Auto-detect: GitHub API `gh api repos/{owner}/{repo}/branches/{branch}/protection` if gh available
|
|
47
|
+
- Default: `[main]` or `[master]`
|
|
48
|
+
|
|
49
|
+
4. **Do you use conventional commits?**
|
|
50
|
+
- Auto-detect: Read last 10 commit messages. If >70% match `type(scope): desc` → conventional
|
|
51
|
+
- Ask if mixed: "Your recent commits use mixed formats. Should I enforce conventional commits?"
|
|
52
|
+
- Values: `conventional` | `jira` | `plain` | `custom`
|
|
53
|
+
|
|
54
|
+
5. **Is there a commit prefix? (e.g., Jira ticket ID)**
|
|
55
|
+
- Auto-detect: If commits contain patterns like `PROJ-123` → prefix = "PROJ-"
|
|
56
|
+
- Only ask if jira convention detected
|
|
57
|
+
|
|
58
|
+
6. **What pre-commit hooks are configured?**
|
|
59
|
+
- Auto-detect: Check `.husky/pre-commit`, `lint-staged` in package.json, `.pre-commit-config.yaml`
|
|
60
|
+
- Values: array of `lint`, `test`, `typecheck`, `format`, etc.
|
|
61
|
+
|
|
62
|
+
### Build (populates `operations.build`)
|
|
63
|
+
|
|
64
|
+
7. **What's the build command?**
|
|
65
|
+
- Auto-detect: `package.json` → `scripts.build`
|
|
66
|
+
- Fallback: Check for `Makefile`, `Cargo.toml`, `setup.py`
|
|
67
|
+
- Ask if no build script found: "I couldn't detect a build command. What do you run to build?"
|
|
68
|
+
|
|
69
|
+
8. **Where does the build output go?**
|
|
70
|
+
- Auto-detect from framework:
|
|
71
|
+
- Next.js → `.next/`
|
|
72
|
+
- Vite → `dist/`
|
|
73
|
+
- CRA → `build/`
|
|
74
|
+
- Cargo → `target/release/`
|
|
75
|
+
- Ask if custom framework
|
|
76
|
+
|
|
77
|
+
9. **Is there a production env file?**
|
|
78
|
+
- Auto-detect: Check for `.env.production`, `.env.prod`
|
|
79
|
+
- Only mention if found: "I found `.env.production`. Should I reference it in build config?"
|
|
80
|
+
|
|
81
|
+
### Deploy (populates `operations.deploy`)
|
|
82
|
+
|
|
83
|
+
10. **Where does this project deploy?**
|
|
84
|
+
- Auto-detect from files (see checklist above)
|
|
85
|
+
- Ask if none detected: "I don't see a firebase.json, vercel.json, or Dockerfile. Where does this project deploy?"
|
|
86
|
+
- Values: `firebase` | `vercel` | `netlify` | `cloudflare` | `vps` | `docker` | `azure` | `aws` | `manual` | `none`
|
|
87
|
+
|
|
88
|
+
11. **What's the deploy command?**
|
|
89
|
+
- Auto-detect: `package.json` → `scripts.deploy` or `scripts.deploy:prod`
|
|
90
|
+
- Platform defaults: firebase → `firebase deploy --only hosting`, vercel → `vercel --prod`
|
|
91
|
+
- Ask if custom: "What command deploys to production?"
|
|
92
|
+
|
|
93
|
+
12. **What's the production URL?**
|
|
94
|
+
- Auto-detect: Firebase → check `.firebaserc` for project ID → `{id}.web.app`
|
|
95
|
+
- Ask if not detectable: "What's the production URL?"
|
|
96
|
+
|
|
97
|
+
13. **Is there a staging environment?**
|
|
98
|
+
- Auto-detect: Check for `scripts.deploy:staging`, Vercel preview branches
|
|
99
|
+
- Ask: "Do you have a staging environment? If so, what's the URL?"
|
|
100
|
+
|
|
101
|
+
14. **What approval level for production deploys?**
|
|
102
|
+
- Default: HIGH (always)
|
|
103
|
+
- Only ask for staging: "Should staging deploys require confirmation or auto-approve in YOLO mode?"
|
|
104
|
+
|
|
105
|
+
15. **[If VPS] What's the SSH connection info?**
|
|
106
|
+
- Ask: "What's the VPS host, SSH user, and port?"
|
|
107
|
+
- Ask: "What's the deploy path on the server? (e.g., /opt/myapp)"
|
|
108
|
+
|
|
109
|
+
16. **[If VPS] What are the deploy steps?**
|
|
110
|
+
- Ask: "Walk me through the deploy: after SSH, what commands run? (e.g., git pull, npm install, build, restart)"
|
|
111
|
+
|
|
112
|
+
17. **[If VPS] How do you rollback?**
|
|
113
|
+
- Ask: "If a deploy fails, what's the rollback command?"
|
|
114
|
+
|
|
115
|
+
18. **Where are environment variables configured?**
|
|
116
|
+
- Platform-specific defaults: Firebase → "Firebase Console", Vercel → "Vercel Dashboard", VPS → ".env on server"
|
|
117
|
+
- Ask if unclear
|
|
118
|
+
|
|
119
|
+
### CI/CD (populates `operations.ci`)
|
|
120
|
+
|
|
121
|
+
19. **Do you use CI/CD?**
|
|
122
|
+
- Auto-detect: `.github/workflows/`, `.gitlab-ci.yml`, `azure-pipelines.yml`
|
|
123
|
+
- Ask if none found: "Do you use CI/CD? If so, which provider?"
|
|
124
|
+
|
|
125
|
+
20. **Where's the CI config?**
|
|
126
|
+
- Auto-detect: First `.yml` in `.github/workflows/`
|
|
127
|
+
- Ask if multiple: "I found multiple workflow files. Which is the primary deploy pipeline?"
|
|
128
|
+
|
|
129
|
+
21. **Is there a pipeline dashboard URL?**
|
|
130
|
+
- Auto-detect: GitHub → `https://github.com/{owner}/{repo}/actions`
|
|
131
|
+
- Ask for other providers
|
|
132
|
+
|
|
133
|
+
### Publish (populates `operations.publish`)
|
|
134
|
+
|
|
135
|
+
22. **Is this a publishable package or extension?**
|
|
136
|
+
- Auto-detect: `package.json` → `private: false` means publishable. Chrome extension → `manifest.json` with MV3.
|
|
137
|
+
- Ask if ambiguous: "Is this published to npm / Chrome Web Store / etc.?"
|
|
138
|
+
|
|
139
|
+
23. **What's the publish command and pre-publish checks?**
|
|
140
|
+
- Auto-detect: `package.json` → `scripts.prepublishOnly`, `scripts.publish`
|
|
141
|
+
- Default for npm: `npm publish` with pre-publish `["npm run build", "npm test"]`
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# External Skills Registry
|
|
2
|
+
|
|
3
|
+
Tracks all skills installed in `.agents/skills/` with source, trust tier, audit status, and token footprint.
|
|
4
|
+
|
|
5
|
+
**Last full audit:** 2026-03-19
|
|
6
|
+
**Update command:** `npx skills update`
|
|
7
|
+
**Re-audit after update:** Run frontmatter parser + read SKILL.md for each updated skill.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Tier 1 — Official (from the companies themselves)
|
|
12
|
+
|
|
13
|
+
| Skill | Source Repo | Audit Date | Status | Tokens |
|
|
14
|
+
| --------------------------------- | ----------------------- | ---------- | ------ | ------ |
|
|
15
|
+
| firebase-hosting-basics | `firebase/agent-skills` | 2026-03-19 | SAFE | ~543 |
|
|
16
|
+
| firebase-app-hosting-basics | `firebase/agent-skills` | 2026-03-19 | SAFE | ~604 |
|
|
17
|
+
| cloudflare | `cloudflare/skills` | 2026-03-19 | SAFE | ~2034 |
|
|
18
|
+
| workers-best-practices | `cloudflare/skills` | 2026-03-19 | SAFE | ~1793 |
|
|
19
|
+
| wrangler | `cloudflare/skills` | 2026-03-19 | SAFE | ~4459 |
|
|
20
|
+
| durable-objects | `cloudflare/skills` | 2026-03-19 | SAFE | ~1513 |
|
|
21
|
+
| agents-sdk | `cloudflare/skills` | 2026-03-19 | SAFE | ~1434 |
|
|
22
|
+
| sandbox-sdk | `cloudflare/skills` | 2026-03-19 | SAFE | ~1487 |
|
|
23
|
+
| web-perf | `cloudflare/skills` | 2026-03-19 | SAFE | ~2090 |
|
|
24
|
+
| building-ai-agent-on-cloudflare | `cloudflare/skills` | 2026-03-19 | SAFE | ~2547 |
|
|
25
|
+
| building-mcp-server-on-cloudflare | `cloudflare/skills` | 2026-03-19 | SAFE | ~1716 |
|
|
26
|
+
| supabase-postgres-best-practices | `supabase/agent-skills` | 2026-03-19 | SAFE | ~660 |
|
|
27
|
+
|
|
28
|
+
## Tier 2 — Community (audited, no prompt injection found)
|
|
29
|
+
|
|
30
|
+
| Skill | Source Repo | Audit Date | Status | Tokens |
|
|
31
|
+
| ----------------------- | ----------------------------------- | ---------- | ------ | ------ |
|
|
32
|
+
| docker-deployment | `aaaaqwq/claude-code-skills` | 2026-03-19 | SAFE | ~498 |
|
|
33
|
+
| ssh-hardening | `mikr13/secure-server-setup-skills` | 2026-03-19 | SAFE | ~2107 |
|
|
34
|
+
| agno | `delorenj/skills` | 2026-03-19 | SAFE | ~3528 |
|
|
35
|
+
| github-actions-workflow | `aj-geddes/useful-ai-prompts` | 2026-03-19 | SAFE | ~632 |
|
|
36
|
+
| devops-cicd | `miles990/claude-software-skills` | 2026-03-19 | SAFE | ~3062 |
|
|
37
|
+
| git-commit-workflow | `laurigates/claude-plugins` | 2026-03-19 | SAFE | ~1639 |
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## Auto-Activate Status
|
|
42
|
+
|
|
43
|
+
**All 18 external skills return `auto_activate=[]`** through Merlin's frontmatter parser. They use non-Merlin frontmatter formats (`triggers:`, `tags:`, or no activation keywords). L6 will never auto-inject them. Agents must explicitly `Read` their files when needed, routed by the ops-manual domain skill.
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## Coverage Map
|
|
48
|
+
|
|
49
|
+
| Domain | Skills Available | Use For |
|
|
50
|
+
| ---------------------- | ------------------------------------------------------------------ | -------------------------------------------- |
|
|
51
|
+
| Firebase (static/SPA) | firebase-hosting-basics | CDN deploy, preview channels, rewrites |
|
|
52
|
+
| Firebase (SSR/Next.js) | firebase-app-hosting-basics | App Hosting, apphosting.yaml, secrets |
|
|
53
|
+
| Cloudflare (platform) | cloudflare, wrangler, workers-best-practices | Workers, Pages, KV, D1, R2, AI |
|
|
54
|
+
| Cloudflare (advanced) | durable-objects, agents-sdk, sandbox-sdk | Stateful coordination, AI agents, sandboxing |
|
|
55
|
+
| Cloudflare (perf) | web-perf | Core Web Vitals, optimization |
|
|
56
|
+
| Cloudflare (guides) | building-ai-agent-on-cloudflare, building-mcp-server-on-cloudflare | Tutorials |
|
|
57
|
+
| Docker + Nginx | docker-deployment | Containers, HTTPS, Cloudflare Tunnel |
|
|
58
|
+
| VPS/SSH | ssh-hardening | Ed25519 keys, sshd_config, hardening scripts |
|
|
59
|
+
| CI/CD (GitHub Actions) | github-actions-workflow | Workflows, matrix builds, releases |
|
|
60
|
+
| CI/CD (patterns) | devops-cicd | Blue-green, canary, K8s, Terraform, GitOps |
|
|
61
|
+
| Git workflow | git-commit-workflow | Conventional commits, staging, issue linking |
|
|
62
|
+
| AI agents | agno | Agno framework, teams, workflows, AgentOS |
|
|
63
|
+
| Database | supabase-postgres-best-practices | Query perf, RLS, schema design, connections |
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
# ============================================
|
|
2
|
+
# Operations Manual Template
|
|
3
|
+
# ============================================
|
|
4
|
+
# Copy this section into your project's .merlin-core/project-config.yaml
|
|
5
|
+
# under the `operations:` key. Fill in values for your project.
|
|
6
|
+
#
|
|
7
|
+
# Agent ownership:
|
|
8
|
+
# - Dex (dev) reads: git, build
|
|
9
|
+
# - Gage (devops) reads: deploy, ci, publish
|
|
10
|
+
# - Orion (master) populates this during onboarding
|
|
11
|
+
# - Quinn (QA) validates completeness
|
|
12
|
+
# ============================================
|
|
13
|
+
|
|
14
|
+
operations:
|
|
15
|
+
|
|
16
|
+
# --- Git & Commit Conventions ---
|
|
17
|
+
# Read by Dex and /commit command
|
|
18
|
+
git:
|
|
19
|
+
# Branching model: gitflow | trunk | github-flow | custom
|
|
20
|
+
branch_strategy: trunk
|
|
21
|
+
|
|
22
|
+
# Primary branch name
|
|
23
|
+
main_branch: main
|
|
24
|
+
|
|
25
|
+
# Branches that require PR review before merge
|
|
26
|
+
protected_branches:
|
|
27
|
+
- main
|
|
28
|
+
|
|
29
|
+
# Commit message format: conventional | jira | plain | custom
|
|
30
|
+
# conventional = type(scope): description
|
|
31
|
+
# jira = PROJ-123: description
|
|
32
|
+
# plain = free text
|
|
33
|
+
commit_convention: conventional
|
|
34
|
+
|
|
35
|
+
# Prefix for commit messages (e.g., "PROJ-" for Jira)
|
|
36
|
+
# Leave empty for no prefix
|
|
37
|
+
commit_prefix: ""
|
|
38
|
+
|
|
39
|
+
# What runs on pre-commit hooks
|
|
40
|
+
# Common: lint, test, typecheck, format
|
|
41
|
+
pre_commit_hooks: []
|
|
42
|
+
|
|
43
|
+
# --- Build Configuration ---
|
|
44
|
+
# Read by Dex during implementation
|
|
45
|
+
build:
|
|
46
|
+
# Build command
|
|
47
|
+
command: "npm run build"
|
|
48
|
+
|
|
49
|
+
# Where build artifacts go
|
|
50
|
+
output_dir: "dist/"
|
|
51
|
+
|
|
52
|
+
# Environment file for production builds (optional)
|
|
53
|
+
# env_file: ".env.production"
|
|
54
|
+
|
|
55
|
+
# Commands to run before build (optional)
|
|
56
|
+
# pre_build:
|
|
57
|
+
# - "npm install"
|
|
58
|
+
# - "prisma generate"
|
|
59
|
+
|
|
60
|
+
# --- Deploy Targets ---
|
|
61
|
+
# Read by Gage. Array — project can have multiple targets.
|
|
62
|
+
# Each target maps to a platform with specific external skill docs.
|
|
63
|
+
#
|
|
64
|
+
# Platform → External skill for deep docs:
|
|
65
|
+
# firebase → .agents/skills/firebase-hosting-basics/ or firebase-app-hosting-basics/
|
|
66
|
+
# vercel → built-in deploy skill
|
|
67
|
+
# netlify → built-in deploy skill
|
|
68
|
+
# cloudflare → .agents/skills/cloudflare/ + wrangler/
|
|
69
|
+
# vps → .agents/skills/ssh-hardening/ + docker-deployment/
|
|
70
|
+
# docker → .agents/skills/docker-deployment/
|
|
71
|
+
# azure → .merlin-core/skills/domain/azure-cloud/
|
|
72
|
+
# aws → (no skill installed yet)
|
|
73
|
+
# manual → follow command instructions
|
|
74
|
+
# none → no deployment
|
|
75
|
+
deploy:
|
|
76
|
+
- name: production
|
|
77
|
+
platform: firebase # Change to your platform
|
|
78
|
+
command: "firebase deploy --only hosting"
|
|
79
|
+
url: "https://myapp.web.app"
|
|
80
|
+
approval: HIGH # HIGH = explicit human approval required
|
|
81
|
+
env_vars_location: "Firebase Console > Project Settings > Service accounts"
|
|
82
|
+
|
|
83
|
+
# Uncomment for staging:
|
|
84
|
+
# - name: staging
|
|
85
|
+
# platform: vercel
|
|
86
|
+
# command: "vercel --env preview"
|
|
87
|
+
# url: "https://staging.myapp.vercel.app"
|
|
88
|
+
# approval: MEDIUM
|
|
89
|
+
|
|
90
|
+
# Uncomment for VPS:
|
|
91
|
+
# - name: vps
|
|
92
|
+
# platform: vps
|
|
93
|
+
# command: "" # VPS uses deploy_steps instead
|
|
94
|
+
# url: "https://myapp.example.com"
|
|
95
|
+
# approval: HIGH
|
|
96
|
+
# vps:
|
|
97
|
+
# host: "192.168.1.100"
|
|
98
|
+
# user: "deploy"
|
|
99
|
+
# port: 22
|
|
100
|
+
# deploy_path: "/opt/myapp"
|
|
101
|
+
# deploy_steps:
|
|
102
|
+
# - "cd /opt/myapp && git pull origin main"
|
|
103
|
+
# - "npm install --production"
|
|
104
|
+
# - "npm run build"
|
|
105
|
+
# - "pm2 restart myapp"
|
|
106
|
+
# rollback: "pm2 restart myapp --update-env"
|
|
107
|
+
|
|
108
|
+
# --- CI/CD Pipeline ---
|
|
109
|
+
# Read by Gage
|
|
110
|
+
ci:
|
|
111
|
+
# Provider: github-actions | gitlab-ci | azure-pipelines | circleci | none
|
|
112
|
+
provider: none
|
|
113
|
+
|
|
114
|
+
# Path to CI config file
|
|
115
|
+
# config_file: ".github/workflows/deploy.yml"
|
|
116
|
+
|
|
117
|
+
# URL to pipeline dashboard
|
|
118
|
+
# pipeline_url: "https://github.com/org/repo/actions"
|
|
119
|
+
|
|
120
|
+
# --- Publish Configuration ---
|
|
121
|
+
# Read by Gage. For libraries, extensions, packages.
|
|
122
|
+
publish:
|
|
123
|
+
# Platform: npm | pypi | cargo | chrome-web-store | play-store | app-store | none
|
|
124
|
+
platform: none
|
|
125
|
+
|
|
126
|
+
# Publish command
|
|
127
|
+
# command: "npm publish"
|
|
128
|
+
|
|
129
|
+
# Pre-publish checks
|
|
130
|
+
# pre_publish:
|
|
131
|
+
# - "npm run build"
|
|
132
|
+
# - "npm test"
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: remotion-best-practices
|
|
3
|
+
description: Domain knowledge for Remotion — programmatic video creation with React. Covers compositions, animations, timing, audio, captions, transitions, media handling, 3D, charts, maps, and rendering. Activates when working on any Remotion-based project (programmatic-video or music-video-rendering pipelines).
|
|
4
|
+
license: MIT
|
|
5
|
+
metadata:
|
|
6
|
+
author: remotion-dev
|
|
7
|
+
version: "4.0.411"
|
|
8
|
+
source: "skills.sh/remotion-dev/skills/remotion-best-practices"
|
|
9
|
+
auto_activate: [ remotion, video-composition, programmatic-video, remotion-render, music-video-pipeline, ]
|
|
10
|
+
file_triggers: [remotion.config.*, *.composition.tsx, **/compositions/**, **/remotion/**]
|
|
11
|
+
tool_reminders: [Remotion renders are CPU/GPU intensive — confirm render backend before batch operations, NEVER run `npx remotion upgrade` — it breaks Zod v3 schemas. Pin versions via npm overrides, NEVER put directory junctions/symlinks in public/ — webpack hangs indefinitely on Windows, Use <Video> in Studio mode, <OffthreadVideo> in render mode for reliable playback, Remotion bundles its own FFmpeg — do not install a separate FFmpeg for rendering]
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Remotion Best Practices — Domain Skill
|
|
15
|
+
|
|
16
|
+
Expert knowledge for building programmatic videos with Remotion 4.x and React.
|
|
17
|
+
|
|
18
|
+
### When This Activates
|
|
19
|
+
|
|
20
|
+
This skill activates on any Remotion-based project. Merlin provides the **knowledge layer**; the actual rendering runtime lives in your project repositories.
|
|
21
|
+
|
|
22
|
+
### Architecture Context
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
Merlin Core (this skill = KNOWLEDGE)
|
|
26
|
+
↓ teaches agents how to write Remotion code
|
|
27
|
+
<project>/renderer/ (RUNTIME)
|
|
28
|
+
↓ actually renders videos
|
|
29
|
+
├── React components
|
|
30
|
+
├── video templates
|
|
31
|
+
├── video manifests
|
|
32
|
+
└── Remotion 4.0.411 + FFmpeg
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### Rule Files (31 topics)
|
|
36
|
+
|
|
37
|
+
Read individual rules for detailed explanations and code examples:
|
|
38
|
+
|
|
39
|
+
**Media Handling:**
|
|
40
|
+
|
|
41
|
+
- [rules/audio.md](rules/audio.md) — Audio import, trimming, volume, speed, pitch
|
|
42
|
+
- [rules/videos.md](rules/videos.md) — Video embedding, trimming, volume, looping
|
|
43
|
+
- [rules/images.md](rules/images.md) — Image embedding with the Img component
|
|
44
|
+
- [rules/gifs.md](rules/gifs.md) — GIF/APNG synchronized with timeline
|
|
45
|
+
- [rules/fonts.md](rules/fonts.md) — Google Fonts and local font loading
|
|
46
|
+
- [rules/assets.md](rules/assets.md) — Importing images, videos, audio, fonts
|
|
47
|
+
- [rules/lottie.md](rules/lottie.md) — Lottie animation embedding
|
|
48
|
+
|
|
49
|
+
**Animation & Timing:**
|
|
50
|
+
|
|
51
|
+
- [rules/animations.md](rules/animations.md) — Fundamental animation patterns
|
|
52
|
+
- [rules/timing.md](rules/timing.md) — Interpolation, easing, spring physics
|
|
53
|
+
- [rules/transitions.md](rules/transitions.md) — Scene transitions (fade, slide, wipe)
|
|
54
|
+
- [rules/text-animations.md](rules/text-animations.md) — Typography animation patterns
|
|
55
|
+
- [rules/sequencing.md](rules/sequencing.md) — Sequence, Series, delay, trim
|
|
56
|
+
- [rules/trimming.md](rules/trimming.md) — Trim beginning/end of animations
|
|
57
|
+
|
|
58
|
+
**Composition & Layout:**
|
|
59
|
+
|
|
60
|
+
- [rules/compositions.md](rules/compositions.md) — Compositions, stills, folders, default props
|
|
61
|
+
- [rules/parameters.md](rules/parameters.md) — Zod schema parametrization
|
|
62
|
+
- [rules/measuring-text.md](rules/measuring-text.md) — Text measurement, fitting, overflow
|
|
63
|
+
- [rules/measuring-dom-nodes.md](rules/measuring-dom-nodes.md) — DOM element dimensions
|
|
64
|
+
- [rules/tailwind.md](rules/tailwind.md) — TailwindCSS in Remotion
|
|
65
|
+
|
|
66
|
+
**Captions & Speech:**
|
|
67
|
+
|
|
68
|
+
- [rules/display-captions.md](rules/display-captions.md) — TikTok-style captions with word highlighting
|
|
69
|
+
- [rules/import-srt-captions.md](rules/import-srt-captions.md) — .srt subtitle import
|
|
70
|
+
- [rules/transcribe-captions.md](rules/transcribe-captions.md) — Audio-to-caption transcription
|
|
71
|
+
|
|
72
|
+
**Media Analysis:**
|
|
73
|
+
|
|
74
|
+
- [rules/calculate-metadata.md](rules/calculate-metadata.md) — Dynamic duration, dimensions, props
|
|
75
|
+
- [rules/can-decode.md](rules/can-decode.md) — Video decode capability check
|
|
76
|
+
- [rules/get-audio-duration.md](rules/get-audio-duration.md) — Audio duration via Mediabunny
|
|
77
|
+
- [rules/get-video-duration.md](rules/get-video-duration.md) — Video duration via Mediabunny
|
|
78
|
+
- [rules/get-video-dimensions.md](rules/get-video-dimensions.md) — Video dimensions via Mediabunny
|
|
79
|
+
- [rules/extract-frames.md](rules/extract-frames.md) — Frame extraction at timestamps
|
|
80
|
+
|
|
81
|
+
**Advanced:**
|
|
82
|
+
|
|
83
|
+
- [rules/3d.md](rules/3d.md) — Three.js and React Three Fiber integration
|
|
84
|
+
- [rules/charts.md](rules/charts.md) — Data visualization (bars, pies, SVG)
|
|
85
|
+
- [rules/maps.md](rules/maps.md) — Mapbox map animations with turf.js
|
|
86
|
+
- [rules/transparent-videos.md](rules/transparent-videos.md) — VP9/ProRes transparency rendering
|
|
87
|
+
|
|
88
|
+
### Code Assets
|
|
89
|
+
|
|
90
|
+
- [rules/assets/charts-bar-chart.tsx](rules/assets/charts-bar-chart.tsx) — Animated bar chart component
|
|
91
|
+
- [rules/assets/text-animations-typewriter.tsx](rules/assets/text-animations-typewriter.tsx) — Typewriter text effect
|
|
92
|
+
- [rules/assets/text-animations-word-highlight.tsx](rules/assets/text-animations-word-highlight.tsx) — Word highlight animation
|
|
93
|
+
|
|
94
|
+
### Critical Rules (from production experience)
|
|
95
|
+
|
|
96
|
+
1. **Version pinning** — All `@remotion/*` packages must be the same version. Use npm `overrides` to force alignment.
|
|
97
|
+
2. **Studio vs Render** — Use `<Video>` in Studio, `<OffthreadVideo>` in render. OffthreadVideo hangs in Studio with missing files.
|
|
98
|
+
3. **Windows gotchas** — No NTFS junctions in `public/`, no NVENC GPU encoding (use CPU H.264), kill lingering node processes before Studio restart.
|
|
99
|
+
4. **Asset management** — Copy specific files to `public/` per manifest. Never symlink entire media directories.
|