cli-jaw 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.ko.md +411 -0
- package/README.md +416 -0
- package/README.zh-CN.md +411 -0
- package/dist/bin/cli-jaw.js +108 -0
- package/dist/bin/cli-jaw.js.map +1 -0
- package/dist/bin/commands/browser.js +241 -0
- package/dist/bin/commands/browser.js.map +1 -0
- package/dist/bin/commands/chat.js +878 -0
- package/dist/bin/commands/chat.js.map +1 -0
- package/dist/bin/commands/doctor.js +152 -0
- package/dist/bin/commands/doctor.js.map +1 -0
- package/dist/bin/commands/employee.js +70 -0
- package/dist/bin/commands/employee.js.map +1 -0
- package/dist/bin/commands/init.js +110 -0
- package/dist/bin/commands/init.js.map +1 -0
- package/dist/bin/commands/mcp.js +219 -0
- package/dist/bin/commands/mcp.js.map +1 -0
- package/dist/bin/commands/memory.js +105 -0
- package/dist/bin/commands/memory.js.map +1 -0
- package/dist/bin/commands/reset.js +109 -0
- package/dist/bin/commands/reset.js.map +1 -0
- package/dist/bin/commands/serve.js +75 -0
- package/dist/bin/commands/serve.js.map +1 -0
- package/dist/bin/commands/skill.js +232 -0
- package/dist/bin/commands/skill.js.map +1 -0
- package/dist/bin/commands/status.js +51 -0
- package/dist/bin/commands/status.js.map +1 -0
- package/dist/bin/postinstall.js +218 -0
- package/dist/bin/postinstall.js.map +1 -0
- package/dist/lib/mcp-sync.js +639 -0
- package/dist/lib/mcp-sync.js.map +1 -0
- package/dist/lib/quota-copilot.js +62 -0
- package/dist/lib/quota-copilot.js.map +1 -0
- package/dist/lib/upload.js +72 -0
- package/dist/lib/upload.js.map +1 -0
- package/dist/server.js +832 -0
- package/dist/server.js.map +1 -0
- package/dist/src/agent/args.js +66 -0
- package/dist/src/agent/args.js.map +1 -0
- package/dist/src/agent/events.js +328 -0
- package/dist/src/agent/events.js.map +1 -0
- package/dist/src/agent/spawn.js +646 -0
- package/dist/src/agent/spawn.js.map +1 -0
- package/dist/src/browser/actions.js +168 -0
- package/dist/src/browser/actions.js.map +1 -0
- package/dist/src/browser/connection.js +79 -0
- package/dist/src/browser/connection.js.map +1 -0
- package/dist/src/browser/index.js +4 -0
- package/dist/src/browser/index.js.map +1 -0
- package/dist/src/browser/vision.js +128 -0
- package/dist/src/browser/vision.js.map +1 -0
- package/dist/src/cli/acp-client.js +298 -0
- package/dist/src/cli/acp-client.js.map +1 -0
- package/dist/src/cli/commands.js +267 -0
- package/dist/src/cli/commands.js.map +1 -0
- package/dist/src/cli/handlers.js +405 -0
- package/dist/src/cli/handlers.js.map +1 -0
- package/dist/src/cli/registry.js +87 -0
- package/dist/src/cli/registry.js.map +1 -0
- package/dist/src/command-contract/catalog.js +36 -0
- package/dist/src/command-contract/catalog.js.map +1 -0
- package/dist/src/command-contract/help-renderer.js +39 -0
- package/dist/src/command-contract/help-renderer.js.map +1 -0
- package/dist/src/command-contract/policy.js +34 -0
- package/dist/src/command-contract/policy.js.map +1 -0
- package/dist/src/core/bus.js +17 -0
- package/dist/src/core/bus.js.map +1 -0
- package/dist/src/core/config.js +198 -0
- package/dist/src/core/config.js.map +1 -0
- package/dist/src/core/db.js +97 -0
- package/dist/src/core/db.js.map +1 -0
- package/dist/src/core/i18n.js +86 -0
- package/dist/src/core/i18n.js.map +1 -0
- package/dist/src/core/logger.js +14 -0
- package/dist/src/core/logger.js.map +1 -0
- package/dist/src/core/settings-merge.js +40 -0
- package/dist/src/core/settings-merge.js.map +1 -0
- package/dist/src/http/async-handler.js +6 -0
- package/dist/src/http/async-handler.js.map +1 -0
- package/dist/src/http/error-middleware.js +24 -0
- package/dist/src/http/error-middleware.js.map +1 -0
- package/dist/src/http/response.js +16 -0
- package/dist/src/http/response.js.map +1 -0
- package/dist/src/memory/heartbeat.js +106 -0
- package/dist/src/memory/heartbeat.js.map +1 -0
- package/dist/src/memory/memory.js +119 -0
- package/dist/src/memory/memory.js.map +1 -0
- package/dist/src/memory/worklog.js +154 -0
- package/dist/src/memory/worklog.js.map +1 -0
- package/dist/src/orchestrator/distribute.js +310 -0
- package/dist/src/orchestrator/distribute.js.map +1 -0
- package/dist/src/orchestrator/parser.js +118 -0
- package/dist/src/orchestrator/parser.js.map +1 -0
- package/dist/src/orchestrator/pipeline.js +343 -0
- package/dist/src/orchestrator/pipeline.js.map +1 -0
- package/dist/src/prompt/builder.js +531 -0
- package/dist/src/prompt/builder.js.map +1 -0
- package/dist/src/routes/browser.js +126 -0
- package/dist/src/routes/browser.js.map +1 -0
- package/dist/src/routes/quota.js +94 -0
- package/dist/src/routes/quota.js.map +1 -0
- package/dist/src/security/decode.js +23 -0
- package/dist/src/security/decode.js.map +1 -0
- package/dist/src/security/path-guards.js +62 -0
- package/dist/src/security/path-guards.js.map +1 -0
- package/dist/src/telegram/bot.js +469 -0
- package/dist/src/telegram/bot.js.map +1 -0
- package/dist/src/telegram/forwarder.js +93 -0
- package/dist/src/telegram/forwarder.js.map +1 -0
- package/package.json +80 -0
- package/public/css/chat.css +571 -0
- package/public/css/layout.css +350 -0
- package/public/css/markdown.css +270 -0
- package/public/css/modals.css +172 -0
- package/public/css/sidebar.css +225 -0
- package/public/css/variables.css +142 -0
- package/public/index.html +470 -0
- package/public/js/api.js +55 -0
- package/public/js/constants.js +119 -0
- package/public/js/features/appname.js +43 -0
- package/public/js/features/chat.js +242 -0
- package/public/js/features/employees.js +120 -0
- package/public/js/features/heartbeat.js +80 -0
- package/public/js/features/i18n.js +125 -0
- package/public/js/features/memory.js +85 -0
- package/public/js/features/settings.js +512 -0
- package/public/js/features/sidebar.js +88 -0
- package/public/js/features/skills.js +68 -0
- package/public/js/features/slash-commands.js +231 -0
- package/public/js/features/theme.js +40 -0
- package/public/js/locale.js +23 -0
- package/public/js/main.js +281 -0
- package/public/js/render.js +294 -0
- package/public/js/state.js +16 -0
- package/public/js/ui.js +172 -0
- package/public/js/ws.js +76 -0
- package/public/locales/en.json +180 -0
- package/public/locales/ko.json +180 -0
- package/public/theme-test.html +545 -0
- package/skills_ref/1password/SKILL.md +70 -0
- package/skills_ref/agents-sdk/SKILL.md +155 -0
- package/skills_ref/agents-sdk/references/callable.md +92 -0
- package/skills_ref/agents-sdk/references/codemode.md +207 -0
- package/skills_ref/agents-sdk/references/email.md +146 -0
- package/skills_ref/agents-sdk/references/mcp.md +154 -0
- package/skills_ref/agents-sdk/references/state-scheduling.md +164 -0
- package/skills_ref/agents-sdk/references/streaming-chat.md +178 -0
- package/skills_ref/agents-sdk/references/workflows.md +132 -0
- package/skills_ref/algorithmic-art/LICENSE.txt +202 -0
- package/skills_ref/algorithmic-art/SKILL.md +405 -0
- package/skills_ref/algorithmic-art/templates/generator_template.js +223 -0
- package/skills_ref/algorithmic-art/templates/viewer.html +599 -0
- package/skills_ref/apple-notes/SKILL.md +77 -0
- package/skills_ref/apple-reminders/SKILL.md +118 -0
- package/skills_ref/atlas/SKILL.md +99 -0
- package/skills_ref/brainstorming/SKILL.md +96 -0
- package/skills_ref/browser/SKILL.md +179 -0
- package/skills_ref/canvas-design/LICENSE.txt +202 -0
- package/skills_ref/canvas-design/SKILL.md +130 -0
- package/skills_ref/canvas-design/canvas-fonts/ArsenalSC-OFL.txt +93 -0
- package/skills_ref/canvas-design/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
- package/skills_ref/canvas-design/canvas-fonts/BigShoulders-Bold.ttf +0 -0
- package/skills_ref/canvas-design/canvas-fonts/BigShoulders-OFL.txt +93 -0
- package/skills_ref/canvas-design/canvas-fonts/BigShoulders-Regular.ttf +0 -0
- package/skills_ref/canvas-design/canvas-fonts/Boldonse-OFL.txt +93 -0
- package/skills_ref/canvas-design/canvas-fonts/Boldonse-Regular.ttf +0 -0
- package/skills_ref/canvas-design/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
- package/skills_ref/canvas-design/canvas-fonts/BricolageGrotesque-OFL.txt +93 -0
- package/skills_ref/canvas-design/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
- package/skills_ref/canvas-design/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
- package/skills_ref/canvas-design/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
- package/skills_ref/canvas-design/canvas-fonts/CrimsonPro-OFL.txt +93 -0
- package/skills_ref/canvas-design/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
- package/skills_ref/canvas-design/canvas-fonts/DMMono-OFL.txt +93 -0
- package/skills_ref/canvas-design/canvas-fonts/DMMono-Regular.ttf +0 -0
- package/skills_ref/canvas-design/canvas-fonts/EricaOne-OFL.txt +94 -0
- package/skills_ref/canvas-design/canvas-fonts/EricaOne-Regular.ttf +0 -0
- package/skills_ref/canvas-design/canvas-fonts/GeistMono-Bold.ttf +0 -0
- package/skills_ref/canvas-design/canvas-fonts/GeistMono-OFL.txt +93 -0
- package/skills_ref/canvas-design/canvas-fonts/GeistMono-Regular.ttf +0 -0
- package/skills_ref/canvas-design/canvas-fonts/Gloock-OFL.txt +93 -0
- package/skills_ref/canvas-design/canvas-fonts/Gloock-Regular.ttf +0 -0
- package/skills_ref/canvas-design/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
- package/skills_ref/canvas-design/canvas-fonts/IBMPlexMono-OFL.txt +93 -0
- package/skills_ref/canvas-design/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
- package/skills_ref/canvas-design/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
- package/skills_ref/canvas-design/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
- package/skills_ref/canvas-design/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
- package/skills_ref/canvas-design/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
- package/skills_ref/canvas-design/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
- package/skills_ref/canvas-design/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
- package/skills_ref/canvas-design/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
- package/skills_ref/canvas-design/canvas-fonts/InstrumentSans-OFL.txt +93 -0
- package/skills_ref/canvas-design/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
- package/skills_ref/canvas-design/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
- package/skills_ref/canvas-design/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
- package/skills_ref/canvas-design/canvas-fonts/Italiana-OFL.txt +93 -0
- package/skills_ref/canvas-design/canvas-fonts/Italiana-Regular.ttf +0 -0
- package/skills_ref/canvas-design/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
- package/skills_ref/canvas-design/canvas-fonts/JetBrainsMono-OFL.txt +93 -0
- package/skills_ref/canvas-design/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
- package/skills_ref/canvas-design/canvas-fonts/Jura-Light.ttf +0 -0
- package/skills_ref/canvas-design/canvas-fonts/Jura-Medium.ttf +0 -0
- package/skills_ref/canvas-design/canvas-fonts/Jura-OFL.txt +93 -0
- package/skills_ref/canvas-design/canvas-fonts/LibreBaskerville-OFL.txt +93 -0
- package/skills_ref/canvas-design/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
- package/skills_ref/canvas-design/canvas-fonts/Lora-Bold.ttf +0 -0
- package/skills_ref/canvas-design/canvas-fonts/Lora-BoldItalic.ttf +0 -0
- package/skills_ref/canvas-design/canvas-fonts/Lora-Italic.ttf +0 -0
- package/skills_ref/canvas-design/canvas-fonts/Lora-OFL.txt +93 -0
- package/skills_ref/canvas-design/canvas-fonts/Lora-Regular.ttf +0 -0
- package/skills_ref/canvas-design/canvas-fonts/NationalPark-Bold.ttf +0 -0
- package/skills_ref/canvas-design/canvas-fonts/NationalPark-OFL.txt +93 -0
- package/skills_ref/canvas-design/canvas-fonts/NationalPark-Regular.ttf +0 -0
- package/skills_ref/canvas-design/canvas-fonts/NothingYouCouldDo-OFL.txt +93 -0
- package/skills_ref/canvas-design/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
- package/skills_ref/canvas-design/canvas-fonts/Outfit-Bold.ttf +0 -0
- package/skills_ref/canvas-design/canvas-fonts/Outfit-OFL.txt +93 -0
- package/skills_ref/canvas-design/canvas-fonts/Outfit-Regular.ttf +0 -0
- package/skills_ref/canvas-design/canvas-fonts/PixelifySans-Medium.ttf +0 -0
- package/skills_ref/canvas-design/canvas-fonts/PixelifySans-OFL.txt +93 -0
- package/skills_ref/canvas-design/canvas-fonts/PoiretOne-OFL.txt +93 -0
- package/skills_ref/canvas-design/canvas-fonts/PoiretOne-Regular.ttf +0 -0
- package/skills_ref/canvas-design/canvas-fonts/RedHatMono-Bold.ttf +0 -0
- package/skills_ref/canvas-design/canvas-fonts/RedHatMono-OFL.txt +93 -0
- package/skills_ref/canvas-design/canvas-fonts/RedHatMono-Regular.ttf +0 -0
- package/skills_ref/canvas-design/canvas-fonts/Silkscreen-OFL.txt +93 -0
- package/skills_ref/canvas-design/canvas-fonts/Silkscreen-Regular.ttf +0 -0
- package/skills_ref/canvas-design/canvas-fonts/SmoochSans-Medium.ttf +0 -0
- package/skills_ref/canvas-design/canvas-fonts/SmoochSans-OFL.txt +93 -0
- package/skills_ref/canvas-design/canvas-fonts/Tektur-Medium.ttf +0 -0
- package/skills_ref/canvas-design/canvas-fonts/Tektur-OFL.txt +93 -0
- package/skills_ref/canvas-design/canvas-fonts/Tektur-Regular.ttf +0 -0
- package/skills_ref/canvas-design/canvas-fonts/WorkSans-Bold.ttf +0 -0
- package/skills_ref/canvas-design/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
- package/skills_ref/canvas-design/canvas-fonts/WorkSans-Italic.ttf +0 -0
- package/skills_ref/canvas-design/canvas-fonts/WorkSans-OFL.txt +93 -0
- package/skills_ref/canvas-design/canvas-fonts/WorkSans-Regular.ttf +0 -0
- package/skills_ref/canvas-design/canvas-fonts/YoungSerif-OFL.txt +93 -0
- package/skills_ref/canvas-design/canvas-fonts/YoungSerif-Regular.ttf +0 -0
- package/skills_ref/changelog-generator/SKILL.md +104 -0
- package/skills_ref/cloudflare-deploy/SKILL.md +207 -0
- package/skills_ref/codebase-orientation/SKILL.md +29 -0
- package/skills_ref/config-file-explainer/SKILL.md +26 -0
- package/skills_ref/context-compression/SKILL.md +265 -0
- package/skills_ref/context-compression/references/evaluation-framework.md +213 -0
- package/skills_ref/context-compression/scripts/compression_evaluator.py +658 -0
- package/skills_ref/data-structure-chooser/SKILL.md +26 -0
- package/skills_ref/debugging-checklist/SKILL.md +26 -0
- package/skills_ref/debugging-helpers/CREATION-LOG.md +119 -0
- package/skills_ref/debugging-helpers/SKILL.md +296 -0
- package/skills_ref/debugging-helpers/condition-based-waiting-example.ts +158 -0
- package/skills_ref/debugging-helpers/condition-based-waiting.md +115 -0
- package/skills_ref/debugging-helpers/defense-in-depth.md +122 -0
- package/skills_ref/debugging-helpers/find-polluter.sh +63 -0
- package/skills_ref/debugging-helpers/root-cause-tracing.md +169 -0
- package/skills_ref/debugging-helpers/test-academic.md +14 -0
- package/skills_ref/debugging-helpers/test-pressure-1.md +58 -0
- package/skills_ref/debugging-helpers/test-pressure-2.md +68 -0
- package/skills_ref/debugging-helpers/test-pressure-3.md +69 -0
- package/skills_ref/deep-research/.env.example +7 -0
- package/skills_ref/deep-research/README.md +246 -0
- package/skills_ref/deep-research/SKILL.md +106 -0
- package/skills_ref/deep-research/requirements.txt +2 -0
- package/skills_ref/deep-research/scripts/research.py +692 -0
- package/skills_ref/dependency-install-helper/SKILL.md +26 -0
- package/skills_ref/dev/SKILL.md +65 -0
- package/skills_ref/dev-backend/SKILL.md +61 -0
- package/skills_ref/dev-data/SKILL.md +76 -0
- package/skills_ref/dev-frontend/LICENSE.txt +177 -0
- package/skills_ref/dev-frontend/SKILL.md +42 -0
- package/skills_ref/dev-testing/LICENSE.txt +202 -0
- package/skills_ref/dev-testing/SKILL.md +96 -0
- package/skills_ref/dev-testing/examples/console_logging.py +35 -0
- package/skills_ref/dev-testing/examples/element_discovery.py +40 -0
- package/skills_ref/dev-testing/examples/static_html_automation.py +33 -0
- package/skills_ref/dev-testing/scripts/with_server.py +106 -0
- package/skills_ref/develop-web-game/SKILL.md +149 -0
- package/skills_ref/differential-review/.claude-plugin/plugin.json +10 -0
- package/skills_ref/differential-review/README.md +109 -0
- package/skills_ref/differential-review/commands/diff-review.md +21 -0
- package/skills_ref/differential-review/skills/differential-review/SKILL.md +220 -0
- package/skills_ref/differential-review/skills/differential-review/adversarial.md +203 -0
- package/skills_ref/differential-review/skills/differential-review/methodology.md +234 -0
- package/skills_ref/differential-review/skills/differential-review/patterns.md +300 -0
- package/skills_ref/differential-review/skills/differential-review/reporting.md +369 -0
- package/skills_ref/dispatching-parallel-agents/SKILL.md +180 -0
- package/skills_ref/doc-coauthoring/SKILL.md +375 -0
- package/skills_ref/docx/LICENSE.txt +30 -0
- package/skills_ref/docx/SKILL.md +481 -0
- package/skills_ref/docx/scripts/__init__.py +1 -0
- package/skills_ref/docx/scripts/accept_changes.py +135 -0
- package/skills_ref/docx/scripts/comment.py +318 -0
- package/skills_ref/docx/scripts/office/helpers/__init__.py +0 -0
- package/skills_ref/docx/scripts/office/helpers/merge_runs.py +199 -0
- package/skills_ref/docx/scripts/office/helpers/simplify_redlines.py +197 -0
- package/skills_ref/docx/scripts/office/pack.py +159 -0
- package/skills_ref/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
- package/skills_ref/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
- package/skills_ref/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
- package/skills_ref/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
- package/skills_ref/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
- package/skills_ref/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
- package/skills_ref/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
- package/skills_ref/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
- package/skills_ref/docx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
- package/skills_ref/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
- package/skills_ref/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
- package/skills_ref/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
- package/skills_ref/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
- package/skills_ref/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
- package/skills_ref/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
- package/skills_ref/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
- package/skills_ref/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
- package/skills_ref/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
- package/skills_ref/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
- package/skills_ref/docx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
- package/skills_ref/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
- package/skills_ref/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
- package/skills_ref/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
- package/skills_ref/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
- package/skills_ref/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
- package/skills_ref/docx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
- package/skills_ref/docx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
- package/skills_ref/docx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
- package/skills_ref/docx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
- package/skills_ref/docx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
- package/skills_ref/docx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
- package/skills_ref/docx/scripts/office/schemas/mce/mc.xsd +75 -0
- package/skills_ref/docx/scripts/office/schemas/microsoft/wml-2010.xsd +560 -0
- package/skills_ref/docx/scripts/office/schemas/microsoft/wml-2012.xsd +67 -0
- package/skills_ref/docx/scripts/office/schemas/microsoft/wml-2018.xsd +14 -0
- package/skills_ref/docx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -0
- package/skills_ref/docx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -0
- package/skills_ref/docx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
- package/skills_ref/docx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -0
- package/skills_ref/docx/scripts/office/soffice.py +183 -0
- package/skills_ref/docx/scripts/office/unpack.py +132 -0
- package/skills_ref/docx/scripts/office/validate.py +111 -0
- package/skills_ref/docx/scripts/office/validators/__init__.py +15 -0
- package/skills_ref/docx/scripts/office/validators/base.py +847 -0
- package/skills_ref/docx/scripts/office/validators/docx.py +446 -0
- package/skills_ref/docx/scripts/office/validators/pptx.py +275 -0
- package/skills_ref/docx/scripts/office/validators/redlining.py +247 -0
- package/skills_ref/docx/scripts/templates/comments.xml +3 -0
- package/skills_ref/docx/scripts/templates/commentsExtended.xml +3 -0
- package/skills_ref/docx/scripts/templates/commentsExtensible.xml +3 -0
- package/skills_ref/docx/scripts/templates/commentsIds.xml +3 -0
- package/skills_ref/docx/scripts/templates/people.xml +3 -0
- package/skills_ref/durable-objects/SKILL.md +186 -0
- package/skills_ref/durable-objects/references/rules.md +286 -0
- package/skills_ref/durable-objects/references/testing.md +264 -0
- package/skills_ref/durable-objects/references/workers.md +346 -0
- package/skills_ref/email-draft-polish/SKILL.md +24 -0
- package/skills_ref/error-message-explainer/SKILL.md +27 -0
- package/skills_ref/fal-image-edit/SKILL.md +249 -0
- package/skills_ref/fal-image-edit/scripts/edit-image.sh +199 -0
- package/skills_ref/figma-implement-design/SKILL.md +264 -0
- package/skills_ref/git-worktrees/SKILL.md +218 -0
- package/skills_ref/github/SKILL.md +210 -0
- package/skills_ref/gog/SKILL.md +116 -0
- package/skills_ref/goplaces/SKILL.md +52 -0
- package/skills_ref/himalaya/SKILL.md +257 -0
- package/skills_ref/hugging-face-cli/SKILL.md +186 -0
- package/skills_ref/hugging-face-cli/references/commands.md +954 -0
- package/skills_ref/hugging-face-cli/references/examples.md +374 -0
- package/skills_ref/hugging-face-evaluation/SKILL.md +651 -0
- package/skills_ref/hugging-face-evaluation/examples/.env.example +7 -0
- package/skills_ref/hugging-face-evaluation/examples/USAGE_EXAMPLES.md +382 -0
- package/skills_ref/hugging-face-evaluation/examples/artificial_analysis_to_hub.py +141 -0
- package/skills_ref/hugging-face-evaluation/examples/example_readme_tables.md +135 -0
- package/skills_ref/hugging-face-evaluation/examples/metric_mapping.json +50 -0
- package/skills_ref/hugging-face-evaluation/requirements.txt +20 -0
- package/skills_ref/hugging-face-evaluation/scripts/evaluation_manager.py +1374 -0
- package/skills_ref/hugging-face-evaluation/scripts/inspect_eval_uv.py +104 -0
- package/skills_ref/hugging-face-evaluation/scripts/inspect_vllm_uv.py +317 -0
- package/skills_ref/hugging-face-evaluation/scripts/lighteval_vllm_uv.py +303 -0
- package/skills_ref/hugging-face-evaluation/scripts/run_eval_job.py +98 -0
- package/skills_ref/hugging-face-evaluation/scripts/run_vllm_eval_job.py +331 -0
- package/skills_ref/hugging-face-evaluation/scripts/test_extraction.py +206 -0
- package/skills_ref/hugging-face-model-trainer/SKILL.md +718 -0
- package/skills_ref/hugging-face-model-trainer/references/gguf_conversion.md +296 -0
- package/skills_ref/hugging-face-model-trainer/references/hardware_guide.md +283 -0
- package/skills_ref/hugging-face-model-trainer/references/hub_saving.md +364 -0
- package/skills_ref/hugging-face-model-trainer/references/reliability_principles.md +371 -0
- package/skills_ref/hugging-face-model-trainer/references/trackio_guide.md +189 -0
- package/skills_ref/hugging-face-model-trainer/references/training_methods.md +150 -0
- package/skills_ref/hugging-face-model-trainer/references/training_patterns.md +203 -0
- package/skills_ref/hugging-face-model-trainer/references/troubleshooting.md +282 -0
- package/skills_ref/hugging-face-model-trainer/references/unsloth.md +313 -0
- package/skills_ref/hugging-face-model-trainer/scripts/convert_to_gguf.py +424 -0
- package/skills_ref/hugging-face-model-trainer/scripts/dataset_inspector.py +417 -0
- package/skills_ref/hugging-face-model-trainer/scripts/estimate_cost.py +150 -0
- package/skills_ref/hugging-face-model-trainer/scripts/train_dpo_example.py +106 -0
- package/skills_ref/hugging-face-model-trainer/scripts/train_grpo_example.py +89 -0
- package/skills_ref/hugging-face-model-trainer/scripts/train_sft_example.py +122 -0
- package/skills_ref/hugging-face-model-trainer/scripts/unsloth_sft_example.py +512 -0
- package/skills_ref/imagegen/SKILL.md +174 -0
- package/skills_ref/insecure-defaults/.claude-plugin/plugin.json +10 -0
- package/skills_ref/insecure-defaults/README.md +45 -0
- package/skills_ref/insecure-defaults/skills/insecure-defaults/SKILL.md +117 -0
- package/skills_ref/insecure-defaults/skills/insecure-defaults/references/examples.md +409 -0
- package/skills_ref/jupyter-notebook/SKILL.md +107 -0
- package/skills_ref/linear/SKILL.md +87 -0
- package/skills_ref/linter-fix-guide/SKILL.md +27 -0
- package/skills_ref/log-summarizer/SKILL.md +27 -0
- package/skills_ref/mcp-builder/LICENSE.txt +202 -0
- package/skills_ref/mcp-builder/SKILL.md +236 -0
- package/skills_ref/mcp-builder/reference/evaluation.md +602 -0
- package/skills_ref/mcp-builder/reference/mcp_best_practices.md +249 -0
- package/skills_ref/mcp-builder/reference/node_mcp_server.md +970 -0
- package/skills_ref/mcp-builder/reference/python_mcp_server.md +719 -0
- package/skills_ref/mcp-builder/scripts/connections.py +151 -0
- package/skills_ref/mcp-builder/scripts/evaluation.py +373 -0
- package/skills_ref/mcp-builder/scripts/example_evaluation.xml +22 -0
- package/skills_ref/mcp-builder/scripts/requirements.txt +2 -0
- package/skills_ref/memory/SKILL.md +129 -0
- package/skills_ref/modern-python/.claude-plugin/plugin.json +10 -0
- package/skills_ref/modern-python/README.md +66 -0
- package/skills_ref/modern-python/hooks/hooks.json +16 -0
- package/skills_ref/modern-python/hooks/setup-shims.bats +70 -0
- package/skills_ref/modern-python/hooks/setup-shims.sh +24 -0
- package/skills_ref/modern-python/hooks/shims/pip +27 -0
- package/skills_ref/modern-python/hooks/shims/pip-shim.bats +45 -0
- package/skills_ref/modern-python/hooks/shims/pip3 +27 -0
- package/skills_ref/modern-python/hooks/shims/pipx +41 -0
- package/skills_ref/modern-python/hooks/shims/pipx-shim.bats +64 -0
- package/skills_ref/modern-python/hooks/shims/python +26 -0
- package/skills_ref/modern-python/hooks/shims/python-shim.bats +53 -0
- package/skills_ref/modern-python/hooks/shims/python3 +26 -0
- package/skills_ref/modern-python/hooks/shims/uv +27 -0
- package/skills_ref/modern-python/hooks/shims/uv-shim.bats +47 -0
- package/skills_ref/modern-python/skills/modern-python/SKILL.md +333 -0
- package/skills_ref/modern-python/skills/modern-python/references/dependabot.md +43 -0
- package/skills_ref/modern-python/skills/modern-python/references/migration-checklist.md +141 -0
- package/skills_ref/modern-python/skills/modern-python/references/pep723-scripts.md +259 -0
- package/skills_ref/modern-python/skills/modern-python/references/prek.md +211 -0
- package/skills_ref/modern-python/skills/modern-python/references/pyproject.md +254 -0
- package/skills_ref/modern-python/skills/modern-python/references/ruff-config.md +240 -0
- package/skills_ref/modern-python/skills/modern-python/references/security-setup.md +255 -0
- package/skills_ref/modern-python/skills/modern-python/references/testing.md +284 -0
- package/skills_ref/modern-python/skills/modern-python/references/uv-commands.md +200 -0
- package/skills_ref/modern-python/skills/modern-python/templates/dependabot.yml +36 -0
- package/skills_ref/modern-python/skills/modern-python/templates/pre-commit-config.yaml +66 -0
- package/skills_ref/nano-banana-pro/SKILL.md +58 -0
- package/skills_ref/netlify-deploy/SKILL.md +233 -0
- package/skills_ref/notion/SKILL.md +304 -0
- package/skills_ref/notion-knowledge-capture/SKILL.md +56 -0
- package/skills_ref/notion-meeting-intelligence/SKILL.md +60 -0
- package/skills_ref/notion-research-documentation/SKILL.md +59 -0
- package/skills_ref/notion-spec-to-implementation/SKILL.md +58 -0
- package/skills_ref/obsidian/SKILL.md +81 -0
- package/skills_ref/openai-docs/SKILL.md +56 -0
- package/skills_ref/openhue/SKILL.md +112 -0
- package/skills_ref/pdf/SKILL.md +69 -0
- package/skills_ref/postgres/README.md +77 -0
- package/skills_ref/postgres/SKILL.md +129 -0
- package/skills_ref/postgres/connections.example.json +34 -0
- package/skills_ref/postgres/requirements.txt +1 -0
- package/skills_ref/postgres/scripts/query.py +262 -0
- package/skills_ref/pptx/LICENSE.txt +30 -0
- package/skills_ref/pptx/SKILL.md +232 -0
- package/skills_ref/pptx/editing.md +205 -0
- package/skills_ref/pptx/pptxgenjs.md +420 -0
- package/skills_ref/pptx/scripts/__init__.py +0 -0
- package/skills_ref/pptx/scripts/add_slide.py +195 -0
- package/skills_ref/pptx/scripts/clean.py +286 -0
- package/skills_ref/pptx/scripts/office/helpers/__init__.py +0 -0
- package/skills_ref/pptx/scripts/office/helpers/merge_runs.py +199 -0
- package/skills_ref/pptx/scripts/office/helpers/simplify_redlines.py +197 -0
- package/skills_ref/pptx/scripts/office/pack.py +159 -0
- package/skills_ref/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
- package/skills_ref/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
- package/skills_ref/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
- package/skills_ref/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
- package/skills_ref/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
- package/skills_ref/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
- package/skills_ref/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
- package/skills_ref/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
- package/skills_ref/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
- package/skills_ref/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
- package/skills_ref/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
- package/skills_ref/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
- package/skills_ref/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
- package/skills_ref/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
- package/skills_ref/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
- package/skills_ref/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
- package/skills_ref/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
- package/skills_ref/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
- package/skills_ref/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
- package/skills_ref/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
- package/skills_ref/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
- package/skills_ref/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
- package/skills_ref/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
- package/skills_ref/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
- package/skills_ref/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
- package/skills_ref/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
- package/skills_ref/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
- package/skills_ref/pptx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
- package/skills_ref/pptx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
- package/skills_ref/pptx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
- package/skills_ref/pptx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
- package/skills_ref/pptx/scripts/office/schemas/mce/mc.xsd +75 -0
- package/skills_ref/pptx/scripts/office/schemas/microsoft/wml-2010.xsd +560 -0
- package/skills_ref/pptx/scripts/office/schemas/microsoft/wml-2012.xsd +67 -0
- package/skills_ref/pptx/scripts/office/schemas/microsoft/wml-2018.xsd +14 -0
- package/skills_ref/pptx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -0
- package/skills_ref/pptx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -0
- package/skills_ref/pptx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
- package/skills_ref/pptx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -0
- package/skills_ref/pptx/scripts/office/soffice.py +183 -0
- package/skills_ref/pptx/scripts/office/unpack.py +132 -0
- package/skills_ref/pptx/scripts/office/validate.py +111 -0
- package/skills_ref/pptx/scripts/office/validators/__init__.py +15 -0
- package/skills_ref/pptx/scripts/office/validators/base.py +847 -0
- package/skills_ref/pptx/scripts/office/validators/docx.py +446 -0
- package/skills_ref/pptx/scripts/office/validators/pptx.py +275 -0
- package/skills_ref/pptx/scripts/office/validators/redlining.py +247 -0
- package/skills_ref/pptx/scripts/thumbnail.py +289 -0
- package/skills_ref/property-based-testing/.claude-plugin/plugin.json +9 -0
- package/skills_ref/property-based-testing/README.md +47 -0
- package/skills_ref/property-based-testing/skills/property-based-testing/README.md +88 -0
- package/skills_ref/property-based-testing/skills/property-based-testing/SKILL.md +123 -0
- package/skills_ref/property-based-testing/skills/property-based-testing/references/design.md +191 -0
- package/skills_ref/property-based-testing/skills/property-based-testing/references/generating.md +204 -0
- package/skills_ref/property-based-testing/skills/property-based-testing/references/interpreting-failures.md +239 -0
- package/skills_ref/property-based-testing/skills/property-based-testing/references/libraries.md +130 -0
- package/skills_ref/property-based-testing/skills/property-based-testing/references/refactoring.md +181 -0
- package/skills_ref/property-based-testing/skills/property-based-testing/references/reviewing.md +209 -0
- package/skills_ref/property-based-testing/skills/property-based-testing/references/strategies.md +124 -0
- package/skills_ref/react-best-practices/AGENTS.md +2934 -0
- package/skills_ref/react-best-practices/README.md +123 -0
- package/skills_ref/react-best-practices/SKILL.md +136 -0
- package/skills_ref/react-best-practices/metadata.json +15 -0
- package/skills_ref/react-best-practices/rules/_sections.md +46 -0
- package/skills_ref/react-best-practices/rules/_template.md +28 -0
- package/skills_ref/react-best-practices/rules/advanced-event-handler-refs.md +55 -0
- package/skills_ref/react-best-practices/rules/advanced-init-once.md +42 -0
- package/skills_ref/react-best-practices/rules/advanced-use-latest.md +39 -0
- package/skills_ref/react-best-practices/rules/async-api-routes.md +38 -0
- package/skills_ref/react-best-practices/rules/async-defer-await.md +80 -0
- package/skills_ref/react-best-practices/rules/async-dependencies.md +51 -0
- package/skills_ref/react-best-practices/rules/async-parallel.md +28 -0
- package/skills_ref/react-best-practices/rules/async-suspense-boundaries.md +99 -0
- package/skills_ref/react-best-practices/rules/bundle-barrel-imports.md +59 -0
- package/skills_ref/react-best-practices/rules/bundle-conditional.md +31 -0
- package/skills_ref/react-best-practices/rules/bundle-defer-third-party.md +49 -0
- package/skills_ref/react-best-practices/rules/bundle-dynamic-imports.md +35 -0
- package/skills_ref/react-best-practices/rules/bundle-preload.md +50 -0
- package/skills_ref/react-best-practices/rules/client-event-listeners.md +74 -0
- package/skills_ref/react-best-practices/rules/client-localstorage-schema.md +71 -0
- package/skills_ref/react-best-practices/rules/client-passive-event-listeners.md +48 -0
- package/skills_ref/react-best-practices/rules/client-swr-dedup.md +56 -0
- package/skills_ref/react-best-practices/rules/js-batch-dom-css.md +107 -0
- package/skills_ref/react-best-practices/rules/js-cache-function-results.md +80 -0
- package/skills_ref/react-best-practices/rules/js-cache-property-access.md +28 -0
- package/skills_ref/react-best-practices/rules/js-cache-storage.md +70 -0
- package/skills_ref/react-best-practices/rules/js-combine-iterations.md +32 -0
- package/skills_ref/react-best-practices/rules/js-early-exit.md +50 -0
- package/skills_ref/react-best-practices/rules/js-hoist-regexp.md +45 -0
- package/skills_ref/react-best-practices/rules/js-index-maps.md +37 -0
- package/skills_ref/react-best-practices/rules/js-length-check-first.md +49 -0
- package/skills_ref/react-best-practices/rules/js-min-max-loop.md +82 -0
- package/skills_ref/react-best-practices/rules/js-set-map-lookups.md +24 -0
- package/skills_ref/react-best-practices/rules/js-tosorted-immutable.md +57 -0
- package/skills_ref/react-best-practices/rules/rendering-activity.md +26 -0
- package/skills_ref/react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
- package/skills_ref/react-best-practices/rules/rendering-conditional-render.md +40 -0
- package/skills_ref/react-best-practices/rules/rendering-content-visibility.md +38 -0
- package/skills_ref/react-best-practices/rules/rendering-hoist-jsx.md +46 -0
- package/skills_ref/react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
- package/skills_ref/react-best-practices/rules/rendering-hydration-suppress-warning.md +30 -0
- package/skills_ref/react-best-practices/rules/rendering-svg-precision.md +28 -0
- package/skills_ref/react-best-practices/rules/rendering-usetransition-loading.md +75 -0
- package/skills_ref/react-best-practices/rules/rerender-defer-reads.md +39 -0
- package/skills_ref/react-best-practices/rules/rerender-dependencies.md +45 -0
- package/skills_ref/react-best-practices/rules/rerender-derived-state-no-effect.md +40 -0
- package/skills_ref/react-best-practices/rules/rerender-derived-state.md +29 -0
- package/skills_ref/react-best-practices/rules/rerender-functional-setstate.md +74 -0
- package/skills_ref/react-best-practices/rules/rerender-lazy-state-init.md +58 -0
- package/skills_ref/react-best-practices/rules/rerender-memo-with-default-value.md +38 -0
- package/skills_ref/react-best-practices/rules/rerender-memo.md +44 -0
- package/skills_ref/react-best-practices/rules/rerender-move-effect-to-event.md +45 -0
- package/skills_ref/react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
- package/skills_ref/react-best-practices/rules/rerender-transitions.md +40 -0
- package/skills_ref/react-best-practices/rules/rerender-use-ref-transient-values.md +73 -0
- package/skills_ref/react-best-practices/rules/server-after-nonblocking.md +73 -0
- package/skills_ref/react-best-practices/rules/server-auth-actions.md +96 -0
- package/skills_ref/react-best-practices/rules/server-cache-lru.md +41 -0
- package/skills_ref/react-best-practices/rules/server-cache-react.md +76 -0
- package/skills_ref/react-best-practices/rules/server-dedup-props.md +65 -0
- package/skills_ref/react-best-practices/rules/server-parallel-fetching.md +83 -0
- package/skills_ref/react-best-practices/rules/server-serialization.md +38 -0
- package/skills_ref/receiving-code-review/SKILL.md +213 -0
- package/skills_ref/registry.json +1493 -0
- package/skills_ref/render-deploy/SKILL.md +462 -0
- package/skills_ref/requesting-code-review/SKILL.md +105 -0
- package/skills_ref/requesting-code-review/code-reviewer.md +146 -0
- package/skills_ref/screen-capture/SKILL.md +162 -0
- package/skills_ref/security-best-practices/LICENSE.txt +201 -0
- package/skills_ref/security-best-practices/SKILL.md +86 -0
- package/skills_ref/security-best-practices/agents/openai.yaml +4 -0
- package/skills_ref/security-best-practices/references/golang-general-backend-security.md +826 -0
- package/skills_ref/security-best-practices/references/javascript-express-web-server-security.md +1158 -0
- package/skills_ref/security-best-practices/references/javascript-general-web-frontend-security.md +747 -0
- package/skills_ref/security-best-practices/references/javascript-jquery-web-frontend-security.md +678 -0
- package/skills_ref/security-best-practices/references/javascript-typescript-nextjs-web-server-security.md +1144 -0
- package/skills_ref/security-best-practices/references/javascript-typescript-react-web-frontend-security.md +990 -0
- package/skills_ref/security-best-practices/references/javascript-typescript-vue-web-frontend-security.md +791 -0
- package/skills_ref/security-best-practices/references/python-django-web-server-security.md +882 -0
- package/skills_ref/security-best-practices/references/python-fastapi-web-server-security.md +1036 -0
- package/skills_ref/security-best-practices/references/python-flask-web-server-security.md +705 -0
- package/skills_ref/security-ownership-map/LICENSE.txt +201 -0
- package/skills_ref/security-ownership-map/SKILL.md +206 -0
- package/skills_ref/security-ownership-map/agents/openai.yaml +4 -0
- package/skills_ref/security-ownership-map/references/neo4j-import.md +60 -0
- package/skills_ref/security-ownership-map/scripts/build_ownership_map.py +956 -0
- package/skills_ref/security-ownership-map/scripts/community_maintainers.py +544 -0
- package/skills_ref/security-ownership-map/scripts/query_ownership.py +483 -0
- package/skills_ref/security-ownership-map/scripts/run_ownership_map.py +200 -0
- package/skills_ref/security-threat-model/LICENSE.txt +201 -0
- package/skills_ref/security-threat-model/SKILL.md +81 -0
- package/skills_ref/security-threat-model/agents/openai.yaml +4 -0
- package/skills_ref/security-threat-model/references/prompt-template.md +255 -0
- package/skills_ref/security-threat-model/references/security-controls-and-assets.md +32 -0
- package/skills_ref/sentry/SKILL.md +123 -0
- package/skills_ref/skill-creator/SKILL.md +372 -0
- package/skills_ref/sora/SKILL.md +153 -0
- package/skills_ref/speech/SKILL.md +144 -0
- package/skills_ref/spotify-player/SKILL.md +64 -0
- package/skills_ref/static-analysis/.claude-plugin/plugin.json +8 -0
- package/skills_ref/static-analysis/README.md +65 -0
- package/skills_ref/static-analysis/agents/semgrep-scanner.md +71 -0
- package/skills_ref/static-analysis/agents/semgrep-triager.md +107 -0
- package/skills_ref/static-analysis/skills/codeql/SKILL.md +119 -0
- package/skills_ref/static-analysis/skills/codeql/references/diagnostic-query-templates.md +339 -0
- package/skills_ref/static-analysis/skills/codeql/references/language-details.md +207 -0
- package/skills_ref/static-analysis/skills/codeql/references/performance-tuning.md +111 -0
- package/skills_ref/static-analysis/skills/codeql/references/ruleset-catalog.md +63 -0
- package/skills_ref/static-analysis/skills/codeql/references/threat-models.md +44 -0
- package/skills_ref/static-analysis/skills/codeql/workflows/build-database.md +669 -0
- package/skills_ref/static-analysis/skills/codeql/workflows/create-data-extensions.md +536 -0
- package/skills_ref/static-analysis/skills/codeql/workflows/run-analysis.md +436 -0
- package/skills_ref/static-analysis/skills/sarif-parsing/SKILL.md +479 -0
- package/skills_ref/static-analysis/skills/sarif-parsing/resources/jq-queries.md +162 -0
- package/skills_ref/static-analysis/skills/sarif-parsing/resources/sarif_helpers.py +331 -0
- package/skills_ref/static-analysis/skills/semgrep/SKILL.md +431 -0
- package/skills_ref/static-analysis/skills/semgrep/references/rulesets.md +162 -0
- package/skills_ref/static-analysis/skills/semgrep/references/scanner-task-prompt.md +102 -0
- package/skills_ref/static-analysis/skills/semgrep/references/triage-task-prompt.md +122 -0
- package/skills_ref/static-analysis/skills/semgrep/scripts/merge_triaged_sarif.py +252 -0
- package/skills_ref/summarize/SKILL.md +87 -0
- package/skills_ref/tdd/SKILL.md +371 -0
- package/skills_ref/tdd/testing-anti-patterns.md +299 -0
- package/skills_ref/telegram-send/SKILL.md +99 -0
- package/skills_ref/terraform/README.md +105 -0
- package/skills_ref/terraform/code-generation/.claude-plugin/plugin.json +30 -0
- package/skills_ref/terraform/code-generation/skills/azure-verified-modules/SKILL.md +613 -0
- package/skills_ref/terraform/code-generation/skills/terraform-style-guide/SKILL.md +353 -0
- package/skills_ref/terraform/code-generation/skills/terraform-test/SKILL.md +1669 -0
- package/skills_ref/terraform/module-generation/.claude-plugin/plugin.json +30 -0
- package/skills_ref/terraform/module-generation/skills/refactor-module/SKILL.md +538 -0
- package/skills_ref/terraform/module-generation/skills/terraform-stacks/SKILL.md +468 -0
- package/skills_ref/terraform/module-generation/skills/terraform-stacks/references/api-monitoring.md +543 -0
- package/skills_ref/terraform/module-generation/skills/terraform-stacks/references/component-blocks.md +476 -0
- package/skills_ref/terraform/module-generation/skills/terraform-stacks/references/deployment-blocks.md +391 -0
- package/skills_ref/terraform/module-generation/skills/terraform-stacks/references/examples.md +1529 -0
- package/skills_ref/terraform/module-generation/skills/terraform-stacks/references/linked-stacks.md +187 -0
- package/skills_ref/terraform/module-generation/skills/terraform-stacks/references/troubleshooting.md +671 -0
- package/skills_ref/terraform/provider-development/.claude-plugin/plugin.json +13 -0
- package/skills_ref/terraform/provider-development/skills/new-terraform-provider/SKILL.md +25 -0
- package/skills_ref/terraform/provider-development/skills/new-terraform-provider/assets/main.go +40 -0
- package/skills_ref/terraform/provider-development/skills/provider-actions/SKILL.md +478 -0
- package/skills_ref/terraform/provider-development/skills/provider-resources/SKILL.md +599 -0
- package/skills_ref/terraform/provider-development/skills/run-acceptance-tests/SKILL.md +41 -0
- package/skills_ref/theme-factory/LICENSE.txt +202 -0
- package/skills_ref/theme-factory/SKILL.md +59 -0
- package/skills_ref/theme-factory/theme-showcase.pdf +0 -0
- package/skills_ref/theme-factory/themes/arctic-frost.md +19 -0
- package/skills_ref/theme-factory/themes/botanical-garden.md +19 -0
- package/skills_ref/theme-factory/themes/desert-rose.md +19 -0
- package/skills_ref/theme-factory/themes/forest-canopy.md +19 -0
- package/skills_ref/theme-factory/themes/golden-hour.md +19 -0
- package/skills_ref/theme-factory/themes/midnight-galaxy.md +19 -0
- package/skills_ref/theme-factory/themes/modern-minimalist.md +19 -0
- package/skills_ref/theme-factory/themes/ocean-depths.md +19 -0
- package/skills_ref/theme-factory/themes/sunset-boulevard.md +19 -0
- package/skills_ref/theme-factory/themes/tech-innovation.md +19 -0
- package/skills_ref/things-mac/SKILL.md +86 -0
- package/skills_ref/tmux/SKILL.md +153 -0
- package/skills_ref/transcribe/SKILL.md +81 -0
- package/skills_ref/trello/SKILL.md +95 -0
- package/skills_ref/tts/SKILL.md +99 -0
- package/skills_ref/vercel-deploy/SKILL.md +115 -0
- package/skills_ref/video-downloader/SKILL.md +99 -0
- package/skills_ref/video-downloader/scripts/download_video.py +145 -0
- package/skills_ref/video-frames/SKILL.md +46 -0
- package/skills_ref/vision-click/SKILL.md +128 -0
- package/skills_ref/weather/SKILL.md +112 -0
- package/skills_ref/web-artifacts-builder/LICENSE.txt +202 -0
- package/skills_ref/web-artifacts-builder/SKILL.md +74 -0
- package/skills_ref/web-artifacts-builder/scripts/bundle-artifact.sh +54 -0
- package/skills_ref/web-artifacts-builder/scripts/init-artifact.sh +322 -0
- package/skills_ref/web-artifacts-builder/scripts/shadcn-components.tar.gz +0 -0
- package/skills_ref/web-perf/SKILL.md +193 -0
- package/skills_ref/web-routing/SKILL.md +26 -0
- package/skills_ref/whatsapp/SKILL.md +255 -0
- package/skills_ref/whatsapp/assets/agent-app-integration-example.json +35 -0
- package/skills_ref/whatsapp/assets/databases-example.json +11 -0
- package/skills_ref/whatsapp/assets/function-decide-route-interactive-buttons.json +6 -0
- package/skills_ref/whatsapp/assets/functions-example.json +5 -0
- package/skills_ref/whatsapp/assets/workflow-agent-simple.json +31 -0
- package/skills_ref/whatsapp/assets/workflow-api-template-wait-agent.json +59 -0
- package/skills_ref/whatsapp/assets/workflow-customer-support-intake-agent.json +56 -0
- package/skills_ref/whatsapp/assets/workflow-decision.json +83 -0
- package/skills_ref/whatsapp/assets/workflow-interactive-buttons-decide-ai.json +89 -0
- package/skills_ref/whatsapp/assets/workflow-interactive-buttons-decide-function.json +88 -0
- package/skills_ref/whatsapp/assets/workflow-linear.json +53 -0
- package/skills_ref/whatsapp/package.json +10 -0
- package/skills_ref/whatsapp/references/app-integrations.md +89 -0
- package/skills_ref/whatsapp/references/databases-reference.md +21 -0
- package/skills_ref/whatsapp/references/execution-context.md +42 -0
- package/skills_ref/whatsapp/references/function-contracts.md +55 -0
- package/skills_ref/whatsapp/references/functions-payloads.md +87 -0
- package/skills_ref/whatsapp/references/functions-reference.md +133 -0
- package/skills_ref/whatsapp/references/graph-contract.md +145 -0
- package/skills_ref/whatsapp/references/node-types.md +430 -0
- package/skills_ref/whatsapp/references/triggers.md +20 -0
- package/skills_ref/whatsapp/references/workflow-overview.md +22 -0
- package/skills_ref/whatsapp/references/workflow-reference.md +123 -0
- package/skills_ref/whatsapp/scripts/configure-prop.js +113 -0
- package/skills_ref/whatsapp/scripts/create-connect-token.js +38 -0
- package/skills_ref/whatsapp/scripts/create-function.js +64 -0
- package/skills_ref/whatsapp/scripts/create-integration.js +137 -0
- package/skills_ref/whatsapp/scripts/create-row.js +47 -0
- package/skills_ref/whatsapp/scripts/create-trigger.js +88 -0
- package/skills_ref/whatsapp/scripts/create-workflow.js +85 -0
- package/skills_ref/whatsapp/scripts/delete-integration.js +44 -0
- package/skills_ref/whatsapp/scripts/delete-row.js +49 -0
- package/skills_ref/whatsapp/scripts/delete-trigger.js +44 -0
- package/skills_ref/whatsapp/scripts/deploy-function.js +47 -0
- package/skills_ref/whatsapp/scripts/edit-graph.js +289 -0
- package/skills_ref/whatsapp/scripts/get-action-schema.js +44 -0
- package/skills_ref/whatsapp/scripts/get-context-value.js +80 -0
- package/skills_ref/whatsapp/scripts/get-execution-event.js +55 -0
- package/skills_ref/whatsapp/scripts/get-execution.js +44 -0
- package/skills_ref/whatsapp/scripts/get-function.js +43 -0
- package/skills_ref/whatsapp/scripts/get-graph.js +85 -0
- package/skills_ref/whatsapp/scripts/get-table.js +45 -0
- package/skills_ref/whatsapp/scripts/get-workflow.js +44 -0
- package/skills_ref/whatsapp/scripts/invoke-function.js +60 -0
- package/skills_ref/whatsapp/scripts/lib/databases/args.js +87 -0
- package/skills_ref/whatsapp/scripts/lib/databases/filters.js +30 -0
- package/skills_ref/whatsapp/scripts/lib/databases/kapso-api.js +70 -0
- package/skills_ref/whatsapp/scripts/lib/functions/args.js +55 -0
- package/skills_ref/whatsapp/scripts/lib/functions/kapso-api.js +70 -0
- package/skills_ref/whatsapp/scripts/lib/workflows/args.js +53 -0
- package/skills_ref/whatsapp/scripts/lib/workflows/kapso-api.js +123 -0
- package/skills_ref/whatsapp/scripts/lib/workflows/result.js +16 -0
- package/skills_ref/whatsapp/scripts/list-accounts.js +62 -0
- package/skills_ref/whatsapp/scripts/list-apps.js +42 -0
- package/skills_ref/whatsapp/scripts/list-execution-events.js +61 -0
- package/skills_ref/whatsapp/scripts/list-executions.js +53 -0
- package/skills_ref/whatsapp/scripts/list-function-invocations.js +53 -0
- package/skills_ref/whatsapp/scripts/list-functions.js +41 -0
- package/skills_ref/whatsapp/scripts/list-integrations.js +41 -0
- package/skills_ref/whatsapp/scripts/list-provider-models.js +48 -0
- package/skills_ref/whatsapp/scripts/list-tables.js +41 -0
- package/skills_ref/whatsapp/scripts/list-triggers.js +44 -0
- package/skills_ref/whatsapp/scripts/list-whatsapp-phone-numbers.js +56 -0
- package/skills_ref/whatsapp/scripts/list-workflows.js +44 -0
- package/skills_ref/whatsapp/scripts/openapi-explore.mjs +1273 -0
- package/skills_ref/whatsapp/scripts/query-rows.js +71 -0
- package/skills_ref/whatsapp/scripts/reload-props.js +110 -0
- package/skills_ref/whatsapp/scripts/resume-execution.js +75 -0
- package/skills_ref/whatsapp/scripts/search-actions.js +64 -0
- package/skills_ref/whatsapp/scripts/update-execution-status.js +51 -0
- package/skills_ref/whatsapp/scripts/update-function.js +65 -0
- package/skills_ref/whatsapp/scripts/update-graph.js +154 -0
- package/skills_ref/whatsapp/scripts/update-integration.js +82 -0
- package/skills_ref/whatsapp/scripts/update-row.js +51 -0
- package/skills_ref/whatsapp/scripts/update-trigger.js +60 -0
- package/skills_ref/whatsapp/scripts/update-workflow-settings.js +67 -0
- package/skills_ref/whatsapp/scripts/upsert-row.js +64 -0
- package/skills_ref/whatsapp/scripts/validate-graph.js +293 -0
- package/skills_ref/whatsapp/scripts/variables-delete.js +37 -0
- package/skills_ref/whatsapp/scripts/variables-list.js +55 -0
- package/skills_ref/whatsapp/scripts/variables-set.js +39 -0
- package/skills_ref/writing-plans/SKILL.md +116 -0
- package/skills_ref/xlsx/LICENSE.txt +30 -0
- package/skills_ref/xlsx/SKILL.md +292 -0
- package/skills_ref/xlsx/scripts/office/helpers/__init__.py +0 -0
- package/skills_ref/xlsx/scripts/office/helpers/merge_runs.py +199 -0
- package/skills_ref/xlsx/scripts/office/helpers/simplify_redlines.py +197 -0
- package/skills_ref/xlsx/scripts/office/pack.py +159 -0
- package/skills_ref/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
- package/skills_ref/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
- package/skills_ref/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
- package/skills_ref/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
- package/skills_ref/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
- package/skills_ref/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
- package/skills_ref/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
- package/skills_ref/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
- package/skills_ref/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
- package/skills_ref/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
- package/skills_ref/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
- package/skills_ref/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
- package/skills_ref/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
- package/skills_ref/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
- package/skills_ref/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
- package/skills_ref/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
- package/skills_ref/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
- package/skills_ref/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
- package/skills_ref/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
- package/skills_ref/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
- package/skills_ref/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
- package/skills_ref/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
- package/skills_ref/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
- package/skills_ref/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
- package/skills_ref/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
- package/skills_ref/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
- package/skills_ref/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
- package/skills_ref/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
- package/skills_ref/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
- package/skills_ref/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
- package/skills_ref/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
- package/skills_ref/xlsx/scripts/office/schemas/mce/mc.xsd +75 -0
- package/skills_ref/xlsx/scripts/office/schemas/microsoft/wml-2010.xsd +560 -0
- package/skills_ref/xlsx/scripts/office/schemas/microsoft/wml-2012.xsd +67 -0
- package/skills_ref/xlsx/scripts/office/schemas/microsoft/wml-2018.xsd +14 -0
- package/skills_ref/xlsx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -0
- package/skills_ref/xlsx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -0
- package/skills_ref/xlsx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
- package/skills_ref/xlsx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -0
- package/skills_ref/xlsx/scripts/office/soffice.py +183 -0
- package/skills_ref/xlsx/scripts/office/unpack.py +132 -0
- package/skills_ref/xlsx/scripts/office/validate.py +111 -0
- package/skills_ref/xlsx/scripts/office/validators/__init__.py +15 -0
- package/skills_ref/xlsx/scripts/office/validators/base.py +847 -0
- package/skills_ref/xlsx/scripts/office/validators/docx.py +446 -0
- package/skills_ref/xlsx/scripts/office/validators/pptx.py +275 -0
- package/skills_ref/xlsx/scripts/office/validators/redlining.py +247 -0
- package/skills_ref/xlsx/scripts/recalc.py +184 -0
- package/skills_ref/xurl/SKILL.md +461 -0
|
@@ -0,0 +1,339 @@
|
|
|
1
|
+
# Diagnostic Query Templates
|
|
2
|
+
|
|
3
|
+
Language-specific QL queries for enumerating sources and sinks recognized by CodeQL. Used by the [create-data-extensions workflow](../workflows/create-data-extensions.md).
|
|
4
|
+
|
|
5
|
+
## Source Enumeration Query
|
|
6
|
+
|
|
7
|
+
All languages use the class `RemoteFlowSource`. The import differs per language.
|
|
8
|
+
|
|
9
|
+
### Import Reference
|
|
10
|
+
|
|
11
|
+
| Language | Imports | Class |
|
|
12
|
+
|----------|---------|-------|
|
|
13
|
+
| Python | `import python` + `import semmle.python.dataflow.new.RemoteFlowSources` | `RemoteFlowSource` |
|
|
14
|
+
| JavaScript | `import javascript` | `RemoteFlowSource` |
|
|
15
|
+
| Java | `import java` + `import semmle.code.java.dataflow.FlowSources` | `RemoteFlowSource` |
|
|
16
|
+
| Go | `import go` | `RemoteFlowSource` |
|
|
17
|
+
| C/C++ | `import cpp` + `import semmle.code.cpp.security.FlowSources` | `RemoteFlowSource` |
|
|
18
|
+
| C# | `import csharp` + `import semmle.code.csharp.security.dataflow.flowsources.Remote` | `RemoteFlowSource` |
|
|
19
|
+
| Ruby | `import ruby` + `import codeql.ruby.dataflow.RemoteFlowSources` | `RemoteFlowSource` |
|
|
20
|
+
|
|
21
|
+
### Template (Python — swap imports per table above)
|
|
22
|
+
|
|
23
|
+
```ql
|
|
24
|
+
/**
|
|
25
|
+
* @name List recognized dataflow sources
|
|
26
|
+
* @description Enumerates all locations CodeQL recognizes as dataflow sources
|
|
27
|
+
* @kind problem
|
|
28
|
+
* @id custom/list-sources
|
|
29
|
+
*/
|
|
30
|
+
import python
|
|
31
|
+
import semmle.python.dataflow.new.RemoteFlowSources
|
|
32
|
+
|
|
33
|
+
from RemoteFlowSource src
|
|
34
|
+
select src,
|
|
35
|
+
src.getSourceType()
|
|
36
|
+
+ " | " + src.getLocation().getFile().getRelativePath()
|
|
37
|
+
+ ":" + src.getLocation().getStartLine().toString()
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
**Note:** `getSourceType()` is available on Python, Java, and C#. For Go, JavaScript, Ruby, and C++ replace the select with:
|
|
41
|
+
```ql
|
|
42
|
+
select src,
|
|
43
|
+
src.getLocation().getFile().getRelativePath()
|
|
44
|
+
+ ":" + src.getLocation().getStartLine().toString()
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## Sink Enumeration Queries
|
|
50
|
+
|
|
51
|
+
The Concepts API differs significantly across languages. Use the correct template.
|
|
52
|
+
|
|
53
|
+
### Concept Class Reference
|
|
54
|
+
|
|
55
|
+
| Concept | Python | JavaScript | Go | Ruby |
|
|
56
|
+
|---------|--------|------------|-----|------|
|
|
57
|
+
| SQL | `SqlExecution.getSql()` | `DatabaseAccess.getAQueryArgument()` | `SQL::QueryString` (is-a Node) | `SqlExecution.getSql()` |
|
|
58
|
+
| Command exec | `SystemCommandExecution.getCommand()` | `SystemCommandExecution.getACommandArgument()` | `SystemCommandExecution.getCommandName()` | `SystemCommandExecution.getAnArgument()` |
|
|
59
|
+
| File access | `FileSystemAccess.getAPathArgument()` | `FileSystemAccess.getAPathArgument()` | `FileSystemAccess.getAPathArgument()` | `FileSystemAccess.getAPathArgument()` |
|
|
60
|
+
| HTTP client | `Http::Client::Request.getAUrlPart()` | — | — | — |
|
|
61
|
+
| Decoding | `Decoding.getAnInput()` | — | — | — |
|
|
62
|
+
| XML parsing | — | — | — | `XmlParserCall.getAnInput()` |
|
|
63
|
+
|
|
64
|
+
### Python
|
|
65
|
+
|
|
66
|
+
```ql
|
|
67
|
+
/**
|
|
68
|
+
* @name List recognized dataflow sinks
|
|
69
|
+
* @description Enumerates security-relevant sinks CodeQL recognizes
|
|
70
|
+
* @kind problem
|
|
71
|
+
* @id custom/list-sinks
|
|
72
|
+
*/
|
|
73
|
+
import python
|
|
74
|
+
import semmle.python.Concepts
|
|
75
|
+
|
|
76
|
+
from DataFlow::Node sink, string kind
|
|
77
|
+
where
|
|
78
|
+
exists(SqlExecution e | sink = e.getSql() and kind = "sql-execution")
|
|
79
|
+
or
|
|
80
|
+
exists(SystemCommandExecution e |
|
|
81
|
+
sink = e.getCommand() and kind = "command-execution"
|
|
82
|
+
)
|
|
83
|
+
or
|
|
84
|
+
exists(FileSystemAccess e |
|
|
85
|
+
sink = e.getAPathArgument() and kind = "file-access"
|
|
86
|
+
)
|
|
87
|
+
or
|
|
88
|
+
exists(Http::Client::Request r |
|
|
89
|
+
sink = r.getAUrlPart() and kind = "http-request"
|
|
90
|
+
)
|
|
91
|
+
or
|
|
92
|
+
exists(Decoding d | sink = d.getAnInput() and kind = "decoding")
|
|
93
|
+
or
|
|
94
|
+
exists(CodeExecution e | sink = e.getCode() and kind = "code-execution")
|
|
95
|
+
select sink,
|
|
96
|
+
kind
|
|
97
|
+
+ " | " + sink.getLocation().getFile().getRelativePath()
|
|
98
|
+
+ ":" + sink.getLocation().getStartLine().toString()
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
### JavaScript / TypeScript
|
|
102
|
+
|
|
103
|
+
```ql
|
|
104
|
+
/**
|
|
105
|
+
* @name List recognized dataflow sinks
|
|
106
|
+
* @description Enumerates security-relevant sinks CodeQL recognizes
|
|
107
|
+
* @kind problem
|
|
108
|
+
* @id custom/list-sinks-js
|
|
109
|
+
*/
|
|
110
|
+
import javascript
|
|
111
|
+
|
|
112
|
+
from DataFlow::Node sink, string kind
|
|
113
|
+
where
|
|
114
|
+
exists(DatabaseAccess e |
|
|
115
|
+
sink = e.getAQueryArgument() and kind = "database-access"
|
|
116
|
+
)
|
|
117
|
+
or
|
|
118
|
+
exists(SystemCommandExecution e |
|
|
119
|
+
sink = e.getACommandArgument() and kind = "command-execution"
|
|
120
|
+
)
|
|
121
|
+
or
|
|
122
|
+
exists(FileSystemAccess e |
|
|
123
|
+
sink = e.getAPathArgument() and kind = "file-access"
|
|
124
|
+
)
|
|
125
|
+
select sink,
|
|
126
|
+
kind
|
|
127
|
+
+ " | " + sink.getLocation().getFile().getRelativePath()
|
|
128
|
+
+ ":" + sink.getLocation().getStartLine().toString()
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
### Go
|
|
132
|
+
|
|
133
|
+
```ql
|
|
134
|
+
/**
|
|
135
|
+
* @name List recognized dataflow sinks
|
|
136
|
+
* @description Enumerates security-relevant sinks CodeQL recognizes
|
|
137
|
+
* @kind problem
|
|
138
|
+
* @id custom/list-sinks-go
|
|
139
|
+
*/
|
|
140
|
+
import go
|
|
141
|
+
import semmle.go.frameworks.SQL
|
|
142
|
+
|
|
143
|
+
from DataFlow::Node sink, string kind
|
|
144
|
+
where
|
|
145
|
+
sink instanceof SQL::QueryString and kind = "sql-query"
|
|
146
|
+
or
|
|
147
|
+
exists(SystemCommandExecution e |
|
|
148
|
+
sink = e.getCommandName() and kind = "command-execution"
|
|
149
|
+
)
|
|
150
|
+
or
|
|
151
|
+
exists(FileSystemAccess e |
|
|
152
|
+
sink = e.getAPathArgument() and kind = "file-access"
|
|
153
|
+
)
|
|
154
|
+
select sink,
|
|
155
|
+
kind
|
|
156
|
+
+ " | " + sink.getLocation().getFile().getRelativePath()
|
|
157
|
+
+ ":" + sink.getLocation().getStartLine().toString()
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
### Ruby
|
|
161
|
+
|
|
162
|
+
```ql
|
|
163
|
+
/**
|
|
164
|
+
* @name List recognized dataflow sinks
|
|
165
|
+
* @description Enumerates security-relevant sinks CodeQL recognizes
|
|
166
|
+
* @kind problem
|
|
167
|
+
* @id custom/list-sinks-ruby
|
|
168
|
+
*/
|
|
169
|
+
import ruby
|
|
170
|
+
import codeql.ruby.Concepts
|
|
171
|
+
|
|
172
|
+
from DataFlow::Node sink, string kind
|
|
173
|
+
where
|
|
174
|
+
exists(SqlExecution e | sink = e.getSql() and kind = "sql-execution")
|
|
175
|
+
or
|
|
176
|
+
exists(SystemCommandExecution e |
|
|
177
|
+
sink = e.getAnArgument() and kind = "command-execution"
|
|
178
|
+
)
|
|
179
|
+
or
|
|
180
|
+
exists(FileSystemAccess e |
|
|
181
|
+
sink = e.getAPathArgument() and kind = "file-access"
|
|
182
|
+
)
|
|
183
|
+
or
|
|
184
|
+
exists(CodeExecution e | sink = e.getCode() and kind = "code-execution")
|
|
185
|
+
select sink,
|
|
186
|
+
kind
|
|
187
|
+
+ " | " + sink.getLocation().getFile().getRelativePath()
|
|
188
|
+
+ ":" + sink.getLocation().getStartLine().toString()
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
### Java
|
|
192
|
+
|
|
193
|
+
Java lacks a unified Concepts module. Use language-specific sink classes. The diagnostics query needs its own `qlpack.yml` with a `codeql/java-all` dependency — create it alongside the `.ql` files:
|
|
194
|
+
|
|
195
|
+
```yaml
|
|
196
|
+
# $DIAG_DIR/qlpack.yml
|
|
197
|
+
name: custom/diagnostics
|
|
198
|
+
version: 0.0.1
|
|
199
|
+
dependencies:
|
|
200
|
+
codeql/java-all: "*"
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
Then run `codeql pack install` in the diagnostics directory before executing queries.
|
|
204
|
+
|
|
205
|
+
```ql
|
|
206
|
+
/**
|
|
207
|
+
* @name List recognized dataflow sinks
|
|
208
|
+
* @description Enumerates security-relevant sinks CodeQL recognizes
|
|
209
|
+
* @kind problem
|
|
210
|
+
* @id custom/list-sinks
|
|
211
|
+
*/
|
|
212
|
+
import java
|
|
213
|
+
import semmle.code.java.dataflow.DataFlow
|
|
214
|
+
import semmle.code.java.security.QueryInjection
|
|
215
|
+
import semmle.code.java.security.CommandLineQuery
|
|
216
|
+
import semmle.code.java.security.TaintedPathQuery
|
|
217
|
+
import semmle.code.java.security.XSS
|
|
218
|
+
import semmle.code.java.security.RequestForgery
|
|
219
|
+
import semmle.code.java.security.Xxe
|
|
220
|
+
|
|
221
|
+
from DataFlow::Node sink, string kind
|
|
222
|
+
where
|
|
223
|
+
sink instanceof QueryInjectionSink and kind = "sql-injection"
|
|
224
|
+
or
|
|
225
|
+
sink instanceof CommandInjectionSink and kind = "command-injection"
|
|
226
|
+
or
|
|
227
|
+
sink instanceof TaintedPathSink and kind = "path-injection"
|
|
228
|
+
or
|
|
229
|
+
sink instanceof XssSink and kind = "xss"
|
|
230
|
+
or
|
|
231
|
+
sink instanceof RequestForgerySink and kind = "ssrf"
|
|
232
|
+
or
|
|
233
|
+
sink instanceof XxeSink and kind = "xxe"
|
|
234
|
+
select sink,
|
|
235
|
+
kind
|
|
236
|
+
+ " | " + sink.getLocation().getFile().getRelativePath()
|
|
237
|
+
+ ":" + sink.getLocation().getStartLine().toString()
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
### C / C++
|
|
241
|
+
|
|
242
|
+
C++ uses a similar per-vulnerability-class pattern. Requires a `qlpack.yml` with `codeql/cpp-all` dependency (same approach as Java):
|
|
243
|
+
|
|
244
|
+
```yaml
|
|
245
|
+
# $DIAG_DIR/qlpack.yml
|
|
246
|
+
name: custom/diagnostics
|
|
247
|
+
version: 0.0.1
|
|
248
|
+
dependencies:
|
|
249
|
+
codeql/cpp-all: "*"
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
Then run `codeql pack install` in the diagnostics directory before executing queries.
|
|
253
|
+
|
|
254
|
+
```ql
|
|
255
|
+
/**
|
|
256
|
+
* @name List recognized dataflow sinks
|
|
257
|
+
* @description Enumerates security-relevant sinks CodeQL recognizes
|
|
258
|
+
* @kind problem
|
|
259
|
+
* @id custom/list-sinks-cpp
|
|
260
|
+
*/
|
|
261
|
+
import cpp
|
|
262
|
+
import semmle.code.cpp.dataflow.DataFlow
|
|
263
|
+
import semmle.code.cpp.security.CommandExecution
|
|
264
|
+
import semmle.code.cpp.security.FileAccess
|
|
265
|
+
import semmle.code.cpp.security.BufferWrite
|
|
266
|
+
|
|
267
|
+
from DataFlow::Node sink, string kind
|
|
268
|
+
where
|
|
269
|
+
exists(FunctionCall call |
|
|
270
|
+
sink.asExpr() = call.getAnArgument() and
|
|
271
|
+
call.getTarget().hasGlobalOrStdName("system") and
|
|
272
|
+
kind = "command-injection"
|
|
273
|
+
)
|
|
274
|
+
or
|
|
275
|
+
exists(FunctionCall call |
|
|
276
|
+
sink.asExpr() = call.getAnArgument() and
|
|
277
|
+
call.getTarget().hasGlobalOrStdName(["fopen", "open", "freopen"]) and
|
|
278
|
+
kind = "file-access"
|
|
279
|
+
)
|
|
280
|
+
or
|
|
281
|
+
exists(FunctionCall call |
|
|
282
|
+
sink.asExpr() = call.getAnArgument() and
|
|
283
|
+
call.getTarget().hasGlobalOrStdName(["sprintf", "strcpy", "strcat", "gets"]) and
|
|
284
|
+
kind = "buffer-write"
|
|
285
|
+
)
|
|
286
|
+
or
|
|
287
|
+
exists(FunctionCall call |
|
|
288
|
+
sink.asExpr() = call.getAnArgument() and
|
|
289
|
+
call.getTarget().hasGlobalOrStdName(["execl", "execle", "execlp", "execv", "execvp", "execvpe", "popen"]) and
|
|
290
|
+
kind = "command-execution"
|
|
291
|
+
)
|
|
292
|
+
select sink,
|
|
293
|
+
kind
|
|
294
|
+
+ " | " + sink.getLocation().getFile().getRelativePath()
|
|
295
|
+
+ ":" + sink.getLocation().getStartLine().toString()
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
### C\#
|
|
299
|
+
|
|
300
|
+
C# uses per-vulnerability sink classes. Requires a `qlpack.yml` with `codeql/csharp-all` dependency:
|
|
301
|
+
|
|
302
|
+
```yaml
|
|
303
|
+
# $DIAG_DIR/qlpack.yml
|
|
304
|
+
name: custom/diagnostics
|
|
305
|
+
version: 0.0.1
|
|
306
|
+
dependencies:
|
|
307
|
+
codeql/csharp-all: "*"
|
|
308
|
+
```
|
|
309
|
+
|
|
310
|
+
Then run `codeql pack install` in the diagnostics directory before executing queries.
|
|
311
|
+
|
|
312
|
+
```ql
|
|
313
|
+
/**
|
|
314
|
+
* @name List recognized dataflow sinks
|
|
315
|
+
* @description Enumerates security-relevant sinks CodeQL recognizes
|
|
316
|
+
* @kind problem
|
|
317
|
+
* @id custom/list-sinks-csharp
|
|
318
|
+
*/
|
|
319
|
+
import csharp
|
|
320
|
+
import semmle.code.csharp.dataflow.DataFlow
|
|
321
|
+
import semmle.code.csharp.security.dataflow.SqlInjectionQuery
|
|
322
|
+
import semmle.code.csharp.security.dataflow.CommandInjectionQuery
|
|
323
|
+
import semmle.code.csharp.security.dataflow.TaintedPathQuery
|
|
324
|
+
import semmle.code.csharp.security.dataflow.XSSQuery
|
|
325
|
+
|
|
326
|
+
from DataFlow::Node sink, string kind
|
|
327
|
+
where
|
|
328
|
+
sink instanceof SqlInjection::Sink and kind = "sql-injection"
|
|
329
|
+
or
|
|
330
|
+
sink instanceof CommandInjection::Sink and kind = "command-injection"
|
|
331
|
+
or
|
|
332
|
+
sink instanceof TaintedPath::Sink and kind = "path-injection"
|
|
333
|
+
or
|
|
334
|
+
sink instanceof XSS::Sink and kind = "xss"
|
|
335
|
+
select sink,
|
|
336
|
+
kind
|
|
337
|
+
+ " | " + sink.getLocation().getFile().getRelativePath()
|
|
338
|
+
+ ":" + sink.getLocation().getStartLine().toString()
|
|
339
|
+
```
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
# Language-Specific Guidance
|
|
2
|
+
|
|
3
|
+
## No Build Required
|
|
4
|
+
|
|
5
|
+
### Python
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
codeql database create codeql.db --language=python --source-root=.
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
**Framework Support:**
|
|
12
|
+
- Django, Flask, FastAPI: Built-in models
|
|
13
|
+
- Tornado, Pyramid: Partial support
|
|
14
|
+
- Custom frameworks: May need data extensions
|
|
15
|
+
|
|
16
|
+
**Common Issues:**
|
|
17
|
+
| Issue | Fix |
|
|
18
|
+
|-------|-----|
|
|
19
|
+
| Missing Django models | Ensure `settings.py` is at expected location |
|
|
20
|
+
| Virtual env included | Use `paths-ignore` in config |
|
|
21
|
+
| Type stubs missing | Install `types-*` packages before extraction |
|
|
22
|
+
|
|
23
|
+
### JavaScript/TypeScript
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
codeql database create codeql.db --language=javascript --source-root=.
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
**Framework Support:**
|
|
30
|
+
- React, Vue, Angular: Built-in models
|
|
31
|
+
- Express, Koa, Fastify: HTTP source/sink models
|
|
32
|
+
- Next.js, Nuxt: Partial SSR support
|
|
33
|
+
|
|
34
|
+
**Common Issues:**
|
|
35
|
+
| Issue | Fix |
|
|
36
|
+
|-------|-----|
|
|
37
|
+
| node_modules bloat | Already excluded by default |
|
|
38
|
+
| TypeScript not parsed | Ensure `tsconfig.json` is valid |
|
|
39
|
+
| Monorepo issues | Use `--source-root` for specific package |
|
|
40
|
+
|
|
41
|
+
### Go
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
codeql database create codeql.db --language=go --source-root=.
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
**Framework Support:**
|
|
48
|
+
- net/http, Gin, Echo, Chi: Built-in models
|
|
49
|
+
- gRPC: Partial support
|
|
50
|
+
- Custom routers: May need data extensions
|
|
51
|
+
|
|
52
|
+
**Common Issues:**
|
|
53
|
+
| Issue | Fix |
|
|
54
|
+
|-------|-----|
|
|
55
|
+
| Missing dependencies | Run `go mod download` first |
|
|
56
|
+
| Vendor directory | CodeQL handles automatically |
|
|
57
|
+
| CGO code | Requires `--command='go build'` with CGO enabled |
|
|
58
|
+
|
|
59
|
+
### Ruby
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
codeql database create codeql.db --language=ruby --source-root=.
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
**Framework Support:**
|
|
66
|
+
- Rails: Full support (controllers, models, views)
|
|
67
|
+
- Sinatra: Built-in support
|
|
68
|
+
- Hanami: Partial support
|
|
69
|
+
|
|
70
|
+
**Common Issues:**
|
|
71
|
+
| Issue | Fix |
|
|
72
|
+
|-------|-----|
|
|
73
|
+
| Bundler issues | Run `bundle install` first |
|
|
74
|
+
| Rails engines | May need multiple database passes |
|
|
75
|
+
|
|
76
|
+
## Build Required
|
|
77
|
+
|
|
78
|
+
### C/C++
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
# Make
|
|
82
|
+
codeql database create codeql.db --language=cpp --command='make -j8'
|
|
83
|
+
|
|
84
|
+
# CMake
|
|
85
|
+
codeql database create codeql.db --language=cpp \
|
|
86
|
+
--source-root=/path/to/src \
|
|
87
|
+
--command='cmake --build build'
|
|
88
|
+
|
|
89
|
+
# Ninja
|
|
90
|
+
codeql database create codeql.db --language=cpp \
|
|
91
|
+
--command='ninja -C build'
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
**Build System Tips:**
|
|
95
|
+
| Build System | Command |
|
|
96
|
+
|--------------|---------|
|
|
97
|
+
| Make | `make clean && make -j$(nproc)` |
|
|
98
|
+
| CMake | `cmake -B build && cmake --build build` |
|
|
99
|
+
| Meson | `meson setup build && ninja -C build` |
|
|
100
|
+
| Bazel | `bazel build //...` |
|
|
101
|
+
|
|
102
|
+
**Common Issues:**
|
|
103
|
+
| Issue | Fix |
|
|
104
|
+
|-------|-----|
|
|
105
|
+
| Partial extraction | Ensure `make clean` before CodeQL build |
|
|
106
|
+
| Header-only libraries | Use `--extractor-option cpp_trap_headers=true` |
|
|
107
|
+
| Cross-compilation | Set `CODEQL_EXTRACTOR_CPP_TARGET_ARCH` |
|
|
108
|
+
|
|
109
|
+
### Java/Kotlin
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
# Gradle
|
|
113
|
+
codeql database create codeql.db --language=java --command='./gradlew build -x test'
|
|
114
|
+
|
|
115
|
+
# Maven
|
|
116
|
+
codeql database create codeql.db --language=java --command='mvn compile -DskipTests'
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
**Framework Support:**
|
|
120
|
+
- Spring Boot: Full support
|
|
121
|
+
- Jakarta EE: Built-in models
|
|
122
|
+
- Android: Requires Android SDK
|
|
123
|
+
|
|
124
|
+
**Common Issues:**
|
|
125
|
+
| Issue | Fix |
|
|
126
|
+
|-------|-----|
|
|
127
|
+
| Missing dependencies | Run `./gradlew dependencies` first |
|
|
128
|
+
| Kotlin mixed projects | Use `--language=java` (covers both) |
|
|
129
|
+
| Annotation processors | Ensure they run during CodeQL build |
|
|
130
|
+
|
|
131
|
+
### Rust
|
|
132
|
+
|
|
133
|
+
```bash
|
|
134
|
+
codeql database create codeql.db --language=rust --command='cargo build'
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
**Common Issues:**
|
|
138
|
+
| Issue | Fix |
|
|
139
|
+
|-------|-----|
|
|
140
|
+
| Proc macros | May require special handling |
|
|
141
|
+
| Workspace projects | Use `--source-root` for specific crate |
|
|
142
|
+
| Build script failures | Ensure native dependencies are available |
|
|
143
|
+
|
|
144
|
+
### C#
|
|
145
|
+
|
|
146
|
+
```bash
|
|
147
|
+
# .NET Core
|
|
148
|
+
codeql database create codeql.db --language=csharp --command='dotnet build'
|
|
149
|
+
|
|
150
|
+
# MSBuild
|
|
151
|
+
codeql database create codeql.db --language=csharp --command='msbuild /t:rebuild'
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
**Framework Support:**
|
|
155
|
+
- ASP.NET Core: Full support
|
|
156
|
+
- Entity Framework: Database query models
|
|
157
|
+
- Blazor: Partial support
|
|
158
|
+
|
|
159
|
+
**Common Issues:**
|
|
160
|
+
| Issue | Fix |
|
|
161
|
+
|-------|-----|
|
|
162
|
+
| NuGet restore | Run `dotnet restore` first |
|
|
163
|
+
| Multiple solutions | Specify solution file in command |
|
|
164
|
+
|
|
165
|
+
### Swift
|
|
166
|
+
|
|
167
|
+
```bash
|
|
168
|
+
# Xcode project
|
|
169
|
+
codeql database create codeql.db --language=swift \
|
|
170
|
+
--command='xcodebuild -project MyApp.xcodeproj -scheme MyApp build'
|
|
171
|
+
|
|
172
|
+
# Swift Package Manager
|
|
173
|
+
codeql database create codeql.db --language=swift --command='swift build'
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
**Requirements:**
|
|
177
|
+
- macOS only
|
|
178
|
+
- Xcode Command Line Tools
|
|
179
|
+
|
|
180
|
+
**Common Issues:**
|
|
181
|
+
| Issue | Fix |
|
|
182
|
+
|-------|-----|
|
|
183
|
+
| Code signing | Add `CODE_SIGN_IDENTITY=- CODE_SIGNING_REQUIRED=NO` |
|
|
184
|
+
| Simulator target | Add `-sdk iphonesimulator` |
|
|
185
|
+
|
|
186
|
+
## Extractor Options
|
|
187
|
+
|
|
188
|
+
Set via environment variables: `CODEQL_EXTRACTOR_<LANG>_OPTION_<NAME>=<VALUE>`
|
|
189
|
+
|
|
190
|
+
### C/C++ Options
|
|
191
|
+
|
|
192
|
+
| Option | Description |
|
|
193
|
+
|--------|-------------|
|
|
194
|
+
| `trap_headers=true` | Include header file analysis |
|
|
195
|
+
| `target_arch=x86_64` | Target architecture |
|
|
196
|
+
|
|
197
|
+
### Java Options
|
|
198
|
+
|
|
199
|
+
| Option | Description |
|
|
200
|
+
|--------|-------------|
|
|
201
|
+
| `jdk_version=17` | JDK version for analysis |
|
|
202
|
+
|
|
203
|
+
### Python Options
|
|
204
|
+
|
|
205
|
+
| Option | Description |
|
|
206
|
+
|--------|-------------|
|
|
207
|
+
| `python_executable=/path/to/python` | Specific Python interpreter |
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
# Performance Tuning
|
|
2
|
+
|
|
3
|
+
## Memory Configuration
|
|
4
|
+
|
|
5
|
+
### CODEQL_RAM Environment Variable
|
|
6
|
+
|
|
7
|
+
Control maximum heap memory (in MB):
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
# 48GB for large codebases
|
|
11
|
+
CODEQL_RAM=48000 codeql database analyze codeql.db ...
|
|
12
|
+
|
|
13
|
+
# 16GB for medium codebases
|
|
14
|
+
CODEQL_RAM=16000 codeql database analyze codeql.db ...
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
**Guidelines:**
|
|
18
|
+
| Codebase Size | Recommended RAM |
|
|
19
|
+
|---------------|-----------------|
|
|
20
|
+
| Small (<100K LOC) | 4-8 GB |
|
|
21
|
+
| Medium (100K-1M LOC) | 8-16 GB |
|
|
22
|
+
| Large (1M+ LOC) | 32-64 GB |
|
|
23
|
+
|
|
24
|
+
## Thread Configuration
|
|
25
|
+
|
|
26
|
+
### Analysis Threads
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
# Use all available cores
|
|
30
|
+
codeql database analyze codeql.db --threads=0 ...
|
|
31
|
+
|
|
32
|
+
# Use specific number
|
|
33
|
+
codeql database analyze codeql.db --threads=8 ...
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
**Note:** `--threads=0` uses all available cores. For shared machines, use explicit count.
|
|
37
|
+
|
|
38
|
+
## Query-Level Timeouts
|
|
39
|
+
|
|
40
|
+
Prevent individual queries from running indefinitely:
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
# Set per-query timeout (in milliseconds)
|
|
44
|
+
codeql database analyze codeql.db --timeout=600000 ...
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
A 10-minute timeout (`600000`) catches runaway queries without killing legitimate complex analysis. Taint-tracking queries on large codebases may need longer.
|
|
48
|
+
|
|
49
|
+
## Evaluator Diagnostics
|
|
50
|
+
|
|
51
|
+
When analysis is slow, use `--evaluator-log` to identify which queries consume the most time:
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
codeql database analyze codeql.db \
|
|
55
|
+
--evaluator-log=evaluator.log \
|
|
56
|
+
--format=sarif-latest \
|
|
57
|
+
--output=results.sarif \
|
|
58
|
+
-- codeql/python-queries:codeql-suites/python-security-extended.qls
|
|
59
|
+
|
|
60
|
+
# Summarize the log
|
|
61
|
+
codeql generate log-summary evaluator.log --format=text
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
The summary shows per-query timing and tuple counts. Queries producing millions of tuples are likely the bottleneck.
|
|
65
|
+
|
|
66
|
+
## Disk Space
|
|
67
|
+
|
|
68
|
+
| Phase | Typical Size | Notes |
|
|
69
|
+
|-------|-------------|-------|
|
|
70
|
+
| Database creation | 2-10x source size | Compiled languages are larger due to build tracing |
|
|
71
|
+
| Analysis cache | 1-5 GB | Stored in database directory |
|
|
72
|
+
| SARIF output | 1-50 MB | Depends on finding count |
|
|
73
|
+
|
|
74
|
+
Check available space before starting:
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
df -h .
|
|
78
|
+
du -sh codeql_*.db 2>/dev/null
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
## Caching Behavior
|
|
82
|
+
|
|
83
|
+
CodeQL caches query evaluation results inside the database directory. Subsequent runs of the same queries skip re-evaluation.
|
|
84
|
+
|
|
85
|
+
| Scenario | Cache Effect |
|
|
86
|
+
|----------|-------------|
|
|
87
|
+
| Re-run same packs | Fast — uses cached results |
|
|
88
|
+
| Add new query pack | Only new queries evaluate |
|
|
89
|
+
| `codeql database cleanup` | Clears cache — forces full re-evaluation |
|
|
90
|
+
| `--rerun` flag | Ignores cache for this run |
|
|
91
|
+
|
|
92
|
+
**When to clear cache:**
|
|
93
|
+
- After deploying new data extensions (cache may hold stale results)
|
|
94
|
+
- When investigating unexpected zero-finding results
|
|
95
|
+
- Before benchmark comparisons (ensures consistent timing)
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
# Clear evaluation cache
|
|
99
|
+
codeql database cleanup codeql_1.db
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
## Troubleshooting Performance
|
|
103
|
+
|
|
104
|
+
| Symptom | Likely Cause | Solution |
|
|
105
|
+
|---------|--------------|----------|
|
|
106
|
+
| OOM during analysis | Not enough RAM | Increase `CODEQL_RAM` |
|
|
107
|
+
| Slow database creation | Complex build | Use `--threads`, simplify build |
|
|
108
|
+
| Slow query execution | Large codebase | Reduce query scope, add RAM |
|
|
109
|
+
| Database too large | Too many files | Use exclusion config (see [build-database workflow](../workflows/build-database.md#1b-create-exclusion-config-interpreted-languages-only)) |
|
|
110
|
+
| Single query hangs | Runaway evaluation | Use `--timeout` and check `--evaluator-log` |
|
|
111
|
+
| Repeated runs still slow | Cache not used | Check you're using same database path |
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# Ruleset Catalog
|
|
2
|
+
|
|
3
|
+
## Official CodeQL Suites
|
|
4
|
+
|
|
5
|
+
| Suite | False Positives | Use Case |
|
|
6
|
+
|-------|-----------------|----------|
|
|
7
|
+
| `security-extended` | Low | **Default** - Security audits |
|
|
8
|
+
| `security-and-quality` | Medium | Comprehensive review |
|
|
9
|
+
| `security-experimental` | Higher | Research, vulnerability hunting |
|
|
10
|
+
|
|
11
|
+
**Usage:** `codeql/<lang>-queries:codeql-suites/<lang>-security-extended.qls`
|
|
12
|
+
|
|
13
|
+
**Languages:** `cpp`, `csharp`, `go`, `java`, `javascript`, `python`, `ruby`, `swift`
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## Trail of Bits Packs
|
|
18
|
+
|
|
19
|
+
| Pack | Language | Focus |
|
|
20
|
+
|------|----------|-------|
|
|
21
|
+
| `trailofbits/cpp-queries` | C/C++ | Memory safety, integer overflows |
|
|
22
|
+
| `trailofbits/go-queries` | Go | Concurrency, error handling |
|
|
23
|
+
| `trailofbits/java-queries` | Java | Security, code quality |
|
|
24
|
+
|
|
25
|
+
**Install:**
|
|
26
|
+
```bash
|
|
27
|
+
codeql pack download trailofbits/cpp-queries
|
|
28
|
+
codeql pack download trailofbits/go-queries
|
|
29
|
+
codeql pack download trailofbits/java-queries
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## CodeQL Community Packs
|
|
35
|
+
|
|
36
|
+
| Pack | Language |
|
|
37
|
+
|------|----------|
|
|
38
|
+
| `GitHubSecurityLab/CodeQL-Community-Packs-JavaScript` | JavaScript/TypeScript |
|
|
39
|
+
| `GitHubSecurityLab/CodeQL-Community-Packs-Python` | Python |
|
|
40
|
+
| `GitHubSecurityLab/CodeQL-Community-Packs-Go` | Go |
|
|
41
|
+
| `GitHubSecurityLab/CodeQL-Community-Packs-Java` | Java |
|
|
42
|
+
| `GitHubSecurityLab/CodeQL-Community-Packs-CPP` | C/C++ |
|
|
43
|
+
| `GitHubSecurityLab/CodeQL-Community-Packs-CSharp` | C# |
|
|
44
|
+
| `GitHubSecurityLab/CodeQL-Community-Packs-Ruby` | Ruby |
|
|
45
|
+
|
|
46
|
+
**Install:**
|
|
47
|
+
```bash
|
|
48
|
+
codeql pack download GitHubSecurityLab/CodeQL-Community-Packs-<Lang>
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
**Source:** [github.com/GitHubSecurityLab/CodeQL-Community-Packs](https://github.com/GitHubSecurityLab/CodeQL-Community-Packs)
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## Verify Installation
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
# List all installed packs
|
|
59
|
+
codeql resolve qlpacks
|
|
60
|
+
|
|
61
|
+
# Check specific packs
|
|
62
|
+
codeql resolve qlpacks | grep -E "(trailofbits|GitHubSecurityLab)"
|
|
63
|
+
```
|