opencode-skills-collection 3.1.0 → 3.1.2

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.
Files changed (291) hide show
  1. package/bundled-skills/.antigravity-install-manifest.json +84 -1
  2. package/bundled-skills/2slides-ppt-generator/SKILL.md +8 -7
  3. package/bundled-skills/android-cli/SKILL.md +19 -7
  4. package/bundled-skills/android-ui-journey-testing/SKILL.md +191 -0
  5. package/bundled-skills/apple-notes-search/SKILL.md +12 -2
  6. package/bundled-skills/ask-matt/SKILL.md +92 -0
  7. package/bundled-skills/atlas-ledger/SKILL.md +8 -0
  8. package/bundled-skills/bugs-are-annoying/SKILL.md +137 -0
  9. package/bundled-skills/codebase-design/DEEPENING.md +37 -0
  10. package/bundled-skills/codebase-design/DESIGN-IT-TWICE.md +44 -0
  11. package/bundled-skills/codebase-design/SKILL.md +145 -0
  12. package/bundled-skills/codex-fable5/SKILL.md +10 -2
  13. package/bundled-skills/competitor-analysis/LICENSE.txt +21 -0
  14. package/bundled-skills/competitor-analysis/SKILL.md +434 -0
  15. package/bundled-skills/competitor-analysis/references/battle-card-subagent.md +127 -0
  16. package/bundled-skills/competitor-analysis/references/battle-card.md +91 -0
  17. package/bundled-skills/competitor-analysis/references/example-research.md +130 -0
  18. package/bundled-skills/competitor-analysis/references/report-template.html +127 -0
  19. package/bundled-skills/competitor-analysis/references/research-patterns.md +217 -0
  20. package/bundled-skills/competitor-analysis/references/workflow.md +434 -0
  21. package/bundled-skills/competitor-analysis/scripts/capture_screenshots.mjs +142 -0
  22. package/bundled-skills/competitor-analysis/scripts/compile_report.mjs +929 -0
  23. package/bundled-skills/competitor-analysis/scripts/extract_vs_names.mjs +140 -0
  24. package/bundled-skills/competitor-analysis/scripts/gate_candidates.mjs +224 -0
  25. package/bundled-skills/competitor-analysis/scripts/list_urls.mjs +90 -0
  26. package/bundled-skills/competitor-analysis/scripts/md_utils.mjs +50 -0
  27. package/bundled-skills/competitor-analysis/scripts/merge_partials.mjs +291 -0
  28. package/bundled-skills/competitor-analysis/scripts/package.json +6 -0
  29. package/bundled-skills/design-it/3d-ui/SKILL.md +259 -0
  30. package/bundled-skills/design-it/SKILL.md +170 -0
  31. package/bundled-skills/design-it/ai-native-ui/SKILL.md +295 -0
  32. package/bundled-skills/design-it/aurora-ui/SKILL.md +307 -0
  33. package/bundled-skills/design-it/bento-ui/SKILL.md +314 -0
  34. package/bundled-skills/design-it/brutalism/SKILL.md +270 -0
  35. package/bundled-skills/design-it/brutalist-typography/SKILL.md +287 -0
  36. package/bundled-skills/design-it/card-based-design/SKILL.md +262 -0
  37. package/bundled-skills/design-it/claymorphism/SKILL.md +287 -0
  38. package/bundled-skills/design-it/color-blocking/SKILL.md +278 -0
  39. package/bundled-skills/design-it/command-center-ui/SKILL.md +345 -0
  40. package/bundled-skills/design-it/cyber-y2k/SKILL.md +312 -0
  41. package/bundled-skills/design-it/cyberpunk-ui/SKILL.md +262 -0
  42. package/bundled-skills/design-it/dark-mode/SKILL.md +289 -0
  43. package/bundled-skills/design-it/dashboard-design/SKILL.md +331 -0
  44. package/bundled-skills/design-it/data-dense-design/SKILL.md +322 -0
  45. package/bundled-skills/design-it/duotone-design/SKILL.md +248 -0
  46. package/bundled-skills/design-it/editorial-design/SKILL.md +328 -0
  47. package/bundled-skills/design-it/flat-design/SKILL.md +221 -0
  48. package/bundled-skills/design-it/flat-design-2/SKILL.md +240 -0
  49. package/bundled-skills/design-it/floating-ui/SKILL.md +299 -0
  50. package/bundled-skills/design-it/frutiger-aero/SKILL.md +274 -0
  51. package/bundled-skills/design-it/glassmorphism/SKILL.md +272 -0
  52. package/bundled-skills/design-it/gradient-design/SKILL.md +309 -0
  53. package/bundled-skills/design-it/high-contrast/SKILL.md +288 -0
  54. package/bundled-skills/design-it/holographic-ui/SKILL.md +310 -0
  55. package/bundled-skills/design-it/isometric-design/SKILL.md +228 -0
  56. package/bundled-skills/design-it/layered-design/SKILL.md +247 -0
  57. package/bundled-skills/design-it/material-design/SKILL.md +275 -0
  58. package/bundled-skills/design-it/maximalism/SKILL.md +297 -0
  59. package/bundled-skills/design-it/minimalism/SKILL.md +267 -0
  60. package/bundled-skills/design-it/monochromatic-ui/SKILL.md +296 -0
  61. package/bundled-skills/design-it/neo-brutalism/SKILL.md +270 -0
  62. package/bundled-skills/design-it/neumorphism/SKILL.md +248 -0
  63. package/bundled-skills/design-it/retro-design/SKILL.md +283 -0
  64. package/bundled-skills/design-it/retro-futurism/SKILL.md +259 -0
  65. package/bundled-skills/design-it/sci-fi-interface/SKILL.md +309 -0
  66. package/bundled-skills/design-it/skeuomorphism/SKILL.md +280 -0
  67. package/bundled-skills/design-it/soft-pastel/SKILL.md +307 -0
  68. package/bundled-skills/design-it/spatial-computing-ui/SKILL.md +300 -0
  69. package/bundled-skills/design-it/spatial-design/SKILL.md +268 -0
  70. package/bundled-skills/design-it/swiss-design/SKILL.md +293 -0
  71. package/bundled-skills/design-it/synthwave/SKILL.md +257 -0
  72. package/bundled-skills/design-it/tile-design/SKILL.md +297 -0
  73. package/bundled-skills/design-it/typography-first/SKILL.md +247 -0
  74. package/bundled-skills/design-it/vaporwave/SKILL.md +331 -0
  75. package/bundled-skills/design-it/vibrant-maximalism/SKILL.md +291 -0
  76. package/bundled-skills/design-it/widget-based-design/SKILL.md +274 -0
  77. package/bundled-skills/design-it/y2k-design/SKILL.md +268 -0
  78. package/bundled-skills/diagnosing-bugs/SKILL.md +165 -0
  79. package/bundled-skills/diagnosing-bugs/scripts/hitl-loop.template.sh +41 -0
  80. package/bundled-skills/docs/contributors/skill-scoring.md +235 -0
  81. package/bundled-skills/docs/integrations/jetski-cortex.md +3 -3
  82. package/bundled-skills/docs/integrations/jetski-gemini-loader/README.md +1 -1
  83. package/bundled-skills/docs/maintainers/repo-growth-seo.md +3 -3
  84. package/bundled-skills/docs/maintainers/skills-update-guide.md +1 -1
  85. package/bundled-skills/docs/users/bundles.md +145 -1
  86. package/bundled-skills/docs/users/claude-code-skills.md +1 -1
  87. package/bundled-skills/docs/users/gemini-cli-skills.md +1 -1
  88. package/bundled-skills/docs/users/getting-started.md +1 -1
  89. package/bundled-skills/docs/users/kiro-integration.md +1 -1
  90. package/bundled-skills/docs/users/specialized-plugin-roadmap.md +11 -4
  91. package/bundled-skills/docs/users/usage.md +4 -4
  92. package/bundled-skills/docs/users/visual-guide.md +4 -4
  93. package/bundled-skills/domain-modeling/ADR-FORMAT.md +47 -0
  94. package/bundled-skills/domain-modeling/CONTEXT-FORMAT.md +60 -0
  95. package/bundled-skills/domain-modeling/SKILL.md +105 -0
  96. package/bundled-skills/dos-verify-done-claims/SKILL.md +16 -4
  97. package/bundled-skills/ecl-harness-engineer/agents/creator-config.md +1 -1
  98. package/bundled-skills/ecl-harness-engineer/references/environment-config-guide.md +2 -2
  99. package/bundled-skills/ecl-harness-engineer/references/environment-detection-guide.md +4 -4
  100. package/bundled-skills/event-staffing-ordering/SKILL.md +4 -0
  101. package/bundled-skills/grill-me/SKILL.md +36 -0
  102. package/bundled-skills/grill-with-docs/SKILL.md +36 -0
  103. package/bundled-skills/grilling/SKILL.md +39 -0
  104. package/bundled-skills/handoff/SKILL.md +45 -0
  105. package/bundled-skills/image-generator/.env.example +7 -0
  106. package/bundled-skills/image-generator/SKILL.md +509 -0
  107. package/bundled-skills/improve-codebase-architecture/HTML-REPORT.md +123 -0
  108. package/bundled-skills/improve-codebase-architecture/SKILL.md +97 -0
  109. package/bundled-skills/learn/SKILL.md +156 -0
  110. package/bundled-skills/lesson-generator/SKILL.md +90 -0
  111. package/bundled-skills/llm-council/.env.example +7 -0
  112. package/bundled-skills/llm-council/SKILL.md +602 -0
  113. package/bundled-skills/loop-library/SKILL.md +208 -0
  114. package/bundled-skills/loop-library/agents/openai.yaml +4 -0
  115. package/bundled-skills/loop-library/references/catalog.md +270 -0
  116. package/bundled-skills/lovable-cleanup/SKILL.md +9 -7
  117. package/bundled-skills/macos-screen-recorder/SKILL.md +9 -1
  118. package/bundled-skills/mailtrap-managing-contacts/SKILL.md +112 -0
  119. package/bundled-skills/mailtrap-sending-emails/SKILL.md +167 -0
  120. package/bundled-skills/mailtrap-setting-up-sending-domain/SKILL.md +77 -0
  121. package/bundled-skills/mailtrap-testing-with-sandbox/SKILL.md +110 -0
  122. package/bundled-skills/prototype/LOGIC.md +79 -0
  123. package/bundled-skills/prototype/SKILL.md +62 -0
  124. package/bundled-skills/prototype/UI.md +112 -0
  125. package/bundled-skills/screenstudio-alt/SKILL.md +9 -1
  126. package/bundled-skills/setup-matt-pocock-skills/SKILL.md +158 -0
  127. package/bundled-skills/setup-matt-pocock-skills/domain.md +51 -0
  128. package/bundled-skills/setup-matt-pocock-skills/issue-tracker-github.md +34 -0
  129. package/bundled-skills/setup-matt-pocock-skills/issue-tracker-gitlab.md +35 -0
  130. package/bundled-skills/setup-matt-pocock-skills/issue-tracker-local.md +19 -0
  131. package/bundled-skills/setup-matt-pocock-skills/triage-labels.md +15 -0
  132. package/bundled-skills/survey-generator/LICENSE +21 -0
  133. package/bundled-skills/survey-generator/SKILL.md +143 -0
  134. package/bundled-skills/survey-generator/build_artifact.py +208 -0
  135. package/bundled-skills/survey-generator/examples/agentic-engineering/research_bundle.json +1196 -0
  136. package/bundled-skills/survey-generator/examples/agentic-engineering/survey.html +706 -0
  137. package/bundled-skills/survey-generator/style_spec.json +85 -0
  138. package/bundled-skills/survey-generator/templates/research_bundle_template.json +69 -0
  139. package/bundled-skills/tdd/SKILL.md +139 -0
  140. package/bundled-skills/tdd/mocking.md +59 -0
  141. package/bundled-skills/tdd/refactoring.md +10 -0
  142. package/bundled-skills/tdd/tests.md +61 -0
  143. package/bundled-skills/teach/GLOSSARY-FORMAT.md +35 -0
  144. package/bundled-skills/teach/LEARNING-RECORD-FORMAT.md +46 -0
  145. package/bundled-skills/teach/MISSION-FORMAT.md +31 -0
  146. package/bundled-skills/teach/RESOURCES-FORMAT.md +32 -0
  147. package/bundled-skills/teach/SKILL.md +169 -0
  148. package/bundled-skills/to-issues/SKILL.md +115 -0
  149. package/bundled-skills/to-prd/SKILL.md +104 -0
  150. package/bundled-skills/tools-page-seo-optimizer/SKILL.md +616 -0
  151. package/bundled-skills/triage/AGENT-BRIEF.md +207 -0
  152. package/bundled-skills/triage/OUT-OF-SCOPE.md +105 -0
  153. package/bundled-skills/triage/SKILL.md +143 -0
  154. package/bundled-skills/vibecode-production-qa-validator/SKILL.md +371 -141
  155. package/bundled-skills/wiki-builder/SKILL.md +157 -0
  156. package/bundled-skills/wiki-builder/agents/openai.yaml +5 -0
  157. package/bundled-skills/wiki-builder/references/wiki-flavors.md +98 -0
  158. package/bundled-skills/wiki-builder/scripts/init_wiki.sh +105 -0
  159. package/bundled-skills/wiki-builder/templates/index.md +20 -0
  160. package/bundled-skills/wiki-builder/templates/maintenance-log.md +7 -0
  161. package/bundled-skills/wiki-builder/templates/prompts/compile-concept-page.md +12 -0
  162. package/bundled-skills/wiki-builder/templates/prompts/compile-index.md +11 -0
  163. package/bundled-skills/wiki-builder/templates/prompts/compile-source-page.md +12 -0
  164. package/bundled-skills/wiki-builder/templates/prompts/lint-wiki.md +10 -0
  165. package/bundled-skills/wiki-builder/templates/prompts/query-and-file.md +11 -0
  166. package/bundled-skills/wiki-builder/templates/sources.md +9 -0
  167. package/bundled-skills/wiki-builder/templates/wiki.config.md +53 -0
  168. package/bundled-skills/writing-great-skills/GLOSSARY.md +181 -0
  169. package/bundled-skills/writing-great-skills/SKILL.md +111 -0
  170. package/bundled-skills/yao-meta-skill/SKILL.md +86 -0
  171. package/bundled-skills/yao-meta-skill/agents/interface.yaml +26 -0
  172. package/bundled-skills/yao-meta-skill/manifest.json +24 -0
  173. package/bundled-skills/yao-meta-skill/references/artifact-design-doctrine.md +49 -0
  174. package/bundled-skills/yao-meta-skill/references/authoring-discipline.md +78 -0
  175. package/bundled-skills/yao-meta-skill/references/autonomous-adaptation.md +65 -0
  176. package/bundled-skills/yao-meta-skill/references/distribution-registry-method.md +60 -0
  177. package/bundled-skills/yao-meta-skill/references/eval-playbook.md +69 -0
  178. package/bundled-skills/yao-meta-skill/references/gate-selection.md +68 -0
  179. package/bundled-skills/yao-meta-skill/references/governance.md +134 -0
  180. package/bundled-skills/yao-meta-skill/references/human-review-template.md +54 -0
  181. package/bundled-skills/yao-meta-skill/references/intent-dialogue.md +138 -0
  182. package/bundled-skills/yao-meta-skill/references/iteration-philosophy.md +30 -0
  183. package/bundled-skills/yao-meta-skill/references/non-skill-decision-tree.md +39 -0
  184. package/bundled-skills/yao-meta-skill/references/operating-modes.md +107 -0
  185. package/bundled-skills/yao-meta-skill/references/output-eval-method.md +113 -0
  186. package/bundled-skills/yao-meta-skill/references/output-quality-risk.md +41 -0
  187. package/bundled-skills/yao-meta-skill/references/output-visual-quality.md +53 -0
  188. package/bundled-skills/yao-meta-skill/references/packaging-contracts.md +70 -0
  189. package/bundled-skills/yao-meta-skill/references/pattern-extraction-doctrine.md +76 -0
  190. package/bundled-skills/yao-meta-skill/references/platform-capability-matrix.md +49 -0
  191. package/bundled-skills/yao-meta-skill/references/prompt-engineering-doctrine.md +76 -0
  192. package/bundled-skills/yao-meta-skill/references/qa-ladder.md +57 -0
  193. package/bundled-skills/yao-meta-skill/references/reference-scan.md +126 -0
  194. package/bundled-skills/yao-meta-skill/references/regression-cause-taxonomy.md +80 -0
  195. package/bundled-skills/yao-meta-skill/references/resource-boundaries.md +120 -0
  196. package/bundled-skills/yao-meta-skill/references/review-studio-method.md +87 -0
  197. package/bundled-skills/yao-meta-skill/references/review-waiver-method.md +76 -0
  198. package/bundled-skills/yao-meta-skill/references/runtime-conformance-method.md +21 -0
  199. package/bundled-skills/yao-meta-skill/references/skill-archetypes.md +86 -0
  200. package/bundled-skills/yao-meta-skill/references/skill-atlas-method.md +35 -0
  201. package/bundled-skills/yao-meta-skill/references/skill-engineering-method.md +210 -0
  202. package/bundled-skills/yao-meta-skill/references/skill-ir-method.md +41 -0
  203. package/bundled-skills/yao-meta-skill/references/skillops-decision-policy.md +53 -0
  204. package/bundled-skills/yao-meta-skill/references/systems-thinking-doctrine.md +75 -0
  205. package/bundled-skills/yao-meta-skill/references/telemetry-drift-method.md +182 -0
  206. package/bundled-skills/yao-meta-skill/references/trust-security-method.md +79 -0
  207. package/bundled-skills/yao-meta-skill/references/user-memory-policy.md +35 -0
  208. package/bundled-skills/youtube-notetaker/SKILL.md +209 -0
  209. package/bundled-skills/youtube-notetaker/reference/artifact.html +269 -0
  210. package/bundled-skills/youtube-notetaker/scripts/contact_sheet.py +53 -0
  211. package/bundled-skills/youtube-notetaker/scripts/detect_slides.sh +19 -0
  212. package/bundled-skills/youtube-notetaker/scripts/download.sh +24 -0
  213. package/bundled-skills/youtube-notetaker/scripts/extract_slides.py +43 -0
  214. package/bundled-skills/youtube-notetaker/scripts/serve.py +222 -0
  215. package/bundled-skills/youtube-notetaker/scripts/setup.sh +27 -0
  216. package/bundled-skills/youtube-notetaker/scripts/verify.sh +31 -0
  217. package/bundled-skills/youtube-notetaker/scripts/vtt_to_transcript.py +59 -0
  218. package/bundled-skills/youtube-notetaker/scripts/write_library_item.py +69 -0
  219. package/package.json +1 -1
  220. package/skills_index.json +2013 -330
  221. package/bundled-skills/ai-md/SKILL.md +0 -523
  222. package/bundled-skills/atlas-contract/SKILL.md +0 -650
  223. package/bundled-skills/busybox-on-windows/SKILL.md +0 -40
  224. package/bundled-skills/monte-carlo-prevent/SKILL.md +0 -257
  225. package/bundled-skills/monte-carlo-prevent/references/TROUBLESHOOTING.md +0 -23
  226. package/bundled-skills/monte-carlo-prevent/references/parameters.md +0 -32
  227. package/bundled-skills/monte-carlo-prevent/references/workflows.md +0 -478
  228. package/bundled-skills/monte-carlo-push-ingestion/SKILL.md +0 -372
  229. package/bundled-skills/monte-carlo-push-ingestion/references/anomaly-detection.md +0 -87
  230. package/bundled-skills/monte-carlo-push-ingestion/references/custom-lineage.md +0 -203
  231. package/bundled-skills/monte-carlo-push-ingestion/references/direct-http-api.md +0 -207
  232. package/bundled-skills/monte-carlo-push-ingestion/references/prerequisites.md +0 -150
  233. package/bundled-skills/monte-carlo-push-ingestion/references/push-lineage.md +0 -160
  234. package/bundled-skills/monte-carlo-push-ingestion/references/push-metadata.md +0 -158
  235. package/bundled-skills/monte-carlo-push-ingestion/references/push-query-logs.md +0 -219
  236. package/bundled-skills/monte-carlo-push-ingestion/references/validation.md +0 -257
  237. package/bundled-skills/monte-carlo-push-ingestion/scripts/sample_verify.py +0 -357
  238. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/bigquery/collect_and_push_lineage.py +0 -70
  239. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/bigquery/collect_and_push_metadata.py +0 -65
  240. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/bigquery/collect_and_push_query_logs.py +0 -70
  241. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/bigquery/collect_lineage.py +0 -214
  242. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/bigquery/collect_metadata.py +0 -160
  243. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/bigquery/collect_query_logs.py +0 -164
  244. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/bigquery/push_lineage.py +0 -198
  245. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/bigquery/push_metadata.py +0 -193
  246. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/bigquery/push_query_logs.py +0 -207
  247. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/bigquery-iceberg/collect_and_push_metadata.py +0 -71
  248. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/bigquery-iceberg/collect_and_push_query_logs.py +0 -64
  249. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/bigquery-iceberg/collect_metadata.py +0 -253
  250. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/bigquery-iceberg/collect_query_logs.py +0 -149
  251. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/bigquery-iceberg/push_metadata.py +0 -190
  252. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/bigquery-iceberg/push_query_logs.py +0 -208
  253. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/databricks/collect_and_push_lineage.py +0 -83
  254. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/databricks/collect_and_push_metadata.py +0 -77
  255. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/databricks/collect_and_push_query_logs.py +0 -83
  256. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/databricks/collect_lineage.py +0 -240
  257. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/databricks/collect_metadata.py +0 -212
  258. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/databricks/collect_query_logs.py +0 -204
  259. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/databricks/push_lineage.py +0 -192
  260. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/databricks/push_metadata.py +0 -178
  261. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/databricks/push_query_logs.py +0 -200
  262. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/hive/collect_and_push_lineage.py +0 -119
  263. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/hive/collect_and_push_metadata.py +0 -119
  264. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/hive/collect_and_push_query_logs.py +0 -117
  265. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/hive/collect_lineage.py +0 -265
  266. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/hive/collect_metadata.py +0 -313
  267. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/hive/collect_query_logs.py +0 -284
  268. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/hive/push_lineage.py +0 -309
  269. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/hive/push_metadata.py +0 -245
  270. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/hive/push_query_logs.py +0 -255
  271. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/redshift/collect_and_push_lineage.py +0 -78
  272. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/redshift/collect_and_push_metadata.py +0 -80
  273. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/redshift/collect_and_push_query_logs.py +0 -88
  274. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/redshift/collect_lineage.py +0 -235
  275. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/redshift/collect_metadata.py +0 -219
  276. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/redshift/collect_query_logs.py +0 -239
  277. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/redshift/push_lineage.py +0 -178
  278. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/redshift/push_metadata.py +0 -178
  279. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/redshift/push_query_logs.py +0 -196
  280. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/snowflake/collect_and_push_lineage.py +0 -154
  281. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/snowflake/collect_and_push_metadata.py +0 -137
  282. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/snowflake/collect_and_push_query_logs.py +0 -137
  283. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/snowflake/collect_lineage.py +0 -349
  284. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/snowflake/collect_metadata.py +0 -329
  285. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/snowflake/collect_query_logs.py +0 -254
  286. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/snowflake/push_lineage.py +0 -307
  287. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/snowflake/push_metadata.py +0 -228
  288. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/snowflake/push_query_logs.py +0 -248
  289. package/bundled-skills/monte-carlo-push-ingestion/scripts/test_template_sdk_usage.py +0 -340
  290. package/bundled-skills/skill-optimizer/SKILL.md +0 -271
  291. package/bundled-skills/using-superpowers/SKILL.md +0 -98
