@thanhvn14/csvibe 0.1.3 → 0.1.5
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/.github/agents/schemas/base-output.schema.json +88 -0
- package/.github/agents/schemas/brainstorm-output.schema.json +88 -0
- package/.github/agents/schemas/scout-output.schema.json +60 -0
- package/.github/agents/scripts/fetch-copilot-tools.js +245 -0
- package/.github/agents/scripts/lib/parse-agent-file.js +275 -0
- package/.github/agents/scripts/package-lock.json +78 -0
- package/.github/agents/scripts/package.json +22 -0
- package/.github/agents/scripts/schemas/agent-frontmatter.schema.json +83 -0
- package/.github/agents/scripts/validate-agent-all.js +157 -0
- package/.github/agents/scripts/validate-agent-frontmatter.js +96 -0
- package/.github/agents/scripts/validate-agent-handoffs.js +169 -0
- package/.github/agents/scripts/validate-agent-output.js +157 -0
- package/.github/agents/scripts/validate-agent-tools.js +278 -0
- package/.github/skills/.env.example +100 -0
- package/.github/skills/.install-state.json +23 -0
- package/.github/skills/README.md +149 -0
- package/.github/skills/ai-multimodal/.env.example +204 -0
- package/.github/skills/ai-multimodal/scripts/.coverage +0 -0
- package/.github/skills/ai-multimodal/scripts/check_setup.py +305 -0
- package/.github/skills/ai-multimodal/scripts/document_converter.py +395 -0
- package/.github/skills/ai-multimodal/scripts/gemini_batch_process.py +1184 -0
- package/.github/skills/ai-multimodal/scripts/media_optimizer.py +506 -0
- package/.github/skills/ai-multimodal/scripts/requirements.txt +26 -0
- package/.github/skills/better-auth/scripts/.coverage +0 -0
- package/.github/skills/better-auth/scripts/better_auth_init.py +521 -0
- package/.github/skills/better-auth/scripts/requirements.txt +15 -0
- package/.github/skills/chrome-devtools/scripts/README.md +272 -0
- package/.github/skills/chrome-devtools/scripts/__tests__/selector.test.js +210 -0
- package/.github/skills/chrome-devtools/scripts/aria-snapshot.js +362 -0
- package/.github/skills/chrome-devtools/scripts/click.js +83 -0
- package/.github/skills/chrome-devtools/scripts/console.js +79 -0
- package/.github/skills/chrome-devtools/scripts/evaluate.js +53 -0
- package/.github/skills/chrome-devtools/scripts/fill.js +76 -0
- package/.github/skills/chrome-devtools/scripts/inject-auth.js +229 -0
- package/.github/skills/chrome-devtools/scripts/install-deps.sh +181 -0
- package/.github/skills/chrome-devtools/scripts/install.sh +83 -0
- package/.github/skills/chrome-devtools/scripts/lib/browser.js +318 -0
- package/.github/skills/chrome-devtools/scripts/lib/selector.js +178 -0
- package/.github/skills/chrome-devtools/scripts/navigate.js +54 -0
- package/.github/skills/chrome-devtools/scripts/network.js +106 -0
- package/.github/skills/chrome-devtools/scripts/package-lock.json +1589 -0
- package/.github/skills/chrome-devtools/scripts/package.json +16 -0
- package/.github/skills/chrome-devtools/scripts/performance.js +149 -0
- package/.github/skills/chrome-devtools/scripts/screenshot.js +198 -0
- package/.github/skills/chrome-devtools/scripts/select-ref.js +131 -0
- package/.github/skills/chrome-devtools/scripts/snapshot.js +135 -0
- package/.github/skills/common/README.md +120 -0
- package/.github/skills/common/api_key_helper.py +411 -0
- package/.github/skills/common/api_key_rotator.py +248 -0
- package/.github/skills/databases/scripts/.coverage +0 -0
- package/.github/skills/databases/scripts/db_backup.py +502 -0
- package/.github/skills/databases/scripts/db_migrate.py +425 -0
- package/.github/skills/databases/scripts/db_performance_check.py +456 -0
- package/.github/skills/databases/scripts/requirements.txt +20 -0
- package/.github/skills/debugging/scripts/find-polluter.sh +63 -0
- package/.github/skills/devops/.env.example +76 -0
- package/.github/skills/devops/scripts/cloudflare_deploy.py +269 -0
- package/.github/skills/devops/scripts/docker_optimize.py +331 -0
- package/.github/skills/devops/scripts/requirements.txt +20 -0
- package/.github/skills/docs-seeker/.env.example +15 -0
- package/.github/skills/docs-seeker/package.json +25 -0
- package/.github/skills/docs-seeker/scripts/analyze-llms-txt.js +211 -0
- package/.github/skills/docs-seeker/scripts/detect-topic.js +172 -0
- package/.github/skills/docs-seeker/scripts/fetch-docs.js +213 -0
- package/.github/skills/docs-seeker/scripts/utils/env-loader.js +94 -0
- package/.github/skills/document-skills/docx/LICENSE.txt +30 -0
- package/.github/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
- package/.github/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
- package/.github/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
- package/.github/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
- package/.github/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
- package/.github/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
- package/.github/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
- package/.github/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
- package/.github/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
- package/.github/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
- package/.github/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
- package/.github/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
- package/.github/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
- package/.github/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
- package/.github/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
- package/.github/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
- package/.github/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
- package/.github/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
- package/.github/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
- package/.github/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
- package/.github/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
- package/.github/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
- package/.github/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
- package/.github/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
- package/.github/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
- package/.github/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
- package/.github/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
- package/.github/skills/document-skills/docx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
- package/.github/skills/document-skills/docx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
- package/.github/skills/document-skills/docx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
- package/.github/skills/document-skills/docx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
- package/.github/skills/document-skills/docx/ooxml/schemas/mce/mc.xsd +75 -0
- package/.github/skills/document-skills/docx/ooxml/schemas/microsoft/wml-2010.xsd +560 -0
- package/.github/skills/document-skills/docx/ooxml/schemas/microsoft/wml-2012.xsd +67 -0
- package/.github/skills/document-skills/docx/ooxml/schemas/microsoft/wml-2018.xsd +14 -0
- package/.github/skills/document-skills/docx/ooxml/schemas/microsoft/wml-cex-2018.xsd +20 -0
- package/.github/skills/document-skills/docx/ooxml/schemas/microsoft/wml-cid-2016.xsd +13 -0
- package/.github/skills/document-skills/docx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
- package/.github/skills/document-skills/docx/ooxml/schemas/microsoft/wml-symex-2015.xsd +8 -0
- package/.github/skills/document-skills/docx/ooxml/scripts/pack.py +159 -0
- package/.github/skills/document-skills/docx/ooxml/scripts/unpack.py +29 -0
- package/.github/skills/document-skills/docx/ooxml/scripts/validate.py +69 -0
- package/.github/skills/document-skills/docx/ooxml/scripts/validation/__init__.py +15 -0
- package/.github/skills/document-skills/docx/ooxml/scripts/validation/base.py +951 -0
- package/.github/skills/document-skills/docx/ooxml/scripts/validation/docx.py +274 -0
- package/.github/skills/document-skills/docx/ooxml/scripts/validation/pptx.py +315 -0
- package/.github/skills/document-skills/docx/ooxml/scripts/validation/redlining.py +279 -0
- package/.github/skills/document-skills/docx/scripts/__init__.py +1 -0
- package/.github/skills/document-skills/docx/scripts/document.py +1276 -0
- package/.github/skills/document-skills/docx/scripts/templates/comments.xml +3 -0
- package/.github/skills/document-skills/docx/scripts/templates/commentsExtended.xml +3 -0
- package/.github/skills/document-skills/docx/scripts/templates/commentsExtensible.xml +3 -0
- package/.github/skills/document-skills/docx/scripts/templates/commentsIds.xml +3 -0
- package/.github/skills/document-skills/docx/scripts/templates/people.xml +3 -0
- package/.github/skills/document-skills/docx/scripts/utilities.py +374 -0
- package/.github/skills/document-skills/pdf/LICENSE.txt +30 -0
- package/.github/skills/document-skills/pdf/scripts/check_bounding_boxes.py +70 -0
- package/.github/skills/document-skills/pdf/scripts/check_bounding_boxes_test.py +226 -0
- package/.github/skills/document-skills/pdf/scripts/check_fillable_fields.py +12 -0
- package/.github/skills/document-skills/pdf/scripts/convert_pdf_to_images.py +35 -0
- package/.github/skills/document-skills/pdf/scripts/create_validation_image.py +41 -0
- package/.github/skills/document-skills/pdf/scripts/extract_form_field_info.py +152 -0
- package/.github/skills/document-skills/pdf/scripts/fill_fillable_fields.py +114 -0
- package/.github/skills/document-skills/pdf/scripts/fill_pdf_form_with_annotations.py +108 -0
- package/.github/skills/document-skills/pptx/LICENSE.txt +30 -0
- package/.github/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
- package/.github/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
- package/.github/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
- package/.github/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
- package/.github/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
- package/.github/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
- package/.github/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
- package/.github/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
- package/.github/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
- package/.github/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
- package/.github/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
- package/.github/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
- package/.github/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
- package/.github/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
- package/.github/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
- package/.github/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
- package/.github/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
- package/.github/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
- package/.github/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
- package/.github/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
- package/.github/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
- package/.github/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
- package/.github/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
- package/.github/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
- package/.github/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
- package/.github/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
- package/.github/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
- package/.github/skills/document-skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
- package/.github/skills/document-skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
- package/.github/skills/document-skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
- package/.github/skills/document-skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
- package/.github/skills/document-skills/pptx/ooxml/schemas/mce/mc.xsd +75 -0
- package/.github/skills/document-skills/pptx/ooxml/schemas/microsoft/wml-2010.xsd +560 -0
- package/.github/skills/document-skills/pptx/ooxml/schemas/microsoft/wml-2012.xsd +67 -0
- package/.github/skills/document-skills/pptx/ooxml/schemas/microsoft/wml-2018.xsd +14 -0
- package/.github/skills/document-skills/pptx/ooxml/schemas/microsoft/wml-cex-2018.xsd +20 -0
- package/.github/skills/document-skills/pptx/ooxml/schemas/microsoft/wml-cid-2016.xsd +13 -0
- package/.github/skills/document-skills/pptx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
- package/.github/skills/document-skills/pptx/ooxml/schemas/microsoft/wml-symex-2015.xsd +8 -0
- package/.github/skills/document-skills/pptx/ooxml/scripts/pack.py +159 -0
- package/.github/skills/document-skills/pptx/ooxml/scripts/unpack.py +29 -0
- package/.github/skills/document-skills/pptx/ooxml/scripts/validate.py +69 -0
- package/.github/skills/document-skills/pptx/ooxml/scripts/validation/__init__.py +15 -0
- package/.github/skills/document-skills/pptx/ooxml/scripts/validation/base.py +951 -0
- package/.github/skills/document-skills/pptx/ooxml/scripts/validation/docx.py +274 -0
- package/.github/skills/document-skills/pptx/ooxml/scripts/validation/pptx.py +315 -0
- package/.github/skills/document-skills/pptx/ooxml/scripts/validation/redlining.py +279 -0
- package/.github/skills/document-skills/pptx/scripts/html2pptx.js +979 -0
- package/.github/skills/document-skills/pptx/scripts/inventory.py +1020 -0
- package/.github/skills/document-skills/pptx/scripts/rearrange.py +231 -0
- package/.github/skills/document-skills/pptx/scripts/replace.py +385 -0
- package/.github/skills/document-skills/pptx/scripts/thumbnail.py +450 -0
- package/.github/skills/document-skills/xlsx/LICENSE.txt +30 -0
- package/.github/skills/document-skills/xlsx/recalc.py +190 -0
- package/.github/skills/install.ps1 +1220 -0
- package/.github/skills/install.sh +1032 -0
- package/.github/skills/markdown-novel-viewer/assets/directory-browser.css +215 -0
- package/.github/skills/markdown-novel-viewer/assets/favicon.png +0 -0
- package/.github/skills/markdown-novel-viewer/assets/novel-theme.css +818 -0
- package/.github/skills/markdown-novel-viewer/assets/reader.js +262 -0
- package/.github/skills/markdown-novel-viewer/assets/template.html +80 -0
- package/.github/skills/markdown-novel-viewer/package-lock.json +146 -0
- package/.github/skills/markdown-novel-viewer/package.json +15 -0
- package/.github/skills/markdown-novel-viewer/scripts/lib/http-server.cjs +434 -0
- package/.github/skills/markdown-novel-viewer/scripts/lib/markdown-renderer.cjs +272 -0
- package/.github/skills/markdown-novel-viewer/scripts/lib/plan-navigator.cjs +509 -0
- package/.github/skills/markdown-novel-viewer/scripts/lib/port-finder.cjs +48 -0
- package/.github/skills/markdown-novel-viewer/scripts/lib/process-mgr.cjs +150 -0
- package/.github/skills/markdown-novel-viewer/scripts/server.cjs +411 -0
- package/.github/skills/mcp-builder/LICENSE.txt +202 -0
- package/.github/skills/mcp-builder/scripts/connections.py +151 -0
- package/.github/skills/mcp-builder/scripts/evaluation.py +373 -0
- package/.github/skills/mcp-builder/scripts/example_evaluation.xml +22 -0
- package/.github/skills/mcp-builder/scripts/requirements.txt +2 -0
- package/.github/skills/mcp-management/README.md +219 -0
- package/.github/skills/mcp-management/assets/tools.json +3146 -0
- package/.github/skills/mcp-management/package-lock.json +6 -0
- package/.github/skills/mcp-management/scripts/.env.example +10 -0
- package/.github/skills/mcp-management/scripts/cli.ts +195 -0
- package/.github/skills/mcp-management/scripts/dist/analyze-tools.js +70 -0
- package/.github/skills/mcp-management/scripts/dist/cli.js +160 -0
- package/.github/skills/mcp-management/scripts/dist/mcp-client.js +183 -0
- package/.github/skills/mcp-management/scripts/mcp-client.ts +230 -0
- package/.github/skills/mcp-management/scripts/package.json +20 -0
- package/.github/skills/media-processing/scripts/README.md +111 -0
- package/.github/skills/media-processing/scripts/batch-remove-background.sh +124 -0
- package/.github/skills/media-processing/scripts/batch_resize.py +342 -0
- package/.github/skills/media-processing/scripts/media_convert.py +311 -0
- package/.github/skills/media-processing/scripts/remove-background.sh +96 -0
- package/.github/skills/media-processing/scripts/remove-bg-node.js +158 -0
- package/.github/skills/media-processing/scripts/requirements.txt +24 -0
- package/.github/skills/media-processing/scripts/video_optimize.py +414 -0
- package/.github/skills/payment-integration/README.md +185 -0
- package/.github/skills/payment-integration/scripts/.env.example +20 -0
- package/.github/skills/payment-integration/scripts/checkout-helper.js +244 -0
- package/.github/skills/payment-integration/scripts/package.json +17 -0
- package/.github/skills/payment-integration/scripts/polar-webhook-verify.js +202 -0
- package/.github/skills/payment-integration/scripts/sepay-webhook-verify.js +193 -0
- package/.github/skills/payment-integration/scripts/test-scripts.js +237 -0
- package/.github/skills/plans-kanban/assets/dashboard-template.html +119 -0
- package/.github/skills/plans-kanban/assets/dashboard.css +1594 -0
- package/.github/skills/plans-kanban/assets/dashboard.js +596 -0
- package/.github/skills/plans-kanban/assets/favicon.png +0 -0
- package/.github/skills/plans-kanban/package-lock.json +123 -0
- package/.github/skills/plans-kanban/package.json +13 -0
- package/.github/skills/plans-kanban/scripts/lib/dashboard-renderer.cjs +884 -0
- package/.github/skills/plans-kanban/scripts/lib/http-server.cjs +310 -0
- package/.github/skills/plans-kanban/scripts/lib/plan-metadata-extractor.cjs +489 -0
- package/.github/skills/plans-kanban/scripts/lib/plan-parser.cjs +175 -0
- package/.github/skills/plans-kanban/scripts/lib/plan-scanner.cjs +272 -0
- package/.github/skills/plans-kanban/scripts/lib/port-finder.cjs +48 -0
- package/.github/skills/plans-kanban/scripts/lib/process-mgr.cjs +128 -0
- package/.github/skills/plans-kanban/scripts/server.cjs +260 -0
- package/.github/skills/repomix/scripts/.coverage +0 -0
- package/.github/skills/repomix/scripts/README.md +179 -0
- package/.github/skills/repomix/scripts/repomix_batch.py +455 -0
- package/.github/skills/repomix/scripts/repos.example.json +15 -0
- package/.github/skills/repomix/scripts/requirements.txt +15 -0
- package/.github/skills/scout-validation/scripts/lib/broad-pattern-detector.cjs +124 -0
- package/.github/skills/scout-validation/scripts/lib/path-checker.cjs +66 -0
- package/.github/skills/scout-validation/scripts/lib/schema-validator.cjs +45 -0
- package/.github/skills/scout-validation/scripts/package.json +11 -0
- package/.github/skills/scout-validation/scripts/validate-scout-output.cjs +219 -0
- package/.github/skills/scout-validation/test/broad-pattern-output.json +18 -0
- package/.github/skills/scout-validation/test/invalid-path-output.json +18 -0
- package/.github/skills/scout-validation/test/valid-scout-output.json +26 -0
- package/.github/skills/sequential-thinking/.env.example +8 -0
- package/.github/skills/sequential-thinking/README.md +183 -0
- package/.github/skills/sequential-thinking/package.json +31 -0
- package/.github/skills/sequential-thinking/scripts/format-thought.js +159 -0
- package/.github/skills/sequential-thinking/scripts/process-thought.js +236 -0
- package/.github/skills/shopify/README.md +66 -0
- package/.github/skills/shopify/scripts/.coverage +0 -0
- package/.github/skills/shopify/scripts/requirements.txt +19 -0
- package/.github/skills/shopify/scripts/shopify_init.py +423 -0
- package/.github/skills/skill-creator/LICENSE.txt +202 -0
- package/.github/skills/skill-creator/scripts/init_skill.py +303 -0
- package/.github/skills/skill-creator/scripts/package_skill.py +110 -0
- package/.github/skills/skill-creator/scripts/quick_validate.py +65 -0
- package/.github/skills/ui-styling/LICENSE.txt +202 -0
- package/.github/skills/ui-styling/canvas-fonts/ArsenalSC-OFL.txt +93 -0
- package/.github/skills/ui-styling/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
- package/.github/skills/ui-styling/canvas-fonts/BigShoulders-Bold.ttf +0 -0
- package/.github/skills/ui-styling/canvas-fonts/BigShoulders-OFL.txt +93 -0
- package/.github/skills/ui-styling/canvas-fonts/BigShoulders-Regular.ttf +0 -0
- package/.github/skills/ui-styling/canvas-fonts/Boldonse-OFL.txt +93 -0
- package/.github/skills/ui-styling/canvas-fonts/Boldonse-Regular.ttf +0 -0
- package/.github/skills/ui-styling/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
- package/.github/skills/ui-styling/canvas-fonts/BricolageGrotesque-OFL.txt +93 -0
- package/.github/skills/ui-styling/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
- package/.github/skills/ui-styling/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
- package/.github/skills/ui-styling/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
- package/.github/skills/ui-styling/canvas-fonts/CrimsonPro-OFL.txt +93 -0
- package/.github/skills/ui-styling/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
- package/.github/skills/ui-styling/canvas-fonts/DMMono-OFL.txt +93 -0
- package/.github/skills/ui-styling/canvas-fonts/DMMono-Regular.ttf +0 -0
- package/.github/skills/ui-styling/canvas-fonts/EricaOne-OFL.txt +94 -0
- package/.github/skills/ui-styling/canvas-fonts/EricaOne-Regular.ttf +0 -0
- package/.github/skills/ui-styling/canvas-fonts/GeistMono-Bold.ttf +0 -0
- package/.github/skills/ui-styling/canvas-fonts/GeistMono-OFL.txt +93 -0
- package/.github/skills/ui-styling/canvas-fonts/GeistMono-Regular.ttf +0 -0
- package/.github/skills/ui-styling/canvas-fonts/Gloock-OFL.txt +93 -0
- package/.github/skills/ui-styling/canvas-fonts/Gloock-Regular.ttf +0 -0
- package/.github/skills/ui-styling/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
- package/.github/skills/ui-styling/canvas-fonts/IBMPlexMono-OFL.txt +93 -0
- package/.github/skills/ui-styling/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
- package/.github/skills/ui-styling/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
- package/.github/skills/ui-styling/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
- package/.github/skills/ui-styling/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
- package/.github/skills/ui-styling/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
- package/.github/skills/ui-styling/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
- package/.github/skills/ui-styling/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
- package/.github/skills/ui-styling/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
- package/.github/skills/ui-styling/canvas-fonts/InstrumentSans-OFL.txt +93 -0
- package/.github/skills/ui-styling/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
- package/.github/skills/ui-styling/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
- package/.github/skills/ui-styling/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
- package/.github/skills/ui-styling/canvas-fonts/Italiana-OFL.txt +93 -0
- package/.github/skills/ui-styling/canvas-fonts/Italiana-Regular.ttf +0 -0
- package/.github/skills/ui-styling/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
- package/.github/skills/ui-styling/canvas-fonts/JetBrainsMono-OFL.txt +93 -0
- package/.github/skills/ui-styling/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
- package/.github/skills/ui-styling/canvas-fonts/Jura-Light.ttf +0 -0
- package/.github/skills/ui-styling/canvas-fonts/Jura-Medium.ttf +0 -0
- package/.github/skills/ui-styling/canvas-fonts/Jura-OFL.txt +93 -0
- package/.github/skills/ui-styling/canvas-fonts/LibreBaskerville-OFL.txt +93 -0
- package/.github/skills/ui-styling/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
- package/.github/skills/ui-styling/canvas-fonts/Lora-Bold.ttf +0 -0
- package/.github/skills/ui-styling/canvas-fonts/Lora-BoldItalic.ttf +0 -0
- package/.github/skills/ui-styling/canvas-fonts/Lora-Italic.ttf +0 -0
- package/.github/skills/ui-styling/canvas-fonts/Lora-OFL.txt +93 -0
- package/.github/skills/ui-styling/canvas-fonts/Lora-Regular.ttf +0 -0
- package/.github/skills/ui-styling/canvas-fonts/NationalPark-Bold.ttf +0 -0
- package/.github/skills/ui-styling/canvas-fonts/NationalPark-OFL.txt +93 -0
- package/.github/skills/ui-styling/canvas-fonts/NationalPark-Regular.ttf +0 -0
- package/.github/skills/ui-styling/canvas-fonts/NothingYouCouldDo-OFL.txt +93 -0
- package/.github/skills/ui-styling/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
- package/.github/skills/ui-styling/canvas-fonts/Outfit-Bold.ttf +0 -0
- package/.github/skills/ui-styling/canvas-fonts/Outfit-OFL.txt +93 -0
- package/.github/skills/ui-styling/canvas-fonts/Outfit-Regular.ttf +0 -0
- package/.github/skills/ui-styling/canvas-fonts/PixelifySans-Medium.ttf +0 -0
- package/.github/skills/ui-styling/canvas-fonts/PixelifySans-OFL.txt +93 -0
- package/.github/skills/ui-styling/canvas-fonts/PoiretOne-OFL.txt +93 -0
- package/.github/skills/ui-styling/canvas-fonts/PoiretOne-Regular.ttf +0 -0
- package/.github/skills/ui-styling/canvas-fonts/RedHatMono-Bold.ttf +0 -0
- package/.github/skills/ui-styling/canvas-fonts/RedHatMono-OFL.txt +93 -0
- package/.github/skills/ui-styling/canvas-fonts/RedHatMono-Regular.ttf +0 -0
- package/.github/skills/ui-styling/canvas-fonts/Silkscreen-OFL.txt +93 -0
- package/.github/skills/ui-styling/canvas-fonts/Silkscreen-Regular.ttf +0 -0
- package/.github/skills/ui-styling/canvas-fonts/SmoochSans-Medium.ttf +0 -0
- package/.github/skills/ui-styling/canvas-fonts/SmoochSans-OFL.txt +93 -0
- package/.github/skills/ui-styling/canvas-fonts/Tektur-Medium.ttf +0 -0
- package/.github/skills/ui-styling/canvas-fonts/Tektur-OFL.txt +93 -0
- package/.github/skills/ui-styling/canvas-fonts/Tektur-Regular.ttf +0 -0
- package/.github/skills/ui-styling/canvas-fonts/WorkSans-Bold.ttf +0 -0
- package/.github/skills/ui-styling/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
- package/.github/skills/ui-styling/canvas-fonts/WorkSans-Italic.ttf +0 -0
- package/.github/skills/ui-styling/canvas-fonts/WorkSans-OFL.txt +93 -0
- package/.github/skills/ui-styling/canvas-fonts/WorkSans-Regular.ttf +0 -0
- package/.github/skills/ui-styling/canvas-fonts/YoungSerif-OFL.txt +93 -0
- package/.github/skills/ui-styling/canvas-fonts/YoungSerif-Regular.ttf +0 -0
- package/.github/skills/ui-styling/scripts/.coverage +0 -0
- package/.github/skills/ui-styling/scripts/requirements.txt +17 -0
- package/.github/skills/ui-styling/scripts/shadcn_add.py +292 -0
- package/.github/skills/ui-styling/scripts/tailwind_config_gen.py +456 -0
- package/.github/skills/ui-ux-pro-max/data/charts.csv +26 -0
- package/.github/skills/ui-ux-pro-max/data/colors.csv +97 -0
- package/.github/skills/ui-ux-pro-max/data/landing.csv +31 -0
- package/.github/skills/ui-ux-pro-max/data/products.csv +97 -0
- package/.github/skills/ui-ux-pro-max/data/prompts.csv +24 -0
- package/.github/skills/ui-ux-pro-max/data/stacks/flutter.csv +53 -0
- package/.github/skills/ui-ux-pro-max/data/stacks/html-tailwind.csv +51 -0
- package/.github/skills/ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
- package/.github/skills/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
- package/.github/skills/ui-ux-pro-max/data/stacks/react.csv +54 -0
- package/.github/skills/ui-ux-pro-max/data/stacks/svelte.csv +54 -0
- package/.github/skills/ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
- package/.github/skills/ui-ux-pro-max/data/stacks/vue.csv +50 -0
- package/.github/skills/ui-ux-pro-max/data/styles.csv +59 -0
- package/.github/skills/ui-ux-pro-max/data/typography.csv +58 -0
- package/.github/skills/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
- package/.github/skills/ui-ux-pro-max/scripts/core.py +236 -0
- package/.github/skills/ui-ux-pro-max/scripts/search.py +76 -0
- package/.github/skills/web-frameworks/scripts/.coverage +0 -0
- package/.github/skills/web-frameworks/scripts/__init__.py +0 -0
- package/.github/skills/web-frameworks/scripts/nextjs_init.py +547 -0
- package/.github/skills/web-frameworks/scripts/requirements.txt +16 -0
- package/.github/skills/web-frameworks/scripts/turborepo_migrate.py +394 -0
- package/dist/config/constants.d.ts +3 -0
- package/dist/config/constants.d.ts.map +1 -1
- package/dist/config/constants.js +5 -1
- package/dist/config/constants.js.map +1 -1
- package/dist/domains/github/github-client.d.ts +5 -0
- package/dist/domains/github/github-client.d.ts.map +1 -1
- package/dist/domains/github/github-client.js +44 -0
- package/dist/domains/github/github-client.js.map +1 -1
- package/dist/utils/downloader.d.ts +3 -1
- package/dist/utils/downloader.d.ts.map +1 -1
- package/dist/utils/downloader.js +48 -11
- package/dist/utils/downloader.js.map +1 -1
- package/dist/utils/scaffolder.d.ts.map +1 -1
- package/dist/utils/scaffolder.js +2 -0
- package/dist/utils/scaffolder.js.map +1 -1
- package/package.json +3 -1
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
# Sequential Thinking Agent Skill
|
|
2
|
+
|
|
3
|
+
Structured, reflective problem-solving methodology converted from the sequential-thinking MCP server into a native Agent Skill.
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
This skill teaches Claude to apply systematic sequential thinking methodology for complex problem-solving, without relying on external MCP tools. It enables:
|
|
8
|
+
- Breaking down complex problems into manageable thought sequences
|
|
9
|
+
- Dynamic adjustment of thought count as understanding evolves
|
|
10
|
+
- Revision of previous thoughts when new insights emerge
|
|
11
|
+
- Branching into alternative reasoning paths
|
|
12
|
+
- Hypothesis generation and verification
|
|
13
|
+
|
|
14
|
+
## Skill Structure
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
sequential-thinking/
|
|
18
|
+
├── SKILL.md (105 lines)
|
|
19
|
+
│ Core methodology, when to apply, scripts usage
|
|
20
|
+
│
|
|
21
|
+
├── package.json
|
|
22
|
+
│ Test dependencies (jest)
|
|
23
|
+
│
|
|
24
|
+
├── .env.example
|
|
25
|
+
│ Configuration options
|
|
26
|
+
│
|
|
27
|
+
├── scripts/
|
|
28
|
+
│ ├── process-thought.js (executable)
|
|
29
|
+
│ │ Validate and track thoughts deterministically
|
|
30
|
+
│ │
|
|
31
|
+
│ └── format-thought.js (executable)
|
|
32
|
+
│ Format thoughts for display (box/simple/markdown)
|
|
33
|
+
│
|
|
34
|
+
├── tests/
|
|
35
|
+
│ ├── process-thought.test.js
|
|
36
|
+
│ │ Validation, tracking, history tests
|
|
37
|
+
│ │
|
|
38
|
+
│ └── format-thought.test.js
|
|
39
|
+
│ Formatting tests (all formats)
|
|
40
|
+
│
|
|
41
|
+
└── references/
|
|
42
|
+
├── core-patterns.md (95 lines)
|
|
43
|
+
│ Essential revision & branching patterns
|
|
44
|
+
│
|
|
45
|
+
├── examples-api.md (88 lines)
|
|
46
|
+
│ API design example walkthrough
|
|
47
|
+
│
|
|
48
|
+
├── examples-debug.md (90 lines)
|
|
49
|
+
│ Performance debugging example
|
|
50
|
+
│
|
|
51
|
+
├── examples-architecture.md (94 lines)
|
|
52
|
+
│ Architecture decision example
|
|
53
|
+
│
|
|
54
|
+
├── advanced-techniques.md (76 lines)
|
|
55
|
+
│ Spiral refinement, hypothesis testing, convergence
|
|
56
|
+
│
|
|
57
|
+
└── advanced-strategies.md (79 lines)
|
|
58
|
+
Uncertainty management, revision cascades, meta-thinking
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
**Documentation**: 627 lines across 7 files (all under 100 lines)
|
|
62
|
+
**Scripts**: 2 executable Node.js scripts with tests
|
|
63
|
+
|
|
64
|
+
## Key Features
|
|
65
|
+
|
|
66
|
+
### Progressive Disclosure Design
|
|
67
|
+
Each file focuses on specific aspects, loaded only when needed:
|
|
68
|
+
- **SKILL.md**: Quick reference with core methodology
|
|
69
|
+
- **core-patterns.md**: Common patterns for everyday use
|
|
70
|
+
- **examples-*.md**: Real-world walkthroughs for learning
|
|
71
|
+
- **advanced-*.md**: Sophisticated techniques for complex scenarios
|
|
72
|
+
|
|
73
|
+
### Token Efficiency
|
|
74
|
+
- Concise explanations sacrifice grammar for brevity
|
|
75
|
+
- Examples demonstrate patterns without verbose explanation
|
|
76
|
+
- Cross-references between files avoid duplication
|
|
77
|
+
|
|
78
|
+
### Methodology Conversion
|
|
79
|
+
Extracted from MCP server's approach and converted to instructions:
|
|
80
|
+
- MCP tool provided **interface** for sequential thinking
|
|
81
|
+
- Agent skill provides **methodology** to think sequentially
|
|
82
|
+
- No dependency on external tools—pure instructional approach
|
|
83
|
+
|
|
84
|
+
## Usage Modes
|
|
85
|
+
|
|
86
|
+
**Explicit Mode**: Use visible thought markers
|
|
87
|
+
```
|
|
88
|
+
Thought 1/5: [Analysis]
|
|
89
|
+
Thought 2/5: [Further analysis]
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
**Implicit Mode**: Apply methodology internally without cluttering output
|
|
93
|
+
|
|
94
|
+
## When Claude Should Use This Skill
|
|
95
|
+
|
|
96
|
+
Automatically activated for:
|
|
97
|
+
- Complex problem decomposition
|
|
98
|
+
- Adaptive planning with potential revisions
|
|
99
|
+
- Debugging and root cause analysis
|
|
100
|
+
- Architecture and design decisions
|
|
101
|
+
- Problems with unclear or emerging scope
|
|
102
|
+
- Multi-step solutions requiring context
|
|
103
|
+
|
|
104
|
+
## Scripts Usage
|
|
105
|
+
|
|
106
|
+
### Process Thought (Validation & Tracking)
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
# Process a thought
|
|
110
|
+
node scripts/process-thought.js --thought "Initial analysis" --number 1 --total 5 --next true
|
|
111
|
+
|
|
112
|
+
# Process with revision
|
|
113
|
+
node scripts/process-thought.js --thought "Corrected analysis" --number 2 --total 5 --next true --revision 1
|
|
114
|
+
|
|
115
|
+
# Process with branching
|
|
116
|
+
node scripts/process-thought.js --thought "Branch A" --number 2 --total 5 --next true --branch 1 --branchId "branch-a"
|
|
117
|
+
|
|
118
|
+
# View history
|
|
119
|
+
node scripts/process-thought.js --history
|
|
120
|
+
|
|
121
|
+
# Reset history
|
|
122
|
+
node scripts/process-thought.js --reset
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
### Format Thought (Display)
|
|
126
|
+
|
|
127
|
+
```bash
|
|
128
|
+
# Box format (default)
|
|
129
|
+
node scripts/format-thought.js --thought "Analysis" --number 1 --total 5
|
|
130
|
+
|
|
131
|
+
# Simple text format
|
|
132
|
+
node scripts/format-thought.js --thought "Analysis" --number 1 --total 5 --format simple
|
|
133
|
+
|
|
134
|
+
# Markdown format
|
|
135
|
+
node scripts/format-thought.js --thought "Analysis" --number 1 --total 5 --format markdown
|
|
136
|
+
|
|
137
|
+
# With revision
|
|
138
|
+
node scripts/format-thought.js --thought "Revised" --number 2 --total 5 --revision 1
|
|
139
|
+
|
|
140
|
+
# With branch
|
|
141
|
+
node scripts/format-thought.js --thought "Branch" --number 2 --total 5 --branch 1 --branchId "a"
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
### Running Tests
|
|
145
|
+
|
|
146
|
+
```bash
|
|
147
|
+
# Install dependencies (first time only)
|
|
148
|
+
npm install
|
|
149
|
+
|
|
150
|
+
# Run all tests
|
|
151
|
+
npm test
|
|
152
|
+
|
|
153
|
+
# Run tests in watch mode
|
|
154
|
+
npm run test:watch
|
|
155
|
+
|
|
156
|
+
# Run with coverage
|
|
157
|
+
npm run test:coverage
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
## When to Use Scripts
|
|
161
|
+
|
|
162
|
+
**Use scripts when**:
|
|
163
|
+
- Need deterministic validation of thought structure
|
|
164
|
+
- Want persistent thought history tracking
|
|
165
|
+
- Require formatted output for documentation
|
|
166
|
+
- Building tools that integrate with sequential thinking
|
|
167
|
+
|
|
168
|
+
**Don't use scripts when**:
|
|
169
|
+
- Applying methodology directly in responses
|
|
170
|
+
- Want lightweight, inline thinking
|
|
171
|
+
- No need for validation or tracking
|
|
172
|
+
|
|
173
|
+
Scripts are **optional tooling** - the methodology can be applied without them.
|
|
174
|
+
|
|
175
|
+
## Source
|
|
176
|
+
|
|
177
|
+
Converted from: https://github.com/modelcontextprotocol/servers/tree/main/src/sequentialthinking
|
|
178
|
+
|
|
179
|
+
Original MCP server by Anthropic (MIT License).
|
|
180
|
+
Skill conversion:
|
|
181
|
+
- Extracts methodology as instructions
|
|
182
|
+
- Adds executable scripts for deterministic validation
|
|
183
|
+
- Makes tool-independent while preserving functionality
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "sequential-thinking-skill",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Sequential thinking methodology with thought processing scripts",
|
|
5
|
+
"main": "scripts/process-thought.js",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"test": "jest",
|
|
8
|
+
"test:watch": "jest --watch",
|
|
9
|
+
"test:coverage": "jest --coverage"
|
|
10
|
+
},
|
|
11
|
+
"keywords": [
|
|
12
|
+
"sequential-thinking",
|
|
13
|
+
"problem-solving",
|
|
14
|
+
"agent-skill"
|
|
15
|
+
],
|
|
16
|
+
"author": "Converted from Anthropic MCP Server",
|
|
17
|
+
"license": "MIT",
|
|
18
|
+
"devDependencies": {
|
|
19
|
+
"jest": "^29.7.0"
|
|
20
|
+
},
|
|
21
|
+
"jest": {
|
|
22
|
+
"testEnvironment": "node",
|
|
23
|
+
"testMatch": [
|
|
24
|
+
"**/tests/**/*.test.js"
|
|
25
|
+
],
|
|
26
|
+
"coveragePathIgnorePatterns": [
|
|
27
|
+
"/node_modules/",
|
|
28
|
+
"/tests/"
|
|
29
|
+
]
|
|
30
|
+
}
|
|
31
|
+
}
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Sequential Thinking Thought Formatter
|
|
5
|
+
*
|
|
6
|
+
* Formats thoughts for display with visual indicators for type (regular/revision/branch).
|
|
7
|
+
* Provides consistent, readable output for thought sequences.
|
|
8
|
+
*
|
|
9
|
+
* Usage:
|
|
10
|
+
* node format-thought.js --thought "Analysis" --number 1 --total 5
|
|
11
|
+
* node format-thought.js --thought "Revision" --number 2 --total 5 --revision 1
|
|
12
|
+
* node format-thought.js --thought "Branch A" --number 3 --total 5 --branch 2 --branchId "a"
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
class ThoughtFormatter {
|
|
16
|
+
static format(thoughtData) {
|
|
17
|
+
const { thoughtNumber, totalThoughts, thought, isRevision, revisesThought, branchFromThought, branchId } = thoughtData;
|
|
18
|
+
|
|
19
|
+
let prefix = '';
|
|
20
|
+
let context = '';
|
|
21
|
+
let emoji = '';
|
|
22
|
+
|
|
23
|
+
if (isRevision && revisesThought) {
|
|
24
|
+
emoji = '🔄';
|
|
25
|
+
prefix = 'REVISION';
|
|
26
|
+
context = ` (revising thought ${revisesThought})`;
|
|
27
|
+
} else if (branchFromThought) {
|
|
28
|
+
emoji = '🌿';
|
|
29
|
+
prefix = 'BRANCH';
|
|
30
|
+
context = branchId ? ` (from thought ${branchFromThought}, ID: ${branchId})` : ` (from thought ${branchFromThought})`;
|
|
31
|
+
} else {
|
|
32
|
+
emoji = '💭';
|
|
33
|
+
prefix = 'Thought';
|
|
34
|
+
context = '';
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
const header = `${emoji} ${prefix} ${thoughtNumber}/${totalThoughts}${context}`;
|
|
38
|
+
const maxLength = Math.max(header.length, thought.length);
|
|
39
|
+
const border = '─'.repeat(maxLength + 4);
|
|
40
|
+
|
|
41
|
+
// Wrap long thoughts
|
|
42
|
+
const wrappedThought = this.wrapText(thought, maxLength);
|
|
43
|
+
const thoughtLines = wrappedThought.map(line => `│ ${line.padEnd(maxLength + 2)} │`).join('\n');
|
|
44
|
+
|
|
45
|
+
return `
|
|
46
|
+
┌${border}┐
|
|
47
|
+
│ ${header.padEnd(maxLength + 2)} │
|
|
48
|
+
├${border}┤
|
|
49
|
+
${thoughtLines}
|
|
50
|
+
└${border}┘`;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
static wrapText(text, maxWidth) {
|
|
54
|
+
if (text.length <= maxWidth) {
|
|
55
|
+
return [text];
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
const words = text.split(' ');
|
|
59
|
+
const lines = [];
|
|
60
|
+
let currentLine = '';
|
|
61
|
+
|
|
62
|
+
for (const word of words) {
|
|
63
|
+
if ((currentLine + ' ' + word).trim().length <= maxWidth) {
|
|
64
|
+
currentLine = currentLine ? currentLine + ' ' + word : word;
|
|
65
|
+
} else {
|
|
66
|
+
if (currentLine) lines.push(currentLine);
|
|
67
|
+
currentLine = word;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
if (currentLine) lines.push(currentLine);
|
|
72
|
+
return lines;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
static formatSimple(thoughtData) {
|
|
76
|
+
const { thoughtNumber, totalThoughts, thought, isRevision, revisesThought, branchFromThought, branchId } = thoughtData;
|
|
77
|
+
|
|
78
|
+
let marker = '';
|
|
79
|
+
if (isRevision && revisesThought) {
|
|
80
|
+
marker = ` [REVISION of Thought ${revisesThought}]`;
|
|
81
|
+
} else if (branchFromThought) {
|
|
82
|
+
marker = branchId ? ` [BRANCH ${branchId.toUpperCase()} from Thought ${branchFromThought}]` : ` [BRANCH from Thought ${branchFromThought}]`;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
return `Thought ${thoughtNumber}/${totalThoughts}${marker}: ${thought}`;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
static formatMarkdown(thoughtData) {
|
|
89
|
+
const { thoughtNumber, totalThoughts, thought, isRevision, revisesThought, branchFromThought, branchId } = thoughtData;
|
|
90
|
+
|
|
91
|
+
let marker = '';
|
|
92
|
+
if (isRevision && revisesThought) {
|
|
93
|
+
marker = ` **[REVISION of Thought ${revisesThought}]**`;
|
|
94
|
+
} else if (branchFromThought) {
|
|
95
|
+
marker = branchId ? ` **[BRANCH ${branchId.toUpperCase()} from Thought ${branchFromThought}]**` : ` **[BRANCH from Thought ${branchFromThought}]**`;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
return `**Thought ${thoughtNumber}/${totalThoughts}**${marker}\n\n${thought}\n`;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
// CLI Interface
|
|
103
|
+
if (require.main === module) {
|
|
104
|
+
const args = process.argv.slice(2);
|
|
105
|
+
|
|
106
|
+
const parseArgs = (args) => {
|
|
107
|
+
const parsed = {};
|
|
108
|
+
for (let i = 0; i < args.length; i++) {
|
|
109
|
+
const arg = args[i];
|
|
110
|
+
if (arg.startsWith('--')) {
|
|
111
|
+
const key = arg.slice(2);
|
|
112
|
+
const value = args[i + 1];
|
|
113
|
+
|
|
114
|
+
if (value && !value.startsWith('--')) {
|
|
115
|
+
// Parse boolean
|
|
116
|
+
if (value === 'true') parsed[key] = true;
|
|
117
|
+
else if (value === 'false') parsed[key] = false;
|
|
118
|
+
// Parse number
|
|
119
|
+
else if (!isNaN(value)) parsed[key] = parseFloat(value);
|
|
120
|
+
// String
|
|
121
|
+
else parsed[key] = value;
|
|
122
|
+
i++;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
return parsed;
|
|
127
|
+
};
|
|
128
|
+
|
|
129
|
+
const input = parseArgs(args);
|
|
130
|
+
|
|
131
|
+
const thoughtData = {
|
|
132
|
+
thought: input.thought || 'No thought provided',
|
|
133
|
+
thoughtNumber: input.number || 1,
|
|
134
|
+
totalThoughts: input.total || 1,
|
|
135
|
+
isRevision: input.revision !== undefined,
|
|
136
|
+
revisesThought: input.revision,
|
|
137
|
+
branchFromThought: input.branch,
|
|
138
|
+
branchId: input.branchId
|
|
139
|
+
};
|
|
140
|
+
|
|
141
|
+
const format = input.format || 'box';
|
|
142
|
+
|
|
143
|
+
let output;
|
|
144
|
+
switch (format) {
|
|
145
|
+
case 'simple':
|
|
146
|
+
output = ThoughtFormatter.formatSimple(thoughtData);
|
|
147
|
+
break;
|
|
148
|
+
case 'markdown':
|
|
149
|
+
output = ThoughtFormatter.formatMarkdown(thoughtData);
|
|
150
|
+
break;
|
|
151
|
+
case 'box':
|
|
152
|
+
default:
|
|
153
|
+
output = ThoughtFormatter.format(thoughtData);
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
console.log(output);
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
module.exports = { ThoughtFormatter };
|
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Sequential Thinking Thought Processor
|
|
5
|
+
*
|
|
6
|
+
* Validates and tracks sequential thoughts with revision and branching support.
|
|
7
|
+
* Provides deterministic validation and context management.
|
|
8
|
+
*
|
|
9
|
+
* Usage:
|
|
10
|
+
* node process-thought.js --thought "Analysis text" --number 1 --total 5 --next true
|
|
11
|
+
* node process-thought.js --thought "Revision" --number 2 --total 5 --next true --revision 1
|
|
12
|
+
* node process-thought.js --reset # Reset thought history
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
const fs = require('fs');
|
|
16
|
+
const path = require('path');
|
|
17
|
+
|
|
18
|
+
// Configuration
|
|
19
|
+
const HISTORY_FILE = path.join(__dirname, '.thought-history.json');
|
|
20
|
+
const DISABLE_LOGGING = process.env.DISABLE_THOUGHT_LOGGING?.toLowerCase() === 'true';
|
|
21
|
+
|
|
22
|
+
class ThoughtProcessor {
|
|
23
|
+
constructor() {
|
|
24
|
+
this.loadHistory();
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
loadHistory() {
|
|
28
|
+
try {
|
|
29
|
+
if (fs.existsSync(HISTORY_FILE)) {
|
|
30
|
+
const data = JSON.parse(fs.readFileSync(HISTORY_FILE, 'utf8'));
|
|
31
|
+
this.thoughtHistory = data.thoughtHistory || [];
|
|
32
|
+
this.branches = data.branches || {};
|
|
33
|
+
} else {
|
|
34
|
+
this.thoughtHistory = [];
|
|
35
|
+
this.branches = {};
|
|
36
|
+
}
|
|
37
|
+
} catch (error) {
|
|
38
|
+
this.thoughtHistory = [];
|
|
39
|
+
this.branches = {};
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
saveHistory() {
|
|
44
|
+
fs.writeFileSync(
|
|
45
|
+
HISTORY_FILE,
|
|
46
|
+
JSON.stringify({
|
|
47
|
+
thoughtHistory: this.thoughtHistory,
|
|
48
|
+
branches: this.branches
|
|
49
|
+
}, null, 2)
|
|
50
|
+
);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
resetHistory() {
|
|
54
|
+
this.thoughtHistory = [];
|
|
55
|
+
this.branches = {};
|
|
56
|
+
if (fs.existsSync(HISTORY_FILE)) {
|
|
57
|
+
fs.unlinkSync(HISTORY_FILE);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
validateThought(input) {
|
|
62
|
+
const errors = [];
|
|
63
|
+
|
|
64
|
+
if (!input.thought || typeof input.thought !== 'string' || input.thought.trim() === '') {
|
|
65
|
+
errors.push('Invalid thought: must be a non-empty string');
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
if (!input.thoughtNumber || typeof input.thoughtNumber !== 'number' || input.thoughtNumber < 1) {
|
|
69
|
+
errors.push('Invalid thoughtNumber: must be a positive number');
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
if (!input.totalThoughts || typeof input.totalThoughts !== 'number' || input.totalThoughts < 1) {
|
|
73
|
+
errors.push('Invalid totalThoughts: must be a positive number');
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
if (typeof input.nextThoughtNeeded !== 'boolean') {
|
|
77
|
+
errors.push('Invalid nextThoughtNeeded: must be a boolean');
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
// Optional field validations
|
|
81
|
+
if (input.isRevision !== undefined && typeof input.isRevision !== 'boolean') {
|
|
82
|
+
errors.push('Invalid isRevision: must be a boolean');
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
if (input.revisesThought !== undefined && (typeof input.revisesThought !== 'number' || input.revisesThought < 1)) {
|
|
86
|
+
errors.push('Invalid revisesThought: must be a positive number');
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
if (input.branchFromThought !== undefined && (typeof input.branchFromThought !== 'number' || input.branchFromThought < 1)) {
|
|
90
|
+
errors.push('Invalid branchFromThought: must be a positive number');
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
if (input.branchId !== undefined && typeof input.branchId !== 'string') {
|
|
94
|
+
errors.push('Invalid branchId: must be a string');
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
if (input.needsMoreThoughts !== undefined && typeof input.needsMoreThoughts !== 'boolean') {
|
|
98
|
+
errors.push('Invalid needsMoreThoughts: must be a boolean');
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
return errors;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
processThought(input) {
|
|
105
|
+
const errors = this.validateThought(input);
|
|
106
|
+
|
|
107
|
+
if (errors.length > 0) {
|
|
108
|
+
return {
|
|
109
|
+
success: false,
|
|
110
|
+
errors,
|
|
111
|
+
status: 'failed'
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
// Auto-adjust totalThoughts if thoughtNumber exceeds it
|
|
116
|
+
if (input.thoughtNumber > input.totalThoughts) {
|
|
117
|
+
input.totalThoughts = input.thoughtNumber;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
// Create thought data
|
|
121
|
+
const thoughtData = {
|
|
122
|
+
thought: input.thought,
|
|
123
|
+
thoughtNumber: input.thoughtNumber,
|
|
124
|
+
totalThoughts: input.totalThoughts,
|
|
125
|
+
nextThoughtNeeded: input.nextThoughtNeeded,
|
|
126
|
+
isRevision: input.isRevision,
|
|
127
|
+
revisesThought: input.revisesThought,
|
|
128
|
+
branchFromThought: input.branchFromThought,
|
|
129
|
+
branchId: input.branchId,
|
|
130
|
+
needsMoreThoughts: input.needsMoreThoughts,
|
|
131
|
+
timestamp: new Date().toISOString()
|
|
132
|
+
};
|
|
133
|
+
|
|
134
|
+
// Add to history
|
|
135
|
+
this.thoughtHistory.push(thoughtData);
|
|
136
|
+
|
|
137
|
+
// Track branches
|
|
138
|
+
if (thoughtData.branchFromThought && thoughtData.branchId) {
|
|
139
|
+
if (!this.branches[thoughtData.branchId]) {
|
|
140
|
+
this.branches[thoughtData.branchId] = [];
|
|
141
|
+
}
|
|
142
|
+
this.branches[thoughtData.branchId].push(thoughtData);
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
// Save history
|
|
146
|
+
this.saveHistory();
|
|
147
|
+
|
|
148
|
+
return {
|
|
149
|
+
success: true,
|
|
150
|
+
thoughtNumber: thoughtData.thoughtNumber,
|
|
151
|
+
totalThoughts: thoughtData.totalThoughts,
|
|
152
|
+
nextThoughtNeeded: thoughtData.nextThoughtNeeded,
|
|
153
|
+
branches: Object.keys(this.branches),
|
|
154
|
+
thoughtHistoryLength: this.thoughtHistory.length,
|
|
155
|
+
timestamp: thoughtData.timestamp
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
getHistory() {
|
|
160
|
+
return {
|
|
161
|
+
thoughts: this.thoughtHistory,
|
|
162
|
+
branches: this.branches,
|
|
163
|
+
totalThoughts: this.thoughtHistory.length
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
// CLI Interface
|
|
169
|
+
if (require.main === module) {
|
|
170
|
+
const args = process.argv.slice(2);
|
|
171
|
+
const processor = new ThoughtProcessor();
|
|
172
|
+
|
|
173
|
+
// Parse arguments
|
|
174
|
+
const parseArgs = (args) => {
|
|
175
|
+
const parsed = {};
|
|
176
|
+
for (let i = 0; i < args.length; i++) {
|
|
177
|
+
const arg = args[i];
|
|
178
|
+
if (arg.startsWith('--')) {
|
|
179
|
+
const key = arg.slice(2);
|
|
180
|
+
const value = args[i + 1];
|
|
181
|
+
|
|
182
|
+
if (key === 'reset') {
|
|
183
|
+
return { reset: true };
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
if (key === 'history') {
|
|
187
|
+
return { history: true };
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
if (value && !value.startsWith('--')) {
|
|
191
|
+
// Parse boolean
|
|
192
|
+
if (value === 'true') parsed[key] = true;
|
|
193
|
+
else if (value === 'false') parsed[key] = false;
|
|
194
|
+
// Parse number
|
|
195
|
+
else if (!isNaN(value)) parsed[key] = parseFloat(value);
|
|
196
|
+
// String
|
|
197
|
+
else parsed[key] = value;
|
|
198
|
+
i++;
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
return parsed;
|
|
203
|
+
};
|
|
204
|
+
|
|
205
|
+
const input = parseArgs(args);
|
|
206
|
+
|
|
207
|
+
if (input.reset) {
|
|
208
|
+
processor.resetHistory();
|
|
209
|
+
console.log(JSON.stringify({ success: true, message: 'History reset' }, null, 2));
|
|
210
|
+
process.exit(0);
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
if (input.history) {
|
|
214
|
+
console.log(JSON.stringify(processor.getHistory(), null, 2));
|
|
215
|
+
process.exit(0);
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
// Map CLI args to expected field names
|
|
219
|
+
const thoughtInput = {
|
|
220
|
+
thought: input.thought,
|
|
221
|
+
thoughtNumber: input.number,
|
|
222
|
+
totalThoughts: input.total,
|
|
223
|
+
nextThoughtNeeded: input.next,
|
|
224
|
+
isRevision: input.revision !== undefined ? true : input.isRevision,
|
|
225
|
+
revisesThought: input.revision,
|
|
226
|
+
branchFromThought: input.branch,
|
|
227
|
+
branchId: input.branchId,
|
|
228
|
+
needsMoreThoughts: input.needsMore
|
|
229
|
+
};
|
|
230
|
+
|
|
231
|
+
const result = processor.processThought(thoughtInput);
|
|
232
|
+
console.log(JSON.stringify(result, null, 2));
|
|
233
|
+
process.exit(result.success ? 0 : 1);
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
module.exports = { ThoughtProcessor };
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# Shopify API Research Documentation
|
|
2
|
+
|
|
3
|
+
This directory contains comprehensive research and analysis of various APIs for integration purposes.
|
|
4
|
+
|
|
5
|
+
## Contents
|
|
6
|
+
|
|
7
|
+
### Shopify GraphQL Admin API Analysis
|
|
8
|
+
**File:** `shopify-graphql-admin-api-analysis.md`
|
|
9
|
+
**Date:** 2025-10-25
|
|
10
|
+
**Status:** Complete
|
|
11
|
+
**Thoroughness:** Very Thorough
|
|
12
|
+
|
|
13
|
+
A comprehensive analysis of Shopify's GraphQL Admin API covering:
|
|
14
|
+
- API overview and capabilities
|
|
15
|
+
- Key features and operations
|
|
16
|
+
- Common query and mutation patterns
|
|
17
|
+
- Best practices and optimization strategies
|
|
18
|
+
- Authentication and security considerations
|
|
19
|
+
- Rate limiting and performance optimization
|
|
20
|
+
- Typical use cases and implementation patterns
|
|
21
|
+
- Troubleshooting guide
|
|
22
|
+
- Code examples in multiple languages
|
|
23
|
+
- Resources and further learning
|
|
24
|
+
|
|
25
|
+
**Key Sections:**
|
|
26
|
+
1. Executive Summary
|
|
27
|
+
2. API Overview
|
|
28
|
+
3. Key Features
|
|
29
|
+
4. Common Operations (Queries & Mutations)
|
|
30
|
+
5. API Structure (Types, Connections, Errors)
|
|
31
|
+
6. Best Practices
|
|
32
|
+
7. Typical Use Cases
|
|
33
|
+
8. API Versions and Deprecation
|
|
34
|
+
9. Tools and SDKs
|
|
35
|
+
10. Security Considerations
|
|
36
|
+
11. Performance Optimization
|
|
37
|
+
12. Common Patterns
|
|
38
|
+
13. Troubleshooting
|
|
39
|
+
14. Resources and Further Learning
|
|
40
|
+
|
|
41
|
+
**Size:** 1,348 lines, ~26KB
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## Usage
|
|
46
|
+
|
|
47
|
+
These documents are intended for:
|
|
48
|
+
- Development planning and architecture decisions
|
|
49
|
+
- Team onboarding and training
|
|
50
|
+
- Integration implementation reference
|
|
51
|
+
- Best practices guidance
|
|
52
|
+
- Troubleshooting support
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## Maintenance
|
|
57
|
+
|
|
58
|
+
- Documents should be reviewed quarterly
|
|
59
|
+
- Update when API versions change
|
|
60
|
+
- Add new findings from implementation experience
|
|
61
|
+
- Keep code examples current with latest SDK versions
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
**Last Updated:** 2025-10-25
|
|
66
|
+
**Maintained By:** Claude Code Engineering Team
|
|
Binary file
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# Shopify Skill Dependencies
|
|
2
|
+
# Python 3.10+ required
|
|
3
|
+
|
|
4
|
+
# No Python package dependencies - uses only standard library
|
|
5
|
+
|
|
6
|
+
# Testing dependencies (dev)
|
|
7
|
+
pytest>=8.0.0
|
|
8
|
+
pytest-cov>=4.1.0
|
|
9
|
+
pytest-mock>=3.12.0
|
|
10
|
+
|
|
11
|
+
# Note: This script requires the Shopify CLI tool
|
|
12
|
+
# Install Shopify CLI:
|
|
13
|
+
# npm install -g @shopify/cli @shopify/theme
|
|
14
|
+
# or via Homebrew (macOS):
|
|
15
|
+
# brew tap shopify/shopify
|
|
16
|
+
# brew install shopify-cli
|
|
17
|
+
#
|
|
18
|
+
# Authenticate with:
|
|
19
|
+
# shopify auth login
|