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,305 @@
1
+ ---
2
+ name: data-visualization
3
+ description: Create effective data visualizations with Python (matplotlib, seaborn, plotly). Use when building charts, choosing the right chart type for a dataset, creating publication-quality figures, or applying design principles like accessibility and color theory.
4
+ user-invocable: false
5
+ ---
6
+
7
+ # Data Visualization Skill
8
+
9
+ Chart selection guidance, Python visualization code patterns, design principles, and accessibility considerations for creating effective data visualizations.
10
+
11
+ ## Chart Selection Guide
12
+
13
+ ### Choose by Data Relationship
14
+
15
+ | What You're Showing | Best Chart | Alternatives |
16
+ |---|---|---|
17
+ | **Trend over time** | Line chart | Area chart (if showing cumulative or composition) |
18
+ | **Comparison across categories** | Vertical bar chart | Horizontal bar (many categories), lollipop chart |
19
+ | **Ranking** | Horizontal bar chart | Dot plot, slope chart (comparing two periods) |
20
+ | **Part-to-whole composition** | Stacked bar chart | Treemap (hierarchical), waffle chart |
21
+ | **Composition over time** | Stacked area chart | 100% stacked bar (for proportion focus) |
22
+ | **Distribution** | Histogram | Box plot (comparing groups), violin plot, strip plot |
23
+ | **Correlation (2 variables)** | Scatter plot | Bubble chart (add 3rd variable as size) |
24
+ | **Correlation (many variables)** | Heatmap (correlation matrix) | Pair plot |
25
+ | **Geographic patterns** | Choropleth map | Bubble map, hex map |
26
+ | **Flow / process** | Sankey diagram | Funnel chart (sequential stages) |
27
+ | **Relationship network** | Network graph | Chord diagram |
28
+ | **Performance vs. target** | Bullet chart | Gauge (single KPI only) |
29
+ | **Multiple KPIs at once** | Small multiples | Dashboard with separate charts |
30
+
31
+ ### When NOT to Use Certain Charts
32
+
33
+ - **Pie charts**: Avoid unless <6 categories and exact proportions matter less than rough comparison. Humans are bad at comparing angles. Use bar charts instead.
34
+ - **3D charts**: Never. They distort perception and add no information.
35
+ - **Dual-axis charts**: Use cautiously. They can mislead by implying correlation. Clearly label both axes if used.
36
+ - **Stacked bar (many categories)**: Hard to compare middle segments. Use small multiples or grouped bars instead.
37
+ - **Donut charts**: Slightly better than pie charts but same fundamental issues. Use for single KPI display at most.
38
+
39
+ ## Python Visualization Code Patterns
40
+
41
+ ### Setup and Style
42
+
43
+ ```python
44
+ import matplotlib.pyplot as plt
45
+ import matplotlib.ticker as mticker
46
+ import seaborn as sns
47
+ import pandas as pd
48
+ import numpy as np
49
+
50
+ # Professional style setup
51
+ plt.style.use('seaborn-v0_8-whitegrid')
52
+ plt.rcParams.update({
53
+ 'figure.figsize': (10, 6),
54
+ 'figure.dpi': 150,
55
+ 'font.size': 11,
56
+ 'axes.titlesize': 14,
57
+ 'axes.titleweight': 'bold',
58
+ 'axes.labelsize': 11,
59
+ 'xtick.labelsize': 10,
60
+ 'ytick.labelsize': 10,
61
+ 'legend.fontsize': 10,
62
+ 'figure.titlesize': 16,
63
+ })
64
+
65
+ # Colorblind-friendly palettes
66
+ PALETTE_CATEGORICAL = ['#4C72B0', '#DD8452', '#55A868', '#C44E52', '#8172B3', '#937860']
67
+ PALETTE_SEQUENTIAL = 'YlOrRd'
68
+ PALETTE_DIVERGING = 'RdBu_r'
69
+ ```
70
+
71
+ ### Line Chart (Time Series)
72
+
73
+ ```python
74
+ fig, ax = plt.subplots(figsize=(10, 6))
75
+
76
+ for label, group in df.groupby('category'):
77
+ ax.plot(group['date'], group['value'], label=label, linewidth=2)
78
+
79
+ ax.set_title('Metric Trend by Category', fontweight='bold')
80
+ ax.set_xlabel('Date')
81
+ ax.set_ylabel('Value')
82
+ ax.legend(loc='upper left', frameon=True)
83
+ ax.spines['top'].set_visible(False)
84
+ ax.spines['right'].set_visible(False)
85
+
86
+ # Format dates on x-axis
87
+ fig.autofmt_xdate()
88
+
89
+ plt.tight_layout()
90
+ plt.savefig('trend_chart.png', dpi=150, bbox_inches='tight')
91
+ ```
92
+
93
+ ### Bar Chart (Comparison)
94
+
95
+ ```python
96
+ fig, ax = plt.subplots(figsize=(10, 6))
97
+
98
+ # Sort by value for easy reading
99
+ df_sorted = df.sort_values('metric', ascending=True)
100
+
101
+ bars = ax.barh(df_sorted['category'], df_sorted['metric'], color=PALETTE_CATEGORICAL[0])
102
+
103
+ # Add value labels
104
+ for bar in bars:
105
+ width = bar.get_width()
106
+ ax.text(width + 0.5, bar.get_y() + bar.get_height()/2,
107
+ f'{width:,.0f}', ha='left', va='center', fontsize=10)
108
+
109
+ ax.set_title('Metric by Category (Ranked)', fontweight='bold')
110
+ ax.set_xlabel('Metric Value')
111
+ ax.spines['top'].set_visible(False)
112
+ ax.spines['right'].set_visible(False)
113
+
114
+ plt.tight_layout()
115
+ plt.savefig('bar_chart.png', dpi=150, bbox_inches='tight')
116
+ ```
117
+
118
+ ### Histogram (Distribution)
119
+
120
+ ```python
121
+ fig, ax = plt.subplots(figsize=(10, 6))
122
+
123
+ ax.hist(df['value'], bins=30, color=PALETTE_CATEGORICAL[0], edgecolor='white', alpha=0.8)
124
+
125
+ # Add mean and median lines
126
+ mean_val = df['value'].mean()
127
+ median_val = df['value'].median()
128
+ ax.axvline(mean_val, color='red', linestyle='--', linewidth=1.5, label=f'Mean: {mean_val:,.1f}')
129
+ ax.axvline(median_val, color='green', linestyle='--', linewidth=1.5, label=f'Median: {median_val:,.1f}')
130
+
131
+ ax.set_title('Distribution of Values', fontweight='bold')
132
+ ax.set_xlabel('Value')
133
+ ax.set_ylabel('Frequency')
134
+ ax.legend()
135
+ ax.spines['top'].set_visible(False)
136
+ ax.spines['right'].set_visible(False)
137
+
138
+ plt.tight_layout()
139
+ plt.savefig('histogram.png', dpi=150, bbox_inches='tight')
140
+ ```
141
+
142
+ ### Heatmap
143
+
144
+ ```python
145
+ fig, ax = plt.subplots(figsize=(10, 8))
146
+
147
+ # Pivot data for heatmap format
148
+ pivot = df.pivot_table(index='row_dim', columns='col_dim', values='metric', aggfunc='sum')
149
+
150
+ sns.heatmap(pivot, annot=True, fmt=',.0f', cmap='YlOrRd',
151
+ linewidths=0.5, ax=ax, cbar_kws={'label': 'Metric Value'})
152
+
153
+ ax.set_title('Metric by Row Dimension and Column Dimension', fontweight='bold')
154
+ ax.set_xlabel('Column Dimension')
155
+ ax.set_ylabel('Row Dimension')
156
+
157
+ plt.tight_layout()
158
+ plt.savefig('heatmap.png', dpi=150, bbox_inches='tight')
159
+ ```
160
+
161
+ ### Small Multiples
162
+
163
+ ```python
164
+ categories = df['category'].unique()
165
+ n_cats = len(categories)
166
+ n_cols = min(3, n_cats)
167
+ n_rows = (n_cats + n_cols - 1) // n_cols
168
+
169
+ fig, axes = plt.subplots(n_rows, n_cols, figsize=(5*n_cols, 4*n_rows), sharex=True, sharey=True)
170
+ axes = axes.flatten() if n_cats > 1 else [axes]
171
+
172
+ for i, cat in enumerate(categories):
173
+ ax = axes[i]
174
+ subset = df[df['category'] == cat]
175
+ ax.plot(subset['date'], subset['value'], color=PALETTE_CATEGORICAL[i % len(PALETTE_CATEGORICAL)])
176
+ ax.set_title(cat, fontsize=12)
177
+ ax.spines['top'].set_visible(False)
178
+ ax.spines['right'].set_visible(False)
179
+
180
+ # Hide empty subplots
181
+ for j in range(i+1, len(axes)):
182
+ axes[j].set_visible(False)
183
+
184
+ fig.suptitle('Trends by Category', fontsize=14, fontweight='bold', y=1.02)
185
+ plt.tight_layout()
186
+ plt.savefig('small_multiples.png', dpi=150, bbox_inches='tight')
187
+ ```
188
+
189
+ ### Number Formatting Helpers
190
+
191
+ ```python
192
+ def format_number(val, format_type='number'):
193
+ """Format numbers for chart labels."""
194
+ if format_type == 'currency':
195
+ if abs(val) >= 1e9:
196
+ return f'${val/1e9:.1f}B'
197
+ elif abs(val) >= 1e6:
198
+ return f'${val/1e6:.1f}M'
199
+ elif abs(val) >= 1e3:
200
+ return f'${val/1e3:.1f}K'
201
+ else:
202
+ return f'${val:,.0f}'
203
+ elif format_type == 'percent':
204
+ return f'{val:.1f}%'
205
+ elif format_type == 'number':
206
+ if abs(val) >= 1e9:
207
+ return f'{val/1e9:.1f}B'
208
+ elif abs(val) >= 1e6:
209
+ return f'{val/1e6:.1f}M'
210
+ elif abs(val) >= 1e3:
211
+ return f'{val/1e3:.1f}K'
212
+ else:
213
+ return f'{val:,.0f}'
214
+ return str(val)
215
+
216
+ # Usage with axis formatter
217
+ ax.yaxis.set_major_formatter(mticker.FuncFormatter(lambda x, p: format_number(x, 'currency')))
218
+ ```
219
+
220
+ ### Interactive Charts with Plotly
221
+
222
+ ```python
223
+ import plotly.express as px
224
+ import plotly.graph_objects as go
225
+
226
+ # Simple interactive line chart
227
+ fig = px.line(df, x='date', y='value', color='category',
228
+ title='Interactive Metric Trend',
229
+ labels={'value': 'Metric Value', 'date': 'Date'})
230
+ fig.update_layout(hovermode='x unified')
231
+ fig.write_html('interactive_chart.html')
232
+ fig.show()
233
+
234
+ # Interactive scatter with hover data
235
+ fig = px.scatter(df, x='metric_a', y='metric_b', color='category',
236
+ size='size_metric', hover_data=['name', 'detail_field'],
237
+ title='Correlation Analysis')
238
+ fig.show()
239
+ ```
240
+
241
+ ## Design Principles
242
+
243
+ ### Color
244
+
245
+ - **Use color purposefully**: Color should encode data, not decorate
246
+ - **Highlight the story**: Use a bright accent color for the key insight; grey everything else
247
+ - **Sequential data**: Use a single-hue gradient (light to dark) for ordered values
248
+ - **Diverging data**: Use a two-hue gradient with neutral midpoint for data with a meaningful center
249
+ - **Categorical data**: Use distinct hues, maximum 6-8 before it gets confusing
250
+ - **Avoid red/green only**: 8% of men are red-green colorblind. Use blue/orange as primary pair
251
+
252
+ ### Typography
253
+
254
+ - **Title states the insight**: "Revenue grew 23% YoY" beats "Revenue by Month"
255
+ - **Subtitle adds context**: Date range, filters applied, data source
256
+ - **Axis labels are readable**: Never rotated 90 degrees if avoidable. Shorten or wrap instead
257
+ - **Data labels add precision**: Use on key points, not every single bar
258
+ - **Annotation highlights**: Call out specific points with text annotations
259
+
260
+ ### Layout
261
+
262
+ - **Reduce chart junk**: Remove gridlines, borders, backgrounds that don't carry information
263
+ - **Sort meaningfully**: Categories sorted by value (not alphabetically) unless there's a natural order (months, stages)
264
+ - **Appropriate aspect ratio**: Time series wider than tall (3:1 to 2:1); comparisons can be squarer
265
+ - **White space is good**: Don't cram charts together. Give each visualization room to breathe
266
+
267
+ ### Accuracy
268
+
269
+ - **Bar charts start at zero**: Always. A bar from 95 to 100 exaggerates a 5% difference
270
+ - **Line charts can have non-zero baselines**: When the range of variation is meaningful
271
+ - **Consistent scales across panels**: When comparing multiple charts, use the same axis range
272
+ - **Show uncertainty**: Error bars, confidence intervals, or ranges when data is uncertain
273
+ - **Label your axes**: Never make the reader guess what the numbers mean
274
+
275
+ ## Accessibility Considerations
276
+
277
+ ### Color Blindness
278
+
279
+ - Never rely on color alone to distinguish data series
280
+ - Add pattern fills, different line styles (solid, dashed, dotted), or direct labels
281
+ - Test with a colorblind simulator (e.g., Coblis, Sim Daltonism)
282
+ - Use the colorblind-friendly palette: `sns.color_palette("colorblind")`
283
+
284
+ ### Screen Readers
285
+
286
+ - Include alt text describing the chart's key finding
287
+ - Provide a data table alternative alongside the visualization
288
+ - Use semantic titles and labels
289
+
290
+ ### General Accessibility
291
+
292
+ - Sufficient contrast between data elements and background
293
+ - Text size minimum 10pt for labels, 12pt for titles
294
+ - Avoid conveying information only through spatial position (add labels)
295
+ - Consider printing: does the chart work in black and white?
296
+
297
+ ### Accessibility Checklist
298
+
299
+ Before sharing a visualization:
300
+ - [ ] Chart works without color (patterns, labels, or line styles differentiate series)
301
+ - [ ] Text is readable at standard zoom level
302
+ - [ ] Title describes the insight, not just the data
303
+ - [ ] Axes are labeled with units
304
+ - [ ] Legend is clear and positioned without obscuring data
305
+ - [ ] Data source and date range are noted
@@ -0,0 +1,325 @@
1
+ ---
2
+ name: explore-data
3
+ description: Profile and explore a dataset to understand its shape, quality, and patterns. Use when encountering a new table or file, checking null rates and column distributions, spotting data quality issues like duplicates or suspicious values, or deciding which dimensions and metrics to analyze.
4
+ argument-hint: "<table or file>"
5
+ ---
6
+
7
+ # /explore-data - Profile and Explore a Dataset
8
+
9
+ > If you see unfamiliar placeholders or need to check which tools are connected, see [CONNECTORS.md](../../CONNECTORS.md).
10
+
11
+ Generate a comprehensive data profile for a table or uploaded file. Understand its shape, quality, and patterns before diving into analysis.
12
+
13
+ ## Usage
14
+
15
+ ```
16
+ /explore-data <table_name or file>
17
+ ```
18
+
19
+ ## Workflow
20
+
21
+ ### 1. Access the Data
22
+
23
+ **If a data warehouse MCP server is connected:**
24
+
25
+ 1. Resolve the table name (handle schema prefixes, suggest matches if ambiguous)
26
+ 2. Query table metadata: column names, types, descriptions if available
27
+ 3. Run profiling queries against the live data
28
+
29
+ **If a file is provided (CSV, Excel, Parquet, JSON):**
30
+
31
+ 1. Read the file and load into a working dataset
32
+ 2. Infer column types from the data
33
+
34
+ **If neither:**
35
+
36
+ 1. Ask the user to provide a table name (with their warehouse connected) or upload a file
37
+ 2. If they describe a table schema, provide guidance on what profiling queries to run
38
+
39
+ ### 2. Understand Structure
40
+
41
+ Before analyzing any data, understand its structure:
42
+
43
+ **Table-level questions:**
44
+ - How many rows and columns?
45
+ - What is the grain (one row per what)?
46
+ - What is the primary key? Is it unique?
47
+ - When was the data last updated?
48
+ - How far back does the data go?
49
+
50
+ **Column classification** — categorize each column as one of:
51
+ - **Identifier**: Unique keys, foreign keys, entity IDs
52
+ - **Dimension**: Categorical attributes for grouping/filtering (status, type, region, category)
53
+ - **Metric**: Quantitative values for measurement (revenue, count, duration, score)
54
+ - **Temporal**: Dates and timestamps (created_at, updated_at, event_date)
55
+ - **Text**: Free-form text fields (description, notes, name)
56
+ - **Boolean**: True/false flags
57
+ - **Structural**: JSON, arrays, nested structures
58
+
59
+ ### 3. Generate Data Profile
60
+
61
+ Run the following profiling checks:
62
+
63
+ **Table-level metrics:**
64
+ - Total row count
65
+ - Column count and types breakdown
66
+ - Approximate table size (if available from metadata)
67
+ - Date range coverage (min/max of date columns)
68
+
69
+ **All columns:**
70
+ - Null count and null rate
71
+ - Distinct count and cardinality ratio (distinct / total)
72
+ - Most common values (top 5-10 with frequencies)
73
+ - Least common values (bottom 5 to spot anomalies)
74
+
75
+ **Numeric columns (metrics):**
76
+ ```
77
+ min, max, mean, median (p50)
78
+ standard deviation
79
+ percentiles: p1, p5, p25, p75, p95, p99
80
+ zero count
81
+ negative count (if unexpected)
82
+ ```
83
+
84
+ **String columns (dimensions, text):**
85
+ ```
86
+ min length, max length, avg length
87
+ empty string count
88
+ pattern analysis (do values follow a format?)
89
+ case consistency (all upper, all lower, mixed?)
90
+ leading/trailing whitespace count
91
+ ```
92
+
93
+ **Date/timestamp columns:**
94
+ ```
95
+ min date, max date
96
+ null dates
97
+ future dates (if unexpected)
98
+ distribution by month/week
99
+ gaps in time series
100
+ ```
101
+
102
+ **Boolean columns:**
103
+ ```
104
+ true count, false count, null count
105
+ true rate
106
+ ```
107
+
108
+ **Present the profile as a clean summary table**, grouped by column type (dimensions, metrics, dates, IDs).
109
+
110
+ ### 4. Identify Data Quality Issues
111
+
112
+ Apply the quality assessment framework below. Flag potential problems:
113
+
114
+ - **High null rates**: Columns with >5% nulls (warn), >20% nulls (alert)
115
+ - **Low cardinality surprises**: Columns that should be high-cardinality but aren't (e.g., a "user_id" with only 50 distinct values)
116
+ - **High cardinality surprises**: Columns that should be categorical but have too many distinct values
117
+ - **Suspicious values**: Negative amounts where only positive expected, future dates in historical data, obviously placeholder values (e.g., "N/A", "TBD", "test", "999999")
118
+ - **Duplicate detection**: Check if there's a natural key and whether it has duplicates
119
+ - **Distribution skew**: Extremely skewed numeric distributions that could affect averages
120
+ - **Encoding issues**: Mixed case in categorical fields, trailing whitespace, inconsistent formats
121
+
122
+ ### 5. Discover Relationships and Patterns
123
+
124
+ After profiling individual columns:
125
+
126
+ - **Foreign key candidates**: ID columns that might link to other tables
127
+ - **Hierarchies**: Columns that form natural drill-down paths (country > state > city)
128
+ - **Correlations**: Numeric columns that move together
129
+ - **Derived columns**: Columns that appear to be computed from others
130
+ - **Redundant columns**: Columns with identical or near-identical information
131
+
132
+ ### 6. Suggest Interesting Dimensions and Metrics
133
+
134
+ Based on the column profile, recommend:
135
+
136
+ - **Best dimension columns** for slicing data (categorical columns with reasonable cardinality, 3-50 values)
137
+ - **Key metric columns** for measurement (numeric columns with meaningful distributions)
138
+ - **Time columns** suitable for trend analysis
139
+ - **Natural groupings** or hierarchies apparent in the data
140
+ - **Potential join keys** linking to other tables (ID columns, foreign keys)
141
+
142
+ ### 7. Recommend Follow-Up Analyses
143
+
144
+ Suggest 3-5 specific analyses the user could run next:
145
+
146
+ - "Trend analysis on [metric] by [time_column] grouped by [dimension]"
147
+ - "Distribution deep-dive on [skewed_column] to understand outliers"
148
+ - "Data quality investigation on [problematic_column]"
149
+ - "Correlation analysis between [metric_a] and [metric_b]"
150
+ - "Cohort analysis using [date_column] and [status_column]"
151
+
152
+ ## Output Format
153
+
154
+ ```
155
+ ## Data Profile: [table_name]
156
+
157
+ ### Overview
158
+ - Rows: 2,340,891
159
+ - Columns: 23 (8 dimensions, 6 metrics, 4 dates, 5 IDs)
160
+ - Date range: 2021-03-15 to 2024-01-22
161
+
162
+ ### Column Details
163
+ [summary table]
164
+
165
+ ### Data Quality Issues
166
+ [flagged issues with severity]
167
+
168
+ ### Recommended Explorations
169
+ [numbered list of suggested follow-up analyses]
170
+ ```
171
+
172
+ ---
173
+
174
+ ## Quality Assessment Framework
175
+
176
+ ### Completeness Score
177
+
178
+ Rate each column:
179
+ - **Complete** (>99% non-null): Green
180
+ - **Mostly complete** (95-99%): Yellow -- investigate the nulls
181
+ - **Incomplete** (80-95%): Orange -- understand why and whether it matters
182
+ - **Sparse** (<80%): Red -- may not be usable without imputation
183
+
184
+ ### Consistency Checks
185
+
186
+ Look for:
187
+ - **Value format inconsistency**: Same concept represented differently ("USA", "US", "United States", "us")
188
+ - **Type inconsistency**: Numbers stored as strings, dates in various formats
189
+ - **Referential integrity**: Foreign keys that don't match any parent record
190
+ - **Business rule violations**: Negative quantities, end dates before start dates, percentages > 100
191
+ - **Cross-column consistency**: Status = "completed" but completed_at is null
192
+
193
+ ### Accuracy Indicators
194
+
195
+ Red flags that suggest accuracy issues:
196
+ - **Placeholder values**: 0, -1, 999999, "N/A", "TBD", "test", "xxx"
197
+ - **Default values**: Suspiciously high frequency of a single value
198
+ - **Stale data**: Updated_at shows no recent changes in an active system
199
+ - **Impossible values**: Ages > 150, dates in the far future, negative durations
200
+ - **Round number bias**: All values ending in 0 or 5 (suggests estimation, not measurement)
201
+
202
+ ### Timeliness Assessment
203
+
204
+ - When was the table last updated?
205
+ - What is the expected update frequency?
206
+ - Is there a lag between event time and load time?
207
+ - Are there gaps in the time series?
208
+
209
+ ## Pattern Discovery Techniques
210
+
211
+ ### Distribution Analysis
212
+
213
+ For numeric columns, characterize the distribution:
214
+ - **Normal**: Mean and median are close, bell-shaped
215
+ - **Skewed right**: Long tail of high values (common for revenue, session duration)
216
+ - **Skewed left**: Long tail of low values (less common)
217
+ - **Bimodal**: Two peaks (suggests two distinct populations)
218
+ - **Power law**: Few very large values, many small ones (common for user activity)
219
+ - **Uniform**: Roughly equal frequency across range (often synthetic or random)
220
+
221
+ ### Temporal Patterns
222
+
223
+ For time series data, look for:
224
+ - **Trend**: Sustained upward or downward movement
225
+ - **Seasonality**: Repeating patterns (weekly, monthly, quarterly, annual)
226
+ - **Day-of-week effects**: Weekday vs. weekend differences
227
+ - **Holiday effects**: Drops or spikes around known holidays
228
+ - **Change points**: Sudden shifts in level or trend
229
+ - **Anomalies**: Individual data points that break the pattern
230
+
231
+ ### Segmentation Discovery
232
+
233
+ Identify natural segments by:
234
+ - Finding categorical columns with 3-20 distinct values
235
+ - Comparing metric distributions across segment values
236
+ - Looking for segments with significantly different behavior
237
+ - Testing whether segments are homogeneous or contain sub-segments
238
+
239
+ ### Correlation Exploration
240
+
241
+ Between numeric columns:
242
+ - Compute correlation matrix for all metric pairs
243
+ - Flag strong correlations (|r| > 0.7) for investigation
244
+ - Note: Correlation does not imply causation -- flag this explicitly
245
+ - Check for non-linear relationships (e.g., quadratic, logarithmic)
246
+
247
+ ## Schema Understanding and Documentation
248
+
249
+ ### Schema Documentation Template
250
+
251
+ When documenting a dataset for team use:
252
+
253
+ ```markdown
254
+ ## Table: [schema.table_name]
255
+
256
+ **Description**: [What this table represents]
257
+ **Grain**: [One row per...]
258
+ **Primary Key**: [column(s)]
259
+ **Row Count**: [approximate, with date]
260
+ **Update Frequency**: [real-time / hourly / daily / weekly]
261
+ **Owner**: [team or person responsible]
262
+
263
+ ### Key Columns
264
+
265
+ | Column | Type | Description | Example Values | Notes |
266
+ |--------|------|-------------|----------------|-------|
267
+ | user_id | STRING | Unique user identifier | "usr_abc123" | FK to users.id |
268
+ | event_type | STRING | Type of event | "click", "view", "purchase" | 15 distinct values |
269
+ | revenue | DECIMAL | Transaction revenue in USD | 29.99, 149.00 | Null for non-purchase events |
270
+ | created_at | TIMESTAMP | When the event occurred | 2024-01-15 14:23:01 | Partitioned on this column |
271
+
272
+ ### Relationships
273
+ - Joins to `users` on `user_id`
274
+ - Joins to `products` on `product_id`
275
+ - Parent of `event_details` (1:many on event_id)
276
+
277
+ ### Known Issues
278
+ - [List any known data quality issues]
279
+ - [Note any gotchas for analysts]
280
+
281
+ ### Common Query Patterns
282
+ - [Typical use cases for this table]
283
+ ```
284
+
285
+ ### Schema Exploration Queries
286
+
287
+ When connected to a data warehouse, use these patterns to discover schema:
288
+
289
+ ```sql
290
+ -- List all tables in a schema (PostgreSQL)
291
+ SELECT table_name, table_type
292
+ FROM information_schema.tables
293
+ WHERE table_schema = 'public'
294
+ ORDER BY table_name;
295
+
296
+ -- Column details (PostgreSQL)
297
+ SELECT column_name, data_type, is_nullable, column_default
298
+ FROM information_schema.columns
299
+ WHERE table_name = 'my_table'
300
+ ORDER BY ordinal_position;
301
+
302
+ -- Table sizes (PostgreSQL)
303
+ SELECT relname, pg_size_pretty(pg_total_relation_size(relid))
304
+ FROM pg_catalog.pg_statio_user_tables
305
+ ORDER BY pg_total_relation_size(relid) DESC;
306
+
307
+ -- Row counts for all tables (general pattern)
308
+ -- Run per-table: SELECT COUNT(*) FROM table_name
309
+ ```
310
+
311
+ ### Lineage and Dependencies
312
+
313
+ When exploring an unfamiliar data environment:
314
+
315
+ 1. Start with the "output" tables (what reports or dashboards consume)
316
+ 2. Trace upstream: What tables feed into them?
317
+ 3. Identify raw/staging/mart layers
318
+ 4. Map the transformation chain from raw data to analytical tables
319
+ 5. Note where data is enriched, filtered, or aggregated
320
+
321
+ ## Tips
322
+
323
+ - For very large tables (100M+ rows), profiling queries use sampling by default -- mention if you need exact counts
324
+ - If exploring a new dataset for the first time, this command gives you the lay of the land before writing specific queries
325
+ - The quality flags are heuristic -- not every flag is a real problem, but each is worth a quick look