@@ -0,0 +1,130 @@
1
+ # Example Competitor Research File
2
+
3
+ ## Contents
4
+ - [Template](#template) — full worked example for a fictional "Rival Co"
5
+ - [Field Rules](#field-rules) — frontmatter fields, body section order, mention/findings format
6
+ - [Writing via Bash Heredoc](#writing-via-bash-heredoc) — required pattern for subagents to avoid permission prompts
7
+
8
+ Each enrichment subagent writes one markdown file per competitor to `{OUTPUT_DIR}/{competitor-slug}.md`, where `{OUTPUT_DIR}` is the per-run Desktop directory set up by the main agent in Step 0 (e.g., `~/Desktop/acme_competitors_2026-04-23/`). The YAML frontmatter contains structured fields for report/matrix compilation. The body contains per-section research plus aggregated mentions and benchmarks.
9
+
10
+ ## Template
11
+
12
+ ```markdown
13
+ ---
14
+ competitor_name: Rival Co
15
+ website: https://rivalco.com
16
+ tagline: The fastest way to give your agents the web
17
+ positioning: Developer-first web search API
18
+ product_description: Web search & retrieval API for AI agents and RAG pipelines
19
+ target_customer: AI engineers, RAG/agent teams, SaaS companies
20
+ pricing_model: Usage-based + seat tiers
21
+ pricing_tiers: Free (1K searches) | Pro $99/mo | Scale $499/mo | Enterprise Contact
22
+ key_features: web search API | neural/semantic search | site crawler | reranking | live crawl
23
+ integrations: LangChain | LlamaIndex | Python SDK | TypeScript SDK
24
+ headquarters: San Francisco, CA
25
+ founded: 2023
26
+ employee_estimate: 11-50
27
+ funding_info: Seed, $5M (2024)
28
+ strategic_diff: Similar retrieval API; weaker neural relevance, but cheaper entry tier
29
+ ---
30
+
31
+ ## Product
32
+ Web search and retrieval API for AI agents. Exposes a REST search endpoint with both
33
+ keyword and semantic/neural modes, plus a site crawler and live-crawl fallback.
34
+ Positioned at AI engineers building RAG and agent pipelines.
35
+
36
+ ## Pricing
37
+ - Free: 1K searches/month, 1 API key
38
+ - Pro ($99/mo): 100K searches, reranking, basic support
39
+ - Scale ($499/mo): 1M searches, neural search, live crawl, higher rate limits
40
+ - Enterprise: custom pricing, SSO, dedicated support
41
+
42
+ ## Features
43
+ - Keyword + neural/semantic search modes
44
+ - Site crawler with scheduled recrawls
45
+ - Result reranking and content highlights
46
+ - Live-crawl fallback for fresh pages
47
+ - REST API with JSON responses
48
+ - Python and TypeScript SDKs
49
+
50
+ ## Positioning
51
+ Marketing emphasizes "AI-native" and developer-first DX. Landing page hero:
52
+ "Give your agents the web." Targets solo devs through mid-market AI teams.
53
+
54
+ ## Comparison vs {user_company}
55
+ - **Overlaps**: Web search API, neural search mode, crawler, LangChain integration
56
+ - **Gaps**: No dedicated research/answer endpoint, weaker neural relevance benchmarks, no news endpoint
57
+ - **Where they win**: Lower entry price ($99 vs $199), simpler pricing tiers
58
+ - **Where you win**: Stronger neural relevance (per public benchmarks), research API, larger integration ecosystem
59
+
60
+ ## Mentions
61
+ - **[Benchmark]** retrieval-quality leaderboard — Rival Co 73% nDCG@10, 4th of 7 tested (source: https://github.com/example-org/search-bench/pull/92, 2026-03-14)
62
+ - **[Comparison]** Exa vs Rival Co — side-by-side review (source: https://example.com/exa-vs-rivalco, 2026-02-01)
63
+ - **[Reddit]** r/LangChain thread: "Moved from Rival Co to X after relevance issues" — 24 upvotes (source: https://reddit.com/r/LangChain/comments/abc123)
64
+ - **[HN]** "Show HN: Rival Co raises seed to build..." — 112 points, 48 comments (source: https://news.ycombinator.com/item?id=12345)
65
+ - **[LinkedIn]** CEO post on product launch — 412 reactions (source: https://linkedin.com/posts/rivalco-launch)
66
+ - **[YouTube]** "Rival Co vs Exa" review by Dev YouTuber — 8.2K views (source: https://youtube.com/watch?v=xyz)
67
+ - **[News]** TechCrunch coverage of seed round (source: https://techcrunch.com/2024/11/rival-co-seed)
68
+ - **[Review]** G2 4.3/5 (31 reviews), main complaint: stale results (source: https://g2.com/products/rival-co)
69
+
70
+ ## Benchmarks
71
+ - **search-bench PR #92** — Rival Co 73% nDCG@10 on retrieval quality, 4th of 7 tested (https://github.com/example-org/search-bench/pull/92)
72
+ - **retrieval-latency blog** — Rival Co 480ms p50, 2nd fastest (https://example.com/search-latency-2026)
73
+
74
+ ## Research Findings
75
+ - **[high]** Usage-based pricing starts at $99/mo for 100K searches (source: rivalco.com/pricing)
76
+ - **[high]** Series seed, $5M raised Nov 2024 (source: TechCrunch)
77
+ - **[medium]** CEO LinkedIn emphasizes AI-agent use cases (source: linkedin.com/in/rivalco-ceo)
78
+ - **[low]** Possibly a team under 20 based on careers page (source: rivalco.com/careers)
79
+
80
+ ## Battle Card
81
+
82
+ ### Landmines
83
+ - **Rival Co scores 73% nDCG@10 on the search-bench leaderboard (4th of 7 tested)** — use against relevance-sensitive prospects; they rank below Exa on the same test. (source: https://github.com/example-org/search-bench/pull/92)
84
+ - **G2 average 4.3/5 with "stale results" as top complaint across 31 reviews** — cite when prospect raises freshness concerns. (source: https://g2.com/products/rival-co)
85
+
86
+ ### Objection Handlers
87
+ - If they say: "Rival Co is $99/mo — cheaper than your Pro tier"
88
+ You say: "Cheaper upfront, but compare total cost of poor relevance — their 73% nDCG@10 means more irrelevant results your agent has to filter or re-query, and re-queries aren't free." (evidence: https://github.com/example-org/search-bench/pull/92)
89
+
90
+ ### Talk Tracks
91
+ 1. For RAG pipelines where relevance drives answer quality, Exa ships a neural index and a dedicated research/answer endpoint as table stakes; Rival Co has neither in their 2024 product set.
92
+ ```
93
+
94
+ ## Field Rules
95
+
96
+ - **YAML frontmatter**: All structured fields go here. Extracted for matrix + CSV compilation.
97
+ - **`pricing_tiers`**: Pipe-separated (`|`) with tier name + short price. `compile_report.mjs` parses on `|` for the matrix view.
98
+ - **`key_features`**, **`integrations`**: Pipe-separated lists.
99
+ - **`strategic_diff`**: One-line summary (shown in overview table).
100
+ - **Body sections**: `## Product`, `## Pricing`, `## Features`, `## Positioning`, `## Comparison vs {user_company}`, `## Mentions`, `## Benchmarks`, `## Research Findings`, `## Battle Card` (deep/deeper modes only; synthesized by the Battle lane after fact-check).
101
+ - **Mentions format**: `- **[SourceType]** title | snippet (source: url, date)` — `SourceType` is one of `Benchmark`, `Comparison`, `News`, `Reddit`, `HN`, `LinkedIn`, `YouTube`, `Review`, `Podcast`, `X`.
102
+ - **Findings format**: `- **[confidence]** fact (source: url)` — `confidence` is `high`, `medium`, or `low`.
103
+ - **Filename**: `{OUTPUT_DIR}/{competitor-slug}.md` where slug is lowercase, hyphenated.
104
+
105
+ ## Writing via Bash Heredoc
106
+
107
+ Subagents write these files using bash heredoc to avoid security prompts. Use the full literal `{OUTPUT_DIR}` path — no `~` or `$HOME`:
108
+
109
+ ```bash
110
+ cat << 'COMPETITOR_MD' > {OUTPUT_DIR}/rival-co.md
111
+ ---
112
+ competitor_name: Rival Co
113
+ website: https://rivalco.com
114
+ ...
115
+ ---
116
+
117
+ ## Product
118
+ ...
119
+
120
+ ## Pricing
121
+ ...
122
+
123
+ ## Mentions
124
+ - **[Benchmark]** ...
125
+ COMPETITOR_MD
126
+ ```
127
+
128
+ Use `'COMPETITOR_MD'` (quoted) as the delimiter to prevent shell variable expansion.
129
+
130
+ **IMPORTANT**: Write ALL competitor files in a SINGLE Bash call using chained heredocs to minimize permission prompts.
@@ -0,0 +1,127 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Competitor Analysis — {{TITLE}}</title>
7
+ <link rel="preconnect" href="https://fonts.googleapis.com">
8
+ <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet">
9
+ <style>
10
+ :root {
11
+ --brand: #F03603;
12
+ --blue: #4DA9E4;
13
+ --green: #90C94D;
14
+ --amber: #F4BA41;
15
+ --black: #100D0D;
16
+ --gray: #514F4F;
17
+ --border: #edebeb;
18
+ --bg: #F9F6F4;
19
+ --card: #ffffff;
20
+ --text: #100D0D;
21
+ --muted: #514F4F;
22
+ --high: #5a8a1a;
23
+ --low: #F03603;
24
+ }
25
+ * { margin: 0; padding: 0; box-sizing: border-box; }
26
+ body { font-family: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif; background: var(--bg); color: var(--text); line-height: 1.6; font-size: 16px; }
27
+ .container { max-width: 1200px; margin: 0 auto; padding: 2rem 1.5rem; }
28
+
29
+ header { margin-bottom: 2rem; display: flex; align-items: center; justify-content: space-between; }
30
+ .header-left h1 { font-size: 1.5rem; font-weight: 600; margin-bottom: 0.25rem; color: var(--black); }
31
+ .header-left .meta { color: var(--muted); font-size: 0.875rem; }
32
+
33
+ nav.views { display: flex; gap: 0.5rem; margin-bottom: 2rem; }
34
+ nav.views a { background: var(--card); border: 1px solid var(--border); border-radius: 4px; padding: 0.5rem 0.875rem; font-size: 0.8125rem; color: var(--muted); text-decoration: none; font-weight: 500; }
35
+ nav.views a:hover { border-color: var(--brand); color: var(--brand); }
36
+ nav.views a.active { background: var(--brand); color: #fff; border-color: var(--brand); }
37
+
38
+ .summary { display: flex; gap: 0.75rem; margin-bottom: 2rem; flex-wrap: wrap; }
39
+ .stat { background: var(--card); border: 1px solid var(--border); border-radius: 4px; padding: 1rem 1.25rem; flex: 1; min-width: 140px; }
40
+ .stat .label { font-size: 0.6875rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--muted); font-weight: 600; margin-bottom: 0.25rem; }
41
+ .stat .value { font-size: 1.5rem; font-weight: 700; color: var(--black); }
42
+
43
+ /* Strategic win/loss cards */
44
+ .strategic { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-bottom: 2rem; }
45
+ @media (max-width: 720px) { .strategic { grid-template-columns: 1fr; } }
46
+ .strategic .card { background: var(--card); border: 1px solid var(--border); border-radius: 4px; padding: 1.25rem; }
47
+ .strategic .card.win { border-left: 3px solid var(--high); }
48
+ .strategic .card.loss { border-left: 3px solid var(--low); }
49
+ .strategic h3 { font-size: 0.9375rem; font-weight: 600; margin-bottom: 0.125rem; color: var(--black); display: flex; align-items: center; gap: 0.5rem; }
50
+ .strategic h3 .badge { font-size: 0.6875rem; font-weight: 700; padding: 2px 8px; border-radius: 999px; }
51
+ .strategic h3 .badge.win { background: rgba(144,201,77,0.12); color: #5a8a1a; border: 1px solid rgba(144,201,77,0.3); }
52
+ .strategic h3 .badge.loss { background: rgba(240,54,3,0.08); color: var(--low); border: 1px solid rgba(240,54,3,0.2); }
53
+ .strategic .sub { font-size: 0.8125rem; color: var(--muted); margin-bottom: 0.75rem; }
54
+ .strategic .prose { font-size: 0.9375rem; line-height: 1.6; color: var(--text); margin: 0.5rem 0 0; }
55
+ .strategic ul { list-style: none; }
56
+ .strategic li { padding: 0.375rem 0; font-size: 0.875rem; border-top: 1px solid var(--border); display: flex; justify-content: space-between; align-items: baseline; gap: 0.75rem; }
57
+ .strategic li:first-child { border-top: 0; }
58
+ .strategic li .who { color: var(--muted); font-size: 0.75rem; white-space: nowrap; }
59
+ .strategic .empty { color: var(--muted); font-size: 0.8125rem; padding: 0.5rem 0; }
60
+
61
+ .results-table { width: 100%; border-collapse: collapse; background: var(--card); border: 1px solid var(--border); border-radius: 4px; overflow: hidden; margin-bottom: 2rem; }
62
+ .results-table th { text-align: left; font-size: 0.6875rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--muted); font-weight: 600; padding: 0.75rem 1rem; border-bottom: 1px solid var(--border); background: #fafafa; }
63
+ .results-table td { padding: 0.75rem 1rem; border-bottom: 1px solid var(--border); font-size: 0.875rem; vertical-align: top; }
64
+ .results-table tr:last-child td { border-bottom: none; }
65
+ .results-table tr:hover { background: #fdfcfb; }
66
+ .results-table a { color: var(--brand); text-decoration: none; font-weight: 500; }
67
+ .results-table a:hover { text-decoration: underline; }
68
+ .muted-line { color: var(--muted); font-size: 0.75rem; display: block; margin-top: 2px; }
69
+
70
+ .pill { display: inline-block; font-size: 0.6875rem; font-weight: 600; padding: 2px 8px; border-radius: 999px; margin-right: 4px; margin-bottom: 3px; }
71
+ .pill-feature { background: rgba(77,169,228,0.12); color: #2172a3; border: 1px solid rgba(77,169,228,0.3); }
72
+
73
+ footer { margin-top: 3rem; padding-top: 1.5rem; border-top: 1px solid var(--border); display: flex; align-items: center; justify-content: center; gap: 0.5rem; font-size: 0.75rem; color: var(--muted); }
74
+ footer a { color: var(--brand); text-decoration: none; font-weight: 500; }
75
+ footer a:hover { text-decoration: underline; }
76
+ </style>
77
+ </head>
78
+ <body>
79
+ <div class="container">
80
+ <header>
81
+ <div class="header-left">
82
+ <h1>{{TITLE}}</h1>
83
+ <div class="meta">{{META}}</div>
84
+ </div>
85
+ <a href="https://browserbase.com" target="_blank" rel="noopener" style="display:flex;align-items:center;gap:0.5rem;text-decoration:none;color:var(--muted);font-size:0.8125rem;font-weight:500;">
86
+ <span>Powered by Browserbase</span>
87
+ <svg width="32" height="32" viewBox="0 0 100 100" fill="none" xmlns="http://www.w3.org/2000/svg"><rect width="100" height="100" rx="8" fill="#F03603"/><path d="M36 72.2222V27.7778H51.2381C57.5873 27.7778 62.6667 32.8571 62.6667 39.2063V41.746C62.6667 44.6667 61.5873 47.3968 59.7461 49.3651C62.2858 51.4603 63.9366 54.6349 63.9366 58.254V60.7936C63.9366 67.1428 58.8572 72.2222 52.508 72.2222H36ZM42.3493 65.873H52.508C55.3651 65.873 57.5873 63.6508 57.5873 60.7936V58.254C57.5873 55.3968 55.3651 53.1746 52.508 53.1746H42.3493V65.873ZM42.3493 46.8254H51.2381C54.0953 46.8254 56.3175 44.6032 56.3175 41.746V39.2063C56.3175 36.3492 54.0953 34.127 51.2381 34.127H42.3493V46.8254Z" fill="white"/></svg>
88
+ </a>
89
+ </header>
90
+
91
+ <nav class="views">
92
+ <a href="index.html" class="active">Overview</a>
93
+ <a href="matrix.html">Matrix</a>
94
+ <a href="mentions.html">Mentions</a>
95
+ </nav>
96
+
97
+ <div class="summary">
98
+ <div class="stat"><div class="label">Competitors</div><div class="value">{{TOTAL}}</div></div>
99
+ <div class="stat"><div class="label">Mentions</div><div class="value">{{MENTION_COUNT}}</div></div>
100
+ <div class="stat"><div class="label">Benchmarks</div><div class="value">{{BENCHMARK_COUNT}}</div></div>
101
+ <div class="stat"><div class="label">With Pricing</div><div class="value">{{WITH_PRICING}}</div></div>
102
+ </div>
103
+
104
+ {{STRATEGIC_SUMMARY}}
105
+
106
+ <table class="results-table">
107
+ <thead>
108
+ <tr>
109
+ <th>Competitor</th>
110
+ <th>Positioning</th>
111
+ <th>Pricing</th>
112
+ <th>Key Features</th>
113
+ <th>Strategic Diff</th>
114
+ </tr>
115
+ </thead>
116
+ <tbody>
117
+ {{TABLE_ROWS}}
118
+ </tbody>
119
+ </table>
120
+ </div>
121
+
122
+ <footer>
123
+ <svg width="16" height="16" viewBox="0 0 100 100" fill="none" xmlns="http://www.w3.org/2000/svg"><rect width="100" height="100" rx="8" fill="#F03603"/><path d="M36 72.2222V27.7778H51.2381C57.5873 27.7778 62.6667 32.8571 62.6667 39.2063V41.746C62.6667 44.6667 61.5873 47.3968 59.7461 49.3651C62.2858 51.4603 63.9366 54.6349 63.9366 58.254V60.7936C63.9366 67.1428 58.8572 72.2222 52.508 72.2222H36ZM42.3493 65.873H52.508C55.3651 65.873 57.5873 63.6508 57.5873 60.7936V58.254C57.5873 55.3968 55.3651 53.1746 52.508 53.1746H42.3493V65.873ZM42.3493 46.8254H51.2381C54.0953 46.8254 56.3175 44.6032 56.3175 41.746V39.2063C56.3175 36.3492 54.0953 34.127 51.2381 34.127H42.3493V46.8254Z" fill="white"/></svg>
124
+ Generated by <a href="https://github.com/anthropics/skills">competitor-analysis</a> · Powered by <a href="https://browserbase.com">Browserbase</a>
125
+ </footer>
126
+ </body>
127
+ </html>
@@ -0,0 +1,217 @@
1
+ # Competitor Analysis — Research Patterns
2
+
3
+ ## Contents
4
+ - [Overview](#overview) — two research contexts (self vs target)
5
+ - [Self-Research (User's Company)](#self-research-users-company) — sub-questions, page discovery, synthesis output (precise_category, include keywords, exclusion list)
6
+ - [Competitor Research — 4 Research Lanes](#competitor-research--4-research-lanes) — Marketing / External / Benchmarks / Strategic Diff
7
+ - [Depth Mode Behavior](#depth-mode-behavior) — quick / deep / deeper budgets and scope
8
+ - [Finding Format (per lane)](#finding-format-per-lane) — JSON shape, confidence levels
9
+ - [Research Loop Rules](#research-loop-rules) — 7 meta-rules for the research phase
10
+ - [Synthesis Instructions](#synthesis-instructions) — turn findings into matrix cells
11
+
12
+ ## Overview
13
+
14
+ Two research contexts:
15
+ 1. **Self-Research** (Step 1) — Deep research on the user's company so we know what "competitor" means for this run.
16
+ 2. **Competitor Research** (Step 4) — For each discovered/seeded competitor, run the 4-lane enrichment below.
17
+
18
+ Both use the Plan → Research → Synthesize pattern. Self-research is identical in shape to the one in `company-research`, so profiles can be reused across skills.
19
+
20
+ ## Self-Research (User's Company)
21
+
22
+ ### Sub-Questions
23
+ - "What does {company} sell and what specific problem does it solve?"
24
+ - "Who are {company}'s existing customers? What industries, company sizes, use cases?"
25
+ - "Who are {company}'s known competitors? What category do they compete in?"
26
+ - "What pricing model does {company} use?"
27
+ - "What features, integrations, and differentiators does {company}'s marketing emphasize?"
28
+
29
+ ### Page Discovery
30
+ Dynamic via sitemap — do NOT hardcode `/about` or `/pricing`:
31
+ 1. `browse cloud fetch --allow-redirects "{company website}/sitemap.xml"` — primary source
32
+ 2. Scan for URLs with keywords: `pricing`, `customer`, `compare`, `vs`, `about`, `features`, `integrations`
33
+ 3. Optionally fetch `/llms.txt` for page descriptions
34
+ 4. Pick 3-5 most relevant URLs
35
+
36
+ ### External Research
37
+ - `browse cloud search "{company} alternatives competitors vs"`
38
+ - `browse cloud search "{company} review comparison"`
39
+ - Fetch 1-2 most informative third-party pages
40
+
41
+ ### Synthesis Output
42
+ Produce a profile with:
43
+ - **Company**, **Product**, **Existing Customers**, **Competitors** (seed list), **Use Cases**
44
+ - **precise_category** — one clear sentence that describes what category this product competes in. Avoid fuzzy words like "tools" or "platform". Good: "AI web search API for agents with neural + keyword retrieval". Bad: "search tools". This becomes the anchor for discovery queries and the gate.
45
+ - **category_include_keywords** — 8-15 phrases that a *direct competitor's* marketing would very likely contain (title or hero). Include semantic variants. e.g. for Exa: `web search api`, `search api`, `neural search`, `semantic search`, `retrieval api`, `search for ai agents`, `search for llms`, `serp api`, `embeddings search`, `live crawling`, `answer api`, `research api`.
46
+ - **exclusion_list** — phrases that indicate a *different* category, used by the gate to reject false positives. e.g. `vector database`, `enterprise search appliance`, `site search widget`, `observability`, `analytics platform`, `data warehouse`, `scraping platform` (full ETL/scraping suites, not retrieval APIs), `internal knowledge base`.
47
+
48
+ The same `profiles/{company-slug}.json` shape used by `company-research`, extended with the three new fields. The `competitors` array becomes the seed list and the first inputs to the comparison-graph expansion in Step 3.
49
+
50
+ ---
51
+
52
+ ## Competitor Research — 4 Research Lanes
53
+
54
+ For each competitor, run these four lanes (depth-gated):
55
+
56
+ ### Lane 1 — Marketing Surface (ALL depth modes)
57
+ Goal: extract what the competitor says about themselves from their own site.
58
+
59
+ **Sub-questions**:
60
+ - "What does {competitor} sell, who is it for, and how is it positioned?"
61
+ - "What are {competitor}'s pricing tiers and pricing model?"
62
+ - "What key features, integrations, and platforms does {competitor} list?"
63
+
64
+ **Pages to fetch** (via sitemap discovery — do NOT hardcode):
65
+ 1. Homepage
66
+ 2. `/pricing` (or equivalent from sitemap)
67
+ 3. `/features`, `/product`, `/platform`, `/solutions`
68
+ 4. `/integrations`, `/customers`, `/case-studies`
69
+
70
+ **Extract into frontmatter fields**: `tagline`, `positioning`, `product_description`, `target_customer`, `pricing_model`, `pricing_tiers`, `key_features`, `integrations`.
71
+
72
+ ### Lane 2 — External Signal (deep + deeper)
73
+ Goal: what the rest of the internet says about them.
74
+
75
+ **Sub-questions**:
76
+ - "What third-party comparison pages mention {competitor}?"
77
+ - "What do users say on Reddit, HN, G2, Capterra?"
78
+ - "What recent news, launches, or announcements?"
79
+ - "Who is talking about them on LinkedIn or YouTube?"
80
+
81
+ **Search queries**:
82
+ ```
83
+ "{competitor} vs"
84
+ "{competitor} alternatives"
85
+ "{competitor} review"
86
+ "{competitor} G2" / "{competitor} Capterra"
87
+ "site:reddit.com {competitor}"
88
+ "site:news.ycombinator.com {competitor}"
89
+ "site:linkedin.com/posts {competitor}"
90
+ "site:youtube.com {competitor}"
91
+ "{competitor} launch 2025 OR 2026"
92
+ "{competitor} funding announcement"
93
+ ```
94
+
95
+ **Extraction rule**: From search results, harvest each hit as a `Mentions` entry. Classify source type from the URL:
96
+ - `reddit.com` → `Reddit`
97
+ - `news.ycombinator.com` → `HN`
98
+ - `linkedin.com` → `LinkedIn`
99
+ - `youtube.com` / `youtu.be` → `YouTube`
100
+ - `g2.com` / `capterra.com` / `trustradius.com` → `Review`
101
+ - `*vs*` in path or title → `Comparison`
102
+ - news domains (techcrunch, theverge, venturebeat, forbes, businesswire, globenewswire) → `News`
103
+ - `twitter.com` / `x.com` → `X`
104
+ - `spotify.com/episode` / transistor/simplecast → `Podcast`
105
+
106
+ For LinkedIn and YouTube, the snippet + URL from `browse cloud search` is enough. Do NOT try to deep-fetch individual LinkedIn posts (auth walls) — list them with title/snippet.
107
+
108
+ ### Lane 3 — Public Benchmarks (deeper only)
109
+ Goal: find third-party benchmarks that measured this competitor's product.
110
+
111
+ **Sub-questions**:
112
+ - "Has {competitor} been included in any public benchmark?"
113
+ - "Are there GitHub repos, PRs, or blog posts comparing {competitor} head-to-head on a measured axis (speed, accuracy, cost, pass rate)?"
114
+
115
+ **Search queries**:
116
+ ```
117
+ "{competitor} benchmark"
118
+ "{competitor} performance test"
119
+ "site:github.com {competitor} benchmark"
120
+ "site:github.com {competitor} vs"
121
+ "{competitor} vs {seed_competitor} benchmark" # pairwise, use another known competitor as the seed
122
+ "{category} benchmark {competitor}" # e.g. "web search api benchmark {competitor}"
123
+ ```
124
+
125
+ **Extraction**: Add each hit to `Benchmarks` section with: title, source, URL, key finding (one line). Also mirror into `Mentions` with type `Benchmark`.
126
+
127
+ **Known benchmark repos to check directly** (if domain is on-topic):
128
+ - Public retrieval-quality leaderboards (e.g. BEIR / MTEB-style repos) when a vendor publishes scores
129
+ - Category-specific benchmark repos discovered via the first search wave
130
+
131
+ ### Lane 4 — Strategic Diff vs User's Company (deeper only)
132
+ Goal: explicitly compare this competitor to the user's company.
133
+
134
+ **Inputs**: `{user_company_profile}` (from Step 1) — specifically `product`, `use_cases`, `key_features` if available.
135
+
136
+ **Sub-questions**:
137
+ - "What features does {competitor} have that {user_company} does not?"
138
+ - "What features does {user_company} have that {competitor} does not?"
139
+ - "Who does {competitor} serve that {user_company} does not (and vice versa)?"
140
+ - "Where does each one win on the marketing surface (price, feature depth, DX, ecosystem)?"
141
+
142
+ **No new fetches required** for this lane — it's a synthesis step over Lane 1 + 2 + 3 findings plus the user's profile. Write as:
143
+
144
+ ```markdown
145
+ ## Comparison vs {user_company}
146
+ - **Overlaps**: ...
147
+ - **Gaps**: ...
148
+ - **Where they win**: ...
149
+ - **Where you win**: ...
150
+ ```
151
+
152
+ Also populate the `strategic_diff` frontmatter field with a one-line summary for the overview table.
153
+
154
+ ---
155
+
156
+ ## Depth Mode Behavior
157
+
158
+ ### Quick Mode (~lots of competitors, cheap)
159
+ - **Lanes**: 1 only
160
+ - **Budget**: 2-3 tool calls per competitor (homepage + pricing page)
161
+ - **Fields populated**: tagline, product_description, pricing_tiers, key_features
162
+ - **Mentions / Benchmarks / Comparison**: skipped
163
+
164
+ ### Deep Mode (balanced, default)
165
+ - **Lanes**: 1 + 2
166
+ - **Budget**: 5-8 tool calls per competitor
167
+ - **Everything in quick** + 5-10 mentions across source types
168
+
169
+ ### Deeper Mode (full intel)
170
+ - **Lanes**: 1 + 2 + 3 + 4
171
+ - **Budget**: 10-15 tool calls per competitor
172
+ - **Everything in deep** + benchmarks section + strategic diff section
173
+
174
+ ---
175
+
176
+ ## Finding Format (per lane)
177
+
178
+ Every finding is a factual statement tied to a source:
179
+
180
+ ```json
181
+ {
182
+ "lane": "marketing | external | benchmark | strategic",
183
+ "fact": "Rival Co charges $99/mo for 10K search requests",
184
+ "sourceUrl": "https://rivalco.com/pricing",
185
+ "confidence": "high"
186
+ }
187
+ ```
188
+
189
+ **Confidence**:
190
+ - `high`: Directly stated on the competitor's own website or official press
191
+ - `medium`: Inferred from third-party articles, reviews, or job posts
192
+ - `low`: Speculative / outdated sources
193
+
194
+ ## Research Loop Rules
195
+
196
+ 1. **Lane 1 first** — always start with the competitor's own site
197
+ 2. **Use sitemap, not hardcoded paths** — `/pricing` might be `/plans` or `/pricing-plans`
198
+ 3. **Rephrase, don't retry** — if a search returns generic junk, switch keywords
199
+ 4. **Fetch selectively** — pick the 1-2 most promising URLs per query
200
+ 5. **For LinkedIn/YouTube: search only, don't fetch** — snippet is enough, avoid auth walls
201
+ 6. **Respect step budget** per depth mode
202
+ 7. **Deduplicate mentions** — same URL should only appear once in `## Mentions`
203
+
204
+ ## Synthesis Instructions
205
+
206
+ After the research loop completes for a competitor:
207
+
208
+ 1. Fill frontmatter fields from Lane 1 findings
209
+ 2. Write body sections: Product, Pricing, Features, Positioning (all from Lane 1)
210
+ 3. Append `## Mentions` from Lane 2 classified hits
211
+ 4. Append `## Benchmarks` from Lane 3 (deeper only)
212
+ 5. Append `## Comparison vs {user_company}` from Lane 4 synthesis (deeper only)
213
+ 6. Append `## Research Findings` as a raw-findings appendix with confidence tags
214
+
215
+ No ICP score. No threat score. Pure intel.
216
+
217
+ If a field has no supporting findings, leave it empty rather than guessing.