Agent skill

A2ui Release Python

by a2ui-project in a2ui-project/a2ui

Releases the Python SDKs (a2ui-core, a2ui-agent-sdk) to PyPI by running preflight checks, dispatching the release workflow as a dry run, confirming with the maintainer, publishing, and following the…

Apache-2.0Auto-check passedDevelopment

Install A2ui Release Python

skills CLI
$ npx skills add a2ui-project/a2ui --skill a2ui-release-python -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install a2ui-project/a2ui a2ui-release-python --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/a2ui-project/a2ui.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/a2ui-release-python .claude/skills/a2ui-release-python && rm -rf skills-src

Use ~/.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/

Facts

Skill name
a2ui-release-python
GitHub stars
17k
Token cost
~4.2k tokens
SKILL.md length
2,037 words
Files
1
Skills in repo
20
Repo updated
First seen
Licence
Apache-2.0

At a glance

Releases the Python SDKs (a2ui-core, a2ui-agent-sdk) to PyPI by running preflight checks, dispatching the release workflow as a dry run, confirming with the maintainer, publishing, and following the…

  • Works in 6 steps: Work out what is being released → Preflight locally → Dry run → …
  • Release a Python SDK version
  • SKILL.md covers Step 1: Work out what is being…, Step 2: Preflight locally, Step 3: Dry run and Step 4: Confirm with the…, plus 4 more sections
  • Calls git, gh and python3; needs GITHUB_TOKEN

What it does

A2ui Release Python is an agent skill from a2ui-project/a2ui. Releases the Python SDKs (a2ui-core, a2ui-agent-sdk) to PyPI by running preflight checks, dispatching the release workflow as a dry run, confirming with the maintainer, publishing, and following the changelog pull request through to merge. Use when asked to cut, publish, or release a Python SDK version.

Its SKILL.md is about 4.2k 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 Building AI agents, Changelog and release notes and Pull requests. It works with Python. The licence is Apache-2.0.

When your agent uses it

  • Release a Python SDK version
  • Tasks that involve Building AI agents
  • Tasks that involve Changelog and release notes

Example prompts

  • “Use the a2ui-release-python skill to release the Python SDKs (a2ui-core, a2ui-agent-sdk) to PyPI by running preflight checks, dispatching the…”
  • “/a2ui-release-python”

Requirements

  • Python 3
  • A credential in GITHUB_TOKEN

Workflow steps

6 steps, taken from the step headings in SKILL.md.

  1. Work out what is being released
  2. Preflight locally
  3. Dry run
  4. Confirm with the maintainer
  5. Publish
  6. Follow through

What it can do on your machine

Read from SKILL.md and the folder at commit ae466ff. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Shell commands in SKILL.md call:

    • git
    • gh
    • python3
    • uv
    • gcloud

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • pypi.org

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • GITHUB_TOKEN

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

A2ui Release Python loads about 4.2k tokens when it runs. Until then it costs about 81 tokens; SKILL.md has 2,037 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~81
When it runs · the whole SKILL.md, loaded when a task matches
~4.2k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from a2ui-project/a2ui at commit ae466ff, republished under its Apache-2.0 licence (© a2ui-project). 2,037 words, ~4,231 tokens.

