opencode-knowledge-work 0.0.0-stage → 0.1.1

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 (472) hide show
  1. package/LICENSE +212 -0
  2. package/README.md +124 -2
  3. package/content/bio-research/.mcp.json +48 -0
  4. package/content/bio-research/CONNECTORS.md +23 -0
  5. package/content/bio-research/LICENSE +202 -0
  6. package/content/bio-research/README.md +83 -0
  7. package/content/bio-research/skills/bio-research-instrument-data-to-allotrope/LICENSE.txt +201 -0
  8. package/content/bio-research/skills/bio-research-instrument-data-to-allotrope/SKILL.md +280 -0
  9. package/content/bio-research/skills/bio-research-instrument-data-to-allotrope/references/asm_schema_overview.md +226 -0
  10. package/content/bio-research/skills/bio-research-instrument-data-to-allotrope/references/field_classification_guide.md +503 -0
  11. package/content/bio-research/skills/bio-research-instrument-data-to-allotrope/references/flattening_guide.md +254 -0
  12. package/content/bio-research/skills/bio-research-instrument-data-to-allotrope/references/supported_instruments.md +151 -0
  13. package/content/bio-research/skills/bio-research-instrument-data-to-allotrope/requirements.txt +26 -0
  14. package/content/bio-research/skills/bio-research-instrument-data-to-allotrope/scripts/convert_to_asm.py +543 -0
  15. package/content/bio-research/skills/bio-research-instrument-data-to-allotrope/scripts/export_parser.py +481 -0
  16. package/content/bio-research/skills/bio-research-instrument-data-to-allotrope/scripts/flatten_asm.py +254 -0
  17. package/content/bio-research/skills/bio-research-instrument-data-to-allotrope/scripts/validate_asm.py +1102 -0
  18. package/content/bio-research/skills/bio-research-nextflow-development/LICENSE.txt +201 -0
  19. package/content/bio-research/skills/bio-research-nextflow-development/SKILL.md +290 -0
  20. package/content/bio-research/skills/bio-research-nextflow-development/references/geo-sra-acquisition.md +416 -0
  21. package/content/bio-research/skills/bio-research-nextflow-development/references/installation.md +96 -0
  22. package/content/bio-research/skills/bio-research-nextflow-development/references/pipelines/atacseq.md +138 -0
  23. package/content/bio-research/skills/bio-research-nextflow-development/references/pipelines/rnaseq.md +118 -0
  24. package/content/bio-research/skills/bio-research-nextflow-development/references/pipelines/sarek.md +145 -0
  25. package/content/bio-research/skills/bio-research-nextflow-development/references/troubleshooting.md +137 -0
  26. package/content/bio-research/skills/bio-research-nextflow-development/scripts/check_environment.py +452 -0
  27. package/content/bio-research/skills/bio-research-nextflow-development/scripts/config/genomes.yaml +148 -0
  28. package/content/bio-research/skills/bio-research-nextflow-development/scripts/config/pipelines/atacseq.yaml +187 -0
  29. package/content/bio-research/skills/bio-research-nextflow-development/scripts/config/pipelines/rnaseq.yaml +147 -0
  30. package/content/bio-research/skills/bio-research-nextflow-development/scripts/config/pipelines/sarek.yaml +233 -0
  31. package/content/bio-research/skills/bio-research-nextflow-development/scripts/detect_data_type.py +300 -0
  32. package/content/bio-research/skills/bio-research-nextflow-development/scripts/generate_samplesheet.py +455 -0
  33. package/content/bio-research/skills/bio-research-nextflow-development/scripts/manage_genomes.py +521 -0
  34. package/content/bio-research/skills/bio-research-nextflow-development/scripts/sra_geo_fetch.py +732 -0
  35. package/content/bio-research/skills/bio-research-nextflow-development/scripts/utils/__init__.py +69 -0
  36. package/content/bio-research/skills/bio-research-nextflow-development/scripts/utils/file_discovery.py +189 -0
  37. package/content/bio-research/skills/bio-research-nextflow-development/scripts/utils/ncbi_utils.py +808 -0
  38. package/content/bio-research/skills/bio-research-nextflow-development/scripts/utils/sample_inference.py +290 -0
  39. package/content/bio-research/skills/bio-research-nextflow-development/scripts/utils/validators.py +256 -0
  40. package/content/bio-research/skills/bio-research-scientific-problem-selection/LICENSE.txt +201 -0
  41. package/content/bio-research/skills/bio-research-scientific-problem-selection/SKILL.md +269 -0
  42. package/content/bio-research/skills/bio-research-scientific-problem-selection/references/01-intuition-pumps.md +264 -0
  43. package/content/bio-research/skills/bio-research-scientific-problem-selection/references/02-risk-assessment.md +323 -0
  44. package/content/bio-research/skills/bio-research-scientific-problem-selection/references/03-optimization-function.md +481 -0
  45. package/content/bio-research/skills/bio-research-scientific-problem-selection/references/04-parameter-strategy.md +396 -0
  46. package/content/bio-research/skills/bio-research-scientific-problem-selection/references/05-decision-tree.md +85 -0
  47. package/content/bio-research/skills/bio-research-scientific-problem-selection/references/06-adversity-planning.md +123 -0
  48. package/content/bio-research/skills/bio-research-scientific-problem-selection/references/07-problem-inversion.md +152 -0
  49. package/content/bio-research/skills/bio-research-scientific-problem-selection/references/08-integration-synthesis.md +173 -0
  50. package/content/bio-research/skills/bio-research-scientific-problem-selection/references/09-meta-framework.md +504 -0
  51. package/content/bio-research/skills/bio-research-scvi-tools/LICENSE.txt +201 -0
  52. package/content/bio-research/skills/bio-research-scvi-tools/SKILL.md +155 -0
  53. package/content/bio-research/skills/bio-research-scvi-tools/references/atac_peakvi.md +398 -0
  54. package/content/bio-research/skills/bio-research-scvi-tools/references/batch_correction_sysvi.md +417 -0
  55. package/content/bio-research/skills/bio-research-scvi-tools/references/citeseq_totalvi.md +420 -0
  56. package/content/bio-research/skills/bio-research-scvi-tools/references/data_preparation.md +286 -0
  57. package/content/bio-research/skills/bio-research-scvi-tools/references/environment_setup.md +254 -0
  58. package/content/bio-research/skills/bio-research-scvi-tools/references/label_transfer.md +373 -0
  59. package/content/bio-research/skills/bio-research-scvi-tools/references/multiome_multivi.md +384 -0
  60. package/content/bio-research/skills/bio-research-scvi-tools/references/rna_velocity_velovi.md +410 -0
  61. package/content/bio-research/skills/bio-research-scvi-tools/references/scarches_mapping.md +401 -0
  62. package/content/bio-research/skills/bio-research-scvi-tools/references/scrna_integration.md +429 -0
  63. package/content/bio-research/skills/bio-research-scvi-tools/references/spatial_deconvolution.md +438 -0
  64. package/content/bio-research/skills/bio-research-scvi-tools/references/troubleshooting.md +420 -0
  65. package/content/bio-research/skills/bio-research-scvi-tools/scripts/cluster_embed.py +212 -0
  66. package/content/bio-research/skills/bio-research-scvi-tools/scripts/differential_expression.py +220 -0
  67. package/content/bio-research/skills/bio-research-scvi-tools/scripts/integrate_datasets.py +237 -0
  68. package/content/bio-research/skills/bio-research-scvi-tools/scripts/model_utils.py +634 -0
  69. package/content/bio-research/skills/bio-research-scvi-tools/scripts/prepare_data.py +169 -0
  70. package/content/bio-research/skills/bio-research-scvi-tools/scripts/train_model.py +370 -0
  71. package/content/bio-research/skills/bio-research-scvi-tools/scripts/transfer_labels.py +224 -0
  72. package/content/bio-research/skills/bio-research-scvi-tools/scripts/validate_adata.py +397 -0
  73. package/content/bio-research/skills/bio-research-single-cell-rna-qc/LICENSE.txt +201 -0
  74. package/content/bio-research/skills/bio-research-single-cell-rna-qc/SKILL.md +175 -0
  75. package/content/bio-research/skills/bio-research-single-cell-rna-qc/references/scverse_qc_guidelines.md +186 -0
  76. package/content/bio-research/skills/bio-research-single-cell-rna-qc/scripts/qc_analysis.py +232 -0
  77. package/content/bio-research/skills/bio-research-single-cell-rna-qc/scripts/qc_core.py +233 -0
  78. package/content/bio-research/skills/bio-research-single-cell-rna-qc/scripts/qc_plotting.py +235 -0
  79. package/content/bio-research/skills/bio-research-start/SKILL.md +79 -0
  80. package/content/customer-support/.mcp.json +40 -0
  81. package/content/customer-support/CONNECTORS.md +19 -0
  82. package/content/customer-support/LICENSE +202 -0
  83. package/content/customer-support/README.md +140 -0
  84. package/content/customer-support/skills/customer-support-customer-escalation/SKILL.md +248 -0
  85. package/content/customer-support/skills/customer-support-customer-research/SKILL.md +252 -0
  86. package/content/customer-support/skills/customer-support-draft-response/SKILL.md +418 -0
  87. package/content/customer-support/skills/customer-support-kb-article/SKILL.md +351 -0
  88. package/content/customer-support/skills/customer-support-ticket-triage/SKILL.md +275 -0
  89. package/content/data/.mcp.json +36 -0
  90. package/content/data/CONNECTORS.md +18 -0
  91. package/content/data/LICENSE +202 -0
  92. package/content/data/README.md +121 -0
  93. package/content/data/skills/data-analyze/SKILL.md +119 -0
  94. package/content/data/skills/data-build-dashboard/SKILL.md +924 -0
  95. package/content/data/skills/data-create-viz/SKILL.md +154 -0
  96. package/content/data/skills/data-data-context-extractor/SKILL.md +227 -0
  97. package/content/data/skills/data-data-context-extractor/references/domain-template.md +147 -0
  98. package/content/data/skills/data-data-context-extractor/references/example-output.md +198 -0
  99. package/content/data/skills/data-data-context-extractor/references/skill-template.md +148 -0
  100. package/content/data/skills/data-data-context-extractor/references/sql-dialects.md +121 -0
  101. package/content/data/skills/data-data-context-extractor/scripts/package_data_skill.py +126 -0
  102. package/content/data/skills/data-data-visualization/SKILL.md +305 -0
  103. package/content/data/skills/data-explore-data/SKILL.md +325 -0
  104. package/content/data/skills/data-sql-queries/SKILL.md +428 -0
  105. package/content/data/skills/data-statistical-analysis/SKILL.md +245 -0
  106. package/content/data/skills/data-validate-data/SKILL.md +383 -0
  107. package/content/data/skills/data-write-query/SKILL.md +122 -0
  108. package/content/design/.mcp.json +44 -0
  109. package/content/design/CONNECTORS.md +18 -0
  110. package/content/design/README.md +117 -0
  111. package/content/design/skills/design-accessibility-review/SKILL.md +128 -0
  112. package/content/design/skills/design-design-critique/SKILL.md +118 -0
  113. package/content/design/skills/design-design-handoff/SKILL.md +131 -0
  114. package/content/design/skills/design-design-system/SKILL.md +190 -0
  115. package/content/design/skills/design-research-synthesis/SKILL.md +92 -0
  116. package/content/design/skills/design-user-research/SKILL.md +41 -0
  117. package/content/design/skills/design-ux-copy/SKILL.md +107 -0
  118. package/content/engineering/.mcp.json +48 -0
  119. package/content/engineering/CONNECTORS.md +19 -0
  120. package/content/engineering/README.md +136 -0
  121. package/content/engineering/skills/engineering-architecture/SKILL.md +85 -0
  122. package/content/engineering/skills/engineering-code-review/SKILL.md +118 -0
  123. package/content/engineering/skills/engineering-debug/SKILL.md +95 -0
  124. package/content/engineering/skills/engineering-deploy-checklist/SKILL.md +78 -0
  125. package/content/engineering/skills/engineering-documentation/SKILL.md +49 -0
  126. package/content/engineering/skills/engineering-incident-response/SKILL.md +158 -0
  127. package/content/engineering/skills/engineering-standup/SKILL.md +75 -0
  128. package/content/engineering/skills/engineering-system-design/SKILL.md +42 -0
  129. package/content/engineering/skills/engineering-tech-debt/SKILL.md +32 -0
  130. package/content/engineering/skills/engineering-testing-strategy/SKILL.md +33 -0
  131. package/content/enterprise-search/.mcp.json +36 -0
  132. package/content/enterprise-search/CONNECTORS.md +21 -0
  133. package/content/enterprise-search/LICENSE +202 -0
  134. package/content/enterprise-search/README.md +157 -0
  135. package/content/enterprise-search/skills/enterprise-search-digest/SKILL.md +173 -0
  136. package/content/enterprise-search/skills/enterprise-search-knowledge-synthesis/SKILL.md +258 -0
  137. package/content/enterprise-search/skills/enterprise-search-search/SKILL.md +178 -0
  138. package/content/enterprise-search/skills/enterprise-search-search-strategy/SKILL.md +222 -0
  139. package/content/enterprise-search/skills/enterprise-search-source-management/SKILL.md +173 -0
  140. package/content/finance/.mcp.json +32 -0
  141. package/content/finance/CONNECTORS.md +20 -0
  142. package/content/finance/LICENSE +202 -0
  143. package/content/finance/README.md +92 -0
  144. package/content/finance/skills/finance-audit-support/SKILL.md +374 -0
  145. package/content/finance/skills/finance-close-management/SKILL.md +221 -0
  146. package/content/finance/skills/finance-financial-statements/SKILL.md +335 -0
  147. package/content/finance/skills/finance-journal-entry/SKILL.md +131 -0
  148. package/content/finance/skills/finance-journal-entry-prep/SKILL.md +186 -0
  149. package/content/finance/skills/finance-reconciliation/SKILL.md +175 -0
  150. package/content/finance/skills/finance-sox-testing/SKILL.md +218 -0
  151. package/content/finance/skills/finance-variance-analysis/SKILL.md +266 -0
  152. package/content/human-resources/.mcp.json +28 -0
  153. package/content/human-resources/CONNECTORS.md +19 -0
  154. package/content/human-resources/README.md +138 -0
  155. package/content/human-resources/skills/human-resources-comp-analysis/SKILL.md +92 -0
  156. package/content/human-resources/skills/human-resources-draft-offer/SKILL.md +82 -0
  157. package/content/human-resources/skills/human-resources-interview-prep/SKILL.md +37 -0
  158. package/content/human-resources/skills/human-resources-onboarding/SKILL.md +104 -0
  159. package/content/human-resources/skills/human-resources-org-planning/SKILL.md +28 -0
  160. package/content/human-resources/skills/human-resources-people-report/SKILL.md +99 -0
  161. package/content/human-resources/skills/human-resources-performance-review/SKILL.md +149 -0
  162. package/content/human-resources/skills/human-resources-policy-lookup/SKILL.md +94 -0
  163. package/content/human-resources/skills/human-resources-recruiting-pipeline/SKILL.md +31 -0
  164. package/content/legal/.mcp.json +36 -0
  165. package/content/legal/CONNECTORS.md +21 -0
  166. package/content/legal/LICENSE +202 -0
  167. package/content/legal/README.md +234 -0
  168. package/content/legal/skills/legal-brief/SKILL.md +208 -0
  169. package/content/legal/skills/legal-compliance-check/SKILL.md +274 -0
  170. package/content/legal/skills/legal-legal-response/SKILL.md +457 -0
  171. package/content/legal/skills/legal-legal-risk-assessment/SKILL.md +265 -0
  172. package/content/legal/skills/legal-meeting-briefing/SKILL.md +220 -0
  173. package/content/legal/skills/legal-review-contract/SKILL.md +358 -0
  174. package/content/legal/skills/legal-signature-request/SKILL.md +104 -0
  175. package/content/legal/skills/legal-triage-nda/SKILL.md +262 -0
  176. package/content/legal/skills/legal-vendor-check/SKILL.md +159 -0
  177. package/content/manifest.json +86 -0
  178. package/content/marketing/.mcp.json +60 -0
  179. package/content/marketing/CONNECTORS.md +20 -0
  180. package/content/marketing/LICENSE +202 -0
  181. package/content/marketing/README.md +90 -0
  182. package/content/marketing/skills/marketing-brand-review/SKILL.md +276 -0
  183. package/content/marketing/skills/marketing-campaign-plan/SKILL.md +308 -0
  184. package/content/marketing/skills/marketing-competitive-brief/SKILL.md +331 -0
  185. package/content/marketing/skills/marketing-content-creation/SKILL.md +157 -0
  186. package/content/marketing/skills/marketing-draft-content/SKILL.md +117 -0
  187. package/content/marketing/skills/marketing-email-sequence/SKILL.md +220 -0
  188. package/content/marketing/skills/marketing-performance-report/SKILL.md +392 -0
  189. package/content/marketing/skills/marketing-seo-audit/SKILL.md +190 -0
  190. package/content/operations/.mcp.json +32 -0
  191. package/content/operations/CONNECTORS.md +20 -0
  192. package/content/operations/README.md +135 -0
  193. package/content/operations/skills/operations-capacity-plan/SKILL.md +113 -0
  194. package/content/operations/skills/operations-change-request/SKILL.md +121 -0
  195. package/content/operations/skills/operations-compliance-tracking/SKILL.md +44 -0
  196. package/content/operations/skills/operations-process-doc/SKILL.md +82 -0
  197. package/content/operations/skills/operations-process-optimization/SKILL.md +39 -0
  198. package/content/operations/skills/operations-risk-assessment/SKILL.md +40 -0
  199. package/content/operations/skills/operations-runbook/SKILL.md +87 -0
  200. package/content/operations/skills/operations-status-report/SKILL.md +77 -0
  201. package/content/operations/skills/operations-vendor-review/SKILL.md +104 -0
  202. package/content/pdf-viewer/.mcp.json +8 -0
  203. package/content/pdf-viewer/CONNECTORS.md +15 -0
  204. package/content/pdf-viewer/LICENSE +202 -0
  205. package/content/pdf-viewer/README.md +57 -0
  206. package/content/pdf-viewer/commands/annotate.md +51 -0
  207. package/content/pdf-viewer/commands/fill-form.md +73 -0
  208. package/content/pdf-viewer/commands/open.md +34 -0
  209. package/content/pdf-viewer/commands/sign.md +54 -0
  210. package/content/pdf-viewer/skills/pdf-viewer-view-pdf/SKILL.md +147 -0
  211. package/content/product-management/.mcp.json +72 -0
  212. package/content/product-management/CONNECTORS.md +22 -0
  213. package/content/product-management/LICENSE +202 -0
  214. package/content/product-management/README.md +118 -0
  215. package/content/product-management/commands/brainstorm.md +120 -0
  216. package/content/product-management/skills/product-management-competitive-brief/SKILL.md +302 -0
  217. package/content/product-management/skills/product-management-metrics-review/SKILL.md +388 -0
  218. package/content/product-management/skills/product-management-product-brainstorming/SKILL.md +273 -0
  219. package/content/product-management/skills/product-management-roadmap-update/SKILL.md +266 -0
  220. package/content/product-management/skills/product-management-sprint-planning/SKILL.md +94 -0
  221. package/content/product-management/skills/product-management-stakeholder-update/SKILL.md +352 -0
  222. package/content/product-management/skills/product-management-synthesize-research/SKILL.md +312 -0
  223. package/content/product-management/skills/product-management-write-spec/SKILL.md +250 -0
  224. package/content/productivity/.mcp.json +44 -0
  225. package/content/productivity/CONNECTORS.md +18 -0
  226. package/content/productivity/LICENSE +202 -0
  227. package/content/productivity/README.md +97 -0
  228. package/content/productivity/skills/dashboard.html +3111 -0
  229. package/content/productivity/skills/productivity-memory-management/SKILL.md +323 -0
  230. package/content/productivity/skills/productivity-start/SKILL.md +158 -0
  231. package/content/productivity/skills/productivity-task-management/SKILL.md +91 -0
  232. package/content/productivity/skills/productivity-update/SKILL.md +168 -0
  233. package/content/sales/.mcp.json +100 -0
  234. package/content/sales/CONNECTORS.md +36 -0
  235. package/content/sales/LICENSE +202 -0
  236. package/content/sales/README.md +148 -0
  237. package/content/sales/skills/sales-account-context/SKILL.md +94 -0
  238. package/content/sales/skills/sales-account-plan/SKILL.md +95 -0
  239. package/content/sales/skills/sales-account-research/SKILL.md +99 -0
  240. package/content/sales/skills/sales-account-tiering/SKILL.md +101 -0
  241. package/content/sales/skills/sales-call-prep/SKILL.md +111 -0
  242. package/content/sales/skills/sales-call-summary/SKILL.md +111 -0
  243. package/content/sales/skills/sales-close-plan/SKILL.md +106 -0
  244. package/content/sales/skills/sales-competitive-intelligence/SKILL.md +102 -0
  245. package/content/sales/skills/sales-create-an-asset/SKILL.md +105 -0
  246. package/content/sales/skills/sales-crm-hygiene-check/SKILL.md +103 -0
  247. package/content/sales/skills/sales-customer-health/SKILL.md +108 -0
  248. package/content/sales/skills/sales-customer-voice/SKILL.md +94 -0
  249. package/content/sales/skills/sales-daily-briefing/SKILL.md +61 -0
  250. package/content/sales/skills/sales-deal-advance-gap/SKILL.md +102 -0
  251. package/content/sales/skills/sales-deal-review/SKILL.md +105 -0
  252. package/content/sales/skills/sales-deal-signals/SKILL.md +96 -0
  253. package/content/sales/skills/sales-deal-slip-scenario/SKILL.md +101 -0
  254. package/content/sales/skills/sales-draft-outreach/SKILL.md +116 -0
  255. package/content/sales/skills/sales-end-of-day/SKILL.md +114 -0
  256. package/content/sales/skills/sales-expansion-whitespace/SKILL.md +97 -0
  257. package/content/sales/skills/sales-forecast/SKILL.md +100 -0
  258. package/content/sales/skills/sales-handle-objection/SKILL.md +93 -0
  259. package/content/sales/skills/sales-inbox-sweep/SKILL.md +114 -0
  260. package/content/sales/skills/sales-lead-triage/SKILL.md +105 -0
  261. package/content/sales/skills/sales-log-activity/SKILL.md +111 -0
  262. package/content/sales/skills/sales-pipeline-review/SKILL.md +97 -0
  263. package/content/sales/skills/sales-renewal-radar/SKILL.md +95 -0
  264. package/content/sales/skills/sales-rep-context/SKILL.md +90 -0
  265. package/content/sales/skills/sales-route-lead/SKILL.md +111 -0
  266. package/content/sales/skills/sales-schedule-meeting/SKILL.md +99 -0
  267. package/content/sales/skills/sales-setup/SKILL.md +195 -0
  268. package/content/sales/skills/sales-stakeholder-map/SKILL.md +107 -0
  269. package/content/sales/skills/sales-team-pipeline/SKILL.md +105 -0
  270. package/content/sales/skills/sales-update-opportunity/SKILL.md +111 -0
  271. package/content/sales/skills/sales-weekly-wrap/SKILL.md +90 -0
  272. package/content/sales/skills/sales-win-loss-review/SKILL.md +88 -0
  273. package/content/small-business/.mcp.json +148 -0
  274. package/content/small-business/README.md +117 -0
  275. package/content/small-business/skills/small-business-ad-manager/SKILL.md +128 -0
  276. package/content/small-business/skills/small-business-ad-manager/reference/ad_copy.md +112 -0
  277. package/content/small-business/skills/small-business-ad-manager/reference/change_playbook.md +127 -0
  278. package/content/small-business/skills/small-business-ad-manager/reference/data_sources.md +100 -0
  279. package/content/small-business/skills/small-business-ad-manager/reference/diagnostics.md +89 -0
  280. package/content/small-business/skills/small-business-ad-manager/reference/gotchas.md +181 -0
  281. package/content/small-business/skills/small-business-ap-processor/SKILL.md +158 -0
  282. package/content/small-business/skills/small-business-ap-processor/reference/coding_rules.md +70 -0
  283. package/content/small-business/skills/small-business-ap-processor/reference/gotchas.md +131 -0
  284. package/content/small-business/skills/small-business-ap-processor/reference/intake_and_extraction.md +82 -0
  285. package/content/small-business/skills/small-business-ap-processor/reference/matching_and_exceptions.md +80 -0
  286. package/content/small-business/skills/small-business-ap-processor/reference/payment_run.md +77 -0
  287. package/content/small-business/skills/small-business-brand-style/SKILL.md +106 -0
  288. package/content/small-business/skills/small-business-build-agent/SKILL.md +105 -0
  289. package/content/small-business/skills/small-business-build-agent/reference/capture.md +133 -0
  290. package/content/small-business/skills/small-business-build-agent/reference/gotchas.md +204 -0
  291. package/content/small-business/skills/small-business-build-agent/reference/skill_authoring.md +165 -0
  292. package/content/small-business/skills/small-business-build-connector/SKILL.md +102 -0
  293. package/content/small-business/skills/small-business-build-connector/reference/discovery.md +120 -0
  294. package/content/small-business/skills/small-business-build-connector/reference/gotchas.md +237 -0
  295. package/content/small-business/skills/small-business-build-connector/reference/paths.md +106 -0
  296. package/content/small-business/skills/small-business-build-connector/reference/use-zapier.md +128 -0
  297. package/content/small-business/skills/small-business-business-pulse/SKILL.md +181 -0
  298. package/content/small-business/skills/small-business-business-pulse/reference/data_sources.md +173 -0
  299. package/content/small-business/skills/small-business-business-pulse/reference/gotchas.md +103 -0
  300. package/content/small-business/skills/small-business-business-pulse/reference/output_template.md +109 -0
  301. package/content/small-business/skills/small-business-business-pulse/reference/thresholds.md +71 -0
  302. package/content/small-business/skills/small-business-business-pulse/reference/v2_sources.md +63 -0
  303. package/content/small-business/skills/small-business-call-list/SKILL.md +82 -0
  304. package/content/small-business/skills/small-business-canva-creator/SKILL.md +448 -0
  305. package/content/small-business/skills/small-business-canva-creator/reference/canva-api.md +208 -0
  306. package/content/small-business/skills/small-business-canva-creator/reference/examples/boutique-brief-campaign.md +181 -0
  307. package/content/small-business/skills/small-business-canva-creator/reference/gotchas.md +380 -0
  308. package/content/small-business/skills/small-business-canva-creator/reference/hubspot-staging.md +137 -0
  309. package/content/small-business/skills/small-business-cash-flow-snapshot/SKILL.md +251 -0
  310. package/content/small-business/skills/small-business-cash-flow-snapshot/reference/examples/worked-example.md +92 -0
  311. package/content/small-business/skills/small-business-cash-flow-snapshot/reference/gotchas.md +62 -0
  312. package/content/small-business/skills/small-business-cash-flow-snapshot/reference/v2_sources.md +84 -0
  313. package/content/small-business/skills/small-business-close-month/SKILL.md +86 -0
  314. package/content/small-business/skills/small-business-content-strategy/SKILL.md +152 -0
  315. package/content/small-business/skills/small-business-content-strategy/reference/examples/retail-boutique-example.md +71 -0
  316. package/content/small-business/skills/small-business-content-strategy/reference/gotchas.md +104 -0
  317. package/content/small-business/skills/small-business-content-strategy/reference/v2_sources.md +40 -0
  318. package/content/small-business/skills/small-business-contract-review/SKILL.md +158 -0
  319. package/content/small-business/skills/small-business-contract-review/reference/docusign-fetch.md +32 -0
  320. package/content/small-business/skills/small-business-contract-review/reference/examples/flagged-summary-saas.md +97 -0
  321. package/content/small-business/skills/small-business-contract-review/reference/gmail-fetch.md +30 -0
  322. package/content/small-business/skills/small-business-contract-review/reference/gotchas.md +105 -0
  323. package/content/small-business/skills/small-business-contract-review/reference/m365-fetch.md +60 -0
  324. package/content/small-business/skills/small-business-crm-autopilot/SKILL.md +162 -0
  325. package/content/small-business/skills/small-business-crm-autopilot/reference/cleanup-checklist.md +82 -0
  326. package/content/small-business/skills/small-business-crm-autopilot/reference/examples/cleanup-deal.md +83 -0
  327. package/content/small-business/skills/small-business-crm-autopilot/reference/examples/log-call-happy-path.md +68 -0
  328. package/content/small-business/skills/small-business-crm-autopilot/reference/examples/log-email-happy-path.md +50 -0
  329. package/content/small-business/skills/small-business-crm-autopilot/reference/gotchas.md +110 -0
  330. package/content/small-business/skills/small-business-crm-autopilot/reference/hubspot-fields.md +62 -0
  331. package/content/small-business/skills/small-business-crm-autopilot/reference/lightweight_crm.md +125 -0
  332. package/content/small-business/skills/small-business-crm-autopilot/reference/salesforce-fields.md +122 -0
  333. package/content/small-business/skills/small-business-crm-autopilot/reference/standing_mode.md +144 -0
  334. package/content/small-business/skills/small-business-grant-rfp-writer/SKILL.md +162 -0
  335. package/content/small-business/skills/small-business-grant-rfp-writer/reference/drafting.md +129 -0
  336. package/content/small-business/skills/small-business-grant-rfp-writer/reference/go_no_go.md +125 -0
  337. package/content/small-business/skills/small-business-grant-rfp-writer/reference/gotchas.md +180 -0
  338. package/content/small-business/skills/small-business-grant-rfp-writer/reference/opportunity_sources.md +90 -0
  339. package/content/small-business/skills/small-business-grant-rfp-writer/reference/org_profile.md +81 -0
  340. package/content/small-business/skills/small-business-grow-pipeline/SKILL.md +92 -0
  341. package/content/small-business/skills/small-business-growth-pulse/SKILL.md +143 -0
  342. package/content/small-business/skills/small-business-growth-pulse/reference/data_sources.md +113 -0
  343. package/content/small-business/skills/small-business-growth-pulse/reference/gotchas.md +175 -0
  344. package/content/small-business/skills/small-business-growth-pulse/reference/output_template.md +122 -0
  345. package/content/small-business/skills/small-business-growth-pulse/reference/thresholds.md +110 -0
  346. package/content/small-business/skills/small-business-hiring-screener/SKILL.md +137 -0
  347. package/content/small-business/skills/small-business-hiring-screener/reference/candidate_comms.md +132 -0
  348. package/content/small-business/skills/small-business-hiring-screener/reference/fair_screening.md +103 -0
  349. package/content/small-business/skills/small-business-hiring-screener/reference/gotchas.md +183 -0
  350. package/content/small-business/skills/small-business-hiring-screener/reference/onboarding.md +82 -0
  351. package/content/small-business/skills/small-business-hiring-screener/reference/rubric.md +122 -0
  352. package/content/small-business/skills/small-business-inbox-manager/SKILL.md +130 -0
  353. package/content/small-business/skills/small-business-inbox-manager/reference/digest_format.md +110 -0
  354. package/content/small-business/skills/small-business-inbox-manager/reference/gotchas.md +220 -0
  355. package/content/small-business/skills/small-business-inbox-manager/reference/handoffs.md +77 -0
  356. package/content/small-business/skills/small-business-inbox-manager/reference/reply_drafting.md +116 -0
  357. package/content/small-business/skills/small-business-inbox-manager/reference/triage_rules.md +72 -0
  358. package/content/small-business/skills/small-business-inventory-planner/SKILL.md +126 -0
  359. package/content/small-business/skills/small-business-inventory-planner/reference/data_sources.md +94 -0
  360. package/content/small-business/skills/small-business-inventory-planner/reference/gotchas.md +153 -0
  361. package/content/small-business/skills/small-business-inventory-planner/reference/po_drafting.md +92 -0
  362. package/content/small-business/skills/small-business-inventory-planner/reference/seasonality.md +112 -0
  363. package/content/small-business/skills/small-business-inventory-planner/reference/velocity_and_reorder.md +154 -0
  364. package/content/small-business/skills/small-business-invoice-chase/SKILL.md +131 -0
  365. package/content/small-business/skills/small-business-invoice-chase/reference/examples/firm-reminder.md +28 -0
  366. package/content/small-business/skills/small-business-invoice-chase/reference/examples/gentle-reminder.md +27 -0
  367. package/content/small-business/skills/small-business-invoice-chase/reference/gotchas.md +75 -0
  368. package/content/small-business/skills/small-business-invoice-chase/reference/tone-matching.md +44 -0
  369. package/content/small-business/skills/small-business-invoice-chase/reference/v2_sources.md +78 -0
  370. package/content/small-business/skills/small-business-job-post-builder/SKILL.md +204 -0
  371. package/content/small-business/skills/small-business-job-post-builder/reference/docusign-routing.md +63 -0
  372. package/content/small-business/skills/small-business-job-post-builder/reference/examples/worked-example.md +110 -0
  373. package/content/small-business/skills/small-business-job-post-builder/reference/existing-document-merge.md +58 -0
  374. package/content/small-business/skills/small-business-job-post-builder/reference/gotchas.md +68 -0
  375. package/content/small-business/skills/small-business-job-post-builder/reference/interview-guide-structure.md +93 -0
  376. package/content/small-business/skills/small-business-job-post-builder/reference/job-post-structure.md +62 -0
  377. package/content/small-business/skills/small-business-job-post-builder/reference/offer-letter-template.md +145 -0
  378. package/content/small-business/skills/small-business-job-post-builder/reference/role-intake.md +73 -0
  379. package/content/small-business/skills/small-business-lead-finder/SKILL.md +119 -0
  380. package/content/small-business/skills/small-business-lead-finder/reference/gotchas.md +152 -0
  381. package/content/small-business/skills/small-business-lead-finder/reference/icp_method.md +97 -0
  382. package/content/small-business/skills/small-business-lead-finder/reference/output_template.md +124 -0
  383. package/content/small-business/skills/small-business-lead-finder/reference/scoring.md +92 -0
  384. package/content/small-business/skills/small-business-lead-finder/reference/sourcing.md +78 -0
  385. package/content/small-business/skills/small-business-lead-triage/SKILL.md +81 -0
  386. package/content/small-business/skills/small-business-lead-triage/reference/examples/happy-path-triage.md +68 -0
  387. package/content/small-business/skills/small-business-lead-triage/reference/gotchas.md +76 -0
  388. package/content/small-business/skills/small-business-lead-triage/reference/hubspot-scoring.md +169 -0
  389. package/content/small-business/skills/small-business-marketing-monday/SKILL.md +108 -0
  390. package/content/small-business/skills/small-business-monday-brief/SKILL.md +97 -0
  391. package/content/small-business/skills/small-business-month-end-prep/SKILL.md +331 -0
  392. package/content/small-business/skills/small-business-month-end-prep/reference/close-packet-format.md +127 -0
  393. package/content/small-business/skills/small-business-month-end-prep/reference/examples/pl-narrative.md +52 -0
  394. package/content/small-business/skills/small-business-month-end-prep/reference/gotchas.md +113 -0
  395. package/content/small-business/skills/small-business-month-end-prep/reference/paypal-settlements.md +110 -0
  396. package/content/small-business/skills/small-business-month-end-prep/reference/quickbooks-reconcile.md +71 -0
  397. package/content/small-business/skills/small-business-month-end-prep/reference/v2_sources.md +125 -0
  398. package/content/small-business/skills/small-business-month-end-prep/reference/xero-reconcile.md +175 -0
  399. package/content/small-business/skills/small-business-month-end-prep/reference/zoho-books-reconcile.md +168 -0
  400. package/content/small-business/skills/small-business-outreach-composer/SKILL.md +144 -0
  401. package/content/small-business/skills/small-business-outreach-composer/reference/gotchas.md +213 -0
  402. package/content/small-business/skills/small-business-outreach-composer/reference/output_template.md +147 -0
  403. package/content/small-business/skills/small-business-outreach-composer/reference/sequence_patterns.md +99 -0
  404. package/content/small-business/skills/small-business-outreach-composer/reference/slop_test.md +164 -0
  405. package/content/small-business/skills/small-business-pay-the-bills/SKILL.md +101 -0
  406. package/content/small-business/skills/small-business-payroll-prep/SKILL.md +139 -0
  407. package/content/small-business/skills/small-business-payroll-prep/reference/anomaly_rules.md +99 -0
  408. package/content/small-business/skills/small-business-payroll-prep/reference/books_sync.md +72 -0
  409. package/content/small-business/skills/small-business-payroll-prep/reference/gotchas.md +153 -0
  410. package/content/small-business/skills/small-business-payroll-prep/reference/run_sheet_format.md +90 -0
  411. package/content/small-business/skills/small-business-payroll-prep/reference/timesheet_intake.md +118 -0
  412. package/content/small-business/skills/small-business-plan-payroll/SKILL.md +88 -0
  413. package/content/small-business/skills/small-business-proposal-builder/SKILL.md +168 -0
  414. package/content/small-business/skills/small-business-proposal-builder/reference/discovery_extraction.md +138 -0
  415. package/content/small-business/skills/small-business-proposal-builder/reference/gotchas.md +184 -0
  416. package/content/small-business/skills/small-business-proposal-builder/reference/output_template.md +128 -0
  417. package/content/small-business/skills/small-business-proposal-builder/reference/pricing_method.md +125 -0
  418. package/content/small-business/skills/small-business-proposal-builder/reference/proposal_structure.md +120 -0
  419. package/content/small-business/skills/small-business-reactivate/SKILL.md +109 -0
  420. package/content/small-business/skills/small-business-report-builder/SKILL.md +142 -0
  421. package/content/small-business/skills/small-business-report-builder/reference/data_sources.md +168 -0
  422. package/content/small-business/skills/small-business-report-builder/reference/gotchas.md +155 -0
  423. package/content/small-business/skills/small-business-report-builder/reference/output_template.md +109 -0
  424. package/content/small-business/skills/small-business-report-builder/reference/report_spec.md +109 -0
  425. package/content/small-business/skills/small-business-report-builder/reference/saved_reports.md +50 -0
  426. package/content/small-business/skills/small-business-report-pack/SKILL.md +83 -0
  427. package/content/small-business/skills/small-business-restock/SKILL.md +88 -0
  428. package/content/small-business/skills/small-business-review-reputation/SKILL.md +130 -0
  429. package/content/small-business/skills/small-business-review-reputation/reference/churn-signals.md +110 -0
  430. package/content/small-business/skills/small-business-review-reputation/reference/examples/example-report.md +150 -0
  431. package/content/small-business/skills/small-business-review-reputation/reference/gotchas.md +164 -0
  432. package/content/small-business/skills/small-business-review-reputation/reference/response-patterns.md +123 -0
  433. package/content/small-business/skills/small-business-review-reputation/reference/sources.md +116 -0
  434. package/content/small-business/skills/small-business-seo-ai-visibility/SKILL.md +143 -0
  435. package/content/small-business/skills/small-business-seo-ai-visibility/reference/ai_visibility.md +173 -0
  436. package/content/small-business/skills/small-business-seo-ai-visibility/reference/audit_checklist.md +134 -0
  437. package/content/small-business/skills/small-business-seo-ai-visibility/reference/catalog_refresh.md +126 -0
  438. package/content/small-business/skills/small-business-seo-ai-visibility/reference/content_rewrite.md +113 -0
  439. package/content/small-business/skills/small-business-seo-ai-visibility/reference/gotchas.md +211 -0
  440. package/content/small-business/skills/small-business-smb-onboard/SKILL.md +82 -0
  441. package/content/small-business/skills/small-business-smb-onboard/reference/examples/happy-path.md +190 -0
  442. package/content/small-business/skills/small-business-smb-onboard/reference/gotchas.md +111 -0
  443. package/content/small-business/skills/small-business-smb-onboard/reference/onboard-checklist.md +99 -0
  444. package/content/small-business/skills/small-business-smb-onboard/reference/website-research.md +82 -0
  445. package/content/small-business/skills/small-business-smb-router/SKILL.md +216 -0
  446. package/content/small-business/skills/small-business-smb-router/reference/connector-map.md +96 -0
  447. package/content/small-business/skills/small-business-social-content-engine/SKILL.md +162 -0
  448. package/content/small-business/skills/small-business-social-content-engine/reference/calendar.md +116 -0
  449. package/content/small-business/skills/small-business-social-content-engine/reference/canva-api.md +208 -0
  450. package/content/small-business/skills/small-business-social-content-engine/reference/examples/okonkwo-campaign.md +190 -0
  451. package/content/small-business/skills/small-business-social-content-engine/reference/gotchas.md +447 -0
  452. package/content/small-business/skills/small-business-social-content-engine/reference/publishing.md +166 -0
  453. package/content/small-business/skills/small-business-social-content-engine/reference/shopify-assets.md +77 -0
  454. package/content/small-business/skills/small-business-speed-to-lead/SKILL.md +172 -0
  455. package/content/small-business/skills/small-business-speed-to-lead/reference/approval.md +61 -0
  456. package/content/small-business/skills/small-business-speed-to-lead/reference/gotchas.md +167 -0
  457. package/content/small-business/skills/small-business-speed-to-lead/reference/qualification.md +153 -0
  458. package/content/small-business/skills/small-business-speed-to-lead/reference/response_patterns.md +184 -0
  459. package/content/small-business/skills/small-business-tax-prep/SKILL.md +85 -0
  460. package/content/small-business/skills/small-business-tax-season-organizer/SKILL.md +210 -0
  461. package/content/small-business/skills/small-business-tax-season-organizer/reference/calculation-assumptions.md +177 -0
  462. package/content/small-business/skills/small-business-tax-season-organizer/reference/connector-queries.md +267 -0
  463. package/content/small-business/skills/small-business-tax-season-organizer/reference/examples/quarterly-estimate.md +92 -0
  464. package/content/small-business/skills/small-business-tax-season-organizer/reference/examples/year-end-1099.md +102 -0
  465. package/content/small-business/skills/small-business-tax-season-organizer/reference/gotchas.md +104 -0
  466. package/content/small-business/skills/small-business-tax-season-organizer/reference/output-formats.md +68 -0
  467. package/content/small-business/skills/small-business-ticket-deflector/SKILL.md +164 -0
  468. package/content/small-business/skills/small-business-ticket-deflector/reference/examples/deny-refund-request.md +98 -0
  469. package/content/small-business/skills/small-business-ticket-deflector/reference/examples/respond-refund-request.md +77 -0
  470. package/content/small-business/skills/small-business-ticket-deflector/reference/gotchas.md +57 -0
  471. package/index.ts +83 -0
  472. package/package.json +28 -3
