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.
- package/LICENSE +212 -0
- package/README.md +124 -2
- package/content/bio-research/.mcp.json +48 -0
- package/content/bio-research/CONNECTORS.md +23 -0
- package/content/bio-research/LICENSE +202 -0
- package/content/bio-research/README.md +83 -0
- package/content/bio-research/skills/bio-research-instrument-data-to-allotrope/LICENSE.txt +201 -0
- package/content/bio-research/skills/bio-research-instrument-data-to-allotrope/SKILL.md +280 -0
- package/content/bio-research/skills/bio-research-instrument-data-to-allotrope/references/asm_schema_overview.md +226 -0
- package/content/bio-research/skills/bio-research-instrument-data-to-allotrope/references/field_classification_guide.md +503 -0
- package/content/bio-research/skills/bio-research-instrument-data-to-allotrope/references/flattening_guide.md +254 -0
- package/content/bio-research/skills/bio-research-instrument-data-to-allotrope/references/supported_instruments.md +151 -0
- package/content/bio-research/skills/bio-research-instrument-data-to-allotrope/requirements.txt +26 -0
- package/content/bio-research/skills/bio-research-instrument-data-to-allotrope/scripts/convert_to_asm.py +543 -0
- package/content/bio-research/skills/bio-research-instrument-data-to-allotrope/scripts/export_parser.py +481 -0
- package/content/bio-research/skills/bio-research-instrument-data-to-allotrope/scripts/flatten_asm.py +254 -0
- package/content/bio-research/skills/bio-research-instrument-data-to-allotrope/scripts/validate_asm.py +1102 -0
- package/content/bio-research/skills/bio-research-nextflow-development/LICENSE.txt +201 -0
- package/content/bio-research/skills/bio-research-nextflow-development/SKILL.md +290 -0
- package/content/bio-research/skills/bio-research-nextflow-development/references/geo-sra-acquisition.md +416 -0
- package/content/bio-research/skills/bio-research-nextflow-development/references/installation.md +96 -0
- package/content/bio-research/skills/bio-research-nextflow-development/references/pipelines/atacseq.md +138 -0
- package/content/bio-research/skills/bio-research-nextflow-development/references/pipelines/rnaseq.md +118 -0
- package/content/bio-research/skills/bio-research-nextflow-development/references/pipelines/sarek.md +145 -0
- package/content/bio-research/skills/bio-research-nextflow-development/references/troubleshooting.md +137 -0
- package/content/bio-research/skills/bio-research-nextflow-development/scripts/check_environment.py +452 -0
- package/content/bio-research/skills/bio-research-nextflow-development/scripts/config/genomes.yaml +148 -0
- package/content/bio-research/skills/bio-research-nextflow-development/scripts/config/pipelines/atacseq.yaml +187 -0
- package/content/bio-research/skills/bio-research-nextflow-development/scripts/config/pipelines/rnaseq.yaml +147 -0
- package/content/bio-research/skills/bio-research-nextflow-development/scripts/config/pipelines/sarek.yaml +233 -0
- package/content/bio-research/skills/bio-research-nextflow-development/scripts/detect_data_type.py +300 -0
- package/content/bio-research/skills/bio-research-nextflow-development/scripts/generate_samplesheet.py +455 -0
- package/content/bio-research/skills/bio-research-nextflow-development/scripts/manage_genomes.py +521 -0
- package/content/bio-research/skills/bio-research-nextflow-development/scripts/sra_geo_fetch.py +732 -0
- package/content/bio-research/skills/bio-research-nextflow-development/scripts/utils/__init__.py +69 -0
- package/content/bio-research/skills/bio-research-nextflow-development/scripts/utils/file_discovery.py +189 -0
- package/content/bio-research/skills/bio-research-nextflow-development/scripts/utils/ncbi_utils.py +808 -0
- package/content/bio-research/skills/bio-research-nextflow-development/scripts/utils/sample_inference.py +290 -0
- package/content/bio-research/skills/bio-research-nextflow-development/scripts/utils/validators.py +256 -0
- package/content/bio-research/skills/bio-research-scientific-problem-selection/LICENSE.txt +201 -0
- package/content/bio-research/skills/bio-research-scientific-problem-selection/SKILL.md +269 -0
- package/content/bio-research/skills/bio-research-scientific-problem-selection/references/01-intuition-pumps.md +264 -0
- package/content/bio-research/skills/bio-research-scientific-problem-selection/references/02-risk-assessment.md +323 -0
- package/content/bio-research/skills/bio-research-scientific-problem-selection/references/03-optimization-function.md +481 -0
- package/content/bio-research/skills/bio-research-scientific-problem-selection/references/04-parameter-strategy.md +396 -0
- package/content/bio-research/skills/bio-research-scientific-problem-selection/references/05-decision-tree.md +85 -0
- package/content/bio-research/skills/bio-research-scientific-problem-selection/references/06-adversity-planning.md +123 -0
- package/content/bio-research/skills/bio-research-scientific-problem-selection/references/07-problem-inversion.md +152 -0
- package/content/bio-research/skills/bio-research-scientific-problem-selection/references/08-integration-synthesis.md +173 -0
- package/content/bio-research/skills/bio-research-scientific-problem-selection/references/09-meta-framework.md +504 -0
- package/content/bio-research/skills/bio-research-scvi-tools/LICENSE.txt +201 -0
- package/content/bio-research/skills/bio-research-scvi-tools/SKILL.md +155 -0
- package/content/bio-research/skills/bio-research-scvi-tools/references/atac_peakvi.md +398 -0
- package/content/bio-research/skills/bio-research-scvi-tools/references/batch_correction_sysvi.md +417 -0
- package/content/bio-research/skills/bio-research-scvi-tools/references/citeseq_totalvi.md +420 -0
- package/content/bio-research/skills/bio-research-scvi-tools/references/data_preparation.md +286 -0
- package/content/bio-research/skills/bio-research-scvi-tools/references/environment_setup.md +254 -0
- package/content/bio-research/skills/bio-research-scvi-tools/references/label_transfer.md +373 -0
- package/content/bio-research/skills/bio-research-scvi-tools/references/multiome_multivi.md +384 -0
- package/content/bio-research/skills/bio-research-scvi-tools/references/rna_velocity_velovi.md +410 -0
- package/content/bio-research/skills/bio-research-scvi-tools/references/scarches_mapping.md +401 -0
- package/content/bio-research/skills/bio-research-scvi-tools/references/scrna_integration.md +429 -0
- package/content/bio-research/skills/bio-research-scvi-tools/references/spatial_deconvolution.md +438 -0
- package/content/bio-research/skills/bio-research-scvi-tools/references/troubleshooting.md +420 -0
- package/content/bio-research/skills/bio-research-scvi-tools/scripts/cluster_embed.py +212 -0
- package/content/bio-research/skills/bio-research-scvi-tools/scripts/differential_expression.py +220 -0
- package/content/bio-research/skills/bio-research-scvi-tools/scripts/integrate_datasets.py +237 -0
- package/content/bio-research/skills/bio-research-scvi-tools/scripts/model_utils.py +634 -0
- package/content/bio-research/skills/bio-research-scvi-tools/scripts/prepare_data.py +169 -0
- package/content/bio-research/skills/bio-research-scvi-tools/scripts/train_model.py +370 -0
- package/content/bio-research/skills/bio-research-scvi-tools/scripts/transfer_labels.py +224 -0
- package/content/bio-research/skills/bio-research-scvi-tools/scripts/validate_adata.py +397 -0
- package/content/bio-research/skills/bio-research-single-cell-rna-qc/LICENSE.txt +201 -0
- package/content/bio-research/skills/bio-research-single-cell-rna-qc/SKILL.md +175 -0
- package/content/bio-research/skills/bio-research-single-cell-rna-qc/references/scverse_qc_guidelines.md +186 -0
- package/content/bio-research/skills/bio-research-single-cell-rna-qc/scripts/qc_analysis.py +232 -0
- package/content/bio-research/skills/bio-research-single-cell-rna-qc/scripts/qc_core.py +233 -0
- package/content/bio-research/skills/bio-research-single-cell-rna-qc/scripts/qc_plotting.py +235 -0
- package/content/bio-research/skills/bio-research-start/SKILL.md +79 -0
- package/content/customer-support/.mcp.json +40 -0
- package/content/customer-support/CONNECTORS.md +19 -0
- package/content/customer-support/LICENSE +202 -0
- package/content/customer-support/README.md +140 -0
- package/content/customer-support/skills/customer-support-customer-escalation/SKILL.md +248 -0
- package/content/customer-support/skills/customer-support-customer-research/SKILL.md +252 -0
- package/content/customer-support/skills/customer-support-draft-response/SKILL.md +418 -0
- package/content/customer-support/skills/customer-support-kb-article/SKILL.md +351 -0
- package/content/customer-support/skills/customer-support-ticket-triage/SKILL.md +275 -0
- package/content/data/.mcp.json +36 -0
- package/content/data/CONNECTORS.md +18 -0
- package/content/data/LICENSE +202 -0
- package/content/data/README.md +121 -0
- package/content/data/skills/data-analyze/SKILL.md +119 -0
- package/content/data/skills/data-build-dashboard/SKILL.md +924 -0
- package/content/data/skills/data-create-viz/SKILL.md +154 -0
- package/content/data/skills/data-data-context-extractor/SKILL.md +227 -0
- package/content/data/skills/data-data-context-extractor/references/domain-template.md +147 -0
- package/content/data/skills/data-data-context-extractor/references/example-output.md +198 -0
- package/content/data/skills/data-data-context-extractor/references/skill-template.md +148 -0
- package/content/data/skills/data-data-context-extractor/references/sql-dialects.md +121 -0
- package/content/data/skills/data-data-context-extractor/scripts/package_data_skill.py +126 -0
- package/content/data/skills/data-data-visualization/SKILL.md +305 -0
- package/content/data/skills/data-explore-data/SKILL.md +325 -0
- package/content/data/skills/data-sql-queries/SKILL.md +428 -0
- package/content/data/skills/data-statistical-analysis/SKILL.md +245 -0
- package/content/data/skills/data-validate-data/SKILL.md +383 -0
- package/content/data/skills/data-write-query/SKILL.md +122 -0
- package/content/design/.mcp.json +44 -0
- package/content/design/CONNECTORS.md +18 -0
- package/content/design/README.md +117 -0
- package/content/design/skills/design-accessibility-review/SKILL.md +128 -0
- package/content/design/skills/design-design-critique/SKILL.md +118 -0
- package/content/design/skills/design-design-handoff/SKILL.md +131 -0
- package/content/design/skills/design-design-system/SKILL.md +190 -0
- package/content/design/skills/design-research-synthesis/SKILL.md +92 -0
- package/content/design/skills/design-user-research/SKILL.md +41 -0
- package/content/design/skills/design-ux-copy/SKILL.md +107 -0
- package/content/engineering/.mcp.json +48 -0
- package/content/engineering/CONNECTORS.md +19 -0
- package/content/engineering/README.md +136 -0
- package/content/engineering/skills/engineering-architecture/SKILL.md +85 -0
- package/content/engineering/skills/engineering-code-review/SKILL.md +118 -0
- package/content/engineering/skills/engineering-debug/SKILL.md +95 -0
- package/content/engineering/skills/engineering-deploy-checklist/SKILL.md +78 -0
- package/content/engineering/skills/engineering-documentation/SKILL.md +49 -0
- package/content/engineering/skills/engineering-incident-response/SKILL.md +158 -0
- package/content/engineering/skills/engineering-standup/SKILL.md +75 -0
- package/content/engineering/skills/engineering-system-design/SKILL.md +42 -0
- package/content/engineering/skills/engineering-tech-debt/SKILL.md +32 -0
- package/content/engineering/skills/engineering-testing-strategy/SKILL.md +33 -0
- package/content/enterprise-search/.mcp.json +36 -0
- package/content/enterprise-search/CONNECTORS.md +21 -0
- package/content/enterprise-search/LICENSE +202 -0
- package/content/enterprise-search/README.md +157 -0
- package/content/enterprise-search/skills/enterprise-search-digest/SKILL.md +173 -0
- package/content/enterprise-search/skills/enterprise-search-knowledge-synthesis/SKILL.md +258 -0
- package/content/enterprise-search/skills/enterprise-search-search/SKILL.md +178 -0
- package/content/enterprise-search/skills/enterprise-search-search-strategy/SKILL.md +222 -0
- package/content/enterprise-search/skills/enterprise-search-source-management/SKILL.md +173 -0
- package/content/finance/.mcp.json +32 -0
- package/content/finance/CONNECTORS.md +20 -0
- package/content/finance/LICENSE +202 -0
- package/content/finance/README.md +92 -0
- package/content/finance/skills/finance-audit-support/SKILL.md +374 -0
- package/content/finance/skills/finance-close-management/SKILL.md +221 -0
- package/content/finance/skills/finance-financial-statements/SKILL.md +335 -0
- package/content/finance/skills/finance-journal-entry/SKILL.md +131 -0
- package/content/finance/skills/finance-journal-entry-prep/SKILL.md +186 -0
- package/content/finance/skills/finance-reconciliation/SKILL.md +175 -0
- package/content/finance/skills/finance-sox-testing/SKILL.md +218 -0
- package/content/finance/skills/finance-variance-analysis/SKILL.md +266 -0
- package/content/human-resources/.mcp.json +28 -0
- package/content/human-resources/CONNECTORS.md +19 -0
- package/content/human-resources/README.md +138 -0
- package/content/human-resources/skills/human-resources-comp-analysis/SKILL.md +92 -0
- package/content/human-resources/skills/human-resources-draft-offer/SKILL.md +82 -0
- package/content/human-resources/skills/human-resources-interview-prep/SKILL.md +37 -0
- package/content/human-resources/skills/human-resources-onboarding/SKILL.md +104 -0
- package/content/human-resources/skills/human-resources-org-planning/SKILL.md +28 -0
- package/content/human-resources/skills/human-resources-people-report/SKILL.md +99 -0
- package/content/human-resources/skills/human-resources-performance-review/SKILL.md +149 -0
- package/content/human-resources/skills/human-resources-policy-lookup/SKILL.md +94 -0
- package/content/human-resources/skills/human-resources-recruiting-pipeline/SKILL.md +31 -0
- package/content/legal/.mcp.json +36 -0
- package/content/legal/CONNECTORS.md +21 -0
- package/content/legal/LICENSE +202 -0
- package/content/legal/README.md +234 -0
- package/content/legal/skills/legal-brief/SKILL.md +208 -0
- package/content/legal/skills/legal-compliance-check/SKILL.md +274 -0
- package/content/legal/skills/legal-legal-response/SKILL.md +457 -0
- package/content/legal/skills/legal-legal-risk-assessment/SKILL.md +265 -0
- package/content/legal/skills/legal-meeting-briefing/SKILL.md +220 -0
- package/content/legal/skills/legal-review-contract/SKILL.md +358 -0
- package/content/legal/skills/legal-signature-request/SKILL.md +104 -0
- package/content/legal/skills/legal-triage-nda/SKILL.md +262 -0
- package/content/legal/skills/legal-vendor-check/SKILL.md +159 -0
- package/content/manifest.json +86 -0
- package/content/marketing/.mcp.json +60 -0
- package/content/marketing/CONNECTORS.md +20 -0
- package/content/marketing/LICENSE +202 -0
- package/content/marketing/README.md +90 -0
- package/content/marketing/skills/marketing-brand-review/SKILL.md +276 -0
- package/content/marketing/skills/marketing-campaign-plan/SKILL.md +308 -0
- package/content/marketing/skills/marketing-competitive-brief/SKILL.md +331 -0
- package/content/marketing/skills/marketing-content-creation/SKILL.md +157 -0
- package/content/marketing/skills/marketing-draft-content/SKILL.md +117 -0
- package/content/marketing/skills/marketing-email-sequence/SKILL.md +220 -0
- package/content/marketing/skills/marketing-performance-report/SKILL.md +392 -0
- package/content/marketing/skills/marketing-seo-audit/SKILL.md +190 -0
- package/content/operations/.mcp.json +32 -0
- package/content/operations/CONNECTORS.md +20 -0
- package/content/operations/README.md +135 -0
- package/content/operations/skills/operations-capacity-plan/SKILL.md +113 -0
- package/content/operations/skills/operations-change-request/SKILL.md +121 -0
- package/content/operations/skills/operations-compliance-tracking/SKILL.md +44 -0
- package/content/operations/skills/operations-process-doc/SKILL.md +82 -0
- package/content/operations/skills/operations-process-optimization/SKILL.md +39 -0
- package/content/operations/skills/operations-risk-assessment/SKILL.md +40 -0
- package/content/operations/skills/operations-runbook/SKILL.md +87 -0
- package/content/operations/skills/operations-status-report/SKILL.md +77 -0
- package/content/operations/skills/operations-vendor-review/SKILL.md +104 -0
- package/content/pdf-viewer/.mcp.json +8 -0
- package/content/pdf-viewer/CONNECTORS.md +15 -0
- package/content/pdf-viewer/LICENSE +202 -0
- package/content/pdf-viewer/README.md +57 -0
- package/content/pdf-viewer/commands/annotate.md +51 -0
- package/content/pdf-viewer/commands/fill-form.md +73 -0
- package/content/pdf-viewer/commands/open.md +34 -0
- package/content/pdf-viewer/commands/sign.md +54 -0
- package/content/pdf-viewer/skills/pdf-viewer-view-pdf/SKILL.md +147 -0
- package/content/product-management/.mcp.json +72 -0
- package/content/product-management/CONNECTORS.md +22 -0
- package/content/product-management/LICENSE +202 -0
- package/content/product-management/README.md +118 -0
- package/content/product-management/commands/brainstorm.md +120 -0
- package/content/product-management/skills/product-management-competitive-brief/SKILL.md +302 -0
- package/content/product-management/skills/product-management-metrics-review/SKILL.md +388 -0
- package/content/product-management/skills/product-management-product-brainstorming/SKILL.md +273 -0
- package/content/product-management/skills/product-management-roadmap-update/SKILL.md +266 -0
- package/content/product-management/skills/product-management-sprint-planning/SKILL.md +94 -0
- package/content/product-management/skills/product-management-stakeholder-update/SKILL.md +352 -0
- package/content/product-management/skills/product-management-synthesize-research/SKILL.md +312 -0
- package/content/product-management/skills/product-management-write-spec/SKILL.md +250 -0
- package/content/productivity/.mcp.json +44 -0
- package/content/productivity/CONNECTORS.md +18 -0
- package/content/productivity/LICENSE +202 -0
- package/content/productivity/README.md +97 -0
- package/content/productivity/skills/dashboard.html +3111 -0
- package/content/productivity/skills/productivity-memory-management/SKILL.md +323 -0
- package/content/productivity/skills/productivity-start/SKILL.md +158 -0
- package/content/productivity/skills/productivity-task-management/SKILL.md +91 -0
- package/content/productivity/skills/productivity-update/SKILL.md +168 -0
- package/content/sales/.mcp.json +100 -0
- package/content/sales/CONNECTORS.md +36 -0
- package/content/sales/LICENSE +202 -0
- package/content/sales/README.md +148 -0
- package/content/sales/skills/sales-account-context/SKILL.md +94 -0
- package/content/sales/skills/sales-account-plan/SKILL.md +95 -0
- package/content/sales/skills/sales-account-research/SKILL.md +99 -0
- package/content/sales/skills/sales-account-tiering/SKILL.md +101 -0
- package/content/sales/skills/sales-call-prep/SKILL.md +111 -0
- package/content/sales/skills/sales-call-summary/SKILL.md +111 -0
- package/content/sales/skills/sales-close-plan/SKILL.md +106 -0
- package/content/sales/skills/sales-competitive-intelligence/SKILL.md +102 -0
- package/content/sales/skills/sales-create-an-asset/SKILL.md +105 -0
- package/content/sales/skills/sales-crm-hygiene-check/SKILL.md +103 -0
- package/content/sales/skills/sales-customer-health/SKILL.md +108 -0
- package/content/sales/skills/sales-customer-voice/SKILL.md +94 -0
- package/content/sales/skills/sales-daily-briefing/SKILL.md +61 -0
- package/content/sales/skills/sales-deal-advance-gap/SKILL.md +102 -0
- package/content/sales/skills/sales-deal-review/SKILL.md +105 -0
- package/content/sales/skills/sales-deal-signals/SKILL.md +96 -0
- package/content/sales/skills/sales-deal-slip-scenario/SKILL.md +101 -0
- package/content/sales/skills/sales-draft-outreach/SKILL.md +116 -0
- package/content/sales/skills/sales-end-of-day/SKILL.md +114 -0
- package/content/sales/skills/sales-expansion-whitespace/SKILL.md +97 -0
- package/content/sales/skills/sales-forecast/SKILL.md +100 -0
- package/content/sales/skills/sales-handle-objection/SKILL.md +93 -0
- package/content/sales/skills/sales-inbox-sweep/SKILL.md +114 -0
- package/content/sales/skills/sales-lead-triage/SKILL.md +105 -0
- package/content/sales/skills/sales-log-activity/SKILL.md +111 -0
- package/content/sales/skills/sales-pipeline-review/SKILL.md +97 -0
- package/content/sales/skills/sales-renewal-radar/SKILL.md +95 -0
- package/content/sales/skills/sales-rep-context/SKILL.md +90 -0
- package/content/sales/skills/sales-route-lead/SKILL.md +111 -0
- package/content/sales/skills/sales-schedule-meeting/SKILL.md +99 -0
- package/content/sales/skills/sales-setup/SKILL.md +195 -0
- package/content/sales/skills/sales-stakeholder-map/SKILL.md +107 -0
- package/content/sales/skills/sales-team-pipeline/SKILL.md +105 -0
- package/content/sales/skills/sales-update-opportunity/SKILL.md +111 -0
- package/content/sales/skills/sales-weekly-wrap/SKILL.md +90 -0
- package/content/sales/skills/sales-win-loss-review/SKILL.md +88 -0
- package/content/small-business/.mcp.json +148 -0
- package/content/small-business/README.md +117 -0
- package/content/small-business/skills/small-business-ad-manager/SKILL.md +128 -0
- package/content/small-business/skills/small-business-ad-manager/reference/ad_copy.md +112 -0
- package/content/small-business/skills/small-business-ad-manager/reference/change_playbook.md +127 -0
- package/content/small-business/skills/small-business-ad-manager/reference/data_sources.md +100 -0
- package/content/small-business/skills/small-business-ad-manager/reference/diagnostics.md +89 -0
- package/content/small-business/skills/small-business-ad-manager/reference/gotchas.md +181 -0
- package/content/small-business/skills/small-business-ap-processor/SKILL.md +158 -0
- package/content/small-business/skills/small-business-ap-processor/reference/coding_rules.md +70 -0
- package/content/small-business/skills/small-business-ap-processor/reference/gotchas.md +131 -0
- package/content/small-business/skills/small-business-ap-processor/reference/intake_and_extraction.md +82 -0
- package/content/small-business/skills/small-business-ap-processor/reference/matching_and_exceptions.md +80 -0
- package/content/small-business/skills/small-business-ap-processor/reference/payment_run.md +77 -0
- package/content/small-business/skills/small-business-brand-style/SKILL.md +106 -0
- package/content/small-business/skills/small-business-build-agent/SKILL.md +105 -0
- package/content/small-business/skills/small-business-build-agent/reference/capture.md +133 -0
- package/content/small-business/skills/small-business-build-agent/reference/gotchas.md +204 -0
- package/content/small-business/skills/small-business-build-agent/reference/skill_authoring.md +165 -0
- package/content/small-business/skills/small-business-build-connector/SKILL.md +102 -0
- package/content/small-business/skills/small-business-build-connector/reference/discovery.md +120 -0
- package/content/small-business/skills/small-business-build-connector/reference/gotchas.md +237 -0
- package/content/small-business/skills/small-business-build-connector/reference/paths.md +106 -0
- package/content/small-business/skills/small-business-build-connector/reference/use-zapier.md +128 -0
- package/content/small-business/skills/small-business-business-pulse/SKILL.md +181 -0
- package/content/small-business/skills/small-business-business-pulse/reference/data_sources.md +173 -0
- package/content/small-business/skills/small-business-business-pulse/reference/gotchas.md +103 -0
- package/content/small-business/skills/small-business-business-pulse/reference/output_template.md +109 -0
- package/content/small-business/skills/small-business-business-pulse/reference/thresholds.md +71 -0
- package/content/small-business/skills/small-business-business-pulse/reference/v2_sources.md +63 -0
- package/content/small-business/skills/small-business-call-list/SKILL.md +82 -0
- package/content/small-business/skills/small-business-canva-creator/SKILL.md +448 -0
- package/content/small-business/skills/small-business-canva-creator/reference/canva-api.md +208 -0
- package/content/small-business/skills/small-business-canva-creator/reference/examples/boutique-brief-campaign.md +181 -0
- package/content/small-business/skills/small-business-canva-creator/reference/gotchas.md +380 -0
- package/content/small-business/skills/small-business-canva-creator/reference/hubspot-staging.md +137 -0
- package/content/small-business/skills/small-business-cash-flow-snapshot/SKILL.md +251 -0
- package/content/small-business/skills/small-business-cash-flow-snapshot/reference/examples/worked-example.md +92 -0
- package/content/small-business/skills/small-business-cash-flow-snapshot/reference/gotchas.md +62 -0
- package/content/small-business/skills/small-business-cash-flow-snapshot/reference/v2_sources.md +84 -0
- package/content/small-business/skills/small-business-close-month/SKILL.md +86 -0
- package/content/small-business/skills/small-business-content-strategy/SKILL.md +152 -0
- package/content/small-business/skills/small-business-content-strategy/reference/examples/retail-boutique-example.md +71 -0
- package/content/small-business/skills/small-business-content-strategy/reference/gotchas.md +104 -0
- package/content/small-business/skills/small-business-content-strategy/reference/v2_sources.md +40 -0
- package/content/small-business/skills/small-business-contract-review/SKILL.md +158 -0
- package/content/small-business/skills/small-business-contract-review/reference/docusign-fetch.md +32 -0
- package/content/small-business/skills/small-business-contract-review/reference/examples/flagged-summary-saas.md +97 -0
- package/content/small-business/skills/small-business-contract-review/reference/gmail-fetch.md +30 -0
- package/content/small-business/skills/small-business-contract-review/reference/gotchas.md +105 -0
- package/content/small-business/skills/small-business-contract-review/reference/m365-fetch.md +60 -0
- package/content/small-business/skills/small-business-crm-autopilot/SKILL.md +162 -0
- package/content/small-business/skills/small-business-crm-autopilot/reference/cleanup-checklist.md +82 -0
- package/content/small-business/skills/small-business-crm-autopilot/reference/examples/cleanup-deal.md +83 -0
- package/content/small-business/skills/small-business-crm-autopilot/reference/examples/log-call-happy-path.md +68 -0
- package/content/small-business/skills/small-business-crm-autopilot/reference/examples/log-email-happy-path.md +50 -0
- package/content/small-business/skills/small-business-crm-autopilot/reference/gotchas.md +110 -0
- package/content/small-business/skills/small-business-crm-autopilot/reference/hubspot-fields.md +62 -0
- package/content/small-business/skills/small-business-crm-autopilot/reference/lightweight_crm.md +125 -0
- package/content/small-business/skills/small-business-crm-autopilot/reference/salesforce-fields.md +122 -0
- package/content/small-business/skills/small-business-crm-autopilot/reference/standing_mode.md +144 -0
- package/content/small-business/skills/small-business-grant-rfp-writer/SKILL.md +162 -0
- package/content/small-business/skills/small-business-grant-rfp-writer/reference/drafting.md +129 -0
- package/content/small-business/skills/small-business-grant-rfp-writer/reference/go_no_go.md +125 -0
- package/content/small-business/skills/small-business-grant-rfp-writer/reference/gotchas.md +180 -0
- package/content/small-business/skills/small-business-grant-rfp-writer/reference/opportunity_sources.md +90 -0
- package/content/small-business/skills/small-business-grant-rfp-writer/reference/org_profile.md +81 -0
- package/content/small-business/skills/small-business-grow-pipeline/SKILL.md +92 -0
- package/content/small-business/skills/small-business-growth-pulse/SKILL.md +143 -0
- package/content/small-business/skills/small-business-growth-pulse/reference/data_sources.md +113 -0
- package/content/small-business/skills/small-business-growth-pulse/reference/gotchas.md +175 -0
- package/content/small-business/skills/small-business-growth-pulse/reference/output_template.md +122 -0
- package/content/small-business/skills/small-business-growth-pulse/reference/thresholds.md +110 -0
- package/content/small-business/skills/small-business-hiring-screener/SKILL.md +137 -0
- package/content/small-business/skills/small-business-hiring-screener/reference/candidate_comms.md +132 -0
- package/content/small-business/skills/small-business-hiring-screener/reference/fair_screening.md +103 -0
- package/content/small-business/skills/small-business-hiring-screener/reference/gotchas.md +183 -0
- package/content/small-business/skills/small-business-hiring-screener/reference/onboarding.md +82 -0
- package/content/small-business/skills/small-business-hiring-screener/reference/rubric.md +122 -0
- package/content/small-business/skills/small-business-inbox-manager/SKILL.md +130 -0
- package/content/small-business/skills/small-business-inbox-manager/reference/digest_format.md +110 -0
- package/content/small-business/skills/small-business-inbox-manager/reference/gotchas.md +220 -0
- package/content/small-business/skills/small-business-inbox-manager/reference/handoffs.md +77 -0
- package/content/small-business/skills/small-business-inbox-manager/reference/reply_drafting.md +116 -0
- package/content/small-business/skills/small-business-inbox-manager/reference/triage_rules.md +72 -0
- package/content/small-business/skills/small-business-inventory-planner/SKILL.md +126 -0
- package/content/small-business/skills/small-business-inventory-planner/reference/data_sources.md +94 -0
- package/content/small-business/skills/small-business-inventory-planner/reference/gotchas.md +153 -0
- package/content/small-business/skills/small-business-inventory-planner/reference/po_drafting.md +92 -0
- package/content/small-business/skills/small-business-inventory-planner/reference/seasonality.md +112 -0
- package/content/small-business/skills/small-business-inventory-planner/reference/velocity_and_reorder.md +154 -0
- package/content/small-business/skills/small-business-invoice-chase/SKILL.md +131 -0
- package/content/small-business/skills/small-business-invoice-chase/reference/examples/firm-reminder.md +28 -0
- package/content/small-business/skills/small-business-invoice-chase/reference/examples/gentle-reminder.md +27 -0
- package/content/small-business/skills/small-business-invoice-chase/reference/gotchas.md +75 -0
- package/content/small-business/skills/small-business-invoice-chase/reference/tone-matching.md +44 -0
- package/content/small-business/skills/small-business-invoice-chase/reference/v2_sources.md +78 -0
- package/content/small-business/skills/small-business-job-post-builder/SKILL.md +204 -0
- package/content/small-business/skills/small-business-job-post-builder/reference/docusign-routing.md +63 -0
- package/content/small-business/skills/small-business-job-post-builder/reference/examples/worked-example.md +110 -0
- package/content/small-business/skills/small-business-job-post-builder/reference/existing-document-merge.md +58 -0
- package/content/small-business/skills/small-business-job-post-builder/reference/gotchas.md +68 -0
- package/content/small-business/skills/small-business-job-post-builder/reference/interview-guide-structure.md +93 -0
- package/content/small-business/skills/small-business-job-post-builder/reference/job-post-structure.md +62 -0
- package/content/small-business/skills/small-business-job-post-builder/reference/offer-letter-template.md +145 -0
- package/content/small-business/skills/small-business-job-post-builder/reference/role-intake.md +73 -0
- package/content/small-business/skills/small-business-lead-finder/SKILL.md +119 -0
- package/content/small-business/skills/small-business-lead-finder/reference/gotchas.md +152 -0
- package/content/small-business/skills/small-business-lead-finder/reference/icp_method.md +97 -0
- package/content/small-business/skills/small-business-lead-finder/reference/output_template.md +124 -0
- package/content/small-business/skills/small-business-lead-finder/reference/scoring.md +92 -0
- package/content/small-business/skills/small-business-lead-finder/reference/sourcing.md +78 -0
- package/content/small-business/skills/small-business-lead-triage/SKILL.md +81 -0
- package/content/small-business/skills/small-business-lead-triage/reference/examples/happy-path-triage.md +68 -0
- package/content/small-business/skills/small-business-lead-triage/reference/gotchas.md +76 -0
- package/content/small-business/skills/small-business-lead-triage/reference/hubspot-scoring.md +169 -0
- package/content/small-business/skills/small-business-marketing-monday/SKILL.md +108 -0
- package/content/small-business/skills/small-business-monday-brief/SKILL.md +97 -0
- package/content/small-business/skills/small-business-month-end-prep/SKILL.md +331 -0
- package/content/small-business/skills/small-business-month-end-prep/reference/close-packet-format.md +127 -0
- package/content/small-business/skills/small-business-month-end-prep/reference/examples/pl-narrative.md +52 -0
- package/content/small-business/skills/small-business-month-end-prep/reference/gotchas.md +113 -0
- package/content/small-business/skills/small-business-month-end-prep/reference/paypal-settlements.md +110 -0
- package/content/small-business/skills/small-business-month-end-prep/reference/quickbooks-reconcile.md +71 -0
- package/content/small-business/skills/small-business-month-end-prep/reference/v2_sources.md +125 -0
- package/content/small-business/skills/small-business-month-end-prep/reference/xero-reconcile.md +175 -0
- package/content/small-business/skills/small-business-month-end-prep/reference/zoho-books-reconcile.md +168 -0
- package/content/small-business/skills/small-business-outreach-composer/SKILL.md +144 -0
- package/content/small-business/skills/small-business-outreach-composer/reference/gotchas.md +213 -0
- package/content/small-business/skills/small-business-outreach-composer/reference/output_template.md +147 -0
- package/content/small-business/skills/small-business-outreach-composer/reference/sequence_patterns.md +99 -0
- package/content/small-business/skills/small-business-outreach-composer/reference/slop_test.md +164 -0
- package/content/small-business/skills/small-business-pay-the-bills/SKILL.md +101 -0
- package/content/small-business/skills/small-business-payroll-prep/SKILL.md +139 -0
- package/content/small-business/skills/small-business-payroll-prep/reference/anomaly_rules.md +99 -0
- package/content/small-business/skills/small-business-payroll-prep/reference/books_sync.md +72 -0
- package/content/small-business/skills/small-business-payroll-prep/reference/gotchas.md +153 -0
- package/content/small-business/skills/small-business-payroll-prep/reference/run_sheet_format.md +90 -0
- package/content/small-business/skills/small-business-payroll-prep/reference/timesheet_intake.md +118 -0
- package/content/small-business/skills/small-business-plan-payroll/SKILL.md +88 -0
- package/content/small-business/skills/small-business-proposal-builder/SKILL.md +168 -0
- package/content/small-business/skills/small-business-proposal-builder/reference/discovery_extraction.md +138 -0
- package/content/small-business/skills/small-business-proposal-builder/reference/gotchas.md +184 -0
- package/content/small-business/skills/small-business-proposal-builder/reference/output_template.md +128 -0
- package/content/small-business/skills/small-business-proposal-builder/reference/pricing_method.md +125 -0
- package/content/small-business/skills/small-business-proposal-builder/reference/proposal_structure.md +120 -0
- package/content/small-business/skills/small-business-reactivate/SKILL.md +109 -0
- package/content/small-business/skills/small-business-report-builder/SKILL.md +142 -0
- package/content/small-business/skills/small-business-report-builder/reference/data_sources.md +168 -0
- package/content/small-business/skills/small-business-report-builder/reference/gotchas.md +155 -0
- package/content/small-business/skills/small-business-report-builder/reference/output_template.md +109 -0
- package/content/small-business/skills/small-business-report-builder/reference/report_spec.md +109 -0
- package/content/small-business/skills/small-business-report-builder/reference/saved_reports.md +50 -0
- package/content/small-business/skills/small-business-report-pack/SKILL.md +83 -0
- package/content/small-business/skills/small-business-restock/SKILL.md +88 -0
- package/content/small-business/skills/small-business-review-reputation/SKILL.md +130 -0
- package/content/small-business/skills/small-business-review-reputation/reference/churn-signals.md +110 -0
- package/content/small-business/skills/small-business-review-reputation/reference/examples/example-report.md +150 -0
- package/content/small-business/skills/small-business-review-reputation/reference/gotchas.md +164 -0
- package/content/small-business/skills/small-business-review-reputation/reference/response-patterns.md +123 -0
- package/content/small-business/skills/small-business-review-reputation/reference/sources.md +116 -0
- package/content/small-business/skills/small-business-seo-ai-visibility/SKILL.md +143 -0
- package/content/small-business/skills/small-business-seo-ai-visibility/reference/ai_visibility.md +173 -0
- package/content/small-business/skills/small-business-seo-ai-visibility/reference/audit_checklist.md +134 -0
- package/content/small-business/skills/small-business-seo-ai-visibility/reference/catalog_refresh.md +126 -0
- package/content/small-business/skills/small-business-seo-ai-visibility/reference/content_rewrite.md +113 -0
- package/content/small-business/skills/small-business-seo-ai-visibility/reference/gotchas.md +211 -0
- package/content/small-business/skills/small-business-smb-onboard/SKILL.md +82 -0
- package/content/small-business/skills/small-business-smb-onboard/reference/examples/happy-path.md +190 -0
- package/content/small-business/skills/small-business-smb-onboard/reference/gotchas.md +111 -0
- package/content/small-business/skills/small-business-smb-onboard/reference/onboard-checklist.md +99 -0
- package/content/small-business/skills/small-business-smb-onboard/reference/website-research.md +82 -0
- package/content/small-business/skills/small-business-smb-router/SKILL.md +216 -0
- package/content/small-business/skills/small-business-smb-router/reference/connector-map.md +96 -0
- package/content/small-business/skills/small-business-social-content-engine/SKILL.md +162 -0
- package/content/small-business/skills/small-business-social-content-engine/reference/calendar.md +116 -0
- package/content/small-business/skills/small-business-social-content-engine/reference/canva-api.md +208 -0
- package/content/small-business/skills/small-business-social-content-engine/reference/examples/okonkwo-campaign.md +190 -0
- package/content/small-business/skills/small-business-social-content-engine/reference/gotchas.md +447 -0
- package/content/small-business/skills/small-business-social-content-engine/reference/publishing.md +166 -0
- package/content/small-business/skills/small-business-social-content-engine/reference/shopify-assets.md +77 -0
- package/content/small-business/skills/small-business-speed-to-lead/SKILL.md +172 -0
- package/content/small-business/skills/small-business-speed-to-lead/reference/approval.md +61 -0
- package/content/small-business/skills/small-business-speed-to-lead/reference/gotchas.md +167 -0
- package/content/small-business/skills/small-business-speed-to-lead/reference/qualification.md +153 -0
- package/content/small-business/skills/small-business-speed-to-lead/reference/response_patterns.md +184 -0
- package/content/small-business/skills/small-business-tax-prep/SKILL.md +85 -0
- package/content/small-business/skills/small-business-tax-season-organizer/SKILL.md +210 -0
- package/content/small-business/skills/small-business-tax-season-organizer/reference/calculation-assumptions.md +177 -0
- package/content/small-business/skills/small-business-tax-season-organizer/reference/connector-queries.md +267 -0
- package/content/small-business/skills/small-business-tax-season-organizer/reference/examples/quarterly-estimate.md +92 -0
- package/content/small-business/skills/small-business-tax-season-organizer/reference/examples/year-end-1099.md +102 -0
- package/content/small-business/skills/small-business-tax-season-organizer/reference/gotchas.md +104 -0
- package/content/small-business/skills/small-business-tax-season-organizer/reference/output-formats.md +68 -0
- package/content/small-business/skills/small-business-ticket-deflector/SKILL.md +164 -0
- package/content/small-business/skills/small-business-ticket-deflector/reference/examples/deny-refund-request.md +98 -0
- package/content/small-business/skills/small-business-ticket-deflector/reference/examples/respond-refund-request.md +77 -0
- package/content/small-business/skills/small-business-ticket-deflector/reference/gotchas.md +57 -0
- package/index.ts +84 -0
- package/package.json +30 -3
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
# Example: Generated Skill
|
|
2
|
+
|
|
3
|
+
This is an example of what a generated skill looks like after the bootstrap process. This example is for a fictional e-commerce company called "ShopCo" using Snowflake.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Example SKILL.md
|
|
8
|
+
|
|
9
|
+
```markdown
|
|
10
|
+
---
|
|
11
|
+
name: shopco-data-analyst
|
|
12
|
+
description: "ShopCo data analysis skill for Snowflake. Provides context for querying e-commerce data including customer, order, and product analytics. Use when analyzing ShopCo data for: (1) Revenue and order metrics, (2) Customer behavior and retention, (3) Product performance, or any data questions requiring ShopCo-specific context."
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# ShopCo Data Analysis
|
|
16
|
+
|
|
17
|
+
## SQL Dialect: Snowflake
|
|
18
|
+
|
|
19
|
+
- **Table references**: `SHOPCO_DW.SCHEMA.TABLE` or with quotes for case-sensitive: `"Column_Name"`
|
|
20
|
+
- **Safe division**: `DIV0(a, b)` returns 0, `DIV0NULL(a, b)` returns NULL
|
|
21
|
+
- **Date functions**:
|
|
22
|
+
- `DATE_TRUNC('MONTH', date_col)`
|
|
23
|
+
- `DATEADD(DAY, -1, date_col)`
|
|
24
|
+
- `DATEDIFF(DAY, start_date, end_date)`
|
|
25
|
+
- **Column exclusion**: `SELECT * EXCLUDE (column_to_exclude)`
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## Entity Disambiguation
|
|
30
|
+
|
|
31
|
+
**"Customer" can mean:**
|
|
32
|
+
- **User**: A login account that can browse and save items (CORE.DIM_USERS: user_id)
|
|
33
|
+
- **Customer**: A user who has made at least one purchase (CORE.DIM_CUSTOMERS: customer_id)
|
|
34
|
+
- **Account**: A billing entity, can have multiple users in B2B (CORE.DIM_ACCOUNTS: account_id)
|
|
35
|
+
|
|
36
|
+
**Relationships:**
|
|
37
|
+
- User → Customer: 1:1 (customer_id = user_id for purchasers)
|
|
38
|
+
- Account → User: 1:many (join on account_id)
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## Business Terminology
|
|
43
|
+
|
|
44
|
+
| Term | Definition | Notes |
|
|
45
|
+
|------|------------|-------|
|
|
46
|
+
| GMV | Gross Merchandise Value - total order value before returns/discounts | Use for top-line reporting |
|
|
47
|
+
| NMV | Net Merchandise Value - GMV minus returns and discounts | Use for actual revenue |
|
|
48
|
+
| AOV | Average Order Value - NMV / order count | Exclude $0 orders |
|
|
49
|
+
| LTV | Lifetime Value - total NMV per customer since first order | Rolling calc, updates daily |
|
|
50
|
+
| CAC | Customer Acquisition Cost - marketing spend / new customers | By cohort month |
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## Standard Filters
|
|
55
|
+
|
|
56
|
+
Always apply these filters unless explicitly told otherwise:
|
|
57
|
+
|
|
58
|
+
```sql
|
|
59
|
+
-- Exclude test and internal orders
|
|
60
|
+
WHERE order_status != 'TEST'
|
|
61
|
+
AND customer_type != 'INTERNAL'
|
|
62
|
+
AND is_employee_order = FALSE
|
|
63
|
+
|
|
64
|
+
-- Exclude cancelled orders for revenue metrics
|
|
65
|
+
AND order_status NOT IN ('CANCELLED', 'FRAUDULENT')
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## Key Metrics
|
|
71
|
+
|
|
72
|
+
### Gross Merchandise Value (GMV)
|
|
73
|
+
- **Definition**: Total value of all orders placed
|
|
74
|
+
- **Formula**: `SUM(order_total_gross)`
|
|
75
|
+
- **Source**: `CORE.FCT_ORDERS.order_total_gross`
|
|
76
|
+
- **Time grain**: Daily, aggregated to weekly/monthly
|
|
77
|
+
- **Caveats**: Includes orders that may later be cancelled or returned
|
|
78
|
+
|
|
79
|
+
### Net Revenue
|
|
80
|
+
- **Definition**: Actual revenue after returns and discounts
|
|
81
|
+
- **Formula**: `SUM(order_total_gross - return_amount - discount_amount)`
|
|
82
|
+
- **Source**: `CORE.FCT_ORDERS`
|
|
83
|
+
- **Caveats**: Returns can occur up to 90 days post-order; use settled_revenue for finalized numbers
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## Knowledge Base Navigation
|
|
88
|
+
|
|
89
|
+
| Domain | Reference File | Use For |
|
|
90
|
+
|--------|----------------|---------|
|
|
91
|
+
| Orders | `references/orders.md` | Order tables, GMV/NMV calculations |
|
|
92
|
+
| Customers | `references/customers.md` | User/customer entities, LTV, cohorts |
|
|
93
|
+
| Products | `references/products.md` | Catalog, inventory, categories |
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## Common Query Patterns
|
|
98
|
+
|
|
99
|
+
### Daily GMV by Channel
|
|
100
|
+
```sql
|
|
101
|
+
SELECT
|
|
102
|
+
DATE_TRUNC('DAY', order_timestamp) AS order_date,
|
|
103
|
+
channel,
|
|
104
|
+
SUM(order_total_gross) AS gmv,
|
|
105
|
+
COUNT(DISTINCT order_id) AS order_count
|
|
106
|
+
FROM SHOPCO_DW.CORE.FCT_ORDERS
|
|
107
|
+
WHERE order_status NOT IN ('TEST', 'CANCELLED', 'FRAUDULENT')
|
|
108
|
+
AND order_timestamp >= DATEADD(DAY, -30, CURRENT_DATE())
|
|
109
|
+
GROUP BY 1, 2
|
|
110
|
+
ORDER BY 1 DESC, 3 DESC
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### Customer Cohort Retention
|
|
114
|
+
```sql
|
|
115
|
+
WITH cohorts AS (
|
|
116
|
+
SELECT
|
|
117
|
+
customer_id,
|
|
118
|
+
DATE_TRUNC('MONTH', first_order_date) AS cohort_month
|
|
119
|
+
FROM SHOPCO_DW.CORE.DIM_CUSTOMERS
|
|
120
|
+
)
|
|
121
|
+
SELECT
|
|
122
|
+
c.cohort_month,
|
|
123
|
+
DATEDIFF(MONTH, c.cohort_month, DATE_TRUNC('MONTH', o.order_timestamp)) AS months_since_first,
|
|
124
|
+
COUNT(DISTINCT c.customer_id) AS active_customers
|
|
125
|
+
FROM cohorts c
|
|
126
|
+
JOIN SHOPCO_DW.CORE.FCT_ORDERS o ON c.customer_id = o.customer_id
|
|
127
|
+
WHERE o.order_status NOT IN ('TEST', 'CANCELLED')
|
|
128
|
+
GROUP BY 1, 2
|
|
129
|
+
ORDER BY 1, 2
|
|
130
|
+
```
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
---
|
|
134
|
+
|
|
135
|
+
## Example references/orders.md
|
|
136
|
+
|
|
137
|
+
```markdown
|
|
138
|
+
# Orders Tables
|
|
139
|
+
|
|
140
|
+
Order and transaction data for ShopCo.
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
## Key Tables
|
|
145
|
+
|
|
146
|
+
### FCT_ORDERS
|
|
147
|
+
**Location**: `SHOPCO_DW.CORE.FCT_ORDERS`
|
|
148
|
+
**Description**: Fact table of all orders. One row per order.
|
|
149
|
+
**Primary Key**: `order_id`
|
|
150
|
+
**Update Frequency**: Hourly (15 min lag)
|
|
151
|
+
**Partitioned By**: `order_date`
|
|
152
|
+
|
|
153
|
+
| Column | Type | Description | Notes |
|
|
154
|
+
|--------|------|-------------|-------|
|
|
155
|
+
| **order_id** | VARCHAR | Unique order identifier | |
|
|
156
|
+
| **customer_id** | VARCHAR | FK to DIM_CUSTOMERS | NULL for guest checkout |
|
|
157
|
+
| **order_timestamp** | TIMESTAMP_NTZ | When order was placed | UTC |
|
|
158
|
+
| **order_date** | DATE | Date portion of order_timestamp | Partition column |
|
|
159
|
+
| **order_status** | VARCHAR | Current status | PENDING, SHIPPED, DELIVERED, CANCELLED, RETURNED |
|
|
160
|
+
| **channel** | VARCHAR | Acquisition channel | WEB, APP, MARKETPLACE |
|
|
161
|
+
| **order_total_gross** | DECIMAL(12,2) | Pre-discount total | |
|
|
162
|
+
| **discount_amount** | DECIMAL(12,2) | Total discounts applied | |
|
|
163
|
+
| **return_amount** | DECIMAL(12,2) | Value of returned items | Updates async |
|
|
164
|
+
|
|
165
|
+
**Relationships**:
|
|
166
|
+
- Joins to `DIM_CUSTOMERS` on `customer_id`
|
|
167
|
+
- Parent of `FCT_ORDER_ITEMS` via `order_id`
|
|
168
|
+
|
|
169
|
+
---
|
|
170
|
+
|
|
171
|
+
## Sample Queries
|
|
172
|
+
|
|
173
|
+
### Orders with Returns Rate
|
|
174
|
+
```sql
|
|
175
|
+
SELECT
|
|
176
|
+
DATE_TRUNC('WEEK', order_date) AS week,
|
|
177
|
+
COUNT(*) AS total_orders,
|
|
178
|
+
SUM(CASE WHEN return_amount > 0 THEN 1 ELSE 0 END) AS orders_with_returns,
|
|
179
|
+
DIV0(SUM(CASE WHEN return_amount > 0 THEN 1 ELSE 0 END), COUNT(*)) AS return_rate
|
|
180
|
+
FROM SHOPCO_DW.CORE.FCT_ORDERS
|
|
181
|
+
WHERE order_status NOT IN ('TEST', 'CANCELLED')
|
|
182
|
+
AND order_date >= DATEADD(MONTH, -3, CURRENT_DATE())
|
|
183
|
+
GROUP BY 1
|
|
184
|
+
ORDER BY 1
|
|
185
|
+
```
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
---
|
|
189
|
+
|
|
190
|
+
This example demonstrates:
|
|
191
|
+
- Complete frontmatter with triggering description
|
|
192
|
+
- Dialect-specific SQL notes
|
|
193
|
+
- Clear entity disambiguation
|
|
194
|
+
- Terminology glossary
|
|
195
|
+
- Standard filters as copy-paste SQL
|
|
196
|
+
- Metric definitions with formulas
|
|
197
|
+
- Navigation to reference files
|
|
198
|
+
- Real, runnable query examples
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
# Generated Skill Template
|
|
2
|
+
|
|
3
|
+
Use this template when generating a new data analysis skill. Replace all `[PLACEHOLDER]` values.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
```markdown
|
|
8
|
+
---
|
|
9
|
+
name: [company]-data-analyst
|
|
10
|
+
description: "[COMPANY] data analysis skill. Provides context for querying [WAREHOUSE_TYPE] including entity definitions, metric calculations, and common query patterns. Use when analyzing [COMPANY] data for: (1) [PRIMARY_USE_CASE_1], (2) [PRIMARY_USE_CASE_2], (3) [PRIMARY_USE_CASE_3], or any data questions requiring [COMPANY]-specific context."
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# [COMPANY] Data Analysis
|
|
14
|
+
|
|
15
|
+
## SQL Dialect: [WAREHOUSE_TYPE]
|
|
16
|
+
|
|
17
|
+
[INSERT APPROPRIATE DIALECT SECTION FROM sql-dialects.md]
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## Entity Disambiguation
|
|
22
|
+
|
|
23
|
+
When users mention these terms, clarify which entity they mean:
|
|
24
|
+
|
|
25
|
+
[EXAMPLE FORMAT - customize based on discovery:]
|
|
26
|
+
|
|
27
|
+
**"User" can mean:**
|
|
28
|
+
- **Account**: An individual login/profile ([PRIMARY_TABLE]: [ID_FIELD])
|
|
29
|
+
- **Organization**: A billing entity that can have multiple accounts ([ORG_TABLE]: [ORG_ID])
|
|
30
|
+
- **[OTHER_TYPE]**: [DEFINITION] ([TABLE]: [ID])
|
|
31
|
+
|
|
32
|
+
**Relationships:**
|
|
33
|
+
- [ENTITY_1] → [ENTITY_2]: [RELATIONSHIP_TYPE] (join on [JOIN_KEY])
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Business Terminology
|
|
38
|
+
|
|
39
|
+
| Term | Definition | Notes |
|
|
40
|
+
|------|------------|-------|
|
|
41
|
+
| [TERM_1] | [DEFINITION] | [CONTEXT/GOTCHA] |
|
|
42
|
+
| [TERM_2] | [DEFINITION] | [CONTEXT/GOTCHA] |
|
|
43
|
+
| [ACRONYM] | [FULL_NAME] - [EXPLANATION] | |
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## Standard Filters
|
|
48
|
+
|
|
49
|
+
Always apply these filters unless explicitly told otherwise:
|
|
50
|
+
|
|
51
|
+
```sql
|
|
52
|
+
-- Exclude test/internal data
|
|
53
|
+
WHERE [TEST_FLAG_COLUMN] = FALSE
|
|
54
|
+
AND [INTERNAL_FLAG_COLUMN] = FALSE
|
|
55
|
+
|
|
56
|
+
-- Exclude invalid/fraud
|
|
57
|
+
AND [STATUS_COLUMN] != '[EXCLUDED_STATUS]'
|
|
58
|
+
|
|
59
|
+
-- [OTHER STANDARD EXCLUSIONS]
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
**When to override:**
|
|
63
|
+
- [SCENARIO_1]: Include [NORMALLY_EXCLUDED] when [CONDITION]
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## Key Metrics
|
|
68
|
+
|
|
69
|
+
### [METRIC_1_NAME]
|
|
70
|
+
- **Definition**: [PLAIN_ENGLISH_EXPLANATION]
|
|
71
|
+
- **Formula**: `[EXACT_CALCULATION]`
|
|
72
|
+
- **Source**: `[TABLE_NAME].[COLUMN_NAME]`
|
|
73
|
+
- **Time grain**: [DAILY/WEEKLY/MONTHLY]
|
|
74
|
+
- **Caveats**: [EDGE_CASES_OR_GOTCHAS]
|
|
75
|
+
|
|
76
|
+
### [METRIC_2_NAME]
|
|
77
|
+
[REPEAT FORMAT]
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## Data Freshness
|
|
82
|
+
|
|
83
|
+
| Table | Update Frequency | Typical Lag |
|
|
84
|
+
|-------|------------------|-------------|
|
|
85
|
+
| [TABLE_1] | [FREQUENCY] | [LAG] |
|
|
86
|
+
| [TABLE_2] | [FREQUENCY] | [LAG] |
|
|
87
|
+
|
|
88
|
+
To check data freshness:
|
|
89
|
+
```sql
|
|
90
|
+
SELECT MAX([DATE_COLUMN]) as latest_data FROM [TABLE]
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## Knowledge Base Navigation
|
|
96
|
+
|
|
97
|
+
Use these reference files for detailed table documentation:
|
|
98
|
+
|
|
99
|
+
| Domain | Reference File | Use For |
|
|
100
|
+
|--------|----------------|---------|
|
|
101
|
+
| [DOMAIN_1] | `references/[domain1].md` | [BRIEF_DESCRIPTION] |
|
|
102
|
+
| [DOMAIN_2] | `references/[domain2].md` | [BRIEF_DESCRIPTION] |
|
|
103
|
+
| Entities | `references/entities.md` | Entity definitions and relationships |
|
|
104
|
+
| Metrics | `references/metrics.md` | KPI calculations and formulas |
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## Common Query Patterns
|
|
109
|
+
|
|
110
|
+
### [PATTERN_1_NAME]
|
|
111
|
+
```sql
|
|
112
|
+
[SAMPLE_QUERY]
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### [PATTERN_2_NAME]
|
|
116
|
+
```sql
|
|
117
|
+
[SAMPLE_QUERY]
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
122
|
+
## Troubleshooting
|
|
123
|
+
|
|
124
|
+
### Common Mistakes
|
|
125
|
+
- **[MISTAKE_1]**: [EXPLANATION] → [CORRECT_APPROACH]
|
|
126
|
+
- **[MISTAKE_2]**: [EXPLANATION] → [CORRECT_APPROACH]
|
|
127
|
+
|
|
128
|
+
### Access Issues
|
|
129
|
+
- If you encounter permission errors on `[TABLE]`: [WORKAROUND]
|
|
130
|
+
- For PII-restricted columns: [ALTERNATIVE_APPROACH]
|
|
131
|
+
|
|
132
|
+
### Performance Tips
|
|
133
|
+
- Filter by `[PARTITION_COLUMN]` first to reduce data scanned
|
|
134
|
+
- For large tables, use `LIMIT` during exploration
|
|
135
|
+
- Prefer `[AGGREGATED_TABLE]` over `[RAW_TABLE]` when possible
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
---
|
|
139
|
+
|
|
140
|
+
## Customization Notes
|
|
141
|
+
|
|
142
|
+
When generating a skill:
|
|
143
|
+
|
|
144
|
+
1. **Fill all placeholders** - Don't leave any `[PLACEHOLDER]` text
|
|
145
|
+
2. **Remove unused sections** - If they don't have dashboards, remove that section
|
|
146
|
+
3. **Add specificity** - Generic advice is less useful than specific column names and values
|
|
147
|
+
4. **Include real examples** - Sample queries should use actual table/column names
|
|
148
|
+
5. **Keep it scannable** - Use tables and code blocks liberally
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
# SQL Dialect Reference
|
|
2
|
+
|
|
3
|
+
Include the appropriate section in generated skills based on the user's data warehouse.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## BigQuery
|
|
8
|
+
|
|
9
|
+
```markdown
|
|
10
|
+
## SQL Dialect: BigQuery
|
|
11
|
+
|
|
12
|
+
- **Table references**: Use backticks: \`project.dataset.table\`
|
|
13
|
+
- **Safe division**: `SAFE_DIVIDE(a, b)` returns NULL instead of error
|
|
14
|
+
- **Date functions**:
|
|
15
|
+
- `DATE_TRUNC(date_col, MONTH)`
|
|
16
|
+
- `DATE_SUB(date_col, INTERVAL 1 DAY)`
|
|
17
|
+
- `DATE_DIFF(end_date, start_date, DAY)`
|
|
18
|
+
- **Column exclusion**: `SELECT * EXCEPT(column_to_exclude)`
|
|
19
|
+
- **Arrays**: `UNNEST(array_column)` to flatten
|
|
20
|
+
- **Structs**: Access with dot notation `struct_col.field_name`
|
|
21
|
+
- **Timestamps**: `TIMESTAMP_TRUNC()`, times in UTC by default
|
|
22
|
+
- **String matching**: `LIKE`, `REGEXP_CONTAINS(col, r'pattern')`
|
|
23
|
+
- **NULLs in aggregations**: Most functions ignore NULLs; use `IFNULL()` or `COALESCE()`
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Snowflake
|
|
29
|
+
|
|
30
|
+
```markdown
|
|
31
|
+
## SQL Dialect: Snowflake
|
|
32
|
+
|
|
33
|
+
- **Table references**: `DATABASE.SCHEMA.TABLE` or with quotes for case-sensitive: `"Column_Name"`
|
|
34
|
+
- **Safe division**: `DIV0(a, b)` returns 0, `DIV0NULL(a, b)` returns NULL
|
|
35
|
+
- **Date functions**:
|
|
36
|
+
- `DATE_TRUNC('MONTH', date_col)`
|
|
37
|
+
- `DATEADD(DAY, -1, date_col)`
|
|
38
|
+
- `DATEDIFF(DAY, start_date, end_date)`
|
|
39
|
+
- **Column exclusion**: `SELECT * EXCLUDE (column_to_exclude)`
|
|
40
|
+
- **Arrays**: `FLATTEN(array_column)` to flatten, access with `value`
|
|
41
|
+
- **Variants/JSON**: Access with colon notation `variant_col:field_name`
|
|
42
|
+
- **Timestamps**: `TIMESTAMP_NTZ` (no timezone), `TIMESTAMP_TZ` (with timezone)
|
|
43
|
+
- **String matching**: `LIKE`, `REGEXP_LIKE(col, 'pattern')`
|
|
44
|
+
- **Case sensitivity**: Identifiers are uppercase by default unless quoted
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## PostgreSQL / Redshift
|
|
50
|
+
|
|
51
|
+
```markdown
|
|
52
|
+
## SQL Dialect: PostgreSQL/Redshift
|
|
53
|
+
|
|
54
|
+
- **Table references**: `schema.table` (lowercase convention)
|
|
55
|
+
- **Safe division**: `NULLIF(b, 0)` pattern: `a / NULLIF(b, 0)`
|
|
56
|
+
- **Date functions**:
|
|
57
|
+
- `DATE_TRUNC('month', date_col)`
|
|
58
|
+
- `date_col - INTERVAL '1 day'`
|
|
59
|
+
- `DATE_PART('day', end_date - start_date)`
|
|
60
|
+
- **Column selection**: No EXCEPT; must list columns explicitly
|
|
61
|
+
- **Arrays**: `UNNEST(array_column)` (PostgreSQL), limited in Redshift
|
|
62
|
+
- **JSON**: `json_col->>'field_name'` for text, `json_col->'field_name'` for JSON
|
|
63
|
+
- **Timestamps**: `AT TIME ZONE 'UTC'` for timezone conversion
|
|
64
|
+
- **String matching**: `LIKE`, `col ~ 'pattern'` for regex
|
|
65
|
+
- **Boolean**: Native BOOLEAN type; use `TRUE`/`FALSE`
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## Databricks / Spark SQL
|
|
71
|
+
|
|
72
|
+
```markdown
|
|
73
|
+
## SQL Dialect: Databricks/Spark SQL
|
|
74
|
+
|
|
75
|
+
- **Table references**: `catalog.schema.table` (Unity Catalog) or `schema.table`
|
|
76
|
+
- **Safe division**: Use `NULLIF`: `a / NULLIF(b, 0)` or `TRY_DIVIDE(a, b)`
|
|
77
|
+
- **Date functions**:
|
|
78
|
+
- `DATE_TRUNC('MONTH', date_col)`
|
|
79
|
+
- `DATE_SUB(date_col, 1)`
|
|
80
|
+
- `DATEDIFF(end_date, start_date)`
|
|
81
|
+
- **Column exclusion**: `SELECT * EXCEPT (column_to_exclude)` (Databricks SQL)
|
|
82
|
+
- **Arrays**: `EXPLODE(array_column)` to flatten
|
|
83
|
+
- **Structs**: Access with dot notation `struct_col.field_name`
|
|
84
|
+
- **JSON**: `json_col:field_name` or `GET_JSON_OBJECT()`
|
|
85
|
+
- **String matching**: `LIKE`, `RLIKE` for regex
|
|
86
|
+
- **Delta features**: `DESCRIBE HISTORY`, time travel with `VERSION AS OF`
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## MySQL
|
|
92
|
+
|
|
93
|
+
```markdown
|
|
94
|
+
## SQL Dialect: MySQL
|
|
95
|
+
|
|
96
|
+
- **Table references**: \`database\`.\`table\` with backticks
|
|
97
|
+
- **Safe division**: Manual: `IF(b = 0, NULL, a / b)` or `a / NULLIF(b, 0)`
|
|
98
|
+
- **Date functions**:
|
|
99
|
+
- `DATE_FORMAT(date_col, '%Y-%m-01')` for truncation
|
|
100
|
+
- `DATE_SUB(date_col, INTERVAL 1 DAY)`
|
|
101
|
+
- `DATEDIFF(end_date, start_date)`
|
|
102
|
+
- **Column selection**: No EXCEPT; must list columns explicitly
|
|
103
|
+
- **Arrays**: Limited native support; often stored as JSON
|
|
104
|
+
- **JSON**: `JSON_EXTRACT(col, '$.field')` or `col->>'$.field'`
|
|
105
|
+
- **Timestamps**: `CONVERT_TZ()` for timezone conversion
|
|
106
|
+
- **String matching**: `LIKE`, `REGEXP` for regex
|
|
107
|
+
- **Case sensitivity**: Table names case-sensitive on Linux, not on Windows
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
## Common Patterns Across Dialects
|
|
113
|
+
|
|
114
|
+
| Operation | BigQuery | Snowflake | PostgreSQL | Databricks |
|
|
115
|
+
|-----------|----------|-----------|------------|------------|
|
|
116
|
+
| Current date | `CURRENT_DATE()` | `CURRENT_DATE()` | `CURRENT_DATE` | `CURRENT_DATE()` |
|
|
117
|
+
| Current timestamp | `CURRENT_TIMESTAMP()` | `CURRENT_TIMESTAMP()` | `NOW()` | `CURRENT_TIMESTAMP()` |
|
|
118
|
+
| String concat | `CONCAT()` or `\|\|` | `CONCAT()` or `\|\|` | `CONCAT()` or `\|\|` | `CONCAT()` or `\|\|` |
|
|
119
|
+
| Coalesce | `COALESCE()` | `COALESCE()` | `COALESCE()` | `COALESCE()` |
|
|
120
|
+
| Case when | `CASE WHEN` | `CASE WHEN` | `CASE WHEN` | `CASE WHEN` |
|
|
121
|
+
| Count distinct | `COUNT(DISTINCT x)` | `COUNT(DISTINCT x)` | `COUNT(DISTINCT x)` | `COUNT(DISTINCT x)` |
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""
|
|
3
|
+
Package a generated data analysis skill into a distributable .skill file (zip format).
|
|
4
|
+
|
|
5
|
+
Usage:
|
|
6
|
+
python package_data_skill.py <path/to/skill-folder> [output-directory]
|
|
7
|
+
|
|
8
|
+
Example:
|
|
9
|
+
python package_data_skill.py /home/claude/acme-data-analyst
|
|
10
|
+
python package_data_skill.py /home/claude/acme-data-analyst /tmp/outputs
|
|
11
|
+
"""
|
|
12
|
+
|
|
13
|
+
import sys
|
|
14
|
+
import zipfile
|
|
15
|
+
from pathlib import Path
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
def validate_skill(skill_path: Path) -> tuple[bool, str]:
|
|
19
|
+
"""Basic validation of skill structure."""
|
|
20
|
+
|
|
21
|
+
# Check SKILL.md exists
|
|
22
|
+
skill_md = skill_path / "SKILL.md"
|
|
23
|
+
if not skill_md.exists():
|
|
24
|
+
return False, "Missing SKILL.md"
|
|
25
|
+
|
|
26
|
+
# Check SKILL.md has frontmatter
|
|
27
|
+
content = skill_md.read_text()
|
|
28
|
+
if not content.startswith("---"):
|
|
29
|
+
return False, "SKILL.md missing YAML frontmatter"
|
|
30
|
+
|
|
31
|
+
# Check for required frontmatter fields
|
|
32
|
+
if "name:" not in content[:500]:
|
|
33
|
+
return False, "SKILL.md missing 'name' in frontmatter"
|
|
34
|
+
if "description:" not in content[:1000]:
|
|
35
|
+
return False, "SKILL.md missing 'description' in frontmatter"
|
|
36
|
+
|
|
37
|
+
# Check for placeholder text that wasn't filled in
|
|
38
|
+
if "[PLACEHOLDER]" in content or "[COMPANY]" in content:
|
|
39
|
+
return False, "SKILL.md contains unfilled placeholder text"
|
|
40
|
+
|
|
41
|
+
return True, "Validation passed"
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
def package_skill(skill_path: str, output_dir: str = None) -> Path | None:
|
|
45
|
+
"""
|
|
46
|
+
Package a skill folder into a .skill file.
|
|
47
|
+
|
|
48
|
+
Args:
|
|
49
|
+
skill_path: Path to the skill folder
|
|
50
|
+
output_dir: Optional output directory
|
|
51
|
+
|
|
52
|
+
Returns:
|
|
53
|
+
Path to the created .skill file, or None if error
|
|
54
|
+
"""
|
|
55
|
+
skill_path = Path(skill_path).resolve()
|
|
56
|
+
|
|
57
|
+
# Validate folder exists
|
|
58
|
+
if not skill_path.exists():
|
|
59
|
+
print(f"Error: Skill folder not found: {skill_path}")
|
|
60
|
+
return None
|
|
61
|
+
|
|
62
|
+
if not skill_path.is_dir():
|
|
63
|
+
print(f"Error: Path is not a directory: {skill_path}")
|
|
64
|
+
return None
|
|
65
|
+
|
|
66
|
+
# Run validation
|
|
67
|
+
print("Validating skill...")
|
|
68
|
+
valid, message = validate_skill(skill_path)
|
|
69
|
+
if not valid:
|
|
70
|
+
print(f"Validation failed: {message}")
|
|
71
|
+
return None
|
|
72
|
+
print(f"{message}\n")
|
|
73
|
+
|
|
74
|
+
# Determine output location
|
|
75
|
+
skill_name = skill_path.name
|
|
76
|
+
if output_dir:
|
|
77
|
+
output_path = Path(output_dir).resolve()
|
|
78
|
+
else:
|
|
79
|
+
output_path = Path.cwd()
|
|
80
|
+
|
|
81
|
+
output_path.mkdir(parents=True, exist_ok=True)
|
|
82
|
+
skill_filename = output_path / f"{skill_name}.zip"
|
|
83
|
+
|
|
84
|
+
# Create the zip file
|
|
85
|
+
try:
|
|
86
|
+
with zipfile.ZipFile(skill_filename, 'w', zipfile.ZIP_DEFLATED) as zipf:
|
|
87
|
+
for file_path in skill_path.rglob('*'):
|
|
88
|
+
if file_path.is_file():
|
|
89
|
+
# Skip hidden files and common junk
|
|
90
|
+
if any(part.startswith('.') for part in file_path.parts):
|
|
91
|
+
continue
|
|
92
|
+
if file_path.name in ['__pycache__', '.DS_Store', 'Thumbs.db']:
|
|
93
|
+
continue
|
|
94
|
+
|
|
95
|
+
# Calculate relative path within the zip
|
|
96
|
+
arcname = file_path.relative_to(skill_path.parent)
|
|
97
|
+
zipf.write(file_path, arcname)
|
|
98
|
+
print(f" Added: {arcname}")
|
|
99
|
+
|
|
100
|
+
print(f"\nSuccessfully packaged skill to: {skill_filename}")
|
|
101
|
+
return skill_filename
|
|
102
|
+
|
|
103
|
+
except Exception as e:
|
|
104
|
+
print(f"Error creating zip file: {e}")
|
|
105
|
+
return None
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
def main():
|
|
109
|
+
if len(sys.argv) < 2:
|
|
110
|
+
print(__doc__)
|
|
111
|
+
sys.exit(1)
|
|
112
|
+
|
|
113
|
+
skill_path = sys.argv[1]
|
|
114
|
+
output_dir = sys.argv[2] if len(sys.argv) > 2 else None
|
|
115
|
+
|
|
116
|
+
print(f"Packaging skill: {skill_path}")
|
|
117
|
+
if output_dir:
|
|
118
|
+
print(f" Output directory: {output_dir}")
|
|
119
|
+
print()
|
|
120
|
+
|
|
121
|
+
result = package_skill(skill_path, output_dir)
|
|
122
|
+
sys.exit(0 if result else 1)
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
if __name__ == "__main__":
|
|
126
|
+
main()
|