Download SKILL.mdSave it as .claude/skills/a2ui-release-python/SKILL.md (or your agent's skills folder).
name
a2ui-release-python
description
Releases the Python SDKs (a2ui-core, a2ui-agent-sdk) to PyPI by running preflight checks, dispatching the release workflow as a dry run, confirming with the maintainer, publishing, and following the changelog pull request through to merge. Use when asked to cut, publish, or release a Python SDK version.

Releasing the A2UI Python SDKs

This skill turns a one-line request such as "release a2ui-core patch" or "release the Python SDKs" into the full release sequence.

Publishing is done by the Release Python SDKs workflow. This skill does not reimplement any of it. Its job is the part the workflow cannot do for itself: choosing the bump, catching the problems that a workflow run would discover too late, and following through afterwards.

Background for anything not covered here: docs/contributing/release.md.

[!CAUTION] Publishing to PyPI is irreversible. A version can be yanked but never reused or deleted. Step 4 is a mandatory stop. Never dispatch a run with dry_run: false without an explicit go-ahead from the maintainer in the current conversation.

What runs where

The workflow performs the release. Nothing here does. Building, tagging, pushing tags, staging in the Artifact Registry and triggering the Exit Gate all happen inside release-pypi.yml, and only there. It could not be otherwise: the Exit Gate authenticates by matching the OIDC claim …/release-pypi.yml@refs/heads/main, so a local upload has no credentials to use.

Run locallyRun by the workflow
release_version.py notesrelease_version.py plan (authoritative)
release_version.py plan (preview only)release_version.py check
release_version.py check (preview only)release_version.py cut-changelog
gh workflow run, gh run view, gh pr listrelease_artifacts.py, confirm_pypi.py
uv build, twine upload, git tag, git push

The local calls are limited to the read-only subcommands notes, next, current, tag, plan and check. They exist to answer two questions before spending a CI run: is there anything to release, and will preflight reject it.

[!IMPORTANT] A local plan is a prediction, not the release. It is computed from the tags in the local checkout, so it is only as current as the last fetch — which is why Step 1 fetches first. The plan the workflow computes is the one that counts, and Step 3 reads it back out of the run before anyone approves it.

Never run cut-changelog --write, git tag, git push, uv build or twine by hand to perform a release. If the workflow cannot do it, fix the workflow.

[!IMPORTANT] One exception, and it is deliberate: the changelog pull request has to be opened by a person, not by the workflow. GitHub does not start workflow runs for events caused by GITHUB_TOKEN, so a pull request the workflow opened would never get the required checks and could never be merged. The workflow pushes the branch; Step 6 opens the pull request.


Step 1: Work out what is being released

Two things are needed: PACKAGE (a2ui-core, a2ui-agent-sdk, or both) and BUMP (patch, minor, or major). Derive both from the changelogs. Never infer them from the phrasing of the request.

Fetch first. Versions are derived from tags, so every number below is wrong if the checkout is behind:

bash
git fetch origin main --tags
bash
python3 .github/scripts/release_version.py notes --package a2ui-core
python3 .github/scripts/release_version.py notes --package a2ui-agent-sdk

Choose the packages. Release only those with a non-empty ## Unreleased. Empty output means that package has nothing to release, whatever was asked for. A plural request such as "release the Python SDKs" does not mean both — if only one has pending entries, that one is the release. If neither does, stop and say so.

Check the exit status, not just the output. The two failure shapes are different answers:

ResultMeaningDo
exit 0, outputEntries pendingRelease this package
exit 0, no output## Unreleased is emptySkip this package
exit 1, error: on stderrChangelog is malformed, usually a missing ## Unreleased headingStop. Report it and do not dispatch.

[!NOTE] Dispatching both when one side is empty is not dangerous, just wasteful. The plan builds, then preflight rejects the empty package and the run fails several minutes in. The check above costs a second.

Choose the bump. Read the entries: fixes only means patch, new features mean minor, a breaking change means major. Preview the result with plan, which returns exactly what the workflow will compute — version, tag and release notes for every selected package:

bash
python3 .github/scripts/release_version.py plan --package "${PACKAGE}" --bump "${BUMP}"

[!IMPORTANT] both applies one bump level to both packages. The workflow takes a single bump input, so build_plan raises both versions by the same amount. When the two warrant different levels — say fixes in a2ui-core and a feature in a2ui-agent-sdk — there is no single right answer. Put the choice to the maintainer:

  • Take the higher level for both. One release, one changelog pull request. The cost is an over-bumped version on the quieter package.
  • Run two single-package releases. Correct versioning, but the changelog pull request from the first must be merged before starting the second, or the Step 2 guard will block it. Release a2ui-core first if both are going out, since a2ui-agent-sdk depends on it.

Put the proposal to the maintainer with ask_question, showing the pending entries and the resulting versions, and let them correct it.


Step 2: Preflight locally

These checks cost seconds and catch the failures that are expensive to hit mid-run. Run all of them before dispatching anything.

1. No outstanding changelog branch from a previous release. This is the one the workflow cannot detect. Until the last release's changelog lands, the entries are still under ## Unreleased, and this release would repeat them in its notes.

bash
git ls-remote --heads origin 'release/changelog-*'

Check the branch, not the pull request: the release stops at the branch, so there may be no pull request yet. The repository deletes branches on merge, so empty output means the last changelog landed.

Any output means stop. Get that change merged first — open the pull request if nobody has — then start over from Step 1, because the pending entries will have changed.

2. The checkout is clean and matches the remote. Step 1 already fetched. The concern here is local edits: the workflow reads the changelogs and tags from main, so an uncommitted changelog change makes the local preview describe a release that is not the one that will go out.

bash
git status --short --branch

Uncommitted changes under python/*/CHANGELOG.md, or a branch behind origin/main, mean stop and say what was found.

3. The repository's own preflight passes. Use the version from Step 1. This is the same check the workflow runs, so a failure here is a failure there:

bash
python3 .github/scripts/release_version.py check --package "${PACKAGE}" --version "${VERSION}"

It rejects an empty ## Unreleased, a version that already has a tag, and an a2ui-core version outside the range that a2ui-agent-sdk pins.

[!IMPORTANT] That last one is the usual surprise. An a2ui-core minor or major bump needs the a2ui-core>=... pin in a2ui_agent/pyproject.toml widened in the same release. That is a code change requiring its own reviewed pull request, so it has to land before the release, not during it. If the check reports this, stop and tell the maintainer what needs widening.


Step 3: Dry run

A dry run builds and stages the artifacts in the Exit Gate Artifact Registry, removes them again, and pushes nothing.

bash
gh workflow run release-pypi.yml --repo a2ui-project/a2ui --ref main \
  -f package="${PACKAGE}" -f bump="${BUMP}" -f dry_run=true

Wait a few seconds, then find the run and watch it:

bash
gh run list --repo a2ui-project/a2ui --workflow=release-pypi.yml --limit 1 \
  --json databaseId,status,url
gh run watch "${RUN_ID}" --repo a2ui-project/a2ui --exit-status

[!TIP] Use the full databaseId. A truncated run ID returns 404.

If it fails, read the failing step's log and consult Troubleshooting below before retrying.

When it passes, read back the plan the run actually computed. The dry run does not upload the plan artifact, and step summaries are not available over the API, but the plan step prints the JSON into the log:

bash
gh run view "${RUN_ID}" --repo a2ui-project/a2ui --log \
  | grep -A 20 'Build the release plan'

Compare it against the local plan output from Step 1. They are computed the same way and should agree. If they differ, a tag landed in between — stop and work out why before going any further.


Show full SKILL.md (849 more words)Show less

Step 4: Confirm with the maintainer

Stop here. Show the maintainer:

  • the exact versions and tags from the dry run's plan,
  • the changelog entries that will become the release notes,
  • that the dry run passed.

Quote the version numbers in full, for example a2ui-agent-sdk 0.7.0. Do not describe the release only as "a minor bump" — the bump level is the input, the version is the irreversible consequence, and it is the version the maintainer needs to approve.

Then ask for explicit confirmation to publish. Proceed only on a clear yes.


Step 5: Publish

bash
AUTHOR_NAME=$(git config user.name)
AUTHOR_EMAIL=$(git config user.email)
gh workflow run release-pypi.yml --repo a2ui-project/a2ui --ref main \
  -f package="${PACKAGE}" -f bump="${BUMP}" -f dry_run=false \
  -f author_name="${AUTHOR_NAME}" -f author_email="${AUTHOR_EMAIL}"

Watch it as in Step 3. The run pushes the tags, stages the artifacts, uploads the manifest that triggers the Exit Gate, and creates the GitHub releases.

Four jobs follow:

JobWhat it doesIf it fails
buildRuns tests and builds distributionsTest failure or malformed distribution. See Troubleshooting.
releaseStages, tags, and triggers publishingReal failure. See Troubleshooting.
confirmPolls PyPI, then links the GitHub releasesA timeout is not a failure. The hourly Confirm PyPI publication workflow finishes the job.
changelogPushes the changelog branchPublishing already succeeded. Cut the changelog by hand and open the PR yourself.

[!IMPORTANT] The run stays active for several minutes after release goes green, and that is normal. Triggering the Exit Gate is not publishing. The Exit Gate works asynchronously and reports only by email, so the confirm job sits and polls PyPI every 30 seconds for up to 20 minutes waiting for the version to appear.

gh run watch blocks until all three jobs finish, so it is the wait. Let it run. Do not poll PyPI in a loop alongside it, and do not report the release as finished — or as failed — while confirm is still in progress.


Step 6: Follow through

A release is not done when the workflow goes green.

  1. Confirm the version is live. The waiting has already happened on the runner, so read the confirm job's outcome rather than starting a fresh wait:

    • confirm succeeded — the version is on PyPI and the GitHub releases have been updated with links. Verify once and move on:

      bash
      curl -s -o /dev/null -w '%{http_code}\n' "https://pypi.org/pypi/${PYPI_NAME}/${VERSION}/json"

      200 confirms it. A 404 here, after confirm reported success, is a CDN lag of a minute or two — wait briefly and check again.

    • confirm timed out — publishing took longer than 20 minutes. This is not a failed release. The artifacts are staged and the Exit Gate still has them. Do not re-run the release, and do not try to publish the version again: that would burn a version number. Tell the maintainer it is outstanding, and leave it to the hourly Confirm PyPI publication workflow, which finds the release by its pending marker and links it once PyPI catches up. The Exit Gate also emails a2ui-core-working-group@google.com with the outcome either way.

    • confirm failed for another reason — read the log. The publish itself may still have succeeded, so check PyPI before concluding anything.

  2. Open the changelog pull request and get it merged. The release pushed the branch but deliberately did not open the pull request — see "What runs where". Open it yourself:

    bash
    BRANCH=$(git ls-remote --heads origin 'release/changelog-*' \
      | sed 's#.*refs/heads/##')
    gh pr create --repo a2ui-project/a2ui --base main --head "$BRANCH" \
      --title "chore(release): changelog for ${RELEASED}" \
      --body "Moves the \`## Unreleased\` entries under the released versions."

    Check the diff touches only CHANGELOG.md files, then ask the maintainer to review it. Do not leave it open: Step 2 blocks the next release until the branch is gone.

  3. Report the published versions, the GitHub release links, and the changelog pull request link.


Troubleshooting

could not find any workflows named release-pypi.yml — the workflow is only dispatchable once it is on main. Check it has merged.

HTTP 403 from Artifact Registry — the Exit Gate allowlists a2ui-project/a2ui only. This is the expected result on a fork, and not a bug. On the real repository it means the builder identity no longer matches; see go/oss-exit-gate-builders.

Permission denied or a failed OIDC exchange — the Exit Gate matches the workflow path and branch exactly:

github_workflow:a2ui-project/a2ui/.github/workflows/release-pypi.yml@refs/heads/main

Renaming or moving the workflow file breaks releases until the internal config is updated. It also cannot be triggered from a branch or a tag, only main.

... is already on PyPI — the version was published previously. It cannot be republished. Work out why the tag series and PyPI disagree before retrying.

A dry run or failed staging left artifacts behind — the cleanup step runs even on partial failure, but if it was itself skipped, remove the staged version by hand:

bash
gcloud artifacts versions delete "${VERSION}" --package="${PYPI_NAME}" \
  --repository=a2ui--pypi --location=us --project=oss-exit-gate-prod --quiet

Rules

  • Never edit a version by hand. Versions come from git tags via hatch-vcs, and the workflow verifies the built artifacts against the version it planned.
  • Never push tags or run the release scripts locally to publish. The scripts under .github/scripts/ are safe to run read-only for notes, next, current, tag, and check. Everything else belongs to the workflow.
  • Never dispatch dry_run: false without the Step 4 confirmation.
  • If the maintainer asks to skip the dry run, push back once: it is the only rehearsal before an irreversible publish. Defer if they insist.

© a2ui-project, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/a2ui-release-python of a2ui-project/a2ui.

Open the folder on GitHubat commit ae466ff

Compare with similar skills

A2ui Release 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.

A2ui Release Python compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
A2ui Release Python this skilla2ui-project/a2ui17k—~4.2kAutomated safety check: PassApache-2.0
pybind11 Release Preparationpybind/pybind1118k—~1.7kAutomated safety check: PassCustom licence
Coding Agentmastra-ai/mastra29k—~2.3kAutomated safety check: PassCustom licence
Changelog Draft Generatorwarpdotdev/warp65k1 repos~3.1kAutomated safety check: PassAGPL-3.0
StarRocks Release NotesStarRocks/starrocks12k—~1.9kAutomated safety check: NotesApache-2.0
Git Workflow and Versioningaddyosmani/agent-skills102k2 repos~3.5kAutomated safety check: NotesMIT

Similar skills

  • Opens the pybind11 release-preparation pull request: picking the release base, bumping the version in common.h and integrating the changelog, following docs/release.rst.

    18k GitHub stars~1.7k tokensUpdated today
    DevelopmentAuto-check passed
  • Coding Agent

    mastra-ai/mastra

    Authoring playbook for building agents that write, edit, review, or refactor code.

    29k GitHub stars~2.3k tokensUpdated today
    DevelopmentAuto-check passed
  • Builds a reviewable changelog draft from the PRs merged between two release cuts, with contributor attribution and Markdown and JSON outputs.

    65k GitHub starsUsed in 1 repo~3.1k tokens
    DevelopmentAuto-check passed
  • StarRocks Release Notes

    StarRocks/starrocks

    Drafts English release notes for a StarRocks patch release from the PRs merged into its release branch, then opens a documentation PR and hands translation to /translate.

    12k GitHub stars~1.9k tokensUpdated today
    DevelopmentAuto-check: notes
  • Git Workflow and Versioning

    addyosmani/agent-skills

    Sets git habits for every change: short-lived branches, atomic commits with descriptive messages, clean pull requests, plus versioning, tagging and changelogs for releases.

    102k GitHub starsUsed in 2 repos~3.5k tokens
    DevelopmentAuto-check: notes
  • Release Skills

    nexmoe/eve

    Universal release workflow. An agent skill from nexmoe/eve.

    421 GitHub starsUsed in 3 repos~3.3k tokens
    DevelopmentAuto-check passed

More from a2ui-project/a2ui

All 20 skills in this repo
  • A2ui Remediate Problem

    a2ui-project/a2ui

    Remediates a specific recommendation from an A2UI compliance report issue, or resolves any general GitHub issue, by inspecting context, implementing minimal targeted fixes, verifying tests, creating…

    17k GitHub stars~1.5k tokensUpdated today
    Auto-check passed
  • A2ui Issue Triage

    a2ui-project/a2ui

    Automates the triage of GitHub issues in the A2UI repository.

    17k GitHub stars~1.5k tokensUpdated today
    Auto-check passed
  • A2ui Audit

    a2ui-project/a2ui

    Main coordination skill to run the blueprint compliance, documentation synchronization, and test quality audits, posting the combined results as a labeled GitHub issue.

    17k GitHub stars~1.6k tokensUpdated today
    Auto-check passed
  • Iterative benchmarking, evaluation, and algorithmic optimization of alternative A2UI inference formats (such as Express, Atom, and Elemental).

    17k GitHub stars~985 tokensUpdated today
    Auto-check passed
  • Automated generator for strongly typed Pydantic v2 data models and basic catalogs across any A2UI protocol version (v0.8, v0.9, v0.9.1, v1.0, etc.).

    17k GitHub stars~2.3k tokensUpdated today
    Auto-check passed
  • A2ui Python Development

    a2ui-project/a2ui

    Grounding, architectural standards, Python best practices, package facade conventions, testing, and verification workflows for developing any Python code across the entire A2UI repository (core…

    17k GitHub stars~2.4k tokensUpdated today
    Auto-check passed

Works with

Categories

Questions about A2ui Release Python

What does A2ui Release Python do?

Releases the Python SDKs (a2ui-core, a2ui-agent-sdk) to PyPI by running preflight checks, dispatching the release workflow as a dry run, confirming with the maintainer, publishing, and following the…. A2ui Release Python is an agent skill from a2ui-project/a2ui. Releases the Python SDKs (a2ui-core, a2ui-agent-sdk) to PyPI by running preflight checks, dispatching the release workflow as a dry run, confirming with the maintainer, publishing, and following the changelog pull request through to merge.

When should I use A2ui Release Python?

A2ui Release Python fits situations like: release a Python SDK version; tasks that involve Building AI agents; tasks that involve Changelog and release notes.

How do I install A2ui Release Python in Claude Code?

Run `npx skills add a2ui-project/a2ui --skill a2ui-release-python -a claude-code`. Or copy the skill folder (.agents/skills/a2ui-release-python in a2ui-project/a2ui) into .claude/skills/a2ui-release-python in your project. Claude Code loads it when a task matches its description.

How do I install A2ui Release Python in Codex?

Run `npx skills add a2ui-project/a2ui --skill a2ui-release-python -a codex`. Or copy the skill folder (.agents/skills/a2ui-release-python in a2ui-project/a2ui) into .agents/skills/a2ui-release-python in your project. Codex loads it when a task matches its description.

Can I use A2ui Release Python in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add a2ui-project/a2ui --skill a2ui-release-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/a2ui-release-python, .gemini/skills/a2ui-release-python, .github/skills/a2ui-release-python and .opencode/skills/a2ui-release-python in your project.

What does A2ui Release Python need to run?

Going by SKILL.md and its folder, A2ui Release Python needs the command-line tools its instructions call (git, gh, python3, uv and gcloud) and credentials named GITHUB_TOKEN. Our summary lists: Python 3; A credential in GITHUB_TOKEN.

Does A2ui Release Python access the network?

SKILL.md names 1 domain. As links in the text: pypi.org. This is read from the text; nothing was executed.

Is A2ui Release Python safe to install?

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.

What licence does A2ui Release Python use?

A2ui Release Python is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does A2ui Release Python use?

About 4.2k tokens (SKILL.md is roughly 17k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to A2ui Release Python?

Skills that share tags, products or a category with A2ui Release Python: pybind11 Release Preparation (pybind/pybind11, 18k stars), Coding Agent (mastra-ai/mastra, 29k stars), Changelog Draft Generator (warpdotdev/warp, 65k stars) and StarRocks Release Notes (StarRocks/starrocks, 12k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains A2ui Release Python?

a2ui-project (a GitHub organization) maintains it in a2ui-project/a2ui, which has 16,602 GitHub stars. The repository holds 20 skills in this directory. The repository was last updated on October 7, 2026.

Source: a2ui-project/a2ui on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.