Skip to content

{Misc.} Decentralize repository owned agents and tooling - #34160

Closed
Aditya Pujara (a0x1ab) wants to merge 3 commits into
devfrom
a0x1ab/repository-owned-agents-9b1d5c02
Closed

Aditya Pujara (a0x1ab) wants to merge 3 commits into
devfrom
a0x1ab/repository-owned-agents-9b1d5c02

Conversation

@a0x1ab

@a0x1ab Aditya Pujara (a0x1ab) commented Oct 2, 2026 •

Copy link
Copy Markdown
Member

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.

@yonzhan

Copy link
Copy Markdown
Collaborator

Thank you for your contribution! We will review the pull request and get back to you soon.

@a0x1ab Aditya Pujara (a0x1ab) changed the title [Engineering] Decentralize repository-owned agents and tooling {Misc.} Decentralize repository owned agents and tooling Oct 2, 2026
@a0x1ab
Aditya Pujara (a0x1ab) marked this pull request as ready for review October 2, 2026 08:51
Copilot AI balanced review requested due to automatic review settings October 2, 2026 08:51

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟡 Changes recommended

Unresolved workflow authorization, handoff recovery, and review-policy correctness issues prevent safe approval.

Review effort: Balanced
Findings: 3 High severity · 6 Medium severity

Open (9)
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 "")
Comment thread .x/x.yml Outdated
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
@a0x1ab
Aditya Pujara (a0x1ab) force-pushed the a0x1ab/repository-owned-agents-9b1d5c02 branch from 8514e7c to 1b52914 Compare October 2, 2026 13:07
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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants