openclaw-node-harness 2.0.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/LICENSE +21 -0
- package/README.md +184 -0
- package/bin/discord-read.js +228 -0
- package/bin/fleet-deploy.js +365 -0
- package/bin/lane-watchdog.js +232 -0
- package/bin/mesh-agent.js +714 -0
- package/bin/mesh-bridge.js +535 -0
- package/bin/mesh-deploy-listener.js +322 -0
- package/bin/mesh-deploy.js +1048 -0
- package/bin/mesh-health-publisher.js +247 -0
- package/bin/mesh-task-daemon.js +451 -0
- package/bin/mesh-tool-discord.js +293 -0
- package/bin/mesh.js +649 -0
- package/boot/manifest.yaml +187 -0
- package/cli.js +35 -0
- package/config/daemon.json.template +16 -0
- package/config/obsidian-sync.json.template +39 -0
- package/config/openclaw.json.template +124 -0
- package/config/transcript-sources.json.template +22 -0
- package/identity/AGENTS.md +201 -0
- package/identity/CLAUDE.md +64 -0
- package/identity/DELEGATION.md +304 -0
- package/identity/HEARTBEAT.md +163 -0
- package/identity/MEMORY_SPEC.md +368 -0
- package/identity/PRINCIPLES.md +81 -0
- package/identity/SOUL.md +48 -0
- package/identity/TOOLS.md +47 -0
- package/install.sh +895 -0
- package/lib/agent-activity.js +390 -0
- package/lib/kanban-io.js +352 -0
- package/lib/mesh-registry.js +194 -0
- package/lib/mesh-roles.js +13 -0
- package/lib/mesh-tasks.js +306 -0
- package/lib/nats-resolve.js +108 -0
- package/mission-control/README.md +36 -0
- package/mission-control/drizzle/0000_simple_silhouette.sql +62 -0
- package/mission-control/drizzle/meta/0000_snapshot.json +413 -0
- package/mission-control/drizzle/meta/_journal.json +13 -0
- package/mission-control/drizzle.config.ts +13 -0
- package/mission-control/eslint.config.mjs +18 -0
- package/mission-control/next.config.ts +7 -0
- package/mission-control/package-lock.json +10518 -0
- package/mission-control/package.json +49 -0
- package/mission-control/postcss.config.mjs +7 -0
- package/mission-control/public/file.svg +1 -0
- package/mission-control/public/globe.svg +1 -0
- package/mission-control/public/next.svg +1 -0
- package/mission-control/public/vercel.svg +1 -0
- package/mission-control/public/window.svg +1 -0
- package/mission-control/scripts/enrich-descriptions.js +193 -0
- package/mission-control/scripts/gen-chronology.js +102 -0
- package/mission-control/scripts/import-pipeline-v2.js +523 -0
- package/mission-control/scripts/import-pipeline.js +295 -0
- package/mission-control/src/app/api/activity/live/route.ts +27 -0
- package/mission-control/src/app/api/activity/route.ts +47 -0
- package/mission-control/src/app/api/burndown/route.ts +112 -0
- package/mission-control/src/app/api/critical-path/route.ts +159 -0
- package/mission-control/src/app/api/dependencies/route.ts +176 -0
- package/mission-control/src/app/api/memory/categories/route.ts +93 -0
- package/mission-control/src/app/api/memory/consolidate/route.ts +107 -0
- package/mission-control/src/app/api/memory/doc/route.ts +89 -0
- package/mission-control/src/app/api/memory/flush/route.ts +129 -0
- package/mission-control/src/app/api/memory/graph/route.ts +105 -0
- package/mission-control/src/app/api/memory/items/route.ts +86 -0
- package/mission-control/src/app/api/memory/list/route.ts +48 -0
- package/mission-control/src/app/api/memory/retrieve/route.ts +51 -0
- package/mission-control/src/app/api/memory/search/route.ts +143 -0
- package/mission-control/src/app/api/memory/sync/route.ts +23 -0
- package/mission-control/src/app/api/memory/wikilinks/route.ts +75 -0
- package/mission-control/src/app/api/mesh/events/route.ts +67 -0
- package/mission-control/src/app/api/mesh/nodes/route.ts +221 -0
- package/mission-control/src/app/api/mesh/tokens/route.ts +133 -0
- package/mission-control/src/app/api/projects/route.ts +102 -0
- package/mission-control/src/app/api/resolve-path/route.ts +92 -0
- package/mission-control/src/app/api/scheduler/tick/route.ts +38 -0
- package/mission-control/src/app/api/scheduler/waves/route.ts +54 -0
- package/mission-control/src/app/api/screenshot/route.ts +127 -0
- package/mission-control/src/app/api/settings/gateway/route.ts +92 -0
- package/mission-control/src/app/api/skills/[id]/health/route.ts +57 -0
- package/mission-control/src/app/api/skills/list/route.ts +41 -0
- package/mission-control/src/app/api/souls/[id]/evolution/route.ts +253 -0
- package/mission-control/src/app/api/souls/[id]/prompt/route.ts +205 -0
- package/mission-control/src/app/api/souls/[id]/propagate/route.ts +146 -0
- package/mission-control/src/app/api/souls/route.ts +174 -0
- package/mission-control/src/app/api/tasks/[id]/handoff/route.ts +115 -0
- package/mission-control/src/app/api/tasks/[id]/route.ts +266 -0
- package/mission-control/src/app/api/tasks/[id]/tree/route.ts +94 -0
- package/mission-control/src/app/api/tasks/route.ts +253 -0
- package/mission-control/src/app/api/tts/route.ts +47 -0
- package/mission-control/src/app/api/workspace/files/route.ts +88 -0
- package/mission-control/src/app/api/workspace/read/route.ts +73 -0
- package/mission-control/src/app/burndown/page.tsx +309 -0
- package/mission-control/src/app/calendar/page.tsx +839 -0
- package/mission-control/src/app/favicon.ico +0 -0
- package/mission-control/src/app/globals.css +67 -0
- package/mission-control/src/app/graph/page.tsx +352 -0
- package/mission-control/src/app/layout.tsx +35 -0
- package/mission-control/src/app/live/page.tsx +232 -0
- package/mission-control/src/app/memory/page.tsx +154 -0
- package/mission-control/src/app/mesh/page.tsx +457 -0
- package/mission-control/src/app/obsidian/page.tsx +252 -0
- package/mission-control/src/app/page.tsx +70 -0
- package/mission-control/src/app/roadmap/page.tsx +1757 -0
- package/mission-control/src/app/settings/page.tsx +260 -0
- package/mission-control/src/app/souls/page.tsx +573 -0
- package/mission-control/src/components/board/activity-timeline.tsx +96 -0
- package/mission-control/src/components/board/daily-board.tsx +373 -0
- package/mission-control/src/components/board/kanban-board.tsx +364 -0
- package/mission-control/src/components/board/kanban-column.tsx +105 -0
- package/mission-control/src/components/board/live-stream.tsx +116 -0
- package/mission-control/src/components/board/skill-health-card.tsx +128 -0
- package/mission-control/src/components/board/status-banner.tsx +124 -0
- package/mission-control/src/components/board/task-card.tsx +454 -0
- package/mission-control/src/components/board/unified-task-dialog.tsx +1043 -0
- package/mission-control/src/components/layout/resizable-layout.tsx +68 -0
- package/mission-control/src/components/layout/sidebar.tsx +90 -0
- package/mission-control/src/components/live/audio-spectrum.tsx +106 -0
- package/mission-control/src/components/live/chat-bubble.tsx +52 -0
- package/mission-control/src/components/live/chat-input.tsx +92 -0
- package/mission-control/src/components/memory/doc-reader.tsx +172 -0
- package/mission-control/src/components/memory/memory-list.tsx +169 -0
- package/mission-control/src/components/memory/search-bar.tsx +67 -0
- package/mission-control/src/components/memory/search-results.tsx +149 -0
- package/mission-control/src/components/obsidian/backlinks-panel.tsx +52 -0
- package/mission-control/src/components/obsidian/file-tree.tsx +186 -0
- package/mission-control/src/components/obsidian/local-graph.tsx +107 -0
- package/mission-control/src/components/obsidian/obsidian-graph.tsx +192 -0
- package/mission-control/src/components/obsidian/obsidian-reader.tsx +246 -0
- package/mission-control/src/lib/activity.ts +29 -0
- package/mission-control/src/lib/config.ts +21 -0
- package/mission-control/src/lib/db/index.ts +429 -0
- package/mission-control/src/lib/db/schema.ts +218 -0
- package/mission-control/src/lib/gateway-notify.ts +113 -0
- package/mission-control/src/lib/hooks.ts +536 -0
- package/mission-control/src/lib/memory/categories.ts +125 -0
- package/mission-control/src/lib/memory/entities.ts +482 -0
- package/mission-control/src/lib/memory/extract.ts +369 -0
- package/mission-control/src/lib/memory/retrieval.ts +281 -0
- package/mission-control/src/lib/memory/wikilinks.ts +147 -0
- package/mission-control/src/lib/nats.ts +126 -0
- package/mission-control/src/lib/parsers/clawvault-doc.ts +98 -0
- package/mission-control/src/lib/parsers/daily-log.ts +73 -0
- package/mission-control/src/lib/parsers/memory-md.ts +81 -0
- package/mission-control/src/lib/parsers/task-markdown.ts +459 -0
- package/mission-control/src/lib/parsers/transcript.ts +209 -0
- package/mission-control/src/lib/scheduler.ts +394 -0
- package/mission-control/src/lib/speech/use-speech-pipeline.ts +176 -0
- package/mission-control/src/lib/sync/memory.ts +224 -0
- package/mission-control/src/lib/sync/tasks.ts +271 -0
- package/mission-control/src/lib/tts/edge.ts +31 -0
- package/mission-control/src/lib/tts/google.ts +78 -0
- package/mission-control/src/lib/tts/index.ts +39 -0
- package/mission-control/src/lib/tts/types.ts +18 -0
- package/mission-control/tsconfig.json +42 -0
- package/obsidian-vault/.obsidian/app.json +10 -0
- package/obsidian-vault/.obsidian/community-plugins.json +8 -0
- package/obsidian-vault/.obsidian/graph.json +40 -0
- package/obsidian-vault/.obsidian/plugins/obsidian-local-rest-api/main.js +58769 -0
- package/obsidian-vault/.obsidian/plugins/obsidian-local-rest-api/manifest.json +10 -0
- package/obsidian-vault/.obsidian/plugins/obsidian-local-rest-api/styles.css +47 -0
- package/obsidian-vault/00-meta/.gitkeep +0 -0
- package/obsidian-vault/01-architecture/.gitkeep +0 -0
- package/obsidian-vault/02-smart-contracts/.gitkeep +0 -0
- package/obsidian-vault/03-backend/.gitkeep +0 -0
- package/obsidian-vault/04-mobile/.gitkeep +0 -0
- package/obsidian-vault/05-ar-mapping/.gitkeep +0 -0
- package/obsidian-vault/06-3d-assets/.gitkeep +0 -0
- package/obsidian-vault/07-sound-music/.gitkeep +0 -0
- package/obsidian-vault/08-lore/.gitkeep +0 -0
- package/obsidian-vault/09-quests-playthrough/.gitkeep +0 -0
- package/obsidian-vault/10-economy/.gitkeep +0 -0
- package/obsidian-vault/11-nft-assets/.gitkeep +0 -0
- package/obsidian-vault/12-nft-mechanics/.gitkeep +0 -0
- package/obsidian-vault/13-dao-guild-social/.gitkeep +0 -0
- package/obsidian-vault/14-game-progression/.gitkeep +0 -0
- package/obsidian-vault/15-analytics/.gitkeep +0 -0
- package/obsidian-vault/16-security/.gitkeep +0 -0
- package/obsidian-vault/17-devops/.gitkeep +0 -0
- package/obsidian-vault/18-marketplace/.gitkeep +0 -0
- package/obsidian-vault/19-decisions/.gitkeep +0 -0
- package/obsidian-vault/20-business-strategy/.gitkeep +0 -0
- package/obsidian-vault/21-legal-regulatory/.gitkeep +0 -0
- package/obsidian-vault/nodes/.gitkeep +0 -0
- package/openclaw.env.example +17 -0
- package/package.json +45 -0
- package/services/launchd/ai.openclaw.gateway.plist +59 -0
- package/services/launchd/ai.openclaw.lane-watchdog.plist +32 -0
- package/services/launchd/ai.openclaw.log-rotate.plist +28 -0
- package/services/launchd/ai.openclaw.memory-daemon.plist +36 -0
- package/services/launchd/ai.openclaw.mesh-agent.plist +38 -0
- package/services/launchd/ai.openclaw.mesh-bridge.plist +36 -0
- package/services/launchd/ai.openclaw.mesh-deploy-listener.plist +33 -0
- package/services/launchd/ai.openclaw.mesh-health-publisher.plist +29 -0
- package/services/launchd/ai.openclaw.mesh-task-daemon.plist +36 -0
- package/services/launchd/ai.openclaw.mesh-tool-discord.plist +36 -0
- package/services/launchd/ai.openclaw.mission-control.plist +41 -0
- package/services/service-manifest.json +13 -0
- package/services/systemd/openclaw-gateway.service +21 -0
- package/services/systemd/openclaw-lane-watchdog.service +21 -0
- package/services/systemd/openclaw-log-rotate.service +13 -0
- package/services/systemd/openclaw-log-rotate.timer +9 -0
- package/services/systemd/openclaw-memory-daemon.service +21 -0
- package/services/systemd/openclaw-mesh-agent.service +19 -0
- package/services/systemd/openclaw-mesh-bridge.service +21 -0
- package/services/systemd/openclaw-mesh-deploy-listener.service +23 -0
- package/services/systemd/openclaw-mesh-health-publisher.service +21 -0
- package/services/systemd/openclaw-mesh-task-daemon.service +21 -0
- package/services/systemd/openclaw-mesh-tool-discord.service +21 -0
- package/services/systemd/openclaw-mission-control.service +22 -0
- package/skills/1password/.clawhub/origin.json +7 -0
- package/skills/1password/SKILL.md +63 -0
- package/skills/1password/references/cli-examples.md +29 -0
- package/skills/1password/references/get-started.md +17 -0
- package/skills/acquisition-channel-advisor/SKILL.md +643 -0
- package/skills/acquisition-channel-advisor/examples/conversation-flow.md +531 -0
- package/skills/agent-browser/.clawhub/origin.json +7 -0
- package/skills/agent-browser/CONTRIBUTING.md +63 -0
- package/skills/agent-browser/SKILL.md +338 -0
- package/skills/agentic-compass/.clawhub/origin.json +7 -0
- package/skills/agentic-compass/README.md +96 -0
- package/skills/agentic-compass/SKILL.md +112 -0
- package/skills/agentic-compass/references/README.md +5 -0
- package/skills/agentic-compass/scripts/agentic-compass.py +196 -0
- package/skills/arcane-dev-ops/SKILL.md +61 -0
- package/skills/arcane-dev-ops/references/checklist.md +22 -0
- package/skills/arcane-dev-ops/references/validation-cases.md +11 -0
- package/skills/arcane-dev-ops/scripts/prepush_check.sh +41 -0
- package/skills/auto-updater/.clawhub/origin.json +7 -0
- package/skills/auto-updater/SKILL.md +158 -0
- package/skills/auto-updater/references/agent-guide.md +152 -0
- package/skills/auto-updater/references/summary-examples.md +109 -0
- package/skills/business-health-diagnostic/SKILL.md +782 -0
- package/skills/byterover/.clawhub/origin.json +7 -0
- package/skills/byterover/SKILL.md +105 -0
- package/skills/byterover/TROUBLESHOOTING.md +50 -0
- package/skills/byterover/WORKFLOWS.md +229 -0
- package/skills/capability-evolver/.clawhub/origin.json +7 -0
- package/skills/capability-evolver/CONTRIBUTING.md +11 -0
- package/skills/capability-evolver/README.md +157 -0
- package/skills/capability-evolver/README.zh-CN.md +112 -0
- package/skills/capability-evolver/SKILL.md +93 -0
- package/skills/capability-evolver/assets/gep/capsules.json +5 -0
- package/skills/capability-evolver/assets/gep/genes.json +104 -0
- package/skills/capability-evolver/index.js +59 -0
- package/skills/capability-evolver/package.json +22 -0
- package/skills/capability-evolver/scripts/analyze_by_skill.js +121 -0
- package/skills/capability-evolver/scripts/build_public.js +350 -0
- package/skills/capability-evolver/scripts/export_history.js +98 -0
- package/skills/capability-evolver/scripts/extract_log.js +85 -0
- package/skills/capability-evolver/scripts/generate_history.js +75 -0
- package/skills/capability-evolver/scripts/human_report.js +147 -0
- package/skills/capability-evolver/scripts/publish_public.js +516 -0
- package/skills/capability-evolver/scripts/suggest_version.js +89 -0
- package/skills/capability-evolver/src/evolve.js +594 -0
- package/skills/capability-evolver/src/gep/assetStore.js +204 -0
- package/skills/capability-evolver/src/gep/candidates.js +134 -0
- package/skills/capability-evolver/src/gep/paths.js +23 -0
- package/skills/capability-evolver/src/gep/prompt.js +254 -0
- package/skills/capability-evolver/src/gep/selector.js +89 -0
- package/skills/capability-evolver/src/gep/signals.js +27 -0
- package/skills/cc-godmode/.clawhub/origin.json +7 -0
- package/skills/cc-godmode/CHANGELOG.md +66 -0
- package/skills/cc-godmode/README.md +293 -0
- package/skills/cc-godmode/SKILL.md +242 -0
- package/skills/cc-godmode/docs/AGENTS.md +332 -0
- package/skills/cc-godmode/docs/MIGRATION.md +206 -0
- package/skills/cc-godmode/docs/TROUBLESHOOTING.md +357 -0
- package/skills/cc-godmode/docs/WORKFLOWS.md +329 -0
- package/skills/cc-godmode/references/agents.md +433 -0
- package/skills/cc-godmode/scripts/build-skill.js +232 -0
- package/skills/clawdbot-filesystem/.clawhub/origin.json +7 -0
- package/skills/clawdbot-filesystem/LICENSE.md +21 -0
- package/skills/clawdbot-filesystem/README.md +322 -0
- package/skills/clawdbot-filesystem/SKILL.md +219 -0
- package/skills/clawdbot-filesystem/config.json +41 -0
- package/skills/clawdbot-filesystem/package.json +69 -0
- package/skills/clawdbot-security-check/.clawhub/origin.json +7 -0
- package/skills/clawdbot-security-check/README.md +168 -0
- package/skills/clawdbot-security-check/SKILL.md +145 -0
- package/skills/clawdbot-security-check/references/audit-checks.md +521 -0
- package/skills/clawdbot-security-check/skill.json +42 -0
- package/skills/clawddocs/.clawhub/origin.json +7 -0
- package/skills/clawddocs/SKILL.md +176 -0
- package/skills/clawddocs/package.json +9 -0
- package/skills/clawddocs/scripts/build-index.sh +17 -0
- package/skills/clawddocs/scripts/cache.sh +13 -0
- package/skills/clawddocs/scripts/fetch-doc.sh +7 -0
- package/skills/clawddocs/scripts/recent.sh +5 -0
- package/skills/clawddocs/scripts/search.sh +8 -0
- package/skills/clawddocs/scripts/sitemap.sh +23 -0
- package/skills/clawddocs/scripts/track-changes.sh +16 -0
- package/skills/clawddocs/snippets/common-configs.md +69 -0
- package/skills/clawguard/.clawhub/origin.json +7 -0
- package/skills/clawguard/SKILL.md +137 -0
- package/skills/company-research/SKILL.md +393 -0
- package/skills/company-research/examples/sample.md +164 -0
- package/skills/company-research/template.md +60 -0
- package/skills/crypto-price/.clawhub/origin.json +7 -0
- package/skills/crypto-price/ARCHITECTURE.md +437 -0
- package/skills/crypto-price/README.md +194 -0
- package/skills/crypto-price/SKILL.md +61 -0
- package/skills/crypto-price/requirements.txt +1 -0
- package/skills/crypto-price/scripts/get_price_chart.py +988 -0
- package/skills/customer-journey-map/SKILL.md +343 -0
- package/skills/customer-journey-map/examples/sample.md +33 -0
- package/skills/customer-journey-map/template.md +28 -0
- package/skills/customer-journey-mapping-workshop/SKILL.md +522 -0
- package/skills/deep-research/.clawhub/origin.json +7 -0
- package/skills/deep-research/SKILL.md +93 -0
- package/skills/deep-research/rules/logic.md +32 -0
- package/skills/discord-telegram-triage/SKILL.md +59 -0
- package/skills/discord-telegram-triage/references/discord-runbook.md +28 -0
- package/skills/discord-telegram-triage/references/validation-cases.md +11 -0
- package/skills/discord-telegram-triage/scripts/triage_snapshot.sh +23 -0
- package/skills/discovery-interview-prep/SKILL.md +408 -0
- package/skills/discovery-process/SKILL.md +503 -0
- package/skills/discovery-process/examples/sample.md +60 -0
- package/skills/discovery-process/template.md +39 -0
- package/skills/dist/arcane-dev-ops.skill +0 -0
- package/skills/dist/discord-telegram-triage.skill +0 -0
- package/skills/dist/founder-brief-summarizer.skill +0 -0
- package/skills/epic-breakdown-advisor/SKILL.md +664 -0
- package/skills/epic-hypothesis/SKILL.md +285 -0
- package/skills/epic-hypothesis/examples/sample.md +104 -0
- package/skills/epic-hypothesis/template.md +30 -0
- package/skills/excel/.clawhub/origin.json +7 -0
- package/skills/excel/SKILL.md +332 -0
- package/skills/excel/scripts/excel.py +1120 -0
- package/skills/fast-browser-use/.clawhub/origin.json +7 -0
- package/skills/fast-browser-use/CODEBUDDY.md +142 -0
- package/skills/fast-browser-use/Cargo.toml +77 -0
- package/skills/fast-browser-use/README.md +62 -0
- package/skills/fast-browser-use/SKILL.md +217 -0
- package/skills/fast-browser-use/package-lock.json +28 -0
- package/skills/fast-browser-use/package.json +8 -0
- package/skills/fast-browser-use/rustfmt.toml +10 -0
- package/skills/fast-browser-use/src/bin/cli.rs +373 -0
- package/skills/fast-browser-use/src/bin/mcp_server.rs +203 -0
- package/skills/fast-browser-use/src/browser/config.rs +136 -0
- package/skills/fast-browser-use/src/browser/debug.rs +16 -0
- package/skills/fast-browser-use/src/browser/mod.rs +61 -0
- package/skills/fast-browser-use/src/browser/session.rs +478 -0
- package/skills/fast-browser-use/src/dom/element.rs +442 -0
- package/skills/fast-browser-use/src/dom/extract_dom.js +849 -0
- package/skills/fast-browser-use/src/dom/mod.rs +14 -0
- package/skills/fast-browser-use/src/dom/tree.rs +296 -0
- package/skills/fast-browser-use/src/dom/yaml.rs +149 -0
- package/skills/fast-browser-use/src/error.rs +115 -0
- package/skills/fast-browser-use/src/lib.rs +17 -0
- package/skills/fast-browser-use/src/mcp/handler.rs +63 -0
- package/skills/fast-browser-use/src/mcp/mod.rs +81 -0
- package/skills/fast-browser-use/src/tools/Readability.min.js +1480 -0
- package/skills/fast-browser-use/src/tools/annotate.rs +165 -0
- package/skills/fast-browser-use/src/tools/click.rs +84 -0
- package/skills/fast-browser-use/src/tools/close.rs +35 -0
- package/skills/fast-browser-use/src/tools/close_tab.rs +45 -0
- package/skills/fast-browser-use/src/tools/convert_to_markdown.js +117 -0
- package/skills/fast-browser-use/src/tools/cookies.rs +58 -0
- package/skills/fast-browser-use/src/tools/debug.rs +44 -0
- package/skills/fast-browser-use/src/tools/evaluate.rs +40 -0
- package/skills/fast-browser-use/src/tools/extract.rs +66 -0
- package/skills/fast-browser-use/src/tools/go_back.rs +35 -0
- package/skills/fast-browser-use/src/tools/go_forward.rs +35 -0
- package/skills/fast-browser-use/src/tools/hover.js +33 -0
- package/skills/fast-browser-use/src/tools/hover.rs +97 -0
- package/skills/fast-browser-use/src/tools/html_to_markdown.rs +99 -0
- package/skills/fast-browser-use/src/tools/input.rs +93 -0
- package/skills/fast-browser-use/src/tools/local_storage.rs +159 -0
- package/skills/fast-browser-use/src/tools/markdown.rs +181 -0
- package/skills/fast-browser-use/src/tools/mod.rs +326 -0
- package/skills/fast-browser-use/src/tools/navigate.rs +55 -0
- package/skills/fast-browser-use/src/tools/new_tab.rs +60 -0
- package/skills/fast-browser-use/src/tools/press_key.rs +78 -0
- package/skills/fast-browser-use/src/tools/read_links.rs +59 -0
- package/skills/fast-browser-use/src/tools/readability_script.rs +8 -0
- package/skills/fast-browser-use/src/tools/screenshot.rs +47 -0
- package/skills/fast-browser-use/src/tools/scroll.js +22 -0
- package/skills/fast-browser-use/src/tools/scroll.rs +95 -0
- package/skills/fast-browser-use/src/tools/select.js +23 -0
- package/skills/fast-browser-use/src/tools/select.rs +129 -0
- package/skills/fast-browser-use/src/tools/sitemap.rs +426 -0
- package/skills/fast-browser-use/src/tools/snapshot.rs +324 -0
- package/skills/fast-browser-use/src/tools/switch_tab.rs +69 -0
- package/skills/fast-browser-use/src/tools/tab_list.rs +76 -0
- package/skills/fast-browser-use/src/tools/utils.rs +92 -0
- package/skills/fast-browser-use/src/tools/wait.rs +53 -0
- package/skills/fast-browser-use/test_auth.json +3 -0
- package/skills/fast-browser-use/test_state.json +6 -0
- package/skills/fast-browser-use/tests/browser_tools_integration.rs +233 -0
- package/skills/fast-browser-use/tests/cli_recipes_integration.rs +112 -0
- package/skills/fast-browser-use/tests/cookies_integration.rs +56 -0
- package/skills/fast-browser-use/tests/debug_integration.rs +83 -0
- package/skills/fast-browser-use/tests/dom_integration.rs +170 -0
- package/skills/fast-browser-use/tests/local_storage_integration.rs +75 -0
- package/skills/fast-browser-use/tests/markdown_integration.rs +448 -0
- package/skills/fast-browser-use/tests/navigation_integration.rs +241 -0
- package/skills/fast-browser-use/tests/sitemap_integration.rs +326 -0
- package/skills/fast-browser-use/tests/tab_management_integration.rs +300 -0
- package/skills/feature-investment-advisor/SKILL.md +639 -0
- package/skills/feature-investment-advisor/examples/conversation-flow.md +538 -0
- package/skills/finance-based-pricing-advisor/SKILL.md +763 -0
- package/skills/finance-metrics-quickref/SKILL.md +309 -0
- package/skills/find-skills/.clawhub/origin.json +7 -0
- package/skills/find-skills/SKILL.md +143 -0
- package/skills/flavor-text-writer/SKILL.md +27 -0
- package/skills/founder-brief-summarizer/SKILL.md +52 -0
- package/skills/founder-brief-summarizer/references/response-templates.md +15 -0
- package/skills/founder-brief-summarizer/references/validation-cases.md +11 -0
- package/skills/founder-brief-summarizer/scripts/brief_template.sh +28 -0
- package/skills/frontend-design/.clawhub/origin.json +7 -0
- package/skills/frontend-design/LICENSE.txt +190 -0
- package/skills/frontend-design/SKILL.md +53 -0
- package/skills/gemini/.clawhub/origin.json +7 -0
- package/skills/gemini/SKILL.md +33 -0
- package/skills/gemini-deep-research/.clawhub/origin.json +7 -0
- package/skills/gemini-deep-research/SKILL.md +78 -0
- package/skills/gemini-deep-research/scripts/deep_research.py +176 -0
- package/skills/git-essentials/.clawhub/origin.json +7 -0
- package/skills/git-essentials/SKILL.md +239 -0
- package/skills/git-essentials/references/advanced.md +211 -0
- package/skills/github/.clawhub/origin.json +7 -0
- package/skills/github/SKILL.md +57 -0
- package/skills/google-drive/.clawhub/origin.json +7 -0
- package/skills/google-drive/LICENSE.txt +21 -0
- package/skills/google-drive/SKILL.md +320 -0
- package/skills/growth-loop/SKILL.md +270 -0
- package/skills/growth-loop/_meta.json +9 -0
- package/skills/growth-loop/references/diagnosis-framework.md +84 -0
- package/skills/growth-loop/references/platform-benchmarks.md +79 -0
- package/skills/growth-loop/scripts/init-campaign.sh +274 -0
- package/skills/humanize-ai-text/.clawhub/origin.json +7 -0
- package/skills/humanize-ai-text/SKILL.md +192 -0
- package/skills/humanize-ai-text/scripts/compare.py +58 -0
- package/skills/humanize-ai-text/scripts/detect.py +160 -0
- package/skills/humanize-ai-text/scripts/patterns.json +191 -0
- package/skills/humanize-ai-text/scripts/transform.py +127 -0
- package/skills/humanizer/.clawhub/origin.json +7 -0
- package/skills/humanizer/README.md +82 -0
- package/skills/humanizer/SKILL.md +443 -0
- package/skills/jobs-to-be-done/SKILL.md +378 -0
- package/skills/jobs-to-be-done/examples/sample.md +80 -0
- package/skills/jobs-to-be-done/template.md +65 -0
- package/skills/lean-ux-canvas/SKILL.md +561 -0
- package/skills/lean-ux-canvas/examples/sample.md +88 -0
- package/skills/lean-ux-canvas/template.md +32 -0
- package/skills/markdown-formatter/.clawhub/origin.json +7 -0
- package/skills/markdown-formatter/README.md +137 -0
- package/skills/markdown-formatter/SKILL.md +369 -0
- package/skills/markdown-formatter/config.json +20 -0
- package/skills/markdown-formatter/index.js +439 -0
- package/skills/markdown-formatter/package.json +23 -0
- package/skills/markdown-formatter/test.js +23 -0
- package/skills/marketing-mode/.clawhub/origin.json +7 -0
- package/skills/marketing-mode/README.md +49 -0
- package/skills/marketing-mode/SKILL.md +703 -0
- package/skills/marketing-mode/mode-prompt.md +39 -0
- package/skills/marketing-mode/skill.json +51 -0
- package/skills/memory-hygiene/.clawhub/origin.json +7 -0
- package/skills/memory-hygiene/SKILL.md +91 -0
- package/skills/memory-setup/.clawhub/origin.json +7 -0
- package/skills/memory-setup/SKILL.md +180 -0
- package/skills/memorylayer/.clawhub/origin.json +7 -0
- package/skills/memorylayer/README.md +197 -0
- package/skills/memorylayer/SKILL.md +227 -0
- package/skills/memorylayer/examples/agent-integration.js +145 -0
- package/skills/memorylayer/examples/basic-usage.js +87 -0
- package/skills/memorylayer/examples/token-savings-demo.js +183 -0
- package/skills/memorylayer/index.js +115 -0
- package/skills/memorylayer/package-lock.json +295 -0
- package/skills/memorylayer/package.json +27 -0
- package/skills/memorylayer/python/memorylayer_skill.py +230 -0
- package/skills/memorylayer/python/requirements.txt +7 -0
- package/skills/mesh/SKILL.md +184 -0
- package/skills/model-usage/.clawhub/origin.json +7 -0
- package/skills/model-usage/SKILL.md +54 -0
- package/skills/model-usage/references/codexbar-cli.md +28 -0
- package/skills/model-usage/scripts/model_usage.py +310 -0
- package/skills/moltbook-interact/.clawhub/origin.json +7 -0
- package/skills/moltbook-interact/INSTALL.md +139 -0
- package/skills/moltbook-interact/README.md +198 -0
- package/skills/moltbook-interact/SKILL.md +72 -0
- package/skills/moltbook-interact/references/api.md +106 -0
- package/skills/moltbook-interact/scripts/moltbook.sh +142 -0
- package/skills/moltbook-registry/.clawhub/origin.json +7 -0
- package/skills/moltbook-registry/README.md +26 -0
- package/skills/moltbook-registry/SKILL.md +82 -0
- package/skills/moltbook-registry/index.js +180 -0
- package/skills/moltbook-registry/package.json +11 -0
- package/skills/mythril-scanner/SKILL.md +27 -0
- package/skills/n8n/.clawhub/origin.json +7 -0
- package/skills/n8n/SKILL.md +141 -0
- package/skills/n8n/references/api.md +156 -0
- package/skills/n8n/scripts/n8n_api.py +158 -0
- package/skills/n8n-workflow-automation/.clawhub/origin.json +7 -0
- package/skills/n8n-workflow-automation/SKILL.md +103 -0
- package/skills/n8n-workflow-automation/assets/runbook-template.md +32 -0
- package/skills/narrative-designer/SKILL.md +27 -0
- package/skills/ontology/.clawhub/origin.json +7 -0
- package/skills/ontology/SKILL.md +236 -0
- package/skills/ontology/references/queries.md +211 -0
- package/skills/ontology/references/schema.md +322 -0
- package/skills/ontology/scripts/ontology.py +374 -0
- package/skills/openai-image-gen/.clawhub/origin.json +7 -0
- package/skills/openai-image-gen/SKILL.md +45 -0
- package/skills/openai-image-gen/scripts/gen.py +227 -0
- package/skills/openclaw-agent-optimize/.clawhub/origin.json +7 -0
- package/skills/openclaw-agent-optimize/SKILL.md +33 -0
- package/skills/openclaw-agent-optimize/references/agent-orchestration.md +20 -0
- package/skills/openclaw-agent-optimize/references/context-management.md +15 -0
- package/skills/openclaw-agent-optimize/references/continuous-learning.md +14 -0
- package/skills/openclaw-agent-optimize/references/cron-optimization.md +16 -0
- package/skills/openclaw-agent-optimize/references/memory-patterns.md +14 -0
- package/skills/openclaw-agent-optimize/references/model-selection.md +18 -0
- package/skills/openclaw-skill-scanner/.clawhub/origin.json +7 -0
- package/skills/openclaw-skill-scanner/SKILL.md +88 -0
- package/skills/openclaw-skill-scanner/install-hook.sh +294 -0
- package/skills/openclaw-skill-scanner/report-template.md +53 -0
- package/skills/openclaw-skill-scanner/scanner.py +929 -0
- package/skills/openclaw-skill-scanner/whitelist.json +18 -0
- package/skills/opportunity-solution-tree/SKILL.md +428 -0
- package/skills/opportunity-solution-tree/examples/sample.md +104 -0
- package/skills/opportunity-solution-tree/template.md +33 -0
- package/skills/pdf/.clawhub/origin.json +7 -0
- package/skills/pdf/SKILL.md +304 -0
- package/skills/pestel-analysis/SKILL.md +384 -0
- package/skills/pestel-analysis/examples/sample.md +143 -0
- package/skills/pestel-analysis/template.md +53 -0
- package/skills/pol-probe/SKILL.md +217 -0
- package/skills/pol-probe/examples/sample.md +136 -0
- package/skills/pol-probe/template.md +59 -0
- package/skills/pol-probe-advisor/SKILL.md +492 -0
- package/skills/positioning-statement/SKILL.md +229 -0
- package/skills/positioning-statement/examples/sample.md +51 -0
- package/skills/positioning-statement/template.md +25 -0
- package/skills/positioning-workshop/SKILL.md +424 -0
- package/skills/prd-development/SKILL.md +654 -0
- package/skills/prd-development/examples/sample.md +43 -0
- package/skills/prd-development/template.md +55 -0
- package/skills/press-release/SKILL.md +277 -0
- package/skills/press-release/examples/sample.md +73 -0
- package/skills/press-release/template.md +39 -0
- package/skills/prioritization-advisor/SKILL.md +451 -0
- package/skills/proactive-messages/.clawhub/origin.json +7 -0
- package/skills/proactive-messages/SKILL.md +91 -0
- package/skills/problem-framing-canvas/SKILL.md +466 -0
- package/skills/problem-framing-canvas/examples/sample.md +58 -0
- package/skills/problem-framing-canvas/template.md +22 -0
- package/skills/problem-statement/SKILL.md +255 -0
- package/skills/problem-statement/examples/sample.md +82 -0
- package/skills/problem-statement/template.md +37 -0
- package/skills/product-strategy-session/SKILL.md +434 -0
- package/skills/product-strategy-session/examples/sample.md +67 -0
- package/skills/product-strategy-session/template.md +38 -0
- package/skills/prompt-guard/.clawhub/origin.json +7 -0
- package/skills/prompt-guard/ARCHITECTURE.md +364 -0
- package/skills/prompt-guard/CHANGELOG.md +200 -0
- package/skills/prompt-guard/README.md +215 -0
- package/skills/prompt-guard/SECURITY.md +66 -0
- package/skills/prompt-guard/SKILL.md +174 -0
- package/skills/prompt-guard/blog/how-i-secured-my-ai-agent.md +185 -0
- package/skills/prompt-guard/config.example.yaml +56 -0
- package/skills/prompt-guard/references/detection-patterns.md +298 -0
- package/skills/prompt-guard/requirements.txt +1 -0
- package/skills/prompt-guard/scripts/analyze_log.py +224 -0
- package/skills/prompt-guard/scripts/audit.py +344 -0
- package/skills/prompt-guard/scripts/detect.py +1587 -0
- package/skills/prompt-guard/scripts/hivefence.py +345 -0
- package/skills/proto-persona/SKILL.md +336 -0
- package/skills/proto-persona/examples/sample.md +97 -0
- package/skills/proto-persona/template.md +45 -0
- package/skills/recommendation-canvas/SKILL.md +382 -0
- package/skills/recommendation-canvas/examples/sample.md +94 -0
- package/skills/recommendation-canvas/template.md +86 -0
- package/skills/refactor-suggest/.clawhub/origin.json +7 -0
- package/skills/refactor-suggest/SKILL.md +94 -0
- package/skills/roadmap-planning/SKILL.md +506 -0
- package/skills/roadmap-planning/examples/sample.md +62 -0
- package/skills/roadmap-planning/template.md +30 -0
- package/skills/saas-economics-efficiency-metrics/SKILL.md +694 -0
- package/skills/saas-economics-efficiency-metrics/examples/cash-trap.md +365 -0
- package/skills/saas-economics-efficiency-metrics/examples/healthy-unit-economics.md +279 -0
- package/skills/saas-economics-efficiency-metrics/template.md +263 -0
- package/skills/saas-revenue-growth-metrics/SKILL.md +629 -0
- package/skills/saas-revenue-growth-metrics/examples/healthy-saas.md +131 -0
- package/skills/saas-revenue-growth-metrics/examples/warning-signs.md +229 -0
- package/skills/saas-revenue-growth-metrics/template.md +192 -0
- package/skills/save-money/.clawhub/origin.json +7 -0
- package/skills/save-money/SKILL.md +173 -0
- package/skills/scripts/golden_skills_v3.sh +32 -0
- package/skills/search/.clawhub/origin.json +7 -0
- package/skills/search/SKILL.md +18 -0
- package/skills/search/skill.json +1 -0
- package/skills/second-brain/.clawhub/origin.json +7 -0
- package/skills/second-brain/SKILL.md +278 -0
- package/skills/second-brain/scripts/ensue-api.sh +37 -0
- package/skills/self-improving-agent/.clawhub/origin.json +7 -0
- package/skills/self-improving-agent/.learnings/ERRORS.md +5 -0
- package/skills/self-improving-agent/.learnings/FEATURE_REQUESTS.md +5 -0
- package/skills/self-improving-agent/.learnings/LEARNINGS.md +5 -0
- package/skills/self-improving-agent/SKILL.md +130 -0
- package/skills/self-improving-agent/assets/LEARNINGS.md +45 -0
- package/skills/self-improving-agent/assets/SKILL-TEMPLATE.md +177 -0
- package/skills/self-improving-agent/hooks/openclaw/HOOK.md +23 -0
- package/skills/self-improving-agent/hooks/openclaw/handler.js +56 -0
- package/skills/self-improving-agent/hooks/openclaw/handler.ts +62 -0
- package/skills/self-improving-agent/references/examples.md +374 -0
- package/skills/self-improving-agent/references/hooks-setup.md +223 -0
- package/skills/self-improving-agent/references/openclaw-integration.md +248 -0
- package/skills/self-improving-agent/references/templates.md +480 -0
- package/skills/self-improving-agent/scripts/activator.sh +20 -0
- package/skills/self-improving-agent/scripts/error-detector.sh +55 -0
- package/skills/self-improving-agent/scripts/extract-skill.sh +203 -0
- package/skills/self-improving-agent-1-0-2/.clawhub/origin.json +7 -0
- package/skills/self-improving-agent-1-0-2/SKILL.md +562 -0
- package/skills/self-improving-agent-1-0-2/assets/LEARNINGS.md +45 -0
- package/skills/self-improving-agent-1-0-2/assets/SKILL-TEMPLATE.md +182 -0
- package/skills/self-improving-agent-1-0-2/references/clawdbot-integration.md +311 -0
- package/skills/self-improving-agent-1-0-2/references/examples.md +374 -0
- package/skills/self-improving-agent-1-0-2/references/hooks-setup.md +223 -0
- package/skills/self-improving-agent-1-0-2/scripts/activator.sh +20 -0
- package/skills/self-improving-agent-1-0-2/scripts/error-detector.sh +55 -0
- package/skills/self-improving-agent-1-0-2/scripts/extract-skill.sh +203 -0
- package/skills/self-love-confidence/.clawhub/origin.json +7 -0
- package/skills/self-love-confidence/SKILL.md +79 -0
- package/skills/self-reflection/.clawhub/origin.json +7 -0
- package/skills/self-reflection/README.md +292 -0
- package/skills/self-reflection/SKILL.md +110 -0
- package/skills/self-reflection/self-reflection.example.json +6 -0
- package/skills/slither-analyzer/SKILL.md +27 -0
- package/skills/solidity-audit/SKILL.md +27 -0
- package/skills/soulcraft/.clawhub/origin.json +7 -0
- package/skills/soulcraft/README.md +123 -0
- package/skills/soulcraft/SKILL.md +340 -0
- package/skills/soulcraft/references/question-bank.md +154 -0
- package/skills/soulcraft/references/soul-examples.md +207 -0
- package/skills/soulcraft/research/RESEARCH_REPORT.md +317 -0
- package/skills/spotify-player/.clawhub/origin.json +7 -0
- package/skills/spotify-player/SKILL.md +44 -0
- package/skills/storyboard/SKILL.md +259 -0
- package/skills/storyboard/examples/sample.md +71 -0
- package/skills/storyboard/template.md +41 -0
- package/skills/summarize/.clawhub/origin.json +7 -0
- package/skills/summarize/SKILL.md +59 -0
- package/skills/superdesign/.clawhub/origin.json +7 -0
- package/skills/superdesign/SKILL.md +224 -0
- package/skills/tam-sam-som-calculator/SKILL.md +399 -0
- package/skills/tam-sam-som-calculator/examples/sample.md +142 -0
- package/skills/tam-sam-som-calculator/scripts/market-sizing.py +95 -0
- package/skills/tam-sam-som-calculator/template.md +35 -0
- package/skills/tavily-search/.clawhub/origin.json +7 -0
- package/skills/tavily-search/SKILL.md +49 -0
- package/skills/tavily-search/scripts/extract.mjs +59 -0
- package/skills/tavily-search/scripts/search.mjs +101 -0
- package/skills/twitter/SKILL.md +74 -0
- package/skills/twitter/_meta.json +9 -0
- package/skills/twitter/references/validation-cases.md +53 -0
- package/skills/twitter/scripts/twitter.sh +421 -0
- package/skills/ui-ux-pro-max/.clawhub/origin.json +7 -0
- package/skills/ui-ux-pro-max/SKILL.md +54 -0
- package/skills/ui-ux-pro-max/assets/data/charts.csv +26 -0
- package/skills/ui-ux-pro-max/assets/data/colors.csv +97 -0
- package/skills/ui-ux-pro-max/assets/data/icons.csv +101 -0
- package/skills/ui-ux-pro-max/assets/data/landing.csv +31 -0
- package/skills/ui-ux-pro-max/assets/data/products.csv +97 -0
- package/skills/ui-ux-pro-max/assets/data/react-performance.csv +45 -0
- package/skills/ui-ux-pro-max/assets/data/stacks/astro.csv +54 -0
- package/skills/ui-ux-pro-max/assets/data/stacks/flutter.csv +53 -0
- package/skills/ui-ux-pro-max/assets/data/stacks/html-tailwind.csv +56 -0
- package/skills/ui-ux-pro-max/assets/data/stacks/jetpack-compose.csv +53 -0
- package/skills/ui-ux-pro-max/assets/data/stacks/nextjs.csv +53 -0
- package/skills/ui-ux-pro-max/assets/data/stacks/nuxt-ui.csv +51 -0
- package/skills/ui-ux-pro-max/assets/data/stacks/nuxtjs.csv +59 -0
- package/skills/ui-ux-pro-max/assets/data/stacks/react-native.csv +52 -0
- package/skills/ui-ux-pro-max/assets/data/stacks/react.csv +54 -0
- package/skills/ui-ux-pro-max/assets/data/stacks/shadcn.csv +61 -0
- package/skills/ui-ux-pro-max/assets/data/stacks/svelte.csv +54 -0
- package/skills/ui-ux-pro-max/assets/data/stacks/swiftui.csv +51 -0
- package/skills/ui-ux-pro-max/assets/data/stacks/vue.csv +50 -0
- package/skills/ui-ux-pro-max/assets/data/styles.csv +68 -0
- package/skills/ui-ux-pro-max/assets/data/typography.csv +58 -0
- package/skills/ui-ux-pro-max/assets/data/ui-reasoning.csv +101 -0
- package/skills/ui-ux-pro-max/assets/data/ux-guidelines.csv +100 -0
- package/skills/ui-ux-pro-max/assets/data/web-interface.csv +31 -0
- package/skills/ui-ux-pro-max/references/upstream-README.md +488 -0
- package/skills/ui-ux-pro-max/references/upstream-skill-content.md +288 -0
- package/skills/ui-ux-pro-max/scripts/__init__.py +0 -0
- package/skills/ui-ux-pro-max/scripts/core.py +253 -0
- package/skills/ui-ux-pro-max/scripts/design_system.py +1071 -0
- package/skills/ui-ux-pro-max/scripts/search.py +111 -0
- package/skills/user-story/SKILL.md +272 -0
- package/skills/user-story/examples/sample.md +110 -0
- package/skills/user-story/scripts/user-story-template.py +65 -0
- package/skills/user-story/template.md +32 -0
- package/skills/user-story-mapping/SKILL.md +296 -0
- package/skills/user-story-mapping/examples/sample.md +77 -0
- package/skills/user-story-mapping/template.md +41 -0
- package/skills/user-story-mapping-workshop/SKILL.md +485 -0
- package/skills/user-story-mapping-workshop/template.md +28 -0
- package/skills/user-story-splitting/SKILL.md +313 -0
- package/skills/user-story-splitting/examples/sample.md +147 -0
- package/skills/user-story-splitting/template.md +37 -0
- package/skills/wacli/.clawhub/origin.json +7 -0
- package/skills/wacli/SKILL.md +53 -0
- package/skills/web-search/.clawhub/origin.json +7 -0
- package/skills/web-search/SKILL.md +151 -0
- package/skills/web-search/references/api-details.md +207 -0
- package/skills/web-search/scripts/search.py +576 -0
- package/skills/workshop-facilitation/SKILL.md +88 -0
- package/skills/world-builder/SKILL.md +27 -0
- package/souls/blockchain-auditor/PRINCIPLES.md +75 -0
- package/souls/blockchain-auditor/SOUL.md +56 -0
- package/souls/blockchain-auditor/capabilities.json +33 -0
- package/souls/blockchain-auditor/evolution/capsules.json +4 -0
- package/souls/blockchain-auditor/evolution/events.jsonl +1 -0
- package/souls/blockchain-auditor/evolution/genes.json +62 -0
- package/souls/daedalus/PRINCIPLES.md +78 -0
- package/souls/daedalus/SOUL.md +48 -0
- package/souls/daedalus/capabilities.json +46 -0
- package/souls/identity-architect/PRINCIPLES.md +83 -0
- package/souls/identity-architect/SOUL.md +66 -0
- package/souls/identity-architect/capabilities.json +38 -0
- package/souls/identity-architect/evolution/capsules.json +4 -0
- package/souls/identity-architect/evolution/events.jsonl +0 -0
- package/souls/identity-architect/evolution/genes.json +4 -0
- package/souls/infra-ops/PRINCIPLES.md +77 -0
- package/souls/infra-ops/SOUL.md +56 -0
- package/souls/infra-ops/capabilities.json +33 -0
- package/souls/infra-ops/evolution/capsules.json +4 -0
- package/souls/infra-ops/evolution/events.jsonl +0 -0
- package/souls/infra-ops/evolution/genes.json +4 -0
- package/souls/lore-writer/PRINCIPLES.md +74 -0
- package/souls/lore-writer/SOUL.md +54 -0
- package/souls/lore-writer/capabilities.json +37 -0
- package/souls/lore-writer/evolution/capsules.json +4 -0
- package/souls/lore-writer/evolution/events.jsonl +0 -0
- package/souls/lore-writer/evolution/genes.json +4 -0
- package/souls/qa-evidence/PRINCIPLES.md +97 -0
- package/souls/qa-evidence/SOUL.md +66 -0
- package/souls/qa-evidence/capabilities.json +32 -0
- package/souls/qa-evidence/evolution/capsules.json +4 -0
- package/souls/qa-evidence/evolution/events.jsonl +0 -0
- package/souls/qa-evidence/evolution/genes.json +4 -0
- package/souls/registry.json +211 -0
- package/souls/sync-registry.js +65 -0
- package/uninstall.sh +102 -0
- package/workspace-bin/auto-checkpoint +60 -0
- package/workspace-bin/clawvault-access-control +65 -0
- package/workspace-bin/clawvault-local +28 -0
- package/workspace-bin/compile-boot +494 -0
- package/workspace-bin/daily-log-writer.mjs +251 -0
- package/workspace-bin/evolve +540 -0
- package/workspace-bin/fitness_score.py +395 -0
- package/workspace-bin/hooks/pre-commit +80 -0
- package/workspace-bin/install-daemon +299 -0
- package/workspace-bin/lane-watchdog.js +232 -0
- package/workspace-bin/lib/__init__.py +0 -0
- package/workspace-bin/lib/frontmatter.py +114 -0
- package/workspace-bin/memory-daemon.mjs +879 -0
- package/workspace-bin/memory-maintenance.mjs +531 -0
- package/workspace-bin/mesh-bridge.mjs +154 -0
- package/workspace-bin/multi-review +130 -0
- package/workspace-bin/obsidian +125 -0
- package/workspace-bin/obsidian-sync.mjs +888 -0
- package/workspace-bin/openclaw-register-source +102 -0
- package/workspace-bin/proactive-scan +147 -0
- package/workspace-bin/quality-gate +175 -0
- package/workspace-bin/screenshot +96 -0
- package/workspace-bin/session-recap +453 -0
- package/workspace-bin/skill-audit +494 -0
- package/workspace-bin/skill-quality-check +134 -0
- package/workspace-bin/skill-routing-eval +599 -0
- package/workspace-bin/soul-prompt +251 -0
- package/workspace-bin/subagent-audit.mjs +267 -0
- package/workspace-bin/test-multi-soul-workflow +130 -0
- package/workspace-bin/trust-registry +465 -0
- package/workspace-docs/AGENTS.md +201 -0
- package/workspace-docs/CLAUDE.md +64 -0
- package/workspace-docs/PRINCIPLES.md +81 -0
- package/workspace-docs/SOUL.md +48 -0
|
@@ -0,0 +1,320 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: google-drive
|
|
3
|
+
description: "Google Drive API integration with managed OAuth via Maton gateway. List, search, create, download, share, and manage files and folders. Use when users want to interact with Google Drive."
|
|
4
|
+
compatibility: Requires network access and valid Maton API key
|
|
5
|
+
triggers:
|
|
6
|
+
- "google drive"
|
|
7
|
+
- "upload to drive"
|
|
8
|
+
- "list drive files"
|
|
9
|
+
- "download from google drive"
|
|
10
|
+
- "share a google doc"
|
|
11
|
+
negative_triggers:
|
|
12
|
+
- "local filesystem"
|
|
13
|
+
- "dropbox"
|
|
14
|
+
- "icloud"
|
|
15
|
+
- "google sheets formulas"
|
|
16
|
+
metadata:
|
|
17
|
+
author: maton
|
|
18
|
+
version: "1.0"
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
# Google Drive
|
|
22
|
+
|
|
23
|
+
Access the Google Drive API with managed OAuth authentication. List, search, create, and manage files and folders.
|
|
24
|
+
|
|
25
|
+
## Quick Start
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
# List files
|
|
29
|
+
curl -s -X GET 'https://gateway.maton.ai/google-drive/drive/v3/files?pageSize=10' \
|
|
30
|
+
-H 'Authorization: Bearer YOUR_API_KEY'
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Base URL
|
|
34
|
+
|
|
35
|
+
```
|
|
36
|
+
https://gateway.maton.ai/google-drive/{native-api-path}
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Replace `{native-api-path}` with the actual Google Drive API endpoint path. The gateway proxies requests to `www.googleapis.com` and automatically injects your OAuth token.
|
|
40
|
+
|
|
41
|
+
## Authentication
|
|
42
|
+
|
|
43
|
+
All requests require the Maton API key in the Authorization header:
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
Authorization: Bearer YOUR_API_KEY
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
**Environment Variable:** Set your API key as `MATON_API_KEY`:
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
export MATON_API_KEY="YOUR_API_KEY"
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### Getting Your API Key
|
|
56
|
+
|
|
57
|
+
1. Sign in or create an account at [maton.ai](https://maton.ai)
|
|
58
|
+
2. Go to [maton.ai/settings](https://maton.ai/settings)
|
|
59
|
+
3. Copy your API key
|
|
60
|
+
|
|
61
|
+
## Connection Management
|
|
62
|
+
|
|
63
|
+
Manage your Google OAuth connections at `https://ctrl.maton.ai`.
|
|
64
|
+
|
|
65
|
+
### List Connections
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
curl -s -X GET 'https://ctrl.maton.ai/connections?app=google-drive&status=ACTIVE' \
|
|
69
|
+
-H 'Authorization: Bearer YOUR_API_KEY'
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### Create Connection
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
curl -s -X POST 'https://ctrl.maton.ai/connections' \
|
|
76
|
+
-H 'Content-Type: application/json' \
|
|
77
|
+
-H 'Authorization: Bearer YOUR_API_KEY' \
|
|
78
|
+
-d '{"app": "google-drive"}'
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### Get Connection
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
curl -s -X GET 'https://ctrl.maton.ai/connections/{connection_id}' \
|
|
85
|
+
-H 'Authorization: Bearer YOUR_API_KEY'
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
**Response:**
|
|
89
|
+
```json
|
|
90
|
+
{
|
|
91
|
+
"connection": {
|
|
92
|
+
"connection_id": "21fd90f9-5935-43cd-b6c8-bde9d915ca80",
|
|
93
|
+
"status": "ACTIVE",
|
|
94
|
+
"creation_time": "2025-12-08T07:20:53.488460Z",
|
|
95
|
+
"last_updated_time": "2026-01-31T20:03:32.593153Z",
|
|
96
|
+
"url": "https://connect.maton.ai/?session_token=...",
|
|
97
|
+
"app": "google-drive",
|
|
98
|
+
"metadata": {}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
Open the returned `url` in a browser to complete OAuth authorization.
|
|
104
|
+
|
|
105
|
+
### Delete Connection
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
curl -s -X DELETE 'https://ctrl.maton.ai/connections/{connection_id}' \
|
|
109
|
+
-H 'Authorization: Bearer YOUR_API_KEY'
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
### Specifying Connection
|
|
113
|
+
|
|
114
|
+
If you have multiple Google Drive connections, specify which one to use with the `Maton-Connection` header:
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
curl -s -X GET 'https://gateway.maton.ai/google-drive/drive/v3/files?pageSize=10' \
|
|
118
|
+
-H 'Authorization: Bearer YOUR_API_KEY' \
|
|
119
|
+
-H 'Maton-Connection: 21fd90f9-5935-43cd-b6c8-bde9d915ca80'
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
If omitted, the gateway uses the default (oldest) active connection.
|
|
123
|
+
|
|
124
|
+
## API Reference
|
|
125
|
+
|
|
126
|
+
### List Files
|
|
127
|
+
|
|
128
|
+
```bash
|
|
129
|
+
GET /google-drive/drive/v3/files?pageSize=10
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
With query:
|
|
133
|
+
|
|
134
|
+
```bash
|
|
135
|
+
GET /google-drive/drive/v3/files?q=name%20contains%20'report'&pageSize=10
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
Only folders:
|
|
139
|
+
|
|
140
|
+
```bash
|
|
141
|
+
GET /google-drive/drive/v3/files?q=mimeType='application/vnd.google-apps.folder'
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
Files in specific folder:
|
|
145
|
+
|
|
146
|
+
```bash
|
|
147
|
+
GET /google-drive/drive/v3/files?q='FOLDER_ID'+in+parents
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
With fields:
|
|
151
|
+
|
|
152
|
+
```bash
|
|
153
|
+
GET /google-drive/drive/v3/files?fields=files(id,name,mimeType,createdTime,modifiedTime,size)
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
### Get File Metadata
|
|
157
|
+
|
|
158
|
+
```bash
|
|
159
|
+
GET /google-drive/drive/v3/files/{fileId}?fields=id,name,mimeType,size,createdTime
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
### Download File Content
|
|
163
|
+
|
|
164
|
+
```bash
|
|
165
|
+
GET /google-drive/drive/v3/files/{fileId}?alt=media
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
### Export Google Docs
|
|
169
|
+
|
|
170
|
+
```bash
|
|
171
|
+
GET /google-drive/drive/v3/files/{fileId}/export?mimeType=application/pdf
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
### Create File (metadata only)
|
|
175
|
+
|
|
176
|
+
```bash
|
|
177
|
+
POST /google-drive/drive/v3/files
|
|
178
|
+
Content-Type: application/json
|
|
179
|
+
|
|
180
|
+
{
|
|
181
|
+
"name": "New Document",
|
|
182
|
+
"mimeType": "application/vnd.google-apps.document"
|
|
183
|
+
}
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
### Create Folder
|
|
187
|
+
|
|
188
|
+
```bash
|
|
189
|
+
POST /google-drive/drive/v3/files
|
|
190
|
+
Content-Type: application/json
|
|
191
|
+
|
|
192
|
+
{
|
|
193
|
+
"name": "New Folder",
|
|
194
|
+
"mimeType": "application/vnd.google-apps.folder"
|
|
195
|
+
}
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
### Update File Metadata
|
|
199
|
+
|
|
200
|
+
```bash
|
|
201
|
+
PATCH /google-drive/drive/v3/files/{fileId}
|
|
202
|
+
Content-Type: application/json
|
|
203
|
+
|
|
204
|
+
{
|
|
205
|
+
"name": "Renamed File"
|
|
206
|
+
}
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
### Move File to Folder
|
|
210
|
+
|
|
211
|
+
```bash
|
|
212
|
+
PATCH /google-drive/drive/v3/files/{fileId}?addParents=NEW_FOLDER_ID&removeParents=OLD_FOLDER_ID
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
### Delete File
|
|
216
|
+
|
|
217
|
+
```bash
|
|
218
|
+
DELETE /google-drive/drive/v3/files/{fileId}
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
### Copy File
|
|
222
|
+
|
|
223
|
+
```bash
|
|
224
|
+
POST /google-drive/drive/v3/files/{fileId}/copy
|
|
225
|
+
Content-Type: application/json
|
|
226
|
+
|
|
227
|
+
{
|
|
228
|
+
"name": "Copy of File"
|
|
229
|
+
}
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
### Share File
|
|
233
|
+
|
|
234
|
+
```bash
|
|
235
|
+
POST /google-drive/drive/v3/files/{fileId}/permissions
|
|
236
|
+
Content-Type: application/json
|
|
237
|
+
|
|
238
|
+
{
|
|
239
|
+
"role": "reader",
|
|
240
|
+
"type": "user",
|
|
241
|
+
"emailAddress": "user@example.com"
|
|
242
|
+
}
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
## Query Operators
|
|
246
|
+
|
|
247
|
+
Use in the `q` parameter:
|
|
248
|
+
- `name = 'exact name'`
|
|
249
|
+
- `name contains 'partial'`
|
|
250
|
+
- `mimeType = 'application/pdf'`
|
|
251
|
+
- `'folderId' in parents`
|
|
252
|
+
- `trashed = false`
|
|
253
|
+
- `modifiedTime > '2024-01-01T00:00:00'`
|
|
254
|
+
|
|
255
|
+
Combine with `and`:
|
|
256
|
+
```
|
|
257
|
+
name contains 'report' and mimeType = 'application/pdf'
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
## Common MIME Types
|
|
261
|
+
|
|
262
|
+
- `application/vnd.google-apps.document` - Google Docs
|
|
263
|
+
- `application/vnd.google-apps.spreadsheet` - Google Sheets
|
|
264
|
+
- `application/vnd.google-apps.presentation` - Google Slides
|
|
265
|
+
- `application/vnd.google-apps.folder` - Folder
|
|
266
|
+
- `application/pdf` - PDF
|
|
267
|
+
|
|
268
|
+
## Code Examples
|
|
269
|
+
|
|
270
|
+
### JavaScript
|
|
271
|
+
|
|
272
|
+
```javascript
|
|
273
|
+
const response = await fetch(
|
|
274
|
+
'https://gateway.maton.ai/google-drive/drive/v3/files?pageSize=10',
|
|
275
|
+
{
|
|
276
|
+
headers: {
|
|
277
|
+
'Authorization': `Bearer ${process.env.MATON_API_KEY}`
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
);
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
### Python
|
|
284
|
+
|
|
285
|
+
```python
|
|
286
|
+
import os
|
|
287
|
+
import requests
|
|
288
|
+
|
|
289
|
+
response = requests.get(
|
|
290
|
+
'https://gateway.maton.ai/google-drive/drive/v3/files',
|
|
291
|
+
headers={'Authorization': f'Bearer {os.environ["MATON_API_KEY"]}'},
|
|
292
|
+
params={'pageSize': 10}
|
|
293
|
+
)
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
## Notes
|
|
297
|
+
|
|
298
|
+
- Use `fields` parameter to limit response data
|
|
299
|
+
- Pagination uses `pageToken` from previous response's `nextPageToken`
|
|
300
|
+
- Export is for Google Workspace files only
|
|
301
|
+
|
|
302
|
+
## Error Handling
|
|
303
|
+
|
|
304
|
+
| Status | Meaning |
|
|
305
|
+
|--------|---------|
|
|
306
|
+
| 400 | Missing Google Drive connection |
|
|
307
|
+
| 401 | Invalid or missing Maton API key |
|
|
308
|
+
| 429 | Rate limited (10 req/sec per account) |
|
|
309
|
+
| 4xx/5xx | Passthrough error from Google Drive API |
|
|
310
|
+
|
|
311
|
+
## Resources
|
|
312
|
+
|
|
313
|
+
- [Drive API Overview](https://developers.google.com/drive/api/reference/rest/v3)
|
|
314
|
+
- [List Files](https://developers.google.com/drive/api/reference/rest/v3/files/list)
|
|
315
|
+
- [Get File](https://developers.google.com/drive/api/reference/rest/v3/files/get)
|
|
316
|
+
- [Create File](https://developers.google.com/drive/api/reference/rest/v3/files/create)
|
|
317
|
+
- [Update File](https://developers.google.com/drive/api/reference/rest/v3/files/update)
|
|
318
|
+
- [Delete File](https://developers.google.com/drive/api/reference/rest/v3/files/delete)
|
|
319
|
+
- [Export File](https://developers.google.com/drive/api/reference/rest/v3/files/export)
|
|
320
|
+
- [Search Query Syntax](https://developers.google.com/drive/api/guides/search-files)
|
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: growth-loop
|
|
3
|
+
description: "Closed-loop content/growth operations engine. Platform-agnostic, objective-agnostic. Runs the cycle: Research → Generate → Distribute → Measure → Diagnose → Iterate. Use when user wants to set up a content pipeline, growth experiment, marketing loop, outreach system, or any systematic produce-distribute-measure-learn workflow."
|
|
4
|
+
triggers:
|
|
5
|
+
- "set up a content pipeline"
|
|
6
|
+
- "build a growth loop"
|
|
7
|
+
- "create a marketing loop"
|
|
8
|
+
- "run a growth experiment"
|
|
9
|
+
- "set up an outreach system"
|
|
10
|
+
negative_triggers:
|
|
11
|
+
- "write a single blog post"
|
|
12
|
+
- "just do some research"
|
|
13
|
+
- "marketing strategy advice"
|
|
14
|
+
metadata:
|
|
15
|
+
openclaw:
|
|
16
|
+
version: "1.0.0"
|
|
17
|
+
author: "Daedalus"
|
|
18
|
+
license: "MIT"
|
|
19
|
+
tags: ["growth", "content", "marketing", "automation", "analytics", "loop"]
|
|
20
|
+
category: "operations"
|
|
21
|
+
clawdbot:
|
|
22
|
+
emoji: "🔄"
|
|
23
|
+
requires:
|
|
24
|
+
bins: ["jq"]
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
# Growth Loop
|
|
28
|
+
|
|
29
|
+
Closed-loop engine for systematic content/growth operations. Platform-agnostic, objective-agnostic.
|
|
30
|
+
|
|
31
|
+
## The Loop
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
┌─────────────────────────────────────────┐
|
|
35
|
+
│ │
|
|
36
|
+
│ 1. RESEARCH ──► 2. GENERATE │
|
|
37
|
+
│ ▲ │ │
|
|
38
|
+
│ │ ▼ │
|
|
39
|
+
│ 6. ITERATE 3. DISTRIBUTE │
|
|
40
|
+
│ ▲ │ │
|
|
41
|
+
│ │ ▼ │
|
|
42
|
+
│ 5. DIAGNOSE ◄── 4. MEASURE │
|
|
43
|
+
│ │
|
|
44
|
+
└─────────────────────────────────────────┘
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Every growth activity — TikTok slideshows, blog SEO, email sequences, product listings, outreach, dev marketing — is an instance of this loop with different config.
|
|
48
|
+
|
|
49
|
+
## When to Use
|
|
50
|
+
|
|
51
|
+
- Setting up a new content/growth channel
|
|
52
|
+
- Running a produce → distribute → measure experiment
|
|
53
|
+
- Building an outreach or lead-gen pipeline
|
|
54
|
+
- Optimizing any conversion funnel
|
|
55
|
+
- Any task where you generate something, put it in front of people, and want to learn from the results
|
|
56
|
+
|
|
57
|
+
## When NOT to Use
|
|
58
|
+
|
|
59
|
+
- One-off content creation (just write it directly)
|
|
60
|
+
- Pure research with no distribution intent
|
|
61
|
+
- Tasks where measurement isn't possible or relevant
|
|
62
|
+
|
|
63
|
+
## Phases
|
|
64
|
+
|
|
65
|
+
### Phase 1: RESEARCH
|
|
66
|
+
|
|
67
|
+
**Goal:** Understand what works in the target space before producing anything.
|
|
68
|
+
|
|
69
|
+
**Actions:**
|
|
70
|
+
- Identify 5-10 top performers in the space (competitors, influencers, reference points)
|
|
71
|
+
- Catalog what they do: format, frequency, tone, hooks, distribution channels
|
|
72
|
+
- Note engagement patterns: what gets signal (likes, shares, saves, conversions) vs noise
|
|
73
|
+
- Identify gaps: what's underserved, what's stale, where's the opening
|
|
74
|
+
|
|
75
|
+
**Output:** `campaign/research.md` — competitive landscape, engagement patterns, identified gaps, initial hypotheses.
|
|
76
|
+
|
|
77
|
+
**Tools to consider:** `tavily-search`, `web-search`, `deep-research`, `twitter` (timeline reads), platform-specific APIs.
|
|
78
|
+
|
|
79
|
+
### Phase 2: GENERATE
|
|
80
|
+
|
|
81
|
+
**Goal:** Produce content/assets based on research insights and current generation rules.
|
|
82
|
+
|
|
83
|
+
**Actions:**
|
|
84
|
+
- Define the content spec: format, length, tone, hook structure, CTA
|
|
85
|
+
- Generate a batch (not one piece — enough to test variations)
|
|
86
|
+
- Quality-check against research findings (does this match what works?)
|
|
87
|
+
- Stage for review — human approves before anything goes live
|
|
88
|
+
|
|
89
|
+
**Output:** `campaign/drafts/` — generated assets ready for human review.
|
|
90
|
+
|
|
91
|
+
**Rules file:** `campaign/gen-rules.md` — the living document that defines *how* to generate. Updated in Phase 6.
|
|
92
|
+
|
|
93
|
+
**Tools to consider:** `openai-image-gen`, `humanizer` (for text), platform-specific content tools.
|
|
94
|
+
|
|
95
|
+
### Phase 3: DISTRIBUTE
|
|
96
|
+
|
|
97
|
+
**Goal:** Push approved content to the target platform. Drafts first, never auto-publish.
|
|
98
|
+
|
|
99
|
+
**Actions:**
|
|
100
|
+
- Push to platform via API or manual staging (depends on channel)
|
|
101
|
+
- Tag/label for tracking (campaign ID, variant ID, timestamp)
|
|
102
|
+
- Log what was published, where, when, with what parameters
|
|
103
|
+
|
|
104
|
+
**Output:** `campaign/distribution-log.jsonl` — append-only log of every piece distributed.
|
|
105
|
+
|
|
106
|
+
```jsonl
|
|
107
|
+
{"id":"001","platform":"twitter","published_at":"2026-02-17T20:00:00-05:00","variant":"hook-a","content_ref":"drafts/tweet-001.md","status":"live"}
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
**Tools to consider:** `twitter` (post), platform APIs, scheduling tools.
|
|
111
|
+
|
|
112
|
+
### Phase 4: MEASURE
|
|
113
|
+
|
|
114
|
+
**Goal:** Pull performance data back. Raw numbers, no interpretation yet.
|
|
115
|
+
|
|
116
|
+
**Actions:**
|
|
117
|
+
- Collect platform metrics per piece (impressions, clicks, engagement, conversions)
|
|
118
|
+
- Collect business metrics if available (revenue, signups, leads generated)
|
|
119
|
+
- Merge with distribution log to create unified dataset
|
|
120
|
+
|
|
121
|
+
**Output:** `campaign/metrics.jsonl` — raw performance data keyed to distribution log entries.
|
|
122
|
+
|
|
123
|
+
```jsonl
|
|
124
|
+
{"id":"001","measured_at":"2026-02-18T20:00:00-05:00","impressions":1200,"clicks":45,"conversions":3,"revenue":0}
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
**Cadence:** Define measurement windows per channel (e.g., 24h for social, 7d for SEO, 30d for email sequences).
|
|
128
|
+
|
|
129
|
+
### Phase 5: DIAGNOSE
|
|
130
|
+
|
|
131
|
+
**Goal:** Figure out *why* things worked or didn't. Cross-reference engagement with actual outcomes.
|
|
132
|
+
|
|
133
|
+
**Actions:**
|
|
134
|
+
- Rank content by objective metric (not vanity — conversions, revenue, qualified leads)
|
|
135
|
+
- Identify patterns in winners vs losers: hook type, format, topic, timing, audience
|
|
136
|
+
- Find funnel breaks: high impressions but no clicks? High clicks but no conversions?
|
|
137
|
+
- Compare against research hypotheses — were we right about what works?
|
|
138
|
+
|
|
139
|
+
**Output:** `campaign/diagnosis.md` — what worked, what didn't, why, and where the funnel breaks.
|
|
140
|
+
|
|
141
|
+
**Diagnosis framework:**
|
|
142
|
+
```
|
|
143
|
+
For each piece/variant:
|
|
144
|
+
- Reach: did people see it? (impressions)
|
|
145
|
+
- Hook: did they stop? (click-through rate)
|
|
146
|
+
- Hold: did they stay? (engagement rate, time on page)
|
|
147
|
+
- Convert: did they act? (conversion rate)
|
|
148
|
+
- Value: was the action worth it? (revenue per conversion)
|
|
149
|
+
|
|
150
|
+
The bottleneck is the first stage that drops below threshold.
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
### Phase 6: ITERATE
|
|
154
|
+
|
|
155
|
+
**Goal:** Update the generation rules based on diagnosis, then loop back to Phase 2.
|
|
156
|
+
|
|
157
|
+
**Actions:**
|
|
158
|
+
- Update `campaign/gen-rules.md` with specific, testable changes
|
|
159
|
+
- Document what was changed and why (for future diagnosis)
|
|
160
|
+
- Retire underperforming approaches explicitly (don't just hope)
|
|
161
|
+
- Identify new hypotheses to test in the next batch
|
|
162
|
+
|
|
163
|
+
**Output:** Updated `campaign/gen-rules.md` + `campaign/iteration-log.md` entry.
|
|
164
|
+
|
|
165
|
+
**Iteration log entry format:**
|
|
166
|
+
```markdown
|
|
167
|
+
## Iteration N — YYYY-MM-DD HH:MM
|
|
168
|
+
|
|
169
|
+
### What diagnosis showed
|
|
170
|
+
- [key findings]
|
|
171
|
+
|
|
172
|
+
### Changes to gen-rules
|
|
173
|
+
- [specific rule changes with rationale]
|
|
174
|
+
|
|
175
|
+
### Hypotheses for next batch
|
|
176
|
+
- [what we're testing and expected outcome]
|
|
177
|
+
|
|
178
|
+
### Retired approaches
|
|
179
|
+
- [what we're stopping and why]
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
## Campaign Setup
|
|
183
|
+
|
|
184
|
+
To instantiate a new loop, create a campaign directory:
|
|
185
|
+
|
|
186
|
+
```
|
|
187
|
+
campaign-name/
|
|
188
|
+
├── config.json # Platform, objective, audience, constraints
|
|
189
|
+
├── research.md # Phase 1 output
|
|
190
|
+
├── gen-rules.md # Living generation rules (updated each iteration)
|
|
191
|
+
├── drafts/ # Phase 2 output (human reviews before distribution)
|
|
192
|
+
├── distribution-log.jsonl # Phase 3 log
|
|
193
|
+
├── metrics.jsonl # Phase 4 data
|
|
194
|
+
├── diagnosis.md # Phase 5 analysis (rewritten each cycle)
|
|
195
|
+
├── iteration-log.md # Phase 6 changelog (append-only)
|
|
196
|
+
└── archive/ # Old drafts, superseded rules, etc.
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
### config.json
|
|
200
|
+
|
|
201
|
+
```json
|
|
202
|
+
{
|
|
203
|
+
"name": "campaign-name",
|
|
204
|
+
"platform": "twitter|blog|email|marketplace|github|outreach|custom",
|
|
205
|
+
"objective": "what success looks like in one sentence",
|
|
206
|
+
"audience": "who we're reaching",
|
|
207
|
+
"kpi": "primary metric we optimize for",
|
|
208
|
+
"secondary_kpis": ["other metrics worth tracking"],
|
|
209
|
+
"constraints": {
|
|
210
|
+
"budget": "0|amount",
|
|
211
|
+
"frequency": "pieces per period",
|
|
212
|
+
"tone": "brand voice notes",
|
|
213
|
+
"human_approval": true
|
|
214
|
+
},
|
|
215
|
+
"measurement_window": "24h|7d|30d",
|
|
216
|
+
"created_at": "ISO timestamp",
|
|
217
|
+
"status": "research|generating|distributing|measuring|diagnosing|iterating|paused"
|
|
218
|
+
}
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
## Platform Playbooks
|
|
222
|
+
|
|
223
|
+
These are starting-point `gen-rules.md` templates. Each gets refined by the loop.
|
|
224
|
+
|
|
225
|
+
### Social (Twitter, TikTok, Instagram)
|
|
226
|
+
- Hook in first line/3 seconds
|
|
227
|
+
- One idea per post
|
|
228
|
+
- Native format (no external links in feed posts — thread or carousel instead)
|
|
229
|
+
- Post frequency: test 1-3x/day, measure, adjust
|
|
230
|
+
- KPI: engagement rate → profile visits → link clicks → conversions
|
|
231
|
+
|
|
232
|
+
### Blog / SEO
|
|
233
|
+
- Target specific long-tail keyword per piece
|
|
234
|
+
- Structure: hook → problem → solution → proof → CTA
|
|
235
|
+
- Internal linking to conversion pages
|
|
236
|
+
- KPI: organic traffic → time on page → conversion rate
|
|
237
|
+
|
|
238
|
+
### Email
|
|
239
|
+
- Subject line = everything (test 3 variants minimum)
|
|
240
|
+
- One CTA per email
|
|
241
|
+
- Sequence logic: trigger → value → value → soft ask → hard ask → break
|
|
242
|
+
- KPI: open rate → click rate → conversion rate → unsubscribe rate (ceiling)
|
|
243
|
+
|
|
244
|
+
### Outreach (Sales, Partnerships, PR)
|
|
245
|
+
- Personalization in first sentence (prove you know them)
|
|
246
|
+
- Value prop in second sentence (what's in it for them)
|
|
247
|
+
- CTA = low friction (reply, not signup)
|
|
248
|
+
- Follow-up cadence: day 3, day 7, day 14, stop
|
|
249
|
+
- KPI: response rate → meeting rate → close rate
|
|
250
|
+
|
|
251
|
+
### Product Listings (Marketplace, App Store)
|
|
252
|
+
- Title optimization: primary keyword + differentiator
|
|
253
|
+
- Images: hero shot, feature callouts, social proof, size/scale reference
|
|
254
|
+
- Description: benefit-led, scannable, keyword-rich
|
|
255
|
+
- KPI: impressions → click-through → conversion rate → reviews
|
|
256
|
+
|
|
257
|
+
### Dev Marketing (GitHub, DevRel)
|
|
258
|
+
- README = landing page (problem → solution → quickstart → proof)
|
|
259
|
+
- Example projects > documentation walls
|
|
260
|
+
- Community engagement: answer issues fast, ship what people ask for
|
|
261
|
+
- KPI: stars → clones → issues opened → contributors → downstream usage
|
|
262
|
+
|
|
263
|
+
## Scripts
|
|
264
|
+
|
|
265
|
+
- `scripts/init-campaign.sh <name> <platform>` — scaffold a new campaign directory with config template and platform-specific gen-rules starter.
|
|
266
|
+
|
|
267
|
+
## References
|
|
268
|
+
|
|
269
|
+
- `references/diagnosis-framework.md` — expanded funnel diagnosis methodology.
|
|
270
|
+
- `references/platform-benchmarks.md` — baseline metrics by platform (what "good" looks like).
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
# Diagnosis Framework
|
|
2
|
+
|
|
3
|
+
## The Funnel
|
|
4
|
+
|
|
5
|
+
Every piece of content passes through a funnel. Diagnosis means finding where it breaks.
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
REACH → HOOK → HOLD → CONVERT → VALUE
|
|
9
|
+
│ │ │ │ │
|
|
10
|
+
│ │ │ │ └─ Revenue per conversion
|
|
11
|
+
│ │ │ └─ Conversion rate (action taken)
|
|
12
|
+
│ │ └─ Engagement / time on page / watch time
|
|
13
|
+
│ └─ Click-through rate / stop rate
|
|
14
|
+
└─ Impressions / deliverability
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
**The bottleneck is the first stage that drops below threshold.**
|
|
18
|
+
|
|
19
|
+
Don't optimize Hook if Reach is the problem. Don't optimize Convert if nobody's staying past the first 3 seconds.
|
|
20
|
+
|
|
21
|
+
## Stage Thresholds (starting points — calibrate with platform benchmarks)
|
|
22
|
+
|
|
23
|
+
| Stage | Metric | Poor | OK | Good |
|
|
24
|
+
|-------|--------|------|----|------|
|
|
25
|
+
| Reach | Impressions relative to audience size | <1% | 1-5% | >5% |
|
|
26
|
+
| Hook | CTR / stop rate | <1% | 1-3% | >3% |
|
|
27
|
+
| Hold | Engagement rate / avg time | <10s / <5% | 10-30s / 5-15% | >30s / >15% |
|
|
28
|
+
| Convert | Conversion rate | <0.5% | 0.5-2% | >2% |
|
|
29
|
+
| Value | Revenue per conversion | Below CAC | At CAC | Above CAC |
|
|
30
|
+
|
|
31
|
+
These vary wildly by platform and audience. Replace with your own baselines after 2-3 measurement cycles.
|
|
32
|
+
|
|
33
|
+
## Diagnosis Protocol
|
|
34
|
+
|
|
35
|
+
### Step 1: Sort by Objective
|
|
36
|
+
|
|
37
|
+
Rank all pieces by the KPI that matters (usually conversions or revenue, not impressions).
|
|
38
|
+
|
|
39
|
+
### Step 2: Compare Winners vs Losers
|
|
40
|
+
|
|
41
|
+
For top 20% vs bottom 20%, compare:
|
|
42
|
+
- Content attributes: topic, format, length, hook type, CTA type
|
|
43
|
+
- Distribution attributes: time of day, day of week, channel variant
|
|
44
|
+
- Audience attributes: segment, source, device (if available)
|
|
45
|
+
|
|
46
|
+
### Step 3: Identify the Break Point
|
|
47
|
+
|
|
48
|
+
For underperformers, walk the funnel:
|
|
49
|
+
1. Did people see it? (Reach) — if no: distribution problem
|
|
50
|
+
2. Did they stop/click? (Hook) — if no: hook/headline problem
|
|
51
|
+
3. Did they stay? (Hold) — if no: content quality or format problem
|
|
52
|
+
4. Did they act? (Convert) — if no: CTA, offer, or trust problem
|
|
53
|
+
5. Was the action valuable? (Value) — if no: targeting or offer-market fit problem
|
|
54
|
+
|
|
55
|
+
### Step 4: Formulate Testable Hypotheses
|
|
56
|
+
|
|
57
|
+
Bad: "We need better content"
|
|
58
|
+
Good: "Hook-style A (question) outperformed hook-style B (statement) by 2.3x CTR. Next batch: 70% question hooks, test a third style (bold claim)."
|
|
59
|
+
|
|
60
|
+
### Step 5: Update Gen-Rules
|
|
61
|
+
|
|
62
|
+
Every diagnosis should produce at least one specific, testable change to `gen-rules.md`. If diagnosis doesn't change anything, the measurement wasn't granular enough.
|
|
63
|
+
|
|
64
|
+
## Common Patterns
|
|
65
|
+
|
|
66
|
+
### High Reach, Low Hook
|
|
67
|
+
- Headlines/hooks aren't stopping people
|
|
68
|
+
- Fix: test different hook archetypes (question, bold claim, number, story, controversy)
|
|
69
|
+
|
|
70
|
+
### High Hook, Low Hold
|
|
71
|
+
- Content doesn't deliver on the hook's promise
|
|
72
|
+
- Fix: front-load value, reduce fluff, match hook specificity
|
|
73
|
+
|
|
74
|
+
### High Hold, Low Convert
|
|
75
|
+
- People like the content but don't take action
|
|
76
|
+
- Fix: CTA clarity, reduce friction, add urgency or social proof near CTA
|
|
77
|
+
|
|
78
|
+
### High Convert, Low Value
|
|
79
|
+
- Getting conversions but they're not worth much
|
|
80
|
+
- Fix: targeting (wrong audience), offer mismatch, or qualification step needed
|
|
81
|
+
|
|
82
|
+
### Everything Low
|
|
83
|
+
- Wrong channel, wrong audience, or wrong offer entirely
|
|
84
|
+
- Fix: go back to Phase 1 (Research). This isn't an optimization problem, it's a strategy problem.
|