@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,91 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Unified quality gate — runs lint, typecheck, test, build, and security scan in one command
|
|
3
|
+
model: sonnet
|
|
4
|
+
version: "3.0.0"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /check — Unified Quality Gate
|
|
8
|
+
|
|
9
|
+
Runs all quality gates in a single command. Replaces remembering 4-5 separate commands.
|
|
10
|
+
Stops on first failure by default (fail-fast). Reports pass/fail per gate with timing.
|
|
11
|
+
|
|
12
|
+
## Usage
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
/check → Run all gates on changed files (default)
|
|
16
|
+
/check --full → Run all gates on the entire project
|
|
17
|
+
/check --fix → Auto-fix lint/format issues, then run all gates
|
|
18
|
+
/check --security → Security scan only (Semgrep + dependency audit)
|
|
19
|
+
/check --fast → Skip build and security, run lint + typecheck + test only
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Protocol
|
|
23
|
+
|
|
24
|
+
### Step 1: Detect Stack
|
|
25
|
+
|
|
26
|
+
Inspect project root for:
|
|
27
|
+
|
|
28
|
+
- `package.json` → Node/JavaScript/TypeScript
|
|
29
|
+
- `pyproject.toml` or `setup.py` → Python
|
|
30
|
+
- `go.mod` → Go
|
|
31
|
+
- `Cargo.toml` → Rust
|
|
32
|
+
- Multiple → run all applicable stacks
|
|
33
|
+
|
|
34
|
+
### Step 2: Build Gate Sequence
|
|
35
|
+
|
|
36
|
+
Run gates in this order (stop on first failure unless `--full`):
|
|
37
|
+
|
|
38
|
+
| # | Gate | Node/TS | Python | Go | Rust |
|
|
39
|
+
| --- | ------------- | ------------------------------------- | ----------------- | ---------------------- | -------------- |
|
|
40
|
+
| 1 | Lint / Format | `npm run lint` | `ruff check .` | `golangci-lint run` | `cargo clippy` |
|
|
41
|
+
| 2 | Type Check | `npm run typecheck` or `tsc --noEmit` | `mypy .` | _(built into compile)_ | `cargo check` |
|
|
42
|
+
| 3 | Tests | `npm test` | `pytest` | `go test ./...` | `cargo test` |
|
|
43
|
+
| 4 | Build | `npm run build` | `python -m build` | `go build ./...` | `cargo build` |
|
|
44
|
+
| 5 | Security | `semgrep --config=auto .` | `bandit -r .` | `gosec ./...` | `cargo audit` |
|
|
45
|
+
|
|
46
|
+
> If a package.json script doesn't exist (e.g. no `typecheck` script), skip that gate and note it.
|
|
47
|
+
> Check `package.json` scripts before running — use the actual configured script name.
|
|
48
|
+
|
|
49
|
+
### Step 3: Report Results
|
|
50
|
+
|
|
51
|
+
Output a summary table after all gates (or after failure):
|
|
52
|
+
|
|
53
|
+
```
|
|
54
|
+
/check Results — [timestamp]
|
|
55
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
56
|
+
Gate Status Duration Notes
|
|
57
|
+
──────────────────────────────────────
|
|
58
|
+
Lint ✓ PASS 1.2s
|
|
59
|
+
Type Check ✓ PASS 3.4s
|
|
60
|
+
Tests ✗ FAIL 8.1s 3 failures (see below)
|
|
61
|
+
Build ─ SKIP (stopped on test failure)
|
|
62
|
+
Security ─ SKIP (stopped on test failure)
|
|
63
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
64
|
+
Verdict: FAIL — fix Tests to proceed
|
|
65
|
+
|
|
66
|
+
[Failure details here]
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### Step 4: On Failure
|
|
70
|
+
|
|
71
|
+
1. Show the full failure output (truncated to last 50 lines if very long)
|
|
72
|
+
2. Identify the root cause (missing import, type error, assertion failure, etc.)
|
|
73
|
+
3. Ask: "Shall I fix this?" — do NOT auto-fix unless `--fix` flag was used
|
|
74
|
+
4. After fix: re-run only the failed gate, not the full sequence
|
|
75
|
+
|
|
76
|
+
### --fix Mode
|
|
77
|
+
|
|
78
|
+
Only auto-fixes deterministic, safe issues:
|
|
79
|
+
|
|
80
|
+
- `eslint --fix` / `prettier --write`
|
|
81
|
+
- `ruff check --fix .`
|
|
82
|
+
- `gofmt -w .`
|
|
83
|
+
- `rustfmt`
|
|
84
|
+
|
|
85
|
+
Never auto-fixes: test failures, type errors, build errors, security findings.
|
|
86
|
+
|
|
87
|
+
## Integration
|
|
88
|
+
|
|
89
|
+
- Uses [static-analysis](../../skills/general/static-analysis/SKILL.md) for the security gate
|
|
90
|
+
- Reports feed into [quality-gates](../../skills/general/guardrails/SKILL.md) Layer 1 (pre-commit)
|
|
91
|
+
- On FAIL verdict, suggest [/debug](./debug.md) for deeper investigation
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Systematic debugging — find root cause before attempting fixes
|
|
3
|
+
model: opus
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Debug
|
|
7
|
+
|
|
8
|
+
Investigate issues using a 4-phase systematic methodology. Random fixes waste time and create new bugs.
|
|
9
|
+
|
|
10
|
+
**Iron Law:** NO FIXES WITHOUT ROOT CAUSE INVESTIGATION FIRST.
|
|
11
|
+
|
|
12
|
+
## Phase 1: Root Cause Investigation
|
|
13
|
+
|
|
14
|
+
Before attempting ANY fix:
|
|
15
|
+
|
|
16
|
+
1. **Read error messages carefully** — Don't skip past errors. Read stack traces completely. Note line numbers, file paths, error codes. They often contain the exact solution.
|
|
17
|
+
|
|
18
|
+
2. **Reproduce consistently** — Can you trigger it reliably? What are the exact steps? If not reproducible, gather more data — don't guess.
|
|
19
|
+
|
|
20
|
+
3. **Check recent changes** — What changed that could cause this?
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
git log --oneline -10
|
|
24
|
+
git diff HEAD~3
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
4. **Gather evidence in multi-component systems** — When the system has multiple layers (API → service → database, CI → build → deploy):
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
# Log what enters and exits EACH component boundary
|
|
31
|
+
# Layer 1: entry point
|
|
32
|
+
echo "=== Input received: ==="
|
|
33
|
+
echo "PARAM: ${PARAM:+SET}${PARAM:-UNSET}"
|
|
34
|
+
|
|
35
|
+
# Layer 2: processing
|
|
36
|
+
echo "=== State after processing: ==="
|
|
37
|
+
|
|
38
|
+
# Layer 3: output
|
|
39
|
+
echo "=== Result: ==="
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Run once to gather evidence showing WHERE it breaks. Then investigate that specific component.
|
|
43
|
+
|
|
44
|
+
5. **Trace data flow backward** — Where does the bad value originate? What called this with the bad value? Keep tracing up the call stack until you find the source. Fix at source, not at symptom.
|
|
45
|
+
|
|
46
|
+
## Phase 2: Pattern Analysis
|
|
47
|
+
|
|
48
|
+
Find the pattern before fixing:
|
|
49
|
+
|
|
50
|
+
1. **Find working examples** — Locate similar working code in the same codebase
|
|
51
|
+
2. **Compare against references** — If implementing a pattern, read the reference implementation COMPLETELY (don't skim)
|
|
52
|
+
3. **Identify differences** — What's different between working and broken? List every difference, however small
|
|
53
|
+
4. **Understand dependencies** — What settings, config, environment does this need?
|
|
54
|
+
|
|
55
|
+
## Phase 3: Hypothesis and Testing
|
|
56
|
+
|
|
57
|
+
Scientific method — one variable at a time:
|
|
58
|
+
|
|
59
|
+
1. **Form single hypothesis** — State clearly: "I think X is the root cause because Y"
|
|
60
|
+
2. **Test minimally** — Make the SMALLEST possible change to test the hypothesis
|
|
61
|
+
3. **Verify before continuing** — Did it work? Yes → Phase 4. No → form NEW hypothesis. DON'T add more fixes on top.
|
|
62
|
+
|
|
63
|
+
## Phase 4: Implementation
|
|
64
|
+
|
|
65
|
+
1. **Spawn agents for evidence gathering:**
|
|
66
|
+
- Use **scout** to find related test files and error handlers
|
|
67
|
+
- Use **researcher** to analyze the code path
|
|
68
|
+
|
|
69
|
+
2. **Create failing test case** — Simplest possible reproduction. Automated test if possible.
|
|
70
|
+
|
|
71
|
+
3. **Implement single fix** — Address the root cause. ONE change at a time. No "while I'm here" improvements.
|
|
72
|
+
|
|
73
|
+
4. **Verify fix** — Test passes? No other tests broken? Issue actually resolved?
|
|
74
|
+
|
|
75
|
+
5. **If fix doesn't work:**
|
|
76
|
+
- Count: How many fixes have you tried?
|
|
77
|
+
- If < 3: Return to Phase 1, re-analyze with new information
|
|
78
|
+
- **If ≥ 3: STOP and question the architecture**
|
|
79
|
+
|
|
80
|
+
## The 3-Fix Escalation Rule
|
|
81
|
+
|
|
82
|
+
When 3+ fixes have failed, this is NOT a bug — it's an architectural problem.
|
|
83
|
+
|
|
84
|
+
**Signals:**
|
|
85
|
+
|
|
86
|
+
- Each fix reveals new shared state or coupling
|
|
87
|
+
- Fixes require "massive refactoring" to implement
|
|
88
|
+
- Each fix creates new symptoms elsewhere
|
|
89
|
+
|
|
90
|
+
**Action:** STOP fixing. Present to the user:
|
|
91
|
+
|
|
92
|
+
```
|
|
93
|
+
Debug Escalation: [Brief description]
|
|
94
|
+
|
|
95
|
+
Attempted Fixes:
|
|
96
|
+
1. [Fix 1] → Result: [what happened]
|
|
97
|
+
2. [Fix 2] → Result: [what happened]
|
|
98
|
+
3. [Fix 3] → Result: [what happened]
|
|
99
|
+
|
|
100
|
+
Pattern: [What the failures reveal about the architecture]
|
|
101
|
+
|
|
102
|
+
Recommendation: [Refactor X / Redesign Y / Discuss approach with team]
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
## Red Flags — STOP and Return to Phase 1
|
|
106
|
+
|
|
107
|
+
If you catch yourself thinking any of these, you're guessing instead of investigating:
|
|
108
|
+
|
|
109
|
+
| Thought | Reality |
|
|
110
|
+
| ---------------------------------------------- | ------------------------------------------------------ |
|
|
111
|
+
| "Quick fix for now, investigate later" | Quick fixes become permanent. Investigate now. |
|
|
112
|
+
| "Just try changing X and see" | That's guessing, not debugging. Gather evidence first. |
|
|
113
|
+
| "I'll add multiple changes and run tests" | Can't isolate what worked. One change at a time. |
|
|
114
|
+
| "It's probably X, let me fix that" | "Probably" means you don't know. Verify first. |
|
|
115
|
+
| "I don't fully understand but this might work" | Stop. Understand before changing. |
|
|
116
|
+
|
|
117
|
+
## Output Format
|
|
118
|
+
|
|
119
|
+
```
|
|
120
|
+
Debug Report: [Brief description]
|
|
121
|
+
|
|
122
|
+
Root Cause: [What's actually wrong — traced to source]
|
|
123
|
+
Location: [file:line]
|
|
124
|
+
Evidence: [What confirms this is the issue]
|
|
125
|
+
Phase reached: [1-4]
|
|
126
|
+
|
|
127
|
+
Fix Applied:
|
|
128
|
+
- [Specific change made]
|
|
129
|
+
|
|
130
|
+
Verification:
|
|
131
|
+
- [Test that proves the fix works]
|
|
132
|
+
- [Other tests still passing]
|
|
133
|
+
|
|
134
|
+
Risk Assessment: [LOW/MEDIUM/HIGH]
|
|
135
|
+
```
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Collaborative code discussion session informed by project learnings
|
|
3
|
+
model: opus
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Doubts
|
|
7
|
+
|
|
8
|
+
Initiate a collaborative code discussion session between the AI and the user.
|
|
9
|
+
Unlike `/debug` (which diagnoses issues) or `/adversarial-review` (which attacks
|
|
10
|
+
code), `/doubts` is a **two-way conversation** where either party raises questions
|
|
11
|
+
about the codebase, and answers are informed by accumulated project learnings.
|
|
12
|
+
|
|
13
|
+
This command is **Discussion-First by design** (Article XIII). No code is written
|
|
14
|
+
or modified during a doubts session — only reading, researching, and discussing.
|
|
15
|
+
|
|
16
|
+
## Usage
|
|
17
|
+
|
|
18
|
+
```
|
|
19
|
+
/doubts [area] — Open discussion about a code area or domain
|
|
20
|
+
/doubts [file path] — Discuss a specific file with learnings context
|
|
21
|
+
/doubts — AI asks what area the user wants to explore
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## When to Use
|
|
25
|
+
|
|
26
|
+
- When the user says "I have a question about..." or "I'm not sure how..."
|
|
27
|
+
- When the user wants to understand how a part of the codebase works
|
|
28
|
+
- When onboarding to unfamiliar code and wanting to discuss it collaboratively
|
|
29
|
+
- When there's a suspicion that code may contradict known learnings or patterns
|
|
30
|
+
- When the user wants to review code together without committing to changes
|
|
31
|
+
|
|
32
|
+
## Process
|
|
33
|
+
|
|
34
|
+
### Step 1: Determine Scope
|
|
35
|
+
|
|
36
|
+
1. **If file path provided:** Use that file as the target
|
|
37
|
+
2. **If area/domain provided:** Use it as a search scope
|
|
38
|
+
3. **If nothing provided:** Ask the user:
|
|
39
|
+
|
|
40
|
+
```markdown
|
|
41
|
+
What area of the codebase would you like to discuss?
|
|
42
|
+
|
|
43
|
+
You can specify:
|
|
44
|
+
|
|
45
|
+
- A file path (e.g., `src/routes/api.ts`)
|
|
46
|
+
- A domain (e.g., "authentication", "database", "API")
|
|
47
|
+
- A concept (e.g., "how errors are handled", "the build pipeline")
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### Step 2: Load Learnings Context
|
|
51
|
+
|
|
52
|
+
1. Search `thoughts/shared/learnings/` for entries matching the scope:
|
|
53
|
+
- Match by `applies_to` field (file paths, module names)
|
|
54
|
+
- Match by `domain` field
|
|
55
|
+
- Match by `tags` field
|
|
56
|
+
- Match by keyword in title or content
|
|
57
|
+
2. Exclude any learnings where `supersedes` points to them from a newer entry
|
|
58
|
+
3. Sort by relevance (keyword match score), then by date (newest first)
|
|
59
|
+
4. Cap at 10 learnings to keep context focused
|
|
60
|
+
|
|
61
|
+
### Step 3: Read the Code
|
|
62
|
+
|
|
63
|
+
1. Read the target file(s) in the specified scope
|
|
64
|
+
2. If scope is broad (a directory or domain), identify the 3-5 most relevant
|
|
65
|
+
files using Glob/Grep and read those
|
|
66
|
+
3. Note: read code thoroughly — this is a discussion, not a skim
|
|
67
|
+
|
|
68
|
+
### Step 4: Cross-Reference
|
|
69
|
+
|
|
70
|
+
Analyze where learnings apply to the current code:
|
|
71
|
+
|
|
72
|
+
- **Known gotchas** in this area? Flag them with the code location
|
|
73
|
+
- **Established patterns/conventions** that the code follows (or breaks)?
|
|
74
|
+
- **Previous constraints or workarounds** that explain unusual code?
|
|
75
|
+
- **Superseded learnings** that might indicate outdated knowledge?
|
|
76
|
+
- **Gaps** — areas with no learnings that might benefit from discussion?
|
|
77
|
+
|
|
78
|
+
### Step 5: Present Initial Findings
|
|
79
|
+
|
|
80
|
+
```markdown
|
|
81
|
+
## 🤔 Doubts Session: [area/file]
|
|
82
|
+
|
|
83
|
+
### What I See
|
|
84
|
+
|
|
85
|
+
[Brief description of the code area — its purpose, structure, key patterns]
|
|
86
|
+
|
|
87
|
+
### Relevant Learnings
|
|
88
|
+
|
|
89
|
+
| # | Learning | Category | Confidence | Applies To |
|
|
90
|
+
| --- | -------- | -------- | ---------- | ---------- |
|
|
91
|
+
| 1 | [title] | [cat] | [conf] | [path] |
|
|
92
|
+
|
|
93
|
+
[If a learning directly applies to visible code, quote the relevant code
|
|
94
|
+
and explain the connection]
|
|
95
|
+
|
|
96
|
+
### Questions I Have
|
|
97
|
+
|
|
98
|
+
1. [AI's genuine question about the code — informed by learnings gaps]
|
|
99
|
+
2. [Potential inconsistency between code and a known learning]
|
|
100
|
+
3. [Area where behavior is unclear and no learning exists]
|
|
101
|
+
|
|
102
|
+
### Your Turn
|
|
103
|
+
|
|
104
|
+
Do you have doubts about any specific part of this code?
|
|
105
|
+
Are there areas where behavior is unclear or surprising to you?
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### Step 6: Discussion Loop
|
|
109
|
+
|
|
110
|
+
Maintain a back-and-forth conversation:
|
|
111
|
+
|
|
112
|
+
**When the user asks a question:**
|
|
113
|
+
|
|
114
|
+
1. Research the code to find the answer (read files, trace logic, check tests)
|
|
115
|
+
2. Check if any existing learnings address this question
|
|
116
|
+
3. Present the answer with evidence (code references, learning citations)
|
|
117
|
+
4. If unsure, say so honestly (Article X — Professional Objectivity)
|
|
118
|
+
|
|
119
|
+
**When the AI identifies something worth discussing:**
|
|
120
|
+
|
|
121
|
+
1. Present the observation with code evidence
|
|
122
|
+
2. Reference any relevant learning or its absence
|
|
123
|
+
3. Ask the user for their perspective or clarification
|
|
124
|
+
|
|
125
|
+
**Conversation discipline:**
|
|
126
|
+
|
|
127
|
+
- Stay focused on the declared scope — don't drift to unrelated areas
|
|
128
|
+
- Reference learnings by their citation ID when applicable
|
|
129
|
+
- If a new insight emerges, note it for potential capture at wrap-up
|
|
130
|
+
- After 3-4 exchanges, offer to wrap up or continue
|
|
131
|
+
|
|
132
|
+
### Step 7: Wrap Up
|
|
133
|
+
|
|
134
|
+
When the user is satisfied or the discussion reaches natural conclusion:
|
|
135
|
+
|
|
136
|
+
```markdown
|
|
137
|
+
## 📋 Doubts Session Summary
|
|
138
|
+
|
|
139
|
+
### Clarified
|
|
140
|
+
|
|
141
|
+
- [What was understood or resolved during the discussion]
|
|
142
|
+
|
|
143
|
+
### New Learnings to Capture
|
|
144
|
+
|
|
145
|
+
- [Any new insights discovered — for each, offer to run /capture-learning]
|
|
146
|
+
|
|
147
|
+
### Updated Learnings
|
|
148
|
+
|
|
149
|
+
- [Any existing learnings that need confidence upgrade or correction]
|
|
150
|
+
|
|
151
|
+
### Remaining Doubts
|
|
152
|
+
|
|
153
|
+
- [Anything still unclear — offer to create a reminder or research task]
|
|
154
|
+
|
|
155
|
+
### Suggested Next Steps
|
|
156
|
+
|
|
157
|
+
- [Concrete actions based on what was discussed]
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
For each new learning identified, ask: "Want me to `/capture-learning` for this?"
|
|
161
|
+
For remaining doubts, ask: "Want me to `/create-reminder` to revisit this?"
|
|
162
|
+
|
|
163
|
+
## Rules
|
|
164
|
+
|
|
165
|
+
- **No implementation** — never write, edit, or modify code during a doubts session
|
|
166
|
+
- **Two-way conversation** — actively ask questions, don't just answer
|
|
167
|
+
- **Evidence-based** — cite code lines and learning IDs, don't speculate
|
|
168
|
+
- **Honest uncertainty** — if you don't know, say so (Article X)
|
|
169
|
+
- **Learning-aware** — always check learnings before answering from scratch
|
|
170
|
+
- **Scope discipline** — stay within the declared area unless user redirects
|
|
171
|
+
|
|
172
|
+
## Constitution Compliance
|
|
173
|
+
|
|
174
|
+
- **Article XIII (Discussion-First):** This IS the discussion command — it embodies the principle
|
|
175
|
+
- **Article VIII (Craftsmanship):** Leverages accumulated knowledge instead of re-discovering
|
|
176
|
+
- **Article X (Professional Objectivity):** AI raises genuine questions, admits uncertainty
|
|
177
|
+
- **Article III (Spec-Driven):** Discussions can feed into research → plan → implement pipeline
|
|
178
|
+
- **Article IV (No Invention):** Findings are grounded in code evidence and existing learnings
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Run a 6-axis engineering audit evaluating architecture, security, performance, resiliency, quality, and scale
|
|
3
|
+
model: opus
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Engineering Audit
|
|
7
|
+
|
|
8
|
+
Run a holistic engineering audit across 6 dimensions. Not style. Not lint. Structure, security, resilience, and quality.
|
|
9
|
+
|
|
10
|
+
## Usage
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
/engineering-audit [file-or-directory-path]
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
If no path provided, audit the most recently changed files via `git diff --name-only`.
|
|
17
|
+
|
|
18
|
+
## Process Steps
|
|
19
|
+
|
|
20
|
+
### Step 1: Identify Scope
|
|
21
|
+
|
|
22
|
+
1. If a path was provided, use it as the audit scope
|
|
23
|
+
2. If no path, run `git diff --name-only` and `git diff --cached --name-only` to identify changed files
|
|
24
|
+
3. Read all files in scope fully — understand the current state
|
|
25
|
+
|
|
26
|
+
### Step 2: Load Skill Context
|
|
27
|
+
|
|
28
|
+
Load the engineering-audit skill from `.merlin-core/skills/general/engineering-audit/SKILL.md` for the evaluation rubric.
|
|
29
|
+
|
|
30
|
+
For deep dives, cross-reference:
|
|
31
|
+
|
|
32
|
+
- `static-analysis` skill for security tooling
|
|
33
|
+
- `web-quality` skill for frontend performance standards
|
|
34
|
+
- `code-style` skill for structural rules and resiliency patterns
|
|
35
|
+
|
|
36
|
+
### Step 3: Evaluate All 6 Axes
|
|
37
|
+
|
|
38
|
+
For each file in scope, evaluate across all dimensions:
|
|
39
|
+
|
|
40
|
+
1. **Architecture** — Separation of concerns, module boundaries, data flow, circular dependencies
|
|
41
|
+
2. **Security** — Input validation, auth, secrets, injection, trust boundaries, CVEs
|
|
42
|
+
3. **Performance** — Frontend (re-renders, bundle, lazy loading, Core Web Vitals) + Backend (N+1, indexes, blocking, caching, pooling, pagination)
|
|
43
|
+
4. **Resiliency** — Error handling context, retry logic, graceful degradation, race conditions, transactions, timeouts
|
|
44
|
+
5. **Quality** — Tests, naming, abstractions, dead code, duplication, function/file length
|
|
45
|
+
6. **Scale** — Bottlenecks at 10x/100x, horizontal scalability, query efficiency, statelessness, caching strategy
|
|
46
|
+
|
|
47
|
+
### Step 4: STANDARD Reflection
|
|
48
|
+
|
|
49
|
+
Before issuing your verdict, reflect:
|
|
50
|
+
|
|
51
|
+
> **GOAL CHECK:** Did I evaluate ALL 6 axes, or did I skip the harder ones?
|
|
52
|
+
> **EVIDENCE CHECK:** Does every finding include a specific file/area reference and a concrete fix?
|
|
53
|
+
> **SEVERITY CHECK:** Are my severity ratings calibrated? CRITICAL = security/crash/data-loss, not inconvenience.
|
|
54
|
+
> **ANTI-NITPICK:** Am I flagging style preferences? If so, remove them. This is about structure, not tabs vs spaces.
|
|
55
|
+
|
|
56
|
+
### Step 5: Present Findings
|
|
57
|
+
|
|
58
|
+
For each finding:
|
|
59
|
+
|
|
60
|
+
```
|
|
61
|
+
[CRITICAL/HIGH/MEDIUM/LOW] Title
|
|
62
|
+
Where: file or area
|
|
63
|
+
Problem: what's wrong
|
|
64
|
+
Impact: what happens if not fixed
|
|
65
|
+
Fix: specific change needed
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### Step 6: Deliver Verdict
|
|
69
|
+
|
|
70
|
+
Summarize with total findings by severity, then one of:
|
|
71
|
+
|
|
72
|
+
- **SHIPPA** — World-class. Ship it.
|
|
73
|
+
- **CORRIGE PRIMEIRO** — Fix the findings, then ship.
|
|
74
|
+
- **REPENSA** — Fundamental issues. Rethink the approach before proceeding.
|
|
75
|
+
|
|
76
|
+
### Step 7: Offer to Fix
|
|
77
|
+
|
|
78
|
+
If verdict is CORRIGE PRIMEIRO:
|
|
79
|
+
|
|
80
|
+
- Offer to fix HIGH-severity issues immediately
|
|
81
|
+
- After fixing, re-run the audit on the fixed code
|
|
82
|
+
|
|
83
|
+
## Constitution Compliance
|
|
84
|
+
|
|
85
|
+
- **Article V (Quality First):** Engineering audit is a quality gate
|
|
86
|
+
- **Article X (Professional Objectivity):** Flag technically unsound patterns without sugarcoating
|
|
87
|
+
- **Article VII (Human Gates):** Final verdict requires human acknowledgment
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Set up and perform local code review before creating PR
|
|
3
|
+
model: opus
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Local Review
|
|
7
|
+
|
|
8
|
+
Review changes locally before creating a pull request. Ensures quality gate Layer 1 compliance.
|
|
9
|
+
|
|
10
|
+
## Process
|
|
11
|
+
|
|
12
|
+
1. **Assess scope:**
|
|
13
|
+
- Run `git diff main...HEAD --stat` to see all changed files
|
|
14
|
+
- Count the number of files and lines changed
|
|
15
|
+
|
|
16
|
+
2. **Run automated checks (Quality Layer 1):**
|
|
17
|
+
- `npm run lint` (or project-equivalent)
|
|
18
|
+
- `npm test` (or project-equivalent)
|
|
19
|
+
- `npm run typecheck` (if TypeScript)
|
|
20
|
+
- `npm run build` (if applicable)
|
|
21
|
+
|
|
22
|
+
3. **Review each file:**
|
|
23
|
+
- For each changed file, read the diff
|
|
24
|
+
- Check for: security issues, logic errors, missing tests, style violations
|
|
25
|
+
- Note any Constitution violations (especially Principle IV: No Invention)
|
|
26
|
+
|
|
27
|
+
4. **Present review summary:**
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
Local Review: [branch name]
|
|
31
|
+
|
|
32
|
+
Files changed: [count]
|
|
33
|
+
Lines: +[added] -[removed]
|
|
34
|
+
|
|
35
|
+
Automated Checks:
|
|
36
|
+
- [ ] Lint: [pass/fail]
|
|
37
|
+
- [ ] Tests: [pass/fail]
|
|
38
|
+
- [ ] Typecheck: [pass/fail]
|
|
39
|
+
- [ ] Build: [pass/fail]
|
|
40
|
+
|
|
41
|
+
Code Review:
|
|
42
|
+
- [Finding 1 with file:line]
|
|
43
|
+
- [Finding 2 with file:line]
|
|
44
|
+
|
|
45
|
+
Verdict: [READY / NEEDS FIXES]
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
5. **If NEEDS FIXES**, offer to fix issues before PR
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Verify implementation against plan must_haves using goal-backward verification
|
|
3
|
+
model: opus
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Verify Goals
|
|
7
|
+
|
|
8
|
+
Verify that an implementation satisfies the plan's must_haves using **goal-backward verification** (GSD pattern). Instead of checking "did we do the work?", this checks "are the goals met?"
|
|
9
|
+
|
|
10
|
+
## Usage
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
/verify-goals [plan-file-path]
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
If no path provided, locate the most recent plan in `thoughts/shared/plans/`.
|
|
17
|
+
|
|
18
|
+
## Process
|
|
19
|
+
|
|
20
|
+
### Step 1: Extract Must-Haves
|
|
21
|
+
|
|
22
|
+
1. Read the plan file fully
|
|
23
|
+
2. Locate the `## Must-Haves` section
|
|
24
|
+
3. Parse the three tables: Truths, Artifacts, Key Links
|
|
25
|
+
4. If no must_haves section exists, report: "No must_haves found. Consider adding them with /iterate-plan."
|
|
26
|
+
|
|
27
|
+
### Step 2: Verify Truths
|
|
28
|
+
|
|
29
|
+
For each truth in the Truths table:
|
|
30
|
+
|
|
31
|
+
- **If `automated`:** Run the verification command. Record pass/fail with output.
|
|
32
|
+
- **If `manual`:** Present the manual step to the user. Ask them to confirm.
|
|
33
|
+
- **If `both`:** Run the automated check first, then present the manual step.
|
|
34
|
+
|
|
35
|
+
### Step 3: Verify Artifacts
|
|
36
|
+
|
|
37
|
+
For each artifact in the Artifacts table:
|
|
38
|
+
|
|
39
|
+
- Check that the `path_pattern` resolves to an existing file
|
|
40
|
+
- If `validation` is specified, perform additional checks (e.g., "parseable JSON" → try JSON.parse)
|
|
41
|
+
- Record exists/missing for each artifact
|
|
42
|
+
|
|
43
|
+
### Step 4: Verify Key Links
|
|
44
|
+
|
|
45
|
+
For each key_link:
|
|
46
|
+
|
|
47
|
+
- Check that `implementation_ref` (file:line) exists and is reachable
|
|
48
|
+
- Mark status as `verified` if the file and line exist
|
|
49
|
+
- Flag any `pending` links as unimplemented requirements
|
|
50
|
+
|
|
51
|
+
### Step 5: Present Report
|
|
52
|
+
|
|
53
|
+
```markdown
|
|
54
|
+
## Goal-Backward Verification: [plan name]
|
|
55
|
+
|
|
56
|
+
### Truths
|
|
57
|
+
|
|
58
|
+
| ID | Statement | Verification | Result |
|
|
59
|
+
| --- | ----------- | ------------ | ----------------- |
|
|
60
|
+
| T1 | [statement] | automated | PASS/FAIL |
|
|
61
|
+
| T2 | [statement] | manual | CONFIRMED/PENDING |
|
|
62
|
+
|
|
63
|
+
### Artifacts
|
|
64
|
+
|
|
65
|
+
| ID | Description | Path | Result |
|
|
66
|
+
| --- | ----------- | ------ | -------------- |
|
|
67
|
+
| A1 | [desc] | [path] | EXISTS/MISSING |
|
|
68
|
+
|
|
69
|
+
### Key Links
|
|
70
|
+
|
|
71
|
+
| Requirement | Implementation | Status |
|
|
72
|
+
| ----------- | -------------- | -------- |
|
|
73
|
+
| FR-1 | src/auth.js:42 | verified |
|
|
74
|
+
|
|
75
|
+
### Verdict: [ALL_MET / PARTIAL / NONE_MET]
|
|
76
|
+
|
|
77
|
+
[If PARTIAL: list which truths failed, which artifacts are missing, which links are unverified]
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
## Constitution Compliance
|
|
81
|
+
|
|
82
|
+
- **Article IV (No Invention):** Key links ensure every implementation traces to a requirement
|
|
83
|
+
- **Article V (Quality First):** Goal-backward verification is a quality gate
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Record approve/reject feedback so the agent stops repeating rejected suggestions
|
|
3
|
+
model: sonnet
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Capture Feedback
|
|
7
|
+
|
|
8
|
+
Record a granular **approve/reject** signal whenever the user accepts or rejects
|
|
9
|
+
a suggestion. Feedback is the v3.4 immune-system memory: it is **consulted before
|
|
10
|
+
re-suggesting** (so the same rejected idea is not proposed again) and is promoted
|
|
11
|
+
over time into durable `learnings/` and `decisions/`.
|
|
12
|
+
|
|
13
|
+
Feedback is **FIFO-capped** — only the newest 30 entries per domain are kept
|
|
14
|
+
(`merlin prune-feedback`). It is ephemeral by design; durable signal graduates.
|
|
15
|
+
|
|
16
|
+
## When to Use
|
|
17
|
+
|
|
18
|
+
- The user approves or rejects something you proposed (a draft, a plan, an action)
|
|
19
|
+
- The user corrects your judgment ("don't do X", "I prefer Y")
|
|
20
|
+
- The user expresses a tone/style preference worth not re-learning the hard way
|
|
21
|
+
|
|
22
|
+
## The Pipeline (don't skip the consult step)
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
Feedback (granular, here) → Lessons (curated prose) → Decisions (permanent)
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Before making a NEW suggestion in a domain, scan `thoughts/shared/feedback/` for
|
|
29
|
+
prior rejections in that domain. Don't repeat a rejected approach.
|
|
30
|
+
|
|
31
|
+
## Process
|
|
32
|
+
|
|
33
|
+
1. **Capture the signal:** what you suggested, the decision (`approve`/`reject`), and the **reason** (the reason is the load-bearing part).
|
|
34
|
+
2. **Set metadata:**
|
|
35
|
+
- **domain:** feedback area (`content`, `tasks`, `recommendations`, `tone`, …)
|
|
36
|
+
- **decision:** `approve` | `reject`
|
|
37
|
+
- **tags:** domain + type keywords
|
|
38
|
+
3. **Save:** `thoughts/shared/feedback/YYYY-MM-DD-{slug}.md`
|
|
39
|
+
4. **Rebuild the index:** `node .merlin-core/tools/merlin-tools.js index`
|
|
40
|
+
5. **Prune (optional / scheduled):** `node .merlin-core/tools/merlin-tools.js prune-feedback`
|
|
41
|
+
|
|
42
|
+
## Template
|
|
43
|
+
|
|
44
|
+
```markdown
|
|
45
|
+
---
|
|
46
|
+
title: "[What was suggested]"
|
|
47
|
+
date: YYYY-MM-DD
|
|
48
|
+
domain: "[content|tasks|recommendations|tone]"
|
|
49
|
+
decision: reject
|
|
50
|
+
reason: "[Why it was approved/rejected — concrete]"
|
|
51
|
+
tags: [domain, type]
|
|
52
|
+
source_agent: dev
|
|
53
|
+
project: "[project name]"
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
# Feedback: [Title]
|
|
57
|
+
|
|
58
|
+
## Suggestion
|
|
59
|
+
|
|
60
|
+
[What you proposed.]
|
|
61
|
+
|
|
62
|
+
## Decision
|
|
63
|
+
|
|
64
|
+
**[approve|reject]** — [the reason, in the user's words where possible]
|
|
65
|
+
|
|
66
|
+
## Apply Next Time
|
|
67
|
+
|
|
68
|
+
[How this changes future suggestions in this domain.]
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## Constitution Compliance
|
|
72
|
+
|
|
73
|
+
- **Article VIII (Craftsmanship):** closes the loop — the agent learns from approvals/rejections instead of repeating them
|
|
74
|
+
- **Article IV (No Invention):** only record decisions the user actually made
|