@@ -0,0 +1,112 @@
1
+ # Ad Copy and Creative Briefs
2
+
3
+ How to write ads that sound like the owner, and how to hand a visual off to Canva.
4
+
5
+ Read [the shared voice profile](../../../shared/voice-profile.md) first. Ads carry the owner's name and their neighbors see them. Generic ad-speak in a local market is worse than no ad.
6
+
7
+ ---
8
+
9
+ ## Three variants, three different bets
10
+
11
+ Draft three per ad slot. Each variant tests one thing, and you say what.
12
+
13
+ | Variant | Tests |
14
+ |---|---|
15
+ | A | The offer — what is being promised |
16
+ | B | The angle — the reason to care, usually a different pain |
17
+ | C | The format — question versus statement, short versus specific |
18
+
19
+ Three headlines that differ by a word teach nothing after USD 600 of spend. If the owner only wants one, give one and say which bet it is making.
20
+
21
+ ---
22
+
23
+ ## The structure that works for local service
24
+
25
+ 1. **Say who it is for, in their words.** "Bergen County homeowners" beats "valued customers."
26
+ 2. **Name the actual problem.** Specific beats broad. "AC quit in the middle of a heat wave" beats "HVAC issues."
27
+ 3. **Say what happens next.** A real, small next step.
28
+ 4. **One call to action.** Not three.
29
+
30
+ Under 40 words for the body on most placements. People are scrolling.
31
+
32
+ ---
33
+
34
+ ## Worked example
35
+
36
+ Okonkwo Mechanical, spring tune-up campaign. Ray's voice profile: short sentences, contractions, "the work" not "solutions," never "reach out."
37
+
38
+ ```
39
+ Variant A — tests the offer
40
+ Headline: USD 89 AC Tune-Up Before the First Hot Week
41
+ Body: We check the whole system, clean the coils, and tell you
42
+ straight if anything's about to go. Takes about an hour.
43
+ Booking now for May.
44
+ CTA: Book a time
45
+
46
+ Variant B — tests the angle (fear of the July breakdown)
47
+ Headline: Nobody Wants To Call Us In July
48
+ Body: Most emergency calls we get in summer were fixable in spring
49
+ for a fraction of the cost. An hour now saves the 95-degree
50
+ phone call later.
51
+ CTA: Book a time
52
+
53
+ Variant C — tests the format (question, shorter)
54
+ Headline: When Did You Last Have The AC Looked At?
55
+ Body: If the answer is "no idea," it's time. USD 89, about an hour,
56
+ and a straight answer on what shape it's in.
57
+ CTA: Book a time
58
+ ```
59
+
60
+ All three sound like Ray. None uses a word he has never written.
61
+
62
+ ---
63
+
64
+ ## Rules that keep ads out of trouble
65
+
66
+ - **Never invent a price, guarantee, discount, or credential.** If the owner has not said it, it does not go in the ad. This is a legal exposure, not a style preference.
67
+ - **Never state a response time the owner cannot meet.** "We answer in 15 minutes" written into an ad becomes a promise they will be held to.
68
+ - **Avoid superlatives the owner cannot back.** "Best in the county" invites a challenge and reads as noise.
69
+ - **Match the ad to the landing page.** An ad promising USD 89 that lands on a page with no price is the fastest way to waste a budget.
70
+ - **Watch platform rules.** Personal attributes, health claims, and before-and-after imagery are restricted on most platforms. A rejected ad wastes days.
71
+
72
+ ---
73
+
74
+ ## Creative briefs
75
+
76
+ When Canva is connected, generate the asset. When it is not, the brief is the deliverable — hand it to the owner or their designer and it is complete work.
77
+
78
+ ```
79
+ Creative brief — Spring Tune-Up, Variant B
80
+
81
+ Message: The July emergency call you can avoid in May
82
+ Format: Square 1080x1080 for feed, 1080x1920 for stories
83
+ Visual: Technician at an outdoor condenser unit, daylight, real work
84
+ clothes. Not stock-photo polished.
85
+ Text on art: "Nobody wants to call us in July" — large, top third
86
+ Secondary: "USD 89 spring tune-up" — bottom, smaller
87
+ Brand: Okonkwo Mechanical logo bottom right. Navy and white.
88
+ Avoid: Cartoon thermometers, sweating-emoji visuals, stock smiling
89
+ families in living rooms
90
+ Deliverables: Both sizes, PNG
91
+ ```
92
+
93
+ Confirm brand colors, logo, and fonts against what the owner has actually used before. If none is on file, ask once and note it, rather than picking.
94
+
95
+ ---
96
+
97
+ ## Sizes worth having on hand
98
+
99
+ | Placement | Size |
100
+ |---|---|
101
+ | Feed, square | 1080 x 1080 |
102
+ | Feed, portrait | 1080 x 1350 |
103
+ | Stories and Reels, TikTok | 1080 x 1920 |
104
+ | Right column and misc | 1200 x 628 |
105
+
106
+ Generate the square and the vertical at minimum. Vertical placements are where most of the cheap impressions live, and a square image stretched into a vertical slot looks like a mistake.
107
+
108
+ ---
109
+
110
+ ## After the ads run
111
+
112
+ Come back with the variant comparison against the minimum volumes in `diagnostics.md` — 1,000 impressions and 15 results per variant before naming a winner. Then say what the winner taught, not just which one won: "the fear-of-July angle beat the price angle by 40%, so lead with consequence, not discount, in the next round."
@@ -0,0 +1,127 @@
1
+ # Change Playbook
2
+
3
+ The changes worth making, and the approval gate each one needs before it happens.
4
+
5
+ Every change in this file spends, stops, or redirects the owner's money. Recommending one is free. Making one requires a fresh yes.
6
+
7
+ ---
8
+
9
+ ## The approval block
10
+
11
+ Same shape every time, dollars first. The owner should be able to decide without scrolling.
12
+
13
+ ```
14
+ Change: <what, named exactly as it appears in the ad account>
15
+ Costs today: <$ per month at current settings>
16
+ After: <$ per month after the change>
17
+ Net: <$ change per month, plus the expected effect on results>
18
+ Reversible: <Yes or No, and how>
19
+ Proceed?
20
+ ```
21
+
22
+ Rules that make this work:
23
+
24
+ - **One change, one block, one yes.** Never bundle. An owner approving "the plan" has not approved five separate spends.
25
+ - **Absolute dollars always.** A percentage may appear beside the dollars, never instead of them.
26
+ - **Monthly, not daily.** Ad platforms speak in daily budgets; owners think in monthly bills. Convert, and show both when they differ meaningfully.
27
+ - **State the expected loss too.** Saving USD 1,400 by pausing a campaign also stops roughly 12 leads a month. An owner who only hears the saving will be angry in three weeks.
28
+ - **A yes expires.** If the conversation moves on and comes back, ask again.
29
+
30
+ ---
31
+
32
+ ## Budget changes
33
+
34
+ **When to increase.** Cost per result is stable or improving, frequency is under 3, and the campaign has 30+ days of history. Increase by no more than 20-30% at a time — larger jumps reset the platform's learning and results get worse before they get better. Say this, because the owner will otherwise ask why not double it.
35
+
36
+ **When to decrease.** Cost per result is 40%+ worse than the trailing average, or frequency is above 4 with falling CTR.
37
+
38
+ **When to leave it alone.** Under the minimum volumes in `diagnostics.md`. Most weeks, the right answer is no change.
39
+
40
+ ```
41
+ Change: Increase daily budget on "Spring Tune-Up" from USD 60 to USD 75
42
+ Costs today: USD 1,840 a month
43
+ After: USD 2,300 a month
44
+ Net: +USD 460 a month. At the current USD 54 per lead that's about 8 more
45
+ leads a month, if efficiency holds. It usually slips a little.
46
+ Reversible: Yes, immediately
47
+ Proceed?
48
+ ```
49
+
50
+ ---
51
+
52
+ ## Pausing and restarting
53
+
54
+ Pausing is the safest change and the one owners most want. It still needs a gate, because it stops lead flow.
55
+
56
+ Never pause the only campaign producing results, even if it looks expensive, without saying plainly that it is the only one working.
57
+
58
+ Restarting is not free either. A restarted campaign re-enters the learning period and performs worse for several days. Say so.
59
+
60
+ ---
61
+
62
+ ## Targeting changes
63
+
64
+ Higher risk than budget changes, because the effect is not obvious and not instantly reversible in practice — the audience data resets.
65
+
66
+ Worth doing:
67
+
68
+ - **Narrowing geography** to the area the owner actually services. Money spent on people 90 minutes outside the service radius is pure waste and this is the single most common fixable leak in local accounts.
69
+ - **Excluding existing customers** from acquisition campaigns.
70
+ - **Widening an exhausted audience** when frequency is above 4 — a broader audience beats a new creative on a burnt one.
71
+
72
+ Not worth doing: stacking narrow interest filters. Small audiences cost more per result and the platform's own targeting usually beats hand-built layers.
73
+
74
+ ```
75
+ Change: Narrow "Emergency Repair" geography from 50 miles to 25 miles
76
+ Costs today: USD 860 a month, 7 leads, USD 123 each
77
+ After: Same USD 860 budget, spent on a tighter area
78
+ Net: No spend change. Roughly 30% of impressions were outside the
79
+ service area, so expect cost per lead to fall. Volume may dip
80
+ for a week while it re-learns.
81
+ Reversible: Yes, but the audience learning restarts
82
+ Proceed?
83
+ ```
84
+
85
+ ---
86
+
87
+ ## Publishing a new ad
88
+
89
+ **The highest-risk action in this skill.** It is public, it carries the owner's brand, and it begins spending money the moment it goes live.
90
+
91
+ Before the gate, show the owner the complete ad exactly as it will appear: headline, body, image or brief, destination link, call to action, audience, and budget.
92
+
93
+ ```
94
+ Change: Publish new ad "Tune-Up — Straight Answer v2" to Spring Tune-Up
95
+ Headline: <exact text>
96
+ Body: <exact text>
97
+ Image: <the Canva asset, or the brief if Canva is not connected>
98
+ Goes to: <exact destination URL>
99
+ Costs today: USD 0 — new ad
100
+ After: Shares the existing USD 1,840 monthly campaign budget
101
+ Net: No new spend. Splits budget with the 2 ads already running.
102
+ Reversible: Yes, pause any time
103
+ Proceed?
104
+ ```
105
+
106
+ Three checks before publishing, every time:
107
+
108
+ 1. **The destination link works** and goes where the ad promises. A broken link burns the whole budget on nothing.
109
+ 2. **Every claim in the copy is true.** Prices, guarantees, response times, licenses. The owner is legally responsible for what the ad says.
110
+ 3. **No claim the owner did not make.** Never invent a guarantee, a discount, or a credential to make the copy stronger.
111
+
112
+ ---
113
+
114
+ ## In CSV mode
115
+
116
+ Same blocks, same dollars, same one-at-a-time discipline. The only difference is the last line: instead of "Proceed?" it is a click path.
117
+
118
+ ```
119
+ To make this change:
120
+ 1. Ads Manager, Campaigns tab
121
+ 2. Click "Spring Tune-Up"
122
+ 3. Edit, then Budget
123
+ 4. Change Daily Budget from USD 60.00 to USD 75.00
124
+ 5. Publish
125
+ ```
126
+
127
+ Then offer to check back in two weeks and read the next export.
@@ -0,0 +1,100 @@
1
+ # Data Sources
2
+
3
+ Where the numbers come from, how to get them without a connector, and how to reconcile the two stories they tell.
4
+
5
+ ---
6
+
7
+ ## Connectors
8
+
9
+ | Source | Status | What to pull |
10
+ |---|---|---|
11
+ | Canva | Available | Creative asset generation from a written brief |
12
+ | TikTok Ads | The native connected path (TikTok MCP) | Spend, impressions, clicks, results, cost per result — at campaign, ad group, and ad level |
13
+ | Google Ads | No native connector — reached through a Zapier connection built with `build-connector`, offered once when the owner runs ads there | Whatever the connected Zapier actions expose. CSV export still works when no connection exists |
14
+ | HubSpot | Optional but high value | Leads by source, deals closed by source — the truth check on platform claims |
15
+ | QuickBooks, Shopify, Square | Optional | Revenue actually collected in the period |
16
+
17
+ **Check before assuming.** If a TikTok call or a Zapier action fails, do not retry in a loop and do not stall. Say the path is not available, switch to the export path, and keep going. Never call a platform with no native connector directly — it runs through a built Zapier connection or a CSV.
18
+
19
+ ---
20
+
21
+ ## The CSV export path
22
+
23
+ This is the common path. Treat it as the default, not the fallback.
24
+
25
+ ### What to ask for, in the owner's words
26
+
27
+ - **Google Ads:** "In Google Ads, go to Campaigns, set the date range to last 30 days, click the download icon, choose CSV."
28
+ - **TikTok:** "Ads Manager, Campaign tab, Export, last 30 days."
29
+
30
+ Ask for 90 days too when the question is about trend rather than this month. Say why: "30 days tells us where we are, 90 tells us which way it's moving."
31
+
32
+ ### Reading the file
33
+
34
+ Header names differ by platform and by export settings. Map, do not assume.
35
+
36
+ | What you need | Common column names |
37
+ |---|---|
38
+ | Spend | `Amount spent (USD)`, `Cost`, `Total spent` |
39
+ | Impressions | `Impressions`, `Impr.` |
40
+ | Clicks | `Clicks (all)`, `Link clicks`, `Clicks` |
41
+ | Results | `Results`, `Conversions`, `Leads`, `Purchases` |
42
+ | Cost per result | `Cost per result`, `Cost / conv.` — or compute it |
43
+ | Reach and frequency | `Reach`, `Frequency` |
44
+ | Date range | Usually in a header row above the table, not a column |
45
+
46
+ **Two traps in real exports.** First, `Results` can mean different things per campaign — one row's result is a lead form, another's is a page view. Check the `Result type` column if it exists; if it does not, say the results are not comparable across campaigns rather than summing them. Second, currency symbols and thousands separators arrive as text. Strip them before arithmetic.
47
+
48
+ If a column you need is absent, name it: "This export has spend and clicks but no conversion column, so I can tell you what traffic cost and nothing about what it produced." Then offer the export setting that would include it.
49
+
50
+ ---
51
+
52
+ ## Reconciling platform numbers against the CRM
53
+
54
+ The two will never match. The gap is information, not an error.
55
+
56
+ **Why platforms report more:**
57
+
58
+ - View-through conversions — someone saw the ad, did not click, bought later
59
+ - Cross-device attribution the CRM cannot see
60
+ - Attribution windows, often 7 days after a click and 1 day after a view
61
+ - Each platform claims the same conversion when a customer touched several ads
62
+
63
+ **Why the CRM reports fewer:**
64
+
65
+ - The source field is blank on records created by hand
66
+ - Phone calls and walk-ins carry no digital source at all
67
+ - Form fills that never became a CRM record
68
+
69
+ ### The method
70
+
71
+ 1. Pull platform-reported results per campaign
72
+ 2. Pull CRM leads and closed deals with that source, over the same dates
73
+ 3. Show both, side by side, labeled by who reported them
74
+ 4. Give the owner one number to steer by — cost per closed job from the CRM — and label the platform figure as the optimistic bound
75
+
76
+ ### Report it like this
77
+
78
+ ```
79
+ Paid social — Spring Tune-Up
80
+ Spend USD 1,840
81
+ Platform says 34 conversions, USD 54 each
82
+ CRM says 19 leads tagged to it, 6 became jobs
83
+ Cost per real job USD 307
84
+ The gap The platform counts people who saw the ad and called
85
+ later. The CRM only counts what got tagged.
86
+ Real number is probably between the two,
87
+ closer to the CRM.
88
+ ```
89
+
90
+ Never publish one blended figure. Owners forward these numbers to partners and lenders.
91
+
92
+ ---
93
+
94
+ ## When there is no tracking at all
95
+
96
+ Plenty of small accounts run ads with no pixel and no conversion event. Clicks are the only signal.
97
+
98
+ Say it plainly: "There's no conversion tracking on this account, so nobody — not me, not the platform — can tell you what these ads produced. We can compare cost per click across campaigns, which tells you which creative got attention, and that is all it tells you."
99
+
100
+ Then offer the fix as the first recommendation, ahead of any budget change. Tracking before optimization; otherwise every later recommendation rests on nothing.
@@ -0,0 +1,89 @@
1
+ # Diagnostics
2
+
3
+ How to read an ad account without fooling yourself. Cutoffs, minimum volumes, and what each signal actually means.
4
+
5
+ ---
6
+
7
+ ## Minimum data before you draw a conclusion
8
+
9
+ Small accounts produce noisy numbers. Most bad ad advice is a two-week swing read as a trend.
10
+
11
+ | Decision | Minimum before you call it |
12
+ |---|---|
13
+ | Pause a campaign | 30 days, or 50 results, whichever comes first |
14
+ | Declare a creative a winner | 1,000 impressions and 15 results per variant |
15
+ | Call a cost-per-result trend real | 3 consecutive weeks in the same direction |
16
+ | Judge a brand-new campaign | 7 days minimum — platforms need a learning period |
17
+ | Shift budget between campaigns | 30 days of both running |
18
+
19
+ Below these, say so: "Two weeks and 9 leads is not enough to call this. Here's what it looks like so far, and what I'd want before changing anything."
20
+
21
+ Seasonality matters more than owners expect. An HVAC account in a July heat wave is not the same account in October. Compare to the same weeks last year when the data exists, and say when it does not.
22
+
23
+ ---
24
+
25
+ ## The metrics, and what they actually tell you
26
+
27
+ | Metric | What it answers | Where it misleads |
28
+ |---|---|---|
29
+ | Spend | What it cost | Nothing on its own |
30
+ | Impressions | How many times it showed | Rewards cheap, worthless audiences |
31
+ | Frequency | Times the average person saw it | Above 3-4 in a month means the audience is exhausted |
32
+ | CTR | Whether the creative earns attention | A great CTR to a bad landing page still produces nothing |
33
+ | Cost per click | Cost of attention | Says nothing about quality |
34
+ | Cost per result | The working number | Only meaningful if the result is defined the same way across campaigns |
35
+ | Cost per closed job | The number that matters | Needs CRM data; often unavailable |
36
+ | Return on spend | Revenue divided by spend | Only for commerce with reliable purchase tracking |
37
+
38
+ Lead with cost per result when tracking exists. Lead with cost per closed job when the CRM can supply it. Never lead with impressions.
39
+
40
+ ---
41
+
42
+ ## Status cutoffs
43
+
44
+ Relative to the account's own trailing 90-day average, not to an industry benchmark. Benchmarks from the internet do not know this owner's market.
45
+
46
+ | Status | Rule |
47
+ |---|---|
48
+ | Working | Cost per result within 15% of the trailing average or better, volume steady or rising |
49
+ | Watch | Cost per result 15-40% worse, or frequency above 3, or volume falling two weeks running |
50
+ | Problem | Cost per result more than 40% worse, or spending with zero results for 14+ days |
51
+ | No verdict | No conversion tracking, or below the minimum volume above |
52
+
53
+ **No verdict is a real status.** Use it. It is far better than a confident judgment on nothing.
54
+
55
+ ---
56
+
57
+ ## The signals that carry real meaning
58
+
59
+ **Rising spend with rising cost per result.** The audience is running out. More budget buys worse results, not more of the same. This is the most common misread in the whole discipline.
60
+
61
+ **Frequency climbing while CTR falls.** Creative fatigue. The same people are seeing the same ad repeatedly and have stopped noticing. The fix is new creative, not more money.
62
+
63
+ **Strong CTR with weak conversion.** The ad is doing its job; the landing page or the offer is not. Do not touch the ad.
64
+
65
+ **One campaign carrying the account.** Check what share of results comes from the top campaign. Above 70% means the account is fragile — one policy flag or audience burnout takes the whole thing down.
66
+
67
+ **Results steady, cost per result rising slowly.** Usually auction pressure — competitors bidding more — not a broken campaign. Says the channel is getting more expensive, which is a pricing conversation, not an optimization one.
68
+
69
+ **Everything looks fine but the phone is quiet.** Trust the phone. Check whether the lead form is broken, whether leads are going to a mailbox nobody reads, and whether the tracking is double-counting.
70
+
71
+ ---
72
+
73
+ ## Worked read
74
+
75
+ Okonkwo Mechanical, 30 days, paid social:
76
+
77
+ ```
78
+ Account USD 3,100 spent, 41 leads, USD 76 each
79
+ Trailing 90-day average: USD 58 each. 31% worse. Watch.
80
+
81
+ Spring Tune-Up USD 1,840, 34 leads, USD 54 each. Frequency 2.1. Working.
82
+ Emergency Repair $ 860, 7 leads, USD 123 each. Frequency 4.6. Problem.
83
+ Frequency says this audience is used up, not that the
84
+ offer is wrong.
85
+ Brand Awareness $ 400, 0 leads. No conversion event on this campaign.
86
+ No verdict — it was never set up to be measured.
87
+ ```
88
+
89
+ The story in one sentence: the account looks 31% worse than usual, and almost all of that is one saturated campaign plus USD 400 a month going somewhere nobody is measuring.
@@ -0,0 +1,181 @@
1
+ # Gotchas
2
+
3
+ Failure modes that waste an owner's ad budget. Every one of these has a dollar figure attached in the real world, which is why this skill gates execution so tightly.
4
+
5
+ ---
6
+
7
+ ## Gotcha: executing a percentage change without stating the dollars
8
+
9
+ **Why it matters:** "Cut it by 30%" is a number the owner cannot feel. They approve it, then see the bill and realize they agreed to something they never pictured. Every executed change must state the absolute monthly dollars before and after.
10
+
11
+ ### Bad
12
+
13
+ ```
14
+ Recommend reducing the retargeting budget by 30%. Proceed?
15
+ ```
16
+
17
+ ### Good
18
+
19
+ ```
20
+ Change: Reduce "Retargeting — All Visitors" daily budget
21
+ Costs today: USD 1,200 a month (USD 40/day)
22
+ After: USD 840 a month (USD 28/day)
23
+ Net: Saves USD 360 a month. Expect roughly 4 fewer leads a month.
24
+ Reversible: Yes, immediately
25
+ Proceed?
26
+ ```
27
+
28
+ The percentage can stay. It just cannot travel alone.
29
+
30
+ ---
31
+
32
+ ## Gotcha: bundling changes behind one approval
33
+
34
+ **Why it matters:** An owner who says yes to "the plan" has not said yes to five separate money decisions. Bundling is how a USD 400 adjustment turns into a USD 2,000 one that nobody remembers agreeing to.
35
+
36
+ ### Bad
37
+
38
+ ```
39
+ Here's the plan: pause Emergency Repair, raise Spring Tune-Up to USD 75/day,
40
+ narrow the geography, and publish two new ads. Sound good?
41
+ ```
42
+
43
+ ### Good
44
+
45
+ Four separate blocks, four separate yeses, in priority order. Start with the one that saves money, since it is the easiest to approve and it funds the rest.
46
+
47
+ If the owner says "just do all of it," restate the total dollar impact in one line and get a yes on that number specifically — "that's USD 860 saved and USD 460 added, net saving USD 400 a month, four changes. Confirm?"
48
+
49
+ ---
50
+
51
+ ## Gotcha: reporting one ROI number as fact
52
+
53
+ **Why it matters:** Owners ask for "the exact ROI of every campaign." The honest answer is that no such number exists — the platform and the CRM measure different things and always disagree. A single confident figure is fiction, and owners take these numbers to lenders and partners.
54
+
55
+ ### Bad
56
+
57
+ ```
58
+ Paid social ROI: 4.2x
59
+ ```
60
+
61
+ ### Good
62
+
63
+ ```
64
+ Paid social — Spring Tune-Up, USD 1,840 spent
65
+ Platform reports 34 conversions
66
+ CRM shows 19 leads tagged to it, 6 closed, USD 9,400 in jobs
67
+ By the CRM 5.1x return, USD 307 per closed job
68
+ By its count It would look better, because the platform counts people who saw
69
+ the ad and called later without clicking.
70
+ Steer by The CRM number. It's the conservative one and it's the
71
+ one tied to money you actually collected.
72
+ ```
73
+
74
+ ---
75
+
76
+ ## Gotcha: recommending more spend on a channel that is saturating
77
+
78
+ **Why it matters:** Rising spend with rising cost per result means the audience is running out. "It's working, spend more" is the most expensive wrong call in paid ads.
79
+
80
+ ### Bad
81
+
82
+ ```
83
+ Spring Tune-Up drove 34 leads, up from 21. Recommend doubling the budget.
84
+ ```
85
+
86
+ Spend went from USD 900 to USD 1,840 and cost per lead went from USD 43 to USD 54.
87
+
88
+ ### Good
89
+
90
+ ```
91
+ Volume is up because spend is up. Cost per lead went from USD 43 to USD 54 over the
92
+ same period, so each extra dollar is buying less. Raise it 20% at most, to
93
+ USD 2,200 a month, and watch cost per lead for two weeks. If it holds under USD 60,
94
+ raise again. If it crosses USD 65, the audience is done and new creative beats
95
+ new budget.
96
+ ```
97
+
98
+ ---
99
+
100
+ ## Gotcha: judging a campaign that was never set up to be measured
101
+
102
+ **Why it matters:** Plenty of campaigns run with no conversion event. Grading them on clicks produces a confident verdict about nothing, and budget moves off it.
103
+
104
+ ### Bad
105
+
106
+ ```
107
+ Brand Awareness: 2,400 clicks at USD 0.17. Best performing campaign — scale it.
108
+ ```
109
+
110
+ ### Good
111
+
112
+ ```
113
+ Brand Awareness: USD 400 spent, 2,400 clicks, zero conversion tracking. No
114
+ verdict — this campaign was never set up to report results, so nobody can
115
+ say what it produced. Cheapest clicks in the account, which usually means
116
+ the cheapest attention. First recommendation is to add a conversion event,
117
+ then give it 30 days.
118
+ ```
119
+
120
+ ---
121
+
122
+ ## Gotcha: publishing an ad with a claim the owner never made
123
+
124
+ **Why it matters:** Ad copy is a public promise the owner is legally responsible for. An invented guarantee or price is a liability, not a creative flourish.
125
+
126
+ ### Bad
127
+
128
+ ```
129
+ Headline: 100% Satisfaction Guaranteed — Same-Day Service, Always
130
+ ```
131
+
132
+ Neither the guarantee nor the same-day promise exists anywhere in what the owner said.
133
+
134
+ ### Good
135
+
136
+ ```
137
+ Headline: USD 89 AC Tune-Up Before the First Hot Week
138
+ ```
139
+
140
+ Only what the owner actually offers. If a stronger claim would help, ask whether it is true rather than writing it and hoping.
141
+
142
+ ---
143
+
144
+ ## Gotcha: reading two weeks as a trend
145
+
146
+ **Why it matters:** Small accounts swing hard week to week. Half of all "the ads stopped working" panics are normal variance, and reacting to them destroys the platform's learning and makes results genuinely worse.
147
+
148
+ ### Bad
149
+
150
+ ```
151
+ Cost per lead jumped from USD 54 to USD 89 this week. Pause the campaign.
152
+ ```
153
+
154
+ ### Good
155
+
156
+ ```
157
+ Cost per lead was USD 89 this week against a USD 54 average — but that's 6 leads on
158
+ a rainy week, which is inside normal swing for this account. Nothing to do
159
+ yet. If it stays above USD 70 for three straight weeks, that's real and we act.
160
+ ```
161
+
162
+ ---
163
+
164
+ ## Gotcha: treating the CSV path as a downgrade
165
+
166
+ **Why it matters:** Most owners will not have an ad connector. If the export path feels like an apology, the skill is broken for the majority of the people using it.
167
+
168
+ ### Bad
169
+
170
+ ```
171
+ I can't access your ad account, so I can only do a limited review.
172
+ ```
173
+
174
+ ### Good
175
+
176
+ ```
177
+ No ad connector on this account, so we'll work from your export — same
178
+ analysis either way. In your ads platform: export the last 30 days as a CSV,
179
+ broken down by campaign. Send me that file and I'll have the read and the
180
+ recommended changes back to you, with the exact clicks to make each one.
181
+ ```