Conversation
xsh310
added this pull request to stack #576
September 16, 2026 05:19
`ug skill remove` takes `--skills`/`--location`/`--agents` for non interactive use, but an agent had no way to discover what is configured to fill those flags: `ug status` showed only the MCP scope, as prose, with no machine readable output. Add `ug skill status`, reporting both skill state sources in one place: downloaded skills (grouped by base, sorted by FQN) and the skills MCP scope. `--json` emits a stable schema whose fields map onto the removal flags, and `--path` scopes the downloaded listing. Collecting reconciles the manifest, pruning records whose skill dir was deleted out of band. `ug status` reuses the same collector for a two line summary that points at the new command. Co-authored-by: Isaac <no-reply@databricks.com>
xsh310
force-pushed
the
skills-status-command
branch
from
September 16, 2026 20:51
43b8565 to
0d855db
Compare
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.
What did you change, and why?
Change: Add a new
ug skill statuscommand that reports both sources of configured skills in one place: downloaded skills (from the~/.ucode/skills.jsonmanifest) and the skills MCP scope (fromstate.json). It offers a human report and a--jsonmode, plus a--pathfilter for the downloaded listing.ug statusnow reuses the same collector for a two line skills summary that points at the new command.Why:
ug skill removeaccepts--skills/--location/--agentsfor non interactive use, but an agent had no reliable way to discover what is currently configured to fill those flags.ug statusshowed only the MCP scope, as prose, with no machine readable output, and downloaded skills were absent entirely.ug skill status --jsoncloses that gap with a stable schema whose fields map directly onto the removal flags (fqnto--skills,schemato--location, projectbaseto--path,by_agentkeys to--agents).Design doc:
ai-gateway/scripts/ug_skill_status_design.md(in the universe repo).Notable behavior:
<catalog>.<schema>sits together.skills_state.forget), so the listing only shows skills that are actually installed. Pruning touches only the manifest, never on disk files orstate.json. The dirs exist check moved fromskills_downloadtoskills_stateso the removal picker and status share one definition.How do you know it works?
Testing:
tests/test_skills_status.pydrivescollect/to_json/renderoff a fabricated manifest and MCP state (no network), covering: FQN sort and schema grouping; pruning a record with any missing directory while keeping present ones and leaving on disk files alone;--pathfiltering the downloaded side while still reconciling globally; shared MCP scope collapsing in the human view but staying per agent in JSON; divergent per agent scopes; the JSON field to flag mapping; surfacing an origin workspace that differs from the configured one; and empty/unconfigured states.ug statusskills tests still pass unchanged (the MCP scope labels are preserved).uv run pytestgreen except two failures that are pre existing on the base branch and unrelated to this change (test_claude_smart_routing_v2PTY test andtest_e2e_user_agent).uv run ruff checkanduv run ruff format --checkare clean.ug skill status,ug skill status --json, and theug statussummary against an isolated home directory.This pull request and its description were written by Isaac.