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,371 @@
|
|
|
1
|
+
# Reliability Principles for Training Jobs
|
|
2
|
+
|
|
3
|
+
These principles are derived from real production failures and successful fixes. Following them prevents common failure modes and ensures reliable job execution.
|
|
4
|
+
|
|
5
|
+
## Principle 1: Always Verify Before Use
|
|
6
|
+
|
|
7
|
+
**Rule:** Never assume repos, datasets, or resources exist. Verify with tools first.
|
|
8
|
+
|
|
9
|
+
### What It Prevents
|
|
10
|
+
|
|
11
|
+
- **Non-existent datasets** - Jobs fail immediately when dataset doesn't exist
|
|
12
|
+
- **Typos in names** - Simple mistakes like "argilla-dpo-mix-7k" vs "ultrafeedback_binarized"
|
|
13
|
+
- **Incorrect paths** - Old or moved repos, renamed files
|
|
14
|
+
- **Missing dependencies** - Undocumented requirements
|
|
15
|
+
|
|
16
|
+
### How to Apply
|
|
17
|
+
|
|
18
|
+
**Before submitting ANY job:**
|
|
19
|
+
|
|
20
|
+
```python
|
|
21
|
+
# Verify dataset exists
|
|
22
|
+
dataset_search({"query": "dataset-name", "author": "author-name", "limit": 5})
|
|
23
|
+
hub_repo_details(["author/dataset-name"], repo_type="dataset")
|
|
24
|
+
|
|
25
|
+
# Verify model exists
|
|
26
|
+
hub_repo_details(["org/model-name"], repo_type="model")
|
|
27
|
+
|
|
28
|
+
# Check script/file paths (for URL-based scripts)
|
|
29
|
+
# Verify before using: https://github.com/user/repo/blob/main/script.py
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
**Examples that would have caught errors:**
|
|
33
|
+
|
|
34
|
+
```python
|
|
35
|
+
# ❌ WRONG: Assumed dataset exists
|
|
36
|
+
hf_jobs("uv", {
|
|
37
|
+
"script": """...""",
|
|
38
|
+
"env": {"DATASET": "trl-lib/argilla-dpo-mix-7k"} # Doesn't exist!
|
|
39
|
+
})
|
|
40
|
+
|
|
41
|
+
# ✅ CORRECT: Verify first
|
|
42
|
+
dataset_search({"query": "argilla dpo", "author": "trl-lib"})
|
|
43
|
+
# Would show: "trl-lib/ultrafeedback_binarized" is the correct name
|
|
44
|
+
|
|
45
|
+
hub_repo_details(["trl-lib/ultrafeedback_binarized"], repo_type="dataset")
|
|
46
|
+
# Confirms it exists before using
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### Implementation Checklist
|
|
50
|
+
|
|
51
|
+
- [ ] Check dataset exists before training
|
|
52
|
+
- [ ] Verify base model exists before fine-tuning
|
|
53
|
+
- [ ] Confirm adapter model exists before GGUF conversion
|
|
54
|
+
- [ ] Test script URLs are valid before submitting
|
|
55
|
+
- [ ] Validate file paths in repositories
|
|
56
|
+
- [ ] Check for recent updates/renames of resources
|
|
57
|
+
|
|
58
|
+
**Time cost:** 5-10 seconds
|
|
59
|
+
**Time saved:** Hours of failed job time + debugging
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## Principle 2: Prioritize Reliability Over Performance
|
|
64
|
+
|
|
65
|
+
**Rule:** Default to what is most likely to succeed, not what is theoretically fastest.
|
|
66
|
+
|
|
67
|
+
### What It Prevents
|
|
68
|
+
|
|
69
|
+
- **Hardware incompatibilities** - Features that fail on certain GPUs
|
|
70
|
+
- **Unstable optimizations** - Speed-ups that cause crashes
|
|
71
|
+
- **Complex configurations** - More failure points
|
|
72
|
+
- **Build system issues** - Unreliable compilation methods
|
|
73
|
+
|
|
74
|
+
### How to Apply
|
|
75
|
+
|
|
76
|
+
**Choose reliability:**
|
|
77
|
+
|
|
78
|
+
```python
|
|
79
|
+
# ❌ RISKY: Aggressive optimization that may fail
|
|
80
|
+
SFTConfig(
|
|
81
|
+
torch_compile=True, # Can fail on T4, A10G GPUs
|
|
82
|
+
optim="adamw_bnb_8bit", # Requires specific setup
|
|
83
|
+
fp16=False, # May cause training instability
|
|
84
|
+
...
|
|
85
|
+
)
|
|
86
|
+
|
|
87
|
+
# ✅ SAFE: Proven defaults
|
|
88
|
+
SFTConfig(
|
|
89
|
+
# torch_compile=True, # Commented with note: "Enable on H100 for 20% speedup"
|
|
90
|
+
optim="adamw_torch", # Standard, always works
|
|
91
|
+
fp16=True, # Stable and fast
|
|
92
|
+
...
|
|
93
|
+
)
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
**For build processes:**
|
|
97
|
+
|
|
98
|
+
```python
|
|
99
|
+
# ❌ UNRELIABLE: Uses make (platform-dependent)
|
|
100
|
+
subprocess.run(["make", "-C", "/tmp/llama.cpp", "llama-quantize"], check=True)
|
|
101
|
+
|
|
102
|
+
# ✅ RELIABLE: Uses CMake (consistent, documented)
|
|
103
|
+
subprocess.run([
|
|
104
|
+
"cmake", "-B", "/tmp/llama.cpp/build", "-S", "/tmp/llama.cpp",
|
|
105
|
+
"-DGGML_CUDA=OFF" # Disable CUDA for faster, more reliable build
|
|
106
|
+
], check=True)
|
|
107
|
+
|
|
108
|
+
subprocess.run([
|
|
109
|
+
"cmake", "--build", "/tmp/llama.cpp/build",
|
|
110
|
+
"--target", "llama-quantize", "-j", "4"
|
|
111
|
+
], check=True)
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
### Real-World Example
|
|
115
|
+
|
|
116
|
+
**The `torch.compile` failure:**
|
|
117
|
+
- Added for "20% speedup" on H100
|
|
118
|
+
- **Failed fatally on T4-medium** with cryptic error
|
|
119
|
+
- Misdiagnosed as dataset issue (cost hours)
|
|
120
|
+
- **Fix:** Disable by default, add as optional comment
|
|
121
|
+
|
|
122
|
+
**Result:** Reliability > 20% performance gain
|
|
123
|
+
|
|
124
|
+
### Implementation Checklist
|
|
125
|
+
|
|
126
|
+
- [ ] Use proven, standard configurations by default
|
|
127
|
+
- [ ] Comment out performance optimizations with hardware notes
|
|
128
|
+
- [ ] Use stable build systems (CMake > make)
|
|
129
|
+
- [ ] Test on target hardware before production
|
|
130
|
+
- [ ] Document known incompatibilities
|
|
131
|
+
- [ ] Provide "safe" and "fast" variants when needed
|
|
132
|
+
|
|
133
|
+
**Performance loss:** 10-20% in best case
|
|
134
|
+
**Reliability gain:** 95%+ success rate vs 60-70%
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
## Principle 3: Create Atomic, Self-Contained Scripts
|
|
139
|
+
|
|
140
|
+
**Rule:** Scripts should work as complete, independent units. Don't remove parts to "simplify."
|
|
141
|
+
|
|
142
|
+
### What It Prevents
|
|
143
|
+
|
|
144
|
+
- **Missing dependencies** - Removed "unnecessary" packages that are actually required
|
|
145
|
+
- **Incomplete processes** - Skipped steps that seem redundant
|
|
146
|
+
- **Environment assumptions** - Scripts that need pre-setup
|
|
147
|
+
- **Partial failures** - Some parts work, others fail silently
|
|
148
|
+
|
|
149
|
+
### How to Apply
|
|
150
|
+
|
|
151
|
+
**Complete dependency specifications:**
|
|
152
|
+
|
|
153
|
+
```python
|
|
154
|
+
# ❌ INCOMPLETE: "Simplified" by removing dependencies
|
|
155
|
+
# /// script
|
|
156
|
+
# dependencies = [
|
|
157
|
+
# "transformers",
|
|
158
|
+
# "peft",
|
|
159
|
+
# "torch",
|
|
160
|
+
# ]
|
|
161
|
+
# ///
|
|
162
|
+
|
|
163
|
+
# ✅ COMPLETE: All dependencies explicit
|
|
164
|
+
# /// script
|
|
165
|
+
# dependencies = [
|
|
166
|
+
# "transformers>=4.36.0",
|
|
167
|
+
# "peft>=0.7.0",
|
|
168
|
+
# "torch>=2.0.0",
|
|
169
|
+
# "accelerate>=0.24.0",
|
|
170
|
+
# "huggingface_hub>=0.20.0",
|
|
171
|
+
# "sentencepiece>=0.1.99", # Required for tokenizers
|
|
172
|
+
# "protobuf>=3.20.0", # Required for tokenizers
|
|
173
|
+
# "numpy",
|
|
174
|
+
# "gguf",
|
|
175
|
+
# ]
|
|
176
|
+
# ///
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
**Complete build processes:**
|
|
180
|
+
|
|
181
|
+
```python
|
|
182
|
+
# ❌ INCOMPLETE: Assumes build tools exist
|
|
183
|
+
subprocess.run(["git", "clone", "https://github.com/ggerganov/llama.cpp.git", "/tmp/llama.cpp"])
|
|
184
|
+
subprocess.run(["make", "-C", "/tmp/llama.cpp", "llama-quantize"]) # FAILS: no gcc/make
|
|
185
|
+
|
|
186
|
+
# ✅ COMPLETE: Installs all requirements
|
|
187
|
+
subprocess.run(["apt-get", "update", "-qq"], check=True)
|
|
188
|
+
subprocess.run(["apt-get", "install", "-y", "-qq", "build-essential", "cmake"], check=True)
|
|
189
|
+
subprocess.run(["git", "clone", "https://github.com/ggerganov/llama.cpp.git", "/tmp/llama.cpp"])
|
|
190
|
+
# ... then build
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
### Real-World Example
|
|
194
|
+
|
|
195
|
+
**The `sentencepiece` failure:**
|
|
196
|
+
- Original script had it: worked fine
|
|
197
|
+
- "Simplified" version removed it: "doesn't look necessary"
|
|
198
|
+
- **GGUF conversion failed silently** - tokenizer couldn't convert
|
|
199
|
+
- Hard to debug: no obvious error message
|
|
200
|
+
- **Fix:** Restore all original dependencies
|
|
201
|
+
|
|
202
|
+
**Result:** Don't remove dependencies without thorough testing
|
|
203
|
+
|
|
204
|
+
### Implementation Checklist
|
|
205
|
+
|
|
206
|
+
- [ ] All dependencies in PEP 723 header with version pins
|
|
207
|
+
- [ ] All system packages installed by script
|
|
208
|
+
- [ ] No assumptions about pre-existing environment
|
|
209
|
+
- [ ] No "optional" steps that are actually required
|
|
210
|
+
- [ ] Test scripts in clean environment
|
|
211
|
+
- [ ] Document why each dependency is needed
|
|
212
|
+
|
|
213
|
+
**Complexity:** Slightly longer scripts
|
|
214
|
+
**Reliability:** Scripts "just work" every time
|
|
215
|
+
|
|
216
|
+
---
|
|
217
|
+
|
|
218
|
+
## Principle 4: Provide Clear Error Context
|
|
219
|
+
|
|
220
|
+
**Rule:** When things fail, make it obvious what went wrong and how to fix it.
|
|
221
|
+
|
|
222
|
+
### How to Apply
|
|
223
|
+
|
|
224
|
+
**Wrap subprocess calls:**
|
|
225
|
+
|
|
226
|
+
```python
|
|
227
|
+
# ❌ UNCLEAR: Silent failure
|
|
228
|
+
subprocess.run([...], check=True, capture_output=True)
|
|
229
|
+
|
|
230
|
+
# ✅ CLEAR: Shows what failed
|
|
231
|
+
try:
|
|
232
|
+
result = subprocess.run(
|
|
233
|
+
[...],
|
|
234
|
+
check=True,
|
|
235
|
+
capture_output=True,
|
|
236
|
+
text=True
|
|
237
|
+
)
|
|
238
|
+
print(result.stdout)
|
|
239
|
+
if result.stderr:
|
|
240
|
+
print("Warnings:", result.stderr)
|
|
241
|
+
except subprocess.CalledProcessError as e:
|
|
242
|
+
print(f"❌ Command failed!")
|
|
243
|
+
print("STDOUT:", e.stdout)
|
|
244
|
+
print("STDERR:", e.stderr)
|
|
245
|
+
raise
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
**Validate inputs:**
|
|
249
|
+
|
|
250
|
+
```python
|
|
251
|
+
# ❌ UNCLEAR: Fails later with cryptic error
|
|
252
|
+
model = load_model(MODEL_NAME)
|
|
253
|
+
|
|
254
|
+
# ✅ CLEAR: Fails fast with clear message
|
|
255
|
+
if not MODEL_NAME:
|
|
256
|
+
raise ValueError("MODEL_NAME environment variable not set!")
|
|
257
|
+
|
|
258
|
+
print(f"Loading model: {MODEL_NAME}")
|
|
259
|
+
try:
|
|
260
|
+
model = load_model(MODEL_NAME)
|
|
261
|
+
print(f"✅ Model loaded successfully")
|
|
262
|
+
except Exception as e:
|
|
263
|
+
print(f"❌ Failed to load model: {MODEL_NAME}")
|
|
264
|
+
print(f"Error: {e}")
|
|
265
|
+
print("Hint: Check that model exists on Hub")
|
|
266
|
+
raise
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
### Implementation Checklist
|
|
270
|
+
|
|
271
|
+
- [ ] Wrap external calls with try/except
|
|
272
|
+
- [ ] Print stdout/stderr on failure
|
|
273
|
+
- [ ] Validate environment variables early
|
|
274
|
+
- [ ] Add progress indicators (✅, ❌, 🔄)
|
|
275
|
+
- [ ] Include hints for common failures
|
|
276
|
+
- [ ] Log configuration at start
|
|
277
|
+
|
|
278
|
+
---
|
|
279
|
+
|
|
280
|
+
## Principle 5: Test the Happy Path on Known-Good Inputs
|
|
281
|
+
|
|
282
|
+
**Rule:** Before using new code in production, test with inputs you know work.
|
|
283
|
+
|
|
284
|
+
### How to Apply
|
|
285
|
+
|
|
286
|
+
**Known-good test inputs:**
|
|
287
|
+
|
|
288
|
+
```python
|
|
289
|
+
# For training
|
|
290
|
+
TEST_DATASET = "trl-lib/Capybara" # Small, well-formatted, widely used
|
|
291
|
+
TEST_MODEL = "Qwen/Qwen2.5-0.5B" # Small, fast, reliable
|
|
292
|
+
|
|
293
|
+
# For GGUF conversion
|
|
294
|
+
TEST_ADAPTER = "evalstate/qwen-capybara-medium" # Known working model
|
|
295
|
+
TEST_BASE = "Qwen/Qwen2.5-0.5B" # Compatible base
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
**Testing workflow:**
|
|
299
|
+
|
|
300
|
+
1. Test with known-good inputs first
|
|
301
|
+
2. If that works, try production inputs
|
|
302
|
+
3. If production fails, you know it's the inputs (not code)
|
|
303
|
+
4. Isolate the difference
|
|
304
|
+
|
|
305
|
+
### Implementation Checklist
|
|
306
|
+
|
|
307
|
+
- [ ] Maintain list of known-good test models/datasets
|
|
308
|
+
- [ ] Test new scripts with test inputs first
|
|
309
|
+
- [ ] Document what makes inputs "good"
|
|
310
|
+
- [ ] Keep test jobs cheap (small models, short timeouts)
|
|
311
|
+
- [ ] Only move to production after test succeeds
|
|
312
|
+
|
|
313
|
+
**Time cost:** 5-10 minutes for test run
|
|
314
|
+
**Debugging time saved:** Hours
|
|
315
|
+
|
|
316
|
+
---
|
|
317
|
+
|
|
318
|
+
## Summary: The Reliability Checklist
|
|
319
|
+
|
|
320
|
+
Before submitting ANY job:
|
|
321
|
+
|
|
322
|
+
### Pre-Flight Checks
|
|
323
|
+
- [ ] **Verified** all repos/datasets exist (hub_repo_details)
|
|
324
|
+
- [ ] **Tested** with known-good inputs if new code
|
|
325
|
+
- [ ] **Using** proven hardware/configuration
|
|
326
|
+
- [ ] **Included** all dependencies in PEP 723 header
|
|
327
|
+
- [ ] **Installed** system requirements (build tools, etc.)
|
|
328
|
+
- [ ] **Set** appropriate timeout (not default 30m)
|
|
329
|
+
- [ ] **Configured** Hub push with HF_TOKEN
|
|
330
|
+
- [ ] **Added** clear error handling
|
|
331
|
+
|
|
332
|
+
### Script Quality
|
|
333
|
+
- [ ] Self-contained (no external setup needed)
|
|
334
|
+
- [ ] Complete dependencies listed
|
|
335
|
+
- [ ] Build tools installed by script
|
|
336
|
+
- [ ] Progress indicators included
|
|
337
|
+
- [ ] Error messages are clear
|
|
338
|
+
- [ ] Configuration logged at start
|
|
339
|
+
|
|
340
|
+
### Job Configuration
|
|
341
|
+
- [ ] Timeout > expected runtime + 30% buffer
|
|
342
|
+
- [ ] Hardware appropriate for model size
|
|
343
|
+
- [ ] Secrets include HF_TOKEN
|
|
344
|
+
- [ ] Environment variables set correctly
|
|
345
|
+
- [ ] Cost estimated and acceptable
|
|
346
|
+
|
|
347
|
+
**Following these principles transforms job success rate from ~60-70% to ~95%+**
|
|
348
|
+
|
|
349
|
+
---
|
|
350
|
+
|
|
351
|
+
## When Principles Conflict
|
|
352
|
+
|
|
353
|
+
Sometimes reliability and performance conflict. Here's how to choose:
|
|
354
|
+
|
|
355
|
+
| Scenario | Choose | Rationale |
|
|
356
|
+
|----------|--------|-----------|
|
|
357
|
+
| Demo/test | Reliability | Fast failure is worse than slow success |
|
|
358
|
+
| Production (first run) | Reliability | Prove it works before optimizing |
|
|
359
|
+
| Production (proven) | Performance | Safe to optimize after validation |
|
|
360
|
+
| Time-critical | Reliability | Failures cause more delay than slow runs |
|
|
361
|
+
| Cost-critical | Balanced | Test with small model, then optimize |
|
|
362
|
+
|
|
363
|
+
**General rule:** Reliability first, optimize second.
|
|
364
|
+
|
|
365
|
+
---
|
|
366
|
+
|
|
367
|
+
## Further Reading
|
|
368
|
+
|
|
369
|
+
- `troubleshooting.md` - Common issues and fixes
|
|
370
|
+
- `training_patterns.md` - Proven training configurations
|
|
371
|
+
- `gguf_conversion.md` - Production GGUF workflow
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
# Trackio Integration for TRL Training
|
|
2
|
+
|
|
3
|
+
**Trackio** is an experiment tracking library that provides real-time metrics visualization for remote training on Hugging Face Jobs infrastructure.
|
|
4
|
+
|
|
5
|
+
⚠️ **IMPORTANT**: For Jobs training (remote cloud GPUs):
|
|
6
|
+
- Training happens on ephemeral cloud runners (not your local machine)
|
|
7
|
+
- Trackio syncs metrics to a Hugging Face Space for real-time monitoring
|
|
8
|
+
- Without a Space, metrics are lost when the job completes
|
|
9
|
+
- The Space dashboard persists your training metrics permanently
|
|
10
|
+
|
|
11
|
+
## Setting Up Trackio for Jobs
|
|
12
|
+
|
|
13
|
+
**Step 1: Add trackio dependency**
|
|
14
|
+
```python
|
|
15
|
+
# /// script
|
|
16
|
+
# dependencies = [
|
|
17
|
+
# "trl>=0.12.0",
|
|
18
|
+
# "trackio", # Required!
|
|
19
|
+
# ]
|
|
20
|
+
# ///
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
**Step 2: Create a Trackio Space (one-time setup)**
|
|
24
|
+
|
|
25
|
+
**Option A: Let Trackio auto-create (Recommended)**
|
|
26
|
+
Pass a `space_id` to `trackio.init()` and Trackio will automatically create the Space if it doesn't exist.
|
|
27
|
+
|
|
28
|
+
**Option B: Create manually**
|
|
29
|
+
- Create Space via Hub UI at https://huggingface.co/new-space
|
|
30
|
+
- Select Gradio SDK
|
|
31
|
+
- OR use command: `huggingface-cli repo create my-trackio-dashboard --type space --space_sdk gradio`
|
|
32
|
+
|
|
33
|
+
**Step 3: Initialize Trackio with space_id**
|
|
34
|
+
```python
|
|
35
|
+
import trackio
|
|
36
|
+
|
|
37
|
+
trackio.init(
|
|
38
|
+
project="my-training",
|
|
39
|
+
space_id="username/trackio", # CRITICAL for Jobs! Replace 'username' with your HF username
|
|
40
|
+
config={
|
|
41
|
+
"model": "Qwen/Qwen2.5-0.5B",
|
|
42
|
+
"dataset": "trl-lib/Capybara",
|
|
43
|
+
"learning_rate": 2e-5,
|
|
44
|
+
}
|
|
45
|
+
)
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
**Step 4: Configure TRL to use Trackio**
|
|
49
|
+
```python
|
|
50
|
+
SFTConfig(
|
|
51
|
+
report_to="trackio",
|
|
52
|
+
# ... other config
|
|
53
|
+
)
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
**Step 5: Finish tracking**
|
|
57
|
+
```python
|
|
58
|
+
trainer.train()
|
|
59
|
+
trackio.finish() # Ensures final metrics are synced
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## What Trackio Tracks
|
|
63
|
+
|
|
64
|
+
Trackio automatically logs:
|
|
65
|
+
- ✅ Training loss
|
|
66
|
+
- ✅ Learning rate
|
|
67
|
+
- ✅ GPU utilization
|
|
68
|
+
- ✅ Memory usage
|
|
69
|
+
- ✅ Training throughput
|
|
70
|
+
- ✅ Custom metrics
|
|
71
|
+
|
|
72
|
+
## How It Works with Jobs
|
|
73
|
+
|
|
74
|
+
1. **Training runs** → Metrics logged to local SQLite DB
|
|
75
|
+
2. **Every 5 minutes** → Trackio syncs DB to HF Dataset (Parquet)
|
|
76
|
+
3. **Space dashboard** → Reads from Dataset, displays metrics in real-time
|
|
77
|
+
4. **Job completes** → Final sync ensures all metrics persisted
|
|
78
|
+
|
|
79
|
+
## Default Configuration Pattern
|
|
80
|
+
|
|
81
|
+
**Use sensible defaults for trackio configuration unless user requests otherwise.**
|
|
82
|
+
|
|
83
|
+
### Recommended Defaults
|
|
84
|
+
|
|
85
|
+
```python
|
|
86
|
+
import trackio
|
|
87
|
+
|
|
88
|
+
trackio.init(
|
|
89
|
+
project="qwen-capybara-sft",
|
|
90
|
+
name="baseline-run", # Descriptive name user will recognize
|
|
91
|
+
space_id="username/trackio", # Default space: {username}/trackio
|
|
92
|
+
config={
|
|
93
|
+
# Keep config minimal - hyperparameters and model/dataset info only
|
|
94
|
+
"model": "Qwen/Qwen2.5-0.5B",
|
|
95
|
+
"dataset": "trl-lib/Capybara",
|
|
96
|
+
"learning_rate": 2e-5,
|
|
97
|
+
"num_epochs": 3,
|
|
98
|
+
}
|
|
99
|
+
)
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
**Key principles:**
|
|
103
|
+
- **Space ID**: Use `{username}/trackio` with "trackio" as default space name
|
|
104
|
+
- **Run naming**: Unless otherwise specified, name the run in a way the user will recognize
|
|
105
|
+
- **Config**: Keep minimal - don't automatically capture job metadata unless requested
|
|
106
|
+
- **Grouping**: Optional - only use if user requests organizing related experiments
|
|
107
|
+
|
|
108
|
+
## Grouping Runs (Optional)
|
|
109
|
+
|
|
110
|
+
The `group` parameter helps organize related runs together in the dashboard sidebar. This is useful when user is running multiple experiments with different configurations but wants to compare them together:
|
|
111
|
+
|
|
112
|
+
```python
|
|
113
|
+
# Example: Group runs by experiment type
|
|
114
|
+
trackio.init(project="my-project", run_name="baseline-run-1", group="baseline")
|
|
115
|
+
trackio.init(project="my-project", run_name="augmented-run-1", group="augmented")
|
|
116
|
+
trackio.init(project="my-project", run_name="tuned-run-1", group="tuned")
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
Runs with the same group name can be grouped together in the sidebar, making it easier to compare related experiments. You can group by any configuration parameter:
|
|
120
|
+
|
|
121
|
+
```python
|
|
122
|
+
# Hyperparameter sweep - group by learning rate
|
|
123
|
+
trackio.init(project="hyperparam-sweep", run_name="lr-0.001-run", group="lr_0.001")
|
|
124
|
+
trackio.init(project="hyperparam-sweep", run_name="lr-0.01-run", group="lr_0.01")
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
## Environment Variables for Jobs
|
|
128
|
+
|
|
129
|
+
You can configure trackio using environment variables instead of passing parameters to `trackio.init()`. This is useful for managing configuration across multiple jobs.
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
**`HF_TOKEN`**
|
|
134
|
+
Required for creating Spaces and writing to datasets (passed via `secrets`):
|
|
135
|
+
```python
|
|
136
|
+
hf_jobs("uv", {
|
|
137
|
+
"script": "...",
|
|
138
|
+
"secrets": {
|
|
139
|
+
"HF_TOKEN": "$HF_TOKEN" # Enables Space creation and Hub push
|
|
140
|
+
}
|
|
141
|
+
})
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
### Example with Environment Variables
|
|
145
|
+
|
|
146
|
+
```python
|
|
147
|
+
hf_jobs("uv", {
|
|
148
|
+
"script": """
|
|
149
|
+
# Training script - trackio config from environment
|
|
150
|
+
import trackio
|
|
151
|
+
from datetime import datetime
|
|
152
|
+
|
|
153
|
+
# Auto-generate run name
|
|
154
|
+
timestamp = datetime.now().strftime("%Y-%m-%d_%H-%M")
|
|
155
|
+
run_name = f"sft_qwen25_{timestamp}"
|
|
156
|
+
|
|
157
|
+
# Project and space_id can come from environment variables
|
|
158
|
+
trackio.init(run_name=run_name, group="SFT")
|
|
159
|
+
|
|
160
|
+
# ... training code ...
|
|
161
|
+
trackio.finish()
|
|
162
|
+
""",
|
|
163
|
+
"flavor": "a10g-large",
|
|
164
|
+
"timeout": "2h",
|
|
165
|
+
"secrets": {"HF_TOKEN": "$HF_TOKEN"}
|
|
166
|
+
})
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
**When to use environment variables:**
|
|
170
|
+
- Managing multiple jobs with same configuration
|
|
171
|
+
- Keeping training scripts portable across projects
|
|
172
|
+
- Separating configuration from code
|
|
173
|
+
|
|
174
|
+
**When to use direct parameters:**
|
|
175
|
+
- Single job with specific configuration
|
|
176
|
+
- When clarity in code is preferred
|
|
177
|
+
- When each job has different project/space
|
|
178
|
+
|
|
179
|
+
## Viewing the Dashboard
|
|
180
|
+
|
|
181
|
+
After starting training:
|
|
182
|
+
1. Navigate to the Space: `https://huggingface.co/spaces/username/trackio`
|
|
183
|
+
2. The Gradio dashboard shows all tracked experiments
|
|
184
|
+
3. Filter by project, compare runs, view charts with smoothing
|
|
185
|
+
|
|
186
|
+
## Recommendation
|
|
187
|
+
|
|
188
|
+
- **Trackio**: Best for real-time monitoring during long training runs
|
|
189
|
+
- **Weights & Biases**: Best for team collaboration, requires account
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
# TRL Training Methods Overview
|
|
2
|
+
|
|
3
|
+
TRL (Transformer Reinforcement Learning) provides multiple training methods for fine-tuning and aligning language models. This reference provides a brief overview of each method.
|
|
4
|
+
|
|
5
|
+
## Supervised Fine-Tuning (SFT)
|
|
6
|
+
|
|
7
|
+
**What it is:** Standard instruction tuning with supervised learning on demonstration data.
|
|
8
|
+
|
|
9
|
+
**When to use:**
|
|
10
|
+
- Initial fine-tuning of base models on task-specific data
|
|
11
|
+
- Teaching new capabilities or domains
|
|
12
|
+
- Most common starting point for fine-tuning
|
|
13
|
+
|
|
14
|
+
**Dataset format:** Conversational format with "messages" field, OR text field, OR prompt/completion pairs
|
|
15
|
+
|
|
16
|
+
**Example:**
|
|
17
|
+
```python
|
|
18
|
+
from trl import SFTTrainer, SFTConfig
|
|
19
|
+
|
|
20
|
+
trainer = SFTTrainer(
|
|
21
|
+
model="Qwen/Qwen2.5-0.5B",
|
|
22
|
+
train_dataset=dataset,
|
|
23
|
+
args=SFTConfig(
|
|
24
|
+
output_dir="my-model",
|
|
25
|
+
push_to_hub=True,
|
|
26
|
+
hub_model_id="username/my-model",
|
|
27
|
+
eval_strategy="no", # Disable eval for simple example
|
|
28
|
+
# max_length=1024 is the default - only set if you need different length
|
|
29
|
+
)
|
|
30
|
+
)
|
|
31
|
+
trainer.train()
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
**Note:** For production training with evaluation monitoring, see `scripts/train_sft_example.py`
|
|
35
|
+
|
|
36
|
+
**Documentation:** `hf_doc_fetch("https://huggingface.co/docs/trl/sft_trainer")`
|
|
37
|
+
|
|
38
|
+
## Direct Preference Optimization (DPO)
|
|
39
|
+
|
|
40
|
+
**What it is:** Alignment method that trains directly on preference pairs (chosen vs rejected responses) without requiring a reward model.
|
|
41
|
+
|
|
42
|
+
**When to use:**
|
|
43
|
+
- Aligning models to human preferences
|
|
44
|
+
- Improving response quality after SFT
|
|
45
|
+
- Have paired preference data (chosen/rejected responses)
|
|
46
|
+
|
|
47
|
+
**Dataset format:** Preference pairs with "chosen" and "rejected" fields
|
|
48
|
+
|
|
49
|
+
**Example:**
|
|
50
|
+
```python
|
|
51
|
+
from trl import DPOTrainer, DPOConfig
|
|
52
|
+
|
|
53
|
+
trainer = DPOTrainer(
|
|
54
|
+
model="Qwen/Qwen2.5-0.5B-Instruct", # Use instruct model
|
|
55
|
+
train_dataset=dataset,
|
|
56
|
+
args=DPOConfig(
|
|
57
|
+
output_dir="dpo-model",
|
|
58
|
+
beta=0.1, # KL penalty coefficient
|
|
59
|
+
eval_strategy="no", # Disable eval for simple example
|
|
60
|
+
# max_length=1024 is the default - only set if you need different length
|
|
61
|
+
)
|
|
62
|
+
)
|
|
63
|
+
trainer.train()
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
**Note:** For production training with evaluation monitoring, see `scripts/train_dpo_example.py`
|
|
67
|
+
|
|
68
|
+
**Documentation:** `hf_doc_fetch("https://huggingface.co/docs/trl/dpo_trainer")`
|
|
69
|
+
|
|
70
|
+
## Group Relative Policy Optimization (GRPO)
|
|
71
|
+
|
|
72
|
+
**What it is:** Online RL method that optimizes relative to group performance, useful for tasks with verifiable rewards.
|
|
73
|
+
|
|
74
|
+
**When to use:**
|
|
75
|
+
- Tasks with automatic reward signals (code execution, math verification)
|
|
76
|
+
- Online learning scenarios
|
|
77
|
+
- When DPO offline data is insufficient
|
|
78
|
+
|
|
79
|
+
**Dataset format:** Prompt-only format (model generates responses, reward computed online)
|
|
80
|
+
|
|
81
|
+
**Example:**
|
|
82
|
+
```python
|
|
83
|
+
# Use TRL maintained script
|
|
84
|
+
hf_jobs("uv", {
|
|
85
|
+
"script": "https://raw.githubusercontent.com/huggingface/trl/main/examples/scripts/grpo.py",
|
|
86
|
+
"script_args": [
|
|
87
|
+
"--model_name_or_path", "Qwen/Qwen2.5-0.5B-Instruct",
|
|
88
|
+
"--dataset_name", "trl-lib/math_shepherd",
|
|
89
|
+
"--output_dir", "grpo-model"
|
|
90
|
+
],
|
|
91
|
+
"flavor": "a10g-large",
|
|
92
|
+
"timeout": "4h",
|
|
93
|
+
"secrets": {"HF_TOKEN": "$HF_TOKEN"}
|
|
94
|
+
})
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
**Documentation:** `hf_doc_fetch("https://huggingface.co/docs/trl/grpo_trainer")`
|
|
98
|
+
|
|
99
|
+
## Reward Modeling
|
|
100
|
+
|
|
101
|
+
**What it is:** Train a reward model to score responses, used as a component in RLHF pipelines.
|
|
102
|
+
|
|
103
|
+
**When to use:**
|
|
104
|
+
- Building RLHF pipeline
|
|
105
|
+
- Need automatic quality scoring
|
|
106
|
+
- Creating reward signals for PPO training
|
|
107
|
+
|
|
108
|
+
**Dataset format:** Preference pairs with "chosen" and "rejected" responses
|
|
109
|
+
|
|
110
|
+
**Documentation:** `hf_doc_fetch("https://huggingface.co/docs/trl/reward_trainer")`
|
|
111
|
+
|
|
112
|
+
## Method Selection Guide
|
|
113
|
+
|
|
114
|
+
| Method | Complexity | Data Required | Use Case |
|
|
115
|
+
|--------|-----------|---------------|----------|
|
|
116
|
+
| **SFT** | Low | Demonstrations | Initial fine-tuning |
|
|
117
|
+
| **DPO** | Medium | Paired preferences | Post-SFT alignment |
|
|
118
|
+
| **GRPO** | Medium | Prompts + reward fn | Online RL with automatic rewards |
|
|
119
|
+
| **Reward** | Medium | Paired preferences | Building RLHF pipeline |
|
|
120
|
+
|
|
121
|
+
## Recommended Pipeline
|
|
122
|
+
|
|
123
|
+
**For most use cases:**
|
|
124
|
+
1. **Start with SFT** - Fine-tune base model on task data
|
|
125
|
+
2. **Follow with DPO** - Align to preferences using paired data
|
|
126
|
+
3. **Optional: GGUF conversion** - Deploy for local inference
|
|
127
|
+
|
|
128
|
+
**For advanced RL scenarios:**
|
|
129
|
+
1. **Start with SFT** - Fine-tune base model
|
|
130
|
+
2. **Train reward model** - On preference data
|
|
131
|
+
|
|
132
|
+
## Dataset Format Reference
|
|
133
|
+
|
|
134
|
+
For complete dataset format specifications, use:
|
|
135
|
+
```python
|
|
136
|
+
hf_doc_fetch("https://huggingface.co/docs/trl/dataset_formats")
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
Or validate your dataset:
|
|
140
|
+
```bash
|
|
141
|
+
uv run https://huggingface.co/datasets/mcp-tools/skills/raw/main/dataset_inspector.py \
|
|
142
|
+
--dataset your/dataset --split train
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
## See Also
|
|
146
|
+
|
|
147
|
+
- `references/training_patterns.md` - Common training patterns and examples
|
|
148
|
+
- `scripts/train_sft_example.py` - Complete SFT template
|
|
149
|
+
- `scripts/train_dpo_example.py` - Complete DPO template
|
|
150
|
+
- [Dataset Inspector](https://huggingface.co/datasets/mcp-tools/skills/raw/main/dataset_inspector.py) - Dataset format validation tool
|