Split capability taxonomy so every user-facing command has its own dashboard wedge (main-ca) - #299
Conversation
Dawn Jeong (daeunJe0ng)
left a comment
There was a problem hiding this comment.
[copilot-review]
Approve. Clean taxonomy split, and I verified it on the target branch: checked out the head (6818aaf) and ran pytest tests/test_adk_telemetry.py tests/scripts/test_push_scope.py, 168 passed. Confirmed publish.py emits publishing and push.py emits push on main-ca, so both wedges are populated and nothing is orphaned. Every canonical capability has a real emitter.
One follow-up to make sure doesn't get lost, since it lives outside this diff. Your commit message calls it out, but the PR description doesn't: the not in <blank> change only covers the Capability Usage donut. The Aria Build Outcomes and Agent Deploy tiles that filter on adk_capability = "publishing" still need updating, because push.py's emit_build_start / emit_build_complete / emit_agent_deploy events are now stamped push, not publishing. Until those tiles include push (or split into push vs publish), push build/deploy activity will silently drop off them. Worth adding to the PR description so a reviewer or dashboard owner picks it up.
Two optional nits, neither blocking:
- In
test_wired_capabilities_are_in_canonical_list,publishingis grouped under theemit_build_*/flightcheck_*comment, but after this changepublishingonly comes frompublish.py'semit_capability.pyshim. Moving it next to the shim group keeps the comment accurate. - The wired test asserts
wiredis a subset ofcanonical, so it won't catch a canonical value that no code emits. The #254 shim guard already covers arg drift, so this is just belt-and-suspenders.
|
Addressed the two nits in fd89c19:
|
Dawn Jeong (daeunJe0ng)
left a comment
There was a problem hiding this comment.
[copilot-review] Approve.
Re-reviewed at current head. Clean port of #259 to main-ca. Both prior nits (publishing comment grouping, reverse-direction test) are resolved in-diff. No code-side blockers.
Same operational follow-up as #259: reconcile any Aria Build Outcomes / Agent Deploy tile filtered on adk_capability="publishing" to include "push". Tracked separately since CI can't catch it.
The main-ca branch has a repository ruleset that requires four status checks from ci.yml (Lint Python, Installer script smoke tests, FlightCheck offline test suite, Product line gate), but ci.yml's pull_request / push triggers only listed main and release/**. So the required checks never ran on PRs targeting main-ca, and every PR to main-ca is stuck in mergeStateStatus=BLOCKED — including #299, #292, #312, #313 (and no main-ca PR has ever been merged). Add main-ca to both branch filters so CI runs and unblocks the merge queue for CEA-taxonomy work. Co-authored-by: Avery Milandin <amilandin@microsoft.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 70ddf006-7f8d-48e7-9afa-3fbae73b3864
The main-ca branch has a repository ruleset that requires four status checks from ci.yml (Lint Python, Installer script smoke tests, FlightCheck offline test suite, Product line gate), but ci.yml's pull_request / push triggers only listed main and release/**. So the required checks never ran on PRs targeting main-ca, and every PR to main-ca is stuck in mergeStateStatus=BLOCKED — including #299, #292, #312, #313 (and no main-ca PR has ever been merged). Add main-ca to both branch filters so CI runs and unblocks the merge queue for CEA-taxonomy work. Co-authored-by: Avery Milandin <amilandin@microsoft.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 70ddf006-7f8d-48e7-9afa-3fbae73b3864
…shboard wedge
The `adk_capability` value list on Aria was too coarse: a single
`evaluations` slice covered create/update/delete/validate, and a single
`publishing` slice covered both `push` (upload local edits to Dataverse)
and `publish` (make changes live). That hid the signal PMs actually
need — which specific action drove a change in usage — and it left
several user-facing skills (onboarding, topic review/test, workflow
test) with no wedge at all.
Split the taxonomy so every distinct user-facing ADK command gets its
own slice on the Capability Usage donut:
evaluations -> evaluation_create / evaluation_update /
evaluation_delete / evaluation_validate
publishing -> push (push.py) + publishing (publish.py, unchanged)
(new wedges) -> onboarding, topic_review, topic_test, workflow_test
Notes:
* push.py's `emit_build_start` / `emit_build_complete` /
`emit_agent_deploy` events are re-stamped from
`adk_capability="publishing"` to `"push"`, and push.py now emits a
best-effort `emit_capability_use("push")` at the end of the flow so
push gets a wedge on the Capability Usage donut (mirroring publish.py).
Aria tiles that filter Build Outcomes / Agent Deploy on
`adk_capability="publishing"` will need updating to include both
values (or split into two tiles).
* `evaluate_evals.py` now emits `evaluation_validate` in-process
(previously emitted `evaluations`).
* SKILL.md files for evaluations/{create,update,delete} switch their
`emit_capability.py` argument to the new granular values.
* SKILL.md files for onboarding, topics/review, topics/test, and
workflows/test gain a best-effort telemetry line following the
troubleshoot/SKILL.md pattern.
* `discover` (owned by PR #238) and `planner` (owned by a separate
feature branch) are intentionally not added here — their PRs will
add their own taxonomy entries.
* `flightcheck` remains in the taxonomy but is not part of the
Capability Usage donut split — it has dedicated FlightCheck tiles.
* Tests updated: `test_wired_capabilities_are_in_canonical_list` gains
the new values; the happy-path emit test uses `evaluation_validate`.
The `test_no_caller_passes_a_noncanonical_capability_to_the_shim`
guard from PR #254 continues to catch drift automatically.
ADO: https://o365exchange.visualstudio.com/O365%20Core/_workitems/edit/7830948
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 70ddf006-7f8d-48e7-9afa-3fbae73b3864
The Aria 'Capability Usage by Type' tiles used to pin an explicit
`in {value-list}` filter on the `adk Capability` dimension, which
meant every new capability added to ADK_CAPABILITIES had to be added
manually to the dashboard filter before its wedge would render.
The tiles were switched to `not in <blank>` on 2026-09-22, so new
capabilities now auto-appear on the donut. Update the header comment
so future contributors don't chase the obsolete dashboard-edit step.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 70ddf006-7f8d-48e7-9afa-3fbae73b3864
- Move `publishing` in the `wired` set comment groups: publish.py emits it via the `emit_capability.py` shim (subprocess), not via the `emit_build_*` event families. - Add `test_every_canonical_capability_is_actually_emitted`: reverse of the existing wired-set check. Scans `scripts/**/*.py` and `src/skills/**/SKILL.md` for shim, direct-call, and `adk_capability=` emit sites and fails on any canonical value that isn't wired anywhere. Passes on main-ca (`onboarding` is still wired here). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 70ddf006-7f8d-48e7-9afa-3fbae73b3864
fd89c19 to
dbe1da7
Compare
Ports PR #259 (which targets
main) tomain-caso CEA-agent installations get the same split-per-commandadk_capabilitytaxonomy.Cherry-picked commits from
amilandin/split-capability-taxonomy-per-command:de7c946— original split6818aaf— update taxonomy header comment for the newnot in <blank>dashboard filterfd89c19— review-round-2 fixes: reverse capability check + fixwiredcomment groupChanges
evaluationsevaluation_create,evaluation_update,evaluation_delete,evaluation_validatepublishing(push + publish)push(push.py) +publishing(publish.py)onboarding,topic_review,topic_test,workflow_testConflict resolved during cherry-pick
src/skills/evaluations/update/SKILL.md— kept main-ca''s "workspace-only updates, do not require an agent checkpoint" note and the separate telemetry code block, applied the newevaluation_updatelabel from #259.Dashboard follow-up (already applied in prod)
The Aria "Capability Usage by Type" and "Capability Usage by Type Trend" tiles were switched from an explicit
in {value-list}filter tonot in <blank>on 2026-09-22 (all four tiles: ADK Platform + ADK Platform External, donut + trend). New capabilities from this PR — includingpush— auto-appear on the donut; verified with real emits from a maker environment.Still to double-check: any Build Outcomes / Agent Deploy tile that filters specifically on
adk_capability="publishing"should be extended to include"push"(or switched tonot in <blank>too), sincepush.pyevents are now stamped"push"instead of"publishing".Tests
tests/test_adk_telemetry.py::test_every_canonical_capability_is_actually_emitted— reverse-direction check: fails on any canonical value with no emit site anywhere in the kit. Passes onmain-ca(all values, includingonboarding, are wired).test_wired_capabilities_are_in_canonical_list— updated comment groups to reflect thatpublish.pyemits via the shim, not viaemit_build_*.pytest tests/test_adk_telemetry.py tests/scripts/test_push_scope.py-> 169 passed.Companion PR on
main#259
ADO
https://o365exchange.visualstudio.com/O365%20Core/_workitems/edit/7830948