[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71QR9ZPW6JWA1P0PDD7FFJS":3,"skill-same:01M71QR9ZPW6JWA1P0PDD7FFJS":69},{"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":28,"publishedAt":38,"linkOnly":39,"markdownContent":40,"markdownBody":41,"frontMatter":42,"refName":45,"commitSha":46,"skillDirectory":47,"forksCount":48,"repositoryHtmlUrl":49,"repositoryHomepageUrl":50,"ownerHtmlUrl":51,"ownerBlogUrl":52,"ownerDescription":53,"updatedAt":54,"install":55,"resources":68},"01M71QR9ZPW6JWA1P0PDD7FFJS","dashboard-creator",null,"Use before creating dashboards or publishing dashboard data.","accuknox\u002FagentZ","accuknox","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F53583961?v=4","01M71QR47N8B2VEMKAEK9DZJKE","AccuKnox","01M71QR48S2VBYZQ4YBTF51B1Y",56,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Faccuknox\u002FagentZ\u002Fblob\u002Fmain\u002Fopencode\u002Fskills\u002Fcore\u002Fdashboard-creator\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000013","分析与可视化","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000033","数据分析师","PROFESSION","适用职业",[29,30,31,32,33,34,35,36,37],"dashboard","dashboard creator","creator","core","data","dashboards","use","opencode","publishing","2026-11-10 13:02:02",false,"---\nname: dashboard-creator\ndescription: Use before creating dashboards or publishing dashboard data.\nlicense: Apache-2.0\ncompatibility: opencode\nmetadata:\n  source: bundled-defaults\n  domain: core\n---\n\n# Dashboard Creator\n\nBuild the dashboard from values you have already computed. The gateway validates, stores, limits,\nand queries data; it is not a transformation engine.\n\n## Sequence\n\n1. Call `list_dashboards` before choosing a name.\n2. Finalize every widget definition before calling `create_dashboard`. Definitions are immutable.\n3. Call `get_dashboard` immediately before publishing and use the returned `data_revision` for each\n   widget.\n4. Call `publish_dashboard_data` once per widget update, with at most 100 records.\n5. If a definition is wrong or a widget reports invalid stored data, delete the dashboard, recreate\n   it, and publish corrected data.\n\n## Widget contracts\n\n- `line`, `area`, `step`: temporal only; 1–5 series. Each record contains only `recorded_at` and\n  `values`, with one number per series.\n- `pie`: latest only; exactly one series. Each record contains only `category` and one `values`\n  entry.\n- `bar`, `horizontal_grouped_bar`: temporal or latest; 1–5 series. Each record contains `category`\n  and one value per series.\n- `funnel`, `horizontal_funnel`: latest only; exactly one series. Publish uniquely named stages in\n  display order with non-increasing values. Each record contains `category` and one non-negative\n  value.\n- `sankey`: latest only; exactly one series. Each record contains `source`, `target`, and a positive\n  `value`. Source\u002Ftarget pairs must be unique, and all links together must form an acyclic graph.\n- `scatter`: temporal or latest; 1–5 declared series and `axes` metadata for `x` and `y`. Each axis\n  has a display `label` and optional `unit`. Each record contains `series`, `x`, `y`, and an\n  optional `label`.\n- `gauge`: latest only; exactly one series, an increasing `minimum`\u002F`maximum`, and up to five\n  increasing thresholds. Publish exactly one record containing one value.\n- `table`: temporal or latest; 1–12 columns and no series. Each record contains `cells`, one cell\n  per declared column. A cell must contain exactly one matching key: `text`, `number`, `boolean`, or\n  `datetime`.\n\nTemporal `bar`, `horizontal_grouped_bar`, `scatter`, and `table` records also require `recorded_at`.\nLatest records must omit it. Only gauges support thresholds. Use an empty `thresholds` array for\nevery other widget kind.\n\nUse `sum`, `average`, `minimum`, `maximum`, `last`, or `count` to declare how temporal values\ncombine inside a server-selected time bucket.\n\n## Layout\n\n- Every widget has the same height in the UI.\n- Choose `full`, `half`, or `third` width.\n- Prefer a varied layout. Use full width for dense tables and multi-series time charts; use half or\n  third width for gauges and compact categorical charts.\n- Keep titles short. Do not encode units or explanatory paragraphs into titles; put units in series\n  or column labels.\n- Put scatter coordinate units in `axes.x.unit` and `axes.y.unit`.\n\n## Data rules\n\n- Dashboard, widget, series, and column names are lowercase DNS labels: letters, numbers, and\n  internal hyphens only.\n- `recorded_at` and `datetime` values are RFC 3339 timestamps. Offsets such as `+05:30` are valid.\n- Temporal publishing appends records at their explicit `recorded_at` timestamps. Timestamps must be\n  within the 30-day retention window and no more than five minutes in the future.\n- Latest publishing atomically replaces that widget's current snapshot.\n- Compute categories, series values, funnel stages, Sankey links, scatter coordinates, table cells,\n  and gauge values before publishing.\n- Publish small datasets inline. When records already exist on disk or would make the tool call\n  large, pass `records: {\"json_file\":\"path\"}` without reading the file first. The file must contain\n  a UTF-8 JSON array and must not exceed 8 MiB.\n- Never send extra fields \"just in case\". Shape mismatches are rejected.\n- Do not exceed five series, twelve table columns, one hundred records per publish, or the\n  configured publish request-byte limit.\n","# Dashboard Creator\n\nBuild the dashboard from values you have already computed. The gateway validates, stores, limits,\nand queries data; it is not a transformation engine.\n\n## Sequence\n\n1. Call `list_dashboards` before choosing a name.\n2. Finalize every widget definition before calling `create_dashboard`. Definitions are immutable.\n3. Call `get_dashboard` immediately before publishing and use the returned `data_revision` for each\n   widget.\n4. Call `publish_dashboard_data` once per widget update, with at most 100 records.\n5. If a definition is wrong or a widget reports invalid stored data, delete the dashboard, recreate\n   it, and publish corrected data.\n\n## Widget contracts\n\n- `line`, `area`, `step`: temporal only; 1–5 series. Each record contains only `recorded_at` and\n  `values`, with one number per series.\n- `pie`: latest only; exactly one series. Each record contains only `category` and one `values`\n  entry.\n- `bar`, `horizontal_grouped_bar`: temporal or latest; 1–5 series. Each record contains `category`\n  and one value per series.\n- `funnel`, `horizontal_funnel`: latest only; exactly one series. Publish uniquely named stages in\n  display order with non-increasing values. Each record contains `category` and one non-negative\n  value.\n- `sankey`: latest only; exactly one series. Each record contains `source`, `target`, and a positive\n  `value`. Source\u002Ftarget pairs must be unique, and all links together must form an acyclic graph.\n- `scatter`: temporal or latest; 1–5 declared series and `axes` metadata for `x` and `y`. Each axis\n  has a display `label` and optional `unit`. Each record contains `series`, `x`, `y`, and an\n  optional `label`.\n- `gauge`: latest only; exactly one series, an increasing `minimum`\u002F`maximum`, and up to five\n  increasing thresholds. Publish exactly one record containing one value.\n- `table`: temporal or latest; 1–12 columns and no series. Each record contains `cells`, one cell\n  per declared column. A cell must contain exactly one matching key: `text`, `number`, `boolean`, or\n  `datetime`.\n\nTemporal `bar`, `horizontal_grouped_bar`, `scatter`, and `table` records also require `recorded_at`.\nLatest records must omit it. Only gauges support thresholds. Use an empty `thresholds` array for\nevery other widget kind.\n\nUse `sum`, `average`, `minimum`, `maximum`, `last`, or `count` to declare how temporal values\ncombine inside a server-selected time bucket.\n\n## Layout\n\n- Every widget has the same height in the UI.\n- Choose `full`, `half`, or `third` width.\n- Prefer a varied layout. Use full width for dense tables and multi-series time charts; use half or\n  third width for gauges and compact categorical charts.\n- Keep titles short. Do not encode units or explanatory paragraphs into titles; put units in series\n  or column labels.\n- Put scatter coordinate units in `axes.x.unit` and `axes.y.unit`.\n\n## Data rules\n\n- Dashboard, widget, series, and column names are lowercase DNS labels: letters, numbers, and\n  internal hyphens only.\n- `recorded_at` and `datetime` values are RFC 3339 timestamps. Offsets such as `+05:30` are valid.\n- Temporal publishing appends records at their explicit `recorded_at` timestamps. Timestamps must be\n  within the 30-day retention window and no more than five minutes in the future.\n- Latest publishing atomically replaces that widget's current snapshot.\n- Compute categories, series values, funnel stages, Sankey links, scatter coordinates, table cells,\n  and gauge values before publishing.\n- Publish small datasets inline. When records already exist on disk or would make the tool call\n  large, pass `records: {\"json_file\":\"path\"}` without reading the file first. The file must contain\n  a UTF-8 JSON array and must not exceed 8 MiB.\n- Never send extra fields \"just in case\". Shape mismatches are rejected.\n- Do not exceed five series, twelve table columns, one hundred records per publish, or the\n  configured publish request-byte limit.\n",{"name":5,"license":15,"metadata":43,"description":7,"compatibility":36},{"domain":32,"source":44},"bundled-defaults","main","32316645330250c647a8b0a0932f122ca83de7a2","opencode\u002Fskills\u002Fcore\u002Fdashboard-creator",14,"https:\u002F\u002Fgithub.com\u002Faccuknox\u002FagentZ","https:\u002F\u002Fagentzharness.ai","https:\u002F\u002Fgithub.com\u002Faccuknox","https:\u002F\u002Fwww.accuknox.com","Zero Trust CNAPP that secures Code to Cloud.","2026-11-10 20:48:37",{"source":8,"skillName":5,"commands":56,"prompt":66,"zipAvailable":67},[57,60,63],{"tool":58,"command":59},"npx","npx skills add accuknox\u002FagentZ --skill dashboard-creator",{"tool":61,"command":62},"bunx","bunx skills add accuknox\u002FagentZ --skill dashboard-creator",{"tool":64,"command":65},"pnpm","pnpm dlx skills add accuknox\u002FagentZ --skill dashboard-creator","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Faccuknox\u002FagentZ\u002Fblob\u002Fmain\u002Fopencode\u002Fskills\u002Fcore\u002Fdashboard-creator\u002FSKILL.md",true,[],[70,88,101,111,121],{"skillNo":71,"name":72,"nameZh":6,"description":73,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":74,"categories":75,"keywords":79,"publishedAt":38},"01M71QRKNVHKR53XSVF6205ZGY","example-skill","A valid Agent Skill you can copy and edit.","https:\u002F\u002Fgithub.com\u002Faccuknox\u002FagentZ\u002Fblob\u002Fmain\u002Fweb\u002Fpublic\u002Fexamples\u002FSKILL.md",[76],{"categoryNo":77,"categoryName":78,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[80,81,82,83,84,85,86,87],"example","example skill","valid","edit","copy","agent skill","you","can",{"skillNo":89,"name":90,"nameZh":6,"description":91,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":92,"categories":93,"keywords":95,"publishedAt":38},"01M71QRHQH52E7597Y4FAV0KV4","workflow-scheduler","Use when creating, changing, or deleting workflow schedules.","https:\u002F\u002Fgithub.com\u002Faccuknox\u002FagentZ\u002Fblob\u002Fmain\u002Fopencode\u002Fskills\u002Fcore\u002Fworkflow-scheduler\u002FSKILL.md",[94],{"categoryNo":77,"categoryName":78,"taxonomyType":21,"taxonomyTypeDesc":22},[96,97,98,99,100,35,32,36],"scheduler","workflow scheduler","workflow","when","schedules",{"skillNo":102,"name":103,"nameZh":6,"description":104,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":105,"categories":106,"keywords":108,"publishedAt":38},"01M71QRFTTWCA6JQ13P5EW3DMK","workflow-results","Use when reviewing workflow results or investigating failed runs.","https:\u002F\u002Fgithub.com\u002Faccuknox\u002FagentZ\u002Fblob\u002Fmain\u002Fopencode\u002Fskills\u002Fcore\u002Fworkflow-results\u002FSKILL.md",[107],{"categoryNo":77,"categoryName":78,"taxonomyType":21,"taxonomyTypeDesc":22},[109,98,110,99,35,32,36],"workflow results","results",{"skillNo":112,"name":113,"nameZh":6,"description":114,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":115,"categories":116,"keywords":118,"publishedAt":38},"01M71QREARPGDS8W7NYX1VN5WZ","workflow-creator","Use when creating or revising saved workflow definitions.","https:\u002F\u002Fgithub.com\u002Faccuknox\u002FagentZ\u002Fblob\u002Fmain\u002Fopencode\u002Fskills\u002Fcore\u002Fworkflow-creator\u002FSKILL.md",[117],{"categoryNo":77,"categoryName":78,"taxonomyType":21,"taxonomyTypeDesc":22},[119,31,98,36,120,99,35,32],"workflow creator","saved",{"skillNo":122,"name":123,"nameZh":6,"description":124,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":125,"categories":126,"keywords":128,"publishedAt":38},"01M71QRBK7JJTY5PXSJP5A9KD5","skill-creator","Use when creating or updating a skill.","https:\u002F\u002Fgithub.com\u002Faccuknox\u002FagentZ\u002Fblob\u002Fmain\u002Fopencode\u002Fskills\u002Fcore\u002Fskill-creator\u002FSKILL.md",[127],{"categoryNo":77,"categoryName":78,"taxonomyType":21,"taxonomyTypeDesc":22},[129,31,130,36,99,35,32],"skill creator","a skill"]