[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CSQMPWXWMQWGCWT8F1C30A":3,"skill-same:01M6CSQMPWXWMQWGCWT8F1C30A":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":23,"publishedAt":33,"linkOnly":34,"markdownContent":35,"markdownBody":36,"frontMatter":37,"refName":45,"commitSha":46,"skillDirectory":47,"forksCount":48,"repositoryHtmlUrl":49,"repositoryHomepageUrl":6,"ownerHtmlUrl":50,"ownerBlogUrl":6,"ownerDescription":51,"updatedAt":52,"install":53,"resources":66},"01M6CSQMPWXWMQWGCWT8F1C30A","my-skill",null,"Use this skill when you need to verify field types are all correct.","bitflight-devops\u002Fskilllint","bitflight-devops","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F83852040?v=4","01M6CSPE9HM6TQTDJPPR9ZGV3T","BitFlight DevOps - Jamie Nelson","01M6CSPEDJ8KR2QNV9RZX8R8RE",7,"MIT","https:\u002F\u002Fgithub.com\u002Fbitflight-devops\u002Fskilllint\u002Fblob\u002Fmain\u002Fpackages\u002Fskilllint\u002Ftests\u002Ffixtures\u002Fproviders\u002Fagentskills\u002Fpassing-examples\u002FFM005\u002Fcorrect-types\u002Fskills\u002Fmy-skill\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32],"my skill","my","verify","correct","use","types","you","true","when","2026-11-10 10:12:30",false,"---\ntype: Playbook\ntitle: Tree Sitter Language Pack Chunking For Llms\ndescription: Use when the user wants to split source code into chunks for an LLM context window without breaking syntax mid-construct. Covers `ts-pack process --chunk-size`, why syntax-aware splits beat fixed-byte splits, picking a size, and the chunk JSON shape.\nx-ai-rulez:\n  kind: skill\n  id: tree-sitter-language-pack-chunking-for-llms\n  metadata:\n    name: tree-sitter-language-pack-chunking-for-llms\n---\n\n# Syntax-aware chunking for LLMs\n\nSplitting code on a fixed byte or line count cuts functions in half and\nstrips context. `ts-pack process \u003Cfile> --chunk-size \u003Cbytes>` splits on\nsyntactic boundaries (whole functions, classes, blocks) so each chunk is a\ncoherent unit, and emits them in the JSON `chunks` array.\n\n## Quick recipe\n\n```bash\n# ~2 KB chunks aligned to syntax boundaries\nts-pack process src\u002Fapp.ts --chunk-size 2000\n```\n\n`--chunk-size` is a maximum size in bytes. The splitter packs whole\nsyntactic units up to that bound; an oversized single construct becomes its\nown chunk rather than being cut. Chunks are added to the normal `process`\nJSON output under `chunks`.\n\n## Picking a size\n\n- Match the downstream model's token budget. A rough rule: bytes ÷ 4 ≈\n  tokens for code, so `--chunk-size 4000` is on the order of ~1k tokens.\n- Larger chunks preserve more local context but fit fewer per request.\n- Leave headroom for the prompt, the surrounding messages, and the\n  response — do not size chunks to the full context window.\n\n## Combining with extraction\n\nChunking composes with the other `process` features, so you can attach\nstructure metadata to each request:\n\n```bash\nts-pack process src\u002Fservice.py --structure --chunk-size 3000 \\\n  | jq '{chunks: (.chunks | length), functions: (.structure | length)}'\n```\n\n## Chunk output\n\n`chunks` is a list of code-chunk objects in the `process` JSON. Each chunk\ncarries its source text plus span information (line\u002Fbyte offsets), so you\ncan cite or re-locate a chunk back in the original file. Iterate the array\nto feed an LLM one coherent unit at a time:\n\n```bash\nts-pack process big_module.py --chunk-size 2500 \\\n  | jq -c '.chunks[]'\n```\n\n## SDK equivalent\n\nThe SDK exposes chunking through the process config: set the\n`chunk_max_size` field (in bytes) on `ProcessConfig` — the same value the\nCLI's `--chunk-size` flag sets. `ProcessConfig` is a frozen dataclass, so\npass it to the constructor:\n\n```python\nfrom tree_sitter_language_pack import process, ProcessConfig\n\nconfig = ProcessConfig(\"python\", chunk_max_size=2500)\nresult = process(source_code, config)\nfor chunk in result.chunks:          # ProcessResult is an object, not a dict\n    send_to_llm(chunk.content)\n```\n\n## When not to chunk\n\nFor a single small file that already fits the context window, skip\nchunking and pass the file whole. Reach for chunking when a file is large,\nwhen you are batching many files into a RAG index, or when you need stable,\nsyntactically coherent units to cite.\n","# Syntax-aware chunking for LLMs\n\nSplitting code on a fixed byte or line count cuts functions in half and\nstrips context. `ts-pack process \u003Cfile> --chunk-size \u003Cbytes>` splits on\nsyntactic boundaries (whole functions, classes, blocks) so each chunk is a\ncoherent unit, and emits them in the JSON `chunks` array.\n\n## Quick recipe\n\n```bash\n# ~2 KB chunks aligned to syntax boundaries\nts-pack process src\u002Fapp.ts --chunk-size 2000\n```\n\n`--chunk-size` is a maximum size in bytes. The splitter packs whole\nsyntactic units up to that bound; an oversized single construct becomes its\nown chunk rather than being cut. Chunks are added to the normal `process`\nJSON output under `chunks`.\n\n## Picking a size\n\n- Match the downstream model's token budget. A rough rule: bytes ÷ 4 ≈\n  tokens for code, so `--chunk-size 4000` is on the order of ~1k tokens.\n- Larger chunks preserve more local context but fit fewer per request.\n- Leave headroom for the prompt, the surrounding messages, and the\n  response — do not size chunks to the full context window.\n\n## Combining with extraction\n\nChunking composes with the other `process` features, so you can attach\nstructure metadata to each request:\n\n```bash\nts-pack process src\u002Fservice.py --structure --chunk-size 3000 \\\n  | jq '{chunks: (.chunks | length), functions: (.structure | length)}'\n```\n\n## Chunk output\n\n`chunks` is a list of code-chunk objects in the `process` JSON. Each chunk\ncarries its source text plus span information (line\u002Fbyte offsets), so you\ncan cite or re-locate a chunk back in the original file. Iterate the array\nto feed an LLM one coherent unit at a time:\n\n```bash\nts-pack process big_module.py --chunk-size 2500 \\\n  | jq -c '.chunks[]'\n```\n\n## SDK equivalent\n\nThe SDK exposes chunking through the process config: set the\n`chunk_max_size` field (in bytes) on `ProcessConfig` — the same value the\nCLI's `--chunk-size` flag sets. `ProcessConfig` is a frozen dataclass, so\npass it to the constructor:\n\n```python\nfrom tree_sitter_language_pack import process, ProcessConfig\n\nconfig = ProcessConfig(\"python\", chunk_max_size=2500)\nresult = process(source_code, config)\nfor chunk in result.chunks:          # ProcessResult is an object, not a dict\n    send_to_llm(chunk.content)\n```\n\n## When not to chunk\n\nFor a single small file that already fits the context window, skip\nchunking and pass the file whole. Reach for chunking when a file is large,\nwhen you are batching many files into a RAG index, or when you need stable,\nsyntactically coherent units to cite.\n",{"type":38,"title":39,"x-ai-rulez":40,"description":44},"Playbook","Tree Sitter Language Pack Chunking For Llms",{"id":41,"kind":42,"metadata":43},"tree-sitter-language-pack-chunking-for-llms","skill",{"name":41},"Use when the user wants to split source code into chunks for an LLM context window without breaking syntax mid-construct. Covers `ts-pack process --chunk-size`, why syntax-aware splits beat fixed-byte splits, picking a size, and the chunk JSON shape.","main","c14405493731b34089b4aae085abe5527b5000c7","packages\u002Fskilllint\u002Ftests\u002Ffixtures\u002Fproviders\u002Fagentskills\u002Fpassing-examples\u002FFM005\u002Fcorrect-types\u002Fskills\u002Fmy-skill",0,"https:\u002F\u002Fgithub.com\u002Fbitflight-devops\u002Fskilllint","https:\u002F\u002Fgithub.com\u002Fbitflight-devops","Public repositories of DevOps tools, scripts, integrations, and templates","2026-11-09 14:16:32",{"source":8,"skillName":5,"commands":54,"prompt":64,"zipAvailable":65},[55,58,61],{"tool":56,"command":57},"npx","npx skills add bitflight-devops\u002Fskilllint --skill my-skill",{"tool":59,"command":60},"bunx","bunx skills add bitflight-devops\u002Fskilllint --skill my-skill",{"tool":62,"command":63},"pnpm","pnpm dlx skills add bitflight-devops\u002Fskilllint --skill my-skill","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fbitflight-devops\u002Fskilllint\u002Fblob\u002Fmain\u002Fpackages\u002Fskilllint\u002Ftests\u002Ffixtures\u002Fproviders\u002Fagentskills\u002Fpassing-examples\u002FFM005\u002Fcorrect-types\u002Fskills\u002Fmy-skill\u002FSKILL.md",true,[67,72,78,82,85],{"path":68,"resourceType":69,"resourceTypeDesc":70,"sizeBytes":48,"sourceHtmlUrl":71},"assets\u002F.gitkeep","ASSET","资产文件","https:\u002F\u002Fgithub.com\u002Fbitflight-devops\u002Fskilllint\u002Fblob\u002Fmain\u002Fpackages\u002Fskilllint\u002Ftests\u002Ffixtures\u002Fproviders\u002Fagentskills\u002Fpassing-examples\u002FFM005\u002Fcorrect-types\u002Fskills\u002Fmy-skill\u002Fassets\u002F.gitkeep",{"path":73,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":76,"sourceHtmlUrl":77},"eval_queries.json","REFERENCE","参考文档",18,"https:\u002F\u002Fgithub.com\u002Fbitflight-devops\u002Fskilllint\u002Fblob\u002Fmain\u002Fpackages\u002Fskilllint\u002Ftests\u002Ffixtures\u002Fproviders\u002Fagentskills\u002Fpassing-examples\u002FFM005\u002Fcorrect-types\u002Fskills\u002Fmy-skill\u002Feval_queries.json",{"path":79,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":80,"sourceHtmlUrl":81},"index.md",323,"https:\u002F\u002Fgithub.com\u002Fxberg-io\u002Ftree-sitter-language-pack\u002Fblob\u002Fmain\u002Fplugin\u002F.ai-rulez\u002Fskills\u002Ftree-sitter-language-pack-chunking-for-llms\u002Findex.md",{"path":83,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":48,"sourceHtmlUrl":84},"references\u002F.gitkeep","https:\u002F\u002Fgithub.com\u002Fbitflight-devops\u002Fskilllint\u002Fblob\u002Fmain\u002Fpackages\u002Fskilllint\u002Ftests\u002Ffixtures\u002Fproviders\u002Fagentskills\u002Fpassing-examples\u002FFM005\u002Fcorrect-types\u002Fskills\u002Fmy-skill\u002Freferences\u002F.gitkeep",{"path":86,"resourceType":87,"resourceTypeDesc":88,"sizeBytes":48,"sourceHtmlUrl":89},"scripts\u002F.gitkeep","SCRIPT","脚本","https:\u002F\u002Fgithub.com\u002Fbitflight-devops\u002Fskilllint\u002Fblob\u002Fmain\u002Fpackages\u002Fskilllint\u002Ftests\u002Ffixtures\u002Fproviders\u002Fagentskills\u002Fpassing-examples\u002FFM005\u002Fcorrect-types\u002Fskills\u002Fmy-skill\u002Fscripts\u002F.gitkeep",[91,104,127,138,148,161],{"skillNo":92,"name":93,"nameZh":6,"description":94,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":95,"categories":96,"keywords":97,"publishedAt":33},"01M6CSQYQKKT3AP6J6NTT1RYJG","fixable-skill","Exercise grouped Action fix findings.","https:\u002F\u002Fgithub.com\u002Fbitflight-devops\u002Fskilllint\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Faction\u002Fskills\u002Ffixable-skill\u002FSKILL.md",[],[98,99,100,101,102,103],"fixable skill","action","exercise","fix findings","fix","read",{"skillNo":105,"name":106,"nameZh":6,"description":107,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":108,"categories":109,"keywords":110,"publishedAt":33},"01M6CSQWBMT9000HH2A7KR1TCC","skilllint","Use the skilllint CLI to validate, explain, and fix agent plugins, skills, agents, commands, and platform files. Use when asked to lint agent artifacts, investigate a skilllint rule ID, or verify a plugin before commit.","https:\u002F\u002Fgithub.com\u002Fbitflight-devops\u002Fskilllint\u002Fblob\u002Fmain\u002Fplugins\u002Fagentskills-skilllint\u002Fskills\u002Fskilllint\u002FSKILL.md",[],[106,111,112,113,114,115,116,117,118,26,119,102,28,120,121,122,123,124,125,126,32],"explain","cli","commit","validate","plugin","lint","artifacts","plugins","investigate","files","commands","platform","id","rule","path","agent plugins",{"skillNo":128,"name":5,"nameZh":6,"description":129,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":130,"categories":131,"keywords":133,"publishedAt":33},"01M6CSQTRYRZN792TK6FV6PDAA","Use this skill when you need to verify valid name pattern compliance.","https:\u002F\u002Fgithub.com\u002Fbitflight-devops\u002Fskilllint\u002Fblob\u002Fmain\u002Fpackages\u002Fskilllint\u002Ftests\u002Ffixtures\u002Fproviders\u002Fagentskills\u002Fpassing-examples\u002FFM010\u002Fvalid-name-pattern\u002Fskills\u002Fmy-skill\u002FSKILL.md",[132],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[25,24,30,32,134,135,136,26,28,137],"name","valid","compliance","pattern",{"skillNo":139,"name":5,"nameZh":6,"description":140,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":141,"categories":142,"keywords":144,"publishedAt":33},"01M6CSQSAR0FC01CBKBXSTYQCD","Use this skill when you need to verify quoted descriptions with colons: example.","https:\u002F\u002Fgithub.com\u002Fbitflight-devops\u002Fskilllint\u002Fblob\u002Fmain\u002Fpackages\u002Fskilllint\u002Ftests\u002Ffixtures\u002Fproviders\u002Fagentskills\u002Fpassing-examples\u002FFM009\u002Fquoted-description\u002Fskills\u002Fmy-skill\u002FSKILL.md",[143],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[25,24,26,28,145,146,30,147,32],"example","with","quoted",{"skillNo":149,"name":5,"nameZh":6,"description":150,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":151,"categories":152,"keywords":154,"publishedAt":33},"01M6CSQQK9TV19JTYPV242XR1P","Use this skill when you need to verify CSV string format for tools.","https:\u002F\u002Fgithub.com\u002Fbitflight-devops\u002Fskilllint\u002Fblob\u002Fmain\u002Fpackages\u002Fskilllint\u002Ftests\u002Ffixtures\u002Fproviders\u002Fagentskills\u002Fpassing-examples\u002FFM007\u002Ftools-as-csv-string\u002Fskills\u002Fmy-skill\u002FSKILL.md",[153],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[25,24,30,155,156,26,157,158,103,28,159,160,32],"csv","Tools","format","grep","STRING","for",{"skillNo":162,"name":5,"nameZh":6,"description":163,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":164,"categories":165,"keywords":167,"publishedAt":33},"01M6CSQP4X044W2FZXDMVGWHPM","Use this skill when you need to verify valid enum field values.","https:\u002F\u002Fgithub.com\u002Fbitflight-devops\u002Fskilllint\u002Fblob\u002Fmain\u002Fpackages\u002Fskilllint\u002Ftests\u002Ffixtures\u002Fproviders\u002Fagentskills\u002Fpassing-examples\u002FFM006\u002Fvalid-context-value\u002Fskills\u002Fmy-skill\u002FSKILL.md",[166],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[24,25,135,26,28,30,168,169,32],"values","fork"]