[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6FTZ6YY3KXGPKYCPC8Z4V58":3,"skill-same:01M6FTZ6YY3KXGPKYCPC8Z4V58":51},{"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":24,"linkOnly":25,"markdownContent":26,"markdownBody":27,"frontMatter":28,"refName":29,"commitSha":30,"skillDirectory":31,"forksCount":13,"repositoryHtmlUrl":32,"repositoryHomepageUrl":6,"ownerHtmlUrl":33,"ownerBlogUrl":34,"ownerDescription":35,"updatedAt":36,"install":37,"resources":50},"01M6FTZ6YY3KXGPKYCPC8Z4V58","azure-monitor-ingestion-java",null,"reikiplanet\u002Fdaoskills","reikiplanet","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F96377599?v=4","01M6CVWCMD740YHQDK7E9QYBW4","Reiki Planet","01M6CVWCS4KXVA2CWFVJ43EAXK",0,"MIT","https:\u002F\u002Fgithub.com\u002Freikiplanet\u002Fdaoskills\u002Fblob\u002Fmaster\u002Fdevelopment\u002Fazure-monitor-ingestion-java\u002FSKILL.md",[],[18,19,20,21,22,23],"azure","azure monitor ingestion java","monitor","java","ingestion","azure monitor","2026-11-10 10:12:30",false,"---\nname: azure-monitor-ingestion-java\ndescription: \"|\"\n  Azure Monitor Ingestion SDK for Java. Send custom logs to Azure Monitor via Data Collection Rules (DCR) and Data Collection Endpoints (DCE).\n  Triggers: \"LogsIngestionClient java\", \"azure monitor ingestion java\", \"custom logs java\", \"DCR java\", \"data collection rule java\".\npackage: com.azure:azure-monitor-ingestion\nrisk: unknown\nsource: community\n---\n\n# Azure Monitor Ingestion SDK for Java\n\nClient library for sending custom logs to Azure Monitor using the Logs Ingestion API via Data Collection Rules.\n\n## Installation\n\n```xml\n\u003Cdependency>\n    \u003CgroupId>com.azure\u003C\u002FgroupId>\n    \u003CartifactId>azure-monitor-ingestion\u003C\u002FartifactId>\n    \u003Cversion>1.2.11\u003C\u002Fversion>\n\u003C\u002Fdependency>\n```\n\nOr use Azure SDK BOM:\n\n```xml\n\u003CdependencyManagement>\n    \u003Cdependencies>\n        \u003Cdependency>\n            \u003CgroupId>com.azure\u003C\u002FgroupId>\n            \u003CartifactId>azure-sdk-bom\u003C\u002FartifactId>\n            \u003Cversion>{bom_version}\u003C\u002Fversion>\n            \u003Ctype>pom\u003C\u002Ftype>\n            \u003Cscope>import\u003C\u002Fscope>\n        \u003C\u002Fdependency>\n    \u003C\u002Fdependencies>\n\u003C\u002FdependencyManagement>\n\n\u003Cdependencies>\n    \u003Cdependency>\n        \u003CgroupId>com.azure\u003C\u002FgroupId>\n        \u003CartifactId>azure-monitor-ingestion\u003C\u002FartifactId>\n    \u003C\u002Fdependency>\n\u003C\u002Fdependencies>\n```\n\n## Prerequisites\n\n- Data Collection Endpoint (DCE)\n- Data Collection Rule (DCR)\n- Log Analytics workspace\n- Target table (custom or built-in: CommonSecurityLog, SecurityEvents, Syslog, WindowsEvents)\n\n## Environment Variables\n\n```bash\nDATA_COLLECTION_ENDPOINT=https:\u002F\u002F\u003Cdce-name>.\u003Cregion>.ingest.monitor.azure.com\nDATA_COLLECTION_RULE_ID=dcr-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\nSTREAM_NAME=Custom-MyTable_CL\n```\n\n## Client Creation\n\n### Synchronous Client\n\n```java\nimport com.azure.identity.DefaultAzureCredential;\nimport com.azure.identity.DefaultAzureCredentialBuilder;\nimport com.azure.monitor.ingestion.LogsIngestionClient;\nimport com.azure.monitor.ingestion.LogsIngestionClientBuilder;\n\nDefaultAzureCredential credential = new DefaultAzureCredentialBuilder().build();\n\nLogsIngestionClient client = new LogsIngestionClientBuilder()\n    .endpoint(\"\u003Cdata-collection-endpoint>\")\n    .credential(credential)\n    .buildClient();\n```\n\n### Asynchronous Client\n\n```java\nimport com.azure.monitor.ingestion.LogsIngestionAsyncClient;\n\nLogsIngestionAsyncClient asyncClient = new LogsIngestionClientBuilder()\n    .endpoint(\"\u003Cdata-collection-endpoint>\")\n    .credential(new DefaultAzureCredentialBuilder().build())\n    .buildAsyncClient();\n```\n\n## Key Concepts\n\n| Concept | Description |\n|---------|-------------|\n| Data Collection Endpoint (DCE) | Ingestion endpoint URL for your region |\n| Data Collection Rule (DCR) | Defines data transformation and routing to tables |\n| Stream Name | Target stream in the DCR (e.g., `Custom-MyTable_CL`) |\n| Log Analytics Workspace | Destination for ingested logs |\n\n## Core Operations\n\n### Upload Custom Logs\n\n```java\nimport java.util.List;\nimport java.util.ArrayList;\n\nList\u003CObject> logs = new ArrayList\u003C>();\nlogs.add(new MyLogEntry(\"2024-01-15T10:30:00Z\", \"INFO\", \"Application started\"));\nlogs.add(new MyLogEntry(\"2024-01-15T10:30:05Z\", \"DEBUG\", \"Processing request\"));\n\nclient.upload(\"\u003Cdata-collection-rule-id>\", \"\u003Cstream-name>\", logs);\nSystem.out.println(\"Logs uploaded successfully\");\n```\n\n### Upload with Concurrency\n\nFor large log collections, enable concurrent uploads:\n\n```java\nimport com.azure.monitor.ingestion.models.LogsUploadOptions;\nimport com.azure.core.util.Context;\n\nList\u003CObject> logs = getLargeLogs(); \u002F\u002F Large collection\n\nLogsUploadOptions options = new LogsUploadOptions()\n    .setMaxConcurrency(3);\n\nclient.upload(\"\u003Cdata-collection-rule-id>\", \"\u003Cstream-name>\", logs, options, Context.NONE);\n```\n\n### Upload with Error Handling\n\nHandle partial upload failures gracefully:\n\n```java\nLogsUploadOptions options = new LogsUploadOptions()\n    .setLogsUploadErrorConsumer(uploadError -> {\n        System.err.println(\"Upload error: \" + uploadError.getResponseException().getMessage());\n        System.err.println(\"Failed logs count: \" + uploadError.getFailedLogs().size());\n        \n        \u002F\u002F Option 1: Log and continue\n        \u002F\u002F Option 2: Throw to abort remaining uploads\n        \u002F\u002F throw uploadError.getResponseException();\n    });\n\nclient.upload(\"\u003Cdata-collection-rule-id>\", \"\u003Cstream-name>\", logs, options, Context.NONE);\n```\n\n### Async Upload with Reactor\n\n```java\nimport reactor.core.publisher.Mono;\n\nList\u003CObject> logs = getLogs();\n\nasyncClient.upload(\"\u003Cdata-collection-rule-id>\", \"\u003Cstream-name>\", logs)\n    .doOnSuccess(v -> System.out.println(\"Upload completed\"))\n    .doOnError(e -> System.err.println(\"Upload failed: \" + e.getMessage()))\n    .subscribe();\n```\n\n## Log Entry Model Example\n\n```java\npublic class MyLogEntry {\n    private String timeGenerated;\n    private String level;\n    private String message;\n    \n    public MyLogEntry(String timeGenerated, String level, String message) {\n        this.timeGenerated = timeGenerated;\n        this.level = level;\n        this.message = message;\n    }\n    \n    \u002F\u002F Getters required for JSON serialization\n    public String getTimeGenerated() { return timeGenerated; }\n    public String getLevel() { return level; }\n    public String getMessage() { return message; }\n}\n```\n\n## Error Handling\n\n```java\nimport com.azure.core.exception.HttpResponseException;\n\ntry {\n    client.upload(ruleId, streamName, logs);\n} catch (HttpResponseException e) {\n    System.err.println(\"HTTP Status: \" + e.getResponse().getStatusCode());\n    System.err.println(\"Error: \" + e.getMessage());\n    \n    if (e.getResponse().getStatusCode() == 403) {\n        System.err.println(\"Check DCR permissions and managed identity\");\n    } else if (e.getResponse().getStatusCode() == 404) {\n        System.err.println(\"Verify DCE endpoint and DCR ID\");\n    }\n}\n```\n\n## Best Practices\n\n1. **Batch logs** — Upload in batches rather than one at a time\n2. **Use concurrency** — Set `maxConcurrency` for large uploads\n3. **Handle partial failures** — Use error consumer to log failed entries\n4. **Match DCR schema** — Log entry fields must match DCR transformation expectations\n5. **Include TimeGenerated** — Most tables require a timestamp field\n6. **Reuse client** — Create once, reuse throughout application\n7. **Use async for high throughput** — `LogsIngestionAsyncClient` for reactive patterns\n\n## Querying Uploaded Logs\n\nUse azure-monitor-query to query ingested logs:\n\n```java\n\u002F\u002F See azure-monitor-query skill for LogsQueryClient usage\nString query = \"MyTable_CL | where TimeGenerated > ago(1h) | limit 10\";\n```\n\n## Reference Links\n\n| Resource | URL |\n|----------|-----|\n| Maven Package | https:\u002F\u002Fcentral.sonatype.com\u002Fartifact\u002Fcom.azure\u002Fazure-monitor-ingestion |\n| GitHub | https:\u002F\u002Fgithub.com\u002FAzure\u002Fazure-sdk-for-java\u002Ftree\u002Fmain\u002Fsdk\u002Fmonitor\u002Fazure-monitor-ingestion |\n| Product Docs | https:\u002F\u002Flearn.microsoft.com\u002Fazure\u002Fazure-monitor\u002Flogs\u002Flogs-ingestion-api-overview |\n| DCE Overview | https:\u002F\u002Flearn.microsoft.com\u002Fazure\u002Fazure-monitor\u002Fessentials\u002Fdata-collection-endpoint-overview |\n| DCR Overview | https:\u002F\u002Flearn.microsoft.com\u002Fazure\u002Fazure-monitor\u002Fessentials\u002Fdata-collection-rule-overview |\n| Troubleshooting | https:\u002F\u002Fgithub.com\u002FAzure\u002Fazure-sdk-for-java\u002Fblob\u002Fmain\u002Fsdk\u002Fmonitor\u002Fazure-monitor-ingestion\u002FTROUBLESHOOTING.md |\n\n## When to Use\nThis skill is applicable to execute the workflow or actions described in the overview.\n","# Azure Monitor Ingestion SDK for Java\n\nClient library for sending custom logs to Azure Monitor using the Logs Ingestion API via Data Collection Rules.\n\n## Installation\n\n```xml\n\u003Cdependency>\n    \u003CgroupId>com.azure\u003C\u002FgroupId>\n    \u003CartifactId>azure-monitor-ingestion\u003C\u002FartifactId>\n    \u003Cversion>1.2.11\u003C\u002Fversion>\n\u003C\u002Fdependency>\n```\n\nOr use Azure SDK BOM:\n\n```xml\n\u003CdependencyManagement>\n    \u003Cdependencies>\n        \u003Cdependency>\n            \u003CgroupId>com.azure\u003C\u002FgroupId>\n            \u003CartifactId>azure-sdk-bom\u003C\u002FartifactId>\n            \u003Cversion>{bom_version}\u003C\u002Fversion>\n            \u003Ctype>pom\u003C\u002Ftype>\n            \u003Cscope>import\u003C\u002Fscope>\n        \u003C\u002Fdependency>\n    \u003C\u002Fdependencies>\n\u003C\u002FdependencyManagement>\n\n\u003Cdependencies>\n    \u003Cdependency>\n        \u003CgroupId>com.azure\u003C\u002FgroupId>\n        \u003CartifactId>azure-monitor-ingestion\u003C\u002FartifactId>\n    \u003C\u002Fdependency>\n\u003C\u002Fdependencies>\n```\n\n## Prerequisites\n\n- Data Collection Endpoint (DCE)\n- Data Collection Rule (DCR)\n- Log Analytics workspace\n- Target table (custom or built-in: CommonSecurityLog, SecurityEvents, Syslog, WindowsEvents)\n\n## Environment Variables\n\n```bash\nDATA_COLLECTION_ENDPOINT=https:\u002F\u002F\u003Cdce-name>.\u003Cregion>.ingest.monitor.azure.com\nDATA_COLLECTION_RULE_ID=dcr-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\nSTREAM_NAME=Custom-MyTable_CL\n```\n\n## Client Creation\n\n### Synchronous Client\n\n```java\nimport com.azure.identity.DefaultAzureCredential;\nimport com.azure.identity.DefaultAzureCredentialBuilder;\nimport com.azure.monitor.ingestion.LogsIngestionClient;\nimport com.azure.monitor.ingestion.LogsIngestionClientBuilder;\n\nDefaultAzureCredential credential = new DefaultAzureCredentialBuilder().build();\n\nLogsIngestionClient client = new LogsIngestionClientBuilder()\n    .endpoint(\"\u003Cdata-collection-endpoint>\")\n    .credential(credential)\n    .buildClient();\n```\n\n### Asynchronous Client\n\n```java\nimport com.azure.monitor.ingestion.LogsIngestionAsyncClient;\n\nLogsIngestionAsyncClient asyncClient = new LogsIngestionClientBuilder()\n    .endpoint(\"\u003Cdata-collection-endpoint>\")\n    .credential(new DefaultAzureCredentialBuilder().build())\n    .buildAsyncClient();\n```\n\n## Key Concepts\n\n| Concept | Description |\n|---------|-------------|\n| Data Collection Endpoint (DCE) | Ingestion endpoint URL for your region |\n| Data Collection Rule (DCR) | Defines data transformation and routing to tables |\n| Stream Name | Target stream in the DCR (e.g., `Custom-MyTable_CL`) |\n| Log Analytics Workspace | Destination for ingested logs |\n\n## Core Operations\n\n### Upload Custom Logs\n\n```java\nimport java.util.List;\nimport java.util.ArrayList;\n\nList\u003CObject> logs = new ArrayList\u003C>();\nlogs.add(new MyLogEntry(\"2024-01-15T10:30:00Z\", \"INFO\", \"Application started\"));\nlogs.add(new MyLogEntry(\"2024-01-15T10:30:05Z\", \"DEBUG\", \"Processing request\"));\n\nclient.upload(\"\u003Cdata-collection-rule-id>\", \"\u003Cstream-name>\", logs);\nSystem.out.println(\"Logs uploaded successfully\");\n```\n\n### Upload with Concurrency\n\nFor large log collections, enable concurrent uploads:\n\n```java\nimport com.azure.monitor.ingestion.models.LogsUploadOptions;\nimport com.azure.core.util.Context;\n\nList\u003CObject> logs = getLargeLogs(); \u002F\u002F Large collection\n\nLogsUploadOptions options = new LogsUploadOptions()\n    .setMaxConcurrency(3);\n\nclient.upload(\"\u003Cdata-collection-rule-id>\", \"\u003Cstream-name>\", logs, options, Context.NONE);\n```\n\n### Upload with Error Handling\n\nHandle partial upload failures gracefully:\n\n```java\nLogsUploadOptions options = new LogsUploadOptions()\n    .setLogsUploadErrorConsumer(uploadError -> {\n        System.err.println(\"Upload error: \" + uploadError.getResponseException().getMessage());\n        System.err.println(\"Failed logs count: \" + uploadError.getFailedLogs().size());\n        \n        \u002F\u002F Option 1: Log and continue\n        \u002F\u002F Option 2: Throw to abort remaining uploads\n        \u002F\u002F throw uploadError.getResponseException();\n    });\n\nclient.upload(\"\u003Cdata-collection-rule-id>\", \"\u003Cstream-name>\", logs, options, Context.NONE);\n```\n\n### Async Upload with Reactor\n\n```java\nimport reactor.core.publisher.Mono;\n\nList\u003CObject> logs = getLogs();\n\nasyncClient.upload(\"\u003Cdata-collection-rule-id>\", \"\u003Cstream-name>\", logs)\n    .doOnSuccess(v -> System.out.println(\"Upload completed\"))\n    .doOnError(e -> System.err.println(\"Upload failed: \" + e.getMessage()))\n    .subscribe();\n```\n\n## Log Entry Model Example\n\n```java\npublic class MyLogEntry {\n    private String timeGenerated;\n    private String level;\n    private String message;\n    \n    public MyLogEntry(String timeGenerated, String level, String message) {\n        this.timeGenerated = timeGenerated;\n        this.level = level;\n        this.message = message;\n    }\n    \n    \u002F\u002F Getters required for JSON serialization\n    public String getTimeGenerated() { return timeGenerated; }\n    public String getLevel() { return level; }\n    public String getMessage() { return message; }\n}\n```\n\n## Error Handling\n\n```java\nimport com.azure.core.exception.HttpResponseException;\n\ntry {\n    client.upload(ruleId, streamName, logs);\n} catch (HttpResponseException e) {\n    System.err.println(\"HTTP Status: \" + e.getResponse().getStatusCode());\n    System.err.println(\"Error: \" + e.getMessage());\n    \n    if (e.getResponse().getStatusCode() == 403) {\n        System.err.println(\"Check DCR permissions and managed identity\");\n    } else if (e.getResponse().getStatusCode() == 404) {\n        System.err.println(\"Verify DCE endpoint and DCR ID\");\n    }\n}\n```\n\n## Best Practices\n\n1. **Batch logs** — Upload in batches rather than one at a time\n2. **Use concurrency** — Set `maxConcurrency` for large uploads\n3. **Handle partial failures** — Use error consumer to log failed entries\n4. **Match DCR schema** — Log entry fields must match DCR transformation expectations\n5. **Include TimeGenerated** — Most tables require a timestamp field\n6. **Reuse client** — Create once, reuse throughout application\n7. **Use async for high throughput** — `LogsIngestionAsyncClient` for reactive patterns\n\n## Querying Uploaded Logs\n\nUse azure-monitor-query to query ingested logs:\n\n```java\n\u002F\u002F See azure-monitor-query skill for LogsQueryClient usage\nString query = \"MyTable_CL | where TimeGenerated > ago(1h) | limit 10\";\n```\n\n## Reference Links\n\n| Resource | URL |\n|----------|-----|\n| Maven Package | https:\u002F\u002Fcentral.sonatype.com\u002Fartifact\u002Fcom.azure\u002Fazure-monitor-ingestion |\n| GitHub | https:\u002F\u002Fgithub.com\u002FAzure\u002Fazure-sdk-for-java\u002Ftree\u002Fmain\u002Fsdk\u002Fmonitor\u002Fazure-monitor-ingestion |\n| Product Docs | https:\u002F\u002Flearn.microsoft.com\u002Fazure\u002Fazure-monitor\u002Flogs\u002Flogs-ingestion-api-overview |\n| DCE Overview | https:\u002F\u002Flearn.microsoft.com\u002Fazure\u002Fazure-monitor\u002Fessentials\u002Fdata-collection-endpoint-overview |\n| DCR Overview | https:\u002F\u002Flearn.microsoft.com\u002Fazure\u002Fazure-monitor\u002Fessentials\u002Fdata-collection-rule-overview |\n| Troubleshooting | https:\u002F\u002Fgithub.com\u002FAzure\u002Fazure-sdk-for-java\u002Fblob\u002Fmain\u002Fsdk\u002Fmonitor\u002Fazure-monitor-ingestion\u002FTROUBLESHOOTING.md |\n\n## When to Use\nThis skill is applicable to execute the workflow or actions described in the overview.\n",{},"master","dff58085da947e81e8418c922055644bf0082b1b","development\u002Fazure-monitor-ingestion-java","https:\u002F\u002Fgithub.com\u002Freikiplanet\u002Fdaoskills","https:\u002F\u002Fgithub.com\u002Freikiplanet","https:\u002F\u002Fwww.reiki-planet.com","Reiki Planet Game","2026-03-29 06:02:29",{"source":7,"skillName":5,"commands":38,"prompt":48,"zipAvailable":49},[39,42,45],{"tool":40,"command":41},"npx","npx skills add reikiplanet\u002Fdaoskills --skill azure-monitor-ingestion-java",{"tool":43,"command":44},"bunx","bunx skills add reikiplanet\u002Fdaoskills --skill azure-monitor-ingestion-java",{"tool":46,"command":47},"pnpm","pnpm dlx skills add reikiplanet\u002Fdaoskills --skill azure-monitor-ingestion-java","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Freikiplanet\u002Fdaoskills\u002Fblob\u002Fmaster\u002Fdevelopment\u002Fazure-monitor-ingestion-java\u002FSKILL.md",true,[],[52,79,91,106,126,149],{"skillNo":53,"name":54,"nameZh":6,"description":55,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":56,"categories":57,"keywords":58,"publishedAt":24},"01M6G614JTEQJHPT8AKK3YQ18S","web-games","Web browser game development principles. Framework selection, WebGPU, optimization, PWA.","https:\u002F\u002Fgithub.com\u002Freikiplanet\u002Fdaoskills\u002Fblob\u002Fmaster\u002Fweb-games\u002FSKILL.md",[],[59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78],"games","web games","web","grep","principles","selection","community","framework selection","edit","write","read","pwa","game","web browser","game development","Optimization","framework","browser","development","webgpu",{"skillNo":80,"name":81,"nameZh":6,"description":82,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":83,"categories":84,"keywords":85,"publishedAt":24},"01M6G611H2YGV0GZFP90D38ZMJ","vr-ar","VR\u002FAR development principles. Comfort, interaction, performance requirements.","https:\u002F\u002Fgithub.com\u002Freikiplanet\u002Fdaoskills\u002Fblob\u002Fmaster\u002Fvr-ar\u002FSKILL.md",[],[86,87,77,88,89,65,67,68,69,62,90,63],"ar","vr ar","interaction","requirements","performance",{"skillNo":92,"name":93,"nameZh":6,"description":94,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":95,"categories":96,"keywords":97,"publishedAt":24},"01M6G60XNMHAMV1SV0EJ1CX0AY","templates","Project scaffolding templates for new applications. Use when creating new projects from scratch. Contains 12 templates for various tech stacks.","https:\u002F\u002Fgithub.com\u002Freikiplanet\u002Fdaoskills\u002Fblob\u002Fmaster\u002Ftemplates\u002FSKILL.md",[],[93,98,99,100,101,102,65,103,69,104,105,62],"project scaffolding","From Scratch","tech","project","scaffolding","use","projects","applications",{"skillNo":107,"name":108,"nameZh":6,"description":109,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":110,"categories":111,"keywords":112,"publishedAt":24},"01M6G60T0GATMK3Q5H8GDC1Z8S","wcag-audit-patterns","Conduct WCAG 2.2 accessibility audits with automated testing, manual verification, and remediation guidance. Use when auditing websites for accessibility, fixing WCAG violations, or implementing ac...","https:\u002F\u002Fgithub.com\u002Freikiplanet\u002Fdaoskills\u002Fblob\u002Fmaster\u002Fskills\u002Fsecurity\u002Fwcag-audit-patterns\u002FSKILL.md",[],[113,114,115,116,117,65,118,119,120,121,103,122,123,124,125],"wcag audit patterns","wcag audit","patterns","WCAG","audit","manual","with","automated testing","guidance","remediation","verification","accessibility","testing",{"skillNo":127,"name":128,"nameZh":6,"description":129,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":130,"categories":131,"keywords":132,"publishedAt":24},"01M6G60PMCHW1FRZ63F931QK3R","vulnerability-scanner","Advanced vulnerability analysis principles. OWASP 2025, Supply Chain Security, attack surface mapping, risk prioritization.","https:\u002F\u002Fgithub.com\u002Freikiplanet\u002Fdaoskills\u002Fblob\u002Fmaster\u002Fskills\u002Fsecurity\u002Fvulnerability-scanner\u002FSKILL.md",[],[133,134,135,136,137,138,139,140,65,69,62,141,63,142,143,144,145,146,147,148],"scanner","vulnerability scanner","vulnerability","prioritization","2025","mapping","chain","supply chain","Bash","analysis","risk","owasp","supply chain security","security","supply","advanced",{"skillNo":150,"name":151,"nameZh":6,"description":152,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":153,"categories":154,"keywords":155,"publishedAt":24},"01M6G60JZBB8DK0W3DSG1WNMZK","threat-modeling-expert","Expert in threat modeling methodologies, security architecture review, and risk assessment. Masters STRIDE, PASTA, attack trees, and security requirement extraction. Use for security architecture r...","https:\u002F\u002Fgithub.com\u002Freikiplanet\u002Fdaoskills\u002Fblob\u002Fmaster\u002Fskills\u002Fsecurity\u002Fthreat-modeling-expert\u002FSKILL.md",[],[156,157,158,159,160,161,162,163,146,103,164,165,166,65,167,168,169,143,170,171],"modeling","threat modeling expert","threat modeling","expert","threat","risk assessment","architecture review","architecture","security architecture review","trees","security architecture","security requirement extraction","assessment","extraction","review","stride"]