chore(seo): retarget PyPI metadata for category-search discovery#56
Merged
Conversation
The Python adoption side has been lagging TypeScript materially (PyPI flat for ~6 weeks pre-source-change; cycles-client-python at 157 unique GitHub cloners vs cycles-client-typescript at 288). Diagnostic showed the biggest sub-gap is discovery: Cycles doesn't rank for natural Python search queries while named competitors (AgentBudget, AgentGuard, agent-cost-guardrails) do. The brand-led PyPI description was a contributor. Three changes: 1. Description rewritten to lead with the literal category-search phrase "Python AI agent budget control" instead of the brand-led "Python client for the Cycles budget-management protocol." 2. Keywords expanded from 12 to 21, organized into three groups: category-search keywords (ai-agent, agent-budget, budget-control, cost-control, cost-enforcement, spending-limit, llm-cost, runtime-authority, action-control, multi-tenant), framework targeting (langchain, langgraph, crewai, autogen, openai-agents, mcp, openai, anthropic), and brand (cycles, runcycles). Drops `metering` (low search volume) and adds the missing framework tags. 3. Classifier added: Topic :: Scientific/Engineering :: Artificial Intelligence — standard PyPI classifier for AI/ML packages, materially improves browse-by-category discovery. Takes effect on next PyPI publish (version bump required). Suggest 0.4.0 → 0.4.1 since this is metadata-only. Companion change: GitHub topics already updated separately (governance dropped, mcp added) to mirror cycles-client-typescript's topic set.
Metadata-only release. Bumps pyproject.toml version 0.4.0 → 0.4.1 and adds the corresponding CHANGELOG and AUDIT.md entries for the PyPI discovery-metadata refresh shipped earlier in this branch. No code, no test, no protocol changes — wire format and public API are identical to 0.4.0. Ready for `python -m build` + `twine upload` on merge.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Phase 1.2 of the Python-gap closing plan. Updates
pyproject.tomlmetadata so the package is findable for natural Python search queries, not just brand-led ones.Why
Diagnostic on the runcycles repo data showed the biggest Python sub-gap is discovery, not SDK feature parity. Cycles doesn't rank for queries like "Python AI agent budget control" or "spending limit AI agent" while named competitors (AgentBudget, AgentGuard, agent-cost-guardrails) do. The brand-led description and missing keywords were contributors.
Three changes
Description rewritten to lead with the literal category-search phrase:
"Python client for the Cycles budget-management protocol""Python AI agent budget control — enforce LLM cost limits, tool permissions, and multi-tenant policies before agent actions execute."Keywords expanded 12 → 21, organized into three groups:
ai-agent,agent-budget,agent-governance,budget-control,cost-control,cost-enforcement,spending-limit,llm-cost,runtime-authority,action-control,multi-tenantlangchain,langgraph,crewai,autogen,openai-agents,mcp,openai,anthropiccycles,runcyclesDrops
metering(low search volume); adds missing framework tags (langgraph,crewai,autogen,openai-agents,mcp).Classifier added:
Topic :: Scientific/Engineering :: Artificial Intelligence— standard PyPI classifier for AI/ML packages, improves browse-by-category discovery.When this takes effect
On next PyPI publish (version bump required). Suggest 0.4.0 → 0.4.1 since this is metadata-only and ships no behavior change.
Companion changes (already applied separately)
governancedropped,mcpadded (now mirrorscycles-client-typescript).Test plan
runcyclessurfaces in results within ~1 week.cycles-client-pythonunique cloners + PyPI weekly install rate over the next 30 days; target +50% on each as the discovery work compounds.