[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M699FT4SX75APKSWNC9R23TR":3,"skill-same:01M699FT4SX75APKSWNC9R23TR":66},{"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":38,"linkOnly":39,"markdownContent":40,"markdownBody":41,"frontMatter":42,"refName":43,"commitSha":44,"skillDirectory":45,"forksCount":46,"repositoryHtmlUrl":47,"repositoryHomepageUrl":6,"ownerHtmlUrl":48,"ownerBlogUrl":49,"ownerDescription":50,"updatedAt":51,"install":52,"resources":65},"01M699FT4SX75APKSWNC9R23TR","code-style",null,"Guide for running code style linters and formatters. Use this when asked to check code style, run linters, or fix formatting issues.","microsoft\u002Fsemantic-link-labs","microsoft","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F6154722?v=4","01M698VYDXZ6JW5WH3CRV650R8","Microsoft","01M699FKMT63C17BFNH8WHZN2K",596,"MIT","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fsemantic-link-labs\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fcode-style\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[24,25,26,27,28,29,30,31,32,33,34,35,36,37],"code style","code","style","run","issues","check","fix","guide","use","formatting","run linters","for","when","running","2026-11-10 10:12:30",false,"---\nname: code-style\ndescription: Guide for running code style linters and formatters. Use this when asked to check code style, run linters, or fix formatting issues.\n---\n\n# Code Style and Linting\n\nThis skill covers code style checking and formatting workflows for the Semantic Link Labs project.\n\n## When to Use This Skill\n\nUse this skill when you need to:\n- Check code for style violations\n- Format code with black\n- Verify type correctness with mypy\n- Fix linting errors before committing\n- Ensure code follows project standards\n\n---\n\n## Formatting Tools\n\n| Tool | Purpose | Configuration |\n|------|---------|---------------|\n| **black** | Code formatting | `pyproject.toml` |\n| **flake8** | Style checking | `pyproject.toml` |\n| **mypy** | Type checking | `pyproject.toml` |\n\n---\n\n## Code Formatting with Black\n\nThe project uses `black` for code formatting.\n\n### Running Black\n\n```bash\n# Format all source files\nblack src\u002Fsempy_labs tests\n\n# Check without modifying (dry run)\nblack --check src\u002Fsempy_labs tests\n\n# Show diff of changes\nblack --diff src\u002Fsempy_labs tests\n\n# Format specific file\nblack src\u002Fsempy_labs\u002F_workspaces.py\n```\n\n### Black Configuration\n\nFrom `pyproject.toml`, max line length is configured via flake8 settings.\n\n---\n\n## Style Checking with Flake8\n\n### Running Flake8\n\n```bash\n# Check all source files\nflake8 src\u002Fsempy_labs tests\n\n# Check specific file\nflake8 src\u002Fsempy_labs\u002F_helper_functions.py\n\n# Show source code for each error\nflake8 --show-source src\u002Fsempy_labs\n\n# Show statistics summary\nflake8 --statistics src\u002Fsempy_labs\n```\n\n### Flake8 Configuration\n\nFrom `pyproject.toml`:\n```toml\n[tool.flake8]\nmax-line-length = 200\n```\n\n### Common Flake8 Errors\n\n| Code | Description | Fix |\n|------|-------------|-----|\n| E501 | Line too long (>200 chars) | Break line or shorten code |\n| F401 | Imported but unused | Remove unused import |\n| F841 | Variable assigned but never used | Remove or use the variable |\n| E302 | Expected 2 blank lines | Add blank lines between functions |\n| E303 | Too many blank lines | Remove extra blank lines |\n| W291 | Trailing whitespace | Remove trailing spaces |\n| E711 | Comparison to None | Use `is None` instead of `== None` |\n\n---\n\n## Type Checking with Mypy\n\n### Running Mypy\n\n```bash\n# Check all source files\nmypy src\u002Fsempy_labs\n\n# Check specific file\nmypy src\u002Fsempy_labs\u002F_workspaces.py\n\n# Show error codes\nmypy --show-error-codes src\u002Fsempy_labs\n```\n\n### Mypy Configuration\n\nFrom `pyproject.toml`:\n```toml\n[[tool.mypy.overrides]]\nmodule = \"sempy.*,Microsoft.*,System.*,anytree.*,synapse.ml.services.*,polib.*,jsonpath_ng.*,anywidget.*,sqlglot.*\"\nignore_missing_imports = true\n```\n\n### Common Mypy Errors\n\n| Error | Description | Fix |\n|-------|-------------|-----|\n| `Incompatible types` | Type mismatch | Fix type annotation or value |\n| `Missing return statement` | Function missing return | Add return statement |\n| `Argument has incompatible type` | Wrong argument type | Pass correct type |\n| `has no attribute` | Attribute doesn't exist | Check spelling or type |\n\n### Adding Type Ignore Comments\n\nWhen mypy raises false positives:\n\n```python\n# Ignore specific error\nresult = some_function()  # type: ignore[return-value]\n\n# Ignore all errors on line\nresult = some_function()  # type: ignore\n```\n\n---\n\n## Import Organization\n\n### Import Order\n\nOrganize imports in this order (with blank lines between groups):\n\n1. Standard library imports\n2. Third-party imports\n3. Local application imports\n\n### Example Import Structure\n\n```python\n# Standard library\nimport os\nimport json\nfrom typing import Optional, List\nfrom uuid import UUID\n\n# Third-party\nimport pandas as pd\nimport requests\n\n# Semantic Link (dependency)\nimport sempy.fabric as fabric\nfrom sempy._utils._log import log\n\n# Local imports\nimport sempy_labs._icons as icons\nfrom sempy_labs._helper_functions import (\n    resolve_workspace_id,\n    _base_api,\n)\n```\n\n---\n\n## Pre-Commit Style Checklist\n\nBefore committing code changes:\n\n```bash\n# Format code\nblack src\u002Fsempy_labs tests\n\n# Check for style issues\nflake8 src\u002Fsempy_labs tests\n\n# Check types (optional)\nmypy src\u002Fsempy_labs\n\n# If any errors, fix and re-run\n```\n\n---\n\n## Common Style Fixes\n\n### Line Too Long\n\nBreak long lines using parentheses or backslash:\n\n```python\n# Before\nresult = some_very_long_function_call(parameter1, parameter2, parameter3, parameter4, parameter5)\n\n# After\nresult = some_very_long_function_call(\n    parameter1,\n    parameter2,\n    parameter3,\n    parameter4,\n    parameter5\n)\n```\n\n### F-String Line Breaks\n\n```python\n# Before\nprint(f\"{icons.green_dot} The '{item_name}' {item_type} has been successfully created in the '{workspace_name}' workspace.\")\n\n# After (if too long)\nprint(\n    f\"{icons.green_dot} The '{item_name}' {item_type} has been successfully \"\n    f\"created in the '{workspace_name}' workspace.\"\n)\n```\n\n### Dictionary Formatting\n\n```python\n# Before\npayload = {\"displayName\": name, \"description\": description, \"definition\": definition}\n\n# After\npayload = {\n    \"displayName\": name,\n    \"description\": description,\n    \"definition\": definition,\n}\n```\n\n---\n\n## IDE Integration\n\n### VS Code Settings\n\nRecommended `.vscode\u002Fsettings.json`:\n\n```json\n{\n    \"python.formatting.provider\": \"black\",\n    \"python.linting.flake8Enabled\": true,\n    \"python.linting.mypyEnabled\": true,\n    \"editor.formatOnSave\": true,\n    \"[python]\": {\n        \"editor.defaultFormatter\": \"ms-python.black-formatter\"\n    }\n}\n```\n","# Code Style and Linting\n\nThis skill covers code style checking and formatting workflows for the Semantic Link Labs project.\n\n## When to Use This Skill\n\nUse this skill when you need to:\n- Check code for style violations\n- Format code with black\n- Verify type correctness with mypy\n- Fix linting errors before committing\n- Ensure code follows project standards\n\n---\n\n## Formatting Tools\n\n| Tool | Purpose | Configuration |\n|------|---------|---------------|\n| **black** | Code formatting | `pyproject.toml` |\n| **flake8** | Style checking | `pyproject.toml` |\n| **mypy** | Type checking | `pyproject.toml` |\n\n---\n\n## Code Formatting with Black\n\nThe project uses `black` for code formatting.\n\n### Running Black\n\n```bash\n# Format all source files\nblack src\u002Fsempy_labs tests\n\n# Check without modifying (dry run)\nblack --check src\u002Fsempy_labs tests\n\n# Show diff of changes\nblack --diff src\u002Fsempy_labs tests\n\n# Format specific file\nblack src\u002Fsempy_labs\u002F_workspaces.py\n```\n\n### Black Configuration\n\nFrom `pyproject.toml`, max line length is configured via flake8 settings.\n\n---\n\n## Style Checking with Flake8\n\n### Running Flake8\n\n```bash\n# Check all source files\nflake8 src\u002Fsempy_labs tests\n\n# Check specific file\nflake8 src\u002Fsempy_labs\u002F_helper_functions.py\n\n# Show source code for each error\nflake8 --show-source src\u002Fsempy_labs\n\n# Show statistics summary\nflake8 --statistics src\u002Fsempy_labs\n```\n\n### Flake8 Configuration\n\nFrom `pyproject.toml`:\n```toml\n[tool.flake8]\nmax-line-length = 200\n```\n\n### Common Flake8 Errors\n\n| Code | Description | Fix |\n|------|-------------|-----|\n| E501 | Line too long (>200 chars) | Break line or shorten code |\n| F401 | Imported but unused | Remove unused import |\n| F841 | Variable assigned but never used | Remove or use the variable |\n| E302 | Expected 2 blank lines | Add blank lines between functions |\n| E303 | Too many blank lines | Remove extra blank lines |\n| W291 | Trailing whitespace | Remove trailing spaces |\n| E711 | Comparison to None | Use `is None` instead of `== None` |\n\n---\n\n## Type Checking with Mypy\n\n### Running Mypy\n\n```bash\n# Check all source files\nmypy src\u002Fsempy_labs\n\n# Check specific file\nmypy src\u002Fsempy_labs\u002F_workspaces.py\n\n# Show error codes\nmypy --show-error-codes src\u002Fsempy_labs\n```\n\n### Mypy Configuration\n\nFrom `pyproject.toml`:\n```toml\n[[tool.mypy.overrides]]\nmodule = \"sempy.*,Microsoft.*,System.*,anytree.*,synapse.ml.services.*,polib.*,jsonpath_ng.*,anywidget.*,sqlglot.*\"\nignore_missing_imports = true\n```\n\n### Common Mypy Errors\n\n| Error | Description | Fix |\n|-------|-------------|-----|\n| `Incompatible types` | Type mismatch | Fix type annotation or value |\n| `Missing return statement` | Function missing return | Add return statement |\n| `Argument has incompatible type` | Wrong argument type | Pass correct type |\n| `has no attribute` | Attribute doesn't exist | Check spelling or type |\n\n### Adding Type Ignore Comments\n\nWhen mypy raises false positives:\n\n```python\n# Ignore specific error\nresult = some_function()  # type: ignore[return-value]\n\n# Ignore all errors on line\nresult = some_function()  # type: ignore\n```\n\n---\n\n## Import Organization\n\n### Import Order\n\nOrganize imports in this order (with blank lines between groups):\n\n1. Standard library imports\n2. Third-party imports\n3. Local application imports\n\n### Example Import Structure\n\n```python\n# Standard library\nimport os\nimport json\nfrom typing import Optional, List\nfrom uuid import UUID\n\n# Third-party\nimport pandas as pd\nimport requests\n\n# Semantic Link (dependency)\nimport sempy.fabric as fabric\nfrom sempy._utils._log import log\n\n# Local imports\nimport sempy_labs._icons as icons\nfrom sempy_labs._helper_functions import (\n    resolve_workspace_id,\n    _base_api,\n)\n```\n\n---\n\n## Pre-Commit Style Checklist\n\nBefore committing code changes:\n\n```bash\n# Format code\nblack src\u002Fsempy_labs tests\n\n# Check for style issues\nflake8 src\u002Fsempy_labs tests\n\n# Check types (optional)\nmypy src\u002Fsempy_labs\n\n# If any errors, fix and re-run\n```\n\n---\n\n## Common Style Fixes\n\n### Line Too Long\n\nBreak long lines using parentheses or backslash:\n\n```python\n# Before\nresult = some_very_long_function_call(parameter1, parameter2, parameter3, parameter4, parameter5)\n\n# After\nresult = some_very_long_function_call(\n    parameter1,\n    parameter2,\n    parameter3,\n    parameter4,\n    parameter5\n)\n```\n\n### F-String Line Breaks\n\n```python\n# Before\nprint(f\"{icons.green_dot} The '{item_name}' {item_type} has been successfully created in the '{workspace_name}' workspace.\")\n\n# After (if too long)\nprint(\n    f\"{icons.green_dot} The '{item_name}' {item_type} has been successfully \"\n    f\"created in the '{workspace_name}' workspace.\"\n)\n```\n\n### Dictionary Formatting\n\n```python\n# Before\npayload = {\"displayName\": name, \"description\": description, \"definition\": definition}\n\n# After\npayload = {\n    \"displayName\": name,\n    \"description\": description,\n    \"definition\": definition,\n}\n```\n\n---\n\n## IDE Integration\n\n### VS Code Settings\n\nRecommended `.vscode\u002Fsettings.json`:\n\n```json\n{\n    \"python.formatting.provider\": \"black\",\n    \"python.linting.flake8Enabled\": true,\n    \"python.linting.mypyEnabled\": true,\n    \"editor.formatOnSave\": true,\n    \"[python]\": {\n        \"editor.defaultFormatter\": \"ms-python.black-formatter\"\n    }\n}\n```\n",{"name":5,"description":7},"main","2ddf46109c1209ceffa88149f4631e7b2275f9a1",".claude\u002Fskills\u002Fcode-style",203,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fsemantic-link-labs","https:\u002F\u002Fgithub.com\u002Fmicrosoft","https:\u002F\u002Fopensource.microsoft.com","Open source projects and samples from Microsoft","2026-11-11 02:21:13",{"source":8,"skillName":5,"commands":53,"prompt":63,"zipAvailable":64},[54,57,60],{"tool":55,"command":56},"npx","npx skills add microsoft\u002Fsemantic-link-labs --skill code-style",{"tool":58,"command":59},"bunx","bunx skills add microsoft\u002Fsemantic-link-labs --skill code-style",{"tool":61,"command":62},"pnpm","pnpm dlx skills add microsoft\u002Fsemantic-link-labs --skill code-style","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fsemantic-link-labs\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fcode-style\u002FSKILL.md",true,[],[67,94,125,142,159,170],{"skillNo":68,"name":69,"nameZh":6,"description":70,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":71,"categories":72,"keywords":84,"publishedAt":38},"01M699GKE0WWT6YVHBS06KM8AH","write-tests","Guide for writing unit tests. Use this when creating tests to verify Python logic.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fsemantic-link-labs\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fwrite-tests\u002FSKILL.md",[73,78,81],{"categoryNo":74,"categoryName":75,"taxonomyType":76,"taxonomyTypeDesc":77},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",{"categoryNo":79,"categoryName":80,"taxonomyType":76,"taxonomyTypeDesc":77},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":82,"categoryName":83,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000036","内容创作者",[85,86,87,35,88,36,89,90,91,92,32,31,93],"write tests","write","tests","unit","logic","writing","python","unit tests","verify",{"skillNo":95,"name":96,"nameZh":6,"description":97,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":98,"categories":99,"keywords":109,"publishedAt":38},"01M699GGVJHWCJNW68P08VWCMA","ui-styling","Guide for the visual style, structure, and shared building blocks used by Semantic Link Labs interactive UI tools (HTML widgets and anywidget-based widgets). Use this when adding a new interactive UI, modifying an existing one, or adding shared visual components.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fsemantic-link-labs\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fui-styling\u002FSKILL.md",[100,103,106],{"categoryNo":101,"categoryName":102,"taxonomyType":76,"taxonomyTypeDesc":77},"01JBSEEDCAT000000000000009","前端开发",{"categoryNo":104,"categoryName":105,"taxonomyType":76,"taxonomyTypeDesc":77},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":107,"categoryName":108,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000032","设计师",[110,111,112,32,113,114,115,31,116,117,118,119,120,121,26,122,123,35,124,36],"ui styling","ui","styling","visual","structure","html","interactive","Building Blocks","Tools","components","shared","widgets","visual style","blocks","Existing",{"skillNo":126,"name":127,"nameZh":6,"description":128,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":129,"categories":130,"keywords":131,"publishedAt":38},"01M699GEZ3YRK8PCPVZF4NEEWF","tom-operations","Guide for working with the TOM (Tabular Object Model) wrapper. Use this when modifying semantic models programmatically.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fsemantic-link-labs\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Ftom-operations\u002FSKILL.md",[],[132,133,31,134,35,135,136,137,138,139,32,36,140,141],"operations","tom operations","tabular","object","with","semantic","models","Wrapper","model","semantic models",{"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":154,"publishedAt":38},"01M699GCWWBZM2XFNW5PTGRFJP","sql_to_dax","Guide for translating SQL aggregation expressions into DAX measures.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fsemantic-link-labs\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fsql_to_dax\u002FSKILL.md",[148,151],{"categoryNo":149,"categoryName":150,"taxonomyType":76,"taxonomyTypeDesc":77},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":152,"categoryName":153,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000033","数据分析师",[155,156,157,35,31,158],"sql","sql to dax","dax","aggregation",{"skillNo":160,"name":161,"nameZh":6,"description":162,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":163,"categories":164,"keywords":165,"publishedAt":38},"01M699GAY10VVK66E4QGT94A93","run-tests","Guide for running pytest tests locally. Use this when running tests to verify code changes.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fsemantic-link-labs\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Frun-tests\u002FSKILL.md",[],[87,27,166,35,167,32,31,93,168,25,169,37,36],"run tests","pytest","running tests","changes",{"skillNo":171,"name":172,"nameZh":6,"description":173,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":174,"categories":175,"keywords":178,"publishedAt":38},"01M699G8V718EXYE8BR7NX734G","rest-api-patterns","Guide for implementing REST API wrapper functions. Use this when adding new API wrappers or troubleshooting API calls.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fsemantic-link-labs\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Frest-api-patterns\u002FSKILL.md",[176,177],{"categoryNo":149,"categoryName":150,"taxonomyType":76,"taxonomyTypeDesc":77},{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[179,180,181,182,183,184,35,36,185,186,187,139,32,31,188],"REST","api patterns","rest api","rest api patterns","api","patterns","implementing","calls","functions","troubleshooting"]