@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,184 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Create detailed implementation plans through interactive research and iteration
|
|
3
|
+
model: opus
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Create Implementation Plan
|
|
7
|
+
|
|
8
|
+
You are tasked with creating detailed implementation plans through an interactive, iterative process. You should be skeptical, thorough, and work collaboratively with the user to produce high-quality technical specifications.
|
|
9
|
+
|
|
10
|
+
## Initial Response
|
|
11
|
+
|
|
12
|
+
When this command is invoked:
|
|
13
|
+
|
|
14
|
+
1. **If parameters were provided** (file path or ticket reference):
|
|
15
|
+
- Skip the default message
|
|
16
|
+
- Read all provided files FULLY
|
|
17
|
+
- Begin the research process
|
|
18
|
+
|
|
19
|
+
2. **If no parameters provided**, respond with:
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
I'll help you create a detailed implementation plan. Let me start by understanding what we're building.
|
|
23
|
+
|
|
24
|
+
Please provide:
|
|
25
|
+
1. The task/ticket description (or reference to a ticket file)
|
|
26
|
+
2. Any relevant context, constraints, or specific requirements
|
|
27
|
+
3. Links to related research or previous implementations
|
|
28
|
+
|
|
29
|
+
Tip: You can invoke with a file directly: /plan thoughts/shared/research/my-research.md
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Then wait for user input.
|
|
33
|
+
|
|
34
|
+
## Process Steps
|
|
35
|
+
|
|
36
|
+
### Step 1: Context Gathering & Initial Analysis
|
|
37
|
+
|
|
38
|
+
1. **Read all mentioned files FULLY** (no limit/offset)
|
|
39
|
+
2. **Spawn research agents in parallel:**
|
|
40
|
+
- Use **scout** to find all files related to the task
|
|
41
|
+
- Use **researcher** to understand current implementation
|
|
42
|
+
- Check `thoughts/shared/` for existing documents on this topic
|
|
43
|
+
3. **Read all files identified by research agents**
|
|
44
|
+
4. **Analyze and verify understanding:**
|
|
45
|
+
- Cross-reference requirements with actual code
|
|
46
|
+
- Identify discrepancies or misunderstandings
|
|
47
|
+
- Note assumptions needing verification
|
|
48
|
+
|
|
49
|
+
5. **Present informed understanding:**
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
Based on the ticket and my research, I understand we need to [summary].
|
|
53
|
+
|
|
54
|
+
I've found that:
|
|
55
|
+
- [Current implementation detail with file:line reference]
|
|
56
|
+
- [Relevant pattern or constraint discovered]
|
|
57
|
+
|
|
58
|
+
Questions before I draft the plan:
|
|
59
|
+
1. [Specific, informed question]
|
|
60
|
+
2. [Question about scope or approach]
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### Step 2: Draft the Plan
|
|
64
|
+
|
|
65
|
+
After gathering context, create a plan with this structure:
|
|
66
|
+
|
|
67
|
+
```markdown
|
|
68
|
+
---
|
|
69
|
+
date: [ISO 8601]
|
|
70
|
+
architect: Aria
|
|
71
|
+
ticket: [reference if provided]
|
|
72
|
+
status: draft
|
|
73
|
+
complexity: [simple|standard|complex]
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
# Implementation Plan: [Title]
|
|
77
|
+
|
|
78
|
+
## Overview
|
|
79
|
+
|
|
80
|
+
[2-3 sentence summary of what we're building and why]
|
|
81
|
+
|
|
82
|
+
## Affected Files
|
|
83
|
+
|
|
84
|
+
| File | Change Type | Description |
|
|
85
|
+
| --------------- | ----------- | --------------- |
|
|
86
|
+
| path/to/file.ts | modify | What changes |
|
|
87
|
+
| path/to/new.ts | create | Why it's needed |
|
|
88
|
+
|
|
89
|
+
## Phase 1: [Phase Name]
|
|
90
|
+
|
|
91
|
+
### Changes
|
|
92
|
+
|
|
93
|
+
1. [Specific change with file:line reference]
|
|
94
|
+
2. [Specific change]
|
|
95
|
+
|
|
96
|
+
### Success Criteria
|
|
97
|
+
|
|
98
|
+
**Automated Verification:**
|
|
99
|
+
|
|
100
|
+
- [ ] `npm test` passes
|
|
101
|
+
- [ ] `npm run lint` passes
|
|
102
|
+
|
|
103
|
+
**Manual Verification:**
|
|
104
|
+
|
|
105
|
+
- [ ] [Human testing step with expected outcome]
|
|
106
|
+
|
|
107
|
+
## Phase 2: [Phase Name]
|
|
108
|
+
|
|
109
|
+
[Same structure]
|
|
110
|
+
|
|
111
|
+
## Risks & Mitigations
|
|
112
|
+
|
|
113
|
+
- Risk: [description] → Mitigation: [approach]
|
|
114
|
+
|
|
115
|
+
## Out of Scope
|
|
116
|
+
|
|
117
|
+
- [What this plan explicitly does NOT cover]
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
### Step 2.5: Reflect Before Presenting
|
|
121
|
+
|
|
122
|
+
Before presenting the plan to the user, pause for a **STANDARD reflection**:
|
|
123
|
+
|
|
124
|
+
> **GOAL CHECK:** Does this plan solve the stated problem? Am I building what was requested?
|
|
125
|
+
> **EVIDENCE CHECK:** Does every phase trace to a requirement or codebase reality? Am I inventing features not in the spec (Article IV)?
|
|
126
|
+
> **UNCERTAINTY CHECK:** Are the success criteria actually testable? What assumptions am I making about the codebase that I haven't verified?
|
|
127
|
+
> **NEXT STEP CHECK:** Is this plan ready to present, or should I research one more area first?
|
|
128
|
+
|
|
129
|
+
If the reflection reveals invented requirements or untestable criteria, revise the plan before presenting.
|
|
130
|
+
|
|
131
|
+
### Step 3: Review & Iterate
|
|
132
|
+
|
|
133
|
+
- Present the draft plan to the user
|
|
134
|
+
- Address feedback and questions
|
|
135
|
+
- Iterate until the user approves
|
|
136
|
+
- Each iteration should improve specificity
|
|
137
|
+
|
|
138
|
+
### Step 4: Save the Plan
|
|
139
|
+
|
|
140
|
+
Save the approved plan to `thoughts/shared/plans/` with naming:
|
|
141
|
+
`YYYY-MM-DD-[ticket-or-description].md`
|
|
142
|
+
|
|
143
|
+
Confirm save location to the user:
|
|
144
|
+
|
|
145
|
+
```
|
|
146
|
+
Plan saved to: thoughts/shared/plans/[filename].md
|
|
147
|
+
|
|
148
|
+
To implement: /implement thoughts/shared/plans/[filename].md
|
|
149
|
+
To iterate: /iterate-plan thoughts/shared/plans/[filename].md
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
After saving, **rebuild the thoughts index**:
|
|
153
|
+
|
|
154
|
+
```bash
|
|
155
|
+
node .merlin-core/tools/merlin-tools.js index
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
## Spec Review Loop (Post-Save)
|
|
159
|
+
|
|
160
|
+
After saving the plan, run a quick spec completeness check by dispatching a subagent:
|
|
161
|
+
|
|
162
|
+
1. **Dispatch reviewer** — Spawn a general-purpose subagent to review the saved plan file for:
|
|
163
|
+
- TODO markers, placeholder text, or "TBD" sections
|
|
164
|
+
- Incomplete sections or noticeably less-detailed areas
|
|
165
|
+
- Internal contradictions or conflicting requirements
|
|
166
|
+
- Scope creep — unrequested features or over-engineering (Article IV)
|
|
167
|
+
- Untestable success criteria
|
|
168
|
+
|
|
169
|
+
2. **If issues found** — Fix them in the plan file and re-dispatch the reviewer. Maximum 3 iterations.
|
|
170
|
+
|
|
171
|
+
3. **If clean** — Present the plan to the user for final review before implementation.
|
|
172
|
+
|
|
173
|
+
This loop catches spec gaps before implementation begins — the cheapest time to fix them.
|
|
174
|
+
|
|
175
|
+
## Quality Checklist
|
|
176
|
+
|
|
177
|
+
Before presenting any plan, verify:
|
|
178
|
+
|
|
179
|
+
- [ ] Every change references specific files and locations
|
|
180
|
+
- [ ] Success criteria split into Automated and Manual
|
|
181
|
+
- [ ] Phases are ordered by dependency (earlier phases don't depend on later)
|
|
182
|
+
- [ ] No invented requirements (all trace to user input or codebase reality)
|
|
183
|
+
- [ ] Risks and mitigations are realistic
|
|
184
|
+
- [ ] Out of scope is explicitly stated
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Update an existing plan with new information or feedback
|
|
3
|
+
model: opus
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Iterate Plan
|
|
7
|
+
|
|
8
|
+
Update an existing implementation plan based on new information, feedback, or changed requirements.
|
|
9
|
+
|
|
10
|
+
## Process
|
|
11
|
+
|
|
12
|
+
1. **Read the existing plan FULLY**
|
|
13
|
+
2. **Read any new context provided** (feedback, new requirements, research)
|
|
14
|
+
3. **Identify what needs to change:**
|
|
15
|
+
- New phases needed?
|
|
16
|
+
- Existing phases need modification?
|
|
17
|
+
- Success criteria need updating?
|
|
18
|
+
- Scope changed?
|
|
19
|
+
|
|
20
|
+
4. **Present diff-style summary:**
|
|
21
|
+
|
|
22
|
+
```
|
|
23
|
+
Plan Update: [plan name]
|
|
24
|
+
|
|
25
|
+
Changes:
|
|
26
|
+
- Phase 2: [what changed and why]
|
|
27
|
+
- New Phase 4: [added because...]
|
|
28
|
+
- Removed: [what was removed and why]
|
|
29
|
+
|
|
30
|
+
Updated plan saved to: [same path, overwritten]
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
5. **Update the plan file** with changes tracked via date in frontmatter
|
|
34
|
+
|
|
35
|
+
6. **Rebuild the thoughts index** after updating:
|
|
36
|
+
```bash
|
|
37
|
+
node .merlin-core/tools/merlin-tools.js index
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Rules
|
|
41
|
+
|
|
42
|
+
- Preserve completed phases (don't modify checked items)
|
|
43
|
+
- Explain WHY each change is needed
|
|
44
|
+
- Keep the plan's overall structure intact
|
|
45
|
+
- If scope increased significantly, recommend splitting into multiple plans
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Verify implementation correctness against the plan
|
|
3
|
+
model: opus
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Validate Plan
|
|
7
|
+
|
|
8
|
+
Verify that an implementation matches its plan. Run after /implement to confirm everything was built correctly.
|
|
9
|
+
|
|
10
|
+
## Process
|
|
11
|
+
|
|
12
|
+
1. **Read the plan FULLY**
|
|
13
|
+
2. **For each phase, verify:**
|
|
14
|
+
- All changes listed were actually made
|
|
15
|
+
- Code matches the plan's intent
|
|
16
|
+
- No unplanned changes were introduced (Principle IV: No Invention)
|
|
17
|
+
|
|
18
|
+
3. **Run all success criteria:**
|
|
19
|
+
- Execute every automated verification command
|
|
20
|
+
- List manual verification steps for user
|
|
21
|
+
|
|
22
|
+
3.5. **Verify must_haves (if present):**
|
|
23
|
+
|
|
24
|
+
- Extract the `## Must-Haves` section from the plan
|
|
25
|
+
- For each truth: verify the invariant holds (run command or present manual step)
|
|
26
|
+
- For each artifact: verify the file/pattern exists
|
|
27
|
+
- For each key_link: verify traceability (implementation_ref exists)
|
|
28
|
+
- Include must_haves results in the validation report
|
|
29
|
+
- If no must_haves section exists, skip this step
|
|
30
|
+
|
|
31
|
+
4. **Present validation report:**
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
Plan Validation: [plan name]
|
|
35
|
+
|
|
36
|
+
Phase 1: [PASS/FAIL]
|
|
37
|
+
- [x] Change 1 verified
|
|
38
|
+
- [ ] Change 2 missing: [details]
|
|
39
|
+
|
|
40
|
+
Phase 2: [PASS/FAIL]
|
|
41
|
+
- [x] All changes verified
|
|
42
|
+
|
|
43
|
+
Automated Tests: [PASS/FAIL]
|
|
44
|
+
Manual Verification Needed:
|
|
45
|
+
- [ ] [Step for user to verify]
|
|
46
|
+
|
|
47
|
+
Overall: [COMPLETE / INCOMPLETE]
|
|
48
|
+
```
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Convert a GitHub issue or ticket description into a structured spec ready for /plan
|
|
3
|
+
model: opus
|
|
4
|
+
version: "3.0.0"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /analyze-issue — Issue to Spec Bridge
|
|
8
|
+
|
|
9
|
+
Converts a raw GitHub issue (or any ticket text) into a structured implementation
|
|
10
|
+
specification that feeds directly into `/plan`. Bridges the gap between
|
|
11
|
+
issue tracker and the Folloni Funnel.
|
|
12
|
+
|
|
13
|
+
## Usage
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
/analyze-issue #42 → Fetch and analyze GitHub issue #42 via gh CLI
|
|
17
|
+
/analyze-issue [paste issue text] → Analyze pasted issue/ticket text directly
|
|
18
|
+
/analyze-issue --save → Save output to thoughts/shared/research/ automatically
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Protocol
|
|
22
|
+
|
|
23
|
+
### Step 1: Acquire the Issue
|
|
24
|
+
|
|
25
|
+
**If issue number provided (#N):**
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
gh issue view N --json title,body,labels,comments,assignees
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
If `gh` is not available or not authenticated, ask the user to paste the issue text.
|
|
32
|
+
|
|
33
|
+
**If text pasted:**
|
|
34
|
+
Use the pasted content directly.
|
|
35
|
+
|
|
36
|
+
### Step 2: Extract Structure
|
|
37
|
+
|
|
38
|
+
Parse the issue into these components:
|
|
39
|
+
|
|
40
|
+
**Requirements (MoSCoW classification):**
|
|
41
|
+
|
|
42
|
+
- **Must Have** — explicit requirements, acceptance criteria, non-negotiable constraints
|
|
43
|
+
- **Should Have** — implied expectations, "it would be nice if", best practices
|
|
44
|
+
- **Could Have** — mentioned possibilities, stretch goals
|
|
45
|
+
- **Won't Have** — explicitly out of scope, deferred items, "not this ticket"
|
|
46
|
+
|
|
47
|
+
If the issue doesn't use MoSCoW language, infer the classification from the language used
|
|
48
|
+
("must", "should", "can", "not in scope", "later", "v2", etc.)
|
|
49
|
+
|
|
50
|
+
**Acceptance Criteria:**
|
|
51
|
+
|
|
52
|
+
- Extract explicit criteria if present
|
|
53
|
+
- Infer from the issue description if not explicit
|
|
54
|
+
- Frame as testable conditions: "Given X, when Y, then Z"
|
|
55
|
+
|
|
56
|
+
**Constraints:**
|
|
57
|
+
|
|
58
|
+
- Technical constraints mentioned (API version, library choice, backwards compatibility)
|
|
59
|
+
- Performance constraints (response time, load)
|
|
60
|
+
- Security constraints (auth required, no PII, etc.)
|
|
61
|
+
|
|
62
|
+
**Affected Areas (via Scout):**
|
|
63
|
+
Spawn Scout to identify likely affected files based on the issue description.
|
|
64
|
+
Look for: mentioned file names, component names, API endpoints, database tables.
|
|
65
|
+
|
|
66
|
+
### Step 3: Classify Complexity and Risk
|
|
67
|
+
|
|
68
|
+
**Complexity:**
|
|
69
|
+
| Level | Signals |
|
|
70
|
+
|-------|---------|
|
|
71
|
+
| Simple | Single file change, clear solution, no external dependencies |
|
|
72
|
+
| Standard | Multiple files, some design decisions, 1-2 external dependencies |
|
|
73
|
+
| Complex | Architecture decisions, many files, new external dependencies, data migration |
|
|
74
|
+
|
|
75
|
+
**Risk:**
|
|
76
|
+
| Level | Signals |
|
|
77
|
+
|-------|---------|
|
|
78
|
+
| Low | Isolated change, well-tested area, no production data affected |
|
|
79
|
+
| Medium | Shared code, user-facing change, external API affected |
|
|
80
|
+
| High | Authentication, payments, data migration, breaking API changes |
|
|
81
|
+
|
|
82
|
+
### Step 4: Output Spec
|
|
83
|
+
|
|
84
|
+
Produce a spec document in this format:
|
|
85
|
+
|
|
86
|
+
```markdown
|
|
87
|
+
# Issue Spec: [Issue Title]
|
|
88
|
+
|
|
89
|
+
**Source:** #[N] / [link if available]
|
|
90
|
+
**Complexity:** [simple|standard|complex]
|
|
91
|
+
**Risk:** [low|medium|high]
|
|
92
|
+
**Estimated Phases:** [N]
|
|
93
|
+
|
|
94
|
+
## Problem Statement
|
|
95
|
+
|
|
96
|
+
[1-2 sentences: what problem does this issue solve?]
|
|
97
|
+
|
|
98
|
+
## Requirements
|
|
99
|
+
|
|
100
|
+
### Must Have
|
|
101
|
+
|
|
102
|
+
- [ ] [testable requirement]
|
|
103
|
+
- [ ] [testable requirement]
|
|
104
|
+
|
|
105
|
+
### Should Have
|
|
106
|
+
|
|
107
|
+
- [ ] [testable requirement]
|
|
108
|
+
|
|
109
|
+
### Won't Have (This Ticket)
|
|
110
|
+
|
|
111
|
+
- [explicitly out of scope]
|
|
112
|
+
|
|
113
|
+
## Acceptance Criteria
|
|
114
|
+
|
|
115
|
+
- Given [context], when [action], then [outcome]
|
|
116
|
+
- Given [context], when [action], then [outcome]
|
|
117
|
+
|
|
118
|
+
## Likely Affected Areas
|
|
119
|
+
|
|
120
|
+
- [file or module] — [reason]
|
|
121
|
+
- [file or module] — [reason]
|
|
122
|
+
|
|
123
|
+
## Constraints
|
|
124
|
+
|
|
125
|
+
- [technical constraint]
|
|
126
|
+
- [security constraint]
|
|
127
|
+
|
|
128
|
+
## Open Questions
|
|
129
|
+
|
|
130
|
+
- [unclear requirement that needs clarification before planning]
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
### Step 5: Save (if --save or user confirms)
|
|
134
|
+
|
|
135
|
+
Save to: `thoughts/shared/research/YYYY-MM-DD-issue-[N or slug].md`
|
|
136
|
+
|
|
137
|
+
After saving, rebuild the thoughts index:
|
|
138
|
+
|
|
139
|
+
```bash
|
|
140
|
+
node .merlin-core/tools/merlin-tools.js index
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
Then prompt:
|
|
144
|
+
|
|
145
|
+
```
|
|
146
|
+
Spec saved. Ready to create plan?
|
|
147
|
+
→ /plan thoughts/shared/research/[filename].md
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
## Integration
|
|
151
|
+
|
|
152
|
+
- Output feeds directly into [/plan](../planning/create-plan.md)
|
|
153
|
+
- Uses [elicitation](../../skills/general/elicitation/SKILL.md) — MoSCoW and Impact Mapping techniques
|
|
154
|
+
- Spawns Scout agent for affected area detection
|
|
155
|
+
- Saves to [thoughts/shared/research/](../../thoughts/shared/research/) for persistence
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Comprehensive codebase research through parallel sub-agents with knowledge persistence
|
|
3
|
+
model: opus
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Research Codebase
|
|
7
|
+
|
|
8
|
+
You are tasked with conducting comprehensive research across the codebase to answer user questions by spawning parallel sub-agents and synthesizing their findings.
|
|
9
|
+
|
|
10
|
+
## CRITICAL: YOUR ONLY JOB IS TO DOCUMENT AND EXPLAIN THE CODEBASE AS IT EXISTS TODAY
|
|
11
|
+
|
|
12
|
+
- DO NOT suggest improvements or changes unless the user explicitly asks
|
|
13
|
+
- DO NOT perform root cause analysis unless explicitly asked
|
|
14
|
+
- DO NOT propose future enhancements unless explicitly asked
|
|
15
|
+
- DO NOT critique the implementation or identify problems
|
|
16
|
+
- ONLY describe what exists, where it exists, how it works, and how components interact
|
|
17
|
+
- You are creating a technical map/documentation of the existing system
|
|
18
|
+
|
|
19
|
+
## Identity Gate — when researching a PERSON, COMPANY, or BRAND (external)
|
|
20
|
+
|
|
21
|
+
This command defaults to CODEBASE research. When the target is instead an **external person, company, or brand**, a wrong identity is the #1 failure mode — and it wastes the user's time AND paid API calls (Apify). Pass this gate BEFORE spawning research agents or scraping anything:
|
|
22
|
+
|
|
23
|
+
1. **Exact source?** Do you have the specific profile URL/handle/site for the target — not just a name? If you only have a name, **STOP and ask the user for the exact profile(s)**. Never name-search and assume.
|
|
24
|
+
2. **Homonym risk?** Common name, or a search shows multiple candidates? **Ask the user to confirm the exact handle/URL** before any deep research.
|
|
25
|
+
3. **Walled gardens** (Instagram, LinkedIn, X, Facebook, TikTok) cannot be read by WebFetch — use the **`apify-scrape` skill** (Iris has `Bash` + Apify). The FIRST scrape is the cheapest identity check: confirm the **bio link / current company / name** match the expected person BEFORE deeper passes.
|
|
26
|
+
4. **Tag everything** VERIFIED / INFERENCE / NAME-MATCH. A search hit on a matching name is NAME-MATCH, not confirmed identity. Run `development/checklists/source-verification-checklist.md` before finalizing.
|
|
27
|
+
|
|
28
|
+
> Why this gate exists: a non-technical Merlin user cannot tell a confident-but-wrong dossier from a correct one. Confirming the source costs one question; the wrong path costs API credits, time, and trust. (Lesson from a real identity-research incident — three homonyms were conflated because the provided profiles were never actually read.)
|
|
29
|
+
|
|
30
|
+
## Initial Response
|
|
31
|
+
|
|
32
|
+
When this command is invoked, respond with:
|
|
33
|
+
|
|
34
|
+
```
|
|
35
|
+
I'm ready to research the codebase. Please provide your research question or area of interest, and I'll analyze it thoroughly by exploring relevant components and connections.
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Then wait for the user's research query.
|
|
39
|
+
|
|
40
|
+
## Process Steps
|
|
41
|
+
|
|
42
|
+
### Step 1: Read Mentioned Files
|
|
43
|
+
|
|
44
|
+
- If the user mentions specific files, read them FULLY first
|
|
45
|
+
- Use the Read tool WITHOUT limit/offset parameters
|
|
46
|
+
- Read these files yourself in the main context before spawning sub-tasks
|
|
47
|
+
|
|
48
|
+
### Step 2: Decompose the Research Question
|
|
49
|
+
|
|
50
|
+
- Break down the query into composable research areas
|
|
51
|
+
- Identify specific components, patterns, or concepts to investigate
|
|
52
|
+
- Create a research plan using TodoWrite to track subtasks
|
|
53
|
+
- Consider which directories, files, or patterns are relevant
|
|
54
|
+
|
|
55
|
+
### Step 3: Spawn Parallel Research Agents
|
|
56
|
+
|
|
57
|
+
Use Merlin's specialized agents concurrently:
|
|
58
|
+
|
|
59
|
+
**For codebase research:**
|
|
60
|
+
|
|
61
|
+
- Use the **scout** agent to find WHERE files and components live
|
|
62
|
+
- Use the **researcher** agent to understand HOW specific code works
|
|
63
|
+
- Use the **scout** agent again to find examples of existing patterns
|
|
64
|
+
|
|
65
|
+
**For knowledge base:**
|
|
66
|
+
|
|
67
|
+
- Check `thoughts/shared/research/` for existing research on this topic
|
|
68
|
+
- Check `thoughts/shared/decisions/` for relevant ADRs
|
|
69
|
+
|
|
70
|
+
**For web research (only if explicitly requested):**
|
|
71
|
+
|
|
72
|
+
- Use the **web-researcher** agent (Iris) for external documentation
|
|
73
|
+
- For a PERSON/COMPANY/BRAND target: pass the **Identity Gate** above first; scrape walled-garden profiles via the **`apify-scrape`** skill, not WebFetch
|
|
74
|
+
- Tag findings VERIFIED / INFERENCE / NAME-MATCH; include links + retrieval dates in final report
|
|
75
|
+
|
|
76
|
+
**Key principles:**
|
|
77
|
+
|
|
78
|
+
- Start with Scout to find what exists
|
|
79
|
+
- Then use Researcher on the most promising findings
|
|
80
|
+
- Run multiple agents in parallel for different search areas
|
|
81
|
+
- Agents are documentarians, not critics
|
|
82
|
+
|
|
83
|
+
### Step 4: Synthesize Findings
|
|
84
|
+
|
|
85
|
+
- Wait for ALL sub-agents to complete
|
|
86
|
+
- Compile results with codebase findings as primary source of truth
|
|
87
|
+
- Connect findings across different components
|
|
88
|
+
- Include specific file paths and line numbers
|
|
89
|
+
|
|
90
|
+
### Step 4.5: Reflect Before Documenting
|
|
91
|
+
|
|
92
|
+
Before writing the research document, pause for a **STANDARD reflection**:
|
|
93
|
+
|
|
94
|
+
> **GOAL CHECK:** Am I answering the original research question? Has the scope drifted?
|
|
95
|
+
> **EVIDENCE CHECK:** Are my findings complete? Am I missing a critical area? Do any findings contradict each other?
|
|
96
|
+
> **UNCERTAINTY CHECK:** What assumptions am I making about how components connect? What would I need to verify?
|
|
97
|
+
> **NEXT STEP CHECK:** Should I document now, or do I need one more research pass on a gap I identified?
|
|
98
|
+
|
|
99
|
+
If the reflection reveals gaps, spawn additional research agents before proceeding to Step 5.
|
|
100
|
+
|
|
101
|
+
### Step 5: Output Research Document
|
|
102
|
+
|
|
103
|
+
Save findings to `thoughts/shared/research/` using this format:
|
|
104
|
+
|
|
105
|
+
```markdown
|
|
106
|
+
---
|
|
107
|
+
date: [ISO 8601]
|
|
108
|
+
researcher: Sage
|
|
109
|
+
topic: "[Research Question]"
|
|
110
|
+
tags: [relevant, tags]
|
|
111
|
+
status: complete
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
# Research: [Title]
|
|
115
|
+
|
|
116
|
+
## Research Question
|
|
117
|
+
|
|
118
|
+
[Original query]
|
|
119
|
+
|
|
120
|
+
## Summary
|
|
121
|
+
|
|
122
|
+
[Key findings in 3-5 bullet points]
|
|
123
|
+
|
|
124
|
+
## Detailed Findings
|
|
125
|
+
|
|
126
|
+
### [Component/Area 1]
|
|
127
|
+
|
|
128
|
+
[Findings with file:line references]
|
|
129
|
+
|
|
130
|
+
### [Component/Area 2]
|
|
131
|
+
|
|
132
|
+
[Findings with file:line references]
|
|
133
|
+
|
|
134
|
+
## Architecture Map
|
|
135
|
+
|
|
136
|
+
[How components connect]
|
|
137
|
+
|
|
138
|
+
## Key Files
|
|
139
|
+
|
|
140
|
+
| File | Purpose |
|
|
141
|
+
| --------- | ----------- |
|
|
142
|
+
| path:line | description |
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
### Step 6: Rebuild Thoughts Index
|
|
146
|
+
|
|
147
|
+
After saving, rebuild the index so the research is immediately discoverable:
|
|
148
|
+
|
|
149
|
+
```bash
|
|
150
|
+
node .merlin-core/tools/merlin-tools.js index
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
### Step 7: Present to User
|
|
154
|
+
|
|
155
|
+
- Show a concise summary with the most important findings
|
|
156
|
+
- Reference the saved document for full details
|
|
157
|
+
- Ask if any areas need deeper exploration
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Execute adversarial review to actively find problems in implementation before approval
|
|
3
|
+
model: opus
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Adversarial Review
|
|
7
|
+
|
|
8
|
+
Execute an adversarial review of the current implementation. Your goal is to **find problems**, not verify correctness. Activate your inner hacker, skeptic, and critic.
|
|
9
|
+
|
|
10
|
+
## Usage
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
/adversarial-review [plan-file-path]
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
If no path provided, locate the most recent plan in `thoughts/shared/plans/`.
|
|
17
|
+
|
|
18
|
+
## Process Steps
|
|
19
|
+
|
|
20
|
+
### Step 1: Load Context
|
|
21
|
+
|
|
22
|
+
1. Read the plan file fully — understand what SHOULD have been built
|
|
23
|
+
2. Run `git diff main...HEAD --stat` to see what WAS changed
|
|
24
|
+
3. Run `git diff main...HEAD` to see the actual code changes
|
|
25
|
+
|
|
26
|
+
### Step 2: Git-Reality Cross-Reference
|
|
27
|
+
|
|
28
|
+
For each item in the plan:
|
|
29
|
+
|
|
30
|
+
- Find the corresponding code change in the git diff
|
|
31
|
+
- If no corresponding change: flag as **MISSING IMPLEMENTATION**
|
|
32
|
+
|
|
33
|
+
For each file in the git diff:
|
|
34
|
+
|
|
35
|
+
- Find the corresponding plan item
|
|
36
|
+
- If no plan item: flag as **ORPHAN CHANGE (Article IV violation)**
|
|
37
|
+
|
|
38
|
+
Report:
|
|
39
|
+
|
|
40
|
+
```
|
|
41
|
+
Plan items: [N] | Code changes: [M] | Orphans: [X] | Missing: [Y]
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### Step 3: Deep File Review
|
|
45
|
+
|
|
46
|
+
For each changed file:
|
|
47
|
+
|
|
48
|
+
1. Read the FULL file (not just the diff)
|
|
49
|
+
2. Read the diff to understand what changed
|
|
50
|
+
3. Execute all 7 axes of the attack surface analysis:
|
|
51
|
+
- **Security:** injection, auth, data exposure, secrets
|
|
52
|
+
- **Logic:** off-by-one, race conditions, null checks, error handling
|
|
53
|
+
- **Edge Cases:** empty inputs, max values, unicode, timeouts
|
|
54
|
+
- **Spec Deviation:** does the code match the plan's intent?
|
|
55
|
+
- **Untested Paths:** code without test coverage
|
|
56
|
+
- **Performance:** N+1, unbounded loops, memory leaks
|
|
57
|
+
- **Scale:** bottlenecks at 10x/100x, unbounded growth, pool exhaustion
|
|
58
|
+
|
|
59
|
+
### Step 4: Run Adversarial Checklist
|
|
60
|
+
|
|
61
|
+
Use the adversarial review checklist from `.merlin-core/development/checklists/adversarial-review-checklist.md` as a systematic guide.
|
|
62
|
+
|
|
63
|
+
### Step 5: DEEP Reflection
|
|
64
|
+
|
|
65
|
+
Before issuing your verdict, perform a **DEEP reflection**:
|
|
66
|
+
|
|
67
|
+
> **GOAL CHECK:** Am I finding real problems, or nitpicking? Have I been thorough across all 7 axes?
|
|
68
|
+
> **EVIDENCE CHECK:** Are my findings backed by specific code references? Could I explain each finding to the developer?
|
|
69
|
+
> **UNCERTAINTY CHECK:** Am I confident in the severity ratings? Could any HIGH be MEDIUM, or vice versa?
|
|
70
|
+
> **COUNTER-ARGUMENT:** What would the developer say to defend each finding? Is the defense valid?
|
|
71
|
+
|
|
72
|
+
### Step 6: Present Findings
|
|
73
|
+
|
|
74
|
+
```markdown
|
|
75
|
+
## Adversarial Review: [Feature/Module]
|
|
76
|
+
|
|
77
|
+
Date: [date]
|
|
78
|
+
Reviewer: Quinn (Adversarial Mode)
|
|
79
|
+
Plan: [plan reference]
|
|
80
|
+
Verdict: [CLEAR | CONDITIONAL | BLOCKED]
|
|
81
|
+
|
|
82
|
+
### Git-Reality Cross-Reference
|
|
83
|
+
|
|
84
|
+
- Plan items: [N] | Code changes: [M] | Orphans: [X] | Missing: [Y]
|
|
85
|
+
|
|
86
|
+
### Findings
|
|
87
|
+
|
|
88
|
+
1. [CRITICAL] [Axis] Description — file:line
|
|
89
|
+
Evidence: [specific code reference]
|
|
90
|
+
Fix: [suggested remediation]
|
|
91
|
+
|
|
92
|
+
2. [HIGH] [Axis] Description — file:line
|
|
93
|
+
Evidence: [specific code reference]
|
|
94
|
+
Fix: [suggested remediation]
|
|
95
|
+
|
|
96
|
+
### Summary
|
|
97
|
+
|
|
98
|
+
[1-2 sentence overall assessment]
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
### Step 7: Offer to Fix
|
|
102
|
+
|
|
103
|
+
If verdict is CONDITIONAL:
|
|
104
|
+
|
|
105
|
+
- Offer to fix the high-severity issues immediately
|
|
106
|
+
- After fixing, re-run the adversarial review on the fixed code
|
|
107
|
+
|
|
108
|
+
## Constitution Compliance
|
|
109
|
+
|
|
110
|
+
- **Article IV (No Invention):** Git-reality cross-reference enforces traceability
|
|
111
|
+
- **Article V (Quality First):** Adversarial review is a quality gate
|
|
112
|
+
- **Article VII (Human Gates):** Final verdict requires human acknowledgment
|