@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,234 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# ============================================================
|
|
3
|
+
# VPS Security Audit Script — Merlin Security Toolkit
|
|
4
|
+
# Run as root: sudo bash vps-security-audit.sh
|
|
5
|
+
# ============================================================
|
|
6
|
+
|
|
7
|
+
RED='\033[0;31m'
|
|
8
|
+
GREEN='\033[0;32m'
|
|
9
|
+
YELLOW='\033[1;33m'
|
|
10
|
+
NC='\033[0m'
|
|
11
|
+
PASS=0
|
|
12
|
+
FAIL=0
|
|
13
|
+
WARN=0
|
|
14
|
+
|
|
15
|
+
check() {
|
|
16
|
+
if [ "$2" = "PASS" ]; then
|
|
17
|
+
echo -e " ${GREEN}[PASS]${NC} $1"
|
|
18
|
+
((PASS++))
|
|
19
|
+
elif [ "$2" = "FAIL" ]; then
|
|
20
|
+
echo -e " ${RED}[FAIL]${NC} $1"
|
|
21
|
+
((FAIL++))
|
|
22
|
+
else
|
|
23
|
+
echo -e " ${YELLOW}[WARN]${NC} $1"
|
|
24
|
+
((WARN++))
|
|
25
|
+
fi
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
echo "============================================"
|
|
29
|
+
echo " VPS SECURITY AUDIT — $(date '+%Y-%m-%d %H:%M')"
|
|
30
|
+
echo " Host: $(hostname) | IP: $(curl -s ifconfig.me 2>/dev/null || echo 'N/A')"
|
|
31
|
+
echo " OS: $(cat /etc/os-release 2>/dev/null | grep PRETTY_NAME | cut -d'"' -f2)"
|
|
32
|
+
echo "============================================"
|
|
33
|
+
echo ""
|
|
34
|
+
|
|
35
|
+
# --- 1. SSH Configuration ---
|
|
36
|
+
echo ">> SSH Configuration"
|
|
37
|
+
|
|
38
|
+
SSH_CONF="/etc/ssh/sshd_config"
|
|
39
|
+
if [ -f "$SSH_CONF" ]; then
|
|
40
|
+
# Password auth
|
|
41
|
+
if grep -qE "^PasswordAuthentication\s+no" "$SSH_CONF"; then
|
|
42
|
+
check "Password authentication disabled" "PASS"
|
|
43
|
+
else
|
|
44
|
+
check "Password authentication ENABLED — disable it!" "FAIL"
|
|
45
|
+
fi
|
|
46
|
+
|
|
47
|
+
# Root login
|
|
48
|
+
if grep -qE "^PermitRootLogin\s+no" "$SSH_CONF"; then
|
|
49
|
+
check "Root login disabled" "PASS"
|
|
50
|
+
elif grep -qE "^PermitRootLogin\s+prohibit-password" "$SSH_CONF"; then
|
|
51
|
+
check "Root login: key-only (acceptable)" "WARN"
|
|
52
|
+
else
|
|
53
|
+
check "Root login ENABLED — disable it!" "FAIL"
|
|
54
|
+
fi
|
|
55
|
+
|
|
56
|
+
# SSH Port
|
|
57
|
+
SSH_PORT=$(grep -E "^Port\s+" "$SSH_CONF" | awk '{print $2}')
|
|
58
|
+
if [ -z "$SSH_PORT" ] || [ "$SSH_PORT" = "22" ]; then
|
|
59
|
+
check "SSH on default port 22 — change to non-standard" "WARN"
|
|
60
|
+
else
|
|
61
|
+
check "SSH on custom port $SSH_PORT" "PASS"
|
|
62
|
+
fi
|
|
63
|
+
else
|
|
64
|
+
check "SSH config not found at $SSH_CONF" "WARN"
|
|
65
|
+
fi
|
|
66
|
+
|
|
67
|
+
echo ""
|
|
68
|
+
|
|
69
|
+
# --- 2. Firewall ---
|
|
70
|
+
echo ">> Firewall"
|
|
71
|
+
|
|
72
|
+
if command -v ufw &>/dev/null; then
|
|
73
|
+
UFW_STATUS=$(ufw status 2>/dev/null | head -1)
|
|
74
|
+
if echo "$UFW_STATUS" | grep -q "active"; then
|
|
75
|
+
check "UFW firewall active" "PASS"
|
|
76
|
+
OPEN_PORTS=$(ufw status | grep "ALLOW" | awk '{print $1}' | sort -u | tr '\n' ', ')
|
|
77
|
+
check "Open ports: ${OPEN_PORTS%,}" "WARN"
|
|
78
|
+
else
|
|
79
|
+
check "UFW installed but INACTIVE" "FAIL"
|
|
80
|
+
fi
|
|
81
|
+
elif command -v iptables &>/dev/null; then
|
|
82
|
+
RULES=$(iptables -L -n 2>/dev/null | grep -c "ACCEPT\|DROP\|REJECT")
|
|
83
|
+
if [ "$RULES" -gt 3 ]; then
|
|
84
|
+
check "iptables has $RULES rules configured" "PASS"
|
|
85
|
+
else
|
|
86
|
+
check "iptables has minimal rules — review needed" "WARN"
|
|
87
|
+
fi
|
|
88
|
+
else
|
|
89
|
+
check "No firewall detected!" "FAIL"
|
|
90
|
+
fi
|
|
91
|
+
|
|
92
|
+
echo ""
|
|
93
|
+
|
|
94
|
+
# --- 3. Fail2ban ---
|
|
95
|
+
echo ">> Brute Force Protection"
|
|
96
|
+
|
|
97
|
+
if command -v fail2ban-client &>/dev/null; then
|
|
98
|
+
if systemctl is-active --quiet fail2ban 2>/dev/null; then
|
|
99
|
+
JAILS=$(fail2ban-client status 2>/dev/null | grep "Jail list" | sed 's/.*://;s/,/ /g')
|
|
100
|
+
BANNED=$(fail2ban-client status sshd 2>/dev/null | grep "Currently banned" | awk '{print $NF}')
|
|
101
|
+
check "Fail2ban active — jails:${JAILS} — banned IPs: ${BANNED:-0}" "PASS"
|
|
102
|
+
else
|
|
103
|
+
check "Fail2ban installed but NOT running" "FAIL"
|
|
104
|
+
fi
|
|
105
|
+
else
|
|
106
|
+
check "Fail2ban NOT installed — install it!" "FAIL"
|
|
107
|
+
fi
|
|
108
|
+
|
|
109
|
+
echo ""
|
|
110
|
+
|
|
111
|
+
# --- 4. Updates ---
|
|
112
|
+
echo ">> System Updates"
|
|
113
|
+
|
|
114
|
+
if command -v apt &>/dev/null; then
|
|
115
|
+
UPDATES=$(apt list --upgradable 2>/dev/null | grep -c "upgradable")
|
|
116
|
+
if [ "$UPDATES" -gt 10 ]; then
|
|
117
|
+
check "$UPDATES packages need updating — run apt upgrade!" "FAIL"
|
|
118
|
+
elif [ "$UPDATES" -gt 0 ]; then
|
|
119
|
+
check "$UPDATES packages need updating" "WARN"
|
|
120
|
+
else
|
|
121
|
+
check "System up to date" "PASS"
|
|
122
|
+
fi
|
|
123
|
+
|
|
124
|
+
if dpkg -l | grep -q unattended-upgrades; then
|
|
125
|
+
check "Unattended upgrades installed" "PASS"
|
|
126
|
+
else
|
|
127
|
+
check "Unattended upgrades NOT installed" "FAIL"
|
|
128
|
+
fi
|
|
129
|
+
fi
|
|
130
|
+
|
|
131
|
+
echo ""
|
|
132
|
+
|
|
133
|
+
# --- 5. Running Services ---
|
|
134
|
+
echo ">> Exposed Services"
|
|
135
|
+
|
|
136
|
+
LISTENING=$(ss -tulnp 2>/dev/null | grep LISTEN | awk '{print $5}' | sed 's/.*://' | sort -un | tr '\n' ', ')
|
|
137
|
+
check "Listening ports: ${LISTENING%,}" "WARN"
|
|
138
|
+
|
|
139
|
+
# Docker check
|
|
140
|
+
if command -v docker &>/dev/null; then
|
|
141
|
+
CONTAINERS=$(docker ps --format '{{.Names}} ({{.Ports}})' 2>/dev/null | tr '\n' ', ')
|
|
142
|
+
check "Docker containers: ${CONTAINERS:-none}" "WARN"
|
|
143
|
+
fi
|
|
144
|
+
|
|
145
|
+
echo ""
|
|
146
|
+
|
|
147
|
+
# --- 6. Suspicious Activity ---
|
|
148
|
+
echo ">> Suspicious Activity Check"
|
|
149
|
+
|
|
150
|
+
# Failed SSH attempts (last 24h)
|
|
151
|
+
if [ -f /var/log/auth.log ]; then
|
|
152
|
+
FAILED=$(grep "Failed password" /var/log/auth.log 2>/dev/null | wc -l)
|
|
153
|
+
elif journalctl -u sshd &>/dev/null 2>&1; then
|
|
154
|
+
FAILED=$(journalctl -u sshd --since "24 hours ago" 2>/dev/null | grep -c "Failed password")
|
|
155
|
+
else
|
|
156
|
+
FAILED=0
|
|
157
|
+
fi
|
|
158
|
+
|
|
159
|
+
if [ "$FAILED" -gt 100 ]; then
|
|
160
|
+
check "SSH brute force: $FAILED failed attempts in 24h!" "FAIL"
|
|
161
|
+
elif [ "$FAILED" -gt 10 ]; then
|
|
162
|
+
check "SSH: $FAILED failed login attempts in 24h" "WARN"
|
|
163
|
+
else
|
|
164
|
+
check "SSH: $FAILED failed attempts in 24h" "PASS"
|
|
165
|
+
fi
|
|
166
|
+
|
|
167
|
+
# Suspicious crontabs
|
|
168
|
+
CRON_ENTRIES=$(crontab -l 2>/dev/null | grep -vcE "^#|^$" || echo 0)
|
|
169
|
+
check "Root crontab: $CRON_ENTRIES entries" "WARN"
|
|
170
|
+
|
|
171
|
+
# World-writable files in sensitive locations
|
|
172
|
+
WW_COUNT=$(find /etc /usr/local/bin -perm -002 -type f 2>/dev/null | wc -l)
|
|
173
|
+
if [ "$WW_COUNT" -gt 0 ]; then
|
|
174
|
+
check "World-writable files in /etc or /usr/local/bin: $WW_COUNT" "FAIL"
|
|
175
|
+
else
|
|
176
|
+
check "No world-writable files in sensitive dirs" "PASS"
|
|
177
|
+
fi
|
|
178
|
+
|
|
179
|
+
# Users with UID 0 (should only be root)
|
|
180
|
+
ROOT_USERS=$(awk -F: '$3 == 0 {print $1}' /etc/passwd | tr '\n' ', ')
|
|
181
|
+
if [ "$ROOT_USERS" = "root," ]; then
|
|
182
|
+
check "Only root has UID 0" "PASS"
|
|
183
|
+
else
|
|
184
|
+
check "Multiple UID 0 users: $ROOT_USERS" "FAIL"
|
|
185
|
+
fi
|
|
186
|
+
|
|
187
|
+
echo ""
|
|
188
|
+
|
|
189
|
+
# --- 7. Backups ---
|
|
190
|
+
echo ">> Backup Status"
|
|
191
|
+
|
|
192
|
+
# Check common backup tools
|
|
193
|
+
if command -v restic &>/dev/null; then
|
|
194
|
+
check "Restic backup tool installed" "PASS"
|
|
195
|
+
elif command -v borgbackup &>/dev/null || command -v borg &>/dev/null; then
|
|
196
|
+
check "Borg backup tool installed" "PASS"
|
|
197
|
+
elif crontab -l 2>/dev/null | grep -qi "backup\|rsync\|tar.*gz"; then
|
|
198
|
+
check "Backup cron job detected" "PASS"
|
|
199
|
+
else
|
|
200
|
+
check "No backup solution detected!" "FAIL"
|
|
201
|
+
fi
|
|
202
|
+
|
|
203
|
+
echo ""
|
|
204
|
+
|
|
205
|
+
# --- 8. SSL/TLS ---
|
|
206
|
+
echo ">> SSL/TLS"
|
|
207
|
+
|
|
208
|
+
if command -v certbot &>/dev/null; then
|
|
209
|
+
CERTS=$(certbot certificates 2>/dev/null | grep "Domains:" | sed 's/.*Domains: //' | tr '\n' ', ')
|
|
210
|
+
EXPIRY=$(certbot certificates 2>/dev/null | grep "Expiry Date:" | head -1 | sed 's/.*Expiry Date: //' | cut -d' ' -f1)
|
|
211
|
+
check "Certbot active — domains: ${CERTS:-none} — expires: ${EXPIRY:-unknown}" "PASS"
|
|
212
|
+
elif [ -d "/etc/letsencrypt/live" ]; then
|
|
213
|
+
CERT_DOMAINS=$(ls /etc/letsencrypt/live/ 2>/dev/null | tr '\n' ', ')
|
|
214
|
+
check "Let's Encrypt certs found: ${CERT_DOMAINS%,}" "PASS"
|
|
215
|
+
else
|
|
216
|
+
check "No Let's Encrypt / Certbot detected" "WARN"
|
|
217
|
+
fi
|
|
218
|
+
|
|
219
|
+
echo ""
|
|
220
|
+
|
|
221
|
+
# --- Summary ---
|
|
222
|
+
echo "============================================"
|
|
223
|
+
echo " RESULTS: ${GREEN}${PASS} PASS${NC} | ${RED}${FAIL} FAIL${NC} | ${YELLOW}${WARN} WARN${NC}"
|
|
224
|
+
echo "============================================"
|
|
225
|
+
|
|
226
|
+
if [ "$FAIL" -gt 0 ]; then
|
|
227
|
+
echo ""
|
|
228
|
+
echo -e " ${RED}ACTION REQUIRED: Fix $FAIL failing checks above.${NC}"
|
|
229
|
+
echo " Priority: SSH hardening > Firewall > Fail2ban > Updates"
|
|
230
|
+
fi
|
|
231
|
+
|
|
232
|
+
echo ""
|
|
233
|
+
echo " Save this report: sudo bash vps-security-audit.sh > audit-$(date +%Y%m%d).txt 2>&1"
|
|
234
|
+
echo ""
|
package/INSTALL.md
ADDED
|
@@ -0,0 +1,312 @@
|
|
|
1
|
+
# Merlin — Full Installation Guide
|
|
2
|
+
|
|
3
|
+
> Get from zero (fresh machine) to running `claude` with Merlin loaded in **~15 minutes**.
|
|
4
|
+
|
|
5
|
+
## TL;DR — Quick Start (after prerequisites)
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install -g @caoscompanybr/merlin
|
|
9
|
+
merlin activate <your-key> --email <you@example.com> # required: binds your paid license to this machine
|
|
10
|
+
mkdir my-project && cd my-project
|
|
11
|
+
merlin init
|
|
12
|
+
claude
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
> Merlin is **commercial, licensed software** (see [LICENSE](LICENSE), a
|
|
16
|
+
> Brazil-aware B2B EULA). `merlin init` requires a valid, activated license.
|
|
17
|
+
> Check status anytime with `merlin license` (`--refresh` forces a heartbeat).
|
|
18
|
+
> What the licensing sends is described in
|
|
19
|
+
> [PRIVACY-LICENSING.md](PRIVACY-LICENSING.md) (LGPD).
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## 1. Prerequisites Matrix
|
|
24
|
+
|
|
25
|
+
| Tier | What | Why | Required? |
|
|
26
|
+
| ---- | --------------------------- | ------------------------------------------------------------------------ | ------------------------------------------------------------ |
|
|
27
|
+
| 1 | **Node.js 22+** | Runs the `merlin` binary | **REQUIRED** |
|
|
28
|
+
| 1 | **`@caoscompanybr/merlin`** | The Merlin framework itself | **REQUIRED** |
|
|
29
|
+
| 2 | **Claude Code** | The AI that reads CLAUDE.md, dispatches agents, runs skills | **REQUIRED to use it** |
|
|
30
|
+
| 2 | **Anthropic API key** | So Claude Code can talk to Claude | **REQUIRED** (sign up at console.anthropic.com, add billing) |
|
|
31
|
+
| 2 | **Git** | Used by most Merlin workflows (commit, PR, handoff) | Strongly recommended |
|
|
32
|
+
| 3 | VS Code | Nicer editor; terminal works fine without it | Optional |
|
|
33
|
+
| 4 | Python 3.9+ | Only needed by 3 skills (`load-testing`, `mage-beauty`, `skill-creator`) | Install lazily when needed |
|
|
34
|
+
| 4 | Docker Desktop | Only for self-hosted automation stacks (n8n, etc.) | Only for licence install |
|
|
35
|
+
| 4 | Rust | Only for building Merlin Workbench locally | Only for licence install |
|
|
36
|
+
|
|
37
|
+
**The framework itself is 1.6 MB packed. The CLI binary is 5 MB unpacked. You don't need 30 GB of dev tools just to run Merlin.**
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## 2. macOS Installation
|
|
42
|
+
|
|
43
|
+
> Most common path.
|
|
44
|
+
|
|
45
|
+
### Step 1 — Install Homebrew (the Mac package manager)
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
Then add it to your shell PATH (run the command Homebrew tells you, usually):
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
# Apple Silicon (M1/M2/M3/M4):
|
|
55
|
+
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
|
|
56
|
+
eval "$(/opt/homebrew/bin/brew shellenv)"
|
|
57
|
+
|
|
58
|
+
# Intel Mac:
|
|
59
|
+
echo 'eval "$(/usr/local/bin/brew shellenv)"' >> ~/.zprofile
|
|
60
|
+
eval "$(/usr/local/bin/brew shellenv)"
|
|
61
|
+
|
|
62
|
+
brew --version # → Homebrew 4.x.x
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### Step 2 — Install Node 22 + Git
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
brew install node@22 git
|
|
69
|
+
brew link --force --overwrite node@22
|
|
70
|
+
node -v # → v22.x.x
|
|
71
|
+
git --version # → git version 2.x.x
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### Step 3 — Install Claude Code
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
curl -fsSL https://claude.ai/install.sh | bash
|
|
78
|
+
claude --version # → claude version X.X.X (reopen terminal if not found)
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### Step 4 — Install Merlin globally
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
npm install -g @caoscompanybr/merlin
|
|
85
|
+
merlin --version # → 1.0.2 or higher
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### Step 5 — Initialize your first project
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
mkdir -p ~/DevOps && cd ~/DevOps
|
|
92
|
+
mkdir my-first-project && cd my-first-project
|
|
93
|
+
merlin init
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
Expected output:
|
|
97
|
+
|
|
98
|
+
```
|
|
99
|
+
✓ tools (38 files)
|
|
100
|
+
✓ skills (483 files)
|
|
101
|
+
✓ commands (35 files)
|
|
102
|
+
...
|
|
103
|
+
Verification: PASSED (3.5.0)
|
|
104
|
+
|
|
105
|
+
Created (7):
|
|
106
|
+
+ .merlin
|
|
107
|
+
+ .merlin/locks
|
|
108
|
+
+ .merlin/sessions
|
|
109
|
+
+ .merlin/cache
|
|
110
|
+
+ .merlin/logs
|
|
111
|
+
+ .mcp.json
|
|
112
|
+
+ .gitignore (added .merlin/)
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### Step 6 — Launch Claude Code in the project
|
|
116
|
+
|
|
117
|
+
```bash
|
|
118
|
+
claude
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
First run prompts for your Anthropic API key (paste it from https://console.anthropic.com → Settings → API Keys). After auth, Claude loads `.claude/CLAUDE.md` and Merlin is live. Try:
|
|
122
|
+
|
|
123
|
+
```
|
|
124
|
+
/research what skills are available in this project
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
## 3. Windows Installation
|
|
130
|
+
|
|
131
|
+
> Use **Git Bash** (comes with Git for Windows) — not CMD or default PowerShell. Most Merlin commands assume Unix-style shell.
|
|
132
|
+
|
|
133
|
+
### Step 1 — Install Node.js 22 + Git
|
|
134
|
+
|
|
135
|
+
Download installers:
|
|
136
|
+
|
|
137
|
+
- Node 22 LTS: https://nodejs.org/en/download
|
|
138
|
+
- Git for Windows: https://git-scm.com/download/win (includes Git Bash)
|
|
139
|
+
|
|
140
|
+
Open **Git Bash** and verify:
|
|
141
|
+
|
|
142
|
+
```bash
|
|
143
|
+
node -v # → v22.x.x
|
|
144
|
+
git --version # → git version 2.x.x
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
### Step 2 — Install Claude Code
|
|
148
|
+
|
|
149
|
+
In Git Bash:
|
|
150
|
+
|
|
151
|
+
```bash
|
|
152
|
+
curl -fsSL https://claude.ai/install.sh | bash
|
|
153
|
+
claude --version
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
### Step 3 — Install Merlin globally
|
|
157
|
+
|
|
158
|
+
```bash
|
|
159
|
+
npm install -g @caoscompanybr/merlin
|
|
160
|
+
merlin --version # → 1.0.2 or higher
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
### Step 4 — Initialize + launch
|
|
164
|
+
|
|
165
|
+
```bash
|
|
166
|
+
mkdir -p /c/DevOps/my-project && cd /c/DevOps/my-project
|
|
167
|
+
merlin init
|
|
168
|
+
claude
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
### Windows + VS Code gotcha
|
|
172
|
+
|
|
173
|
+
If you launch the terminal from inside VS Code's integrated terminal and `claude` fails with exit code 1:
|
|
174
|
+
|
|
175
|
+
```bash
|
|
176
|
+
unset CLAUDECODE && claude
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
Permanent fix — add to VS Code `settings.json`:
|
|
180
|
+
|
|
181
|
+
```json
|
|
182
|
+
"terminal.integrated.env.windows": { "CLAUDECODE": null }
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
(VS Code's Claude Code extension sets `CLAUDECODE=1` which blocks nested `claude` launches.)
|
|
186
|
+
|
|
187
|
+
---
|
|
188
|
+
|
|
189
|
+
## 4. Linux Installation (Ubuntu/Debian)
|
|
190
|
+
|
|
191
|
+
### Step 1 — System packages
|
|
192
|
+
|
|
193
|
+
```bash
|
|
194
|
+
sudo apt update && sudo apt install -y curl git build-essential
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
### Step 2 — Install Node 22 via NodeSource
|
|
198
|
+
|
|
199
|
+
```bash
|
|
200
|
+
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
|
|
201
|
+
sudo apt install -y nodejs
|
|
202
|
+
node -v # → v22.x.x
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
### Step 3 — Install Claude Code
|
|
206
|
+
|
|
207
|
+
```bash
|
|
208
|
+
curl -fsSL https://claude.ai/install.sh | bash
|
|
209
|
+
claude --version
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
### Step 4 — Install Merlin globally
|
|
213
|
+
|
|
214
|
+
If you hit `EACCES` permission errors on `npm install -g`, configure a user-level npm prefix first:
|
|
215
|
+
|
|
216
|
+
```bash
|
|
217
|
+
mkdir -p ~/.npm-global
|
|
218
|
+
npm config set prefix ~/.npm-global
|
|
219
|
+
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc
|
|
220
|
+
source ~/.bashrc
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
Then:
|
|
224
|
+
|
|
225
|
+
```bash
|
|
226
|
+
npm install -g @caoscompanybr/merlin
|
|
227
|
+
merlin --version # → 1.0.2 or higher
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
### Step 5 — Initialize + launch
|
|
231
|
+
|
|
232
|
+
```bash
|
|
233
|
+
mkdir -p ~/projects/my-project && cd ~/projects/my-project
|
|
234
|
+
merlin init
|
|
235
|
+
claude
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
---
|
|
239
|
+
|
|
240
|
+
## 5. Post-Install Verification
|
|
241
|
+
|
|
242
|
+
Run these in any Merlin-initialized project dir:
|
|
243
|
+
|
|
244
|
+
```bash
|
|
245
|
+
merlin --version # → 1.0.2+
|
|
246
|
+
merlin doctor # Health check — expect ~5 [OK] lines
|
|
247
|
+
merlin agents # → "Available agents (16): @analyst, @architect, ..."
|
|
248
|
+
merlin skills # → "Available skills (72): ..."
|
|
249
|
+
merlin mcp # → "No MCP servers configured" (expected on fresh init)
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
Inside `claude`:
|
|
253
|
+
|
|
254
|
+
```
|
|
255
|
+
/research what does this project do? # Tests AI + agent dispatch
|
|
256
|
+
/help # Lists all Merlin slash commands
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
---
|
|
260
|
+
|
|
261
|
+
## 6. Troubleshooting
|
|
262
|
+
|
|
263
|
+
| Symptom | Fix |
|
|
264
|
+
| ---------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- |
|
|
265
|
+
| `merlin: command not found` after install | Reopen terminal. If still missing: `npm prefix -g` to find install dir, ensure that dir is in PATH. |
|
|
266
|
+
| `Cannot find module '../.merlin-core/core/commands/init'` | You have v1.0.0 cached. Upgrade: `npm install -g @caoscompanybr/merlin@latest` |
|
|
267
|
+
| `claude` errors with exit code 1 in VS Code terminal | `unset CLAUDECODE && claude` — or set VS Code env override (see Windows section) |
|
|
268
|
+
| `merlin doctor` shows `[!!] mcp-system: no servers defined` | Expected on fresh init. Add servers to `.mcp.json` when you need them. |
|
|
269
|
+
| `merlin doctor` shows `[XX] config-system: Config directory not found` | Pre-existing minor framework health-check item, doesn't affect usage. Will be fixed in a future release. |
|
|
270
|
+
| Build fails on Mac with `xcrun` / `clang` error | `xcode-select --install` |
|
|
271
|
+
| `npm install -g` fails with EACCES on Linux | Set user-level prefix (see Linux Step 4) |
|
|
272
|
+
|
|
273
|
+
---
|
|
274
|
+
|
|
275
|
+
## 7. What to Do Next
|
|
276
|
+
|
|
277
|
+
### Learn the framework
|
|
278
|
+
|
|
279
|
+
- Read `.claude/CLAUDE.md` in your project — auto-loaded by Claude Code, explains the 15 agents, 8-layer context engine, 13 principles
|
|
280
|
+
- Read `.merlin-core/constitution.md` — the 13 governing principles
|
|
281
|
+
- Browse `.merlin-core/skills/general/` — 60+ skills you can invoke
|
|
282
|
+
|
|
283
|
+
### Try the core workflows
|
|
284
|
+
|
|
285
|
+
```
|
|
286
|
+
/fast-start # Session onboarding — triage existing thoughts
|
|
287
|
+
/research <topic> # Deep codebase research with parallel sub-agents
|
|
288
|
+
/plan <feature> # Interactive implementation planning
|
|
289
|
+
/implement # Execute a saved plan, phase by phase
|
|
290
|
+
/commit # Safe commit with secret scan
|
|
291
|
+
/handoff # Save session context for the next chat
|
|
292
|
+
```
|
|
293
|
+
|
|
294
|
+
### Optional upgrades
|
|
295
|
+
|
|
296
|
+
- **MCP servers** — add to `.mcp.json` to give Merlin external capabilities (browser, Paper.design, n8n, Notion, etc.). See `.merlin-core/skills/general/mcp-builder/` for setup help.
|
|
297
|
+
- **Domain skills** — drop your own SKILL.md folders into `.merlin-core/skills/domain/` for project-specific knowledge
|
|
298
|
+
- **Update Merlin** — when new versions ship: `npm install -g @caoscompanybr/merlin@latest` then `merlin init` in each project to pull the latest framework files
|
|
299
|
+
|
|
300
|
+
---
|
|
301
|
+
|
|
302
|
+
## 8. Getting Help
|
|
303
|
+
|
|
304
|
+
- **Repo:** https://github.com/EuGenio1FreeLa/gestao-merlin
|
|
305
|
+
- **npm:** https://www.npmjs.com/package/@caoscompanybr/merlin
|
|
306
|
+
- **Releases:** https://github.com/EuGenio1FreeLa/gestao-merlin/releases
|
|
307
|
+
- **Support:** support@merlincompany.com.br
|
|
308
|
+
|
|
309
|
+
---
|
|
310
|
+
|
|
311
|
+
**License:** Commercial — see [LICENSE](LICENSE) (B2B EULA, Brazilian law).
|
|
312
|
+
Requires `merlin activate`. Data handling: [PRIVACY-LICENSING.md](PRIVACY-LICENSING.md) (LGPD).
|
package/LICENSE
ADDED
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
Merlin Framework — Contrato de Licença de Uso de Software (EULA)
|
|
2
|
+
|
|
3
|
+
> This is a commercial End User License Agreement for the Merlin Framework,
|
|
4
|
+
> governed by the laws of Brazil. The controlling text is in Portuguese below.
|
|
5
|
+
|
|
6
|
+
Copyright (c) 2026 Matteus Rodrigues Eugenio ("Merlin Company"). Todos os direitos reservados.
|
|
7
|
+
|
|
8
|
+
Este é um contrato de licença de software COMERCIAL, não uma licença de código
|
|
9
|
+
aberto. Ao instalar, ativar ou usar o Merlin Framework e seus componentes (o
|
|
10
|
+
"Software"), você ("Licenciado") concorda com os termos abaixo. Se não
|
|
11
|
+
concordar, não instale, não ative e não use o Software.
|
|
12
|
+
|
|
13
|
+
LICENCIANTE: Matteus Rodrigues Eugenio (Empresário Individual), inscrito no
|
|
14
|
+
CNPJ sob o nº 39.315.802/0001-26, operando sob a marca Merlin Company — contato
|
|
15
|
+
support@merlincompany.com.br.
|
|
16
|
+
|
|
17
|
+
1. DEFINIÇÕES
|
|
18
|
+
"Software": o Merlin Framework, sua CLI, engines, skills, agentes, comandos,
|
|
19
|
+
documentação e atualizações. "Chave de Licença": o identificador emitido pela
|
|
20
|
+
Licenciante que habilita a ativação. "Máquina": o computador cujo
|
|
21
|
+
identificador (fingerprint) a licença vincula. "Ativação": o processo que
|
|
22
|
+
liga a Chave de Licença a uma Máquina.
|
|
23
|
+
|
|
24
|
+
2. OBJETO E CONCESSÃO DE LICENÇA (USO PROFISSIONAL / B2B)
|
|
25
|
+
O Software é licenciado para uso EMPRESARIAL E PROFISSIONAL, destinado a
|
|
26
|
+
pessoa jurídica, MEI ou profissional autônomo no exercício da sua atividade —
|
|
27
|
+
não é um produto de consumo de massa. Mediante licença válida, paga e não
|
|
28
|
+
expirada, a Licenciante concede ao Licenciado uma licença pessoal, não
|
|
29
|
+
exclusiva, intransferível, não sublicenciável e revogável para instalar e usar
|
|
30
|
+
o Software para os fins internos do próprio Licenciado, na(s) Máquina(s) à(s)
|
|
31
|
+
qual(is) a licença está vinculada, pelo prazo contratado.
|
|
32
|
+
|
|
33
|
+
3. ATIVAÇÃO E VÍNCULO DE MÁQUINA
|
|
34
|
+
O Software exige ativação com uma Chave de Licença. Cada licença é vinculada
|
|
35
|
+
ao fingerprint de uma Máquina e pode exigir verificação online periódica
|
|
36
|
+
(heartbeat). O uso sem licença válida, vinculada à Máquina e não expirada não
|
|
37
|
+
é permitido. Os dados tratados na ativação e na verificação estão descritos no
|
|
38
|
+
aviso de privacidade (cláusula 8).
|
|
39
|
+
|
|
40
|
+
4. RESTRIÇÕES
|
|
41
|
+
O Licenciado NÃO poderá, no todo ou em parte: (a) revender, sublicenciar,
|
|
42
|
+
alugar, arrendar, emprestar ou redistribuir o Software ou qualquer Chave de
|
|
43
|
+
Licença; (b) compartilhar, publicar ou transferir uma Chave de Licença ou uma
|
|
44
|
+
cópia ativada a terceiros; (c) contornar, desabilitar ou remover os mecanismos
|
|
45
|
+
de licenciamento, ativação ou verificação; (d) usar o Software além dos
|
|
46
|
+
assentos, Máquinas ou prazo cobertos pela licença paga; (e) remover ou alterar
|
|
47
|
+
avisos de propriedade.
|
|
48
|
+
|
|
49
|
+
5. PROPRIEDADE INTELECTUAL
|
|
50
|
+
O Software é licenciado, não vendido. A Licenciante retém todos os direitos,
|
|
51
|
+
título e interesse sobre o Software, incluindo todos os direitos de
|
|
52
|
+
propriedade intelectual. Nenhum direito é concedido exceto os expressamente
|
|
53
|
+
previstos neste contrato.
|
|
54
|
+
|
|
55
|
+
6. COMPONENTES DE TERCEIROS
|
|
56
|
+
O Software pode incluir componentes de terceiros de código aberto, cada um
|
|
57
|
+
regido por sua própria licença, que não são substituídas por este contrato.
|
|
58
|
+
|
|
59
|
+
7. SUSPENSÃO E REVOGAÇÃO REMOTA
|
|
60
|
+
A Licenciante poderá suspender ou revogar a licença, de forma remota, nas
|
|
61
|
+
seguintes hipóteses, que o Licenciado reconhece como base contratual legítima:
|
|
62
|
+
(a) cópia, clonagem ou divergência de Máquina (uso da mesma licença em Máquina
|
|
63
|
+
diversa da vinculada); (b) inadimplemento do pagamento; (c) violação de
|
|
64
|
+
qualquer cláusula deste contrato, em especial a cláusula 4. A suspensão por
|
|
65
|
+
verificação automática (heartbeat) e a revogação administrativa decorrem
|
|
66
|
+
diretamente destas hipóteses e não configuram privação arbitrária. Sempre que
|
|
67
|
+
praticável, a Licenciante comunicará o Licenciado e permitirá a regularização.
|
|
68
|
+
|
|
69
|
+
8. PROTEÇÃO DE DADOS (LGPD)
|
|
70
|
+
O Software trata dados pessoais para fins de ativação, antifraude e suporte,
|
|
71
|
+
conforme descrito no aviso de privacidade do licenciamento
|
|
72
|
+
(PRIVACY-LICENSING.md), parte integrante deste contrato. A base legal é a
|
|
73
|
+
execução de contrato (LGPD, art. 7º, V). Os direitos do titular são
|
|
74
|
+
assegurados nos termos da Lei nº 13.709/2018.
|
|
75
|
+
|
|
76
|
+
9. DIREITO DE ARREPENDIMENTO (CDC, ART. 49)
|
|
77
|
+
Caso, excepcionalmente, um consumidor (pessoa física, fora do exercício de
|
|
78
|
+
atividade profissional) adquira o Software por canal de venda à distância
|
|
79
|
+
(internet), fica assegurado o direito de arrependimento no prazo de 7 (sete)
|
|
80
|
+
dias contados da contratação ou do recebimento, com restituição dos valores
|
|
81
|
+
pagos, nos termos do art. 49 do Código de Defesa do Consumidor. Esta cláusula
|
|
82
|
+
não se aplica à contratação empresarial/profissional (B2B), regida pelo prazo
|
|
83
|
+
e condições comerciais acordados.
|
|
84
|
+
|
|
85
|
+
10. GARANTIA
|
|
86
|
+
O Software é fornecido "no estado em que se encontra". Na máxima extensão
|
|
87
|
+
permitida pela lei brasileira, a Licenciante não presta garantias de
|
|
88
|
+
adequação a uma finalidade específica, de funcionamento ininterrupto ou
|
|
89
|
+
livre de erros, ressalvadas as garantias legais que não podem ser afastadas.
|
|
90
|
+
|
|
91
|
+
11. LIMITAÇÃO DE RESPONSABILIDADE
|
|
92
|
+
Na máxima extensão permitida pela lei, a responsabilidade total e agregada da
|
|
93
|
+
Licenciante decorrente ou relacionada ao Software fica limitada ao valor
|
|
94
|
+
efetivamente pago pelo Licenciado pela licença no período de 12 (doze) meses
|
|
95
|
+
anteriores ao evento. Esta limitação NÃO se aplica a danos causados por dolo
|
|
96
|
+
ou má-fé, nem a hipóteses cuja exclusão a lei vede. A Licenciante não responde
|
|
97
|
+
por danos indiretos ou lucros cessantes não razoavelmente previsíveis.
|
|
98
|
+
|
|
99
|
+
12. VIGÊNCIA E RESCISÃO
|
|
100
|
+
Este contrato vigora até o término ou expiração da licença. Rescinde-se
|
|
101
|
+
automaticamente se o Licenciado violar qualquer cláusula. Rescindida a
|
|
102
|
+
licença, o Licenciado deve cessar o uso e remover o Software. Sobrevivem à
|
|
103
|
+
rescisão as cláusulas de propriedade intelectual, limitação de
|
|
104
|
+
responsabilidade, proteção de dados e foro.
|
|
105
|
+
|
|
106
|
+
13. CESSÃO
|
|
107
|
+
O Licenciado não poderá ceder ou transferir este contrato ou a licença sem o
|
|
108
|
+
consentimento prévio e por escrito da Licenciante.
|
|
109
|
+
|
|
110
|
+
14. LEI APLICÁVEL E FORO
|
|
111
|
+
Este contrato é regido pelas leis da República Federativa do Brasil. Fica
|
|
112
|
+
eleito o foro da Comarca de São Paulo/SP para dirimir controvérsias, salvo
|
|
113
|
+
norma cogente em contrário aplicável a consumidor.
|
|
114
|
+
|
|
115
|
+
15. CONTATO
|
|
116
|
+
Merlin Company — support@merlincompany.com.br
|
|
117
|
+
|
|
118
|
+
O uso do Software constitui aceitação integral deste contrato.
|