[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M78FA2AVJSW3NAEY75PB2SR0":3,"skill-same:01M78FA2AVJSW3NAEY75PB2SR0":69},{"skillNo":4,"name":5,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":18,"linkOnly":19,"markdownContent":20,"markdownBody":20,"frontMatter":21,"refName":22,"commitSha":23,"skillDirectory":24,"forksCount":25,"repositoryHtmlUrl":26,"repositoryHomepageUrl":6,"ownerHtmlUrl":27,"ownerBlogUrl":28,"ownerDescription":29,"updatedAt":30,"install":31,"resources":44},"01M78FA2AVJSW3NAEY75PB2SR0","language-tooling",null,"poppyTM\u002Foride","poppyTM","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F339400917?v=4","01M78F6YNKFR5S5JQR27X9F09Z","Poppy Team","01M78F6YP8ZZTRES9X8Q2ZAD21",1,"MIT","https:\u002F\u002Fgithub.com\u002FpoppyTM\u002Foride\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Flanguage-tooling\u002FSKILL.md",[],[],"2026-11-15 14:19:17",false,"# Language Tooling: LSP & DAP Integration\n\n## Purpose\nIntegrate, configure, and verify Language Server Protocol (LSP) and Debug Adapter Protocol (DAP) tooling: JSON-RPC lifecycle management, capability negotiation, document synchronization, hover, definition, completion, references, workspace symbols, diagnostics, formatting, code actions, and debug sessions with breakpoints, threads, and variable inspection.\n\n## Use when\n- An agent or editor feature needs semantic language services such as go-to-definition, find-references, hover types, or rename across Python, Rust, C++, C#, or TypeScript codebases.\n- Selecting, upgrading, or pinning a language server such as pyright 1.1.390, rust-analyzer 2026-09-01, clangd 17.0.3, OmniSharp, or typescript-language-server 4.3.3.\n- Wiring Debug Adapter Protocol launch, attach, breakpoint, stepping, and thread inspection flows.\n- Diagnosing slow completions, stale diagnostics, or capability mismatches between client and server.\n\n## Do not use when\n- Only tree-level syntax highlighting without types or cross-file resolution is needed; tree-sitter grammars alone are cheaper.\n- The task is pure static analysis policy with no live editor or agent query path; use a linting workflow instead.\n- Debugging requires kernel-level or embedded JTAG access that DAP adapters cannot reach.\n\n## Required context\n- Target languages with pinned server versions and transport used, stdio versus TCP socket.\n- Client capability set: completion snippet support, pull versus push diagnostics, workspace file watching.\n- Latency budgets: server startup under 2 seconds, hover p95 under 150 ms, completion p95 under 300 ms.\n- Workspace root, file globs served, and files explicitly excluded such as generated code and vendored dependencies.\n\n## Procedure\n1. **Negotiate the session**: send `initialize` with `processId`, `rootUri`, and `capabilities`, for example declaring `textDocument.completion.completionItem.snippetSupport: true`. Record the server `capabilities` reply and abort if a required method such as `textDocument\u002Fdefinition` is absent.\n2. **Synchronize documents**: open files with `textDocument\u002FdidOpen` carrying the full text and `languageId`, stream edits via `textDocument\u002FdidChange` with incremental content changes, and close with `textDocument\u002FdidClose`. Never let the server view drift from the buffer on disk.\n3. **Serve semantic queries**: route hover to `textDocument\u002Fhover`, definitions to `textDocument\u002Fdefinition`, references to `textDocument\u002Freferences` with `includeDeclaration: true`, and project-wide lookup to `workspace\u002Fsymbol` capped at 50 results. Cache definition responses per document version.\n4. **Stream diagnostics and edits**: accept `textDocument\u002FpublishDiagnostics` pushes or poll with `textDocument\u002Fdiagnostic`, debounce at 250 ms after the last keystroke, and apply server code actions only through `workspace\u002FapplyEdit` with a user-visible diff.\n5. **Drive debug sessions**: start DAP with `initialize` plus `launch` or `attach`, set breakpoints via `setBreakpoints`, inspect frames with `threads`, `stackTrace`, and `variables`, and always terminate with `disconnect` so no orphaned adapter process survives.\n6. **Verify end to end**: run `scripts\u002Fverify.sh`, measure startup, hover p95, and completion p95 against the budgets, and replay a 200-request script covering hover, definition, references, rename, and formatting with zero protocol errors.\n\n## Decision rules\n- **Capabilities gate everything**: never call an LSP method the server did not advertise in its `initialize` result.\n- **Pin server versions**: floating `latest` servers are forbidden in reproducible pipelines; record exact versions in the spec.\n- **Debounce diagnostics**: diagnostics may lag typing by at most 250 ms of debounce, and stale markers for closed files must be cleared immediately.\n- **No silent edits**: every `workspace\u002FapplyEdit` requires an explicit confirmation record with before and after text.\n- **Kill adapters on exit**: each DAP session owns its process handle and must reap it on disconnect, success, or failure.\n\n## Evidence required\n- Tooling specification following `templates\u002Flanguage-tooling-spec.md` with pinned server versions and capability matrix.\n- Protocol replay log of the 200-request verification script with zero errors and measured latency percentiles.\n- Diagnostics debounce measurement and formatting idempotency check output.\n- Passing execution log from `scripts\u002Fverify.sh`.\n\n## Output contract\n- Initialized LSP session with negotiated capabilities and synchronized workspace.\n- Verified semantic query path for hover, definition, references, symbols, and formatting.\n- DAP launch and breakpoint flow proven against a sample target with clean teardown.\n\n## Stop conditions\n- All latency budgets met with zero protocol errors on the replay script.\n- Formatting proven idempotent and rename proven cross-file on the sample workspace.\n- Token budget exhausted.\n- Blocked on external dependency.\n\n## Escalation rules\n- Escalate to the tooling owner if a pinned server crashes more than twice per hour or omits a capability the task requires.\n- Escalate to the lead architect if two candidate servers disagree on semantics, for example conflicting rename ranges, so a canonical engine can be chosen.\n",{},"main","1cd515630b8ceb57777d466bee4970fe7c2e30e0",".agents\u002Fskills\u002Flanguage-tooling",0,"https:\u002F\u002Fgithub.com\u002FpoppyTM\u002Foride","https:\u002F\u002Fgithub.com\u002FpoppyTM","https:\u002F\u002Fpoppy.lat","Construímos linguagens de programação e ferramentas para quem lê código com o mesmo cuidado com que escreve.","2026-09-30 10:15:52",{"source":7,"skillName":5,"commands":32,"prompt":42,"zipAvailable":43},[33,36,39],{"tool":34,"command":35},"npx","npx skills add poppyTM\u002Foride --skill language-tooling",{"tool":37,"command":38},"bunx","bunx skills add poppyTM\u002Foride --skill language-tooling",{"tool":40,"command":41},"pnpm","pnpm dlx skills add poppyTM\u002Foride --skill language-tooling","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FpoppyTM\u002Foride\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Flanguage-tooling\u002FSKILL.md",true,[45,51,55,59,65],{"path":46,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":49,"sourceHtmlUrl":50},"checks\u002Flanguage-tooling-checklist.md","REFERENCE","参考文档",1871,"https:\u002F\u002Fgithub.com\u002FpoppyTM\u002Foride\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Flanguage-tooling\u002Fchecks\u002Flanguage-tooling-checklist.md",{"path":52,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":53,"sourceHtmlUrl":54},"manifest.json",2238,"https:\u002F\u002Fgithub.com\u002FpoppyTM\u002Foride\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Flanguage-tooling\u002Fmanifest.json",{"path":56,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":57,"sourceHtmlUrl":58},"references\u002Flanguage-tooling-guide.md",2937,"https:\u002F\u002Fgithub.com\u002FpoppyTM\u002Foride\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Flanguage-tooling\u002Freferences\u002Flanguage-tooling-guide.md",{"path":60,"resourceType":61,"resourceTypeDesc":62,"sizeBytes":63,"sourceHtmlUrl":64},"scripts\u002Fverify.sh","SCRIPT","脚本",4369,"https:\u002F\u002Fgithub.com\u002FpoppyTM\u002Foride\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Flanguage-tooling\u002Fscripts\u002Fverify.sh",{"path":66,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":67,"sourceHtmlUrl":68},"templates\u002Flanguage-tooling-spec.md",2299,"https:\u002F\u002Fgithub.com\u002FpoppyTM\u002Foride\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Flanguage-tooling\u002Ftemplates\u002Flanguage-tooling-spec.md",[70,76,82,89,96,103],{"skillNo":71,"name":72,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":73,"categories":74,"keywords":75,"publishedAt":18},"01M78FHQN254KEH0DETXT5JM29","zoom-reflow","https:\u002F\u002Fgithub.com\u002FpoppyTM\u002Foride\u002Fblob\u002Fmain\u002F.ai\u002Fskills\u002Fzoom-reflow\u002FSKILL.md",[],[],{"skillNo":77,"name":78,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":79,"categories":80,"keywords":81,"publishedAt":18},"01M78FHP1880S695V8GQEE0RXK","wireframe-styleguide","https:\u002F\u002Fgithub.com\u002FpoppyTM\u002Foride\u002Fblob\u002Fmain\u002F.ai\u002Fskills\u002Fwireframe-styleguide\u002FSKILL.md",[],[],{"skillNo":83,"name":84,"nameZh":6,"description":85,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":86,"categories":87,"keywords":88,"publishedAt":18},"01M78FHHYM6AN2H819FABW01DZ","visual-regression","Pixel-by-pixel snapshot testing, Playwright integration, dynamic content masking, deterministic font rendering, and cross-browser CI gates","https:\u002F\u002Fgithub.com\u002FpoppyTM\u002Foride\u002Fblob\u002Fmain\u002F.ai\u002Fskills\u002Fvisual-regression\u002FSKILL.md",[],[],{"skillNo":90,"name":91,"nameZh":6,"description":92,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":93,"categories":94,"keywords":95,"publishedAt":18},"01M78FHE53D8DD0QVRY5C37DA4","ui-implementation","Component-driven UI implementation, multi-state matrix (default, hover, focus-visible, active, disabled, loading, empty, error), DTCG design tokens, responsive layout contracts, and accessibility tree mapping.","https:\u002F\u002Fgithub.com\u002FpoppyTM\u002Foride\u002Fblob\u002Fmain\u002F.ai\u002Fskills\u002Fui-implementation\u002FSKILL.md",[],[],{"skillNo":97,"name":98,"nameZh":6,"description":99,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":100,"categories":101,"keywords":102,"publishedAt":18},"01M78FHBJ1KXFF734GFE509TBJ","tui-editor-engine","Text buffer and editing semantics for a terminal code editor — index conversion, transaction-first editing, multi-cursor invariants, undo grouping, and large-file behaviour.","https:\u002F\u002Fgithub.com\u002FpoppyTM\u002Foride\u002Fblob\u002Fmain\u002F.ai\u002Fskills\u002Ftui-editor-engine\u002FSKILL.md",[],[],{"skillNo":104,"name":105,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":106,"categories":107,"keywords":108,"publishedAt":18},"01M78FH9X6CPJX1H61ZDWTTVW8","tree-sitter-context-indexing","https:\u002F\u002Fgithub.com\u002FpoppyTM\u002Foride\u002Fblob\u002Fmain\u002F.ai\u002Fskills\u002Ftree-sitter-context-indexing\u002FSKILL.md",[],[]]