[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M69AT9PND3YVN90VZFP0PW2W":3,"skill-same:01M69AT9PND3YVN90VZFP0PW2W":283},{"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":18,"publishedAt":21,"linkOnly":22,"markdownContent":23,"markdownBody":24,"frontMatter":25,"refName":35,"commitSha":36,"skillDirectory":37,"forksCount":38,"repositoryHtmlUrl":39,"repositoryHomepageUrl":40,"ownerHtmlUrl":41,"ownerBlogUrl":42,"ownerDescription":43,"updatedAt":44,"install":45,"resources":58},"01M69AT9PND3YVN90VZFP0PW2W","imagery-provider-adaptation",null,"Imagery provider adaptation skill for HASTE. Encapsulates provider-specific logic for satellite imagery sources (Planet, Vantor, Airbus, etc.). Use when: 'new imagery provider', 'add source type', 'satellite provider', 'Planet', 'Vantor', 'Airbus', 'Pleiades', 'WorldView', 'SkySat', 'imagery ingestion', 'provider adapter'.","microsoft\u002Fhaste","microsoft","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F6154722?v=4","01M698VYDXZ6JW5WH3CRV650R8","Microsoft","01M69ASXS77EYG722CCRAQWQTQ",110,"MIT","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fhaste\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fimagery-provider-adaptation\u002FSKILL.md",[],[19,20],"imagery provider adaptation","documentation","2026-11-10 10:12:30",false,"---\nname: imagery-provider-adaptation\ndescription: \"Imagery provider adaptation skill for HASTE. Encapsulates provider-specific logic for satellite imagery sources (Planet, Vantor, Airbus, etc.). Use when: 'new imagery provider', 'add source type', 'satellite provider', 'Planet', 'Vantor', 'Airbus', 'Pleiades', 'WorldView', 'SkySat', 'imagery ingestion', 'provider adapter'.\"\nsource: \"HASTE imagery processing pipeline, satellite provider documentation\"\ndomain: \"geospatial\"\nlevel: \"advanced\"\nagents: [\"gis\", \"backend-dev\"]\ncreated_date: \"2026-04-27\"\nlast_validated: \"\"\nvalidated_by: \"\"\nstatus: \"draft\"\n---\n\n# Imagery Provider Adaptation\n\n## Overview\n\nStructured process for adding new satellite imagery providers to HASTE. Each provider has different data formats, coordinate systems, APIs, band configurations, and delivery methods. This skill encapsulates the provider-specific logic needed to adapt a new source.\n\n## Key Concepts\n\n### Current Providers\n\n| Provider | Satellites | Format | Bands | Delivery |\n|----------|-----------|--------|-------|----------|\n| Vantor | WorldView-2\u002F3\u002F4, GeoEye-1 | GeoTIFF | 4-8 bands (BGRN + extras) | S3, STAC, Direct URL |\n| Planet | PlanetScope, SkySat | GeoTIFF, COG | 4 bands (BGRN) | Planet API, S3 |\n| Airbus | Pleiades, Pleiades Neo, SPOT | GeoTIFF, DIMAP | 4 bands (BGRN) | OneAtlas, S3 |\n\n### Provider Adapter Components\n\nEach new provider requires:\n1. **Source Type Definition** — Model configuration in `hastegeo.core.models`\n2. **Download Handler** — Provider-specific authentication and download logic\n3. **Band Mapping** — Map provider bands to HASTE's expected band order\n4. **Metadata Parser** — Extract spatial metadata from provider-specific formats\n5. **Preprocessing Rules** — Resolution normalization, radiometric correction\n6. **Tests** — Integration tests with sample provider data\n\n## Patterns & Techniques\n\n### Adding a New Provider: Step-by-Step\n\n**Step 1: Define source type**\nAdd to the source type configuration in `hastegeo.core.models`:\n```python\n# New source type with provider-specific configuration\nclass NewProviderConfig(BaseModel):\n    provider_name: str\n    api_url: str\n    band_order: list[str]  # e.g., [\"B\", \"G\", \"R\", \"NIR\"]\n    default_crs: str  # e.g., \"EPSG:4326\"\n    tile_size: int  # e.g., 256\n```\n\n**Step 2: Implement download handler**\nIn `hastegeo.core.processors.imagery`:\n```python\n# Handle provider-specific authentication and URL patterns\n# Use requests with proper auth (API key, OAuth, etc.)\n# Stream large files to avoid memory issues\n# Validate downloaded file integrity\n```\n\n**Step 3: Implement band mapping**\n```python\n# Map provider bands to HASTE standard order\n# HASTE expects: [Blue, Green, Red, NIR] for 4-band\n# Handle extra bands (e.g., coastal, red-edge, SWIR)\n# Handle missing bands (e.g., panchromatic only)\n```\n\n**Step 4: Implement preprocessing**\n```python\n# 1. Validate CRS — reproject if needed\n# 2. Normalize resolution — resample to target GSD\n# 3. Apply radiometric correction if needed\n# 4. Generate COG with internal tiling and overviews\n# 5. Validate output with rasterio\n```\n\n**Step 5: Add to imagery processor**\nUpdate `ImageryPreProcessor` to route to the new handler based on source type.\n\n**Step 6: Write tests**\n```python\n# Test with real sample data (small AOI, public data preferred)\n# Verify CRS preservation\n# Verify band order mapping\n# Verify COG compliance\n# Verify metadata extraction\n```\n\n### Provider-Specific Gotchas\n\n| Provider | Gotcha | Mitigation |\n|----------|--------|------------|\n| Vantor | Multiple UTM zones in a single order | Check CRS per file, reproject to consistent zone |\n| Planet | UDM2 quality masks delivered separately | Download and apply quality mask before processing |\n| Airbus | DIMAP format metadata | Parse XML metadata alongside GeoTIFF |\n| All | Different nodata conventions | Standardize nodata to 0 or NaN during preprocessing |\n\n## Decision Framework\n\n| Scenario | Approach |\n|----------|----------|\n| Provider uses standard GeoTIFF | Minimal adapter — mostly URL\u002Fauth handling |\n| Provider uses proprietary format | Full adapter — format conversion + metadata extraction |\n| Provider delivers via STAC | Use existing STAC client, add provider-specific auth |\n| Provider requires API key | Store in Config, never hardcode |\n| Provider delivers in tiles | Implement tile stitching before COG generation |\n\n## Quick Reference: COG Output Standard\n\n```\nFormat: Cloud Optimized GeoTIFF\nTiling: 256x256 or 512x512 internal tiles\nOverviews: Nearest power of 2, down to 256px\nCompression: LZW or DEFLATE\nCRS: Preserve source CRS (typically UTM or EPSG:4326)\nNodata: 0 for uint8\u002Fuint16, NaN for float\nBands: Blue, Green, Red, NIR (minimum)\n```\n\n## Common Pitfalls\n\n- **Assuming all providers use the same band order** — Always check and map explicitly\n- **Hardcoding provider URLs\u002Fkeys** — Use `Config` class\n- **Ignoring quality masks** — Bad pixels contaminate training data\n- **Not testing with edge cases** — Antimeridian crossing, polar regions, dateline\n- **Downloading entire scenes when only a small AOI is needed** — Use provider APIs to clip\n","# Imagery Provider Adaptation\n\n## Overview\n\nStructured process for adding new satellite imagery providers to HASTE. Each provider has different data formats, coordinate systems, APIs, band configurations, and delivery methods. This skill encapsulates the provider-specific logic needed to adapt a new source.\n\n## Key Concepts\n\n### Current Providers\n\n| Provider | Satellites | Format | Bands | Delivery |\n|----------|-----------|--------|-------|----------|\n| Vantor | WorldView-2\u002F3\u002F4, GeoEye-1 | GeoTIFF | 4-8 bands (BGRN + extras) | S3, STAC, Direct URL |\n| Planet | PlanetScope, SkySat | GeoTIFF, COG | 4 bands (BGRN) | Planet API, S3 |\n| Airbus | Pleiades, Pleiades Neo, SPOT | GeoTIFF, DIMAP | 4 bands (BGRN) | OneAtlas, S3 |\n\n### Provider Adapter Components\n\nEach new provider requires:\n1. **Source Type Definition** — Model configuration in `hastegeo.core.models`\n2. **Download Handler** — Provider-specific authentication and download logic\n3. **Band Mapping** — Map provider bands to HASTE's expected band order\n4. **Metadata Parser** — Extract spatial metadata from provider-specific formats\n5. **Preprocessing Rules** — Resolution normalization, radiometric correction\n6. **Tests** — Integration tests with sample provider data\n\n## Patterns & Techniques\n\n### Adding a New Provider: Step-by-Step\n\n**Step 1: Define source type**\nAdd to the source type configuration in `hastegeo.core.models`:\n```python\n# New source type with provider-specific configuration\nclass NewProviderConfig(BaseModel):\n    provider_name: str\n    api_url: str\n    band_order: list[str]  # e.g., [\"B\", \"G\", \"R\", \"NIR\"]\n    default_crs: str  # e.g., \"EPSG:4326\"\n    tile_size: int  # e.g., 256\n```\n\n**Step 2: Implement download handler**\nIn `hastegeo.core.processors.imagery`:\n```python\n# Handle provider-specific authentication and URL patterns\n# Use requests with proper auth (API key, OAuth, etc.)\n# Stream large files to avoid memory issues\n# Validate downloaded file integrity\n```\n\n**Step 3: Implement band mapping**\n```python\n# Map provider bands to HASTE standard order\n# HASTE expects: [Blue, Green, Red, NIR] for 4-band\n# Handle extra bands (e.g., coastal, red-edge, SWIR)\n# Handle missing bands (e.g., panchromatic only)\n```\n\n**Step 4: Implement preprocessing**\n```python\n# 1. Validate CRS — reproject if needed\n# 2. Normalize resolution — resample to target GSD\n# 3. Apply radiometric correction if needed\n# 4. Generate COG with internal tiling and overviews\n# 5. Validate output with rasterio\n```\n\n**Step 5: Add to imagery processor**\nUpdate `ImageryPreProcessor` to route to the new handler based on source type.\n\n**Step 6: Write tests**\n```python\n# Test with real sample data (small AOI, public data preferred)\n# Verify CRS preservation\n# Verify band order mapping\n# Verify COG compliance\n# Verify metadata extraction\n```\n\n### Provider-Specific Gotchas\n\n| Provider | Gotcha | Mitigation |\n|----------|--------|------------|\n| Vantor | Multiple UTM zones in a single order | Check CRS per file, reproject to consistent zone |\n| Planet | UDM2 quality masks delivered separately | Download and apply quality mask before processing |\n| Airbus | DIMAP format metadata | Parse XML metadata alongside GeoTIFF |\n| All | Different nodata conventions | Standardize nodata to 0 or NaN during preprocessing |\n\n## Decision Framework\n\n| Scenario | Approach |\n|----------|----------|\n| Provider uses standard GeoTIFF | Minimal adapter — mostly URL\u002Fauth handling |\n| Provider uses proprietary format | Full adapter — format conversion + metadata extraction |\n| Provider delivers via STAC | Use existing STAC client, add provider-specific auth |\n| Provider requires API key | Store in Config, never hardcode |\n| Provider delivers in tiles | Implement tile stitching before COG generation |\n\n## Quick Reference: COG Output Standard\n\n```\nFormat: Cloud Optimized GeoTIFF\nTiling: 256x256 or 512x512 internal tiles\nOverviews: Nearest power of 2, down to 256px\nCompression: LZW or DEFLATE\nCRS: Preserve source CRS (typically UTM or EPSG:4326)\nNodata: 0 for uint8\u002Fuint16, NaN for float\nBands: Blue, Green, Red, NIR (minimum)\n```\n\n## Common Pitfalls\n\n- **Assuming all providers use the same band order** — Always check and map explicitly\n- **Hardcoding provider URLs\u002Fkeys** — Use `Config` class\n- **Ignoring quality masks** — Bad pixels contaminate training data\n- **Not testing with edge cases** — Antimeridian crossing, polar regions, dateline\n- **Downloading entire scenes when only a small AOI is needed** — Use provider APIs to clip\n",{"name":5,"level":26,"agents":27,"domain":30,"source":31,"status":32,"description":7,"created_date":33,"validated_by":34,"last_validated":34},"advanced",[28,29],"gis","backend-dev","geospatial","HASTE imagery processing pipeline, satellite provider documentation","draft","2026-04-27","","main","20513f6bc8d842697a2192d068aa48ef3c22c957",".github\u002Fskills\u002Fimagery-provider-adaptation",19,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fhaste","https:\u002F\u002Fmicrosoft.github.io\u002Fhaste\u002F","https:\u002F\u002Fgithub.com\u002Fmicrosoft","https:\u002F\u002Fopensource.microsoft.com","Open source projects and samples from Microsoft","2026-11-10 14:49:19",{"source":8,"skillName":5,"commands":46,"prompt":56,"zipAvailable":57},[47,50,53],{"tool":48,"command":49},"npx","npx skills add microsoft\u002Fhaste --skill imagery-provider-adaptation",{"tool":51,"command":52},"bunx","bunx skills add microsoft\u002Fhaste --skill imagery-provider-adaptation",{"tool":54,"command":55},"pnpm","pnpm dlx skills add microsoft\u002Fhaste --skill imagery-provider-adaptation","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fhaste\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fimagery-provider-adaptation\u002FSKILL.md",true,[59,65,71,75,79,83,87,91,95,99,103,107,111,115,119,123,127,131,135,139,143,147,151,155,159,163,167,171,175,179,183,187,191,195,199,203,207,211,215,219,223,227,231,235,239,243,247,251,255,259,263,267,271,275,279],{"path":60,"resourceType":61,"resourceTypeDesc":62,"sizeBytes":63,"sourceHtmlUrl":64},"LICENSE.txt","LICENSE","许可证",1467,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fanthropics_skills\u002Fpptx\u002FLICENSE.txt",{"path":66,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":69,"sourceHtmlUrl":70},"scripts\u002F__init__.py","SCRIPT","脚本",0,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fanthropics_skills\u002Fpptx\u002Fscripts\u002F__init__.py",{"path":72,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":73,"sourceHtmlUrl":74},"scripts\u002Fadd_slide.py",14537,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fanthropics_skills\u002Fpptx\u002Fscripts\u002Fadd_slide.py",{"path":76,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":77,"sourceHtmlUrl":78},"scripts\u002Fclean.py",10415,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fanthropics_skills\u002Fpptx\u002Fscripts\u002Fclean.py",{"path":80,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":81,"sourceHtmlUrl":82},"scripts\u002Foffice\u002Fhelpers\u002F__init__.py",3358,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fanthropics_skills\u002Fpptx\u002Fscripts\u002Foffice\u002Fhelpers\u002F__init__.py",{"path":84,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":85,"sourceHtmlUrl":86},"scripts\u002Foffice\u002Fhelpers\u002Fpptx_chart.py",5862,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fanthropics_skills\u002Fpptx\u002Fscripts\u002Foffice\u002Fhelpers\u002Fpptx_chart.py",{"path":88,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":89,"sourceHtmlUrl":90},"scripts\u002Foffice\u002Fhelpers\u002Fpptx_slide.py",1675,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fanthropics_skills\u002Fpptx\u002Fscripts\u002Foffice\u002Fhelpers\u002Fpptx_slide.py",{"path":92,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":93,"sourceHtmlUrl":94},"scripts\u002Foffice\u002Fhelpers\u002Fpptx_theme.py",3510,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fanthropics_skills\u002Fpptx\u002Fscripts\u002Foffice\u002Fhelpers\u002Fpptx_theme.py",{"path":96,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":97,"sourceHtmlUrl":98},"scripts\u002Foffice\u002Fschemas\u002Fecma\u002Ffouth-edition\u002Fopc-contentTypes.xsd",1963,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fanthropics_skills\u002Fpptx\u002Fscripts\u002Foffice\u002Fschemas\u002Fecma\u002Ffouth-edition\u002Fopc-contentTypes.xsd",{"path":100,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":101,"sourceHtmlUrl":102},"scripts\u002Foffice\u002Fschemas\u002Fecma\u002Ffouth-edition\u002Fopc-coreProperties.xsd",2515,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fanthropics_skills\u002Fpptx\u002Fscripts\u002Foffice\u002Fschemas\u002Fecma\u002Ffouth-edition\u002Fopc-coreProperties.xsd",{"path":104,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":105,"sourceHtmlUrl":106},"scripts\u002Foffice\u002Fschemas\u002Fecma\u002Ffouth-edition\u002Fopc-digSig.xsd",2856,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fanthropics_skills\u002Fpptx\u002Fscripts\u002Foffice\u002Fschemas\u002Fecma\u002Ffouth-edition\u002Fopc-digSig.xsd",{"path":108,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":109,"sourceHtmlUrl":110},"scripts\u002Foffice\u002Fschemas\u002Fecma\u002Ffouth-edition\u002Fopc-relationships.xsd",1344,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fanthropics_skills\u002Fpptx\u002Fscripts\u002Foffice\u002Fschemas\u002Fecma\u002Ffouth-edition\u002Fopc-relationships.xsd",{"path":112,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":113,"sourceHtmlUrl":114},"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fdml-chart.xsd",74984,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fanthropics_skills\u002Fpptx\u002Fscripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fdml-chart.xsd",{"path":116,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":117,"sourceHtmlUrl":118},"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fdml-chartDrawing.xsd",6956,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fanthropics_skills\u002Fpptx\u002Fscripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fdml-chartDrawing.xsd",{"path":120,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":121,"sourceHtmlUrl":122},"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fdml-diagram.xsd",51302,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fanthropics_skills\u002Fpptx\u002Fscripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fdml-diagram.xsd",{"path":124,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":125,"sourceHtmlUrl":126},"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fdml-lockedCanvas.xsd",624,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fanthropics_skills\u002Fpptx\u002Fscripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fdml-lockedCanvas.xsd",{"path":128,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":129,"sourceHtmlUrl":130},"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fdml-main.xsd",152039,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fanthropics_skills\u002Fpptx\u002Fscripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fdml-main.xsd",{"path":132,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":133,"sourceHtmlUrl":134},"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fdml-picture.xsd",1231,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fanthropics_skills\u002Fpptx\u002Fscripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fdml-picture.xsd",{"path":136,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":137,"sourceHtmlUrl":138},"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fdml-spreadsheetDrawing.xsd",8862,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fanthropics_skills\u002Fpptx\u002Fscripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fdml-spreadsheetDrawing.xsd",{"path":140,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":141,"sourceHtmlUrl":142},"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fdml-wordprocessingDrawing.xsd",14795,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fanthropics_skills\u002Fpptx\u002Fscripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fdml-wordprocessingDrawing.xsd",{"path":144,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":145,"sourceHtmlUrl":146},"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fpml.xsd",83612,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fanthropics_skills\u002Fpptx\u002Fscripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fpml.xsd",{"path":148,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":149,"sourceHtmlUrl":150},"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fshared-additionalCharacteristics.xsd",1269,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fanthropics_skills\u002Fpptx\u002Fscripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fshared-additionalCharacteristics.xsd",{"path":152,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":153,"sourceHtmlUrl":154},"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fshared-bibliography.xsd",7328,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fanthropics_skills\u002Fpptx\u002Fscripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fshared-bibliography.xsd",{"path":156,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":157,"sourceHtmlUrl":158},"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fshared-commonSimpleTypes.xsd",6382,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fanthropics_skills\u002Fpptx\u002Fscripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fshared-commonSimpleTypes.xsd",{"path":160,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":161,"sourceHtmlUrl":162},"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fshared-customXmlDataProperties.xsd",1248,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fanthropics_skills\u002Fpptx\u002Fscripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fshared-customXmlDataProperties.xsd",{"path":164,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":165,"sourceHtmlUrl":166},"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fshared-customXmlSchemaProperties.xsd",880,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fanthropics_skills\u002Fpptx\u002Fscripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fshared-customXmlSchemaProperties.xsd",{"path":168,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":169,"sourceHtmlUrl":170},"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fshared-documentPropertiesCustom.xsd",2608,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fanthropics_skills\u002Fpptx\u002Fscripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fshared-documentPropertiesCustom.xsd",{"path":172,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":173,"sourceHtmlUrl":174},"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fshared-documentPropertiesExtended.xsd",3507,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fanthropics_skills\u002Fpptx\u002Fscripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fshared-documentPropertiesExtended.xsd",{"path":176,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":177,"sourceHtmlUrl":178},"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fshared-documentPropertiesVariantTypes.xsd",7507,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fanthropics_skills\u002Fpptx\u002Fscripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fshared-documentPropertiesVariantTypes.xsd",{"path":180,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":181,"sourceHtmlUrl":182},"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fshared-math.xsd",23313,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fanthropics_skills\u002Fpptx\u002Fscripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fshared-math.xsd",{"path":184,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":185,"sourceHtmlUrl":186},"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fshared-relationshipReference.xsd",1367,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fanthropics_skills\u002Fpptx\u002Fscripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fshared-relationshipReference.xsd",{"path":188,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":189,"sourceHtmlUrl":190},"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fsml.xsd",242277,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fanthropics_skills\u002Fpptx\u002Fscripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fsml.xsd",{"path":192,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":193,"sourceHtmlUrl":194},"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fvml-main.xsd",26148,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fanthropics_skills\u002Fpptx\u002Fscripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fvml-main.xsd",{"path":196,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":197,"sourceHtmlUrl":198},"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fvml-officeDrawing.xsd",25279,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fanthropics_skills\u002Fpptx\u002Fscripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fvml-officeDrawing.xsd",{"path":200,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":201,"sourceHtmlUrl":202},"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fvml-presentationDrawing.xsd",535,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fanthropics_skills\u002Fpptx\u002Fscripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fvml-presentationDrawing.xsd",{"path":204,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":205,"sourceHtmlUrl":206},"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fvml-spreadsheetDrawing.xsd",5712,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fanthropics_skills\u002Fpptx\u002Fscripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fvml-spreadsheetDrawing.xsd",{"path":208,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":209,"sourceHtmlUrl":210},"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fvml-wordprocessingDrawing.xsd",4010,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fanthropics_skills\u002Fpptx\u002Fscripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fvml-wordprocessingDrawing.xsd",{"path":212,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":213,"sourceHtmlUrl":214},"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fwml.xsd",171367,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fanthropics_skills\u002Fpptx\u002Fscripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fwml.xsd",{"path":216,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":217,"sourceHtmlUrl":218},"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fxml.xsd",4646,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fanthropics_skills\u002Fpptx\u002Fscripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fxml.xsd",{"path":220,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":221,"sourceHtmlUrl":222},"scripts\u002Foffice\u002Fschemas\u002Fmce\u002Fmc.xsd",3127,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fanthropics_skills\u002Fpptx\u002Fscripts\u002Foffice\u002Fschemas\u002Fmce\u002Fmc.xsd",{"path":224,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":225,"sourceHtmlUrl":226},"scripts\u002Foffice\u002Fschemas\u002Fmicrosoft\u002Fwml-2010.xsd",26549,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fanthropics_skills\u002Fpptx\u002Fscripts\u002Foffice\u002Fschemas\u002Fmicrosoft\u002Fwml-2010.xsd",{"path":228,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":229,"sourceHtmlUrl":230},"scripts\u002Foffice\u002Fschemas\u002Fmicrosoft\u002Fwml-2012.xsd",3745,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fanthropics_skills\u002Fpptx\u002Fscripts\u002Foffice\u002Fschemas\u002Fmicrosoft\u002Fwml-2012.xsd",{"path":232,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":233,"sourceHtmlUrl":234},"scripts\u002Foffice\u002Fschemas\u002Fmicrosoft\u002Fwml-2018.xsd",901,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fanthropics_skills\u002Fpptx\u002Fscripts\u002Foffice\u002Fschemas\u002Fmicrosoft\u002Fwml-2018.xsd",{"path":236,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":237,"sourceHtmlUrl":238},"scripts\u002Foffice\u002Fschemas\u002Fmicrosoft\u002Fwml-cex-2018.xsd",1778,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fanthropics_skills\u002Fpptx\u002Fscripts\u002Foffice\u002Fschemas\u002Fmicrosoft\u002Fwml-cex-2018.xsd",{"path":240,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":241,"sourceHtmlUrl":242},"scripts\u002Foffice\u002Fschemas\u002Fmicrosoft\u002Fwml-cid-2016.xsd",1002,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fanthropics_skills\u002Fpptx\u002Fscripts\u002Foffice\u002Fschemas\u002Fmicrosoft\u002Fwml-cid-2016.xsd",{"path":244,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":245,"sourceHtmlUrl":246},"scripts\u002Foffice\u002Fschemas\u002Fmicrosoft\u002Fwml-sdtdatahash-2020.xsd",600,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fanthropics_skills\u002Fpptx\u002Fscripts\u002Foffice\u002Fschemas\u002Fmicrosoft\u002Fwml-sdtdatahash-2020.xsd",{"path":248,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":249,"sourceHtmlUrl":250},"scripts\u002Foffice\u002Fschemas\u002Fmicrosoft\u002Fwml-symex-2015.xsd",745,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fanthropics_skills\u002Fpptx\u002Fscripts\u002Foffice\u002Fschemas\u002Fmicrosoft\u002Fwml-symex-2015.xsd",{"path":252,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":253,"sourceHtmlUrl":254},"scripts\u002Foffice\u002Fsoffice.py",5927,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fanthropics_skills\u002Fpptx\u002Fscripts\u002Foffice\u002Fsoffice.py",{"path":256,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":257,"sourceHtmlUrl":258},"scripts\u002Foffice\u002Fvalidate.py",6142,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fanthropics_skills\u002Fpptx\u002Fscripts\u002Foffice\u002Fvalidate.py",{"path":260,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":261,"sourceHtmlUrl":262},"scripts\u002Foffice\u002Fvalidators\u002F__init__.py",336,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fanthropics_skills\u002Fpptx\u002Fscripts\u002Foffice\u002Fvalidators\u002F__init__.py",{"path":264,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":265,"sourceHtmlUrl":266},"scripts\u002Foffice\u002Fvalidators\u002Fbase.py",33756,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fanthropics_skills\u002Fpptx\u002Fscripts\u002Foffice\u002Fvalidators\u002Fbase.py",{"path":268,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":269,"sourceHtmlUrl":270},"scripts\u002Foffice\u002Fvalidators\u002Fdocx.py",17482,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fanthropics_skills\u002Fpptx\u002Fscripts\u002Foffice\u002Fvalidators\u002Fdocx.py",{"path":272,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":273,"sourceHtmlUrl":274},"scripts\u002Foffice\u002Fvalidators\u002Fpptx.py",15966,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fanthropics_skills\u002Fpptx\u002Fscripts\u002Foffice\u002Fvalidators\u002Fpptx.py",{"path":276,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":277,"sourceHtmlUrl":278},"scripts\u002Foffice\u002Fvalidators\u002Fredlining.py",11231,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fanthropics_skills\u002Fpptx\u002Fscripts\u002Foffice\u002Fvalidators\u002Fredlining.py",{"path":280,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":281,"sourceHtmlUrl":282},"scripts\u002Fthumbnail.py",9802,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fanthropics_skills\u002Fpptx\u002Fscripts\u002Fthumbnail.py",[284,298,308,319,328,336],{"skillNo":285,"name":286,"nameZh":6,"description":287,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":288,"categories":289,"keywords":290,"publishedAt":21},"01M69ATF7EZ2CBCPFKQ99NZJEM","validation-diagnostics","Validation and diagnostic skill for HASTE. Compare planned vs implemented work, generate diagnostic reports, and feed misses back into skill refinement. Use when: 'validate implementation', 'compare to spec', 'diagnostic report', 'drift analysis', 'coverage check', 'implementation review'.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fhaste\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fvalidation-diagnostics\u002FSKILL.md",[],[291,292,293,294,295,296,297],"validation diagnostics","diagnostics","validate","to spec","security","spec","review",{"skillNo":299,"name":300,"nameZh":6,"description":301,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":302,"categories":303,"keywords":304,"publishedAt":21},"01M69ATDJ0SQ0RMHK9148MKYHB","security-analysis","Dependabot and security analysis skill for HASTE. Parse alerts, group related vulnerabilities, apply severity rules, and produce structured reports. Use when: 'Dependabot alert', 'security scan', 'vulnerability triage', 'dependency audit', 'npm audit', 'pip audit', 'CVE analysis'.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fhaste\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fsecurity-analysis\u002FSKILL.md",[],[305,295,306,307],"security analysis","triage","vulnerabilities",{"skillNo":309,"name":310,"nameZh":6,"description":311,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":312,"categories":313,"keywords":314,"publishedAt":21},"01M69ATBBN86366SYW86NM19PT","release-notes","Generate release notes from commit history. Use when asked to draft release notes, create a changelog, or summarize changes for a release.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fhaste\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Frelease-notes\u002FSKILL.md",[],[315,316,20,317,318],"release notes","notes","commit","summarize",{"skillNo":320,"name":321,"nameZh":6,"description":322,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":323,"categories":324,"keywords":325,"publishedAt":21},"01M69AT83XYH0W0A22KJNQSZG3","deterministic-scripts","Deterministic script execution skill for HASTE. Execute scripts instead of free-form LLM behavior for consistent, repeatable operations. Use when: 'run preprocessing', 'convert format', 'parse metadata', 'generate tiles', 'build wheel', 'deploy functions'. Prevents hallucinated scripts.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fhaste\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fdeterministic-scripts\u002FSKILL.md",[],[326,327],"deterministic scripts","deploy",{"skillNo":329,"name":330,"nameZh":6,"description":331,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":332,"categories":333,"keywords":334,"publishedAt":21},"01M69AT6GZFSRAHX1169T5FZNZ","dependency-update","Guide for safely updating project dependencies. Use when asked to update packages, upgrade dependencies, or check for outdated libraries.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fhaste\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fdependency-update\u002FSKILL.md",[],[335,295],"dependency update",{"skillNo":337,"name":338,"nameZh":6,"description":339,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":340,"categories":341,"keywords":352,"publishedAt":21},"01M69AT4D27D87HZXBQ4P7VXKK","debug-test-failures","Systematic debugging workflow for test failures. Use when tests are failing, a CI build is red, or when asked to debug test issues.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fhaste\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fdebug-test-failures\u002FSKILL.md",[342,347],{"categoryNo":343,"categoryName":344,"taxonomyType":345,"taxonomyTypeDesc":346},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",{"categoryNo":348,"categoryName":349,"taxonomyType":350,"taxonomyTypeDesc":351},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[353,354,355,356,357,358,359],"debug test failures","debug test","debug","test","testing","systematic debugging","workflow"]