Adk Style
google/adk-python
Python style and codebase conventions for ADK (Agent Development Kit): private-by-default file visibility, imports, type hints, Pydantic v2 models, formatting, docstrings, logging, async I/O, file…
Follow bocpy commenting and documentation conventions. An agent skill from microsoft/bocpy.
$ npx skills add microsoft/bocpy --skill commenting-c-and-python -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install microsoft/bocpy commenting-c-and-python --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/microsoft/bocpy.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.github/skills/commenting-c-and-python .claude/skills/commenting-c-and-python && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "commenting-c-and-python" agent skill from https://github.com/microsoft/bocpy/tree/main/.github/skills/commenting-c-and-python into .claude/skills/commenting-c-and-python/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "commenting-c-and-python", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/microsoft/bocpy/tree/main/.github/skills/commenting-c-and-pythonType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add microsoft/bocpy --skill commenting-c-and-python -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install microsoft/bocpy commenting-c-and-python --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/microsoft/bocpy.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.github/skills/commenting-c-and-python .agents/skills/commenting-c-and-python && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "commenting-c-and-python" agent skill from https://github.com/microsoft/bocpy/tree/main/.github/skills/commenting-c-and-python into .agents/skills/commenting-c-and-python/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "commenting-c-and-python", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add microsoft/bocpy --skill commenting-c-and-python -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install microsoft/bocpy commenting-c-and-python --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/microsoft/bocpy.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.github/skills/commenting-c-and-python .cursor/skills/commenting-c-and-python && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "commenting-c-and-python" agent skill from https://github.com/microsoft/bocpy/tree/main/.github/skills/commenting-c-and-python into .cursor/skills/commenting-c-and-python/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "commenting-c-and-python", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/microsoft/bocpy.git --path .github/skills/commenting-c-and-python--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add microsoft/bocpy --skill commenting-c-and-python -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install microsoft/bocpy commenting-c-and-python --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/microsoft/bocpy.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.github/skills/commenting-c-and-python .gemini/skills/commenting-c-and-python && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "commenting-c-and-python" agent skill from https://github.com/microsoft/bocpy/tree/main/.github/skills/commenting-c-and-python into .gemini/skills/commenting-c-and-python/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "commenting-c-and-python", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install microsoft/bocpy commenting-c-and-pythonInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add microsoft/bocpy --skill commenting-c-and-python -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/microsoft/bocpy.git skills-src && mkdir -p .github/skills && cp -r skills-src/.github/skills/commenting-c-and-python .github/skills/commenting-c-and-python && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "commenting-c-and-python" agent skill from https://github.com/microsoft/bocpy/tree/main/.github/skills/commenting-c-and-python into .github/skills/commenting-c-and-python/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "commenting-c-and-python", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add microsoft/bocpy --skill commenting-c-and-python -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install microsoft/bocpy commenting-c-and-python --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/microsoft/bocpy.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.github/skills/commenting-c-and-python .opencode/skills/commenting-c-and-python && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "commenting-c-and-python" agent skill from https://github.com/microsoft/bocpy/tree/main/.github/skills/commenting-c-and-python into .opencode/skills/commenting-c-and-python/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "commenting-c-and-python", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
commenting-c-and-pythonFollow bocpy commenting and documentation conventions. An agent skill from microsoft/bocpy.
Commenting C And Python is an agent skill from microsoft/bocpy, published by the product's own GitHub organization. Follow bocpy commenting and documentation conventions. Use when: adding comments to C or Python files, writing docstrings, documenting structs or classes, adding Doxygen doc-comments, using Sphinx param style, suppressing linter warnings with noqa, or following flake8 style rules (Q000, D205, D209, N802).
Its SKILL.md is about 3.3k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Development, covering Technical documentation, Linting and formatting and Plain language and style rules. It works with Python. The repository describes itself as: Behavior-Oriented Concurrency in Python. The licence is MIT.
5 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit c8f3ceb. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are python and c).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Commenting C And Python loads about 3.3k tokens when it runs. Until then it costs about 83 tokens; SKILL.md has 1,063 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from microsoft/bocpy at commit c8f3ceb, republished under its MIT licence (© microsoft). 1,063 words, ~3,291 tokens.
.claude/skills/commenting-c-and-python/SKILL.md (or your agent's skills folder).This skill describes the commenting conventions used across the bocpy project.
Follow these patterns when adding or editing comments so the codebase stays
consistent.
_core.c, _math.c)/// StyleEvery non-trivial function gets a Doxygen doc-comment block immediately above
its signature. Use triple-slash /// lines with @ tags in this order:
@brief — one-line summary (sentence case, no trailing period)@details — optional longer explanation@note — optional caveats or side-effects@param — one per parameter (description starts uppercase)@return — what the function returns/// @brief Creates a new BOCTag object from a Python Unicode string
/// @details The result object will not be dependent on the argument in any way
/// (i.e., it can be safely deallocated).
/// @param unicode A PyUnicode object
/// @param queue The queue to associate with this tag
/// @return a new BOCTag object
BOCTag *tag_from_PyUnicode(PyObject *unicode, BOCQueue *queue) {For short helper functions, @brief alone is enough:
/// @brief Convenience method to obtain the interpreter ID
/// @return the ID of the currently running interpreter
static inline PY_INT64_T get_interpid() {Document struct fields with /// @brief (and optionally /// @details) on
the line(s) above the field:
typedef struct boc_message {
/// @brief The tag associated with this message.
/// @details This will be used by processes calling receive() and will create
/// an affinity with a queue.
struct boc_tag *tag;
/// @brief whether the contents of this message were pickled
bool pickled;
/// @brief the threadsafe cross-interpreter data (the contents of the message)
XIDATA_T *xidata;
} BOCMessage;// StyleAn inline comment defaults to a single line of at most 120 characters, or it is deleted. Verbose multi-line inline comments rot as the code beneath them changes and make the code harder to read, not easier. Place the comment on the line above the code it describes, at the current indentation level:
// swap the new node in as the new head
node->next = head;A multi-line // inline comment is permitted only when it records
something the code cannot express and that does not fit on one line:
a non-obvious concurrency invariant (2PL lock ordering, MCS handoff,
memory-ordering rationale), the rationale above a version-gate
#if/#elif ladder, an X-macro / clang-format off table boundary,
or a reference anchor that needs a line of context. When in doubt,
collapse to one line. (Doxygen /// / /** */ doc-blocks are
documentation, not inline comments, and are exempt from this rule —
they may carry in-depth prose.)
End-of-line // comments are reserved for preprocessor version
annotations:
#if PY_VERSION_HEX >= 0x030E0000 // 3.14/* */ Block Comments — Sentinel OnlyTraditional block comments are used exclusively as sentinel markers in
PyMethodDef and slot arrays:
{NULL} /* Sentinel */Do not use /* */ for any other purpose.
Multi-line /* */ blocks immediately above an X(...)-style
descriptor table (e.g. the BOC_AGG_OPS, BOC_BINARY_OPS,
BOC_UNARY_OPS, BOC_2AGG_OPS tables in
src/bocpy/_math.c) are permitted as an
exception to the sentinel-only rule. The block must list:
(1) the family's purpose, (2) how to add a new op, (3) the stamped
symbol-naming scheme, and (4) the names in scope inside the per-op
expression.
Short one-phrase descriptions in PyMethodDef tables:
static PyMethodDef CownCapsule_methods[] = {
{"get", CownCapsule_get, METH_NOARGS, "internal"},
{"set", CownCapsule_set, METH_VARARGS, "internal"},
{"bid", BehaviorCapsule_bid, METH_NOARGS, "Gets the ID for the behavior"},
};Set .m_doc in the PyModuleDef to a short description:
.m_doc = "Provides the underlying C implementation for the core BOC "
"functionality",Use // TODO on its own line, followed by the item(s):
// TODO
// invert 2x2, 3x3, general algorithm for NxN
// det
// traceEvery .py file starts with a single-line triple-quoted docstring.
Sentence case, ends with a period.
"""Behavior-oriented Concurrency.""""""AST transformers that export when-decorated functions as behaviors."""Use a triple-quoted docstring immediately after the class statement. For
simple classes, a single-line docstring is preferred. For complex classes, use a
summary line, a blank line, then a longer description. Sentence case, ends with
a period.
class Cown(Generic[T]):
"""Lightweight wrapper around the underlying cown capsule."""class MainModuleBinder(ast.NodeTransformer):
"""Prepares a main module for transpiling.
This transformer collects the names of classes, functions, imports,
and filters out everything else at the root level.
"""Start with a verb in imperative mood. Single-line for simple functions, multi-line for complex ones. Ends with a period.
Single-line:
def acquire(self):
"""Acquires the cown (required for reading and writing)."""Multi-line (summary + body):
def release(self):
"""Release the cown to the next behavior.
This is called when the associated behavior has completed, and thus can
allow any waiting behavior to run.
If there is no next behavior, then the cown's `last` pointer is set to null.
"""Use Sphinx :param: / :type: / :return: / :rtype: fields for parameter
documentation. This is the single accepted style across the project.
def bind_module(tree: ast.Module, path: str = None) -> MainBindings:
"""Reduce a module to the bindings a worker needs.
:param tree: The source tree
:type tree: ast.Module
:return: A bindings result with code and metadata
:rtype: MainBindings
"""def __init__(self, num_workers: Optional[int], export_dir: Optional[str]):
"""Creates a new Behaviors scheduler.
:param num_workers: The number of worker interpreters to start. If
None, defaults to the number of available cores minus one.
:type num_workers: Optional[int]
:param export_dir: The directory to which the target module will be
exported for worker import. If None, a temporary directory will
be created and removed on shutdown.
:type export_dir: Optional[str]
""".pyi Stub File DocstringsThe stub file __init__.pyi uses Sphinx-style docstrings on every public
function, class, and constant. Constants use an attribute docstring on the line
after the declaration:
TIMEOUT: str
"""Sentinel value returned by :func:`receive` when a timeout occurs."""def send(tag: str, contents: Any):
"""Sends a message.
:param tag: The tag is an arbitrary label that can be used to receive this message.
:type tag: str
:param contents: The contents of the message.
:type contents: Any
"""# CommentsAn inline comment defaults to a single line of at most 120 characters, or it is deleted. Verbose multi-line inline comments rot as the surrounding code changes and reduce readability. Place the comment on the line above the code, at the current indentation:
orphan_cowns = _core.cowns()
if len(orphan_cowns) != 0:
logger.debug("acquiring orphan cowns")
# acquire orphaned cowns so their XIData is freed before teardownA multi-line # inline comment is permitted only when it records
something the code cannot express and that does not fit on one line:
a non-obvious concurrency invariant, a behavior-changing transpiler
rule, the rationale above a version gate, or a reference anchor that
needs context. When in doubt, collapse to one line. Docstrings are
not inline comments and are exempt — they should carry in-depth,
useful documentation across as many lines as the reader needs.
Same-line # comments are acceptable for very short annotations:
except RuntimeError:
pass # already destroyed# noqa: Suppression CommentsSuppress linter warnings with # noqa: CODE at the end of the line.
Place the suppression on the line that contains the violation, not a
surrounding line:
def visit_FunctionDef(self, node: ast.FunctionDef): # noqa: N802# CORRECT — noqa on the line that references the loop variable
@when(acc)
def _(a):
a.value.add(val_to_add) # noqa: B023
# WRONG — noqa on the def line does not suppress the reference on the next line
@when(acc)
def _(a): # noqa: B023
a.value.add(val_to_add) # ← still triggers B023# BEGIN / # END MarkersCode-generation insertion points in worker.py:
# BEGIN boc_export
# END boc_exportThe project enforces style with flake8 (config in .flake8):
| Rule | Setting |
|---|---|
inline-quotes | double — use " not ' (Q000) |
max-line-length | 120 |
docstring-convention | google (with Sphinx :param: fields — napoleon handles both) |
extend-ignore | E203, N812, N817 |
per-file-ignores | test/*: D103 (missing public-function docstring), D403 |
A multi-line docstring must have a summary line, a blank line, then the
body. The closing """ must be on its own line:
# CORRECT
class Foo:
"""Short summary line.
Longer description goes here after the blank line.
"""
# WRONG — triggers D205 and D209
class Foo:
"""This wraps onto a second line
without a blank separator."""Test function names must be lowercase. Even when testing a property like
.T, spell the test name with a lowercase letter:
# CORRECT
def test_t_equals_transpose(self, mat): ...
# WRONG — triggers N802
def test_T_equals_transpose(self, mat): ...| Element | C convention | Python convention |
|---|---|---|
| Function docs | /// @brief ... /// @return | """Imperative summary.""" |
| Struct/class docs | /// @brief above each field | """Single-line or multi-line.""" after class |
| Parameter docs | /// @param name Description | :param name: / :type name: (Sphinx) |
| Inline comments | // on line above code | # on line above code |
| End-of-line | // for preprocessor version notes | # for very short annotations or # noqa: |
| Block comments | /* Sentinel */ only | — |
| Sentence case | @brief starts with uppercase | Docstrings start with uppercase |
| Trailing period | No period on @brief | Docstrings end with a period |
| TODOs | // TODO on its own line | # TODO on its own line |
| Docstring style | — | Sphinx :param: / :type: / :return: / :rtype: |
| Pitfall | Fix |
|---|---|
Using /* */ for documentation blocks in C | Use /// Doxygen-style instead. /* */ is only for /* Sentinel */. |
Using Google-style Args: blocks | Use Sphinx :param: / :type: style instead. The project uses Sphinx autodoc for documentation. |
Omitting the @brief tag in C doc-comments | Always start with /// @brief. It is the minimum for every documented function. |
| Forgetting the trailing period in Python docstrings | All Python docstrings end with a period. |
Adding a trailing period to C @brief lines | C @brief descriptions do not end with a period. |
| Duplicating comments | Do not place a // block that repeats the /// doc-comment below it. Write it once. |
Placing # noqa: on the wrong line | Put it on the line with the actual violation, not a surrounding def or decorator line. |
| Multi-line class docstring without a blank line after the summary | Add a blank line between the summary sentence and the body (D205). Close """ on its own line (D209). |
| Using single quotes in Python | The project enforces double quotes (inline-quotes = double). Use "nan" not 'nan'. |
Assigning Cown(m) to an unused variable | If the return value is not needed (e.g., just releasing the matrix), call Cown(m) without assignment to avoid F841. |
© microsoft, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .github/skills/commenting-c-and-python of microsoft/bocpy.
Open the folder on GitHubat commit c8f3ceb
Commenting C And Python next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Commenting C And Python this skillmicrosoft/bocpy | 200 | — | ~3.3k | Automated safety check: Pass | MIT | |
| Adk Stylegoogle/adk-python | 22k | — | ~748 | Automated safety check: Pass | Apache-2.0 | |
| Python Code Stylewshobson/agents | 40k | — | ~2k | Automated safety check: Pass | MIT | |
| Code Comment GeneratorArabelaTso/Skills-4-SE | 253 | — | ~4.6k | Automated safety check: Pass | Apache-2.0 | |
| Python Style Guideaiskillstore/marketplace | 430 | — | ~2.8k | Automated safety check: Pass | Custom licence | |
| Kedro Babysitkedro-org/kedro | 11k | — | ~4k | Automated safety check: Pass | Custom licence |
google/adk-python
Python style and codebase conventions for ADK (Agent Development Kit): private-by-default file visibility, imports, type hints, Pydantic v2 models, formatting, docstrings, logging, async I/O, file…
wshobson/agents
Python code style, linting, formatting, naming conventions, and documentation standards.
ArabelaTso/Skills-4-SE
Generates meaningful comments and documentation for code to improve maintenance and readability.
aiskillstore/marketplace
Comprehensive Python programming guidelines based on Google's Python Style Guide.
kedro-org/kedro
Run Kedro's local lint / format / type-check / tests on changed files (uses the project's pre-commit hooks, ruff, mypy, pytest, lint-imports, detect-secrets, Make targets — in the right venv), or…
woocommerce/woocommerce
Rules for writing and editing markdown in the WooCommerce repository, with the project's markdownlint settings for headings, lists and code blocks.
microsoft/bocpy
Multi-perspective code review for a branch before merging. An agent skill from microsoft/bocpy.
microsoft/bocpy
Write a C extension whose custom types can live inside a bocpy Cown and travel between worker sub-interpreters.
microsoft/bocpy
Finalize a feature branch for merge. An agent skill from microsoft/bocpy.
microsoft/bocpy
Multi-perspective planning with rebuttal rounds and adversarial review loop.
microsoft/bocpy
Write tests for the bocpy message queue — the lock-free tag-based MPSC ring buffer.
microsoft/bocpy
Think in Behavior-Oriented Concurrency, not threads-and-locks.
Works with
Categories
Follow bocpy commenting and documentation conventions. An agent skill from microsoft/bocpy. Commenting C And Python is an agent skill from microsoft/bocpy, published by the product's own GitHub organization. Follow bocpy commenting and documentation conventions.
Commenting C And Python fits situations like: : adding comments to C; writing docstrings; documenting structs; adding Doxygen doc-comments.
Run `npx skills add microsoft/bocpy --skill commenting-c-and-python -a claude-code`. Or copy the skill folder (.github/skills/commenting-c-and-python in microsoft/bocpy) into .claude/skills/commenting-c-and-python in your project. Claude Code loads it when a task matches its description.
Run `npx skills add microsoft/bocpy --skill commenting-c-and-python -a codex`. Or copy the skill folder (.github/skills/commenting-c-and-python in microsoft/bocpy) into .agents/skills/commenting-c-and-python in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add microsoft/bocpy --skill commenting-c-and-python -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/commenting-c-and-python, .gemini/skills/commenting-c-and-python, .github/skills/commenting-c-and-python and .opencode/skills/commenting-c-and-python in your project.
SKILL.md names no scripts, command-line tools or credentials: Commenting C And Python is instructions for the agent only. Our summary lists: Python 3.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Commenting C And Python is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.3k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Commenting C And Python: Adk Style (google/adk-python, 22k stars), Python Code Style (wshobson/agents, 40k stars), Code Comment Generator (ArabelaTso/Skills-4-SE, 253 stars) and Python Style Guide (aiskillstore/marketplace, 430 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
microsoft (a GitHub organization, an official publisher) maintains it in microsoft/bocpy, which has 200 GitHub stars. The repository holds 9 skills in this directory. The repository was last updated on September 28, 2026.
Source: microsoft/bocpy on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.