[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6EX1HD238NM780DFE8V8Q5V":3,"skill-same:01M6EX1HD238NM780DFE8V8Q5V":75},{"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":37,"linkOnly":38,"markdownContent":39,"markdownBody":40,"frontMatter":41,"refName":42,"commitSha":43,"skillDirectory":44,"forksCount":45,"repositoryHtmlUrl":46,"repositoryHomepageUrl":47,"ownerHtmlUrl":48,"ownerBlogUrl":6,"ownerDescription":49,"updatedAt":50,"install":51,"resources":64},"01M6EX1HD238NM780DFE8V8Q5V","docstring",null,"Write docstrings for PyTorch functions and methods following PyTorch conventions. Use when writing or updating docstrings in PyTorch code.","ComeOnOliver\u002Fskillshub","ComeOnOliver","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F43215937?v=4","01M6E5JNFECJAAVFE0W7SMWWD2","Haoran Shu","01M6E5JNNDQS7AJZDYFQ8TPZCK",67,"MIT","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fpytorch\u002Fdocstring\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000018","写作与文案","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000036","内容创作者","PROFESSION","适用职业",[5,29,30,31,32,33,34,35,36],"writing","pytorch","code","write","use","functions","methods","conventions","2026-11-10 10:12:30",false,"---\nname: docstring\ndescription: Write docstrings for PyTorch functions and methods following PyTorch conventions. Use when writing or updating docstrings in PyTorch code.\n---\n\n# PyTorch Docstring Writing Guide\n\nThis skill describes how to write docstrings for functions and methods in the PyTorch project, following the conventions in `torch\u002F_tensor_docs.py` and `torch\u002Fnn\u002Ffunctional.py`.\n\n## General Principles\n\n- Use **raw strings** (`r\"\"\"...\"\"\"`) for all docstrings to avoid issues with LaTeX\u002Fmath backslashes\n- Follow **Sphinx\u002FreStructuredText** (reST) format for documentation\n- Be **concise but complete** - include all essential information\n- Always include **examples** when possible\n- Use **cross-references** to related functions\u002Fclasses\n\n## Docstring Structure\n\n### 1. Function Signature (First Line)\n\nStart with the function signature showing all parameters:\n\n```python\nr\"\"\"function_name(param1, param2, *, kwarg1=default1, kwarg2=default2) -> ReturnType\n```\n\n**Notes:**\n- Include the function name\n- Show positional and keyword-only arguments (use `*` separator)\n- Include default values\n- Show return type annotation\n- This line should NOT end with a period\n\n### 2. Brief Description\n\nProvide a one-line description of what the function does:\n\n```python\nr\"\"\"conv2d(input, weight, bias=None, stride=1, padding=0, dilation=1, groups=1) -> Tensor\n\nApplies a 2D convolution over an input image composed of several input\nplanes.\n```\n\n### 3. Mathematical Formulas (if applicable)\n\nUse Sphinx math directives for mathematical expressions:\n\n```python\n.. math::\n    \\text{Softmax}(x_{i}) = \\frac{\\exp(x_i)}{\\sum_j \\exp(x_j)}\n```\n\nOr inline math: `:math:\\`x^2\\``\n\n### 4. Cross-References\n\nLink to related classes and functions using Sphinx roles:\n\n- `:class:\\`~torch.nn.ModuleName\\`` - Link to a class\n- `:func:\\`torch.function_name\\`` - Link to a function\n- `:meth:\\`~Tensor.method_name\\`` - Link to a method\n- `:attr:\\`attribute_name\\`` - Reference an attribute\n- The `~` prefix shows only the last component (e.g., `Conv2d` instead of `torch.nn.Conv2d`)\n\n**Example:**\n```python\nSee :class:`~torch.nn.Conv2d` for details and output shape.\n```\n\n### 5. Notes and Warnings\n\nUse admonitions for important information:\n\n```python\n.. note::\n    This function doesn't work directly with NLLLoss,\n    which expects the Log to be computed between the Softmax and itself.\n    Use log_softmax instead (it's faster and has better numerical properties).\n\n.. warning::\n    :func:`new_tensor` always copies :attr:`data`. If you have a Tensor\n    ``data`` and want to avoid a copy, use :func:`torch.Tensor.requires_grad_`\n    or :func:`torch.Tensor.detach`.\n```\n\n### 6. Args Section\n\nDocument all parameters with type annotations and descriptions:\n\n```python\nArgs:\n    input (Tensor): input tensor of shape :math:`(\\text{minibatch} , \\text{in\\_channels} , iH , iW)`\n    weight (Tensor): filters of shape :math:`(\\text{out\\_channels} , kH , kW)`\n    bias (Tensor, optional): optional bias tensor of shape :math:`(\\text{out\\_channels})`. Default: ``None``\n    stride (int or tuple): the stride of the convolving kernel. Can be a single number or a\n      tuple `(sH, sW)`. Default: 1\n```\n\n**Formatting rules:**\n- Parameter name in **lowercase**\n- Type in parentheses: `(Type)`, `(Type, optional)` for optional parameters\n- Description follows the type\n- For optional parameters, include \"Default: ``value``\" at the end\n- Use double backticks for inline code: ``` ``None`` ```\n- Indent continuation lines by 2 spaces\n\n### 7. Keyword Args Section (if applicable)\n\nSometimes keyword arguments are documented separately:\n\n```python\nKeyword args:\n    dtype (:class:`torch.dtype`, optional): the desired type of returned tensor.\n        Default: if None, same :class:`torch.dtype` as this tensor.\n    device (:class:`torch.device`, optional): the desired device of returned tensor.\n        Default: if None, same :class:`torch.device` as this tensor.\n    requires_grad (bool, optional): If autograd should record operations on the\n        returned tensor. Default: ``False``.\n```\n\n### 8. Returns Section (if needed)\n\nDocument the return value:\n\n```python\nReturns:\n    Tensor: Sampled tensor of same shape as `logits` from the Gumbel-Softmax distribution.\n        If ``hard=True``, the returned samples will be one-hot, otherwise they will\n        be probability distributions that sum to 1 across `dim`.\n```\n\nOr simply include it in the function signature line if obvious from context.\n\n### 9. Examples Section\n\nAlways include examples when possible:\n\n```python\nExamples::\n\n    >>> inputs = torch.randn(33, 16, 30)\n    >>> filters = torch.randn(20, 16, 5)\n    >>> F.conv1d(inputs, filters)\n\n    >>> # With square kernels and equal stride\n    >>> filters = torch.randn(8, 4, 3, 3)\n    >>> inputs = torch.randn(1, 4, 5, 5)\n    >>> F.conv2d(inputs, filters, padding=1)\n```\n\n**Formatting rules:**\n- Use `Examples::` with double colon\n- Use `>>>` prompt for Python code\n- Include comments with `#` when helpful\n- Show actual output when it helps understanding (indent without `>>>`)\n\n### 10. External References\n\nLink to papers or external documentation:\n\n```python\n.. _Link Name:\n    https:\u002F\u002Farxiv.org\u002Fabs\u002F1611.00712\n```\n\nReference them in text: ```See `Link Name`_```\n\n## Method Types\n\n### Native Python Functions\n\nFor regular Python functions, use a standard docstring:\n\n```python\ndef relu(input: Tensor, inplace: bool = False) -> Tensor:\n    r\"\"\"relu(input, inplace=False) -> Tensor\n\n    Applies the rectified linear unit function element-wise. See\n    :class:`~torch.nn.ReLU` for more details.\n    \"\"\"\n    # implementation\n```\n\n### C-Bound Functions (using add_docstr)\n\nFor C-bound functions, use `_add_docstr`:\n\n```python\nconv1d = _add_docstr(\n    torch.conv1d,\n    r\"\"\"\nconv1d(input, weight, bias=None, stride=1, padding=0, dilation=1, groups=1) -> Tensor\n\nApplies a 1D convolution over an input signal composed of several input\nplanes.\n\nSee :class:`~torch.nn.Conv1d` for details and output shape.\n\nArgs:\n    input: input tensor of shape :math:`(\\text{minibatch} , \\text{in\\_channels} , iW)`\n    weight: filters of shape :math:`(\\text{out\\_channels} , kW)`\n    ...\n\"\"\",\n)\n```\n\n### In-Place Variants\n\nFor in-place operations (ending with `_`), reference the original:\n\n```python\nadd_docstr_all(\n    \"abs_\",\n    r\"\"\"\nabs_() -> Tensor\n\nIn-place version of :meth:`~Tensor.abs`\n\"\"\",\n)\n```\n\n### Alias Functions\n\nFor aliases, simply reference the original:\n\n```python\nadd_docstr_all(\n    \"absolute\",\n    r\"\"\"\nabsolute() -> Tensor\n\nAlias for :func:`abs`\n\"\"\",\n)\n```\n\n## Common Patterns\n\n### Shape Documentation\n\nUse LaTeX math notation for tensor shapes:\n\n```python\n:math:`(\\text{minibatch} , \\text{in\\_channels} , iH , iW)`\n```\n\n### Reusable Argument Definitions\n\nFor commonly used arguments, define them once and reuse:\n\n```python\ncommon_args = parse_kwargs(\n    \"\"\"\n    dtype (:class:`torch.dtype`, optional): the desired type of returned tensor.\n        Default: if None, same as this tensor.\n\"\"\"\n)\n\n# Then use with .format():\nr\"\"\"\n...\n\nKeyword args:\n    {dtype}\n    {device}\n\"\"\".format(**common_args)\n```\n\n### Template Insertion\n\nInsert reproducibility notes or other common text:\n\n```python\nr\"\"\"\n{tf32_note}\n\n{cudnn_reproducibility_note}\n\"\"\".format(**reproducibility_notes, **tf32_notes)\n```\n\n## Complete Example\n\nHere's a complete example showing all elements:\n\n```python\ndef gumbel_softmax(\n    logits: Tensor,\n    tau: float = 1,\n    hard: bool = False,\n    eps: float = 1e-10,\n    dim: int = -1,\n) -> Tensor:\n    r\"\"\"\n    Sample from the Gumbel-Softmax distribution and optionally discretize.\n\n    Args:\n        logits (Tensor): `[..., num_features]` unnormalized log probabilities\n        tau (float): non-negative scalar temperature\n        hard (bool): if ``True``, the returned samples will be discretized as one-hot vectors,\n              but will be differentiated as if it is the soft sample in autograd. Default: ``False``\n        dim (int): A dimension along which softmax will be computed. Default: -1\n\n    Returns:\n        Tensor: Sampled tensor of same shape as `logits` from the Gumbel-Softmax distribution.\n            If ``hard=True``, the returned samples will be one-hot, otherwise they will\n            be probability distributions that sum to 1 across `dim`.\n\n    .. note::\n        This function is here for legacy reasons, may be removed from nn.Functional in the future.\n\n    Examples::\n        >>> logits = torch.randn(20, 32)\n        >>> # Sample soft categorical using reparametrization trick:\n        >>> F.gumbel_softmax(logits, tau=1, hard=False)\n        >>> # Sample hard categorical using \"Straight-through\" trick:\n        >>> F.gumbel_softmax(logits, tau=1, hard=True)\n\n    .. _Link 1:\n        https:\u002F\u002Farxiv.org\u002Fabs\u002F1611.00712\n    \"\"\"\n    # implementation\n```\n\n## Quick Checklist\n\nWhen writing a PyTorch docstring, ensure:\n\n- [ ] Use raw string (`r\"\"\"`)\n- [ ] Include function signature on first line\n- [ ] Provide brief description\n- [ ] Document all parameters in Args section with types\n- [ ] Include default values for optional parameters\n- [ ] Use Sphinx cross-references (`:func:`, `:class:`, `:meth:`)\n- [ ] Add mathematical formulas if applicable\n- [ ] Include at least one example in Examples section\n- [ ] Add warnings\u002Fnotes for important caveats\n- [ ] Link to related module class with `:class:`\n- [ ] Use proper math notation for tensor shapes\n- [ ] Follow consistent formatting and indentation\n\n## Common Sphinx Roles Reference\n\n- `:class:\\`~torch.nn.Module\\`` - Class reference\n- `:func:\\`torch.function\\`` - Function reference\n- `:meth:\\`~Tensor.method\\`` - Method reference\n- `:attr:\\`attribute\\`` - Attribute reference\n- `:math:\\`equation\\`` - Inline math\n- `:ref:\\`label\\`` - Internal reference\n- ``` ``code`` ``` - Inline code (use double backticks)\n\n## Additional Notes\n\n- **Indentation**: Use 4 spaces for code, 2 spaces for continuation of parameter descriptions\n- **Line length**: Try to keep lines under 100 characters when possible\n- **Periods**: End sentences with periods, but not the signature line\n- **Backticks**: Use double backticks for code: ``` ``True`` ``None`` ``False`` ```\n- **Types**: Common types are `Tensor`, `int`, `float`, `bool`, `str`, `tuple`, `list`, etc.\n","# PyTorch Docstring Writing Guide\n\nThis skill describes how to write docstrings for functions and methods in the PyTorch project, following the conventions in `torch\u002F_tensor_docs.py` and `torch\u002Fnn\u002Ffunctional.py`.\n\n## General Principles\n\n- Use **raw strings** (`r\"\"\"...\"\"\"`) for all docstrings to avoid issues with LaTeX\u002Fmath backslashes\n- Follow **Sphinx\u002FreStructuredText** (reST) format for documentation\n- Be **concise but complete** - include all essential information\n- Always include **examples** when possible\n- Use **cross-references** to related functions\u002Fclasses\n\n## Docstring Structure\n\n### 1. Function Signature (First Line)\n\nStart with the function signature showing all parameters:\n\n```python\nr\"\"\"function_name(param1, param2, *, kwarg1=default1, kwarg2=default2) -> ReturnType\n```\n\n**Notes:**\n- Include the function name\n- Show positional and keyword-only arguments (use `*` separator)\n- Include default values\n- Show return type annotation\n- This line should NOT end with a period\n\n### 2. Brief Description\n\nProvide a one-line description of what the function does:\n\n```python\nr\"\"\"conv2d(input, weight, bias=None, stride=1, padding=0, dilation=1, groups=1) -> Tensor\n\nApplies a 2D convolution over an input image composed of several input\nplanes.\n```\n\n### 3. Mathematical Formulas (if applicable)\n\nUse Sphinx math directives for mathematical expressions:\n\n```python\n.. math::\n    \\text{Softmax}(x_{i}) = \\frac{\\exp(x_i)}{\\sum_j \\exp(x_j)}\n```\n\nOr inline math: `:math:\\`x^2\\``\n\n### 4. Cross-References\n\nLink to related classes and functions using Sphinx roles:\n\n- `:class:\\`~torch.nn.ModuleName\\`` - Link to a class\n- `:func:\\`torch.function_name\\`` - Link to a function\n- `:meth:\\`~Tensor.method_name\\`` - Link to a method\n- `:attr:\\`attribute_name\\`` - Reference an attribute\n- The `~` prefix shows only the last component (e.g., `Conv2d` instead of `torch.nn.Conv2d`)\n\n**Example:**\n```python\nSee :class:`~torch.nn.Conv2d` for details and output shape.\n```\n\n### 5. Notes and Warnings\n\nUse admonitions for important information:\n\n```python\n.. note::\n    This function doesn't work directly with NLLLoss,\n    which expects the Log to be computed between the Softmax and itself.\n    Use log_softmax instead (it's faster and has better numerical properties).\n\n.. warning::\n    :func:`new_tensor` always copies :attr:`data`. If you have a Tensor\n    ``data`` and want to avoid a copy, use :func:`torch.Tensor.requires_grad_`\n    or :func:`torch.Tensor.detach`.\n```\n\n### 6. Args Section\n\nDocument all parameters with type annotations and descriptions:\n\n```python\nArgs:\n    input (Tensor): input tensor of shape :math:`(\\text{minibatch} , \\text{in\\_channels} , iH , iW)`\n    weight (Tensor): filters of shape :math:`(\\text{out\\_channels} , kH , kW)`\n    bias (Tensor, optional): optional bias tensor of shape :math:`(\\text{out\\_channels})`. Default: ``None``\n    stride (int or tuple): the stride of the convolving kernel. Can be a single number or a\n      tuple `(sH, sW)`. Default: 1\n```\n\n**Formatting rules:**\n- Parameter name in **lowercase**\n- Type in parentheses: `(Type)`, `(Type, optional)` for optional parameters\n- Description follows the type\n- For optional parameters, include \"Default: ``value``\" at the end\n- Use double backticks for inline code: ``` ``None`` ```\n- Indent continuation lines by 2 spaces\n\n### 7. Keyword Args Section (if applicable)\n\nSometimes keyword arguments are documented separately:\n\n```python\nKeyword args:\n    dtype (:class:`torch.dtype`, optional): the desired type of returned tensor.\n        Default: if None, same :class:`torch.dtype` as this tensor.\n    device (:class:`torch.device`, optional): the desired device of returned tensor.\n        Default: if None, same :class:`torch.device` as this tensor.\n    requires_grad (bool, optional): If autograd should record operations on the\n        returned tensor. Default: ``False``.\n```\n\n### 8. Returns Section (if needed)\n\nDocument the return value:\n\n```python\nReturns:\n    Tensor: Sampled tensor of same shape as `logits` from the Gumbel-Softmax distribution.\n        If ``hard=True``, the returned samples will be one-hot, otherwise they will\n        be probability distributions that sum to 1 across `dim`.\n```\n\nOr simply include it in the function signature line if obvious from context.\n\n### 9. Examples Section\n\nAlways include examples when possible:\n\n```python\nExamples::\n\n    >>> inputs = torch.randn(33, 16, 30)\n    >>> filters = torch.randn(20, 16, 5)\n    >>> F.conv1d(inputs, filters)\n\n    >>> # With square kernels and equal stride\n    >>> filters = torch.randn(8, 4, 3, 3)\n    >>> inputs = torch.randn(1, 4, 5, 5)\n    >>> F.conv2d(inputs, filters, padding=1)\n```\n\n**Formatting rules:**\n- Use `Examples::` with double colon\n- Use `>>>` prompt for Python code\n- Include comments with `#` when helpful\n- Show actual output when it helps understanding (indent without `>>>`)\n\n### 10. External References\n\nLink to papers or external documentation:\n\n```python\n.. _Link Name:\n    https:\u002F\u002Farxiv.org\u002Fabs\u002F1611.00712\n```\n\nReference them in text: ```See `Link Name`_```\n\n## Method Types\n\n### Native Python Functions\n\nFor regular Python functions, use a standard docstring:\n\n```python\ndef relu(input: Tensor, inplace: bool = False) -> Tensor:\n    r\"\"\"relu(input, inplace=False) -> Tensor\n\n    Applies the rectified linear unit function element-wise. See\n    :class:`~torch.nn.ReLU` for more details.\n    \"\"\"\n    # implementation\n```\n\n### C-Bound Functions (using add_docstr)\n\nFor C-bound functions, use `_add_docstr`:\n\n```python\nconv1d = _add_docstr(\n    torch.conv1d,\n    r\"\"\"\nconv1d(input, weight, bias=None, stride=1, padding=0, dilation=1, groups=1) -> Tensor\n\nApplies a 1D convolution over an input signal composed of several input\nplanes.\n\nSee :class:`~torch.nn.Conv1d` for details and output shape.\n\nArgs:\n    input: input tensor of shape :math:`(\\text{minibatch} , \\text{in\\_channels} , iW)`\n    weight: filters of shape :math:`(\\text{out\\_channels} , kW)`\n    ...\n\"\"\",\n)\n```\n\n### In-Place Variants\n\nFor in-place operations (ending with `_`), reference the original:\n\n```python\nadd_docstr_all(\n    \"abs_\",\n    r\"\"\"\nabs_() -> Tensor\n\nIn-place version of :meth:`~Tensor.abs`\n\"\"\",\n)\n```\n\n### Alias Functions\n\nFor aliases, simply reference the original:\n\n```python\nadd_docstr_all(\n    \"absolute\",\n    r\"\"\"\nabsolute() -> Tensor\n\nAlias for :func:`abs`\n\"\"\",\n)\n```\n\n## Common Patterns\n\n### Shape Documentation\n\nUse LaTeX math notation for tensor shapes:\n\n```python\n:math:`(\\text{minibatch} , \\text{in\\_channels} , iH , iW)`\n```\n\n### Reusable Argument Definitions\n\nFor commonly used arguments, define them once and reuse:\n\n```python\ncommon_args = parse_kwargs(\n    \"\"\"\n    dtype (:class:`torch.dtype`, optional): the desired type of returned tensor.\n        Default: if None, same as this tensor.\n\"\"\"\n)\n\n# Then use with .format():\nr\"\"\"\n...\n\nKeyword args:\n    {dtype}\n    {device}\n\"\"\".format(**common_args)\n```\n\n### Template Insertion\n\nInsert reproducibility notes or other common text:\n\n```python\nr\"\"\"\n{tf32_note}\n\n{cudnn_reproducibility_note}\n\"\"\".format(**reproducibility_notes, **tf32_notes)\n```\n\n## Complete Example\n\nHere's a complete example showing all elements:\n\n```python\ndef gumbel_softmax(\n    logits: Tensor,\n    tau: float = 1,\n    hard: bool = False,\n    eps: float = 1e-10,\n    dim: int = -1,\n) -> Tensor:\n    r\"\"\"\n    Sample from the Gumbel-Softmax distribution and optionally discretize.\n\n    Args:\n        logits (Tensor): `[..., num_features]` unnormalized log probabilities\n        tau (float): non-negative scalar temperature\n        hard (bool): if ``True``, the returned samples will be discretized as one-hot vectors,\n              but will be differentiated as if it is the soft sample in autograd. Default: ``False``\n        dim (int): A dimension along which softmax will be computed. Default: -1\n\n    Returns:\n        Tensor: Sampled tensor of same shape as `logits` from the Gumbel-Softmax distribution.\n            If ``hard=True``, the returned samples will be one-hot, otherwise they will\n            be probability distributions that sum to 1 across `dim`.\n\n    .. note::\n        This function is here for legacy reasons, may be removed from nn.Functional in the future.\n\n    Examples::\n        >>> logits = torch.randn(20, 32)\n        >>> # Sample soft categorical using reparametrization trick:\n        >>> F.gumbel_softmax(logits, tau=1, hard=False)\n        >>> # Sample hard categorical using \"Straight-through\" trick:\n        >>> F.gumbel_softmax(logits, tau=1, hard=True)\n\n    .. _Link 1:\n        https:\u002F\u002Farxiv.org\u002Fabs\u002F1611.00712\n    \"\"\"\n    # implementation\n```\n\n## Quick Checklist\n\nWhen writing a PyTorch docstring, ensure:\n\n- [ ] Use raw string (`r\"\"\"`)\n- [ ] Include function signature on first line\n- [ ] Provide brief description\n- [ ] Document all parameters in Args section with types\n- [ ] Include default values for optional parameters\n- [ ] Use Sphinx cross-references (`:func:`, `:class:`, `:meth:`)\n- [ ] Add mathematical formulas if applicable\n- [ ] Include at least one example in Examples section\n- [ ] Add warnings\u002Fnotes for important caveats\n- [ ] Link to related module class with `:class:`\n- [ ] Use proper math notation for tensor shapes\n- [ ] Follow consistent formatting and indentation\n\n## Common Sphinx Roles Reference\n\n- `:class:\\`~torch.nn.Module\\`` - Class reference\n- `:func:\\`torch.function\\`` - Function reference\n- `:meth:\\`~Tensor.method\\`` - Method reference\n- `:attr:\\`attribute\\`` - Attribute reference\n- `:math:\\`equation\\`` - Inline math\n- `:ref:\\`label\\`` - Internal reference\n- ``` ``code`` ``` - Inline code (use double backticks)\n\n## Additional Notes\n\n- **Indentation**: Use 4 spaces for code, 2 spaces for continuation of parameter descriptions\n- **Line length**: Try to keep lines under 100 characters when possible\n- **Periods**: End sentences with periods, but not the signature line\n- **Backticks**: Use double backticks for code: ``` ``True`` ``None`` ``False`` ```\n- **Types**: Common types are `Tensor`, `int`, `float`, `bool`, `str`, `tuple`, `list`, etc.\n",{"name":5,"description":7},"main","def8531e65114c0fca8fb8551c1871ee0eed705c","skills\u002Faiskillstore\u002Fmarketplace\u002Fpytorch\u002Fdocstring",24,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub","https:\u002F\u002Fskillshub.wtf","https:\u002F\u002Fgithub.com\u002FComeOnOliver","AI & Blockchain Engineer\r\n","2026-06-24 22:07:19",{"source":8,"skillName":5,"commands":52,"prompt":62,"zipAvailable":63},[53,56,59],{"tool":54,"command":55},"npx","npx skills add ComeOnOliver\u002Fskillshub --skill docstring",{"tool":57,"command":58},"bunx","bunx skills add ComeOnOliver\u002Fskillshub --skill docstring",{"tool":60,"command":61},"pnpm","pnpm dlx skills add ComeOnOliver\u002Fskillshub --skill docstring","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fpytorch\u002Fdocstring\u002FSKILL.md",true,[65,71],{"path":66,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":69,"sourceHtmlUrl":70},"audit_output.json","REFERENCE","参考文档",7023,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fpytorch\u002Fdocstring\u002Faudit_output.json",{"path":72,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":73,"sourceHtmlUrl":74},"skill-report.json",9089,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fpytorch\u002Fdocstring\u002Fskill-report.json",[76,88,98,107,113,120],{"skillNo":77,"name":78,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":79,"categories":80,"keywords":84,"publishedAt":37},"01M6FKJN13GMG4KY57J3QD8GY5","model-hierarchy-skill","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzscole\u002Fmodel-hierarchy-skill\u002Fmodel-hierarchy-skill\u002FSKILL.md",[81],{"categoryNo":82,"categoryName":83,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[85,86,87],"model","model hierarchy","model hierarchy skill",{"skillNo":89,"name":90,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":91,"categories":92,"keywords":94,"publishedAt":37},"01M6FKJJJ6GCAMR4PPPRD12M5X","zoom-mcp","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-mcp\u002FSKILL.md",[93],{"categoryNo":82,"categoryName":83,"taxonomyType":21,"taxonomyTypeDesc":22},[95,96,97],"MCP","zoom","zoom mcp",{"skillNo":99,"name":100,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":101,"categories":102,"keywords":103,"publishedAt":37},"01M6FKJE3KYT3KPEZMEEHYKA6K","zoom-apps-sdk","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-apps-sdk\u002FSKILL.md",[],[104,105,106,96],"sdk","zoom apps sdk","apps",{"skillNo":108,"name":109,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":110,"categories":111,"keywords":112,"publishedAt":37},"01M6FKJ9EDH9Q5VWDF8HAJRSP0","windows","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwindows\u002FSKILL.md",[],[109],{"skillNo":114,"name":115,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":116,"categories":117,"keywords":119,"publishedAt":37},"01M6FKJ666BEEFC3AE9GJ72Q93","whiteboard","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwhiteboard\u002FSKILL.md",[118],{"categoryNo":82,"categoryName":83,"taxonomyType":21,"taxonomyTypeDesc":22},[115],{"skillNo":121,"name":122,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":123,"categories":124,"keywords":125,"publishedAt":37},"01M6FKJ21WFCDGTJQ2Q91T9DVW","websockets","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwebsockets\u002FSKILL.md",[],[122]]