opencode-knowledge-work 0.0.0-stage → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (472) hide show
  1. package/LICENSE +212 -0
  2. package/README.md +124 -2
  3. package/content/bio-research/.mcp.json +48 -0
  4. package/content/bio-research/CONNECTORS.md +23 -0
  5. package/content/bio-research/LICENSE +202 -0
  6. package/content/bio-research/README.md +83 -0
  7. package/content/bio-research/skills/bio-research-instrument-data-to-allotrope/LICENSE.txt +201 -0
  8. package/content/bio-research/skills/bio-research-instrument-data-to-allotrope/SKILL.md +280 -0
  9. package/content/bio-research/skills/bio-research-instrument-data-to-allotrope/references/asm_schema_overview.md +226 -0
  10. package/content/bio-research/skills/bio-research-instrument-data-to-allotrope/references/field_classification_guide.md +503 -0
  11. package/content/bio-research/skills/bio-research-instrument-data-to-allotrope/references/flattening_guide.md +254 -0
  12. package/content/bio-research/skills/bio-research-instrument-data-to-allotrope/references/supported_instruments.md +151 -0
  13. package/content/bio-research/skills/bio-research-instrument-data-to-allotrope/requirements.txt +26 -0
  14. package/content/bio-research/skills/bio-research-instrument-data-to-allotrope/scripts/convert_to_asm.py +543 -0
  15. package/content/bio-research/skills/bio-research-instrument-data-to-allotrope/scripts/export_parser.py +481 -0
  16. package/content/bio-research/skills/bio-research-instrument-data-to-allotrope/scripts/flatten_asm.py +254 -0
  17. package/content/bio-research/skills/bio-research-instrument-data-to-allotrope/scripts/validate_asm.py +1102 -0
  18. package/content/bio-research/skills/bio-research-nextflow-development/LICENSE.txt +201 -0
  19. package/content/bio-research/skills/bio-research-nextflow-development/SKILL.md +290 -0
  20. package/content/bio-research/skills/bio-research-nextflow-development/references/geo-sra-acquisition.md +416 -0
  21. package/content/bio-research/skills/bio-research-nextflow-development/references/installation.md +96 -0
  22. package/content/bio-research/skills/bio-research-nextflow-development/references/pipelines/atacseq.md +138 -0
  23. package/content/bio-research/skills/bio-research-nextflow-development/references/pipelines/rnaseq.md +118 -0
  24. package/content/bio-research/skills/bio-research-nextflow-development/references/pipelines/sarek.md +145 -0
  25. package/content/bio-research/skills/bio-research-nextflow-development/references/troubleshooting.md +137 -0
  26. package/content/bio-research/skills/bio-research-nextflow-development/scripts/check_environment.py +452 -0
  27. package/content/bio-research/skills/bio-research-nextflow-development/scripts/config/genomes.yaml +148 -0
  28. package/content/bio-research/skills/bio-research-nextflow-development/scripts/config/pipelines/atacseq.yaml +187 -0
  29. package/content/bio-research/skills/bio-research-nextflow-development/scripts/config/pipelines/rnaseq.yaml +147 -0
  30. package/content/bio-research/skills/bio-research-nextflow-development/scripts/config/pipelines/sarek.yaml +233 -0
  31. package/content/bio-research/skills/bio-research-nextflow-development/scripts/detect_data_type.py +300 -0
  32. package/content/bio-research/skills/bio-research-nextflow-development/scripts/generate_samplesheet.py +455 -0
  33. package/content/bio-research/skills/bio-research-nextflow-development/scripts/manage_genomes.py +521 -0
  34. package/content/bio-research/skills/bio-research-nextflow-development/scripts/sra_geo_fetch.py +732 -0
  35. package/content/bio-research/skills/bio-research-nextflow-development/scripts/utils/__init__.py +69 -0
  36. package/content/bio-research/skills/bio-research-nextflow-development/scripts/utils/file_discovery.py +189 -0
  37. package/content/bio-research/skills/bio-research-nextflow-development/scripts/utils/ncbi_utils.py +808 -0
  38. package/content/bio-research/skills/bio-research-nextflow-development/scripts/utils/sample_inference.py +290 -0
  39. package/content/bio-research/skills/bio-research-nextflow-development/scripts/utils/validators.py +256 -0
  40. package/content/bio-research/skills/bio-research-scientific-problem-selection/LICENSE.txt +201 -0
  41. package/content/bio-research/skills/bio-research-scientific-problem-selection/SKILL.md +269 -0
  42. package/content/bio-research/skills/bio-research-scientific-problem-selection/references/01-intuition-pumps.md +264 -0
  43. package/content/bio-research/skills/bio-research-scientific-problem-selection/references/02-risk-assessment.md +323 -0
  44. package/content/bio-research/skills/bio-research-scientific-problem-selection/references/03-optimization-function.md +481 -0
  45. package/content/bio-research/skills/bio-research-scientific-problem-selection/references/04-parameter-strategy.md +396 -0
  46. package/content/bio-research/skills/bio-research-scientific-problem-selection/references/05-decision-tree.md +85 -0
  47. package/content/bio-research/skills/bio-research-scientific-problem-selection/references/06-adversity-planning.md +123 -0
  48. package/content/bio-research/skills/bio-research-scientific-problem-selection/references/07-problem-inversion.md +152 -0
  49. package/content/bio-research/skills/bio-research-scientific-problem-selection/references/08-integration-synthesis.md +173 -0
  50. package/content/bio-research/skills/bio-research-scientific-problem-selection/references/09-meta-framework.md +504 -0
  51. package/content/bio-research/skills/bio-research-scvi-tools/LICENSE.txt +201 -0
  52. package/content/bio-research/skills/bio-research-scvi-tools/SKILL.md +155 -0
  53. package/content/bio-research/skills/bio-research-scvi-tools/references/atac_peakvi.md +398 -0
  54. package/content/bio-research/skills/bio-research-scvi-tools/references/batch_correction_sysvi.md +417 -0
  55. package/content/bio-research/skills/bio-research-scvi-tools/references/citeseq_totalvi.md +420 -0
  56. package/content/bio-research/skills/bio-research-scvi-tools/references/data_preparation.md +286 -0
  57. package/content/bio-research/skills/bio-research-scvi-tools/references/environment_setup.md +254 -0
  58. package/content/bio-research/skills/bio-research-scvi-tools/references/label_transfer.md +373 -0
  59. package/content/bio-research/skills/bio-research-scvi-tools/references/multiome_multivi.md +384 -0
  60. package/content/bio-research/skills/bio-research-scvi-tools/references/rna_velocity_velovi.md +410 -0
  61. package/content/bio-research/skills/bio-research-scvi-tools/references/scarches_mapping.md +401 -0
  62. package/content/bio-research/skills/bio-research-scvi-tools/references/scrna_integration.md +429 -0
  63. package/content/bio-research/skills/bio-research-scvi-tools/references/spatial_deconvolution.md +438 -0
  64. package/content/bio-research/skills/bio-research-scvi-tools/references/troubleshooting.md +420 -0
  65. package/content/bio-research/skills/bio-research-scvi-tools/scripts/cluster_embed.py +212 -0
  66. package/content/bio-research/skills/bio-research-scvi-tools/scripts/differential_expression.py +220 -0
  67. package/content/bio-research/skills/bio-research-scvi-tools/scripts/integrate_datasets.py +237 -0
  68. package/content/bio-research/skills/bio-research-scvi-tools/scripts/model_utils.py +634 -0
  69. package/content/bio-research/skills/bio-research-scvi-tools/scripts/prepare_data.py +169 -0
  70. package/content/bio-research/skills/bio-research-scvi-tools/scripts/train_model.py +370 -0
  71. package/content/bio-research/skills/bio-research-scvi-tools/scripts/transfer_labels.py +224 -0
  72. package/content/bio-research/skills/bio-research-scvi-tools/scripts/validate_adata.py +397 -0
  73. package/content/bio-research/skills/bio-research-single-cell-rna-qc/LICENSE.txt +201 -0
  74. package/content/bio-research/skills/bio-research-single-cell-rna-qc/SKILL.md +175 -0
  75. package/content/bio-research/skills/bio-research-single-cell-rna-qc/references/scverse_qc_guidelines.md +186 -0
  76. package/content/bio-research/skills/bio-research-single-cell-rna-qc/scripts/qc_analysis.py +232 -0
  77. package/content/bio-research/skills/bio-research-single-cell-rna-qc/scripts/qc_core.py +233 -0
  78. package/content/bio-research/skills/bio-research-single-cell-rna-qc/scripts/qc_plotting.py +235 -0
  79. package/content/bio-research/skills/bio-research-start/SKILL.md +79 -0
  80. package/content/customer-support/.mcp.json +40 -0
  81. package/content/customer-support/CONNECTORS.md +19 -0
  82. package/content/customer-support/LICENSE +202 -0
  83. package/content/customer-support/README.md +140 -0
  84. package/content/customer-support/skills/customer-support-customer-escalation/SKILL.md +248 -0
  85. package/content/customer-support/skills/customer-support-customer-research/SKILL.md +252 -0
  86. package/content/customer-support/skills/customer-support-draft-response/SKILL.md +418 -0
  87. package/content/customer-support/skills/customer-support-kb-article/SKILL.md +351 -0
  88. package/content/customer-support/skills/customer-support-ticket-triage/SKILL.md +275 -0
  89. package/content/data/.mcp.json +36 -0
  90. package/content/data/CONNECTORS.md +18 -0
  91. package/content/data/LICENSE +202 -0
  92. package/content/data/README.md +121 -0
  93. package/content/data/skills/data-analyze/SKILL.md +119 -0
  94. package/content/data/skills/data-build-dashboard/SKILL.md +924 -0
  95. package/content/data/skills/data-create-viz/SKILL.md +154 -0
  96. package/content/data/skills/data-data-context-extractor/SKILL.md +227 -0
  97. package/content/data/skills/data-data-context-extractor/references/domain-template.md +147 -0
  98. package/content/data/skills/data-data-context-extractor/references/example-output.md +198 -0
  99. package/content/data/skills/data-data-context-extractor/references/skill-template.md +148 -0
  100. package/content/data/skills/data-data-context-extractor/references/sql-dialects.md +121 -0
  101. package/content/data/skills/data-data-context-extractor/scripts/package_data_skill.py +126 -0
  102. package/content/data/skills/data-data-visualization/SKILL.md +305 -0
  103. package/content/data/skills/data-explore-data/SKILL.md +325 -0
  104. package/content/data/skills/data-sql-queries/SKILL.md +428 -0
  105. package/content/data/skills/data-statistical-analysis/SKILL.md +245 -0
  106. package/content/data/skills/data-validate-data/SKILL.md +383 -0
  107. package/content/data/skills/data-write-query/SKILL.md +122 -0
  108. package/content/design/.mcp.json +44 -0
  109. package/content/design/CONNECTORS.md +18 -0
  110. package/content/design/README.md +117 -0
  111. package/content/design/skills/design-accessibility-review/SKILL.md +128 -0
  112. package/content/design/skills/design-design-critique/SKILL.md +118 -0
  113. package/content/design/skills/design-design-handoff/SKILL.md +131 -0
  114. package/content/design/skills/design-design-system/SKILL.md +190 -0
  115. package/content/design/skills/design-research-synthesis/SKILL.md +92 -0
  116. package/content/design/skills/design-user-research/SKILL.md +41 -0
  117. package/content/design/skills/design-ux-copy/SKILL.md +107 -0
  118. package/content/engineering/.mcp.json +48 -0
  119. package/content/engineering/CONNECTORS.md +19 -0
  120. package/content/engineering/README.md +136 -0
  121. package/content/engineering/skills/engineering-architecture/SKILL.md +85 -0
  122. package/content/engineering/skills/engineering-code-review/SKILL.md +118 -0
  123. package/content/engineering/skills/engineering-debug/SKILL.md +95 -0
  124. package/content/engineering/skills/engineering-deploy-checklist/SKILL.md +78 -0
  125. package/content/engineering/skills/engineering-documentation/SKILL.md +49 -0
  126. package/content/engineering/skills/engineering-incident-response/SKILL.md +158 -0
  127. package/content/engineering/skills/engineering-standup/SKILL.md +75 -0
  128. package/content/engineering/skills/engineering-system-design/SKILL.md +42 -0
  129. package/content/engineering/skills/engineering-tech-debt/SKILL.md +32 -0
  130. package/content/engineering/skills/engineering-testing-strategy/SKILL.md +33 -0
  131. package/content/enterprise-search/.mcp.json +36 -0
  132. package/content/enterprise-search/CONNECTORS.md +21 -0
  133. package/content/enterprise-search/LICENSE +202 -0
  134. package/content/enterprise-search/README.md +157 -0
  135. package/content/enterprise-search/skills/enterprise-search-digest/SKILL.md +173 -0
  136. package/content/enterprise-search/skills/enterprise-search-knowledge-synthesis/SKILL.md +258 -0
  137. package/content/enterprise-search/skills/enterprise-search-search/SKILL.md +178 -0
  138. package/content/enterprise-search/skills/enterprise-search-search-strategy/SKILL.md +222 -0
  139. package/content/enterprise-search/skills/enterprise-search-source-management/SKILL.md +173 -0
  140. package/content/finance/.mcp.json +32 -0
  141. package/content/finance/CONNECTORS.md +20 -0
  142. package/content/finance/LICENSE +202 -0
  143. package/content/finance/README.md +92 -0
  144. package/content/finance/skills/finance-audit-support/SKILL.md +374 -0
  145. package/content/finance/skills/finance-close-management/SKILL.md +221 -0
  146. package/content/finance/skills/finance-financial-statements/SKILL.md +335 -0
  147. package/content/finance/skills/finance-journal-entry/SKILL.md +131 -0
  148. package/content/finance/skills/finance-journal-entry-prep/SKILL.md +186 -0
  149. package/content/finance/skills/finance-reconciliation/SKILL.md +175 -0
  150. package/content/finance/skills/finance-sox-testing/SKILL.md +218 -0
  151. package/content/finance/skills/finance-variance-analysis/SKILL.md +266 -0
  152. package/content/human-resources/.mcp.json +28 -0
  153. package/content/human-resources/CONNECTORS.md +19 -0
  154. package/content/human-resources/README.md +138 -0
  155. package/content/human-resources/skills/human-resources-comp-analysis/SKILL.md +92 -0
  156. package/content/human-resources/skills/human-resources-draft-offer/SKILL.md +82 -0
  157. package/content/human-resources/skills/human-resources-interview-prep/SKILL.md +37 -0
  158. package/content/human-resources/skills/human-resources-onboarding/SKILL.md +104 -0
  159. package/content/human-resources/skills/human-resources-org-planning/SKILL.md +28 -0
  160. package/content/human-resources/skills/human-resources-people-report/SKILL.md +99 -0
  161. package/content/human-resources/skills/human-resources-performance-review/SKILL.md +149 -0
  162. package/content/human-resources/skills/human-resources-policy-lookup/SKILL.md +94 -0
  163. package/content/human-resources/skills/human-resources-recruiting-pipeline/SKILL.md +31 -0
  164. package/content/legal/.mcp.json +36 -0
  165. package/content/legal/CONNECTORS.md +21 -0
  166. package/content/legal/LICENSE +202 -0
  167. package/content/legal/README.md +234 -0
  168. package/content/legal/skills/legal-brief/SKILL.md +208 -0
  169. package/content/legal/skills/legal-compliance-check/SKILL.md +274 -0
  170. package/content/legal/skills/legal-legal-response/SKILL.md +457 -0
  171. package/content/legal/skills/legal-legal-risk-assessment/SKILL.md +265 -0
  172. package/content/legal/skills/legal-meeting-briefing/SKILL.md +220 -0
  173. package/content/legal/skills/legal-review-contract/SKILL.md +358 -0
  174. package/content/legal/skills/legal-signature-request/SKILL.md +104 -0
  175. package/content/legal/skills/legal-triage-nda/SKILL.md +262 -0
  176. package/content/legal/skills/legal-vendor-check/SKILL.md +159 -0
  177. package/content/manifest.json +86 -0
  178. package/content/marketing/.mcp.json +60 -0
  179. package/content/marketing/CONNECTORS.md +20 -0
  180. package/content/marketing/LICENSE +202 -0
  181. package/content/marketing/README.md +90 -0
  182. package/content/marketing/skills/marketing-brand-review/SKILL.md +276 -0
  183. package/content/marketing/skills/marketing-campaign-plan/SKILL.md +308 -0
  184. package/content/marketing/skills/marketing-competitive-brief/SKILL.md +331 -0
  185. package/content/marketing/skills/marketing-content-creation/SKILL.md +157 -0
  186. package/content/marketing/skills/marketing-draft-content/SKILL.md +117 -0
  187. package/content/marketing/skills/marketing-email-sequence/SKILL.md +220 -0
  188. package/content/marketing/skills/marketing-performance-report/SKILL.md +392 -0
  189. package/content/marketing/skills/marketing-seo-audit/SKILL.md +190 -0
  190. package/content/operations/.mcp.json +32 -0
  191. package/content/operations/CONNECTORS.md +20 -0
  192. package/content/operations/README.md +135 -0
  193. package/content/operations/skills/operations-capacity-plan/SKILL.md +113 -0
  194. package/content/operations/skills/operations-change-request/SKILL.md +121 -0
  195. package/content/operations/skills/operations-compliance-tracking/SKILL.md +44 -0
  196. package/content/operations/skills/operations-process-doc/SKILL.md +82 -0
  197. package/content/operations/skills/operations-process-optimization/SKILL.md +39 -0
  198. package/content/operations/skills/operations-risk-assessment/SKILL.md +40 -0
  199. package/content/operations/skills/operations-runbook/SKILL.md +87 -0
  200. package/content/operations/skills/operations-status-report/SKILL.md +77 -0
  201. package/content/operations/skills/operations-vendor-review/SKILL.md +104 -0
  202. package/content/pdf-viewer/.mcp.json +8 -0
  203. package/content/pdf-viewer/CONNECTORS.md +15 -0
  204. package/content/pdf-viewer/LICENSE +202 -0
  205. package/content/pdf-viewer/README.md +57 -0
  206. package/content/pdf-viewer/commands/annotate.md +51 -0
  207. package/content/pdf-viewer/commands/fill-form.md +73 -0
  208. package/content/pdf-viewer/commands/open.md +34 -0
  209. package/content/pdf-viewer/commands/sign.md +54 -0
  210. package/content/pdf-viewer/skills/pdf-viewer-view-pdf/SKILL.md +147 -0
  211. package/content/product-management/.mcp.json +72 -0
  212. package/content/product-management/CONNECTORS.md +22 -0
  213. package/content/product-management/LICENSE +202 -0
  214. package/content/product-management/README.md +118 -0
  215. package/content/product-management/commands/brainstorm.md +120 -0
  216. package/content/product-management/skills/product-management-competitive-brief/SKILL.md +302 -0
  217. package/content/product-management/skills/product-management-metrics-review/SKILL.md +388 -0
  218. package/content/product-management/skills/product-management-product-brainstorming/SKILL.md +273 -0
  219. package/content/product-management/skills/product-management-roadmap-update/SKILL.md +266 -0
  220. package/content/product-management/skills/product-management-sprint-planning/SKILL.md +94 -0
  221. package/content/product-management/skills/product-management-stakeholder-update/SKILL.md +352 -0
  222. package/content/product-management/skills/product-management-synthesize-research/SKILL.md +312 -0
  223. package/content/product-management/skills/product-management-write-spec/SKILL.md +250 -0
  224. package/content/productivity/.mcp.json +44 -0
  225. package/content/productivity/CONNECTORS.md +18 -0
  226. package/content/productivity/LICENSE +202 -0
  227. package/content/productivity/README.md +97 -0
  228. package/content/productivity/skills/dashboard.html +3111 -0
  229. package/content/productivity/skills/productivity-memory-management/SKILL.md +323 -0
  230. package/content/productivity/skills/productivity-start/SKILL.md +158 -0
  231. package/content/productivity/skills/productivity-task-management/SKILL.md +91 -0
  232. package/content/productivity/skills/productivity-update/SKILL.md +168 -0
  233. package/content/sales/.mcp.json +100 -0
  234. package/content/sales/CONNECTORS.md +36 -0
  235. package/content/sales/LICENSE +202 -0
  236. package/content/sales/README.md +148 -0
  237. package/content/sales/skills/sales-account-context/SKILL.md +94 -0
  238. package/content/sales/skills/sales-account-plan/SKILL.md +95 -0
  239. package/content/sales/skills/sales-account-research/SKILL.md +99 -0
  240. package/content/sales/skills/sales-account-tiering/SKILL.md +101 -0
  241. package/content/sales/skills/sales-call-prep/SKILL.md +111 -0
  242. package/content/sales/skills/sales-call-summary/SKILL.md +111 -0
  243. package/content/sales/skills/sales-close-plan/SKILL.md +106 -0
  244. package/content/sales/skills/sales-competitive-intelligence/SKILL.md +102 -0
  245. package/content/sales/skills/sales-create-an-asset/SKILL.md +105 -0
  246. package/content/sales/skills/sales-crm-hygiene-check/SKILL.md +103 -0
  247. package/content/sales/skills/sales-customer-health/SKILL.md +108 -0
  248. package/content/sales/skills/sales-customer-voice/SKILL.md +94 -0
  249. package/content/sales/skills/sales-daily-briefing/SKILL.md +61 -0
  250. package/content/sales/skills/sales-deal-advance-gap/SKILL.md +102 -0
  251. package/content/sales/skills/sales-deal-review/SKILL.md +105 -0
  252. package/content/sales/skills/sales-deal-signals/SKILL.md +96 -0
  253. package/content/sales/skills/sales-deal-slip-scenario/SKILL.md +101 -0
  254. package/content/sales/skills/sales-draft-outreach/SKILL.md +116 -0
  255. package/content/sales/skills/sales-end-of-day/SKILL.md +114 -0
  256. package/content/sales/skills/sales-expansion-whitespace/SKILL.md +97 -0
  257. package/content/sales/skills/sales-forecast/SKILL.md +100 -0
  258. package/content/sales/skills/sales-handle-objection/SKILL.md +93 -0
  259. package/content/sales/skills/sales-inbox-sweep/SKILL.md +114 -0
  260. package/content/sales/skills/sales-lead-triage/SKILL.md +105 -0
  261. package/content/sales/skills/sales-log-activity/SKILL.md +111 -0
  262. package/content/sales/skills/sales-pipeline-review/SKILL.md +97 -0
  263. package/content/sales/skills/sales-renewal-radar/SKILL.md +95 -0
  264. package/content/sales/skills/sales-rep-context/SKILL.md +90 -0
  265. package/content/sales/skills/sales-route-lead/SKILL.md +111 -0
  266. package/content/sales/skills/sales-schedule-meeting/SKILL.md +99 -0
  267. package/content/sales/skills/sales-setup/SKILL.md +195 -0
  268. package/content/sales/skills/sales-stakeholder-map/SKILL.md +107 -0
  269. package/content/sales/skills/sales-team-pipeline/SKILL.md +105 -0
  270. package/content/sales/skills/sales-update-opportunity/SKILL.md +111 -0
  271. package/content/sales/skills/sales-weekly-wrap/SKILL.md +90 -0
  272. package/content/sales/skills/sales-win-loss-review/SKILL.md +88 -0
  273. package/content/small-business/.mcp.json +148 -0
  274. package/content/small-business/README.md +117 -0
  275. package/content/small-business/skills/small-business-ad-manager/SKILL.md +128 -0
  276. package/content/small-business/skills/small-business-ad-manager/reference/ad_copy.md +112 -0
  277. package/content/small-business/skills/small-business-ad-manager/reference/change_playbook.md +127 -0
  278. package/content/small-business/skills/small-business-ad-manager/reference/data_sources.md +100 -0
  279. package/content/small-business/skills/small-business-ad-manager/reference/diagnostics.md +89 -0
  280. package/content/small-business/skills/small-business-ad-manager/reference/gotchas.md +181 -0
  281. package/content/small-business/skills/small-business-ap-processor/SKILL.md +158 -0
  282. package/content/small-business/skills/small-business-ap-processor/reference/coding_rules.md +70 -0
  283. package/content/small-business/skills/small-business-ap-processor/reference/gotchas.md +131 -0
  284. package/content/small-business/skills/small-business-ap-processor/reference/intake_and_extraction.md +82 -0
  285. package/content/small-business/skills/small-business-ap-processor/reference/matching_and_exceptions.md +80 -0
  286. package/content/small-business/skills/small-business-ap-processor/reference/payment_run.md +77 -0
  287. package/content/small-business/skills/small-business-brand-style/SKILL.md +106 -0
  288. package/content/small-business/skills/small-business-build-agent/SKILL.md +105 -0
  289. package/content/small-business/skills/small-business-build-agent/reference/capture.md +133 -0
  290. package/content/small-business/skills/small-business-build-agent/reference/gotchas.md +204 -0
  291. package/content/small-business/skills/small-business-build-agent/reference/skill_authoring.md +165 -0
  292. package/content/small-business/skills/small-business-build-connector/SKILL.md +102 -0
  293. package/content/small-business/skills/small-business-build-connector/reference/discovery.md +120 -0
  294. package/content/small-business/skills/small-business-build-connector/reference/gotchas.md +237 -0
  295. package/content/small-business/skills/small-business-build-connector/reference/paths.md +106 -0
  296. package/content/small-business/skills/small-business-build-connector/reference/use-zapier.md +128 -0
  297. package/content/small-business/skills/small-business-business-pulse/SKILL.md +181 -0
  298. package/content/small-business/skills/small-business-business-pulse/reference/data_sources.md +173 -0
  299. package/content/small-business/skills/small-business-business-pulse/reference/gotchas.md +103 -0
  300. package/content/small-business/skills/small-business-business-pulse/reference/output_template.md +109 -0
  301. package/content/small-business/skills/small-business-business-pulse/reference/thresholds.md +71 -0
  302. package/content/small-business/skills/small-business-business-pulse/reference/v2_sources.md +63 -0
  303. package/content/small-business/skills/small-business-call-list/SKILL.md +82 -0
  304. package/content/small-business/skills/small-business-canva-creator/SKILL.md +448 -0
  305. package/content/small-business/skills/small-business-canva-creator/reference/canva-api.md +208 -0
  306. package/content/small-business/skills/small-business-canva-creator/reference/examples/boutique-brief-campaign.md +181 -0
  307. package/content/small-business/skills/small-business-canva-creator/reference/gotchas.md +380 -0
  308. package/content/small-business/skills/small-business-canva-creator/reference/hubspot-staging.md +137 -0
  309. package/content/small-business/skills/small-business-cash-flow-snapshot/SKILL.md +251 -0
  310. package/content/small-business/skills/small-business-cash-flow-snapshot/reference/examples/worked-example.md +92 -0
  311. package/content/small-business/skills/small-business-cash-flow-snapshot/reference/gotchas.md +62 -0
  312. package/content/small-business/skills/small-business-cash-flow-snapshot/reference/v2_sources.md +84 -0
  313. package/content/small-business/skills/small-business-close-month/SKILL.md +86 -0
  314. package/content/small-business/skills/small-business-content-strategy/SKILL.md +152 -0
  315. package/content/small-business/skills/small-business-content-strategy/reference/examples/retail-boutique-example.md +71 -0
  316. package/content/small-business/skills/small-business-content-strategy/reference/gotchas.md +104 -0
  317. package/content/small-business/skills/small-business-content-strategy/reference/v2_sources.md +40 -0
  318. package/content/small-business/skills/small-business-contract-review/SKILL.md +158 -0
  319. package/content/small-business/skills/small-business-contract-review/reference/docusign-fetch.md +32 -0
  320. package/content/small-business/skills/small-business-contract-review/reference/examples/flagged-summary-saas.md +97 -0
  321. package/content/small-business/skills/small-business-contract-review/reference/gmail-fetch.md +30 -0
  322. package/content/small-business/skills/small-business-contract-review/reference/gotchas.md +105 -0
  323. package/content/small-business/skills/small-business-contract-review/reference/m365-fetch.md +60 -0
  324. package/content/small-business/skills/small-business-crm-autopilot/SKILL.md +162 -0
  325. package/content/small-business/skills/small-business-crm-autopilot/reference/cleanup-checklist.md +82 -0
  326. package/content/small-business/skills/small-business-crm-autopilot/reference/examples/cleanup-deal.md +83 -0
  327. package/content/small-business/skills/small-business-crm-autopilot/reference/examples/log-call-happy-path.md +68 -0
  328. package/content/small-business/skills/small-business-crm-autopilot/reference/examples/log-email-happy-path.md +50 -0
  329. package/content/small-business/skills/small-business-crm-autopilot/reference/gotchas.md +110 -0
  330. package/content/small-business/skills/small-business-crm-autopilot/reference/hubspot-fields.md +62 -0
  331. package/content/small-business/skills/small-business-crm-autopilot/reference/lightweight_crm.md +125 -0
  332. package/content/small-business/skills/small-business-crm-autopilot/reference/salesforce-fields.md +122 -0
  333. package/content/small-business/skills/small-business-crm-autopilot/reference/standing_mode.md +144 -0
  334. package/content/small-business/skills/small-business-grant-rfp-writer/SKILL.md +162 -0
  335. package/content/small-business/skills/small-business-grant-rfp-writer/reference/drafting.md +129 -0
  336. package/content/small-business/skills/small-business-grant-rfp-writer/reference/go_no_go.md +125 -0
  337. package/content/small-business/skills/small-business-grant-rfp-writer/reference/gotchas.md +180 -0
  338. package/content/small-business/skills/small-business-grant-rfp-writer/reference/opportunity_sources.md +90 -0
  339. package/content/small-business/skills/small-business-grant-rfp-writer/reference/org_profile.md +81 -0
  340. package/content/small-business/skills/small-business-grow-pipeline/SKILL.md +92 -0
  341. package/content/small-business/skills/small-business-growth-pulse/SKILL.md +143 -0
  342. package/content/small-business/skills/small-business-growth-pulse/reference/data_sources.md +113 -0
  343. package/content/small-business/skills/small-business-growth-pulse/reference/gotchas.md +175 -0
  344. package/content/small-business/skills/small-business-growth-pulse/reference/output_template.md +122 -0
  345. package/content/small-business/skills/small-business-growth-pulse/reference/thresholds.md +110 -0
  346. package/content/small-business/skills/small-business-hiring-screener/SKILL.md +137 -0
  347. package/content/small-business/skills/small-business-hiring-screener/reference/candidate_comms.md +132 -0
  348. package/content/small-business/skills/small-business-hiring-screener/reference/fair_screening.md +103 -0
  349. package/content/small-business/skills/small-business-hiring-screener/reference/gotchas.md +183 -0
  350. package/content/small-business/skills/small-business-hiring-screener/reference/onboarding.md +82 -0
  351. package/content/small-business/skills/small-business-hiring-screener/reference/rubric.md +122 -0
  352. package/content/small-business/skills/small-business-inbox-manager/SKILL.md +130 -0
  353. package/content/small-business/skills/small-business-inbox-manager/reference/digest_format.md +110 -0
  354. package/content/small-business/skills/small-business-inbox-manager/reference/gotchas.md +220 -0
  355. package/content/small-business/skills/small-business-inbox-manager/reference/handoffs.md +77 -0
  356. package/content/small-business/skills/small-business-inbox-manager/reference/reply_drafting.md +116 -0
  357. package/content/small-business/skills/small-business-inbox-manager/reference/triage_rules.md +72 -0
  358. package/content/small-business/skills/small-business-inventory-planner/SKILL.md +126 -0
  359. package/content/small-business/skills/small-business-inventory-planner/reference/data_sources.md +94 -0
  360. package/content/small-business/skills/small-business-inventory-planner/reference/gotchas.md +153 -0
  361. package/content/small-business/skills/small-business-inventory-planner/reference/po_drafting.md +92 -0
  362. package/content/small-business/skills/small-business-inventory-planner/reference/seasonality.md +112 -0
  363. package/content/small-business/skills/small-business-inventory-planner/reference/velocity_and_reorder.md +154 -0
  364. package/content/small-business/skills/small-business-invoice-chase/SKILL.md +131 -0
  365. package/content/small-business/skills/small-business-invoice-chase/reference/examples/firm-reminder.md +28 -0
  366. package/content/small-business/skills/small-business-invoice-chase/reference/examples/gentle-reminder.md +27 -0
  367. package/content/small-business/skills/small-business-invoice-chase/reference/gotchas.md +75 -0
  368. package/content/small-business/skills/small-business-invoice-chase/reference/tone-matching.md +44 -0
  369. package/content/small-business/skills/small-business-invoice-chase/reference/v2_sources.md +78 -0
  370. package/content/small-business/skills/small-business-job-post-builder/SKILL.md +204 -0
  371. package/content/small-business/skills/small-business-job-post-builder/reference/docusign-routing.md +63 -0
  372. package/content/small-business/skills/small-business-job-post-builder/reference/examples/worked-example.md +110 -0
  373. package/content/small-business/skills/small-business-job-post-builder/reference/existing-document-merge.md +58 -0
  374. package/content/small-business/skills/small-business-job-post-builder/reference/gotchas.md +68 -0
  375. package/content/small-business/skills/small-business-job-post-builder/reference/interview-guide-structure.md +93 -0
  376. package/content/small-business/skills/small-business-job-post-builder/reference/job-post-structure.md +62 -0
  377. package/content/small-business/skills/small-business-job-post-builder/reference/offer-letter-template.md +145 -0
  378. package/content/small-business/skills/small-business-job-post-builder/reference/role-intake.md +73 -0
  379. package/content/small-business/skills/small-business-lead-finder/SKILL.md +119 -0
  380. package/content/small-business/skills/small-business-lead-finder/reference/gotchas.md +152 -0
  381. package/content/small-business/skills/small-business-lead-finder/reference/icp_method.md +97 -0
  382. package/content/small-business/skills/small-business-lead-finder/reference/output_template.md +124 -0
  383. package/content/small-business/skills/small-business-lead-finder/reference/scoring.md +92 -0
  384. package/content/small-business/skills/small-business-lead-finder/reference/sourcing.md +78 -0
  385. package/content/small-business/skills/small-business-lead-triage/SKILL.md +81 -0
  386. package/content/small-business/skills/small-business-lead-triage/reference/examples/happy-path-triage.md +68 -0
  387. package/content/small-business/skills/small-business-lead-triage/reference/gotchas.md +76 -0
  388. package/content/small-business/skills/small-business-lead-triage/reference/hubspot-scoring.md +169 -0
  389. package/content/small-business/skills/small-business-marketing-monday/SKILL.md +108 -0
  390. package/content/small-business/skills/small-business-monday-brief/SKILL.md +97 -0
  391. package/content/small-business/skills/small-business-month-end-prep/SKILL.md +331 -0
  392. package/content/small-business/skills/small-business-month-end-prep/reference/close-packet-format.md +127 -0
  393. package/content/small-business/skills/small-business-month-end-prep/reference/examples/pl-narrative.md +52 -0
  394. package/content/small-business/skills/small-business-month-end-prep/reference/gotchas.md +113 -0
  395. package/content/small-business/skills/small-business-month-end-prep/reference/paypal-settlements.md +110 -0
  396. package/content/small-business/skills/small-business-month-end-prep/reference/quickbooks-reconcile.md +71 -0
  397. package/content/small-business/skills/small-business-month-end-prep/reference/v2_sources.md +125 -0
  398. package/content/small-business/skills/small-business-month-end-prep/reference/xero-reconcile.md +175 -0
  399. package/content/small-business/skills/small-business-month-end-prep/reference/zoho-books-reconcile.md +168 -0
  400. package/content/small-business/skills/small-business-outreach-composer/SKILL.md +144 -0
  401. package/content/small-business/skills/small-business-outreach-composer/reference/gotchas.md +213 -0
  402. package/content/small-business/skills/small-business-outreach-composer/reference/output_template.md +147 -0
  403. package/content/small-business/skills/small-business-outreach-composer/reference/sequence_patterns.md +99 -0
  404. package/content/small-business/skills/small-business-outreach-composer/reference/slop_test.md +164 -0
  405. package/content/small-business/skills/small-business-pay-the-bills/SKILL.md +101 -0
  406. package/content/small-business/skills/small-business-payroll-prep/SKILL.md +139 -0
  407. package/content/small-business/skills/small-business-payroll-prep/reference/anomaly_rules.md +99 -0
  408. package/content/small-business/skills/small-business-payroll-prep/reference/books_sync.md +72 -0
  409. package/content/small-business/skills/small-business-payroll-prep/reference/gotchas.md +153 -0
  410. package/content/small-business/skills/small-business-payroll-prep/reference/run_sheet_format.md +90 -0
  411. package/content/small-business/skills/small-business-payroll-prep/reference/timesheet_intake.md +118 -0
  412. package/content/small-business/skills/small-business-plan-payroll/SKILL.md +88 -0
  413. package/content/small-business/skills/small-business-proposal-builder/SKILL.md +168 -0
  414. package/content/small-business/skills/small-business-proposal-builder/reference/discovery_extraction.md +138 -0
  415. package/content/small-business/skills/small-business-proposal-builder/reference/gotchas.md +184 -0
  416. package/content/small-business/skills/small-business-proposal-builder/reference/output_template.md +128 -0
  417. package/content/small-business/skills/small-business-proposal-builder/reference/pricing_method.md +125 -0
  418. package/content/small-business/skills/small-business-proposal-builder/reference/proposal_structure.md +120 -0
  419. package/content/small-business/skills/small-business-reactivate/SKILL.md +109 -0
  420. package/content/small-business/skills/small-business-report-builder/SKILL.md +142 -0
  421. package/content/small-business/skills/small-business-report-builder/reference/data_sources.md +168 -0
  422. package/content/small-business/skills/small-business-report-builder/reference/gotchas.md +155 -0
  423. package/content/small-business/skills/small-business-report-builder/reference/output_template.md +109 -0
  424. package/content/small-business/skills/small-business-report-builder/reference/report_spec.md +109 -0
  425. package/content/small-business/skills/small-business-report-builder/reference/saved_reports.md +50 -0
  426. package/content/small-business/skills/small-business-report-pack/SKILL.md +83 -0
  427. package/content/small-business/skills/small-business-restock/SKILL.md +88 -0
  428. package/content/small-business/skills/small-business-review-reputation/SKILL.md +130 -0
  429. package/content/small-business/skills/small-business-review-reputation/reference/churn-signals.md +110 -0
  430. package/content/small-business/skills/small-business-review-reputation/reference/examples/example-report.md +150 -0
  431. package/content/small-business/skills/small-business-review-reputation/reference/gotchas.md +164 -0
  432. package/content/small-business/skills/small-business-review-reputation/reference/response-patterns.md +123 -0
  433. package/content/small-business/skills/small-business-review-reputation/reference/sources.md +116 -0
  434. package/content/small-business/skills/small-business-seo-ai-visibility/SKILL.md +143 -0
  435. package/content/small-business/skills/small-business-seo-ai-visibility/reference/ai_visibility.md +173 -0
  436. package/content/small-business/skills/small-business-seo-ai-visibility/reference/audit_checklist.md +134 -0
  437. package/content/small-business/skills/small-business-seo-ai-visibility/reference/catalog_refresh.md +126 -0
  438. package/content/small-business/skills/small-business-seo-ai-visibility/reference/content_rewrite.md +113 -0
  439. package/content/small-business/skills/small-business-seo-ai-visibility/reference/gotchas.md +211 -0
  440. package/content/small-business/skills/small-business-smb-onboard/SKILL.md +82 -0
  441. package/content/small-business/skills/small-business-smb-onboard/reference/examples/happy-path.md +190 -0
  442. package/content/small-business/skills/small-business-smb-onboard/reference/gotchas.md +111 -0
  443. package/content/small-business/skills/small-business-smb-onboard/reference/onboard-checklist.md +99 -0
  444. package/content/small-business/skills/small-business-smb-onboard/reference/website-research.md +82 -0
  445. package/content/small-business/skills/small-business-smb-router/SKILL.md +216 -0
  446. package/content/small-business/skills/small-business-smb-router/reference/connector-map.md +96 -0
  447. package/content/small-business/skills/small-business-social-content-engine/SKILL.md +162 -0
  448. package/content/small-business/skills/small-business-social-content-engine/reference/calendar.md +116 -0
  449. package/content/small-business/skills/small-business-social-content-engine/reference/canva-api.md +208 -0
  450. package/content/small-business/skills/small-business-social-content-engine/reference/examples/okonkwo-campaign.md +190 -0
  451. package/content/small-business/skills/small-business-social-content-engine/reference/gotchas.md +447 -0
  452. package/content/small-business/skills/small-business-social-content-engine/reference/publishing.md +166 -0
  453. package/content/small-business/skills/small-business-social-content-engine/reference/shopify-assets.md +77 -0
  454. package/content/small-business/skills/small-business-speed-to-lead/SKILL.md +172 -0
  455. package/content/small-business/skills/small-business-speed-to-lead/reference/approval.md +61 -0
  456. package/content/small-business/skills/small-business-speed-to-lead/reference/gotchas.md +167 -0
  457. package/content/small-business/skills/small-business-speed-to-lead/reference/qualification.md +153 -0
  458. package/content/small-business/skills/small-business-speed-to-lead/reference/response_patterns.md +184 -0
  459. package/content/small-business/skills/small-business-tax-prep/SKILL.md +85 -0
  460. package/content/small-business/skills/small-business-tax-season-organizer/SKILL.md +210 -0
  461. package/content/small-business/skills/small-business-tax-season-organizer/reference/calculation-assumptions.md +177 -0
  462. package/content/small-business/skills/small-business-tax-season-organizer/reference/connector-queries.md +267 -0
  463. package/content/small-business/skills/small-business-tax-season-organizer/reference/examples/quarterly-estimate.md +92 -0
  464. package/content/small-business/skills/small-business-tax-season-organizer/reference/examples/year-end-1099.md +102 -0
  465. package/content/small-business/skills/small-business-tax-season-organizer/reference/gotchas.md +104 -0
  466. package/content/small-business/skills/small-business-tax-season-organizer/reference/output-formats.md +68 -0
  467. package/content/small-business/skills/small-business-ticket-deflector/SKILL.md +164 -0
  468. package/content/small-business/skills/small-business-ticket-deflector/reference/examples/deny-refund-request.md +98 -0
  469. package/content/small-business/skills/small-business-ticket-deflector/reference/examples/respond-refund-request.md +77 -0
  470. package/content/small-business/skills/small-business-ticket-deflector/reference/gotchas.md +57 -0
  471. package/index.ts +83 -0
  472. package/package.json +28 -3
