opencode-knowledge-work 0.0.0-stage → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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 +84 -0
  472. package/package.json +30 -3
@@ -0,0 +1,110 @@
1
+ # Quiet customers and win-backs
2
+
3
+ Most customers do not complain before they leave. They just stop. Finding them
4
+ is a data job, not a sentiment job.
5
+
6
+ ---
7
+
8
+ ## Set the rhythm per customer, not per business
9
+
10
+ A customer is quiet when their gap has stretched well past *their own* normal
11
+ interval. Comparing everyone to a single company-wide average produces a list
12
+ full of annual customers who are perfectly happy.
13
+
14
+ For each customer with three or more orders or jobs:
15
+
16
+ ```
17
+ their normal interval = median gap between their own orders
18
+ quiet = current gap > 2× their normal interval
19
+ gone = current gap > 3× their normal interval
20
+ ```
21
+
22
+ With fewer than three orders there is no rhythm to measure. Compare those to
23
+ the business's median instead, and label them as an estimate in the report.
24
+
25
+ | Customer | Normal interval | Current gap | Read |
26
+ |---|---|---|---|
27
+ | Dana R. | 3 months | 7 months | Quiet — worth a call |
28
+ | Kirby St. LLC | 12 months | 13 months | Normal — leave alone |
29
+ | M. Alvarez | 6 weeks | 5 months | Gone — win-back |
30
+
31
+ ---
32
+
33
+ ## Rank by what the relationship was worth
34
+
35
+ Sort the quiet list by past value, not by length of silence. The owner has
36
+ time for fifteen conversations, not two hundred, and the fifteen should be the
37
+ ones that mattered.
38
+
39
+ Value in order of usefulness: lifetime spend, then order frequency, then most
40
+ recent order size. Use whatever the connected data actually supports and say
41
+ which one you used.
42
+
43
+ **The strongest signal is a pairing:** a customer who left a negative review
44
+ and then stopped ordering. Flag those at the top regardless of value. They
45
+ told the business exactly what was wrong and then left anyway, and they are
46
+ the most winnable because the fix is already known.
47
+
48
+ ---
49
+
50
+ ## Shopify order patterns as sentiment
51
+
52
+ Behavior leads reviews by weeks. Reading it early is the only chance to fix
53
+ something before it becomes public.
54
+
55
+ Worth surfacing:
56
+
57
+ - **Fulfillment time drifting up** across a period. Compare the window to the
58
+ prior one and report both numbers.
59
+ - **Repeat refunds against one product** or one date range. Three refunds on
60
+ the same SKU is a product problem, not three unhappy people.
61
+ - **Partial or split shipments** rising. These generate "where is the rest of
62
+ my order" contacts a week or two later.
63
+ - **First-order customers who never came back,** as a share of the window.
64
+
65
+ Report what the data shows and nothing beyond it. If refund reasons are not
66
+ recorded in the data, say they are unavailable rather than inferring why
67
+ people asked for money back.
68
+
69
+ ---
70
+
71
+ ## Designing the win-back
72
+
73
+ One message per customer, referencing something real: what they bought, what
74
+ was fixed, the season their equipment gets serviced. Generic "we miss you"
75
+ mail is exactly what they already delete.
76
+
77
+ Confirm what the owner can actually honor before drafting. Never invent a
78
+ discount, credit, free service, or priority slot. Ask:
79
+
80
+ ```
81
+ Before I draft these — what's actually on the table for a win-back?
82
+
83
+ Something like a discount or a free check-up
84
+ A straight personal note with no offer
85
+ A call from you rather than an email
86
+
87
+ For the four highest-value names I'd suggest the call. An email to someone
88
+ who spent USD 9,000 with you reads as a mailing list.
89
+ ```
90
+
91
+ **Offer strength by segment:**
92
+
93
+ | Segment | What usually works |
94
+ |---|---|
95
+ | High value, left a bad review | A personal call. No offer up front — the apology is the offer |
96
+ | High value, no complaint | A note from the owner, naming the last job |
97
+ | Mid value, seasonal business | A timely reminder, no discount needed |
98
+ | Low value, one-time buyer | A single low-cost offer, then stop |
99
+
100
+ **Stop after one.** A second and third win-back attempt to someone who has not
101
+ replied damages the brand and, for email, damages deliverability for everyone
102
+ else. One good message, then leave them alone.
103
+
104
+ ---
105
+
106
+ ## Approval
107
+
108
+ Every win-back is drafted for approval and sent one at a time. The owner
109
+ approves the message and the offer inside it. An offer that goes out before
110
+ the owner has agreed to honor it turns a churn problem into a refund problem.
@@ -0,0 +1,150 @@
1
+ # Worked example — Okonkwo Mechanical
2
+
3
+ Ray Okonkwo asks: *"What are people saying about us? Our Google rating dropped
4
+ and I don't know why."*
5
+
6
+ HubSpot and PayPal are connected. Gmail is connected. No Shopify.
7
+ Google reviews came from an export Ray downloaded; Yelp was read from the web.
8
+
9
+ ---
10
+
11
+ ## Review and Reputation — Apr 28 to Jul 27, 2026
12
+
13
+ **Google rating: 4.3 (34 reviews), down from 4.6 in the prior 90 days.**
14
+ Yelp shows 4.0 across 11 visible reviews. These are separate populations and
15
+ are not averaged together.
16
+
17
+ ### Sources pulled
18
+
19
+ ```
20
+ Google reviews (export) 14 in window
21
+ Yelp (web, partial) 6 — page shows most recent only
22
+ PayPal disputes 2
23
+ HubSpot tickets 9
24
+ Gmail threads 11
25
+ Shopify orders — not connected
26
+ ```
27
+
28
+ Yelp is partial: the public page paginates and older reviews were not
29
+ readable. The Google export is complete for the window.
30
+
31
+ ---
32
+
33
+ ### Themes
34
+
35
+ **1. Parts waits with no updates (11 signals)**
36
+
37
+ > "Waited nine days for a part and had to call three times to get an update."
38
+ > — [Google, 1★, Jul 12]
39
+
40
+ > "Nobody told us the part was backordered. We found out when we called."
41
+ > — [HubSpot ticket, Jun 30]
42
+
43
+ > "Still no word on the blower. Third week." — [Gmail, Jul 3]
44
+
45
+ **2. Scheduling double-bookings (6 signals)**
46
+
47
+ > "They booked us Thursday, then called Thursday morning to move it."
48
+ > — [Google, 3★, Jun 18]
49
+
50
+ > "Great install, terrible scheduling. Two reschedules." — [Yelp, 3★, Jul 2]
51
+
52
+ **3. The techs themselves, consistently praised (9 signals)**
53
+
54
+ > "Marcus went into a crawlspace I wouldn't send anyone into. Runs perfect."
55
+ > — [Google, 5★, Jul 20]
56
+
57
+ > "Whoever came out actually explained what was wrong. Rare." — [Gmail, Jun 12]
58
+
59
+ The rating drop is not about the work. Every low review in the window is about
60
+ waiting or scheduling; the work itself is what people compliment.
61
+
62
+ ---
63
+
64
+ ### Reviews needing a response
65
+
66
+ Three unanswered, oldest first.
67
+
68
+ ```
69
+ ★★★☆☆ Google · Jun 18 · T. Whitfield
70
+ "They booked us Thursday, then called Thursday morning to move it."
71
+
72
+ Draft reply:
73
+ Moving a Thursday job on Thursday morning isn't good enough, and that
74
+ one's on us. We've gone to confirmation calls the day before so it
75
+ doesn't happen again. Thanks for the honest note. — Ray
76
+
77
+ Post this, edit it, or skip it?
78
+ ```
79
+
80
+ ```
81
+ ★☆☆☆☆ Google · Jul 12 · Dana R.
82
+ "Waited nine days for a part and had to call three times to get an update."
83
+
84
+ Draft reply:
85
+ Nine days for a blower motor is too long, and you shouldn't have had to
86
+ chase us for updates. We've changed how we order parts so this doesn't
87
+ repeat. Call me at 555-0142 and I'll make the wait right. — Ray
88
+
89
+ Post this, edit it, or skip it?
90
+ ```
91
+
92
+ ```
93
+ ★★★★★ Google · Jul 20 · L. Okafor
94
+ "Marcus went into a crawlspace I wouldn't send anyone into. Runs perfect."
95
+
96
+ Draft reply:
97
+ Thanks — I'll pass that to Marcus. He mentioned that crawlspace. Give us
98
+ a shout when it's time for the fall check. — Ray
99
+
100
+ Post this, edit it, or skip it?
101
+ ```
102
+
103
+ Ray approves all three, one at a time. The Jul 12 reply is edited first: he
104
+ changes "we've changed how we order parts" to "we now order the part before
105
+ the tech leaves," because that is what actually changed. That correction goes
106
+ into the voice profile notes.
107
+
108
+ ---
109
+
110
+ ### Quiet customers
111
+
112
+ Ranked by lifetime spend. Rhythm is each customer's own median gap between
113
+ jobs, so annual customers are not on this list.
114
+
115
+ | Customer | Normal | Current gap | Lifetime | Note |
116
+ |---|---|---|---|---|
117
+ | Dana R. | 3 months | 7 months | USD 9,140 | Left the Jul 12 one-star |
118
+ | M. Alvarez | 6 weeks | 5 months | USD 4,300 | Last job was a reschedule |
119
+ | Bellhaven Apts | 4 months | 9 months | USD 3,880 | No complaint on file |
120
+
121
+ Dana is first regardless of value: she told the business what was wrong and
122
+ then stopped. That pairing is the clearest churn signal in the data.
123
+
124
+ Before drafting anything:
125
+
126
+ ```
127
+ What's on the table for a win-back?
128
+
129
+ Something like a discount or a free check-up
130
+ A straight personal note with no offer
131
+ A call from you
132
+
133
+ For Dana I'd suggest the call rather than an email. She spent USD 9,000 with
134
+ you and just left a one-star — an email reads as a mailing list.
135
+ ```
136
+
137
+ Ray picks the call for Dana, a note for the other two, and authorizes a free
138
+ fall check-up for Bellhaven. Nothing is drafted until he says so, and nothing
139
+ sends until he approves each message.
140
+
141
+ ---
142
+
143
+ ### Do these three things this week
144
+
145
+ 1. **Call Dana R.** She is the highest-value quiet customer and the parts wait
146
+ is why. Her review is also the one dragging the Google average.
147
+ 2. **Order parts before the tech leaves.** Eleven signals across three sources
148
+ trace to the same gap, and it is the whole reason the rating moved.
149
+ 3. **Confirm every job the day before.** Six scheduling signals, all
150
+ preventable with one phone call per job.
@@ -0,0 +1,164 @@
1
+ # Gotchas — review-reputation
2
+
3
+ ## Gotcha: Posting a public response without approval
4
+
5
+ **Why it matters:** A review response is permanent, public, and attributed to
6
+ the owner by name. It is read by every future customer who finds the review.
7
+ There is no version of "we'll fix it next run" that undoes it.
8
+
9
+ ### ✗ Bad
10
+
11
+ Draft eight responses, post them all, then show the owner what went out.
12
+
13
+ ### ✓ Good
14
+
15
+ Present each draft next to the review it answers and get a yes on that one
16
+ before posting it. Approve one at a time — a batch approval on eight public
17
+ responses is how the wrong one goes live.
18
+
19
+ ---
20
+
21
+ ## Gotcha: Blending rating averages across platforms
22
+
23
+ **Why it matters:** Google's 4.3 and Yelp's 4.0 describe different populations
24
+ of reviewers. An average of the two is a number that exists nowhere, and the
25
+ owner will repeat it to a customer or put it on a truck.
26
+
27
+ ### ✗ Bad
28
+
29
+ > Your overall rating is 4.2 across 45 reviews.
30
+
31
+ ### ✓ Good
32
+
33
+ > Google: 4.3 (34 reviews), down from 4.6 last quarter.
34
+ > Yelp: 4.0 (11 visible). Different reviewer pools — not averaged.
35
+
36
+ ---
37
+
38
+ ## Gotcha: Treating a partial web scrape as a complete pull
39
+
40
+ **Why it matters:** Public review pages paginate, truncate, and reorder. A
41
+ report built on the first page reads as the whole picture, so the owner
42
+ concludes there are no new complaints when there are three on page two.
43
+
44
+ ### ✗ Bad
45
+
46
+ > Yelp reviews: 6
47
+
48
+ ### ✓ Good
49
+
50
+ > Yelp (web, partial): 6 — page shows most recent only
51
+
52
+ Then ask for an export once. It takes the owner two minutes and fixes every
53
+ run afterward.
54
+
55
+ ---
56
+
57
+ ## Gotcha: Ranking quiet customers by silence alone
58
+
59
+ **Why it matters:** A list sorted by longest gap fills with annual customers
60
+ who are perfectly happy and one-time buyers who were never coming back. The
61
+ owner works the top of the list, finds it worthless, and stops using it.
62
+
63
+ ### ✗ Bad
64
+
65
+ Sort every customer by days since last order and hand over 200 names.
66
+
67
+ ### ✓ Good
68
+
69
+ Measure each customer against their own median interval, then rank by past
70
+ value. Fifteen names the owner will actually call beats two hundred they
71
+ won't. Put anyone who left a bad review and then went quiet at the top
72
+ regardless of value — they said what was wrong and left anyway.
73
+
74
+ ---
75
+
76
+ ## Gotcha: Offering a discount the owner never authorized
77
+
78
+ **Why it matters:** A win-back message that promises 20% off is a commitment
79
+ the owner has to honor once it lands. Drafting it before asking turns a churn
80
+ problem into a margin problem, and the owner finds out when the customer
81
+ redeems it.
82
+
83
+ ### ✗ Bad
84
+
85
+ > Hi Dana — we've missed you. Here's 20% off your next service.
86
+
87
+ Nobody agreed to 20%.
88
+
89
+ ### ✓ Good
90
+
91
+ Ask what is on the table before drafting: an offer, a plain note, or a call
92
+ from the owner. Draft only inside that answer, and say plainly when a call
93
+ beats a coupon — an email to someone who spent USD 9,000 reads as a mailing list.
94
+
95
+ ---
96
+
97
+ ## Gotcha: Arguing with a reviewer in public
98
+
99
+ **Why it matters:** The audience is not the reviewer. It is the next customer
100
+ reading the exchange, deciding how this business behaves when provoked. A
101
+ correct, well-evidenced rebuttal still loses that reader.
102
+
103
+ ### ✗ Bad
104
+
105
+ > Our records show the technician arrived within the scheduled window and our
106
+ > policy clearly states parts orders take 5-7 business days.
107
+
108
+ ### ✓ Good
109
+
110
+ Correct one factual point, offer a real contact route, and stop. Under 60
111
+ words. If the review breaks platform rules, explain the removal path to the
112
+ owner honestly — including that most requests are declined — rather than
113
+ promising it will come down.
114
+
115
+ ---
116
+
117
+ ## Gotcha: PayPal rate limits on dispute queries
118
+
119
+ **Why it matters:** PayPal's disputes API throttles aggressively on date windows with many disputes. Silent retries burn the user's time with no feedback.
120
+
121
+ ### ✗ Bad
122
+ Retry 3× automatically with no feedback. User sees a spinner for 30+ seconds before an error.
123
+
124
+ ### ✓ Good
125
+ On the first rate-limit error, skip PayPal, add `PayPal: rate-limited — not included` to the Sources section, and continue with the remaining connectors. Mention that the user can try again with a narrower date window.
126
+
127
+ ---
128
+
129
+ ## Gotcha: Verbatim quotes paraphrased or summarized
130
+
131
+ **Why it matters:** The owner needs to see the actual customer words — not Claude's interpretation. Paraphrase destroys the credibility of the report.
132
+
133
+ ### ✗ Bad
134
+ **Theme: Slow shipping** (8 signals)
135
+ > Customers reported that deliveries arrived later than expected.
136
+
137
+ ### ✓ Good
138
+ **Theme: Slow shipping** (8 signals)
139
+ > "Ordered 2 weeks ago and still nothing — this is unacceptable." — [Gmail]
140
+ > "Package was 10 days late and support never responded." — [Zoho Desk]
141
+
142
+ ---
143
+
144
+ ## Gotcha: HubSpot returning 0 tickets treated as an error
145
+
146
+ **Why it matters:** Test portals and new accounts legitimately have 0 tickets. Surfacing a warning creates noise and erodes trust.
147
+
148
+ ### ✗ Bad
149
+ > ⚠️ HubSpot returned 0 tickets. Check your connection or permissions.
150
+
151
+ ### ✓ Good
152
+ Record `HubSpot tickets: 0` in the Sources section and continue. Only flag a connector issue if authentication itself fails.
153
+
154
+ ---
155
+
156
+ ## Gotcha: Gmail keyword list too narrow
157
+
158
+ **Why it matters:** Customers don't use standard complaint keywords. A 1-star experience often surfaces as "took forever" or "never again," not "disappointed."
159
+
160
+ ### ✗ Bad
161
+ Search only for: `refund cancel unhappy`
162
+
163
+ ### ✓ Good
164
+ Use the full seed list in `sources.md`, which includes phrasings like "took forever" and "never again." Let theme extraction filter signal from noise — over-inclusion is cheaper than a missed theme.
@@ -0,0 +1,123 @@
1
+ # Review responses
2
+
3
+ Every response is drafted for approval and posted only after the owner reads
4
+ it. A public response cannot be taken back.
5
+
6
+ Read `../../../shared/voice-profile.md` before drafting. These go out under the
7
+ owner's name, in public, permanently. A guessed voice is worse here than
8
+ anywhere else in the plugin.
9
+
10
+ **Under 60 words.** A long reply reads as arguing, whatever it says.
11
+
12
+ ---
13
+
14
+ ## Negative review
15
+
16
+ Four parts, in order:
17
+
18
+ 1. **Name the specific thing.** Not "we're sorry for your experience."
19
+ "You waited nine days for a part" — the reviewer needs to see they were
20
+ read.
21
+ 2. **Say what changed,** if anything genuinely did. If nothing has, skip this
22
+ rather than inventing a policy.
23
+ 3. **Move it offline with a real route.** A name and a number, not "please
24
+ contact us."
25
+ 4. **Stop.** No policy explanation, no context about how busy the season was.
26
+
27
+ ### ✗ Bad
28
+
29
+ > We're sorry you feel this way. Our records show the technician arrived
30
+ > within the scheduled window and our policy clearly states that parts
31
+ > orders can take 5-7 business days. We pride ourselves on customer service
32
+ > and hope you'll give us another chance.
33
+
34
+ Defensive, cites policy at someone who is upset, and reads as a rebuttal to
35
+ every future customer who finds it.
36
+
37
+ ### ✓ Good
38
+
39
+ > Nine days for a blower motor is too long, and you shouldn't have had to
40
+ > chase us for updates. We've changed how we order parts so this doesn't
41
+ > repeat. Call me directly at 555-0142 and I'll make the wait right.
42
+ > — Ray
43
+
44
+ ---
45
+
46
+ ## Positive review
47
+
48
+ Short, specific, and clearly written by a person. Thank them for the thing
49
+ they actually mentioned. A copy-pasted "Thanks for the 5 stars!" under
50
+ fourteen reviews in a row tells every reader the responses are automated.
51
+
52
+ ### ✓ Good
53
+
54
+ > Thanks Dana. Marcus said the crawlspace was a tight one — glad it's running
55
+ > right. Give us a shout when it's time for the fall check.
56
+ > — Ray
57
+
58
+ ---
59
+
60
+ ## Mixed review
61
+
62
+ Answer both halves honestly. Owners tend to reply only to the compliment,
63
+ which reads as ducking the complaint.
64
+
65
+ ### ✓ Good
66
+
67
+ > Thanks for the kind words about the install. You're right about the
68
+ > scheduling — we double-booked that Thursday and you paid for it. We've
69
+ > moved to same-day confirmation calls since. — Ray
70
+
71
+ ---
72
+
73
+ ## Unfair or false review
74
+
75
+ Stay calm, correct the one factual point, and stop. The audience is not the
76
+ reviewer; it is the next customer reading the exchange, and they are watching
77
+ how the business behaves under provocation.
78
+
79
+ ### ✓ Good
80
+
81
+ > We don't have a record of a service call at this address, so this may be a
82
+ > mix-up with another company. If we did work for you, call me at 555-0142
83
+ > and I'll sort it out. — Ray
84
+
85
+ **Escalation.** Removal is worth requesting only when a review clearly breaks
86
+ the platform's rules — wrong business, no actual transaction, personal
87
+ attacks, or an obvious conflict of interest. Explain to the owner what the
88
+ platform's bar actually is, that most requests are declined, and that a calm
89
+ public reply usually does more good than a removal fight. Never tell the owner
90
+ a review will be removed; the platform decides.
91
+
92
+ ---
93
+
94
+ ## Approval flow
95
+
96
+ Present each draft with the review it answers, so the owner judges them
97
+ together:
98
+
99
+ ```
100
+ ★☆☆☆☆ Google · Jul 12 · Dana R.
101
+ "Waited nine days for a part and had to call three times to get an update."
102
+
103
+ Draft reply:
104
+ Nine days for a blower motor is too long, and you shouldn't have had to
105
+ chase us for updates. We've changed how we order parts so this doesn't
106
+ repeat. Call me directly at 555-0142 and I'll make the wait right. — Ray
107
+
108
+ Post this, edit it, or skip it?
109
+ ```
110
+
111
+ Approve one at a time. A batch approval on eight public responses is how a
112
+ wrong one goes live.
113
+
114
+ ---
115
+
116
+ ## Timing
117
+
118
+ Respond to negative reviews within a couple of days. A complaint answered
119
+ promptly reads as a business paying attention; the same words a month later
120
+ read as damage control.
121
+
122
+ Do not respond to a review the owner has already answered. Check for an
123
+ existing owner response before drafting anything.
@@ -0,0 +1,116 @@
1
+ # Sources
2
+
3
+ One required backbone, everything else deepens it. The skill works on day one
4
+ with nothing connected at all.
5
+
6
+ | Source | Status | What it gives |
7
+ |---|---|---|
8
+ | A CRM (HubSpot, Monday.com, Salesforce, Zoho CRM), a payments connector (PayPal, Square, Stripe), **or** a storefront (Shopify, Square) | Required — one of any of the three categories | Tickets and feedback; disputes and refunds; or order history (who bought what and when) plus fulfillment and refund patterns |
9
+ | Support desk (Zoho Desk) | Optional | Tickets by customer, priority, and status — complaints in the customer's own words |
10
+ | Gmail | Optional | Complaint and praise language in threads |
11
+ | Web research | Always available | Publicly visible reviews on Google, Yelp, Facebook |
12
+ | Pasted or exported reviews | Always available | The best source there is, with dates and ratings |
13
+
14
+ ---
15
+
16
+ ## Public reviews
17
+
18
+ **Preferred: an export.** Google Business Profile and Yelp both let the owner
19
+ download their reviews. An export carries the rating, date, reviewer name, and
20
+ full text, and it includes reviews the public page paginates away. Ask for one
21
+ the first time this skill runs; it takes the owner two minutes and improves
22
+ every run afterward.
23
+
24
+ **Fallback: what is visible on the web.** Fetch the business's public review
25
+ pages and read what renders. This is genuinely useful and genuinely partial —
26
+ pages truncate, paginate, and reorder. Say so in the Sources section rather
27
+ than presenting a partial pull as a complete one.
28
+
29
+ **Also fine: pasted text.** The owner drops reviews into the chat. Tag them
30
+ `[Review]` like any other source and use them.
31
+
32
+ When counting, never total a rating average across sources. Google's average
33
+ and Yelp's average are different numbers about different populations, and an
34
+ owner who repeats a blended figure to a customer will be wrong.
35
+
36
+ ---
37
+
38
+ ## Disputes and tickets
39
+
40
+ **PayPal disputes.** Fetch disputes opened in the window. PayPal throttles
41
+ aggressively on wide date windows. On the first rate-limit error, stop, record
42
+ `PayPal: rate-limited — not included` in Sources, and continue. Do not retry
43
+ silently; suggest a narrower window instead.
44
+
45
+ **Stripe disputes and refunds.** `GET /v1/disputes` created in the window
46
+ (via `stripe_api_read`), with `reason` and `status`; `GET /v1/refunds` for
47
+ the same window, since a run of refunds against one product is a theme
48
+ before it is a review. A dispute's `evidence_details.due_by` is a deadline —
49
+ surface any open one in the "do these three things" list.
50
+
51
+ **Square disputes.** The disputes endpoint through `make_api_request` for the
52
+ window. Same treatment as Stripe.
53
+
54
+ **HubSpot tickets and feedback.** Fetch open and recently closed tickets, plus
55
+ any feedback submissions. Zero tickets is a legitimate state for a new or
56
+ small portal — record `HubSpot tickets: 0` and move on. Only flag a connector
57
+ problem when authentication itself fails.
58
+
59
+ **Zoho Desk tickets.** `getTickets` for the window (`receivedInDays` 30 or
60
+ 90 to match it; sort by `recentThread`), then `getThreads` on the ones whose
61
+ subject reads as a complaint, for the verbatim. `getTicketsMetrics` gives the
62
+ open, overdue, and on-hold counts for the header. Open tickets with priority
63
+ High belong in the Disputes and tickets count, not only in the theme list.
64
+ `getTickets` rejects an `include` parameter — ask for extra fields with
65
+ `fields`.
66
+
67
+ ---
68
+
69
+ ## Email
70
+
71
+ Search the window for threads containing complaint and praise language. Seed
72
+ list, deliberately wide:
73
+
74
+ ```
75
+ refund cancel unhappy issue problem disappointed frustrated broken
76
+ late slow wrong missing never again took forever thank you lifesaver
77
+ recommend great job
78
+ ```
79
+
80
+ Customers rarely use the word "disappointed." They write "took forever" and
81
+ "never again." Over-inclusion is cheap here because theme extraction filters
82
+ the noise; a narrow keyword list silently loses whole themes.
83
+
84
+ Pull the subject line and one or two sentences of the customer's own words —
85
+ enough to quote verbatim later.
86
+
87
+ ---
88
+
89
+ ## Shopify
90
+
91
+ Covered in `churn-signals.md`. In short: orders, fulfillment times, and
92
+ refunds, read as behavior rather than opinion.
93
+
94
+ ---
95
+
96
+ ## Reporting what you got
97
+
98
+ Every run ends with an honest Sources block. Counts, and named failures:
99
+
100
+ ```
101
+ Sources pulled — Apr 28 to Jul 27
102
+
103
+ Google reviews (export) 14
104
+ Yelp (web, partial) 6 — page shows most recent only
105
+ Stripe disputes 3
106
+ Stripe refunds 7
107
+ HubSpot tickets 0
108
+ Zoho Desk tickets 12 — 2 open, priority High
109
+ Gmail threads 11
110
+ Shopify orders 182
111
+ ```
112
+
113
+ Name the connector that was actually read on each line (the example above is
114
+ a Stripe and Zoho Desk shop; a PayPal and HubSpot shop lists those). The dash
115
+ matters as much as the numbers. A source that is missing looks exactly like a
116
+ source with nothing bad in it unless it is named.