{Misc.} Decentralize repository owned agents and tooling - #34160
Closed
Aditya Pujara (a0x1ab) wants to merge 3 commits into
Closed
Aditya Pujara (a0x1ab) wants to merge 3 commits into
Aditya Pujara (a0x1ab) wants to merge 3 commits into
Conversation
Collaborator
|
Thank you for your contribution! We will review the pull request and get back to you soon. |
microsoft-github-policy-service
Bot
requested a review
from Yong Zhang (yonzhan)
October 2, 2026 07:29
Aditya Pujara (a0x1ab)
marked this pull request as ready for review
October 2, 2026 08:51
Contributor
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
Unresolved workflow authorization, handoff recovery, and review-policy correctness issues prevent safe approval.
Review effort: Balanced
Findings: 3
Open (9)
Core runtime files are excluded from production review · New Valid History Notes are ignored for release-note validation · New Unverified PR URLs incorrectly establish AAZ provenance · New Bounded AAZ PR search misreports older sources as absent · New Completion marker is posted before recoverable task handoff · New Unknown PR scope incorrectly labels module failures out of scope · New Workflow and dependency changes miss delivery risk signals · New Template HTML comments prevent related-command matching · New Reviewer lacks access to required regression coverage evidence · New
What changed in this PR
Moves Azure CLI’s repository-owned agents and tooling into the canonical .x package layout.
Changes:
- Adds scoped agent definitions and complete tooling implementations.
- Declares the repository profile, tool ownership, dependencies, and validation assets.
- Removes legacy charters and skill wrappers; documents migration provenance.
| File | Description |
|---|---|
.x/x.yml |
Declares the package profile, tools, inventory, and dependencies. |
.x/tools/validation/checks.py |
Adds repository validation routines. |
.x/tools/validation/assets/Validate-PowerShell.ps1 |
Adds PowerShell validation. |
.x/tools/validation/assets/Program.cs |
Adds C# syntax validation. |
.x/tools/validation/assets/CSharpSyntax.csproj |
Defines the C# validator project. |
.x/tools/tester/azure_cli/live_tests.py |
Adds test selection and regression evidence helpers. |
.x/tools/settings.py |
Centralizes repository-owned domain settings. |
.x/tools/reviewer/policy/analysis.py |
Adds review analysis and risk assessment. |
.x/tools/reviewer/azure_cli/review.py |
Adds CLI review and release-note policy. |
.x/tools/reviewer/azure_cli/failures.py |
Adds test-failure classification. |
.x/tools/fixer/title_gate/title_repair.py |
Adds title and History Notes repair. |
.x/tools/fixer/formatting/guidance.py |
Adds PR metadata guidance. |
.x/tools/fixer/azure_cli/targets.py |
Adds module and extension discovery. |
.x/tools/fixer/azure_cli/routing.py |
Adds extension tracker creation. |
.x/tools/fixer/azure_cli/guidance.py |
Adds code-generation guidance. |
.x/tools/fixer/azure_cli/aaz.py |
Adds AAZ task and source-PR helpers. |
.x/tester.md |
Removes the legacy Tester charter. |
.x/skills/start_extension_tracker_task.py |
Removes the legacy extension-handoff wrapper. |
.x/skills/start_aaz_source_task.py |
Removes the legacy AAZ task wrapper. |
.x/skills/promote_aaz_fork_pr.py |
Removes the legacy promotion wrapper. |
.x/skills/infer_target_for_repo.py |
Removes legacy target inference. |
.x/skills/get_pr_regression_coverage_summary.py |
Removes legacy coverage analysis. |
.x/skills/find_promoted_aaz_source_pr.py |
Removes the legacy source lookup wrapper. |
.x/skills/find_aaz_fork_prs_ready_for_promotion.py |
Removes the legacy promotion-discovery wrapper. |
.x/skills/changed_test_files.py |
Removes legacy test selection. |
.x/reviewer.md |
Removes the legacy Reviewer charter. |
.x/README.md |
Documents package ownership and validation. |
.x/migration-provenance.json |
Records migration sources and hashes. |
.x/fixer.md |
Removes the legacy Fixer charter. |
.x/definitions/tester.md |
Adds the scoped Tester definition. |
.x/definitions/reviewer.md |
Adds the scoped Reviewer definition. |
.x/definitions/fixer.md |
Adds the scoped Fixer definition. |
.x/definitions/coordinator.md |
Adds package coordination rules. |
.x/coordinator.md |
Removes the legacy Coordinator charter. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| def _is_cli_production_file(repository, path): | ||
| if repository == "Azure/azure-cli": | ||
| return ( | ||
| path.startswith("src/azure-cli/azure/cli/command_modules/") |
| head_repo=head_repo, | ||
| head_sha=head_sha, | ||
| )] | ||
| if not is_hotfix and not pr_title.startswith("["): |
| generation_sources = [path for path in paths if _review_matches_any(path, _GENERATION_SOURCE_PATTERNS)] | ||
| if generation_source_prs is None: | ||
| linked_generation_source = bool(_GENERATION_SOURCE_PR.search(str((pr or {}).get('body') or ''))) | ||
| linked_aaz_source = linked_generation_source |
Comment on lines
+44
to
+64
| max_pages=1, token=token, sanitize=False, | ||
| ) | ||
| fragment = f"-issue-{issue_number}-" | ||
| return next( | ||
| ( | ||
| pull_request for pull_request in response["data"] | ||
| if fragment in ( | ||
| (pull_request.get("head") or {}).get("ref") or "" | ||
| ) | ||
| and ( | ||
| pull_request.get("state") == "open" | ||
| or bool(pull_request.get("merged_at")) | ||
| ) | ||
| and ( | ||
| ( | ||
| (pull_request.get("head") or {}).get("repo") or {} | ||
| ).get("full_name") == AAZ_SOURCE_FORK | ||
| ) | ||
| ), | ||
| None, | ||
| ) |
| f"Routed to {target['repo']} as #{new_issue['number']} " | ||
| f"({new_issue['html_url']}) because this targets the " | ||
| f"`{target['name']}` extension, whose source lives in " | ||
| f"`Azure/azure-cli-extensions`.\n\n{BUG_ANALYSIS_MARKER}", |
| item["reason"] = f"same {kind} (`{name}`) as PR changes" | ||
| relevant.append(item) | ||
| continue | ||
| if scope: |
Comment on lines
+311
to
+322
| evidence = '\n'.join(('\n'.join([change['filename'], *[text for _, text in _review_added_lines(change)][:100]]) for change in production_changes)) | ||
| signals = [] | ||
|
|
||
| def add_signal(pattern, points, label, review): | ||
| if pattern.search(evidence): | ||
| signals.append({'label': label, 'points': points, 'review': review}) | ||
| add_signal(_RISK_SECURITY_PATTERN, 28, 'security-sensitive behavior', 'required') | ||
| add_signal(_RISK_SOVEREIGN_PATTERN, 18, 'sovereign-cloud behavior', 'required') | ||
| add_signal(_RISK_OPERATIONS_PATTERN, 22, 'delivery or infrastructure', 'required') | ||
| add_signal(_RISK_CUSTOMER_PATTERN, 18, 'public CLI behavior', 'recommended') | ||
| add_signal(_RISK_DEPENDENCY_PATTERN, 18, 'dependency or supply chain', 'required') | ||
| add_signal(_RISK_RELIABILITY_PATTERN, 12, 'failure-handling behavior', 'recommended') |
|
|
||
| def _required_commands(pr): | ||
| """Only use commands explicitly identified by the PR as related.""" | ||
| body = str((pr or {}).get("body") or "") |
| entry_point: tools/tester/azure_cli/live_tests.py:changed_test_files | ||
| public: true | ||
| tester.azure_cli.live_tests:get_pr_regression_coverage_summary: | ||
| role: Tester |
Preserve all agents, domain functions, durable job pins and execution safeguards. Declare tool modules once, keep generic language validation central, and retain old package formats for recorded jobs. Activation remains disabled; no merge or deployment. Copilot-Session: 9b1d5c02-4be1-4677-ac69-1046a5632dbc
Aditya Pujara (a0x1ab)
force-pushed
the
a0x1ab/repository-owned-agents-9b1d5c02
branch
from
October 2, 2026 13:07
8514e7c to
1b52914
Compare
Remove duplicated agent, tool, function and file inventories. Preserve repository workflow settings in profile.yml, all definitions and domain implementations, and optional exact Python dependency pins. Copilot-Session: 9b1d5c02-4be1-4677-ac69-1046a5632dbc
Keep common fields in the same order and retain optional feature fields without changing configuration or tooling. Copilot-Session: 9b1d5c02-4be1-4677-ac69-1046a5632dbc
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.


Repository-owned agents and tooling
Own Coordinator, Fixer, Tester and Reviewer definitions under
.x/definitions/, with complete domain tooling under.x/tools/. Agents and tools are discovered automatically.