[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6JYZPJKMDHW2GGMK2J65PSJ":3,"skill-same:01M6JYZPJKMDHW2GGMK2J65PSJ":90},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":28,"publishedAt":52,"linkOnly":53,"markdownContent":54,"markdownBody":55,"frontMatter":56,"refName":57,"commitSha":58,"skillDirectory":59,"forksCount":60,"repositoryHtmlUrl":61,"repositoryHomepageUrl":6,"ownerHtmlUrl":62,"ownerBlogUrl":63,"ownerDescription":64,"updatedAt":65,"install":66,"resources":79},"01M6JYZPJKMDHW2GGMK2J65PSJ","deepseek-provider-contract",null,"Validate a proposed DeepSeek API integration before any key or project context is sent: check thinking-mode tool-call history, strict-schema assumptions, bounded output, and provider data boundaries. Use when integrating DeepSeek, adding DeepSeek tool calls or streaming, debugging DeepSeek 400 after a tool call, or evaluating a DeepSeek harness\u002FMCP. Do NOT use for a generic model comparison, ordinary local coding, or to send a repository transcript to a provider by default.","AnastasiyaW\u002Fcodex-claude-code-config","AnastasiyaW","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F92753226?v=4","01M6JYPD9X5RRF8G7AH91NYD3R","Anastasiia Butova","01M6JYPDFBGM5EV8G8BABQ3GDY",214,"MIT","https:\u002F\u002Fgithub.com\u002FAnastasiyaW\u002Fcodex-claude-code-config\u002Fblob\u002Fmain\u002Fskills\u002Foperational\u002Fdeepseek-provider-contract\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000037","律师与法务","PROFESSION","适用职业",[29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51],"deepseek provider contract","contract","deepseek","provider","Model Comparison","MCP","when","send","mode","project","local","thinking","default","deepseek harness","context","coding","model","api","data","repository","streaming","transcript","debugging","2026-11-10 10:12:30",false,"---\nname: deepseek-provider-contract\ndescription: \"Validate a proposed DeepSeek API integration before any key or project context is sent: check thinking-mode tool-call history, strict-schema assumptions, bounded output, and provider data boundaries. Use when integrating DeepSeek, adding DeepSeek tool calls or streaming, debugging DeepSeek 400 after a tool call, or evaluating a DeepSeek harness\u002FMCP. Do NOT use for a generic model comparison, ordinary local coding, or to send a repository transcript to a provider by default.\"\n---\n\n# DeepSeek Provider Contract\n\nThis is a local, offline contract check. It neither reads `DEEPSEEK_API_KEY` nor\nsends code, transcripts, or secrets. A third-party harness is an implementation\ncandidate, not a trusted route.\n\n## Use It In This Order\n\n1. Classify the proposed prompt\u002Fdata. Private archive, credentials, customer\n   data, and whole transcripts stay local unless the user explicitly authorizes\n   that provider and scope.\n2. Freeze the provider model, endpoint, request budget, and fallback in the\n   integration plan. Do not inherit defaults from a community wrapper.\n3. Save a redacted request-history fixture that explicitly declares whether the\n   **outbound** request carries tools, then run:\n\n   The fixture shape is `{\"outbound_request\":{\"tools\":[...]},\"messages\":[...]}`;\n   use `\"tools\": []` only for an outbound tools-free request.\n\n   ```text\n   python skills\u002Foperational\u002Fdeepseek-provider-contract\u002Fscripts\u002Fvalidate_deepseek_history.py fixture.json\n   ```\n\n4. Run the provider only in a bounded, opt-in experiment. Record model, endpoint,\n   max output, cache-usage fields, request digest, and observed result.\n5. Compare against the incumbent on the same frozen task before adding any route\n   to a workflow. A passing history fixture proves message lifecycle only; it\n   does not prove quality, price, availability, or data handling.\n\n## Required Invariants\n\n- In thinking mode with tools, preserve the provider's complete assistant\n  message, including `reasoning_content` and `tool_calls`. Do not rebuild a\n  reduced assistant message from `content` alone.\n- Each tool result has the exact prior `tool_call_id`.\n- While a request carries `tools`, retain the documented `reasoning_content`\n  from prior assistant turns in its history. Do not reduce this to only the\n  most recent tool-call turn; check the current provider documentation because\n  model and endpoint semantics change.\n- Use strict schema only with the beta endpoint and only after validating the\n  supported JSON Schema subset. Never call a schema \"strict\" merely because it\n  looks valid locally.\n- Set output bounds explicitly and make cache hits\u002Fmisses observability, not a\n  correctness promise.\n\n## Adoption Decision\n\nAdopt a DeepSeek route only when all are true:\n\n1. The offline history validator and its regression tests pass.\n2. A redacted live canary succeeds with the exact frozen integration.\n3. The frozen benchmark beats or materially supplements the current route.\n4. Provider data scope and failure fallback are written down.\n\nOtherwise keep this skill and the fixture only; do not install a global MCP.\n\n## Gotchas\n\n- For a tools-bearing request, the current DeepSeek documentation requires the\n  prior assistant `reasoning_content`; a tools-free request has different\n  context semantics. Treat the offline validator as a narrow fixture check,\n  not a substitute for the live API contract.\n- A response can say cache-hit while quality or latency still changes; measure\n  those separately.\n- A history normalizer that strips `reasoning_content` can make the next\n  tools-bearing request\n  request fail with HTTP 400 even if the first request succeeded.\n- Model names, limits, pricing, and beta semantics are provider facts: re-check\n  the official documentation at the integration date.\n\n## Troubleshooting\n\n| Symptom | Likely cause | Fix |\n|---|---|---|\n| HTTP 400 after a tool result | Assistant reasoning was discarded | Preserve the complete assistant tool-call message and rerun the validator |\n| Tool JSON is rejected in strict mode | Wrong endpoint or unsupported schema | Use the beta endpoint, validate the schema subset, or turn strict mode off |\n| Wrapper works once then loses context | History was normalized too aggressively | Compare its persisted fixture with the provider contract |\n| Temptation to add global MCP | Scope and data boundary were skipped | Keep it opt-in until a frozen canary and benchmark pass |\n\n## Sources\n\n- [DeepSeek Thinking Mode](https:\u002F\u002Fapi-docs.deepseek.com\u002Fguides\u002Fthinking_mode\u002F)\n- [DeepSeek Tool Calls](https:\u002F\u002Fapi-docs.deepseek.com\u002Fguides\u002Ftool_calls\u002F)\n","# DeepSeek Provider Contract\n\nThis is a local, offline contract check. It neither reads `DEEPSEEK_API_KEY` nor\nsends code, transcripts, or secrets. A third-party harness is an implementation\ncandidate, not a trusted route.\n\n## Use It In This Order\n\n1. Classify the proposed prompt\u002Fdata. Private archive, credentials, customer\n   data, and whole transcripts stay local unless the user explicitly authorizes\n   that provider and scope.\n2. Freeze the provider model, endpoint, request budget, and fallback in the\n   integration plan. Do not inherit defaults from a community wrapper.\n3. Save a redacted request-history fixture that explicitly declares whether the\n   **outbound** request carries tools, then run:\n\n   The fixture shape is `{\"outbound_request\":{\"tools\":[...]},\"messages\":[...]}`;\n   use `\"tools\": []` only for an outbound tools-free request.\n\n   ```text\n   python skills\u002Foperational\u002Fdeepseek-provider-contract\u002Fscripts\u002Fvalidate_deepseek_history.py fixture.json\n   ```\n\n4. Run the provider only in a bounded, opt-in experiment. Record model, endpoint,\n   max output, cache-usage fields, request digest, and observed result.\n5. Compare against the incumbent on the same frozen task before adding any route\n   to a workflow. A passing history fixture proves message lifecycle only; it\n   does not prove quality, price, availability, or data handling.\n\n## Required Invariants\n\n- In thinking mode with tools, preserve the provider's complete assistant\n  message, including `reasoning_content` and `tool_calls`. Do not rebuild a\n  reduced assistant message from `content` alone.\n- Each tool result has the exact prior `tool_call_id`.\n- While a request carries `tools`, retain the documented `reasoning_content`\n  from prior assistant turns in its history. Do not reduce this to only the\n  most recent tool-call turn; check the current provider documentation because\n  model and endpoint semantics change.\n- Use strict schema only with the beta endpoint and only after validating the\n  supported JSON Schema subset. Never call a schema \"strict\" merely because it\n  looks valid locally.\n- Set output bounds explicitly and make cache hits\u002Fmisses observability, not a\n  correctness promise.\n\n## Adoption Decision\n\nAdopt a DeepSeek route only when all are true:\n\n1. The offline history validator and its regression tests pass.\n2. A redacted live canary succeeds with the exact frozen integration.\n3. The frozen benchmark beats or materially supplements the current route.\n4. Provider data scope and failure fallback are written down.\n\nOtherwise keep this skill and the fixture only; do not install a global MCP.\n\n## Gotchas\n\n- For a tools-bearing request, the current DeepSeek documentation requires the\n  prior assistant `reasoning_content`; a tools-free request has different\n  context semantics. Treat the offline validator as a narrow fixture check,\n  not a substitute for the live API contract.\n- A response can say cache-hit while quality or latency still changes; measure\n  those separately.\n- A history normalizer that strips `reasoning_content` can make the next\n  tools-bearing request\n  request fail with HTTP 400 even if the first request succeeded.\n- Model names, limits, pricing, and beta semantics are provider facts: re-check\n  the official documentation at the integration date.\n\n## Troubleshooting\n\n| Symptom | Likely cause | Fix |\n|---|---|---|\n| HTTP 400 after a tool result | Assistant reasoning was discarded | Preserve the complete assistant tool-call message and rerun the validator |\n| Tool JSON is rejected in strict mode | Wrong endpoint or unsupported schema | Use the beta endpoint, validate the schema subset, or turn strict mode off |\n| Wrapper works once then loses context | History was normalized too aggressively | Compare its persisted fixture with the provider contract |\n| Temptation to add global MCP | Scope and data boundary were skipped | Keep it opt-in until a frozen canary and benchmark pass |\n\n## Sources\n\n- [DeepSeek Thinking Mode](https:\u002F\u002Fapi-docs.deepseek.com\u002Fguides\u002Fthinking_mode\u002F)\n- [DeepSeek Tool Calls](https:\u002F\u002Fapi-docs.deepseek.com\u002Fguides\u002Ftool_calls\u002F)\n",{"name":5,"description":7},"main","ac20f93f36e574610dbc51743bb21e7765142e95","skills\u002Foperational\u002Fdeepseek-provider-contract",32,"https:\u002F\u002Fgithub.com\u002FAnastasiyaW\u002Fcodex-claude-code-config","https:\u002F\u002Fgithub.com\u002FAnastasiyaW","https:\u002F\u002Fhappyin.work","ComfyUI specialist · turnkey image-processing pipelines · diffusion models, computer vision · Belgrade","2026-11-14 01:35:49",{"source":8,"skillName":5,"commands":67,"prompt":77,"zipAvailable":78},[68,71,74],{"tool":69,"command":70},"npx","npx skills add AnastasiyaW\u002Fcodex-claude-code-config --skill deepseek-provider-contract",{"tool":72,"command":73},"bunx","bunx skills add AnastasiyaW\u002Fcodex-claude-code-config --skill deepseek-provider-contract",{"tool":75,"command":76},"pnpm","pnpm dlx skills add AnastasiyaW\u002Fcodex-claude-code-config --skill deepseek-provider-contract","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FAnastasiyaW\u002Fcodex-claude-code-config\u002Fblob\u002Fmain\u002Fskills\u002Foperational\u002Fdeepseek-provider-contract\u002FSKILL.md",true,[80,86],{"path":81,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":84,"sourceHtmlUrl":85},"scripts\u002Ftest_validate_deepseek_history.py","SCRIPT","脚本",2276,"https:\u002F\u002Fgithub.com\u002FAnastasiyaW\u002Fcodex-claude-code-config\u002Fblob\u002Fmain\u002Fskills\u002Foperational\u002Fdeepseek-provider-contract\u002Fscripts\u002Ftest_validate_deepseek_history.py",{"path":87,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":88,"sourceHtmlUrl":89},"scripts\u002Fvalidate_deepseek_history.py",3266,"https:\u002F\u002Fgithub.com\u002FAnastasiyaW\u002Fcodex-claude-code-config\u002Fblob\u002Fmain\u002Fskills\u002Foperational\u002Fdeepseek-provider-contract\u002Fscripts\u002Fvalidate_deepseek_history.py",[91,100,116,142,168,184],{"skillNo":92,"name":93,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":94,"categories":95,"keywords":97,"publishedAt":52},"01M6JZ2SNGKFN8NK3HZBMVGQP1","owner-voice","https:\u002F\u002Fgithub.com\u002FAnastasiyaW\u002Fcodex-claude-code-config\u002Fblob\u002Fmain\u002Fskills\u002Fwriting\u002Fowner-voice\u002FSKILL.md",[96],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[98,99],"owner voice","voice",{"skillNo":101,"name":102,"nameZh":6,"description":103,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":104,"categories":105,"keywords":107,"publishedAt":52},"01M6JZ2N0C2WFCAK6T8N3RMBVS","humanize-russian","Редактировать русский текст для ясности и естественного звучания, сохраняя факты,\nтермины, источники и жанр. Использовать когда: убрать канцелярит, сделать текст\nживее, отредактировать русский черновик или статью перед публикацией.\nНе определяет авторство и не обещает обход детекторов. Для английского —\nhumanize-english; для структуры и доказательств — article-structure-review.","https:\u002F\u002Fgithub.com\u002FAnastasiyaW\u002Fcodex-claude-code-config\u002Fblob\u002Fmain\u002Fskills\u002Fwriting\u002Fhumanize-russian\u002FSKILL.md",[106],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[108,109,110,111,112,113,114,115],"russian","humanize","humanize russian","english","review","structure","article","2026",{"skillNo":117,"name":118,"nameZh":6,"description":119,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":120,"categories":121,"keywords":122,"publishedAt":52},"01M6JZ2GN264R6GKBQ5QVZE0ZS","humanize-english","Edit English drafts for clear, natural language while preserving facts, uncertainty,\ntechnical meaning, citations and genre. Use when: humanize this text, remove AI-style\nfiller, improve English prose, or edit an English article before publication.\nNot an authorship detector or a promise to bypass one. For Russian use\nhumanize-russian; for thesis\u002Fevidence and structure use article-structure-review.","https:\u002F\u002Fgithub.com\u002FAnastasiyaW\u002Fcodex-claude-code-config\u002Fblob\u002Fmain\u002Fskills\u002Fwriting\u002Fhumanize-english\u002FSKILL.md",[],[109,111,123,124,108,125,126,127,128,113,129,130,131,112,132,115,35,133,134,135,136,137,138,139,114,140,141],"humanize english","technical","evidence","use","remove","edit","text","improve","Citations","Publication","for","facts","natural language","drafts","meaning","uncertainty","style","thesis","promise",{"skillNo":143,"name":144,"nameZh":6,"description":145,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":146,"categories":147,"keywords":148,"publishedAt":52},"01M6JZ2BM31D5Y609DQJJJM6MM","caveman","Ultra-compressed reply mode. Cuts output tokens ~65-75% by answering in terse \"caveman\" style while keeping full technical accuracy, and shapes what survives: action first, state restated every turn, concrete time estimates, visible wins. Intensity levels: lite, full (default), ultra, wenyan-lite, wenyan-full, wenyan-ultra. Use when user says \"caveman\", \"talk like caveman\", \"use caveman\", \"less tokens\", \"be brief\", or Russian \"пещерный режим\", \"говори как пещерный\", \"кратко\", \"меньше токенов\", \"экономь токены\" — or invokes \u002Fcaveman. Preserves the user's language (Russian in → Russian caveman out). Off only: \"stop caveman\" \u002F \"normal mode\" \u002F \"обычный режим\". Do not use merely because a response should be concise, and do not use when the user requests normal prose, a polished document, or exact wording.","https:\u002F\u002Fgithub.com\u002FAnastasiyaW\u002Fcodex-claude-code-config\u002Fblob\u002Fmain\u002Fskills\u002Fwriting\u002Fcaveman\u002FSKILL.md",[],[144,139,35,149,150,151,152,37,153,154,155,156,157,158,159,160,161,108,162,41,163,164,126,124,165,166,167],"normal","terse","accuracy","ultra","document","requests","concise","output","intensity","tokens","full","time","do","action","stop","only","first","brief","state",{"skillNo":169,"name":170,"nameZh":6,"description":171,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":172,"categories":173,"keywords":181,"publishedAt":52},"01M6JZ25Y5GJXFKXNR6TRQX237","article-structure-review","Проверить структуру технической статьи после черновика: задача читателя, жанр,\nопора значимых утверждений на доказательства и честные ограничения.\nUse after the first draft, before publication. Исправлять структуру, когда это\nвходит в запрос; не создавать обязательный конвейер из других навыков.\nДля локальной языковой редактуры — humanize-english или humanize-russian.","https:\u002F\u002Fgithub.com\u002FAnastasiyaW\u002Fcodex-claude-code-config\u002Fblob\u002Fmain\u002Fskills\u002Fwriting\u002Farticle-structure-review\u002FSKILL.md",[174,177,178],{"categoryNo":175,"categoryName":176,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":179,"categoryName":180,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000036","内容创作者",[182,114,113,112,183,109,108,126,165,111,132,115],"article structure review","draft",{"skillNo":185,"name":186,"nameZh":6,"description":187,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":188,"categories":189,"keywords":193,"publishedAt":52},"01M6JZ1XN7WQQCWCHHMTTD8K28","video-post-production","Video post-production rules: audio mastering, color, captions, platform export. Use when: 'add music', 'add voiceover', 'export for tiktok', 'add captions', 'color grade', 'audio levels', 'master audio', 'export settings', 'platform requirements'. Covers FFmpeg patterns, audio chain, subtitle standards, and platform-specific export configs. Do NOT use to generate or animate the video frames\u002Fscenes in code (use remotion-production-guide), to write the script (use video-narrative-arc), or to evaluate script quality (use script-evaluator); this is the finishing stage applied to an already-rendered video.","https:\u002F\u002Fgithub.com\u002FAnastasiyaW\u002Fcodex-claude-code-config\u002Fblob\u002Fmain\u002Fskills\u002Fvideo-production\u002Fvideo-post-production\u002FSKILL.md",[190],{"categoryNo":191,"categoryName":192,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000016","图像与多媒体",[194,195,196,197,198,35,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213],"video post production","post","Production","Video","patterns","post-production","narrative","add","chain","tiktok","voiceover","master","export","write","music","Captions","Audio","Remotion","code","generate"]