{"id":"e4c992a9-09f6-44b5-8d0f-baa92c0602a2","shortId":"VrQ5Pa","kind":"skill","title":"github-dashboard","tagline":"GitHub repository analytics dashboard — stars, forks, contributors,\nissues, pull requests, recent activity, and top contributors. Use when\nthe brief asks for a GitHub repo dashboard, open-source growth report,\nrepository health page, or GitHub analytics view.","description":"# GitHub Dashboard Skill\n\nCreate a single-screen GitHub repository analytics dashboard in the FlowAI / Soft Paper Workspace visual style: warm off-white canvas, white rounded panels, a fixed left sidebar, compact KPI cards, pastel pills, dense tables, and low-contrast hairlines.\n\n## Resource map\n\n```\ngithub-dashboard/\n├── SKILL.md\n├── example.html                         ← rendered reference dashboard\n└── references/\n    ├── template.html                    ← live-artifact-compatible HTML template\n    ├── example-data.json                ← normalized public GitHub data shape\n    ├── artifact-example.json            ← minimal live-artifact create input\n    └── provenance-example.json          ← safe source/provenance example\n```\n\n## When to use this skill\n\nUse this when the user asks for a dashboard or report about a single GitHub repository, for example:\n\n- repository growth dashboard\n- open-source project health report\n- GitHub stars / forks / contributors analytics\n- issue and pull-request activity page\n- maintainer / contributor dashboard\n\nIf the user asks for refreshability, source auditability, or scheduled updates, produce the live-artifact source set (`template.html`, `data.json`, `artifact.json`, `provenance.json`) and follow the `live-artifact` contract. If they only need a visual artifact, produce a self-contained `index.html`.\n\n## Workflow\n\n1. **Resolve repository scope**\n   - Parse `owner/repo` from the brief.\n   - This v1 skill is scoped to one repository. If multiple repositories are requested, ask the user to pick the primary repository or create one dashboard per repository.\n   - If the repo is missing, ask one concise question for the GitHub URL or `owner/repo`.\n\n2. **Collect public GitHub data**\n   - Prefer GitHub CLI/API for public repository data when available.\n   - Current stars/forks/watchers/open issue count: `GET /repos/{owner}/{repo}` (`stargazers_count`, `forks_count`, `watchers_count`, `open_issues_count`).\n   - Contributors: paginate `GET /repos/{owner}/{repo}/contributors?per_page=100&page=N`, sort by `contributions` descending, and take the top N used by the dashboard. If only page 1 is available, label totals as first-page estimates.\n   - Issues: use GitHub Search API (`repo:{owner}/{repo} is:issue`) for total counts, or paginate `GET /repos/{owner}/{repo}/issues?state=all` and filter out items with a `pull_request` field.\n   - Pull requests: use GitHub Search API (`repo:{owner}/{repo} is:pr`) for total counts, or paginate `GET /repos/{owner}/{repo}/pulls?state=all` and count pages via the `Link` header.\n   - Recent activity: combine the newest issues and pull requests, normalize them into display-ready rows, and cap the preview list at 5–10 items.\n   - Growth/delta metrics: GitHub REST does not expose complete historical star/fork deltas. Use GraphQL, stargazer event snapshots, the Events API where available, or explicitly mark deltas as estimated/synthetic in `provenance.json`.\n   - Do not store auth tokens, raw HTTP envelopes, cookies, rate-limit headers, or private metadata.\n\n3. **Normalize into dashboard data**\n   - Required `repository`: `name`, `fullName`, `url`, `description`, `language`, `license`, `created`, `lastUpdated`.\n   - Required `metrics`: stars, forks, contributors, issues, pull requests. Store display-ready totals plus small deltas or growth notes.\n   - Required `contributors`: top 5–8 contributors with `login`, `avatar`, and `contributions`.\n   - Required `recentActivity`: display-ready rows with `title`, `typeText`, `typeClass`, `label`, `labelClass`, `author`, `authorAvatar`, and `updated`. Do not rely on template conditionals for issue/PR switching.\n   - Chart data can be synthetic only when GitHub does not expose the exact history; document the transformation in provenance.\n\n4. **Apply the visual system**\n   - Use the active `DESIGN.md` tokens when present.\n   - If no design system is provided, use the Soft Paper defaults reflected in `references/template.html`: `#F2F2F0` canvas, white cards, `#ECECEA` borders, `#0A0A0A` ink, Geist/Inter typography, 256px sidebar, 48px topbar, and 16px card radius.\n   - Keep color small and semantic: green for healthy metrics, amber for warning, blue for feature/PR labels, red only for defects or risk.\n\n5. **Lay out the page**\n   - Shell: 256px sidebar + main panel, both white, rounded 16px, 1px hairline border.\n   - Topbar: repo context on the left, refresh/export/action affordances on the right.\n   - Header: repository name, description, and date/settings/actions row.\n   - KPI strip: 5 compact cards for stars, forks, contributors, issues, PRs.\n   - Main grid: 2fr/1fr split with a growth chart or activity table on the left and top contributors/health cards on the right.\n   - Footer: provenance/last-updated note in small muted text.\n\n6. **Write the artifact**\n   - For a static artifact, write one self-contained `index.html` with inline CSS and no external JS libraries.\n   - For a live artifact, write `template.html`, `data.json`, `artifact.json`, and `provenance.json`; `index.html` is derived by the daemon.\n   - Tag major regions with stable `data-od-id` values: `sidebar`, `topbar`, `repo-header`, `kpi-strip`, `growth-chart`, `contributors`, `activity`, `provenance`.\n\n## Visual rules\n\n- Light mode only.\n- 256px fixed sidebar on desktop; stack on narrow screens.\n- 4 or 5 KPI cards in the first row.\n- Use tabular lining numerals for all counts.\n- Avatars are circular, 28–32px in tables and contributor lists.\n- Tables use 13px body text, 11px uppercase column labels, 1px row dividers.\n- Cards use hairline borders and a barely visible shadow at most: `0 1px 2px rgba(10,10,10,.04), 0 1px 1px rgba(10,10,10,.02)`.\n- Do not use gradients except tiny workflow/repo icon placeholders.\n- Do not make the page look like GitHub itself. This is a custom operational dashboard, not a GitHub UI clone.\n\n## Self-check\n\n- Every metric has a source or a provenance note.\n- No private data or credentials are persisted.\n- Data labels are specific to the repository, not placeholders.\n- The screen still reads clearly at 50% zoom.\n- The dashboard uses at most one solid black primary action per area.\n- Status labels and issue/PR chips are pastel pills, not saturated badges.","tags":["github","dashboard","open","design","nexu-io","agent-skills","ai-agents","ai-design","byok","claude","claude-code-for-design","claude-design"],"capabilities":["skill","source-nexu-io","skill-github-dashboard","topic-agent-skills","topic-ai-agents","topic-ai-design","topic-byok","topic-claude","topic-claude-code-for-design","topic-claude-design","topic-coding-agents","topic-design-systems","topic-design-tools","topic-desktop-app","topic-figma-alternative"],"categories":["open-design"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/nexu-io/open-design/github-dashboard","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add nexu-io/open-design","source_repo":"https://github.com/nexu-io/open-design","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 36607 github stars · SKILL.md body (6,251 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-11T06:52:20.125Z","embedding":null,"createdAt":"2026-05-08T12:52:19.418Z","updatedAt":"2026-05-11T06:52:20.125Z","lastSeenAt":"2026-05-11T06:52:20.125Z","tsv":"'/contributors':298 '/issues':349 '/pulls':381 '/repos':280,295,346,378 '0':815,823 '02':830 '04':822 '0a0a0a':582 '1':210,320 '10':414,819,820,821,827,828,829 '100':301 '11px':797 '13px':794 '16px':591,629 '1px':630,801,816,824,825 '2':261 '256px':586,622,757 '28':785 '2fr/1fr':664 '2px':817 '3':461 '32px':786 '4':550,766 '48px':588 '5':413,498,616,653,768 '50':894 '6':690 '8':499 'action':905 'activ':15,162,392,557,671,750 'afford':640 'amber':603 'analyt':6,39,51,156 'api':334,366,434 'appli':551 'area':907 'artifact':99,113,182,194,202,693,697,715 'artifact-example.json':109 'artifact.json':187,719 'ask':23,130,170,232,251 'audit':174 'auth':448 'author':518 'authoravatar':519 'avail':274,322,436 'avatar':503,782 'badg':918 'bare':810 'black':903 'blue':606 'bodi':795 'border':581,632,807 'brief':22,218 'canva':65,577 'cap':408 'card':75,579,592,655,679,770,804 'chart':531,669,748 'check':862 'chip':912 'circular':784 'clear':892 'cli/api':268 'clone':859 'collect':262 'color':595 'column':799 'combin':393 'compact':73,654 'compat':100 'complet':423 'concis':253 'condit':527 'contain':207,702 'context':635 'contract':195 'contrast':83 'contribut':306,505 'contributor':10,18,155,165,292,480,496,500,659,749,790 'contributors/health':678 'cooki':453 'count':278,284,286,288,291,342,374,385,781 'creat':44,114,241,474 'credenti':876 'css':706 'current':275 'custom':852 'daemon':727 'dashboard':3,7,28,42,52,89,94,133,145,166,243,316,464,854,897 'data':107,265,272,465,532,734,874,879 'data-od-id':733 'data.json':186,718 'date/settings/actions':649 'default':572 'defect':613 'delta':426,440,491 'dens':78 'deriv':724 'descend':307 'descript':471,647 'design':564 'design.md':558 'desktop':761 'display':404,486,509 'display-readi':403,485,508 'divid':803 'document':545 'ececea':580 'envelop':452 'estim':329 'estimated/synthetic':442 'event':430,433 'everi':863 'exact':543 'exampl':119,142 'example-data.json':103 'example.html':91 'except':835 'explicit':438 'expos':422,541 'extern':709 'f2f2f0':576 'feature/pr':608 'field':360 'filter':353 'first':327,773 'first-pag':326 'fix':70,758 'flowai':55 'follow':190 'footer':683 'fork':9,154,285,479,658 'fullnam':469 'geist/inter':584 'get':279,294,345,377 'github':2,4,26,38,41,49,88,106,139,152,257,264,267,332,364,418,538,847,857 'github-dashboard':1,87 'gradient':834 'graphql':428 'green':599 'grid':663 'growth':32,144,493,668,747 'growth-chart':746 'growth/delta':416 'hairlin':84,631,806 'header':390,457,644,742 'health':35,150 'healthi':601 'histor':424 'histori':544 'html':101 'http':451 'icon':838 'id':736 'index.html':208,703,722 'ink':583 'inlin':705 'input':115 'issu':11,157,277,290,330,339,396,481,660 'issue/pr':529,911 'item':355,415 'js':710 'keep':594 'kpi':74,651,744,769 'kpi-strip':743 'label':323,516,609,800,880,909 'labelclass':517 'languag':472 'lastupd':475 'lay':617 'left':71,638,675 'librari':711 'licens':473 'light':754 'like':846 'limit':456 'line':777 'link':389 'list':411,791 'live':98,112,181,193,714 'live-artifact':111,180,192 'live-artifact-compat':97 'login':502 'look':845 'low':82 'low-contrast':81 'main':624,662 'maintain':164 'major':729 'make':842 'map':86 'mark':439 'metadata':460 'metric':417,477,602,864 'minim':110 'miss':250 'mode':755 'multipl':228 'mute':688 'n':303,312 'name':468,646 'narrow':764 'need':199 'newest':395 'normal':104,400,462 'note':494,685,871 'numer':778 'od':735 'off-whit':62 'one':225,242,252,699,901 'open':30,147,289 'open-sourc':29,146 'oper':853 'owner':281,296,336,347,368,379 'owner/repo':215,260 'page':36,163,300,302,319,328,386,620,844 'pagin':293,344,376 'panel':68,625 'paper':57,571 'pars':214 'pastel':76,914 'per':244,299,906 'persist':878 'pick':236 'pill':77,915 'placehold':839,887 'plus':489 'pr':371 'prefer':266 'present':561 'preview':410 'primari':238,904 'privat':459,873 'produc':178,203 'project':149 'proven':549,751,870 'provenance-example.json':116 'provenance.json':188,444,721 'provenance/last-updated':684 'provid':567 'prs':661 'public':105,263,270 'pull':12,160,358,361,398,482 'pull-request':159 'question':254 'radius':593 'rate':455 'rate-limit':454 'raw':450 'read':891 'readi':405,487,510 'recent':14,391 'recentact':507 'red':610 'refer':93,95 'references/template.html':575 'reflect':573 'refresh':172 'refresh/export/action':639 'region':730 'reli':524 'render':92 'repo':27,248,282,297,335,337,348,367,369,380,634,741 'repo-head':740 'report':33,135,151 'repositori':5,34,50,140,143,212,226,229,239,245,271,467,645,885 'request':13,161,231,359,362,399,483 'requir':466,476,495,506 'resolv':211 'resourc':85 'rest':419 'rgba':818,826 'right':643,682 'risk':615 'round':67,628 'row':406,511,650,774,802 'rule':753 'safe':117 'satur':917 'schedul':176 'scope':213,223 'screen':48,765,889 'search':333,365 'self':206,701,861 'self-check':860 'self-contain':205,700 'semant':598 'set':184 'shadow':812 'shape':108 'shell':621 'sidebar':72,587,623,738,759 'singl':47,138 'single-screen':46 'skill':43,124,221 'skill-github-dashboard' 'skill.md':90 'small':490,596,687 'snapshot':431 'soft':56,570 'solid':902 'sort':304 'sourc':31,148,173,183,867 'source-nexu-io' 'source/provenance':118 'specif':882 'split':665 'stabl':732 'stack':762 'star':8,153,478,657 'star/fork':425 'stargaz':283,429 'stars/forks/watchers/open':276 'state':350,382 'static':696 'status':908 'still':890 'store':447,484 'strip':652,745 'style':60 'switch':530 'synthet':535 'system':554,565 'tabl':79,672,788,792 'tabular':776 'tag':728 'take':309 'templat':102,526 'template.html':96,185,717 'text':689,796 'tini':836 'titl':513 'token':449,559 'top':17,311,497,677 'topbar':589,633,739 'topic-agent-skills' 'topic-ai-agents' 'topic-ai-design' 'topic-byok' 'topic-claude' 'topic-claude-code-for-design' 'topic-claude-design' 'topic-coding-agents' 'topic-design-systems' 'topic-design-tools' 'topic-desktop-app' 'topic-figma-alternative' 'total':324,341,373,488 'transform':547 'typeclass':515 'typetext':514 'typographi':585 'ui':858 'updat':177,521 'uppercas':798 'url':258,470 'use':19,122,125,313,331,363,427,555,568,775,793,805,833,898 'user':129,169,234 'v1':220 'valu':737 'via':387 'view':40 'visibl':811 'visual':59,201,553,752 'warm':61 'warn':605 'watcher':287 'white':64,66,578,627 'workflow':209 'workflow/repo':837 'workspac':58 'write':691,698,716 'zoom':895","prices":[{"id":"d7817601-7335-46f7-8654-2d451c2fb8e5","listingId":"e4c992a9-09f6-44b5-8d0f-baa92c0602a2","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"nexu-io","category":"open-design","install_from":"skills.sh"},"createdAt":"2026-05-08T12:52:19.418Z"}],"sources":[{"listingId":"e4c992a9-09f6-44b5-8d0f-baa92c0602a2","source":"github","sourceId":"nexu-io/open-design/github-dashboard","sourceUrl":"https://github.com/nexu-io/open-design/tree/main/skills/github-dashboard","isPrimary":false,"firstSeenAt":"2026-05-08T12:52:19.418Z","lastSeenAt":"2026-05-11T06:52:20.125Z"}],"details":{"listingId":"e4c992a9-09f6-44b5-8d0f-baa92c0602a2","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"nexu-io","slug":"github-dashboard","github":{"repo":"nexu-io/open-design","stars":36607,"topics":["agent-skills","ai-agents","ai-design","byok","claude","claude-code-for-design","claude-design","coding-agents","design-systems","design-tools","desktop-app","figma-alternative","generative-ai","hermes-agent","local-first","nextjs","no-code","prototyping","ui-generator","vibe-coding"],"license":"apache-2.0","html_url":"https://github.com/nexu-io/open-design","pushed_at":"2026-05-11T06:48:43Z","description":"🎨 Local-first, open-source alternative to Anthropic's Claude Design. ⚡ 19 Skills · ✨ 71 brand-grade Design Systems 🖼 Generate web · desktop · mobile prototypes · slides · images · videos · HyperFrames 📦 Sandboxed preview · HTML/PDF/PPTX/MP4 export 🤖 Runs on Claude Code / Codex / Cursor / Gemini / OpenCode / Qwen / Copilot / Hermes / Kimi CLI.","skill_md_sha":"7804cef24b6dbc7bec0fe0a11e1c1abfe745c8ea","skill_md_path":"skills/github-dashboard/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/nexu-io/open-design/tree/main/skills/github-dashboard"},"layout":"multi","source":"github","category":"open-design","frontmatter":{"name":"github-dashboard","description":"GitHub repository analytics dashboard — stars, forks, contributors,\nissues, pull requests, recent activity, and top contributors. Use when\nthe brief asks for a GitHub repo dashboard, open-source growth report,\nrepository health page, or GitHub analytics view."},"skills_sh_url":"https://skills.sh/nexu-io/open-design/github-dashboard"},"updatedAt":"2026-05-11T06:52:20.125Z"}}