[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6K42WHKK5BG18W461FBGYPS":3,"skill-same:01M6K42WHKK5BG18W461FBGYPS":64},{"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":33,"linkOnly":34,"markdownContent":35,"markdownBody":36,"frontMatter":37,"refName":41,"commitSha":42,"skillDirectory":43,"forksCount":44,"repositoryHtmlUrl":45,"repositoryHomepageUrl":6,"ownerHtmlUrl":46,"ownerBlogUrl":47,"ownerDescription":48,"updatedAt":49,"install":50,"resources":63},"01M6K42WHKK5BG18W461FBGYPS","roll-dice",null,"Roll dice using a random number generator. Use when asked to roll a die (d4, d6, d8, d10, d12, d20, d100), roll multiple dice, or generate random dice rolls for tabletop RPGs, board games, or decision making.","anjijava16\u002FAgent_Skills","anjijava16","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F5849522?v=4","01M6JZVCV62H56AYM59D11EGAW","Anjaiah Methuku","01M6JZVD04H0QP910VNCZMJFAG",0,"MIT","https:\u002F\u002Fgithub.com\u002Fanjijava16\u002FAgent_Skills\u002Fblob\u002Fdevelop\u002F.github\u002Fskills\u002Froll-dice\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32],"roll dice","dice","welcome","generate","tabletop","decision","board","use","decision making","random","games","generator","number","for","2026-11-10 10:12:30",false,"---\nname: roll-dice\ndescription: >\n  Roll dice using a random number generator. Use when asked to roll a die\n  (d4, d6, d8, d10, d12, d20, d100), roll multiple dice, or generate random\n  dice rolls for tabletop RPGs, board games, or decision making.\nlicense: MIT\nmetadata:\n  author: welcome\n  version: \"1.0\"\n---\n\n# Roll Dice\n\n## When to use this skill\n\nUse this skill when the user needs to:\n- Roll a single die (d6, d20, etc.)\n- Roll multiple dice (2d6, 4d8, etc.)\n- Roll with modifiers (d20+5, 2d6-1)\n- Generate random numbers for games or decisions\n\n## Rolling a Single Die\n\nGenerate a random number from 1 to the given number of sides:\n\n```bash\n# Bash (macOS\u002FLinux)\necho $((RANDOM % \u003Csides> + 1))\n```\n\n```powershell\n# PowerShell (Windows)\nGet-Random -Minimum 1 -Maximum (\u003Csides> + 1)\n```\n\n```python\n# Python (more precise for large numbers)\nimport random\nprint(random.randint(1, \u003Csides>))\n```\n\nReplace `\u003Csides>` with the number of sides on the die (e.g., 6 for a standard die, 20 for a d20).\n\n## Common Dice Types\n\n| Notation | Sides | Common Use |\n|----------|-------|-----------|\n| d4 | 4 | Small damage rolls |\n| d6 | 6 | Standard die, ability scores |\n| d8 | 8 | Weapon damage |\n| d10 | 10 | Percentile rolls (paired) |\n| d12 | 12 | Greataxe damage |\n| d20 | 20 | Attack rolls, skill checks, saving throws |\n| d100 | 100 | Percentile rolls |\n\n## Rolling Multiple Dice\n\nFor NdX notation (N dice with X sides):\n\n```bash\n# Roll 3d6 (three six-sided dice)\nfor i in {1..3}; do echo $((RANDOM % 6 + 1)); done | paste -sd+ | bc\n```\n\n```python\nimport random\n\ndef roll(n, sides, modifier=0):\n    rolls = [random.randint(1, sides) for _ in range(n)]\n    total = sum(rolls) + modifier\n    return {\"rolls\": rolls, \"modifier\": modifier, \"total\": total}\n\n# Examples\nprint(roll(3, 6))        # 3d6\nprint(roll(1, 20, 5))    # 1d20+5\nprint(roll(2, 8, -1))    # 2d8-1\n```\n\n## Parsing Dice Notation\n\nWhen the user provides dice notation like \"2d6+3\", parse it:\n\n```python\nimport re\nimport random\n\ndef parse_and_roll(notation: str) -> dict:\n    match = re.match(r\"(\\d+)?d(\\d+)([+-]\\d+)?\", notation.strip().lower())\n    if not match:\n        return {\"error\": f\"Invalid notation: {notation}. Use format: NdX+M (e.g., 2d6+3)\"}\n    \n    n = int(match.group(1) or 1)\n    sides = int(match.group(2))\n    modifier = int(match.group(3) or 0)\n    \n    rolls = [random.randint(1, sides) for _ in range(n)]\n    total = sum(rolls) + modifier\n    \n    result = f\"{notation} → {rolls}\"\n    if modifier:\n        result += f\" {'+' if modifier > 0 else ''}{modifier}\"\n    result += f\" = {total}\"\n    \n    return {\"notation\": notation, \"rolls\": rolls, \"modifier\": modifier, \"total\": total, \"display\": result}\n\n# Usage\nprint(parse_and_roll(\"2d6+3\"))\nprint(parse_and_roll(\"d20\"))\nprint(parse_and_roll(\"4d8-2\"))\n```\n\n## Gotchas\n\n- **Bash `$RANDOM` range**: `$RANDOM` produces 0-32767. For dice this is fine, but for very large ranges use Python's `random.randint()`.\n- **Inclusive ranges**: Dice rolls are always 1 to N inclusive. `random.randint(1, N)` is correct; `random.randrange(1, N)` excludes N.\n- **Modifier can be negative**: \"d20-2\" means subtract 2 from the roll. The total can go below 1.\n- **Always show individual rolls**: When rolling multiple dice, show each die result plus the total — users want to see the breakdown.\n\n## Validation\n\nAfter rolling:\n1. Each individual die result is within 1 to sides (inclusive)\n2. Total equals sum of individual rolls plus modifier\n3. Display shows the full breakdown (individual rolls + modifier = total)\n","# Roll Dice\n\n## When to use this skill\n\nUse this skill when the user needs to:\n- Roll a single die (d6, d20, etc.)\n- Roll multiple dice (2d6, 4d8, etc.)\n- Roll with modifiers (d20+5, 2d6-1)\n- Generate random numbers for games or decisions\n\n## Rolling a Single Die\n\nGenerate a random number from 1 to the given number of sides:\n\n```bash\n# Bash (macOS\u002FLinux)\necho $((RANDOM % \u003Csides> + 1))\n```\n\n```powershell\n# PowerShell (Windows)\nGet-Random -Minimum 1 -Maximum (\u003Csides> + 1)\n```\n\n```python\n# Python (more precise for large numbers)\nimport random\nprint(random.randint(1, \u003Csides>))\n```\n\nReplace `\u003Csides>` with the number of sides on the die (e.g., 6 for a standard die, 20 for a d20).\n\n## Common Dice Types\n\n| Notation | Sides | Common Use |\n|----------|-------|-----------|\n| d4 | 4 | Small damage rolls |\n| d6 | 6 | Standard die, ability scores |\n| d8 | 8 | Weapon damage |\n| d10 | 10 | Percentile rolls (paired) |\n| d12 | 12 | Greataxe damage |\n| d20 | 20 | Attack rolls, skill checks, saving throws |\n| d100 | 100 | Percentile rolls |\n\n## Rolling Multiple Dice\n\nFor NdX notation (N dice with X sides):\n\n```bash\n# Roll 3d6 (three six-sided dice)\nfor i in {1..3}; do echo $((RANDOM % 6 + 1)); done | paste -sd+ | bc\n```\n\n```python\nimport random\n\ndef roll(n, sides, modifier=0):\n    rolls = [random.randint(1, sides) for _ in range(n)]\n    total = sum(rolls) + modifier\n    return {\"rolls\": rolls, \"modifier\": modifier, \"total\": total}\n\n# Examples\nprint(roll(3, 6))        # 3d6\nprint(roll(1, 20, 5))    # 1d20+5\nprint(roll(2, 8, -1))    # 2d8-1\n```\n\n## Parsing Dice Notation\n\nWhen the user provides dice notation like \"2d6+3\", parse it:\n\n```python\nimport re\nimport random\n\ndef parse_and_roll(notation: str) -> dict:\n    match = re.match(r\"(\\d+)?d(\\d+)([+-]\\d+)?\", notation.strip().lower())\n    if not match:\n        return {\"error\": f\"Invalid notation: {notation}. Use format: NdX+M (e.g., 2d6+3)\"}\n    \n    n = int(match.group(1) or 1)\n    sides = int(match.group(2))\n    modifier = int(match.group(3) or 0)\n    \n    rolls = [random.randint(1, sides) for _ in range(n)]\n    total = sum(rolls) + modifier\n    \n    result = f\"{notation} → {rolls}\"\n    if modifier:\n        result += f\" {'+' if modifier > 0 else ''}{modifier}\"\n    result += f\" = {total}\"\n    \n    return {\"notation\": notation, \"rolls\": rolls, \"modifier\": modifier, \"total\": total, \"display\": result}\n\n# Usage\nprint(parse_and_roll(\"2d6+3\"))\nprint(parse_and_roll(\"d20\"))\nprint(parse_and_roll(\"4d8-2\"))\n```\n\n## Gotchas\n\n- **Bash `$RANDOM` range**: `$RANDOM` produces 0-32767. For dice this is fine, but for very large ranges use Python's `random.randint()`.\n- **Inclusive ranges**: Dice rolls are always 1 to N inclusive. `random.randint(1, N)` is correct; `random.randrange(1, N)` excludes N.\n- **Modifier can be negative**: \"d20-2\" means subtract 2 from the roll. The total can go below 1.\n- **Always show individual rolls**: When rolling multiple dice, show each die result plus the total — users want to see the breakdown.\n\n## Validation\n\nAfter rolling:\n1. Each individual die result is within 1 to sides (inclusive)\n2. Total equals sum of individual rolls plus modifier\n3. Display shows the full breakdown (individual rolls + modifier = total)\n",{"name":5,"license":15,"metadata":38,"description":40},{"author":21,"version":39},"1.0","Roll dice using a random number generator. Use when asked to roll a die (d4, d6, d8, d10, d12, d20, d100), roll multiple dice, or generate random dice rolls for tabletop RPGs, board games, or decision making.\n","develop","d85a5e71a5e3e82038a005e5dfa50b6a78cafa7e",".github\u002Fskills\u002Froll-dice",1,"https:\u002F\u002Fgithub.com\u002Fanjijava16\u002FAgent_Skills","https:\u002F\u002Fgithub.com\u002Fanjijava16","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fanjaiahmethuku\u002F","AI & Data Engineer ■ Real-time Streaming ■ BigData ■ Machine Learning ■ CLOUD ■ JAVA ■ PYTHON ■ Blog ■  Remain Curious And Keep Learning .....","2026-10-08 08:03:12",{"source":8,"skillName":5,"commands":51,"prompt":61,"zipAvailable":62},[52,55,58],{"tool":53,"command":54},"npx","npx skills add anjijava16\u002FAgent_Skills --skill roll-dice",{"tool":56,"command":57},"bunx","bunx skills add anjijava16\u002FAgent_Skills --skill roll-dice",{"tool":59,"command":60},"pnpm","pnpm dlx skills add anjijava16\u002FAgent_Skills --skill roll-dice","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fanjijava16\u002FAgent_Skills\u002Fblob\u002Fdevelop\u002F.github\u002Fskills\u002Froll-dice\u002FSKILL.md",true,[],[65,70,100,120,137,169],{"skillNo":66,"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":67,"categories":68,"keywords":69,"publishedAt":33},"01M6K52P5M72CRGAHJTVAWSNRA","https:\u002F\u002Fgithub.com\u002Fanjijava16\u002FAgent_Skills\u002Fblob\u002Fdevelop\u002Froll-dice\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32],{"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":81,"publishedAt":33},"01M6K52JJKRBM0A5EXT12G87RW","pdf-service","Extract text and tables from PDFs, fill PDF forms, merge and split PDF files, and convert PDFs to other formats. Use when the user mentions PDFs, document extraction, form filling, or needs to manipulate PDF files.","https:\u002F\u002Fgithub.com\u002Fanjijava16\u002FAgent_Skills\u002Fblob\u002Fdevelop\u002Fpdf-service\u002FSKILL.md",[76],{"categoryNo":77,"categoryName":78,"taxonomyType":79,"taxonomyTypeDesc":80},"01JBSEEDCAT000000000000002","文档处理","SCENARIO","使用场景",[82,83,84,85,86,21,87,88,89,90,91,26,92,93,94,95,96,97,98,99],"PDF","service","pdf service","python","merge","extraction","convert","text","user","extract","files","document","forms","form","formats","split","pip","fill",{"skillNo":101,"name":102,"nameZh":6,"description":103,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":104,"categories":105,"keywords":107,"publishedAt":33},"01M6K52EVG86E60AQFMJAZ1G09","pdf-processing","Extract text, tables, and metadata from PDF documents. Parse scanned PDFs with OCR, analyze PDF structure, and convert PDFs to other formats. Use when the user needs to read, parse, or extract content from PDF files, even if they just say \"get the text from this document.\"","https:\u002F\u002Fgithub.com\u002Fanjijava16\u002FAgent_Skills\u002Fblob\u002Fdevelop\u002Fpdf-processing\u002FSKILL.md",[106],{"categoryNo":77,"categoryName":78,"taxonomyType":79,"taxonomyTypeDesc":80},[82,108,109,85,110,111,88,112,89,113,114,26,115,92,93,116,117,118,119,98],"pdf processing","processing","documents","ocr","analyze","just","read","say","structure","get","tesseract","with",{"skillNo":121,"name":122,"nameZh":6,"description":123,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":124,"categories":125,"keywords":129,"publishedAt":33},"01M6K52A7EC35DTS48PP0VX5TB","my-skill","A template skill for [describe task]. Use when the user asks to [trigger phrases].","https:\u002F\u002Fgithub.com\u002Fanjijava16\u002FAgent_Skills\u002Fblob\u002Fdevelop\u002Fmy-skill\u002FSKILL.md",[126],{"categoryNo":127,"categoryName":128,"taxonomyType":79,"taxonomyTypeDesc":80},"01JBSEEDCAT000000000000023","Skill与智能体开发",[130,131,132,133,90,26,134,135,136,32],"my skill","my","template skill","template","task","trigger","name",{"skillNo":138,"name":139,"nameZh":6,"description":140,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":141,"categories":142,"keywords":154,"publishedAt":33},"01M6K51Y5QVHMDX3F01JJRRV33","data-analysis","Analyze datasets — compute summary statistics, clean messy data, add derived columns, detect outliers, and generate charts. Use when the user has a CSV, TSV, Excel, or JSON data file and wants to explore, transform, visualize, or understand the data, even if they don't explicitly mention \"analysis.\"","https:\u002F\u002Fgithub.com\u002Fanjijava16\u002FAgent_Skills\u002Fblob\u002Fdevelop\u002Fdata-analysis\u002FSKILL.md",[143,146,149],{"categoryNo":144,"categoryName":145,"taxonomyType":79,"taxonomyTypeDesc":80},"01JBSEEDCAT000000000000004","电子表格",{"categoryNo":147,"categoryName":148,"taxonomyType":79,"taxonomyTypeDesc":80},"01JBSEEDCAT000000000000013","分析与可视化",{"categoryNo":150,"categoryName":151,"taxonomyType":152,"taxonomyTypeDesc":153},"01JBSEEDCAT000000000000033","数据分析师","PROFESSION","适用职业",[155,156,157,158,85,159,21,22,160,161,162,163,112,26,164,165,166,167,168,98],"data analysis","data","analysis","xlsx","visualize","file","csv","Charts","explore","clean","statistics","add","transform","columns",{"skillNo":170,"name":171,"nameZh":6,"description":172,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":173,"categories":174,"keywords":181,"publishedAt":33},"01M6K51P73MWRNWFM80SYVBST0","code-review","Review code for bugs, security vulnerabilities, performance issues, and style problems. Provide actionable feedback with severity levels and fix suggestions. Use when the user asks to review, audit, or check code quality, or wants a second pair of eyes on a pull request, diff, or code change.","https:\u002F\u002Fgithub.com\u002Fanjijava16\u002FAgent_Skills\u002Fblob\u002Fdevelop\u002Fcode-review\u002FSKILL.md",[175,178],{"categoryNo":176,"categoryName":177,"taxonomyType":79,"taxonomyTypeDesc":80},"01JBSEEDCAT000000000000007","代码审查",{"categoryNo":179,"categoryName":180,"taxonomyType":152,"taxonomyTypeDesc":153},"01JBSEEDCAT000000000000030","开发工程师",[182,183,184,185,186,187,188,189,190,191,192,193,194,26,195,196,197,119,32,198],"code review","review","code","performance","change","code quality","issues","pull","audit","severity","feedback","check","fix","diff","style","actionable","bugs"]