@vodailoc/kilo-kit-mcp 1.1.0 → 1.2.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/.mcp/kilo-kit.codex-windows.toml +5 -0
- package/LICENSE +190 -190
- package/QUICKSTART.md +265 -255
- package/README.md +321 -267
- package/mcp/README.md +64 -12
- package/mcp/dist/formatters.js +142 -1
- package/mcp/dist/orchestration-audit.js +20 -0
- package/mcp/dist/orchestration-memory.js +258 -0
- package/mcp/dist/orchestration-types.js +1 -0
- package/mcp/dist/orchestrator.js +222 -0
- package/mcp/dist/question-templates.js +249 -0
- package/mcp/dist/route-analytics.js +149 -0
- package/mcp/dist/router.js +75 -82
- package/mcp/dist/routing-policy-data.js +241 -0
- package/mcp/dist/routing-policy.js +145 -0
- package/mcp/dist/server.js +93 -4
- package/mcp/dist/smoke-env.js +18 -0
- package/mcp/dist/smoke.js +68 -1
- package/mcp/package.json +1 -2
- package/package.json +3 -2
- package/skills/README.md +647 -647
- package/skills/SKILLS_INDEX.md +139 -139
- package/skills/ai-media/ai-multimodal/.env.example +97 -97
- package/skills/ai-media/ai-multimodal/SKILL.md +357 -357
- package/skills/ai-media/ai-multimodal/references/audio-processing.md +373 -373
- package/skills/ai-media/ai-multimodal/references/image-generation.md +558 -558
- package/skills/ai-media/ai-multimodal/references/video-analysis.md +502 -502
- package/skills/ai-media/ai-multimodal/references/vision-understanding.md +483 -483
- package/skills/ai-media/ai-multimodal/scripts/document_converter.py +395 -395
- package/skills/ai-media/ai-multimodal/scripts/gemini_batch_process.py +480 -480
- package/skills/ai-media/ai-multimodal/scripts/media_optimizer.py +506 -506
- package/skills/ai-media/ai-multimodal/scripts/requirements.txt +26 -26
- package/skills/ai-media/ai-multimodal/scripts/tests/requirements.txt +20 -20
- package/skills/ai-media/ai-multimodal/scripts/tests/test_document_converter.py +299 -299
- package/skills/ai-media/ai-multimodal/scripts/tests/test_gemini_batch_process.py +362 -362
- package/skills/ai-media/ai-multimodal/scripts/tests/test_media_optimizer.py +373 -373
- package/skills/ai-media/media-processing/SKILL.md +358 -358
- package/skills/ai-media/media-processing/references/ffmpeg-encoding.md +358 -358
- package/skills/ai-media/media-processing/references/ffmpeg-filters.md +503 -503
- package/skills/ai-media/media-processing/references/ffmpeg-streaming.md +403 -403
- package/skills/ai-media/media-processing/references/format-compatibility.md +375 -375
- package/skills/ai-media/media-processing/references/imagemagick-batch.md +612 -612
- package/skills/ai-media/media-processing/references/imagemagick-editing.md +623 -623
- package/skills/ai-media/media-processing/scripts/batch_resize.py +342 -342
- package/skills/ai-media/media-processing/scripts/media_convert.py +311 -311
- package/skills/ai-media/media-processing/scripts/requirements.txt +24 -24
- package/skills/ai-media/media-processing/scripts/tests/requirements.txt +2 -2
- package/skills/ai-media/media-processing/scripts/tests/test_batch_resize.py +372 -372
- package/skills/ai-media/media-processing/scripts/tests/test_media_convert.py +259 -259
- package/skills/ai-media/media-processing/scripts/tests/test_video_optimize.py +397 -397
- package/skills/ai-media/media-processing/scripts/video_optimize.py +414 -414
- package/skills/ai-media/screenshot/LICENSE.txt +201 -201
- package/skills/ai-media/screenshot/SKILL.md +267 -267
- package/skills/ai-media/screenshot/agents/openai.yaml +6 -6
- package/skills/ai-media/screenshot/assets/screenshot-small.svg +5 -5
- package/skills/ai-media/screenshot/scripts/ensure_macos_permissions.sh +54 -54
- package/skills/ai-media/screenshot/scripts/macos_display_info.swift +22 -22
- package/skills/ai-media/screenshot/scripts/macos_permissions.swift +40 -40
- package/skills/ai-media/screenshot/scripts/macos_window_info.swift +126 -126
- package/skills/ai-media/screenshot/scripts/take_screenshot.ps1 +163 -163
- package/skills/ai-media/screenshot/scripts/take_screenshot.py +585 -585
- package/skills/ai-media/sora/LICENSE.txt +201 -201
- package/skills/ai-media/sora/SKILL.md +153 -153
- package/skills/ai-media/sora/agents/openai.yaml +6 -6
- package/skills/ai-media/sora/assets/sora-small.svg +4 -4
- package/skills/ai-media/sora/references/cinematic-shots.md +53 -53
- package/skills/ai-media/sora/references/cli.md +248 -248
- package/skills/ai-media/sora/references/codex-network.md +28 -28
- package/skills/ai-media/sora/references/prompting.md +137 -137
- package/skills/ai-media/sora/references/sample-prompts.md +95 -95
- package/skills/ai-media/sora/references/social-ads.md +42 -42
- package/skills/ai-media/sora/references/troubleshooting.md +58 -58
- package/skills/ai-media/sora/references/video-api.md +45 -45
- package/skills/ai-media/sora/scripts/sora.py +970 -970
- package/skills/design/aesthetic/SKILL.md +121 -121
- package/skills/design/aesthetic/assets/design-guideline-template.md +163 -163
- package/skills/design/aesthetic/assets/design-story-template.md +135 -135
- package/skills/design/aesthetic/references/design-principles.md +62 -62
- package/skills/design/aesthetic/references/design-resources.md +75 -75
- package/skills/design/aesthetic/references/micro-interactions.md +53 -53
- package/skills/design/aesthetic/references/storytelling-design.md +50 -50
- package/skills/design/figma/LICENSE.txt +202 -202
- package/skills/design/figma/SKILL.md +42 -42
- package/skills/design/figma/agents/openai.yaml +14 -14
- package/skills/design/figma/assets/figma-small.svg +3 -3
- package/skills/design/figma/assets/icon.svg +28 -28
- package/skills/design/figma/references/figma-mcp-config.md +35 -35
- package/skills/design/figma/references/figma-tools-and-prompts.md +34 -34
- package/skills/design/figma-implement-design/LICENSE.txt +202 -202
- package/skills/design/figma-implement-design/SKILL.md +264 -264
- package/skills/design/figma-implement-design/agents/openai.yaml +14 -14
- package/skills/design/figma-implement-design/assets/figma-small.svg +3 -3
- package/skills/design/figma-implement-design/assets/icon.svg +28 -28
- package/skills/design/frontend-design/SKILL.md +41 -41
- package/skills/design/frontend-design/references/animejs.md +395 -395
- package/skills/design/ui-styling/LICENSE.txt +201 -201
- package/skills/design/ui-styling/SKILL.md +321 -321
- package/skills/design/ui-styling/canvas-fonts/ArsenalSC-OFL.txt +93 -93
- package/skills/design/ui-styling/canvas-fonts/BigShoulders-OFL.txt +93 -93
- package/skills/design/ui-styling/canvas-fonts/Boldonse-OFL.txt +93 -93
- package/skills/design/ui-styling/canvas-fonts/BricolageGrotesque-OFL.txt +93 -93
- package/skills/design/ui-styling/canvas-fonts/CrimsonPro-OFL.txt +93 -93
- package/skills/design/ui-styling/canvas-fonts/DMMono-OFL.txt +93 -93
- package/skills/design/ui-styling/canvas-fonts/EricaOne-OFL.txt +94 -94
- package/skills/design/ui-styling/canvas-fonts/GeistMono-OFL.txt +93 -93
- package/skills/design/ui-styling/canvas-fonts/Gloock-OFL.txt +93 -93
- package/skills/design/ui-styling/canvas-fonts/IBMPlexMono-OFL.txt +93 -93
- package/skills/design/ui-styling/canvas-fonts/InstrumentSans-OFL.txt +93 -93
- package/skills/design/ui-styling/canvas-fonts/Italiana-OFL.txt +93 -93
- package/skills/design/ui-styling/canvas-fonts/JetBrainsMono-OFL.txt +93 -93
- package/skills/design/ui-styling/canvas-fonts/Jura-OFL.txt +93 -93
- package/skills/design/ui-styling/canvas-fonts/LibreBaskerville-OFL.txt +93 -93
- package/skills/design/ui-styling/canvas-fonts/Lora-OFL.txt +93 -93
- package/skills/design/ui-styling/canvas-fonts/NationalPark-OFL.txt +93 -93
- package/skills/design/ui-styling/canvas-fonts/NothingYouCouldDo-OFL.txt +93 -93
- package/skills/design/ui-styling/canvas-fonts/Outfit-OFL.txt +93 -93
- package/skills/design/ui-styling/canvas-fonts/PixelifySans-OFL.txt +93 -93
- package/skills/design/ui-styling/canvas-fonts/PoiretOne-OFL.txt +93 -93
- package/skills/design/ui-styling/canvas-fonts/RedHatMono-OFL.txt +93 -93
- package/skills/design/ui-styling/canvas-fonts/Silkscreen-OFL.txt +93 -93
- package/skills/design/ui-styling/canvas-fonts/SmoochSans-OFL.txt +93 -93
- package/skills/design/ui-styling/canvas-fonts/Tektur-OFL.txt +93 -93
- package/skills/design/ui-styling/canvas-fonts/WorkSans-OFL.txt +93 -93
- package/skills/design/ui-styling/canvas-fonts/YoungSerif-OFL.txt +93 -93
- package/skills/design/ui-styling/references/canvas-design-system.md +320 -320
- package/skills/design/ui-styling/references/shadcn-accessibility.md +471 -471
- package/skills/design/ui-styling/references/shadcn-components.md +424 -424
- package/skills/design/ui-styling/references/shadcn-theming.md +373 -373
- package/skills/design/ui-styling/references/tailwind-customization.md +483 -483
- package/skills/design/ui-styling/references/tailwind-responsive.md +382 -382
- package/skills/design/ui-styling/references/tailwind-utilities.md +455 -455
- package/skills/design/ui-styling/scripts/requirements.txt +17 -17
- package/skills/design/ui-styling/scripts/shadcn_add.py +292 -292
- package/skills/design/ui-styling/scripts/tailwind_config_gen.py +456 -456
- package/skills/design/ui-styling/scripts/tests/requirements.txt +3 -3
- package/skills/design/ui-styling/scripts/tests/test_shadcn_add.py +266 -266
- package/skills/design/ui-styling/scripts/tests/test_tailwind_config_gen.py +336 -336
- package/skills/engineering/aspnet-core/LICENSE.txt +201 -201
- package/skills/engineering/aspnet-core/SKILL.md +61 -61
- package/skills/engineering/aspnet-core/agents/openai.yaml +5 -5
- package/skills/engineering/aspnet-core/references/_sections.md +40 -40
- package/skills/engineering/aspnet-core/references/apis-minimal-and-controllers.md +81 -81
- package/skills/engineering/aspnet-core/references/data-state-and-services.md +69 -69
- package/skills/engineering/aspnet-core/references/program-and-pipeline.md +103 -103
- package/skills/engineering/aspnet-core/references/realtime-grpc-and-background-work.md +58 -58
- package/skills/engineering/aspnet-core/references/security-and-identity.md +75 -75
- package/skills/engineering/aspnet-core/references/source-map.md +43 -43
- package/skills/engineering/aspnet-core/references/stack-selection.md +63 -63
- package/skills/engineering/aspnet-core/references/testing-performance-and-operations.md +92 -92
- package/skills/engineering/aspnet-core/references/ui-blazor.md +53 -53
- package/skills/engineering/aspnet-core/references/ui-mvc.md +56 -56
- package/skills/engineering/aspnet-core/references/ui-razor-pages.md +55 -55
- package/skills/engineering/aspnet-core/references/versioning-and-upgrades.md +51 -51
- package/skills/engineering/backend-development/SKILL.md +95 -95
- package/skills/engineering/backend-development/references/backend-api-design.md +495 -495
- package/skills/engineering/backend-development/references/backend-architecture.md +454 -454
- package/skills/engineering/backend-development/references/backend-authentication.md +338 -338
- package/skills/engineering/backend-development/references/backend-code-quality.md +659 -659
- package/skills/engineering/backend-development/references/backend-debugging.md +904 -904
- package/skills/engineering/backend-development/references/backend-devops.md +494 -494
- package/skills/engineering/backend-development/references/backend-mindset.md +387 -387
- package/skills/engineering/backend-development/references/backend-performance.md +397 -397
- package/skills/engineering/backend-development/references/backend-security.md +290 -290
- package/skills/engineering/backend-development/references/backend-technologies.md +256 -256
- package/skills/engineering/backend-development/references/backend-testing.md +429 -429
- package/skills/engineering/better-auth/SKILL.md +204 -204
- package/skills/engineering/better-auth/references/advanced-features.md +553 -553
- package/skills/engineering/better-auth/references/database-integration.md +577 -577
- package/skills/engineering/better-auth/references/email-password-auth.md +416 -416
- package/skills/engineering/better-auth/references/oauth-providers.md +430 -430
- package/skills/engineering/better-auth/scripts/better_auth_init.py +521 -521
- package/skills/engineering/better-auth/scripts/requirements.txt +15 -15
- package/skills/engineering/better-auth/scripts/tests/test_better_auth_init.py +421 -421
- package/skills/engineering/code-review/SKILL.md +140 -140
- package/skills/engineering/code-review/references/code-review-reception.md +208 -208
- package/skills/engineering/code-review/references/requesting-code-review.md +104 -104
- package/skills/engineering/code-review/references/verification-before-completion.md +138 -138
- package/skills/engineering/context-engineering/SKILL.md +86 -86
- package/skills/engineering/context-engineering/references/context-compression.md +84 -84
- package/skills/engineering/context-engineering/references/context-degradation.md +93 -93
- package/skills/engineering/context-engineering/references/context-fundamentals.md +75 -75
- package/skills/engineering/context-engineering/references/context-optimization.md +82 -82
- package/skills/engineering/context-engineering/references/evaluation.md +89 -89
- package/skills/engineering/context-engineering/references/memory-systems.md +88 -88
- package/skills/engineering/context-engineering/references/multi-agent-patterns.md +90 -90
- package/skills/engineering/context-engineering/references/project-development.md +97 -97
- package/skills/engineering/context-engineering/references/tool-design.md +86 -86
- package/skills/engineering/context-engineering/scripts/compression_evaluator.py +329 -329
- package/skills/engineering/context-engineering/scripts/context_analyzer.py +294 -294
- package/skills/engineering/databases/SKILL.md +232 -232
- package/skills/engineering/databases/references/mongodb-aggregation.md +447 -447
- package/skills/engineering/databases/references/mongodb-atlas.md +465 -465
- package/skills/engineering/databases/references/mongodb-crud.md +408 -408
- package/skills/engineering/databases/references/mongodb-indexing.md +442 -442
- package/skills/engineering/databases/references/postgresql-administration.md +594 -594
- package/skills/engineering/databases/references/postgresql-performance.md +527 -527
- package/skills/engineering/databases/references/postgresql-psql-cli.md +467 -467
- package/skills/engineering/databases/references/postgresql-queries.md +475 -475
- package/skills/engineering/databases/scripts/db_backup.py +502 -502
- package/skills/engineering/databases/scripts/db_migrate.py +414 -414
- package/skills/engineering/databases/scripts/db_performance_check.py +444 -444
- package/skills/engineering/databases/scripts/requirements.txt +20 -20
- package/skills/engineering/databases/scripts/tests/requirements.txt +4 -4
- package/skills/engineering/databases/scripts/tests/test_db_backup.py +340 -340
- package/skills/engineering/databases/scripts/tests/test_db_migrate.py +277 -277
- package/skills/engineering/databases/scripts/tests/test_db_performance_check.py +370 -370
- package/skills/engineering/diagnose/SKILL.md +117 -117
- package/skills/engineering/diagnose/scripts/hitl-loop.template.sh +41 -41
- package/skills/engineering/docs-seeker/SKILL.md +207 -207
- package/skills/engineering/docs-seeker/WORKFLOWS.md +505 -505
- package/skills/engineering/docs-seeker/references/best-practices.md +632 -632
- package/skills/engineering/docs-seeker/references/documentation-sources.md +461 -461
- package/skills/engineering/docs-seeker/references/error-handling.md +621 -621
- package/skills/engineering/docs-seeker/references/limitations.md +821 -821
- package/skills/engineering/docs-seeker/references/performance.md +574 -574
- package/skills/engineering/docs-seeker/references/tool-selection.md +262 -262
- package/skills/engineering/frontend-development/SKILL.md +398 -398
- package/skills/engineering/frontend-development/resources/common-patterns.md +330 -330
- package/skills/engineering/frontend-development/resources/complete-examples.md +871 -871
- package/skills/engineering/frontend-development/resources/component-patterns.md +501 -501
- package/skills/engineering/frontend-development/resources/data-fetching.md +766 -766
- package/skills/engineering/frontend-development/resources/file-organization.md +501 -501
- package/skills/engineering/frontend-development/resources/loading-and-error-states.md +500 -500
- package/skills/engineering/frontend-development/resources/performance.md +405 -405
- package/skills/engineering/frontend-development/resources/routing-guide.md +363 -363
- package/skills/engineering/frontend-development/resources/styling-guide.md +427 -427
- package/skills/engineering/frontend-development/resources/typescript-standards.md +417 -417
- package/skills/engineering/improve-codebase-architecture/DEEPENING.md +37 -37
- package/skills/engineering/improve-codebase-architecture/INTERFACE-DESIGN.md +44 -44
- package/skills/engineering/improve-codebase-architecture/LANGUAGE.md +53 -53
- package/skills/engineering/improve-codebase-architecture/SKILL.md +71 -71
- package/skills/engineering/openai-docs/LICENSE.txt +201 -201
- package/skills/engineering/openai-docs/SKILL.md +69 -69
- package/skills/engineering/openai-docs/agents/openai.yaml +14 -14
- package/skills/engineering/openai-docs/assets/openai-small.svg +3 -3
- package/skills/engineering/openai-docs/references/gpt-5p4-prompting-guide.md +433 -433
- package/skills/engineering/openai-docs/references/latest-model.md +35 -35
- package/skills/engineering/openai-docs/references/upgrading-to-gpt-5p4.md +164 -164
- package/skills/engineering/playwright/LICENSE.txt +201 -201
- package/skills/engineering/playwright/NOTICE.txt +14 -14
- package/skills/engineering/playwright/SKILL.md +147 -147
- package/skills/engineering/playwright/agents/openai.yaml +6 -6
- package/skills/engineering/playwright/assets/playwright-small.svg +3 -3
- package/skills/engineering/playwright/references/cli.md +116 -116
- package/skills/engineering/playwright/references/workflows.md +95 -95
- package/skills/engineering/playwright/scripts/playwright_cli.sh +25 -25
- package/skills/engineering/playwright-interactive/LICENSE.txt +201 -201
- package/skills/engineering/playwright-interactive/NOTICE.txt +13 -13
- package/skills/engineering/playwright-interactive/SKILL.md +689 -689
- package/skills/engineering/playwright-interactive/agents/openai.yaml +6 -6
- package/skills/engineering/playwright-interactive/assets/playwright-small.svg +3 -3
- package/skills/engineering/render-deploy/LICENSE.txt +201 -201
- package/skills/engineering/render-deploy/SKILL.md +479 -479
- package/skills/engineering/render-deploy/agents/openai.yaml +14 -14
- package/skills/engineering/render-deploy/assets/docker.yaml +62 -62
- package/skills/engineering/render-deploy/assets/go-api.yaml +35 -35
- package/skills/engineering/render-deploy/assets/nextjs-postgres.yaml +35 -35
- package/skills/engineering/render-deploy/assets/node-express.yaml +25 -25
- package/skills/engineering/render-deploy/assets/python-django.yaml +89 -89
- package/skills/engineering/render-deploy/assets/render-small.svg +3 -3
- package/skills/engineering/render-deploy/assets/static-site.yaml +54 -54
- package/skills/engineering/render-deploy/references/blueprint-spec.md +718 -718
- package/skills/engineering/render-deploy/references/codebase-analysis.md +49 -49
- package/skills/engineering/render-deploy/references/configuration-guide.md +603 -603
- package/skills/engineering/render-deploy/references/deployment-details.md +224 -224
- package/skills/engineering/render-deploy/references/direct-creation.md +113 -113
- package/skills/engineering/render-deploy/references/error-patterns.md +13 -13
- package/skills/engineering/render-deploy/references/post-deploy-checks.md +36 -36
- package/skills/engineering/render-deploy/references/runtimes.md +473 -473
- package/skills/engineering/render-deploy/references/service-types.md +450 -450
- package/skills/engineering/render-deploy/references/troubleshooting-basics.md +36 -36
- package/skills/engineering/repomix/SKILL.md +215 -215
- package/skills/engineering/repomix/references/configuration.md +211 -211
- package/skills/engineering/repomix/references/usage-patterns.md +232 -232
- package/skills/engineering/repomix/scripts/README.md +179 -179
- package/skills/engineering/repomix/scripts/repomix_batch.py +455 -455
- package/skills/engineering/repomix/scripts/repos.example.json +15 -15
- package/skills/engineering/repomix/scripts/requirements.txt +15 -15
- package/skills/engineering/repomix/scripts/tests/test_repomix_batch.py +531 -531
- package/skills/engineering/setup-matt-pocock-skills/SKILL.md +121 -121
- package/skills/engineering/setup-matt-pocock-skills/domain.md +51 -51
- package/skills/engineering/setup-matt-pocock-skills/issue-tracker-github.md +22 -22
- package/skills/engineering/setup-matt-pocock-skills/issue-tracker-gitlab.md +23 -23
- package/skills/engineering/setup-matt-pocock-skills/issue-tracker-local.md +19 -19
- package/skills/engineering/setup-matt-pocock-skills/triage-labels.md +15 -15
- package/skills/engineering/shopify/README.md +66 -66
- package/skills/engineering/shopify/SKILL.md +319 -319
- package/skills/engineering/shopify/references/app-development.md +470 -470
- package/skills/engineering/shopify/references/extensions.md +493 -493
- package/skills/engineering/shopify/references/themes.md +498 -498
- package/skills/engineering/shopify/scripts/requirements.txt +19 -19
- package/skills/engineering/shopify/scripts/shopify_init.py +423 -423
- package/skills/engineering/shopify/scripts/tests/test_shopify_init.py +385 -385
- package/skills/engineering/tdd/SKILL.md +109 -109
- package/skills/engineering/tdd/deep-modules.md +33 -33
- package/skills/engineering/tdd/interface-design.md +31 -31
- package/skills/engineering/tdd/mocking.md +59 -59
- package/skills/engineering/tdd/refactoring.md +10 -10
- package/skills/engineering/tdd/tests.md +61 -61
- package/skills/engineering/to-issues/SKILL.md +81 -81
- package/skills/engineering/to-prd/SKILL.md +74 -74
- package/skills/engineering/triage/AGENT-BRIEF.md +168 -168
- package/skills/engineering/triage/OUT-OF-SCOPE.md +101 -101
- package/skills/engineering/triage/SKILL.md +103 -103
- package/skills/engineering/web-frameworks/SKILL.md +324 -324
- package/skills/engineering/web-frameworks/references/nextjs-app-router.md +465 -465
- package/skills/engineering/web-frameworks/references/nextjs-data-fetching.md +459 -459
- package/skills/engineering/web-frameworks/references/nextjs-optimization.md +511 -511
- package/skills/engineering/web-frameworks/references/nextjs-server-components.md +495 -495
- package/skills/engineering/web-frameworks/references/remix-icon-integration.md +603 -603
- package/skills/engineering/web-frameworks/references/turborepo-caching.md +551 -551
- package/skills/engineering/web-frameworks/references/turborepo-pipelines.md +517 -517
- package/skills/engineering/web-frameworks/references/turborepo-setup.md +542 -542
- package/skills/engineering/web-frameworks/scripts/nextjs_init.py +547 -547
- package/skills/engineering/web-frameworks/scripts/requirements.txt +16 -16
- package/skills/engineering/web-frameworks/scripts/tests/requirements.txt +3 -3
- package/skills/engineering/web-frameworks/scripts/tests/test_nextjs_init.py +319 -319
- package/skills/engineering/web-frameworks/scripts/tests/test_turborepo_migrate.py +374 -374
- package/skills/engineering/web-frameworks/scripts/turborepo_migrate.py +394 -394
- package/skills/engineering/write-a-skill/SKILL.md +117 -117
- package/skills/kilo-kit/SKILL.md +346 -346
- package/skills/kilo-kit/_template/SKILL.md +185 -185
- package/skills/kilo-kit/debugging/root-cause/SKILL.md +360 -360
- package/skills/kilo-kit/debugging/systematic/SKILL.md +339 -339
- package/skills/kilo-kit/debugging/verification/SKILL.md +424 -424
- package/skills/kilo-kit/development/backend/SKILL.md +540 -540
- package/skills/kilo-kit/development/security/SKILL.md +529 -529
- package/skills/kilo-kit/quality/code-review/SKILL.md +297 -297
- package/skills/kilo-kit/quality/testing/SKILL.md +540 -540
- package/skills/kilo-kit/references/output-formats.md +204 -204
- package/skills/kilo-kit/references/patterns.md +156 -156
- package/skills/kilo-kit/references/performance-benchmarks.md +90 -90
- package/skills/operations/chrome-devtools/SKILL.md +392 -392
- package/skills/operations/chrome-devtools/references/cdp-domains.md +694 -694
- package/skills/operations/chrome-devtools/references/performance-guide.md +940 -940
- package/skills/operations/chrome-devtools/references/puppeteer-reference.md +953 -953
- package/skills/operations/chrome-devtools/scripts/PERSISTENT-BROWSER.md +107 -107
- package/skills/operations/chrome-devtools/scripts/README.md +213 -213
- package/skills/operations/chrome-devtools/scripts/__tests__/selector.test.js +210 -210
- package/skills/operations/chrome-devtools/scripts/click.js +79 -79
- package/skills/operations/chrome-devtools/scripts/close-persistent.js +36 -36
- package/skills/operations/chrome-devtools/scripts/console.js +75 -75
- package/skills/operations/chrome-devtools/scripts/evaluate.js +49 -49
- package/skills/operations/chrome-devtools/scripts/fill.js +72 -72
- package/skills/operations/chrome-devtools/scripts/install-deps.sh +181 -181
- package/skills/operations/chrome-devtools/scripts/install.sh +83 -83
- package/skills/operations/chrome-devtools/scripts/launch-persistent.js +71 -71
- package/skills/operations/chrome-devtools/scripts/lib/browser.js +144 -144
- package/skills/operations/chrome-devtools/scripts/lib/selector.js +178 -178
- package/skills/operations/chrome-devtools/scripts/navigate.js +46 -46
- package/skills/operations/chrome-devtools/scripts/network.js +102 -102
- package/skills/operations/chrome-devtools/scripts/package-lock.json +1206 -1206
- package/skills/operations/chrome-devtools/scripts/package.json +15 -15
- package/skills/operations/chrome-devtools/scripts/performance.js +145 -145
- package/skills/operations/chrome-devtools/scripts/screenshot.js +180 -180
- package/skills/operations/chrome-devtools/scripts/snapshot.js +131 -131
- package/skills/operations/devops/.env.example +76 -76
- package/skills/operations/devops/SKILL.md +285 -285
- package/skills/operations/devops/references/browser-rendering.md +305 -305
- package/skills/operations/devops/references/cloudflare-d1-kv.md +123 -123
- package/skills/operations/devops/references/cloudflare-platform.md +271 -271
- package/skills/operations/devops/references/cloudflare-r2-storage.md +280 -280
- package/skills/operations/devops/references/cloudflare-workers-advanced.md +312 -312
- package/skills/operations/devops/references/cloudflare-workers-apis.md +309 -309
- package/skills/operations/devops/references/cloudflare-workers-basics.md +418 -418
- package/skills/operations/devops/references/docker-basics.md +297 -297
- package/skills/operations/devops/references/docker-compose.md +292 -292
- package/skills/operations/devops/references/gcloud-platform.md +297 -297
- package/skills/operations/devops/references/gcloud-services.md +304 -304
- package/skills/operations/devops/scripts/cloudflare_deploy.py +269 -269
- package/skills/operations/devops/scripts/docker_optimize.py +320 -320
- package/skills/operations/devops/scripts/requirements.txt +20 -20
- package/skills/operations/devops/scripts/tests/requirements.txt +3 -3
- package/skills/operations/devops/scripts/tests/test_cloudflare_deploy.py +285 -285
- package/skills/operations/devops/scripts/tests/test_docker_optimize.py +436 -436
- package/skills/operations/mcp-builder/LICENSE.txt +201 -201
- package/skills/operations/mcp-builder/SKILL.md +328 -328
- package/skills/operations/mcp-builder/reference/evaluation.md +601 -601
- package/skills/operations/mcp-builder/reference/mcp_best_practices.md +915 -915
- package/skills/operations/mcp-builder/reference/node_mcp_server.md +915 -915
- package/skills/operations/mcp-builder/reference/python_mcp_server.md +751 -751
- package/skills/operations/mcp-builder/scripts/connections.py +151 -151
- package/skills/operations/mcp-builder/scripts/evaluation.py +373 -373
- package/skills/operations/mcp-builder/scripts/example_evaluation.xml +22 -22
- package/skills/operations/mcp-builder/scripts/requirements.txt +2 -2
- package/skills/operations/mcp-management/README.md +219 -219
- package/skills/operations/mcp-management/SKILL.md +175 -175
- package/skills/operations/mcp-management/assets/tools.json +3043 -3043
- package/skills/operations/mcp-management/references/configuration.md +114 -114
- package/skills/operations/mcp-management/references/gemini-cli-integration.md +201 -201
- package/skills/operations/mcp-management/references/mcp-protocol.md +116 -116
- package/skills/operations/mcp-management/scripts/.env.example +10 -10
- package/skills/operations/mcp-management/scripts/cli.ts +155 -155
- package/skills/operations/mcp-management/scripts/dist/analyze-tools.js +70 -70
- package/skills/operations/mcp-management/scripts/dist/cli.js +131 -131
- package/skills/operations/mcp-management/scripts/dist/mcp-client.js +115 -115
- package/skills/operations/mcp-management/scripts/mcp-client.ts +163 -163
- package/skills/operations/mcp-management/scripts/package.json +18 -18
- package/skills/operations/mcp-management/scripts/tsconfig.json +15 -15
- package/skills/problem-solving/collision-zone-thinking/SKILL.md +62 -62
- package/skills/problem-solving/defense-in-depth/SKILL.md +130 -130
- package/skills/problem-solving/inversion-exercise/SKILL.md +58 -58
- package/skills/problem-solving/meta-pattern-recognition/SKILL.md +54 -54
- package/skills/problem-solving/root-cause-tracing/SKILL.md +177 -177
- package/skills/problem-solving/root-cause-tracing/find-polluter.sh +63 -63
- package/skills/problem-solving/scale-game/SKILL.md +63 -63
- package/skills/problem-solving/sequential-thinking/README.md +118 -118
- package/skills/problem-solving/sequential-thinking/SKILL.md +93 -93
- package/skills/problem-solving/sequential-thinking/references/advanced.md +122 -122
- package/skills/problem-solving/sequential-thinking/references/examples.md +274 -274
- package/skills/problem-solving/simplification-cascades/SKILL.md +76 -76
- package/skills/problem-solving/when-stuck/SKILL.md +88 -88
- package/skills/productivity/caveman/SKILL.md +49 -49
- package/skills/productivity/grill-me/SKILL.md +10 -10
- package/skills/productivity/grill-with-docs/ADR-FORMAT.md +47 -47
- package/skills/productivity/grill-with-docs/CONTEXT-FORMAT.md +77 -77
- package/skills/productivity/grill-with-docs/SKILL.md +88 -88
- package/skills/productivity/writing-skills/graphviz-conventions.dot +171 -171
- package/skills/productivity/zoom-out/SKILL.md +7 -7
- package/skills/writing-docs/doc/LICENSE.txt +201 -201
- package/skills/writing-docs/doc/SKILL.md +80 -80
- package/skills/writing-docs/doc/agents/openai.yaml +6 -6
- package/skills/writing-docs/doc/assets/doc-small.svg +3 -3
- package/skills/writing-docs/doc/scripts/render_docx.py +296 -296
- package/skills/writing-docs/docx/LICENSE.txt +30 -30
- package/skills/writing-docs/docx/SKILL.md +196 -196
- package/skills/writing-docs/docx/docx-js.md +349 -349
- package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -1499
- package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -146
- package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -1085
- package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -11
- package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -3081
- package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -23
- package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -185
- package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -287
- package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -1676
- package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -28
- package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -144
- package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -174
- package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -25
- package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -18
- package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -59
- package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -56
- package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -195
- package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -582
- package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -25
- package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -4439
- package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -570
- package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -509
- package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -12
- package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -108
- package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -96
- package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -3646
- package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -116
- package/skills/writing-docs/docx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -42
- package/skills/writing-docs/docx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -50
- package/skills/writing-docs/docx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -49
- package/skills/writing-docs/docx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -33
- package/skills/writing-docs/docx/ooxml/schemas/mce/mc.xsd +75 -75
- package/skills/writing-docs/docx/ooxml/schemas/microsoft/wml-2010.xsd +560 -560
- package/skills/writing-docs/docx/ooxml/schemas/microsoft/wml-2012.xsd +67 -67
- package/skills/writing-docs/docx/ooxml/schemas/microsoft/wml-2018.xsd +14 -14
- package/skills/writing-docs/docx/ooxml/schemas/microsoft/wml-cex-2018.xsd +20 -20
- package/skills/writing-docs/docx/ooxml/schemas/microsoft/wml-cid-2016.xsd +13 -13
- package/skills/writing-docs/docx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -4
- package/skills/writing-docs/docx/ooxml/schemas/microsoft/wml-symex-2015.xsd +8 -8
- package/skills/writing-docs/docx/ooxml/scripts/pack.py +159 -159
- package/skills/writing-docs/docx/ooxml/scripts/unpack.py +29 -29
- package/skills/writing-docs/docx/ooxml/scripts/validate.py +69 -69
- package/skills/writing-docs/docx/ooxml/scripts/validation/__init__.py +15 -15
- package/skills/writing-docs/docx/ooxml/scripts/validation/base.py +951 -951
- package/skills/writing-docs/docx/ooxml/scripts/validation/docx.py +274 -274
- package/skills/writing-docs/docx/ooxml/scripts/validation/pptx.py +315 -315
- package/skills/writing-docs/docx/ooxml/scripts/validation/redlining.py +279 -279
- package/skills/writing-docs/docx/ooxml.md +609 -609
- package/skills/writing-docs/docx/scripts/__init__.py +1 -1
- package/skills/writing-docs/docx/scripts/document.py +1276 -1276
- package/skills/writing-docs/docx/scripts/templates/comments.xml +2 -2
- package/skills/writing-docs/docx/scripts/templates/commentsExtended.xml +2 -2
- package/skills/writing-docs/docx/scripts/templates/commentsExtensible.xml +2 -2
- package/skills/writing-docs/docx/scripts/templates/commentsIds.xml +2 -2
- package/skills/writing-docs/docx/scripts/templates/people.xml +2 -2
- package/skills/writing-docs/docx/scripts/utilities.py +374 -374
- package/skills/writing-docs/mermaidjs-v11/SKILL.md +115 -115
- package/skills/writing-docs/mermaidjs-v11/references/cli-usage.md +228 -228
- package/skills/writing-docs/mermaidjs-v11/references/configuration.md +232 -232
- package/skills/writing-docs/mermaidjs-v11/references/diagram-types.md +315 -315
- package/skills/writing-docs/mermaidjs-v11/references/examples.md +344 -344
- package/skills/writing-docs/mermaidjs-v11/references/integration.md +310 -310
- package/skills/writing-docs/pdf/LICENSE.txt +30 -30
- package/skills/writing-docs/pdf/SKILL.md +294 -294
- package/skills/writing-docs/pdf/forms.md +205 -205
- package/skills/writing-docs/pdf/reference.md +611 -611
- package/skills/writing-docs/pdf/scripts/check_bounding_boxes.py +70 -70
- package/skills/writing-docs/pdf/scripts/check_bounding_boxes_test.py +226 -226
- package/skills/writing-docs/pdf/scripts/check_fillable_fields.py +12 -12
- package/skills/writing-docs/pdf/scripts/convert_pdf_to_images.py +35 -35
- package/skills/writing-docs/pdf/scripts/create_validation_image.py +41 -41
- package/skills/writing-docs/pdf/scripts/extract_form_field_info.py +152 -152
- package/skills/writing-docs/pdf/scripts/fill_fillable_fields.py +114 -114
- package/skills/writing-docs/pdf/scripts/fill_pdf_form_with_annotations.py +107 -107
- package/skills/writing-docs/pptx/LICENSE.txt +30 -30
- package/skills/writing-docs/pptx/SKILL.md +483 -483
- package/skills/writing-docs/pptx/html2pptx.md +624 -624
- package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -1499
- package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -146
- package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -1085
- package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -11
- package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -3081
- package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -23
- package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -185
- package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -287
- package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -1676
- package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -28
- package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -144
- package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -174
- package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -25
- package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -18
- package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -59
- package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -56
- package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -195
- package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -582
- package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -25
- package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -4439
- package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -570
- package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -509
- package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -12
- package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -108
- package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -96
- package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -3646
- package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -116
- package/skills/writing-docs/pptx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -42
- package/skills/writing-docs/pptx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -50
- package/skills/writing-docs/pptx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -49
- package/skills/writing-docs/pptx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -33
- package/skills/writing-docs/pptx/ooxml/schemas/mce/mc.xsd +75 -75
- package/skills/writing-docs/pptx/ooxml/schemas/microsoft/wml-2010.xsd +560 -560
- package/skills/writing-docs/pptx/ooxml/schemas/microsoft/wml-2012.xsd +67 -67
- package/skills/writing-docs/pptx/ooxml/schemas/microsoft/wml-2018.xsd +14 -14
- package/skills/writing-docs/pptx/ooxml/schemas/microsoft/wml-cex-2018.xsd +20 -20
- package/skills/writing-docs/pptx/ooxml/schemas/microsoft/wml-cid-2016.xsd +13 -13
- package/skills/writing-docs/pptx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -4
- package/skills/writing-docs/pptx/ooxml/schemas/microsoft/wml-symex-2015.xsd +8 -8
- package/skills/writing-docs/pptx/ooxml/scripts/pack.py +159 -159
- package/skills/writing-docs/pptx/ooxml/scripts/unpack.py +29 -29
- package/skills/writing-docs/pptx/ooxml/scripts/validate.py +69 -69
- package/skills/writing-docs/pptx/ooxml/scripts/validation/__init__.py +15 -15
- package/skills/writing-docs/pptx/ooxml/scripts/validation/base.py +951 -951
- package/skills/writing-docs/pptx/ooxml/scripts/validation/docx.py +274 -274
- package/skills/writing-docs/pptx/ooxml/scripts/validation/pptx.py +315 -315
- package/skills/writing-docs/pptx/ooxml/scripts/validation/redlining.py +279 -279
- package/skills/writing-docs/pptx/ooxml.md +426 -426
- package/skills/writing-docs/pptx/scripts/html2pptx.js +978 -978
- package/skills/writing-docs/pptx/scripts/inventory.py +1020 -1020
- package/skills/writing-docs/pptx/scripts/rearrange.py +231 -231
- package/skills/writing-docs/pptx/scripts/replace.py +385 -385
- package/skills/writing-docs/pptx/scripts/thumbnail.py +450 -450
- package/skills/writing-docs/slides/LICENSE.txt +201 -201
- package/skills/writing-docs/slides/SKILL.md +71 -71
- package/skills/writing-docs/slides/agents/openai.yaml +6 -6
- package/skills/writing-docs/slides/assets/pptxgenjs_helpers/code.js +104 -104
- package/skills/writing-docs/slides/assets/pptxgenjs_helpers/image.js +333 -333
- package/skills/writing-docs/slides/assets/pptxgenjs_helpers/index.js +33 -33
- package/skills/writing-docs/slides/assets/pptxgenjs_helpers/latex.js +51 -51
- package/skills/writing-docs/slides/assets/pptxgenjs_helpers/layout.js +643 -643
- package/skills/writing-docs/slides/assets/pptxgenjs_helpers/layout_builders.js +358 -358
- package/skills/writing-docs/slides/assets/pptxgenjs_helpers/svg.js +36 -36
- package/skills/writing-docs/slides/assets/pptxgenjs_helpers/text.js +789 -789
- package/skills/writing-docs/slides/assets/pptxgenjs_helpers/util.js +24 -24
- package/skills/writing-docs/slides/assets/slides-small.svg +3 -3
- package/skills/writing-docs/slides/references/pptxgenjs-helpers.md +61 -61
- package/skills/writing-docs/slides/scripts/create_montage.py +300 -300
- package/skills/writing-docs/slides/scripts/detect_font.py +873 -873
- package/skills/writing-docs/slides/scripts/ensure_raster_image.py +202 -202
- package/skills/writing-docs/slides/scripts/render_slides.py +273 -273
- package/skills/writing-docs/slides/scripts/slides_test.py +201 -201
- package/skills/writing-docs/template-skill/SKILL.md +26 -26
- package/skills/writing-docs/xlsx/LICENSE.txt +30 -30
- package/skills/writing-docs/xlsx/SKILL.md +288 -288
- package/skills/writing-docs/xlsx/recalc.py +177 -177
- package/src/core/KILO_MASTER.md +448 -448
- package/src/tools/validate-skill.js +421 -421
|
@@ -1,201 +1,201 @@
|
|
|
1
|
-
#!/usr/bin/env python3
|
|
2
|
-
# Copyright (c) OpenAI. All rights reserved.
|
|
3
|
-
import argparse
|
|
4
|
-
import sys
|
|
5
|
-
import tempfile
|
|
6
|
-
from os.path import abspath, expanduser, join
|
|
7
|
-
from pathlib import Path
|
|
8
|
-
from typing import Sequence, cast
|
|
9
|
-
|
|
10
|
-
import numpy as np
|
|
11
|
-
|
|
12
|
-
SCRIPT_DIR = Path(__file__).resolve().parent
|
|
13
|
-
if str(SCRIPT_DIR) not in sys.path:
|
|
14
|
-
sys.path.insert(0, str(SCRIPT_DIR))
|
|
15
|
-
|
|
16
|
-
import render_slides # type: ignore
|
|
17
|
-
from PIL import Image
|
|
18
|
-
from pptx import Presentation
|
|
19
|
-
from pptx.dml.color import RGBColor
|
|
20
|
-
from pptx.enum.shapes import MSO_AUTO_SHAPE_TYPE
|
|
21
|
-
from pptx.util import Emu
|
|
22
|
-
|
|
23
|
-
# Configuration specific to overflow checking
|
|
24
|
-
PAD_PX: int = 100 # fixed padding on every side in pixels
|
|
25
|
-
PAD_RGB = (200, 200, 200)
|
|
26
|
-
EMU_PER_INCH: int = 914_400
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
def px_to_emu(px: int, dpi: int) -> Emu:
|
|
30
|
-
return Emu(int(px * EMU_PER_INCH // dpi))
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
def calc_tol(dpi: int) -> int:
|
|
34
|
-
"""Calculate per-channel colour tolerance appropriate for *dpi* (anti-aliasing tolerance)."""
|
|
35
|
-
if dpi >= 300:
|
|
36
|
-
return 0
|
|
37
|
-
# 1 at 250 DPI, 5 at 150 DPI, capped to 10.
|
|
38
|
-
tol = round((300 - dpi) / 25)
|
|
39
|
-
return min(max(tol, 1), 10)
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
def enlarge_deck(src: str, dst: str, pad_emu: Emu) -> tuple[int, int]:
|
|
43
|
-
"""Enlarge the input PPTX with a fixed grey padding and return the new page size."""
|
|
44
|
-
prs = Presentation(src)
|
|
45
|
-
w0 = cast(Emu, prs.slide_width)
|
|
46
|
-
h0 = cast(Emu, prs.slide_height)
|
|
47
|
-
w1 = Emu(w0 + 2 * pad_emu)
|
|
48
|
-
h1 = Emu(h0 + 2 * pad_emu)
|
|
49
|
-
prs.slide_width = w1
|
|
50
|
-
prs.slide_height = h1
|
|
51
|
-
|
|
52
|
-
for slide in prs.slides:
|
|
53
|
-
# Shift all shapes so the original canvas sits centred in the new deck.
|
|
54
|
-
for shp in list(slide.shapes):
|
|
55
|
-
shp.left = Emu(int(shp.left) + pad_emu)
|
|
56
|
-
shp.top = Emu(int(shp.top) + pad_emu)
|
|
57
|
-
|
|
58
|
-
pads = (
|
|
59
|
-
(Emu(0), Emu(0), pad_emu, h1), # left
|
|
60
|
-
(Emu(int(w1) - int(pad_emu)), Emu(0), pad_emu, h1), # right
|
|
61
|
-
(Emu(0), Emu(0), w1, pad_emu), # top
|
|
62
|
-
(Emu(0), Emu(int(h1) - int(pad_emu)), w1, pad_emu), # bottom
|
|
63
|
-
)
|
|
64
|
-
|
|
65
|
-
sp_tree = slide.shapes._spTree # pylint: disable=protected-access
|
|
66
|
-
|
|
67
|
-
for left, top, width, height in pads:
|
|
68
|
-
pad_shape = slide.shapes.add_shape(
|
|
69
|
-
MSO_AUTO_SHAPE_TYPE.RECTANGLE, left, top, width, height
|
|
70
|
-
)
|
|
71
|
-
pad_shape.fill.solid()
|
|
72
|
-
pad_shape.fill.fore_color.rgb = RGBColor(*PAD_RGB)
|
|
73
|
-
pad_shape.line.fill.background()
|
|
74
|
-
|
|
75
|
-
# Send pad behind all other shapes (index 2 after mandatory nodes)
|
|
76
|
-
sp_tree.remove(pad_shape._element)
|
|
77
|
-
sp_tree.insert(2, pad_shape._element)
|
|
78
|
-
|
|
79
|
-
prs.save(dst)
|
|
80
|
-
return int(w1), int(h1)
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
def inspect_images(
|
|
84
|
-
paths: Sequence[str],
|
|
85
|
-
pad_ratio_w: float,
|
|
86
|
-
pad_ratio_h: float,
|
|
87
|
-
dpi: int,
|
|
88
|
-
) -> list[int]:
|
|
89
|
-
"""Return 1-based indices of slides that contain pixels outside the pad."""
|
|
90
|
-
|
|
91
|
-
tol = calc_tol(dpi)
|
|
92
|
-
failures: list[int] = []
|
|
93
|
-
pad_colour = np.array(PAD_RGB, dtype=np.uint8)
|
|
94
|
-
|
|
95
|
-
for idx, img_path in enumerate(paths, start=1):
|
|
96
|
-
with Image.open(img_path) as img:
|
|
97
|
-
rgb = img.convert("RGB")
|
|
98
|
-
arr = np.asarray(rgb)
|
|
99
|
-
|
|
100
|
-
h, w, _ = arr.shape
|
|
101
|
-
# Exclude the innermost 1-pixel band
|
|
102
|
-
pad_x = int(w * pad_ratio_w) - 1
|
|
103
|
-
pad_y = int(h * pad_ratio_h) - 1
|
|
104
|
-
|
|
105
|
-
left_margin = arr[:, :pad_x, :]
|
|
106
|
-
right_margin = arr[:, w - pad_x :, :]
|
|
107
|
-
top_margin = arr[:pad_y, :, :]
|
|
108
|
-
bottom_margin = arr[h - pad_y :, :, :]
|
|
109
|
-
|
|
110
|
-
def _is_clean(margin: np.ndarray) -> bool:
|
|
111
|
-
diff = np.abs(margin.astype(np.int16) - pad_colour)
|
|
112
|
-
matches = np.all(diff <= tol, axis=-1)
|
|
113
|
-
mismatch_fraction = 1.0 - (np.count_nonzero(matches) / matches.size)
|
|
114
|
-
if dpi >= 300:
|
|
115
|
-
max_mismatch = 0.01
|
|
116
|
-
elif dpi >= 200:
|
|
117
|
-
max_mismatch = 0.02
|
|
118
|
-
else:
|
|
119
|
-
max_mismatch = 0.03
|
|
120
|
-
return mismatch_fraction <= max_mismatch
|
|
121
|
-
|
|
122
|
-
if not (
|
|
123
|
-
_is_clean(left_margin)
|
|
124
|
-
and _is_clean(right_margin)
|
|
125
|
-
and _is_clean(top_margin)
|
|
126
|
-
and _is_clean(bottom_margin)
|
|
127
|
-
):
|
|
128
|
-
failures.append(idx)
|
|
129
|
-
|
|
130
|
-
return failures
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
def main() -> None:
|
|
134
|
-
parser = argparse.ArgumentParser(
|
|
135
|
-
description=(
|
|
136
|
-
"Check a PPTX for content overflowing the original canvas by rendering with padding "
|
|
137
|
-
"and inspecting the margins."
|
|
138
|
-
)
|
|
139
|
-
)
|
|
140
|
-
parser.add_argument(
|
|
141
|
-
"input_path",
|
|
142
|
-
type=str,
|
|
143
|
-
help="Path to the input PPTX file.",
|
|
144
|
-
)
|
|
145
|
-
parser.add_argument(
|
|
146
|
-
"--width",
|
|
147
|
-
type=int,
|
|
148
|
-
default=1600,
|
|
149
|
-
help=(
|
|
150
|
-
"Approximate maximum width in pixels after isotropic scaling (default 1600). "
|
|
151
|
-
"The actual value may exceed slightly."
|
|
152
|
-
),
|
|
153
|
-
)
|
|
154
|
-
parser.add_argument(
|
|
155
|
-
"--height",
|
|
156
|
-
type=int,
|
|
157
|
-
default=900,
|
|
158
|
-
help=(
|
|
159
|
-
"Approximate maximum height in pixels after isotropic scaling (default 900). "
|
|
160
|
-
"The actual value may exceed slightly."
|
|
161
|
-
),
|
|
162
|
-
)
|
|
163
|
-
parser.add_argument(
|
|
164
|
-
"--pad_px",
|
|
165
|
-
type=int,
|
|
166
|
-
default=PAD_PX,
|
|
167
|
-
help="Padding in pixels to add on each side before rasterization.",
|
|
168
|
-
)
|
|
169
|
-
args = parser.parse_args()
|
|
170
|
-
|
|
171
|
-
input_path = abspath(expanduser(args.input_path))
|
|
172
|
-
# Width and height refer to the original, unaltered slide dimensions.
|
|
173
|
-
dpi = render_slides.calc_dpi_via_ooxml(input_path, args.width, args.height)
|
|
174
|
-
|
|
175
|
-
# Not using ``tempfile.TemporaryDirectory(delete=False)`` for Python 3.11 compatibility.
|
|
176
|
-
tmpdir = tempfile.mkdtemp()
|
|
177
|
-
enlarged_pptx = join(tmpdir, "enlarged.pptx")
|
|
178
|
-
pad_emu = px_to_emu(args.pad_px, dpi)
|
|
179
|
-
w1, h1 = enlarge_deck(input_path, enlarged_pptx, pad_emu=pad_emu)
|
|
180
|
-
pad_ratio_w = pad_emu / w1
|
|
181
|
-
pad_ratio_h = pad_emu / h1
|
|
182
|
-
|
|
183
|
-
img_dir = join(tmpdir, "imgs")
|
|
184
|
-
img_paths = render_slides.rasterize(enlarged_pptx, img_dir, dpi)
|
|
185
|
-
failing = inspect_images(img_paths, pad_ratio_w, pad_ratio_h, dpi)
|
|
186
|
-
|
|
187
|
-
if failing:
|
|
188
|
-
print(
|
|
189
|
-
"ERROR: Slides with content overflowing original canvas (1-based indexing): "
|
|
190
|
-
+ ", ".join(map(str, failing))
|
|
191
|
-
+ "\n"
|
|
192
|
-
+ "Rendered images with grey paddings for problematic slides are available at: "
|
|
193
|
-
)
|
|
194
|
-
for i in failing:
|
|
195
|
-
print(img_paths[i - 1])
|
|
196
|
-
else:
|
|
197
|
-
print("Test passed. No overflow detected.")
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
if __name__ == "__main__":
|
|
201
|
-
main()
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
# Copyright (c) OpenAI. All rights reserved.
|
|
3
|
+
import argparse
|
|
4
|
+
import sys
|
|
5
|
+
import tempfile
|
|
6
|
+
from os.path import abspath, expanduser, join
|
|
7
|
+
from pathlib import Path
|
|
8
|
+
from typing import Sequence, cast
|
|
9
|
+
|
|
10
|
+
import numpy as np
|
|
11
|
+
|
|
12
|
+
SCRIPT_DIR = Path(__file__).resolve().parent
|
|
13
|
+
if str(SCRIPT_DIR) not in sys.path:
|
|
14
|
+
sys.path.insert(0, str(SCRIPT_DIR))
|
|
15
|
+
|
|
16
|
+
import render_slides # type: ignore
|
|
17
|
+
from PIL import Image
|
|
18
|
+
from pptx import Presentation
|
|
19
|
+
from pptx.dml.color import RGBColor
|
|
20
|
+
from pptx.enum.shapes import MSO_AUTO_SHAPE_TYPE
|
|
21
|
+
from pptx.util import Emu
|
|
22
|
+
|
|
23
|
+
# Configuration specific to overflow checking
|
|
24
|
+
PAD_PX: int = 100 # fixed padding on every side in pixels
|
|
25
|
+
PAD_RGB = (200, 200, 200)
|
|
26
|
+
EMU_PER_INCH: int = 914_400
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
def px_to_emu(px: int, dpi: int) -> Emu:
|
|
30
|
+
return Emu(int(px * EMU_PER_INCH // dpi))
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
def calc_tol(dpi: int) -> int:
|
|
34
|
+
"""Calculate per-channel colour tolerance appropriate for *dpi* (anti-aliasing tolerance)."""
|
|
35
|
+
if dpi >= 300:
|
|
36
|
+
return 0
|
|
37
|
+
# 1 at 250 DPI, 5 at 150 DPI, capped to 10.
|
|
38
|
+
tol = round((300 - dpi) / 25)
|
|
39
|
+
return min(max(tol, 1), 10)
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
def enlarge_deck(src: str, dst: str, pad_emu: Emu) -> tuple[int, int]:
|
|
43
|
+
"""Enlarge the input PPTX with a fixed grey padding and return the new page size."""
|
|
44
|
+
prs = Presentation(src)
|
|
45
|
+
w0 = cast(Emu, prs.slide_width)
|
|
46
|
+
h0 = cast(Emu, prs.slide_height)
|
|
47
|
+
w1 = Emu(w0 + 2 * pad_emu)
|
|
48
|
+
h1 = Emu(h0 + 2 * pad_emu)
|
|
49
|
+
prs.slide_width = w1
|
|
50
|
+
prs.slide_height = h1
|
|
51
|
+
|
|
52
|
+
for slide in prs.slides:
|
|
53
|
+
# Shift all shapes so the original canvas sits centred in the new deck.
|
|
54
|
+
for shp in list(slide.shapes):
|
|
55
|
+
shp.left = Emu(int(shp.left) + pad_emu)
|
|
56
|
+
shp.top = Emu(int(shp.top) + pad_emu)
|
|
57
|
+
|
|
58
|
+
pads = (
|
|
59
|
+
(Emu(0), Emu(0), pad_emu, h1), # left
|
|
60
|
+
(Emu(int(w1) - int(pad_emu)), Emu(0), pad_emu, h1), # right
|
|
61
|
+
(Emu(0), Emu(0), w1, pad_emu), # top
|
|
62
|
+
(Emu(0), Emu(int(h1) - int(pad_emu)), w1, pad_emu), # bottom
|
|
63
|
+
)
|
|
64
|
+
|
|
65
|
+
sp_tree = slide.shapes._spTree # pylint: disable=protected-access
|
|
66
|
+
|
|
67
|
+
for left, top, width, height in pads:
|
|
68
|
+
pad_shape = slide.shapes.add_shape(
|
|
69
|
+
MSO_AUTO_SHAPE_TYPE.RECTANGLE, left, top, width, height
|
|
70
|
+
)
|
|
71
|
+
pad_shape.fill.solid()
|
|
72
|
+
pad_shape.fill.fore_color.rgb = RGBColor(*PAD_RGB)
|
|
73
|
+
pad_shape.line.fill.background()
|
|
74
|
+
|
|
75
|
+
# Send pad behind all other shapes (index 2 after mandatory nodes)
|
|
76
|
+
sp_tree.remove(pad_shape._element)
|
|
77
|
+
sp_tree.insert(2, pad_shape._element)
|
|
78
|
+
|
|
79
|
+
prs.save(dst)
|
|
80
|
+
return int(w1), int(h1)
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
def inspect_images(
|
|
84
|
+
paths: Sequence[str],
|
|
85
|
+
pad_ratio_w: float,
|
|
86
|
+
pad_ratio_h: float,
|
|
87
|
+
dpi: int,
|
|
88
|
+
) -> list[int]:
|
|
89
|
+
"""Return 1-based indices of slides that contain pixels outside the pad."""
|
|
90
|
+
|
|
91
|
+
tol = calc_tol(dpi)
|
|
92
|
+
failures: list[int] = []
|
|
93
|
+
pad_colour = np.array(PAD_RGB, dtype=np.uint8)
|
|
94
|
+
|
|
95
|
+
for idx, img_path in enumerate(paths, start=1):
|
|
96
|
+
with Image.open(img_path) as img:
|
|
97
|
+
rgb = img.convert("RGB")
|
|
98
|
+
arr = np.asarray(rgb)
|
|
99
|
+
|
|
100
|
+
h, w, _ = arr.shape
|
|
101
|
+
# Exclude the innermost 1-pixel band
|
|
102
|
+
pad_x = int(w * pad_ratio_w) - 1
|
|
103
|
+
pad_y = int(h * pad_ratio_h) - 1
|
|
104
|
+
|
|
105
|
+
left_margin = arr[:, :pad_x, :]
|
|
106
|
+
right_margin = arr[:, w - pad_x :, :]
|
|
107
|
+
top_margin = arr[:pad_y, :, :]
|
|
108
|
+
bottom_margin = arr[h - pad_y :, :, :]
|
|
109
|
+
|
|
110
|
+
def _is_clean(margin: np.ndarray) -> bool:
|
|
111
|
+
diff = np.abs(margin.astype(np.int16) - pad_colour)
|
|
112
|
+
matches = np.all(diff <= tol, axis=-1)
|
|
113
|
+
mismatch_fraction = 1.0 - (np.count_nonzero(matches) / matches.size)
|
|
114
|
+
if dpi >= 300:
|
|
115
|
+
max_mismatch = 0.01
|
|
116
|
+
elif dpi >= 200:
|
|
117
|
+
max_mismatch = 0.02
|
|
118
|
+
else:
|
|
119
|
+
max_mismatch = 0.03
|
|
120
|
+
return mismatch_fraction <= max_mismatch
|
|
121
|
+
|
|
122
|
+
if not (
|
|
123
|
+
_is_clean(left_margin)
|
|
124
|
+
and _is_clean(right_margin)
|
|
125
|
+
and _is_clean(top_margin)
|
|
126
|
+
and _is_clean(bottom_margin)
|
|
127
|
+
):
|
|
128
|
+
failures.append(idx)
|
|
129
|
+
|
|
130
|
+
return failures
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
def main() -> None:
|
|
134
|
+
parser = argparse.ArgumentParser(
|
|
135
|
+
description=(
|
|
136
|
+
"Check a PPTX for content overflowing the original canvas by rendering with padding "
|
|
137
|
+
"and inspecting the margins."
|
|
138
|
+
)
|
|
139
|
+
)
|
|
140
|
+
parser.add_argument(
|
|
141
|
+
"input_path",
|
|
142
|
+
type=str,
|
|
143
|
+
help="Path to the input PPTX file.",
|
|
144
|
+
)
|
|
145
|
+
parser.add_argument(
|
|
146
|
+
"--width",
|
|
147
|
+
type=int,
|
|
148
|
+
default=1600,
|
|
149
|
+
help=(
|
|
150
|
+
"Approximate maximum width in pixels after isotropic scaling (default 1600). "
|
|
151
|
+
"The actual value may exceed slightly."
|
|
152
|
+
),
|
|
153
|
+
)
|
|
154
|
+
parser.add_argument(
|
|
155
|
+
"--height",
|
|
156
|
+
type=int,
|
|
157
|
+
default=900,
|
|
158
|
+
help=(
|
|
159
|
+
"Approximate maximum height in pixels after isotropic scaling (default 900). "
|
|
160
|
+
"The actual value may exceed slightly."
|
|
161
|
+
),
|
|
162
|
+
)
|
|
163
|
+
parser.add_argument(
|
|
164
|
+
"--pad_px",
|
|
165
|
+
type=int,
|
|
166
|
+
default=PAD_PX,
|
|
167
|
+
help="Padding in pixels to add on each side before rasterization.",
|
|
168
|
+
)
|
|
169
|
+
args = parser.parse_args()
|
|
170
|
+
|
|
171
|
+
input_path = abspath(expanduser(args.input_path))
|
|
172
|
+
# Width and height refer to the original, unaltered slide dimensions.
|
|
173
|
+
dpi = render_slides.calc_dpi_via_ooxml(input_path, args.width, args.height)
|
|
174
|
+
|
|
175
|
+
# Not using ``tempfile.TemporaryDirectory(delete=False)`` for Python 3.11 compatibility.
|
|
176
|
+
tmpdir = tempfile.mkdtemp()
|
|
177
|
+
enlarged_pptx = join(tmpdir, "enlarged.pptx")
|
|
178
|
+
pad_emu = px_to_emu(args.pad_px, dpi)
|
|
179
|
+
w1, h1 = enlarge_deck(input_path, enlarged_pptx, pad_emu=pad_emu)
|
|
180
|
+
pad_ratio_w = pad_emu / w1
|
|
181
|
+
pad_ratio_h = pad_emu / h1
|
|
182
|
+
|
|
183
|
+
img_dir = join(tmpdir, "imgs")
|
|
184
|
+
img_paths = render_slides.rasterize(enlarged_pptx, img_dir, dpi)
|
|
185
|
+
failing = inspect_images(img_paths, pad_ratio_w, pad_ratio_h, dpi)
|
|
186
|
+
|
|
187
|
+
if failing:
|
|
188
|
+
print(
|
|
189
|
+
"ERROR: Slides with content overflowing original canvas (1-based indexing): "
|
|
190
|
+
+ ", ".join(map(str, failing))
|
|
191
|
+
+ "\n"
|
|
192
|
+
+ "Rendered images with grey paddings for problematic slides are available at: "
|
|
193
|
+
)
|
|
194
|
+
for i in failing:
|
|
195
|
+
print(img_paths[i - 1])
|
|
196
|
+
else:
|
|
197
|
+
print("Test passed. No overflow detected.")
|
|
198
|
+
|
|
199
|
+
|
|
200
|
+
if __name__ == "__main__":
|
|
201
|
+
main()
|
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: template-skill
|
|
3
|
-
description: A template for creating new modular and scalable agent skills.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Template Skill
|
|
7
|
-
|
|
8
|
-
This is a blueprint for creating new skills. Follow this folder structure and the guidelines in `STRUCTURE.md`.
|
|
9
|
-
|
|
10
|
-
## Folder Layout
|
|
11
|
-
|
|
12
|
-
- `SKILL.md`: Metadata and high-level instructions.
|
|
13
|
-
- `scripts/`: Implementation logic (Python/Node).
|
|
14
|
-
- `resources/`: Prompts, reference documents, or static data.
|
|
15
|
-
- `examples/`: Sample usage for the agent to learn from.
|
|
16
|
-
- `tests/`: Basic verification to ensure the skill works.
|
|
17
|
-
|
|
18
|
-
## Guidelines
|
|
19
|
-
|
|
20
|
-
1. **Self-Documentation**: Always keep `SKILL.md` updated with the latest capabilities.
|
|
21
|
-
2. **Utilities**: Import from `../common/` for logging and environment management.
|
|
22
|
-
3. **Artifacts**: Store temporary outputs in `artifacts/` (don't commit these).
|
|
23
|
-
|
|
24
|
-
## Usage Example
|
|
25
|
-
|
|
26
|
-
Refer to `examples/basic_usage.md` for a demonstration.
|
|
1
|
+
---
|
|
2
|
+
name: template-skill
|
|
3
|
+
description: A template for creating new modular and scalable agent skills.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Template Skill
|
|
7
|
+
|
|
8
|
+
This is a blueprint for creating new skills. Follow this folder structure and the guidelines in `STRUCTURE.md`.
|
|
9
|
+
|
|
10
|
+
## Folder Layout
|
|
11
|
+
|
|
12
|
+
- `SKILL.md`: Metadata and high-level instructions.
|
|
13
|
+
- `scripts/`: Implementation logic (Python/Node).
|
|
14
|
+
- `resources/`: Prompts, reference documents, or static data.
|
|
15
|
+
- `examples/`: Sample usage for the agent to learn from.
|
|
16
|
+
- `tests/`: Basic verification to ensure the skill works.
|
|
17
|
+
|
|
18
|
+
## Guidelines
|
|
19
|
+
|
|
20
|
+
1. **Self-Documentation**: Always keep `SKILL.md` updated with the latest capabilities.
|
|
21
|
+
2. **Utilities**: Import from `../common/` for logging and environment management.
|
|
22
|
+
3. **Artifacts**: Store temporary outputs in `artifacts/` (don't commit these).
|
|
23
|
+
|
|
24
|
+
## Usage Example
|
|
25
|
+
|
|
26
|
+
Refer to `examples/basic_usage.md` for a demonstration.
|
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
© 2025 Anthropic, PBC. All rights reserved.
|
|
2
|
-
|
|
3
|
-
LICENSE: Use of these materials (including all code, prompts, assets, files,
|
|
4
|
-
and other components of this Skill) is governed by your agreement with
|
|
5
|
-
Anthropic regarding use of Anthropic's services. If no separate agreement
|
|
6
|
-
exists, use is governed by Anthropic's Consumer Terms of Service or
|
|
7
|
-
Commercial Terms of Service, as applicable:
|
|
8
|
-
https://www.anthropic.com/legal/consumer-terms
|
|
9
|
-
https://www.anthropic.com/legal/commercial-terms
|
|
10
|
-
Your applicable agreement is referred to as the "Agreement." "Services" are
|
|
11
|
-
as defined in the Agreement.
|
|
12
|
-
|
|
13
|
-
ADDITIONAL RESTRICTIONS: Notwithstanding anything in the Agreement to the
|
|
14
|
-
contrary, users may not:
|
|
15
|
-
|
|
16
|
-
- Extract these materials from the Services or retain copies of these
|
|
17
|
-
materials outside the Services
|
|
18
|
-
- Reproduce or copy these materials, except for temporary copies created
|
|
19
|
-
automatically during authorized use of the Services
|
|
20
|
-
- Create derivative works based on these materials
|
|
21
|
-
- Distribute, sublicense, or transfer these materials to any third party
|
|
22
|
-
- Make, offer to sell, sell, or import any inventions embodied in these
|
|
23
|
-
materials
|
|
24
|
-
- Reverse engineer, decompile, or disassemble these materials
|
|
25
|
-
|
|
26
|
-
The receipt, viewing, or possession of these materials does not convey or
|
|
27
|
-
imply any license or right beyond those expressly granted above.
|
|
28
|
-
|
|
29
|
-
Anthropic retains all right, title, and interest in these materials,
|
|
30
|
-
including all copyrights, patents, and other intellectual property rights.
|
|
1
|
+
© 2025 Anthropic, PBC. All rights reserved.
|
|
2
|
+
|
|
3
|
+
LICENSE: Use of these materials (including all code, prompts, assets, files,
|
|
4
|
+
and other components of this Skill) is governed by your agreement with
|
|
5
|
+
Anthropic regarding use of Anthropic's services. If no separate agreement
|
|
6
|
+
exists, use is governed by Anthropic's Consumer Terms of Service or
|
|
7
|
+
Commercial Terms of Service, as applicable:
|
|
8
|
+
https://www.anthropic.com/legal/consumer-terms
|
|
9
|
+
https://www.anthropic.com/legal/commercial-terms
|
|
10
|
+
Your applicable agreement is referred to as the "Agreement." "Services" are
|
|
11
|
+
as defined in the Agreement.
|
|
12
|
+
|
|
13
|
+
ADDITIONAL RESTRICTIONS: Notwithstanding anything in the Agreement to the
|
|
14
|
+
contrary, users may not:
|
|
15
|
+
|
|
16
|
+
- Extract these materials from the Services or retain copies of these
|
|
17
|
+
materials outside the Services
|
|
18
|
+
- Reproduce or copy these materials, except for temporary copies created
|
|
19
|
+
automatically during authorized use of the Services
|
|
20
|
+
- Create derivative works based on these materials
|
|
21
|
+
- Distribute, sublicense, or transfer these materials to any third party
|
|
22
|
+
- Make, offer to sell, sell, or import any inventions embodied in these
|
|
23
|
+
materials
|
|
24
|
+
- Reverse engineer, decompile, or disassemble these materials
|
|
25
|
+
|
|
26
|
+
The receipt, viewing, or possession of these materials does not convey or
|
|
27
|
+
imply any license or right beyond those expressly granted above.
|
|
28
|
+
|
|
29
|
+
Anthropic retains all right, title, and interest in these materials,
|
|
30
|
+
including all copyrights, patents, and other intellectual property rights.
|