@@ -0,0 +1,110 @@
1
+ # Payment Processor Settlements Reference
2
+
3
+ ## Contents
4
+
5
+ - [PayPal](#paypal)
6
+ - [Square](#square)
7
+ - [Stripe](#stripe)
8
+ - [Reconciliation logic (all processors)](#reconciliation-logic-all-processors)
9
+
10
+ ---
11
+
12
+ ## PayPal
13
+
14
+ ### Settlement report structure
15
+
16
+ The PayPal connector returns a **Transaction History** or **Settlement** report.
17
+ Key fields:
18
+
19
+ | Field | Notes |
20
+ |---|---|
21
+ | `transaction_info.transaction_id` | PayPal transaction ID |
22
+ | `transaction_info.transaction_initiation_date` | When the transaction occurred |
23
+ | `transaction_info.transaction_amount.value` | Gross amount (positive = money in) |
24
+ | `transaction_info.fee_amount.value` | PayPal fee (negative) |
25
+ | `transaction_info.transaction_status` | Use only `S` (Success) and `P` (Pending) |
26
+ | `payer_info.email_address` | Customer email — useful for matching |
27
+
28
+ **Deposit date vs. transaction date:** PayPal batches payouts. A sale on April 28
29
+ may not deposit until May 2. Match by **deposit date** when reconciling against QB
30
+ bank entries, not transaction date.
31
+
32
+ **Refunds:** Appear as negative amounts with `transaction_type` = `T1107` or
33
+ `T1114`. They should offset the original sale — don't flag a refund as a
34
+ discrepancy against the QB register unless there's no corresponding QB credit.
35
+
36
+ **Holds:** Transactions in status `F` (Funds on Hold) have not been deposited yet.
37
+ Note them separately — they'll appear in next month's settlement.
38
+
39
+ ---
40
+
41
+ ## Square
42
+
43
+ ### Settlement report structure
44
+
45
+ Square calls these **Payouts**. Each payout covers 1–2 business days of sales.
46
+
47
+ Key fields from the Square Payouts API:
48
+
49
+ | Field | Notes |
50
+ |---|---|
51
+ | `id` | Payout ID |
52
+ | `arrived_at` | Date the funds landed in the bank account |
53
+ | `amount_money.amount` | Net payout in cents (already minus Square fees) |
54
+ | `status` | Use only `PAID` status for reconciliation |
55
+
56
+ **Fees:** Square deducts fees before the payout — so `amount_money.amount` is net.
57
+ When matching against QB, compare to the net bank deposit, not the gross sale total.
58
+
59
+ **Same-day payouts:** If the user has Square Instant Transfer, funds may arrive on
60
+ the transaction date. The default is next business day.
61
+
62
+ ---
63
+
64
+ ## Stripe
65
+
66
+ ### Settlement report structure
67
+
68
+ Stripe calls these **Payouts**. The Stripe connector returns payout objects plus
69
+ the balance transactions within each payout.
70
+
71
+ Key fields:
72
+
73
+ | Field | Notes |
74
+ |---|---|
75
+ | `id` | Payout ID |
76
+ | `arrival_date` | Unix timestamp of bank arrival date |
77
+ | `amount` | Net payout in cents (fees already deducted) |
78
+ | `status` | Use only `paid` for reconciliation |
79
+
80
+ **Stripe fees:** Like Square, fees are deducted before payout. Compare net amounts.
81
+
82
+ **Stripe Connect / platform accounts:** If the user runs a platform on Stripe
83
+ Connect, individual transfer payouts may look unusual. Ask the user to confirm
84
+ their Stripe account type if payout patterns don't match expectations.
85
+
86
+ ---
87
+
88
+ ## Reconciliation logic (all processors)
89
+
90
+ Use this logic to match processor deposits against QuickBooks bank deposits:
91
+
92
+ ```
93
+ for each processor deposit in target month:
94
+ find QB deposit where:
95
+ abs(QB.amount - processor.net_amount) < USD 0.50
96
+ AND abs(QB.date - processor.arrival_date) <= 2 days
97
+
98
+ if match found:
99
+ mark as RECONCILED
100
+ elif abs(QB.amount - processor.net_amount) < USD 0.50 (date mismatch only):
101
+ flag as DATE_MISMATCH (usually a timing difference — low priority)
102
+ elif processor deposit not matched at all:
103
+ flag as MISSING_IN_QB
104
+ elif QB deposit not matched to any processor record:
105
+ flag as UNMATCHED_DEPOSIT (may be ACH, check, or other income)
106
+ ```
107
+
108
+ **Multi-processor businesses:** Run this logic independently per processor, then
109
+ aggregate flags. A QB deposit that doesn't match PayPal may legitimately be a
110
+ Square payout — don't flag it until you've checked all connected processors.
@@ -0,0 +1,71 @@
1
+ # QuickBooks — Reconciliation Reference
2
+
3
+ ## Reports to pull
4
+
5
+ ### Profit & Loss (P&L)
6
+
7
+ Use the **Profit and Loss** report via the QuickBooks connector:
8
+ - Date range: first day to last day of target month
9
+ - Accounting method: **Accrual** unless the user has told you they run cash-basis
10
+ - Include all accounts
11
+
12
+ Key fields used downstream:
13
+ | Field | Notes |
14
+ |---|---|
15
+ | `TotalRevenue` | Top-line revenue |
16
+ | `GrossProfit` | Revenue minus COGS |
17
+ | `GrossProfitMargin` | Compute as GrossProfit / TotalRevenue |
18
+ | `NetIncome` | Bottom line |
19
+ | `TotalExpenses` | Operating expenses subtotal |
20
+
21
+ ### Transaction Register
22
+
23
+ Pull the **Transaction List by Date** report or equivalent for the target month.
24
+ This is the line-item detail used for uncategorized flagging and duplicate detection.
25
+
26
+ Key fields:
27
+ | Field | Notes |
28
+ |---|---|
29
+ | `TxnDate` | Transaction date (not posting date) |
30
+ | `TxnType` | Invoice, Payment, Expense, Deposit, etc. |
31
+ | `Amount` | Positive = income, negative = expense in most QB exports |
32
+ | `AccountRef.name` | The GL account category |
33
+ | `EntityRef.name` | Vendor or customer name |
34
+ | `Memo` | Free-text description |
35
+ | `AttachmentCount` | > 0 means a receipt is attached in QB |
36
+
37
+ ## Identifying uncategorized transactions
38
+
39
+ Flag a transaction as uncategorized if `AccountRef.name` is any of:
40
+ - "Uncategorized Income"
41
+ - "Uncategorized Expense"
42
+ - "Uncategorized Asset"
43
+ - blank / null
44
+ - "Ask My Accountant" (QB's built-in "I don't know" category)
45
+
46
+ ## Pagination
47
+
48
+ The QB API returns a maximum of 1,000 rows per request. For businesses with high
49
+ transaction volumes, paginate using `startPosition` and `maxResults` parameters.
50
+ Request in 500-row batches to stay safely under the limit.
51
+
52
+ ## Common data issues
53
+
54
+ **Split transactions** — a single purchase split across multiple categories appears as
55
+ multiple rows with the same date and vendor but different amounts. These are NOT
56
+ duplicates. Before flagging duplicates, group rows by `TxnID` — rows sharing an ID
57
+ are splits of one transaction.
58
+
59
+ **Bank feeds vs. manual entries** — bank-feed transactions have `PrivateNote` set to
60
+ "bank feed" or similar. Manual entries often lack a memo. Neither is a signal of a
61
+ problem on its own, but it helps explain why a transaction might lack a receipt.
62
+
63
+ **PayPal transactions already in QB** — if the user has the PayPal-QB auto-sync
64
+ enabled, PayPal transactions will already appear in the register. Don't double-count
65
+ them during reconciliation (Step 3). Check whether the QB deposit lines have
66
+ "PayPal" in the account or memo before matching.
67
+
68
+ **Retainer / deposit transactions** — a customer deposit is not revenue until the
69
+ work is delivered. If the user is on cash-basis accounting this distinction matters
70
+ less, but flag any large Deposit-type transactions without a matching Invoice for
71
+ their awareness.
@@ -0,0 +1,125 @@
1
+ # More sources
2
+
3
+ More systems reconciled. Same close sequence, same packet.
4
+
5
+ ---
6
+
7
+ ## Ledger — whichever is connected
8
+
9
+ Ledgers are peers (`../../../shared/connector-neutrality.md`). Whichever is connected runs the close.
10
+
11
+ | Source | What it supplies |
12
+ |---|---|
13
+ | MYOB | P&L, AR and AP balances, sales totals. No bank balances: the bank side comes from a statement upload |
14
+ | NetSuite | P&L and register via reports and SuiteQL. Common at the larger end of the segment |
15
+ | QuickBooks | P&L and transaction list; mapped in [quickbooks-reconcile.md](quickbooks-reconcile.md) |
16
+ | Xero | P&L, bills, invoices, bank-transaction queue; mapped in [xero-reconcile.md](xero-reconcile.md) |
17
+ | Zoho Books | Invoices, expenses, purchase orders, customer payments, bank and cash balances with an uncategorised count per account. No bill object, no bank-transaction feed, no report endpoints: the P&L and the bank statement come as exports; mapped in [zoho-books-reconcile.md](zoho-books-reconcile.md) |
18
+
19
+ **Two ledgers connected: read both, total from one.** Ask which holds the books being closed and name it in the packet as the source of record. Read the other for anything it uniquely holds (a bank feed the first one lacks, a bill register), but every total, and the reconciliation itself, runs against the named ledger. Never reconcile against both, and never sum a figure across two — that double-counts.
20
+
21
+ ---
22
+
23
+ ## Shopify settlement reconciliation
24
+
25
+ A first-class leg, and a common source of unexplained gaps.
26
+
27
+ The trap: an order, its payout, and its fees all land on different dates and in different amounts. Reconciling gross order value against a net payout will never tie, and the difference is not an error.
28
+
29
+ Pull three things separately:
30
+
31
+ - **Orders** — gross, by date
32
+ - **Payouts** — net, by settlement date
33
+ - **Fees and refunds** — the difference between the two
34
+
35
+ Then reconcile payout to bank, and orders to revenue. Those are two different reconciliations and conflating them produces a phantom discrepancy every month.
36
+
37
+ If the payout read fails (the connector's scopes exclude Shopify Payments), the orders-to-revenue leg still runs; the payout-to-bank leg takes the payout report the owner exports from Shopify, or is listed as not reconciled this month. Say which.
38
+
39
+ ```
40
+ Shopify: USD 38,400 in orders, USD 36,910 paid out, USD 1,490 in fees and refunds.
41
+ Payouts tie to the bank. Fees are coded to merchant fees.
42
+ ```
43
+
44
+ ---
45
+
46
+ ## Ramp and Expensify
47
+
48
+ Card spend and expense detail. These close the gap between what was actually spent and what has been coded.
49
+
50
+ Pull outstanding transactions and unsubmitted expenses, and flag anything uncoded as an open item in the close packet rather than letting it disappear:
51
+
52
+ ```
53
+ Open items:
54
+ USD 4,180 in Ramp card spend, 23 transactions, not yet coded
55
+ USD 610 in Expensify reports submitted but not approved
56
+ ```
57
+
58
+ An owner who closes the month without seeing those closes on a number that is wrong.
59
+
60
+ Two things to hold on to while pulling them:
61
+
62
+ - **Expensify is read-only search.** It reports expenses, reports, receipts, and approval states; it changes nothing. The has-receipt filter is what surfaces the substantiation gap — "USD 2,140 across 17 expenses with no receipt attached" is a close-packet line an accountant will actually use.
63
+ - **Ramp can write, and the close is not where it writes.** Approving a bill or marking it ready to sync belongs to `ap-processor` behind its own payment gate. Here, Ramp is read only: card spend, bill status, and account balances. Reimbursements overlap Expensify — count them once.
64
+
65
+ ---
66
+
67
+ ## Payroll — whichever is connected
68
+
69
+ Gusto and QuickBooks Payroll are peers. Step 5a reads the month's totals from
70
+ whichever is connected and checks them against the ledger's payroll expense.
71
+
72
+ **Gusto.** Two reads:
73
+
74
+ | Read | Parameters | Fields used |
75
+ |---|---|---|
76
+ | `list_payrolls` | `include=totals`; filter on `check_date` within the month (the list may also carry `pay_period.start_date` / `end_date`) | `totals.gross_pay`, `totals.employer_taxes`, `totals.employee_taxes`, `totals.net_pay`, `check_date` |
77
+ | `list_contractor_payments` | `start_date`, `end_date` = first and last day of the month; `group_by_date=true` | `total.wages`, `total.reimbursements` |
78
+
79
+ Keep only processed payrolls; an unprocessed run in the list is a plan, not a
80
+ payment, and belongs to `payroll-prep`. Contractor payments cover US
81
+ contractors only — say so in the footnote when the row is non-zero, and say it
82
+ is absent when the business pays international contractors.
83
+
84
+ **QuickBooks Payroll.** `qbo_payroll_get_company_last_payroll_run` returns the
85
+ most recent run with its totals; runs earlier in the month are in the payroll
86
+ summary export. Confirm the field names before the first close.
87
+
88
+ **The cross-check.** Net pay + employer taxes + contractor wages, compared to
89
+ the ledger's payroll expense lines for the month:
90
+
91
+ ```
92
+ Payroll (Gusto): 2 runs, GBP 18,420 gross, GBP 1,660 employer taxes,
93
+ GBP 14,210 net. Contractors: GBP 2,400.
94
+ Ledger payroll expense: GBP 18,270. Delta GBP 150 — the 28 Mar run posted to April.
95
+ ```
96
+
97
+ **What never enters the packet:** employee names, rates, hours, deductions,
98
+ home addresses, or any per-person amount. The connector returns them; the
99
+ close does not need them and does not reproduce them.
100
+
101
+ ---
102
+
103
+ ## What doesn't change
104
+
105
+ - The reconcile sequence, the P&L narrative, and the close packet format
106
+ - Duplicate detection and split-transaction handling
107
+ - The CSV and statement-upload path, which still produces a full close
108
+ - Never invent a number. An unavailable source is named as unavailable, and the packet says so
109
+
110
+ ---
111
+
112
+ ## Naming the sources in the packet
113
+
114
+ The close packet gets forwarded to accountants and lenders. It has to say what it was built from and what wasn't available:
115
+
116
+ ```
117
+ Reconciled: Xero (ledger: bills, invoices, and bank transactions), Shopify
118
+ (settlements), PayPal, Ramp (cards).
119
+ Not available: Stripe — auth expired Jul 24. Stripe activity is not included
120
+ in this close.
121
+ ```
122
+
123
+ Name the ledger and, where its register was assembled from parts, say which parts.
124
+
125
+ The second line protects the owner. A close packet that silently omits a processor is worse than one that says it did.
@@ -0,0 +1,175 @@
1
+ # Xero — Reconciliation Reference
2
+
3
+ Sibling of [quickbooks-reconcile.md](quickbooks-reconcile.md). Same close
4
+ sequence, same packet; the reads and the "needs attention" signal differ
5
+ because Xero's data model does.
6
+
7
+ **Tool names below come from the Xero connector's published surface.
8
+ Confirm each against the connected server before the first live close.**
9
+
10
+ ---
11
+
12
+ ## Reports to pull
13
+
14
+ ### Profit & Loss
15
+
16
+ `get_profit_and_loss` for the target month, first to last day. Accrual basis
17
+ unless the owner runs cash. Same downstream fields as the QuickBooks path:
18
+ total revenue, gross profit, net income, total operating expenses.
19
+
20
+ ### The register — what "every line item" means in Xero
21
+
22
+ Xero has no single monthly transaction-register read. The register for the
23
+ close is three things, pulled separately:
24
+
25
+ | Part | Tool | What it holds |
26
+ |---|---|---|
27
+ | Bills | `get_bills` with `include_line_items=true` | Supplier invoices, paid and unpaid |
28
+ | Invoices | `get_invoices` with `include_line_items=true` | Customer invoices, paid and unpaid |
29
+ | Bank queue | `get_bank_account_transactions` | Bank-feed lines, reconciled and unreconciled |
30
+
31
+ `get_bank_account_transactions` is not the monthly register on its own; its
32
+ own description says not to treat it that way. Bills and invoices carry the
33
+ coded detail; the bank queue carries what has and has not been matched.
34
+
35
+ **State the scope in the packet.** The "Reconciled" line reads: *"Xero
36
+ (ledger: bills, invoices, and bank transactions for the month)."* An
37
+ accountant reading the packet needs to know the register was assembled from
38
+ documents plus bank lines, not exported as one report.
39
+
40
+ Key fields:
41
+
42
+ | Field | Notes |
43
+ |---|---|
44
+ | `date` | Document or bank line date |
45
+ | `status` | `AUTHORISED` (approved, unpaid), `PAID`, `DRAFT`, `VOIDED`. Drafts are excluded from the close |
46
+ | `contact.name` | Supplier or customer |
47
+ | `total` | Document total; compare to bank line amount when matching |
48
+ | `account_code` | GL account on each line item |
49
+ | `line_item_cardinality` | Number of lines on the document. Above 1 means a split |
50
+ | `has_attachments` | Present only when `include_line_items=true` |
51
+ | `is_reconciled` (bank line) | Whether the bank-feed line has been matched to a document |
52
+
53
+ ---
54
+
55
+ ## The "needs attention" signal: unreconciled bank lines, not uncategorized
56
+
57
+ Xero requires an account code when a bank line is reconciled, so the
58
+ QuickBooks categories ("Uncategorized Expense," "Ask My Accountant") do not
59
+ arise. The equivalent signal is **bank lines still unreconciled at month end**:
60
+ money that moved but has not been matched to a bill, invoice, or spend/receive
61
+ transaction.
62
+
63
+ Step 2 for a Xero ledger reports:
64
+
65
+ ```
66
+ Unreconciled bank lines: 14 lines, AUD 6,240 across 2 accounts
67
+ ```
68
+
69
+ and lists them for the owner to reconcile in Xero before the close advances.
70
+ The Step 6 summary block's "Needs attention" row carries this count.
71
+
72
+ Do not present an unreconciled line as an error. It is work not yet done,
73
+ and the owner may have a reason (a payout not yet split, a supplier bill not
74
+ yet entered). Name it, count it, and let them decide.
75
+
76
+ ---
77
+
78
+ ## Duplicate detection: scan documents, not bank lines
79
+
80
+ A bill entered twice in Xero sits as two `AUTHORISED` documents and produces
81
+ **no bank line until one of them is paid**. A bank-side duplicate scan cannot
82
+ see it. For a Xero ledger, Step 4 scans bills and invoices:
83
+
84
+ Flag a pair as a suspected duplicate when all four hold:
85
+
86
+ - Same `contact.name`
87
+ - Same `total` (within 0.01 in the business currency)
88
+ - Dated within 5 calendar days of each other
89
+ - Both unpaid (`AUTHORISED`), or one unpaid and one paid within the window
90
+
91
+ Present pairs to the owner exactly as the QuickBooks path does. Recurring
92
+ weekly bills from the same supplier are the usual false positive.
93
+
94
+ **Splits are one document.** A bill with several line items is one document
95
+ with `line_item_cardinality` above 1. The QuickBooks rule "group by `TxnID`
96
+ before comparing" maps to "compare documents, never lines" here. Two lines on
97
+ one bill are never a duplicate pair.
98
+
99
+ ---
100
+
101
+ ## Receipts: check the document first, then the folder
102
+
103
+ Xero stores attachments on the bill or invoice. Before scanning a receipts
104
+ folder (Step 5), read `has_attachments` on each expense document above the
105
+ attention threshold. It is returned only when `include_line_items=true` is
106
+ passed to `get_bills` and `get_invoices`; without that parameter the field is
107
+ absent and every document looks receipt-less.
108
+
109
+ - `has_attachments = true` → "receipt on file (Xero)"
110
+ - `false` → fall back to the folder scan, then to asking the owner
111
+
112
+ Payments made straight from the bank feed with no bill behind them (a
113
+ spend-money transaction) have no document to attach to. Treat those like a
114
+ QuickBooks expense with no attachment.
115
+
116
+ ---
117
+
118
+ ## Processor settlements: the payout is already a ledger line
119
+
120
+ Xero customers commonly receive Square, Stripe, and PayPal payouts through a
121
+ bank feed. The payout is therefore already in the ledger as a bank line, and
122
+ the reconciliation question is whether that line has been matched, not
123
+ whether a ledger line exists.
124
+
125
+ Step 3 for a Xero ledger:
126
+
127
+ 1. Among the unreconciled bank transactions, find lines whose payee or
128
+ reference names a processor (Square, Stripe, PayPal, Shopify Payments).
129
+ 2. List them per processor as the action items: *"Stripe: 4 payouts,
130
+ AUD 3,180, unreconciled."*
131
+ 3. Match reconciled processor lines to the processor's settlement report
132
+ net-to-net as usual, for fee verification. Keep the settlement CSV path
133
+ for a processor with no bank feed or when the owner wants fees checked.
134
+
135
+ A processor payout with no bank line at all (feed not set up, or a manual
136
+ bank) falls back to the CSV match in
137
+ [paypal-settlements.md](paypal-settlements.md).
138
+
139
+ ---
140
+
141
+ ## Country, currency, and financial year
142
+
143
+ `get_organisation_info` returns the organisation's base currency and country;
144
+ `get_organisation_financial_year` returns the year end. Read them once at
145
+ the start of the close if the business context does not already carry them,
146
+ and use them for:
147
+
148
+ - Every amount in the packet (`AUD 12,400`, never `$`)
149
+ - The 0.50 / 0.01 / 25 thresholds, which are in the base currency
150
+ - Whether Step 9 offers `/tax-prep` at all (US only)
151
+
152
+ The rule is `../../../shared/currency-and-locale.md`.
153
+
154
+ ---
155
+
156
+ ## Graceful degradation — Xero not connected or not authorised
157
+
158
+ Take this path only when no Xero entry works. An unauthorized `small-business:xero`
159
+ beside the owner's own live Xero is connected — call the owner's entry instead
160
+ (`../../../shared/connector-neutrality.md`, "One connector, two registrations").
161
+
162
+ Ask for **two exports** from Xero: the **Profit and Loss** report for the
163
+ month, and the **Account Transactions** report with all accounts selected for
164
+ the same period. One does not contain the other. The Account Transactions
165
+ report is the register; unreconciled lines do not appear in it, so ask the
166
+ owner for the unreconciled count from the bank reconciliation screen as a
167
+ third item, or say in the packet that it was not available.
168
+
169
+ ---
170
+
171
+ ## Pagination and limits
172
+
173
+ Each read returns a page. Request the month in one call per bank account and
174
+ one per document type, and page until the response says there is no more.
175
+ Do not stop at the first page and call the register complete.
@@ -0,0 +1,168 @@
1
+ # Zoho Books — Reconciliation Reference
2
+
3
+ Sibling of [quickbooks-reconcile.md](quickbooks-reconcile.md) and
4
+ [xero-reconcile.md](xero-reconcile.md). Same close sequence, same packet;
5
+ the reads and the "needs attention" signal differ because the connector's
6
+ surface does.
7
+
8
+ Every call takes `organization_id`; get it once from
9
+ `list_organizations` (or `get_organization`, which also returns the locale
10
+ fields) and reuse it.
11
+
12
+ ---
13
+
14
+ ## What the connector holds, and what it does not
15
+
16
+ | Holds | Does not hold |
17
+ |---|---|
18
+ | Invoices, estimates, sales orders, customer payments | Bills, vendor payments |
19
+ | Expenses, purchase orders | Bank transactions or a bank feed |
20
+ | Bank and cash accounts with balances and an uncategorised count | Journals |
21
+ | Contacts (customers and vendors, with a 1099 flag) | Any report: P&L, cash flow, aging |
22
+ | Chart of accounts with balances (`list_chart_of_accounts` with `showbalance`) | |
23
+ | Organisation record: country, currency, fiscal year start | |
24
+
25
+ State this in the packet: an accountant needs to know which parts came from
26
+ the connector and which from an export.
27
+
28
+ ---
29
+
30
+ ## Reports to pull
31
+
32
+ ### Profit & Loss — from an export
33
+
34
+ There is no P&L endpoint. Ask for the **Profit and Loss** export (Reports →
35
+ Profit and Loss → Export, target month) before Step 2 runs, even when the
36
+ connector is connected. Say why in one line: *"Zoho Books doesn't expose
37
+ reports through the connector, so I need the P&L export; everything else I
38
+ can read directly."*
39
+
40
+ A stand-in when the owner cannot export: invoiced revenue from
41
+ `list_invoices` (`date_start`/`date_end`, `response_option=3` for the summed
42
+ `total`) minus recorded expenses from `list_expenses` for the same range.
43
+ Label it *"invoiced minus recorded, not a P&L"* everywhere it appears.
44
+
45
+ ### The register — three document lists
46
+
47
+ | Part | Tool | What it holds |
48
+ |---|---|---|
49
+ | Invoices | `list_invoices` with `date_start` / `date_end`, `per_page` up to 200 | Customer invoices, all statuses; `status` filter for `paid`, `unpaid`, `overdue`, `draft`, `void` |
50
+ | Expenses | `list_expenses` with `date_start` / `date_end` | Money spent, coded to an `account_name`, with `vendor_name` and `status` |
51
+ | Purchase orders | `list_purchase_orders` for the month | Open commitments to vendors |
52
+
53
+ Exclude `draft` and `void` documents from the close. Page until
54
+ `page_context.has_more_page` is false; a single page is not the month.
55
+
56
+ Key fields:
57
+
58
+ | Field | Notes |
59
+ |---|---|
60
+ | `date`, `due_date` | Document dates |
61
+ | `status`, `current_sub_status` | `overdue` carries `due_days` as text ("Overdue by 323 days") |
62
+ | `customer_name` / `vendor_name` | Counterparty |
63
+ | `total`, `balance` | Document total and what is still unpaid |
64
+ | `has_attachment` | Receipt or document attached |
65
+ | `reminders_sent`, `last_reminder_sent_date` | Invoice chase history |
66
+ | `currency_code`, `exchange_rate` | Per document; `bcy_*` fields are base currency |
67
+
68
+ ---
69
+
70
+ ## The "needs attention" signal: uncategorised transactions per account
71
+
72
+ `list_bank_accounts` (`filter_by=Status.Active`) returns each bank and cash
73
+ account with `current_balance`, `bank_balance`, and
74
+ `uncategorized_transactions`. That count is the attention signal — bank-feed
75
+ lines the owner has not yet coded.
76
+
77
+ Step 2 for a Zoho Books ledger reports:
78
+
79
+ ```
80
+ Uncategorised bank transactions: 9 across 2 accounts (Operating 7, Savings 2)
81
+ ```
82
+
83
+ The lines themselves cannot be listed through the connector. Tell the owner
84
+ the count and the account, and that they are categorised in Zoho Books
85
+ (Banking → account → Uncategorized) before the close advances. The Step 6
86
+ summary block's "Needs attention" row carries this count.
87
+
88
+ `Undeposited Funds` is a cash account in this list, not a bank. A large
89
+ balance there at month end means customer payments received and not yet
90
+ deposited — name it as an open item, not as cash on hand.
91
+
92
+ ---
93
+
94
+ ## Duplicate detection: scan documents
95
+
96
+ Same rule as Xero — a document keyed twice is two documents. Step 4 scans
97
+ invoices and expenses separately:
98
+
99
+ - Same `customer_name` (invoices) or `vendor_name` (expenses)
100
+ - Same `total` (within 0.01 in the base currency)
101
+ - Dated within 5 calendar days of each other
102
+ - Both unpaid, or one paid inside the window
103
+
104
+ Recurring expenses (`recurring_expense_id` set) and invoices created from a
105
+ recurring invoice (`recurring_invoice_id` set) are the usual false positive;
106
+ show the id so the owner sees why.
107
+
108
+ ---
109
+
110
+ ## Receipts: check the document, then the folder
111
+
112
+ `has_attachment` on invoices and expenses says whether a file is attached.
113
+ Above the attention threshold, read it first:
114
+
115
+ - `true` → "receipt on file (Zoho Books)"
116
+ - `false` → fall back to the folder scan, then to asking the owner
117
+
118
+ ---
119
+
120
+ ## Processor settlements: no bank feed, so the CSV match runs
121
+
122
+ The connector has no bank-transaction list, so a payout cannot be found as a
123
+ ledger line. Step 3 for a Zoho Books ledger goes straight to the CSV match in
124
+ [paypal-settlements.md](paypal-settlements.md): the processor's settlement
125
+ report against the **bank statement** the owner uploads. Ask for the
126
+ statement in the same breath as the P&L export.
127
+
128
+ Two things the connector does supply for this leg:
129
+
130
+ - `list_customer_payments` for the month — payments recorded against
131
+ invoices, with `payment_mode` and `reference_number`. A processor payout
132
+ that was recorded as a customer payment shows here.
133
+ - Invoices carry `payment_options.payment_gateways` — which gateways (Stripe,
134
+ PayPal) the invoice was set up to accept. That tells you which processor's
135
+ settlement to expect for it.
136
+
137
+ ---
138
+
139
+ ## Country, currency, and financial year
140
+
141
+ `get_organization` returns `country_code`, `currency_code`, and
142
+ `fiscal_year_start_month` as a zero-based month index (`0` = January, so the
143
+ year end is the last day of the month before the index). Read them at the
144
+ start of the close if the business context does not carry them, and use them
145
+ for every amount, the thresholds, and whether Step 9 offers `/tax-prep`. The
146
+ rule is `../../../shared/currency-and-locale.md`.
147
+
148
+ ---
149
+
150
+ ## Graceful degradation — Zoho Books not connected
151
+
152
+ Take this path only when no Zoho Books entry works. An unauthorized
153
+ `small-business:zoho-books` beside the owner's own live Zoho Books is connected —
154
+ call the owner's entry instead (`../../../shared/connector-neutrality.md`, "One
155
+ connector, two registrations").
156
+
157
+ Ask for **three exports**: the **Profit and Loss** report, the **Account
158
+ Transactions** report (all accounts, the month), and the **bank statement**.
159
+ The uncategorised count comes from the Banking screen; ask for it as a fourth
160
+ item or say in the packet that it was not available.
161
+
162
+ ---
163
+
164
+ ## Pagination and limits
165
+
166
+ `per_page` goes to 200 on invoices; the default is 10. Set it, and page on
167
+ `has_more_page`. Sums come cheaper from `response_option=3` (count and
168
+ totals only) than from listing every document.