[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71NDVEGQJCSS2AWFHBYMQMT":3,"skill-same:01M71NDVEGQJCSS2AWFHBYMQMT":118},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":15,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":44,"linkOnly":45,"markdownContent":46,"markdownBody":47,"frontMatter":48,"refName":56,"commitSha":57,"skillDirectory":58,"forksCount":59,"repositoryHtmlUrl":60,"repositoryHomepageUrl":61,"ownerHtmlUrl":62,"ownerBlogUrl":63,"ownerDescription":6,"updatedAt":64,"install":65,"resources":78},"01M71NDVEGQJCSS2AWFHBYMQMT","monitoring-expert",null,"Use when setting up observability: structured logging, Prometheus metrics, Grafana dashboards, alert rules and OpenTelemetry distributed tracing. Also covers load testing, profiling and capacity planning, with RED and USE dashboard methods.","monoes\u002Fmonomind","monoes","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F276744696?v=4","01M71KWF37AJ2NJBP3KWBVSDGT","01M71KWF4CSF8ADH0M6HA09VD2",23,"MIT","https:\u002F\u002Fgithub.com\u002Fmonoes\u002Fmonomind\u002Fblob\u002Fmain\u002Fpackages\u002F@monomind\u002Fcli\u002Forg-skills\u002Fmonitoring-expert\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fmonoes\u002Fmonomind\u002Fblob\u002Fmain\u002Fpackages\u002F@monomind\u002Fcli\u002Forg-skills\u002Fmonitoring-expert\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43],"monitoring","monitoring expert","expert","metrics","dashboards","logging","distributed tracing","tracing","capacity planning","structured logging","load testing","dashboard","grafana","when","up","testing","performance","claude-skills","grafana dashboards","OpenTelemetry","2026-11-10 10:56:23",false,"---\nname: monitoring-expert\ndescription: \"Use when setting up observability: structured logging, Prometheus metrics, Grafana dashboards, alert rules and OpenTelemetry distributed tracing. Also covers load testing, profiling and capacity planning, with RED and USE dashboard methods.\"\ntags: [\"devops\",\"observability\",\"performance\"]\ntools: []\nlicense: MIT\nsource: https:\u002F\u002Fgithub.com\u002FJeffallan\u002Fclaude-skills\nsource_path: \"skills\u002Fmonitoring-expert\"\nsource_commit: 882ef55e377dbf9a4dbe496bb41ac6ccd0e555cf\n---\n# Monitoring Expert\n\nObservability and performance specialist implementing comprehensive monitoring, alerting, tracing, and performance testing systems.\n\n## Core Workflow\n\n1. **Assess** — Identify what needs monitoring (SLIs, critical paths, business metrics)\n2. **Instrument** — Add logging, metrics, and traces to the application (see examples below)\n3. **Collect** — Configure aggregation and storage (Prometheus scrape, log shipper, OTLP endpoint); verify data arrives before proceeding\n4. **Visualize** — Build dashboards using RED (Rate\u002FErrors\u002FDuration) or USE (Utilization\u002FSaturation\u002FErrors) methods\n5. **Alert** — Define threshold and anomaly alerts on critical paths; validate no false-positive flood before shipping\n\n## Quick-Start Examples\n\n### Structured Logging (Node.js \u002F Pino)\n```js\nimport pino from 'pino';\n\nconst logger = pino({ level: 'info' });\n\n\u002F\u002F Good — structured fields, includes correlation ID\nlogger.info({ requestId: req.id, userId: req.user.id, durationMs: elapsed }, 'order.created');\n\n\u002F\u002F Bad — string interpolation, no correlation\nconsole.log(`Order created for user ${userId}`);\n```\n\n### Prometheus Metrics (Node.js)\n```js\nimport { Counter, Histogram, register } from 'prom-client';\n\nconst httpRequests = new Counter({\n  name: 'http_requests_total',\n  help: 'Total HTTP requests',\n  labelNames: ['method', 'route', 'status'],\n});\n\nconst httpDuration = new Histogram({\n  name: 'http_request_duration_seconds',\n  help: 'HTTP request latency',\n  labelNames: ['method', 'route'],\n  buckets: [0.05, 0.1, 0.3, 0.5, 1, 2, 5],\n});\n\n\u002F\u002F Instrument a route\napp.use((req, res, next) => {\n  const end = httpDuration.startTimer({ method: req.method, route: req.path });\n  res.on('finish', () => {\n    httpRequests.inc({ method: req.method, route: req.path, status: res.statusCode });\n    end();\n  });\n  next();\n});\n\n\u002F\u002F Expose scrape endpoint\napp.get('\u002Fmetrics', async (req, res) => {\n  res.set('Content-Type', register.contentType);\n  res.end(await register.metrics());\n});\n```\n\n### OpenTelemetry Tracing (Node.js)\n```js\nimport { NodeSDK } from '@opentelemetry\u002Fsdk-node';\nimport { OTLPTraceExporter } from '@opentelemetry\u002Fexporter-trace-otlp-http';\nimport { trace } from '@opentelemetry\u002Fapi';\n\nconst sdk = new NodeSDK({\n  traceExporter: new OTLPTraceExporter({ url: 'http:\u002F\u002Fjaeger:4318\u002Fv1\u002Ftraces' }),\n});\nsdk.start();\n\n\u002F\u002F Manual span around a critical operation\nconst tracer = trace.getTracer('order-service');\nasync function processOrder(orderId) {\n  const span = tracer.startSpan('order.process');\n  span.setAttribute('order.id', orderId);\n  try {\n    const result = await db.saveOrder(orderId);\n    span.setStatus({ code: SpanStatusCode.OK });\n    return result;\n  } catch (err) {\n    span.recordException(err);\n    span.setStatus({ code: SpanStatusCode.ERROR });\n    throw err;\n  } finally {\n    span.end();\n  }\n}\n```\n\n### Prometheus Alerting Rule\n```yaml\ngroups:\n  - name: api.rules\n    rules:\n      - alert: HighErrorRate\n        expr: |\n          rate(http_requests_total{status=~\"5..\"}[5m])\n          \u002F rate(http_requests_total[5m]) > 0.05\n        for: 2m\n        labels:\n          severity: critical\n        annotations:\n          summary: \"Error rate above 5% on {{ $labels.route }}\"\n```\n\n### k6 Load Test\n```js\nimport http from 'k6\u002Fhttp';\nimport { check, sleep } from 'k6';\n\nexport const options = {\n  stages: [\n    { duration: '1m', target: 50 },   \u002F\u002F ramp up\n    { duration: '5m', target: 50 },   \u002F\u002F sustained load\n    { duration: '1m', target: 0 },    \u002F\u002F ramp down\n  ],\n  thresholds: {\n    http_req_duration: ['p(95)\u003C500'],  \u002F\u002F 95th percentile \u003C 500 ms\n    http_req_failed:   ['rate\u003C0.01'],  \u002F\u002F error rate \u003C 1%\n  },\n};\n\nexport default function () {\n  const res = http.get('https:\u002F\u002Fapi.example.com\u002Forders');\n  check(res, { 'status is 200': (r) => r.status === 200 });\n  sleep(1);\n}\n```\n\n## Reference Guide\n\nLoad detailed guidance based on context:\n\n| Topic | Reference | Load When |\n|-------|-----------|-----------|\n| Logging | `references\u002Fstructured-logging.md` | Pino, JSON logging |\n| Metrics | `references\u002Fprometheus-metrics.md` | Counter, Histogram, Gauge |\n| Tracing | `references\u002Fopentelemetry.md` | OpenTelemetry, spans |\n| Alerting | `references\u002Falerting-rules.md` | Prometheus alerts |\n| Dashboards | `references\u002Fdashboards.md` | RED\u002FUSE method, Grafana |\n| Performance Testing | `references\u002Fperformance-testing.md` | Load testing, k6, Artillery, benchmarks |\n| Profiling | `references\u002Fapplication-profiling.md` | CPU\u002Fmemory profiling, bottlenecks |\n| Capacity Planning | `references\u002Fcapacity-planning.md` | Scaling, forecasting, budgets |\n\n## Constraints\n\n### MUST DO\n- Use structured logging (JSON)\n- Include request IDs for correlation\n- Set up alerts for critical paths\n- Monitor business metrics, not just technical\n- Use appropriate metric types (counter\u002Fgauge\u002Fhistogram)\n- Implement health check endpoints\n\n### MUST NOT DO\n- Log sensitive data (passwords, tokens, PII)\n- Alert on every error (alert fatigue)\n- Use string interpolation in logs (use structured fields)\n- Skip correlation IDs in distributed systems\n\n[Documentation](https:\u002F\u002Fjeffallan.github.io\u002Fclaude-skills\u002Fskills\u002Fdevops\u002Fmonitoring-expert\u002F)\n","# Monitoring Expert\n\nObservability and performance specialist implementing comprehensive monitoring, alerting, tracing, and performance testing systems.\n\n## Core Workflow\n\n1. **Assess** — Identify what needs monitoring (SLIs, critical paths, business metrics)\n2. **Instrument** — Add logging, metrics, and traces to the application (see examples below)\n3. **Collect** — Configure aggregation and storage (Prometheus scrape, log shipper, OTLP endpoint); verify data arrives before proceeding\n4. **Visualize** — Build dashboards using RED (Rate\u002FErrors\u002FDuration) or USE (Utilization\u002FSaturation\u002FErrors) methods\n5. **Alert** — Define threshold and anomaly alerts on critical paths; validate no false-positive flood before shipping\n\n## Quick-Start Examples\n\n### Structured Logging (Node.js \u002F Pino)\n```js\nimport pino from 'pino';\n\nconst logger = pino({ level: 'info' });\n\n\u002F\u002F Good — structured fields, includes correlation ID\nlogger.info({ requestId: req.id, userId: req.user.id, durationMs: elapsed }, 'order.created');\n\n\u002F\u002F Bad — string interpolation, no correlation\nconsole.log(`Order created for user ${userId}`);\n```\n\n### Prometheus Metrics (Node.js)\n```js\nimport { Counter, Histogram, register } from 'prom-client';\n\nconst httpRequests = new Counter({\n  name: 'http_requests_total',\n  help: 'Total HTTP requests',\n  labelNames: ['method', 'route', 'status'],\n});\n\nconst httpDuration = new Histogram({\n  name: 'http_request_duration_seconds',\n  help: 'HTTP request latency',\n  labelNames: ['method', 'route'],\n  buckets: [0.05, 0.1, 0.3, 0.5, 1, 2, 5],\n});\n\n\u002F\u002F Instrument a route\napp.use((req, res, next) => {\n  const end = httpDuration.startTimer({ method: req.method, route: req.path });\n  res.on('finish', () => {\n    httpRequests.inc({ method: req.method, route: req.path, status: res.statusCode });\n    end();\n  });\n  next();\n});\n\n\u002F\u002F Expose scrape endpoint\napp.get('\u002Fmetrics', async (req, res) => {\n  res.set('Content-Type', register.contentType);\n  res.end(await register.metrics());\n});\n```\n\n### OpenTelemetry Tracing (Node.js)\n```js\nimport { NodeSDK } from '@opentelemetry\u002Fsdk-node';\nimport { OTLPTraceExporter } from '@opentelemetry\u002Fexporter-trace-otlp-http';\nimport { trace } from '@opentelemetry\u002Fapi';\n\nconst sdk = new NodeSDK({\n  traceExporter: new OTLPTraceExporter({ url: 'http:\u002F\u002Fjaeger:4318\u002Fv1\u002Ftraces' }),\n});\nsdk.start();\n\n\u002F\u002F Manual span around a critical operation\nconst tracer = trace.getTracer('order-service');\nasync function processOrder(orderId) {\n  const span = tracer.startSpan('order.process');\n  span.setAttribute('order.id', orderId);\n  try {\n    const result = await db.saveOrder(orderId);\n    span.setStatus({ code: SpanStatusCode.OK });\n    return result;\n  } catch (err) {\n    span.recordException(err);\n    span.setStatus({ code: SpanStatusCode.ERROR });\n    throw err;\n  } finally {\n    span.end();\n  }\n}\n```\n\n### Prometheus Alerting Rule\n```yaml\ngroups:\n  - name: api.rules\n    rules:\n      - alert: HighErrorRate\n        expr: |\n          rate(http_requests_total{status=~\"5..\"}[5m])\n          \u002F rate(http_requests_total[5m]) > 0.05\n        for: 2m\n        labels:\n          severity: critical\n        annotations:\n          summary: \"Error rate above 5% on {{ $labels.route }}\"\n```\n\n### k6 Load Test\n```js\nimport http from 'k6\u002Fhttp';\nimport { check, sleep } from 'k6';\n\nexport const options = {\n  stages: [\n    { duration: '1m', target: 50 },   \u002F\u002F ramp up\n    { duration: '5m', target: 50 },   \u002F\u002F sustained load\n    { duration: '1m', target: 0 },    \u002F\u002F ramp down\n  ],\n  thresholds: {\n    http_req_duration: ['p(95)\u003C500'],  \u002F\u002F 95th percentile \u003C 500 ms\n    http_req_failed:   ['rate\u003C0.01'],  \u002F\u002F error rate \u003C 1%\n  },\n};\n\nexport default function () {\n  const res = http.get('https:\u002F\u002Fapi.example.com\u002Forders');\n  check(res, { 'status is 200': (r) => r.status === 200 });\n  sleep(1);\n}\n```\n\n## Reference Guide\n\nLoad detailed guidance based on context:\n\n| Topic | Reference | Load When |\n|-------|-----------|-----------|\n| Logging | `references\u002Fstructured-logging.md` | Pino, JSON logging |\n| Metrics | `references\u002Fprometheus-metrics.md` | Counter, Histogram, Gauge |\n| Tracing | `references\u002Fopentelemetry.md` | OpenTelemetry, spans |\n| Alerting | `references\u002Falerting-rules.md` | Prometheus alerts |\n| Dashboards | `references\u002Fdashboards.md` | RED\u002FUSE method, Grafana |\n| Performance Testing | `references\u002Fperformance-testing.md` | Load testing, k6, Artillery, benchmarks |\n| Profiling | `references\u002Fapplication-profiling.md` | CPU\u002Fmemory profiling, bottlenecks |\n| Capacity Planning | `references\u002Fcapacity-planning.md` | Scaling, forecasting, budgets |\n\n## Constraints\n\n### MUST DO\n- Use structured logging (JSON)\n- Include request IDs for correlation\n- Set up alerts for critical paths\n- Monitor business metrics, not just technical\n- Use appropriate metric types (counter\u002Fgauge\u002Fhistogram)\n- Implement health check endpoints\n\n### MUST NOT DO\n- Log sensitive data (passwords, tokens, PII)\n- Alert on every error (alert fatigue)\n- Use string interpolation in logs (use structured fields)\n- Skip correlation IDs in distributed systems\n\n[Documentation](https:\u002F\u002Fjeffallan.github.io\u002Fclaude-skills\u002Fskills\u002Fdevops\u002Fmonitoring-expert\u002F)\n",{"name":5,"tags":49,"tools":52,"source":53,"license":14,"description":7,"source_path":54,"source_commit":55},[50,51,40],"devops","observability",[],"https:\u002F\u002Fgithub.com\u002FJeffallan\u002Fclaude-skills","skills\u002Fmonitoring-expert","882ef55e377dbf9a4dbe496bb41ac6ccd0e555cf","main","f7cd4595d0f8959822163e14f9787117765c931a","packages\u002F@monomind\u002Fcli\u002Forg-skills\u002Fmonitoring-expert",2,"https:\u002F\u002Fgithub.com\u002Fmonoes\u002Fmonomind","https:\u002F\u002Fmonoes.github.io\u002Fmonomind\u002F","https:\u002F\u002Fgithub.com\u002Fmonoes","https:\u002F\u002Fmonoes.me","2026-11-10 01:53:48",{"source":8,"skillName":5,"commands":66,"prompt":76,"zipAvailable":77},[67,70,73],{"tool":68,"command":69},"npx","npx skills add monoes\u002Fmonomind --skill monitoring-expert",{"tool":71,"command":72},"bunx","bunx skills add monoes\u002Fmonomind --skill monitoring-expert",{"tool":74,"command":75},"pnpm","pnpm dlx skills add monoes\u002Fmonomind --skill monitoring-expert","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmonoes\u002Fmonomind\u002Fblob\u002Fmain\u002Fpackages\u002F@monomind\u002Fcli\u002Forg-skills\u002Fmonitoring-expert\u002FSKILL.md",true,[79,84,90,94,98,102,106,110,114],{"path":80,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":83,"sourceHtmlUrl":15},"LICENSE.txt","LICENSE","许可证",1056,{"path":85,"resourceType":86,"resourceTypeDesc":87,"sizeBytes":88,"sourceHtmlUrl":89},"references\u002Falerting-rules.md","REFERENCE","参考文档",3452,"https:\u002F\u002Fgithub.com\u002Fmonoes\u002Fmonomind\u002Fblob\u002Fmain\u002Fpackages\u002F@monomind\u002Fcli\u002Forg-skills\u002Fmonitoring-expert\u002Freferences\u002Falerting-rules.md",{"path":91,"resourceType":86,"resourceTypeDesc":87,"sizeBytes":92,"sourceHtmlUrl":93},"references\u002Fapplication-profiling.md",6376,"https:\u002F\u002Fgithub.com\u002Fmonoes\u002Fmonomind\u002Fblob\u002Fmain\u002Fpackages\u002F@monomind\u002Fcli\u002Forg-skills\u002Fmonitoring-expert\u002Freferences\u002Fapplication-profiling.md",{"path":95,"resourceType":86,"resourceTypeDesc":87,"sizeBytes":96,"sourceHtmlUrl":97},"references\u002Fcapacity-planning.md",8269,"https:\u002F\u002Fgithub.com\u002Fmonoes\u002Fmonomind\u002Fblob\u002Fmain\u002Fpackages\u002F@monomind\u002Fcli\u002Forg-skills\u002Fmonitoring-expert\u002Freferences\u002Fcapacity-planning.md",{"path":99,"resourceType":86,"resourceTypeDesc":87,"sizeBytes":100,"sourceHtmlUrl":101},"references\u002Fdashboards.md",3812,"https:\u002F\u002Fgithub.com\u002Fmonoes\u002Fmonomind\u002Fblob\u002Fmain\u002Fpackages\u002F@monomind\u002Fcli\u002Forg-skills\u002Fmonitoring-expert\u002Freferences\u002Fdashboards.md",{"path":103,"resourceType":86,"resourceTypeDesc":87,"sizeBytes":104,"sourceHtmlUrl":105},"references\u002Fopentelemetry.md",3345,"https:\u002F\u002Fgithub.com\u002Fmonoes\u002Fmonomind\u002Fblob\u002Fmain\u002Fpackages\u002F@monomind\u002Fcli\u002Forg-skills\u002Fmonitoring-expert\u002Freferences\u002Fopentelemetry.md",{"path":107,"resourceType":86,"resourceTypeDesc":87,"sizeBytes":108,"sourceHtmlUrl":109},"references\u002Fperformance-testing.md",5900,"https:\u002F\u002Fgithub.com\u002Fmonoes\u002Fmonomind\u002Fblob\u002Fmain\u002Fpackages\u002F@monomind\u002Fcli\u002Forg-skills\u002Fmonitoring-expert\u002Freferences\u002Fperformance-testing.md",{"path":111,"resourceType":86,"resourceTypeDesc":87,"sizeBytes":112,"sourceHtmlUrl":113},"references\u002Fprometheus-metrics.md",3108,"https:\u002F\u002Fgithub.com\u002Fmonoes\u002Fmonomind\u002Fblob\u002Fmain\u002Fpackages\u002F@monomind\u002Fcli\u002Forg-skills\u002Fmonitoring-expert\u002Freferences\u002Fprometheus-metrics.md",{"path":115,"resourceType":86,"resourceTypeDesc":87,"sizeBytes":116,"sourceHtmlUrl":117},"references\u002Fstructured-logging.md",2852,"https:\u002F\u002Fgithub.com\u002Fmonoes\u002Fmonomind\u002Fblob\u002Fmain\u002Fpackages\u002F@monomind\u002Fcli\u002Forg-skills\u002Fmonitoring-expert\u002Freferences\u002Fstructured-logging.md",[119,148,181,207,232,258],{"skillNo":120,"name":121,"nameZh":6,"description":122,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":123,"licenseFileUrl":6,"sourceHtmlUrl":124,"categories":125,"keywords":126,"publishedAt":147},"01M71PB3SHWKMNJM6MD65VX8D6","zk-steward","Org role guidance for a ZK steward: engineer zero-knowledge proof systems with circuit design, SNARK vs STARK choice and security review. This is zero-knowledge cryptography, not Zettelkasten note-taking.","Apache-2.0","https:\u002F\u002Fgithub.com\u002Fmonoes\u002Fmonomind\u002Fblob\u002Fmain\u002Fpackages\u002F@monomind\u002Fcli\u002Forg-skills\u002Fzk-steward\u002FSKILL.md",[],[127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146],"zk","zk steward","steward","zero-knowledge","engineer","choice","design","knowledge","impact","query","snark","review","monomind","security review","stark","zettelkasten","cryptography","security","org","blockchain","2026-11-10 13:02:02",{"skillNo":149,"name":150,"nameZh":6,"description":151,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":152,"sourceHtmlUrl":153,"categories":154,"keywords":163,"publishedAt":147},"01M71PB18SDG28WBKPKJNB814K","writing-plans","Use when you have a spec or requirements for a multi-step coding task and must write an implementation plan before touching code. Produces bite-sized TDD tasks with exact file paths, code and commands for an engineer with zero context.","https:\u002F\u002Fgithub.com\u002Fmonoes\u002Fmonomind\u002Fblob\u002Fmain\u002Fpackages\u002F@monomind\u002Fcli\u002Forg-skills\u002Fwriting-plans\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fmonoes\u002Fmonomind\u002Fblob\u002Fmain\u002Fpackages\u002F@monomind\u002Fcli\u002Forg-skills\u002Fwriting-plans\u002FSKILL.md",[155,158],{"categoryNo":156,"categoryName":157,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":159,"categoryName":160,"taxonomyType":161,"taxonomyTypeDesc":162},"01JBSEEDCAT000000000000036","内容创作者","PROFESSION","适用职业",[164,165,166,131,167,168,37,169,136,170,171,172,173,174,175,176,177,178,179,180],"writing","writing plans","plans","superpowers","implementation plan","you","code","tasks","plan","product","write","commands","paths","suggest","coding","context","ZeRO",{"skillNo":182,"name":183,"nameZh":6,"description":184,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":123,"licenseFileUrl":185,"sourceHtmlUrl":186,"categories":187,"keywords":191,"publishedAt":147},"01M71PAXFM488X9ARXK0T04TF5","write-spec","Write a feature spec or PRD from a problem statement or feature idea. Use when turning a vague idea or user request into a structured document, scoping a feature with goals and non-goals, defining success metrics and acceptance criteria, or breaking a big ask into a phased spec.","https:\u002F\u002Fgithub.com\u002Fmonoes\u002Fmonomind\u002Fblob\u002Fmain\u002Fpackages\u002F@monomind\u002Fcli\u002Forg-skills\u002Fwrite-spec\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fmonoes\u002Fmonomind\u002Fblob\u002Fmain\u002Fpackages\u002F@monomind\u002Fcli\u002Forg-skills\u002Fwrite-spec\u002FSKILL.md",[188],{"categoryNo":189,"categoryName":190,"taxonomyType":161,"taxonomyTypeDesc":162},"01JBSEEDCAT000000000000031","产品经理",[174,192,193,194,195,134,196,37,197,198,199,173,200,201,202,27,203,204,205,206],"write spec","spec","user request","problem","acceptance","ask","vague","work","request","scoping","idea","feature","problem statement","use","document",{"skillNo":208,"name":209,"nameZh":6,"description":210,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":123,"licenseFileUrl":211,"sourceHtmlUrl":212,"categories":213,"keywords":217,"publishedAt":147},"01M71PASSZY800C0RPEARBS918","write-query","Write optimized SQL for your dialect with best practices. Use when translating a natural-language data need into SQL, building a multi-CTE query with joins and aggregations, optimizing a query against a large partitioned table, or getting dialect-specific syntax for Snowflake, BigQuery, Postgres, etc.","https:\u002F\u002Fgithub.com\u002Fmonoes\u002Fmonomind\u002Fblob\u002Fmain\u002Fpackages\u002F@monomind\u002Fcli\u002Forg-skills\u002Fwrite-query\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fmonoes\u002Fmonomind\u002Fblob\u002Fmain\u002Fpackages\u002F@monomind\u002Fcli\u002Forg-skills\u002Fwrite-query\u002FSKILL.md",[214],{"categoryNo":215,"categoryName":216,"taxonomyType":161,"taxonomyTypeDesc":162},"01JBSEEDCAT000000000000033","数据分析师",[136,174,218,219,220,221,134,205,37,222,223,224,225,199,226,227,228,229,230,231],"write query","postgres","for","snowflake","best practices","natural-language","with","multi","github","sql","https","syntax","plugins","data",{"skillNo":233,"name":234,"nameZh":6,"description":235,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":123,"licenseFileUrl":6,"sourceHtmlUrl":236,"categories":237,"keywords":244,"publishedAt":147},"01M71PAPTX0T3PF6ETFVR96SJJ","workflow-automation","Org role guidance for workflow automation: build and maintain CI\u002FCD definitions in GitHub Actions or equivalent: triggers, jobs, matrices, caching. Covers path filters, dependency caching, parallel jobs, timeouts and fail-fast ordering.","https:\u002F\u002Fgithub.com\u002Fmonoes\u002Fmonomind\u002Fblob\u002Fmain\u002Fpackages\u002F@monomind\u002Fcli\u002Forg-skills\u002Fworkflow-automation\u002FSKILL.md",[238,241],{"categoryNo":239,"categoryName":240,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000011","运维与部署",{"categoryNo":242,"categoryName":243,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[245,246,247,248,220,249,250,251,252,135,253,254,255,136,139,226,256,257,50,228],"Workflow Automation","automation","workflow","parallel","actions","ci","triggers","github actions","maintain","filters","caching","build","dependency",{"skillNo":259,"name":260,"nameZh":6,"description":261,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":123,"licenseFileUrl":6,"sourceHtmlUrl":262,"categories":263,"keywords":265,"publishedAt":147},"01M71PAM19Z1XTV9NPCFSE2MY8","workflow-architect","Org role guidance for a workflow architect: map full workflow trees for systems, user journeys and agents, covering every branch and failure. Covers discovering workflows from code, handoff contracts, timeouts, recovery paths and observable state.","https:\u002F\u002Fgithub.com\u002Fmonoes\u002Fmonomind\u002Fblob\u002Fmain\u002Fpackages\u002F@monomind\u002Fcli\u002Forg-skills\u002Fworkflow-architect\u002FSKILL.md",[264],{"categoryNo":242,"categoryName":243,"taxonomyType":21,"taxonomyTypeDesc":22},[247,266,267,268,269,270,271,220,272,273,170,274,275,276,139,226,277,278,228,279],"workflow architect","architect","trees","user journeys","branch","planning","map","workflows","architecture","state","leadership","recovery","operations","systems"]