[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6DBZACBR83WD3WAXGD0ATKH":3,"skill-same:01M6DBZACBR83WD3WAXGD0ATKH":116},{"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":23,"publishedAt":37,"linkOnly":38,"markdownContent":39,"markdownBody":40,"frontMatter":41,"refName":42,"commitSha":43,"skillDirectory":44,"forksCount":14,"repositoryHtmlUrl":45,"repositoryHomepageUrl":6,"ownerHtmlUrl":46,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":47,"install":48,"resources":61},"01M6DBZACBR83WD3WAXGD0ATKH","source-command-python-review",null,"Comprehensive Python code review for PEP 8 compliance, type hints, security, and Pythonic idioms. Invokes the python-reviewer agent.","Prekzursil\u002Fagent-skills-toolchain","Prekzursil","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F54636077?v=4","01M6DACZ1PCQHD99SCR1YXG28B","Andrei Mihai Visalon","01M6DACZ670WZF535V3WYYSS4Z",0,"MIT","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fsource-command-python-review\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000007","代码审查","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36],"review","python","command","source command python review","code review","security","code","compliance","pythonic","python code review","reviewer","idioms","type","2026-11-10 10:12:30",false,"---\nname: \"source-command-python-review\"\ndescription: \"Comprehensive Python code review for PEP 8 compliance, type hints, security, and Pythonic idioms. Invokes the python-reviewer agent.\"\n---\n\n# source-command-python-review\n\nUse this skill when the user asks to run the migrated source command `python-review`.\n\n## Command Template\n\n# Python Code Review\n\nThis command invokes the **python-reviewer** agent for comprehensive Python-specific code review.\n\n## What This Command Does\n\n1. **Identify Python Changes**: Find modified `.py` files via `git diff`\n2. **Run Static Analysis**: Execute `ruff`, `mypy`, `pylint`, `black --check`\n3. **Security Scan**: Check for SQL injection, command injection, unsafe deserialization\n4. **Type Safety Review**: Analyze type hints and mypy errors\n5. **Pythonic Code Check**: Verify code follows PEP 8 and Python best practices\n6. **Generate Report**: Categorize issues by severity\n\n## When to Use\n\nUse `\u002Fpython-review` when:\n- After writing or modifying Python code\n- Before committing Python changes\n- Reviewing pull requests with Python code\n- Onboarding to a new Python codebase\n- Learning Pythonic patterns and idioms\n\n## Review Categories\n\n### CRITICAL (Must Fix)\n- SQL\u002FCommand injection vulnerabilities\n- Unsafe eval\u002Fexec usage\n- Pickle unsafe deserialization\n- Hardcoded credentials\n- YAML unsafe load\n- Bare except clauses hiding errors\n\n### HIGH (Should Fix)\n- Missing type hints on public functions\n- Mutable default arguments\n- Swallowing exceptions silently\n- Not using context managers for resources\n- C-style looping instead of comprehensions\n- Using type() instead of isinstance()\n- Race conditions without locks\n\n### MEDIUM (Consider)\n- PEP 8 formatting violations\n- Missing docstrings on public functions\n- Print statements instead of logging\n- Inefficient string operations\n- Magic numbers without named constants\n- Not using f-strings for formatting\n- Unnecessary list creation\n\n## Automated Checks Run\n\n```bash\n# Type checking\nmypy .\n\n# Linting and formatting\nruff check .\nblack --check .\nisort --check-only .\n\n# Security scanning\nbandit -r .\n\n# Dependency audit\npip-audit\nsafety check\n\n# Testing\npytest --cov=app --cov-report=term-missing\n```\n\n## Example Usage\n\n```text\nUser: \u002Fpython-review\n\nAgent:\n# Python Code Review Report\n\n## Files Reviewed\n- app\u002Froutes\u002Fuser.py (modified)\n- app\u002Fservices\u002Fauth.py (modified)\n\n## Static Analysis Results\n✓ ruff: No issues\n✓ mypy: No errors\n⚠️ black: 2 files need reformatting\n✓ bandit: No security issues\n\n## Issues Found\n\n[CRITICAL] SQL Injection vulnerability\nFile: app\u002Froutes\u002Fuser.py:42\nIssue: User input directly interpolated into SQL query\n```python\nquery = f\"SELECT * FROM users WHERE id = {user_id}\"  # Bad\n```\nFix: Use parameterized query\n```python\nquery = \"SELECT * FROM users WHERE id = %s\"  # Good\ncursor.execute(query, (user_id,))\n```\n\n[HIGH] Mutable default argument\nFile: app\u002Fservices\u002Fauth.py:18\nIssue: Mutable default argument causes shared state\n```python\ndef process_items(items=[]):  # Bad\n    items.append(\"new\")\n    return items\n```\nFix: Use None as default\n```python\ndef process_items(items=None):  # Good\n    if items is None:\n        items = []\n    items.append(\"new\")\n    return items\n```\n\n[MEDIUM] Missing type hints\nFile: app\u002Fservices\u002Fauth.py:25\nIssue: Public function without type annotations\n```python\ndef get_user(user_id):  # Bad\n    return db.find(user_id)\n```\nFix: Add type hints\n```python\ndef get_user(user_id: str) -> Optional[User]:  # Good\n    return db.find(user_id)\n```\n\n[MEDIUM] Not using context manager\nFile: app\u002Froutes\u002Fuser.py:55\nIssue: File not closed on exception\n```python\nf = open(\"config.json\")  # Bad\ndata = f.read()\nf.close()\n```\nFix: Use context manager\n```python\nwith open(\"config.json\") as f:  # Good\n    data = f.read()\n```\n\n## Summary\n- CRITICAL: 1\n- HIGH: 1\n- MEDIUM: 2\n\nRecommendation: ❌ Block merge until CRITICAL issue is fixed\n\n## Formatting Required\nRun: `black app\u002Froutes\u002Fuser.py app\u002Fservices\u002Fauth.py`\n```\n\n## Approval Criteria\n\n| Status | Condition |\n|--------|-----------|\n| ✅ Approve | No CRITICAL or HIGH issues |\n| ⚠️ Warning | Only MEDIUM issues (merge with caution) |\n| ❌ Block | CRITICAL or HIGH issues found |\n\n**Precedence (a HIGH-only review is a BLOCK):** this gate is authoritative for a Python\nreview and is deliberately STRICTER than the general default in\n`rules\u002Fcommon\u002Fcode-review.md` (Review Severity Levels), whose severity table grades HIGH as\n`WARN` and whose Approval Criteria allow \"Only HIGH issues (merge with caution)\".\nLanguage-specific rules take precedence over common ones, and that common rule records this\noverride next to its own HIGH row, so do NOT read the WARN row as permission to merge a HIGH\nfinding from this command.\n\n## Integration with Other Commands\n\n- Use `\u002Ftdd` first to ensure tests pass\n- Use `\u002Fcode-review` for non-Python specific concerns\n- Use `\u002Fpython-review` before committing\n- Use `\u002Fbuild-fix` if static analysis tools fail\n\n## Framework-Specific Reviews\n\n### Django Projects\nThe reviewer checks for:\n- N+1 query issues (use `select_related` and `prefetch_related`)\n- Missing migrations for model changes\n- Raw SQL usage when ORM could work\n- Missing `transaction.atomic()` for multi-step operations\n\n### FastAPI Projects\nThe reviewer checks for:\n- CORS misconfiguration\n- Pydantic models for request validation\n- Response models correctness\n- Proper async\u002Fawait usage\n- Dependency injection patterns\n\n### Flask Projects\nThe reviewer checks for:\n- Context management (app context, request context)\n- Proper error handling\n- Blueprint organization\n- Configuration management\n\n## Related\n\n- Agent: `agents\u002Fpython-reviewer.md`\n- Skills: `skills\u002Fpython-patterns\u002F`, `skills\u002Fpython-testing\u002F`\n\n## Common Fixes\n\n### Add Type Hints\n```python\n# Before\ndef calculate(x, y):\n    return x + y\n\n# After\nfrom typing import Union\n\ndef calculate(x: Union[int, float], y: Union[int, float]) -> Union[int, float]:\n    return x + y\n```\n\n### Use Context Managers\n```python\n# Before\nf = open(\"file.txt\")\ndata = f.read()\nf.close()\n\n# After\nwith open(\"file.txt\") as f:\n    data = f.read()\n```\n\n### Use List Comprehensions\n```python\n# Before\nresult = []\nfor item in items:\n    if item.active:\n        result.append(item.name)\n\n# After\nresult = [item.name for item in items if item.active]\n```\n\n### Fix Mutable Defaults\n```python\n# Before\ndef append(value, items=[]):\n    items.append(value)\n    return items\n\n# After\ndef append(value, items=None):\n    if items is None:\n        items = []\n    items.append(value)\n    return items\n```\n\n### Use f-strings (Python 3.6+)\n```python\n# Before\nname = \"Alice\"\ngreeting = \"Hello, \" + name + \"!\"\ngreeting2 = \"Hello, {}\".format(name)\n\n# After\ngreeting = f\"Hello, {name}!\"\n```\n\n### Fix String Concatenation in Loops\n```python\n# Before\nresult = \"\"\nfor item in items:\n    result += str(item)\n\n# After\nresult = \"\".join(str(item) for item in items)\n```\n\n## Python Version Compatibility\n\nThe reviewer notes when code uses features from newer Python versions:\n\n| Feature | Minimum Python |\n|---------|----------------|\n| Type hints | 3.5+ |\n| f-strings | 3.6+ |\n| Walrus operator (`:=`) | 3.8+ |\n| Position-only parameters | 3.8+ |\n| Match statements | 3.10+ |\n| Type unions (&#96;x &#124; None&#96;) | 3.10+ |\n\nEnsure your project's `pyproject.toml` or `setup.py` specifies the correct minimum Python version.\n","# source-command-python-review\n\nUse this skill when the user asks to run the migrated source command `python-review`.\n\n## Command Template\n\n# Python Code Review\n\nThis command invokes the **python-reviewer** agent for comprehensive Python-specific code review.\n\n## What This Command Does\n\n1. **Identify Python Changes**: Find modified `.py` files via `git diff`\n2. **Run Static Analysis**: Execute `ruff`, `mypy`, `pylint`, `black --check`\n3. **Security Scan**: Check for SQL injection, command injection, unsafe deserialization\n4. **Type Safety Review**: Analyze type hints and mypy errors\n5. **Pythonic Code Check**: Verify code follows PEP 8 and Python best practices\n6. **Generate Report**: Categorize issues by severity\n\n## When to Use\n\nUse `\u002Fpython-review` when:\n- After writing or modifying Python code\n- Before committing Python changes\n- Reviewing pull requests with Python code\n- Onboarding to a new Python codebase\n- Learning Pythonic patterns and idioms\n\n## Review Categories\n\n### CRITICAL (Must Fix)\n- SQL\u002FCommand injection vulnerabilities\n- Unsafe eval\u002Fexec usage\n- Pickle unsafe deserialization\n- Hardcoded credentials\n- YAML unsafe load\n- Bare except clauses hiding errors\n\n### HIGH (Should Fix)\n- Missing type hints on public functions\n- Mutable default arguments\n- Swallowing exceptions silently\n- Not using context managers for resources\n- C-style looping instead of comprehensions\n- Using type() instead of isinstance()\n- Race conditions without locks\n\n### MEDIUM (Consider)\n- PEP 8 formatting violations\n- Missing docstrings on public functions\n- Print statements instead of logging\n- Inefficient string operations\n- Magic numbers without named constants\n- Not using f-strings for formatting\n- Unnecessary list creation\n\n## Automated Checks Run\n\n```bash\n# Type checking\nmypy .\n\n# Linting and formatting\nruff check .\nblack --check .\nisort --check-only .\n\n# Security scanning\nbandit -r .\n\n# Dependency audit\npip-audit\nsafety check\n\n# Testing\npytest --cov=app --cov-report=term-missing\n```\n\n## Example Usage\n\n```text\nUser: \u002Fpython-review\n\nAgent:\n# Python Code Review Report\n\n## Files Reviewed\n- app\u002Froutes\u002Fuser.py (modified)\n- app\u002Fservices\u002Fauth.py (modified)\n\n## Static Analysis Results\n✓ ruff: No issues\n✓ mypy: No errors\n⚠️ black: 2 files need reformatting\n✓ bandit: No security issues\n\n## Issues Found\n\n[CRITICAL] SQL Injection vulnerability\nFile: app\u002Froutes\u002Fuser.py:42\nIssue: User input directly interpolated into SQL query\n```python\nquery = f\"SELECT * FROM users WHERE id = {user_id}\"  # Bad\n```\nFix: Use parameterized query\n```python\nquery = \"SELECT * FROM users WHERE id = %s\"  # Good\ncursor.execute(query, (user_id,))\n```\n\n[HIGH] Mutable default argument\nFile: app\u002Fservices\u002Fauth.py:18\nIssue: Mutable default argument causes shared state\n```python\ndef process_items(items=[]):  # Bad\n    items.append(\"new\")\n    return items\n```\nFix: Use None as default\n```python\ndef process_items(items=None):  # Good\n    if items is None:\n        items = []\n    items.append(\"new\")\n    return items\n```\n\n[MEDIUM] Missing type hints\nFile: app\u002Fservices\u002Fauth.py:25\nIssue: Public function without type annotations\n```python\ndef get_user(user_id):  # Bad\n    return db.find(user_id)\n```\nFix: Add type hints\n```python\ndef get_user(user_id: str) -> Optional[User]:  # Good\n    return db.find(user_id)\n```\n\n[MEDIUM] Not using context manager\nFile: app\u002Froutes\u002Fuser.py:55\nIssue: File not closed on exception\n```python\nf = open(\"config.json\")  # Bad\ndata = f.read()\nf.close()\n```\nFix: Use context manager\n```python\nwith open(\"config.json\") as f:  # Good\n    data = f.read()\n```\n\n## Summary\n- CRITICAL: 1\n- HIGH: 1\n- MEDIUM: 2\n\nRecommendation: ❌ Block merge until CRITICAL issue is fixed\n\n## Formatting Required\nRun: `black app\u002Froutes\u002Fuser.py app\u002Fservices\u002Fauth.py`\n```\n\n## Approval Criteria\n\n| Status | Condition |\n|--------|-----------|\n| ✅ Approve | No CRITICAL or HIGH issues |\n| ⚠️ Warning | Only MEDIUM issues (merge with caution) |\n| ❌ Block | CRITICAL or HIGH issues found |\n\n**Precedence (a HIGH-only review is a BLOCK):** this gate is authoritative for a Python\nreview and is deliberately STRICTER than the general default in\n`rules\u002Fcommon\u002Fcode-review.md` (Review Severity Levels), whose severity table grades HIGH as\n`WARN` and whose Approval Criteria allow \"Only HIGH issues (merge with caution)\".\nLanguage-specific rules take precedence over common ones, and that common rule records this\noverride next to its own HIGH row, so do NOT read the WARN row as permission to merge a HIGH\nfinding from this command.\n\n## Integration with Other Commands\n\n- Use `\u002Ftdd` first to ensure tests pass\n- Use `\u002Fcode-review` for non-Python specific concerns\n- Use `\u002Fpython-review` before committing\n- Use `\u002Fbuild-fix` if static analysis tools fail\n\n## Framework-Specific Reviews\n\n### Django Projects\nThe reviewer checks for:\n- N+1 query issues (use `select_related` and `prefetch_related`)\n- Missing migrations for model changes\n- Raw SQL usage when ORM could work\n- Missing `transaction.atomic()` for multi-step operations\n\n### FastAPI Projects\nThe reviewer checks for:\n- CORS misconfiguration\n- Pydantic models for request validation\n- Response models correctness\n- Proper async\u002Fawait usage\n- Dependency injection patterns\n\n### Flask Projects\nThe reviewer checks for:\n- Context management (app context, request context)\n- Proper error handling\n- Blueprint organization\n- Configuration management\n\n## Related\n\n- Agent: `agents\u002Fpython-reviewer.md`\n- Skills: `skills\u002Fpython-patterns\u002F`, `skills\u002Fpython-testing\u002F`\n\n## Common Fixes\n\n### Add Type Hints\n```python\n# Before\ndef calculate(x, y):\n    return x + y\n\n# After\nfrom typing import Union\n\ndef calculate(x: Union[int, float], y: Union[int, float]) -> Union[int, float]:\n    return x + y\n```\n\n### Use Context Managers\n```python\n# Before\nf = open(\"file.txt\")\ndata = f.read()\nf.close()\n\n# After\nwith open(\"file.txt\") as f:\n    data = f.read()\n```\n\n### Use List Comprehensions\n```python\n# Before\nresult = []\nfor item in items:\n    if item.active:\n        result.append(item.name)\n\n# After\nresult = [item.name for item in items if item.active]\n```\n\n### Fix Mutable Defaults\n```python\n# Before\ndef append(value, items=[]):\n    items.append(value)\n    return items\n\n# After\ndef append(value, items=None):\n    if items is None:\n        items = []\n    items.append(value)\n    return items\n```\n\n### Use f-strings (Python 3.6+)\n```python\n# Before\nname = \"Alice\"\ngreeting = \"Hello, \" + name + \"!\"\ngreeting2 = \"Hello, {}\".format(name)\n\n# After\ngreeting = f\"Hello, {name}!\"\n```\n\n### Fix String Concatenation in Loops\n```python\n# Before\nresult = \"\"\nfor item in items:\n    result += str(item)\n\n# After\nresult = \"\".join(str(item) for item in items)\n```\n\n## Python Version Compatibility\n\nThe reviewer notes when code uses features from newer Python versions:\n\n| Feature | Minimum Python |\n|---------|----------------|\n| Type hints | 3.5+ |\n| f-strings | 3.6+ |\n| Walrus operator (`:=`) | 3.8+ |\n| Position-only parameters | 3.8+ |\n| Match statements | 3.10+ |\n| Type unions (&#96;x &#124; None&#96;) | 3.10+ |\n\nEnsure your project's `pyproject.toml` or `setup.py` specifies the correct minimum Python version.\n",{"name":5,"description":7},"main","a298c929b6cbd662e1fce54302ce520d5ceea1a5",".agents\u002Fskills\u002Fsource-command-python-review","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain","https:\u002F\u002Fgithub.com\u002FPrekzursil","2026-11-02 14:30:57",{"source":8,"skillName":5,"commands":49,"prompt":59,"zipAvailable":60},[50,53,56],{"tool":51,"command":52},"npx","npx skills add Prekzursil\u002Fagent-skills-toolchain --skill source-command-python-review",{"tool":54,"command":55},"bunx","bunx skills add Prekzursil\u002Fagent-skills-toolchain --skill source-command-python-review",{"tool":57,"command":58},"pnpm","pnpm dlx skills add Prekzursil\u002Fagent-skills-toolchain --skill source-command-python-review","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fsource-command-python-review\u002FSKILL.md",true,[62,68,72,76,80,84,88,92,96,100,104,108,112],{"path":63,"resourceType":64,"resourceTypeDesc":65,"sizeBytes":66,"sourceHtmlUrl":67},"references\u002Fauth-best-practices.md","REFERENCE","参考文档",6207,"https:\u002F\u002Fgithub.com\u002Fagency-black\u002FSkills\u002Fblob\u002Fmain\u002FCopia de azure-storage\u002Freferences\u002Fauth-best-practices.md",{"path":69,"resourceType":64,"resourceTypeDesc":65,"sizeBytes":70,"sourceHtmlUrl":71},"references\u002Fsdk-usage.md",4542,"https:\u002F\u002Fgithub.com\u002Fagency-black\u002FSkills\u002Fblob\u002Fmain\u002FCopia de azure-storage\u002Freferences\u002Fsdk-usage.md",{"path":73,"resourceType":64,"resourceTypeDesc":65,"sizeBytes":74,"sourceHtmlUrl":75},"references\u002Fsdk\u002Fazure-data-tables-java.md",1314,"https:\u002F\u002Fgithub.com\u002Fagency-black\u002FSkills\u002Fblob\u002Fmain\u002FCopia de azure-storage\u002Freferences\u002Fsdk\u002Fazure-data-tables-java.md",{"path":77,"resourceType":64,"resourceTypeDesc":65,"sizeBytes":78,"sourceHtmlUrl":79},"references\u002Fsdk\u002Fazure-data-tables-py.md",1070,"https:\u002F\u002Fgithub.com\u002Fagency-black\u002FSkills\u002Fblob\u002Fmain\u002FCopia de azure-storage\u002Freferences\u002Fsdk\u002Fazure-data-tables-py.md",{"path":81,"resourceType":64,"resourceTypeDesc":65,"sizeBytes":82,"sourceHtmlUrl":83},"references\u002Fsdk\u002Fazure-storage-blob-java.md",1350,"https:\u002F\u002Fgithub.com\u002Fagency-black\u002FSkills\u002Fblob\u002Fmain\u002FCopia de azure-storage\u002Freferences\u002Fsdk\u002Fazure-storage-blob-java.md",{"path":85,"resourceType":64,"resourceTypeDesc":65,"sizeBytes":86,"sourceHtmlUrl":87},"references\u002Fsdk\u002Fazure-storage-blob-py.md",1025,"https:\u002F\u002Fgithub.com\u002Fagency-black\u002FSkills\u002Fblob\u002Fmain\u002FCopia de azure-storage\u002Freferences\u002Fsdk\u002Fazure-storage-blob-py.md",{"path":89,"resourceType":64,"resourceTypeDesc":65,"sizeBytes":90,"sourceHtmlUrl":91},"references\u002Fsdk\u002Fazure-storage-blob-rust.md",1094,"https:\u002F\u002Fgithub.com\u002Fagency-black\u002FSkills\u002Fblob\u002Fmain\u002FCopia de azure-storage\u002Freferences\u002Fsdk\u002Fazure-storage-blob-rust.md",{"path":93,"resourceType":64,"resourceTypeDesc":65,"sizeBytes":94,"sourceHtmlUrl":95},"references\u002Fsdk\u002Fazure-storage-blob-ts.md",1221,"https:\u002F\u002Fgithub.com\u002Fagency-black\u002FSkills\u002Fblob\u002Fmain\u002FCopia de azure-storage\u002Freferences\u002Fsdk\u002Fazure-storage-blob-ts.md",{"path":97,"resourceType":64,"resourceTypeDesc":65,"sizeBytes":98,"sourceHtmlUrl":99},"references\u002Fsdk\u002Fazure-storage-file-datalake-py.md",1367,"https:\u002F\u002Fgithub.com\u002Fagency-black\u002FSkills\u002Fblob\u002Fmain\u002FCopia de azure-storage\u002Freferences\u002Fsdk\u002Fazure-storage-file-datalake-py.md",{"path":101,"resourceType":64,"resourceTypeDesc":65,"sizeBytes":102,"sourceHtmlUrl":103},"references\u002Fsdk\u002Fazure-storage-file-share-py.md",1006,"https:\u002F\u002Fgithub.com\u002Fagency-black\u002FSkills\u002Fblob\u002Fmain\u002FCopia de azure-storage\u002Freferences\u002Fsdk\u002Fazure-storage-file-share-py.md",{"path":105,"resourceType":64,"resourceTypeDesc":65,"sizeBytes":106,"sourceHtmlUrl":107},"references\u002Fsdk\u002Fazure-storage-file-share-ts.md",1262,"https:\u002F\u002Fgithub.com\u002Fagency-black\u002FSkills\u002Fblob\u002Fmain\u002FCopia de azure-storage\u002Freferences\u002Fsdk\u002Fazure-storage-file-share-ts.md",{"path":109,"resourceType":64,"resourceTypeDesc":65,"sizeBytes":110,"sourceHtmlUrl":111},"references\u002Fsdk\u002Fazure-storage-queue-py.md",1091,"https:\u002F\u002Fgithub.com\u002Fagency-black\u002FSkills\u002Fblob\u002Fmain\u002FCopia de azure-storage\u002Freferences\u002Fsdk\u002Fazure-storage-queue-py.md",{"path":113,"resourceType":64,"resourceTypeDesc":65,"sizeBytes":114,"sourceHtmlUrl":115},"references\u002Fsdk\u002Fazure-storage-queue-ts.md",1258,"https:\u002F\u002Fgithub.com\u002Fagency-black\u002FSkills\u002Fblob\u002Fmain\u002FCopia de azure-storage\u002Freferences\u002Fsdk\u002Fazure-storage-queue-ts.md",[117,139,168,194,208,224],{"skillNo":118,"name":119,"nameZh":6,"description":120,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":121,"categories":122,"keywords":123,"publishedAt":37},"01M6DF7D7478R55P46REYH4QAC","clarify-requirements","Resolve genuine pre-execution ambiguity by scanning repo context, generating 1-6 grounded options, and asking 1-3 focused questions via AskUserQuestion. NOT for mid-task use (injection risk); NOT when the goal is already unambiguous; use to disambiguate vague prompts before any file edits.","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002Ftools\u002Fworkspace-hooks\u002Fskills\u002Fclarify-requirements\u002FSKILL.md",[],[124,125,126,127,128,129,130,131,132,133,134,135,136,137,138],"clarify requirements","clarify","requirements","risk","options","task","prompts","goal","scanning","use","context","repo","injection","execution","file",{"skillNo":140,"name":141,"nameZh":6,"description":142,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":143,"categories":144,"keywords":148,"publishedAt":37},"01M6DF79CA4BHJS66J8EZDBPWJ","openmm-md","Run FREE, open-source, Windows-native GPU molecular dynamics via the openmm-md MCP (OpenMM + CUDA on the local NVIDIA GPU). Use for protein \u002F protein-ligand MD when you want a free stack or are on Windows without a Schrodinger license. Covers the full workflow (prepare, solvate, minimize, equilibrate, production, analyze, mmgbsa) AND an honest decision guide vs Schrodinger Desmond, including how to run Desmond legitimately on Linux or a cloud GPU with a real license. This is a deliberately LESSER free alternative and does NOT replace the schrodinger MCP tools. Do NOT use it to pick a free tool when a validated FEP+, WaterMap, IFD-MD, or Prime MM-GBSA result is actually required.","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002Ftools\u002Fmcp\u002Fopenmm-md-mcp\u002Fskill\u002Fopenmm-md\u002FSKILL.md",[145],{"categoryNo":146,"categoryName":147,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[149,150,151,152,153,154,155,156,157,158,159,160,161,162,133,163,164,165,166,167],"openmm md","how","decision","pick","linux","analyze","tool","stack","open","NVIDIA","gpu","license","workflow","windows","free","molecular dynamics","local","do","MCP",{"skillNo":169,"name":170,"nameZh":6,"description":171,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":172,"categories":173,"keywords":180,"publishedAt":37},"01M6DF76C1MG85VEWP8VZCBNMN","visual-review","Take screenshots of web pages and UI using Playwright for visual review and iteration","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002Ftools\u002Feditor\u002Fmetaswarm\u002Fskills\u002Fvisual-review\u002FSKILL.md",[174,177],{"categoryNo":175,"categoryName":176,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000003","演示文稿",{"categoryNo":178,"categoryName":179,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",[24,181,182,183,184,185,186,187,188,189,150,190,191,192,193],"visual","visual review","pages","web","false","iteration","take","check","slides","ui","screenshot","playwright","screenshots",{"skillNo":195,"name":196,"nameZh":6,"description":197,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":198,"categories":199,"keywords":200,"publishedAt":37},"01M6DF73AQVCBZKEN0YXEX9FXP","status","Diagnostic status report — shows metaswarm installation state, project setup, and potential issues","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002Ftools\u002Feditor\u002Fmetaswarm\u002Fskills\u002Fstatus\u002FSKILL.md",[],[196,201,202,203,204,205,206,207],"setup","report","project","installation","project setup","issues","state",{"skillNo":209,"name":210,"nameZh":6,"description":211,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":212,"categories":213,"keywords":215,"publishedAt":37},"01M6DF6X6C2XB0P6GX76P7TTYV","start","Use when starting work on any task, when the user mentions metaswarm, or when the user wants to begin tracked development work","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002Ftools\u002Feditor\u002Fmetaswarm\u002Fskills\u002Fstart\u002FSKILL.md",[214],{"categoryNo":146,"categoryName":147,"taxonomyType":21,"taxonomyTypeDesc":22},[210,216,129,217,218,219,133,220,221,222,223],"start issue","issue","ready","work on issue","user","work","work on","development",{"skillNo":225,"name":201,"nameZh":6,"description":226,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":227,"categories":228,"keywords":229,"publishedAt":37},"01M6DF6QMJ9AJKFKHHKRT005PQ","Interactive project setup — detects your project, configures metaswarm, writes project-local files","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002Ftools\u002Feditor\u002Fmetaswarm\u002Fskills\u002Fsetup\u002FSKILL.md",[],[201,203,165,230,205,231],"files","interactive"]