Skip to content

Add repository organization and documentation agentic workflows#7781

Merged
Evangelink merged 3 commits intomainfrom
agentic/repo-organization-docs
Apr 23, 2026
Merged

Add repository organization and documentation agentic workflows#7781
Evangelink merged 3 commits intomainfrom
agentic/repo-organization-docs

Conversation

@Evangelink
Copy link
Copy Markdown
Member

Repository Organization & Documentation Agentic Workflows

This PR adds two workflows focused on repository organization and documentation maintenance.

Workflows Added

File Trigger Purpose
issue-arborist.md Daily schedule Links related issues as parent-child relationships
glossary-maintainer.md Daily (weekdays) Maintains project glossary based on codebase changes

Issue Arborist 🌳

  • Analyzes the last 100 open issues for parent-child relationships
  • Identifies feature/tasks, epic patterns, bug root causes, tracking issues
  • Creates parent issues for orphan clusters of 5+ related issues
  • Conservative linking: precision over recall (max 5 parents, 50 links per run)
  • Pre-downloads issue data for efficient analysis

Glossary Maintainer

  • Incremental daily scans (last 24 hours) with full weekly scans on Mondays
  • Scans recent commits and merged PRs for new terminology
  • Maintains existing glossary structure and formatting
  • Uses cache memory to track processed commits and avoid duplicates
  • Creates PRs with clear descriptions of added/updated terms
  • Adapted for .NET/MSTest terminology (MTP, Microsoft.Testing.Platform, etc.)

Part of the agentic workflows setup series.

Copilot AI review requested due to automatic review settings April 23, 2026 12:21
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Adds two new agentic workflows intended to run on a schedule to improve issue organization and keep glossary/terminology docs current.

Changes:

  • Add an “Issue Arborist” workflow to analyze recent open issues and create/link parent-child relationships.
  • Add a “Glossary Maintainer” workflow to scan recent repo changes and open PRs updating glossary terms.
Show a summary per file
File Description
.github/workflows/issue-arborist.md New scheduled agentic workflow that pre-fetches issue data and instructs an agent to create/link parent-child issue relationships.
.github/workflows/glossary-maintainer.md New scheduled agentic workflow that scans recent activity for new terminology and proposes glossary updates via PR.

Copilot's findings

Comments suppressed due to low confidence (2)

.github/workflows/issue-arborist.md:136

  • The instructions refer to create_issue / link_sub_issue and show a JSON payload with {"type": ...}. However, the declared safe-outputs are create-issue and link-sub-issue, and later the noop example uses a different invocation style ({"noop": {...}}). This mismatch is likely to cause the agent to call non-existent tools or use the wrong payload shape. Align the tool names and invocation format in the docs with the actual safe-output keys.
1. Create a parent issue using the `create_issue` tool with a temporary ID:
   - Format: `{"type": "create_issue", "temporary_id": "aw_XXXXXXXX", "title": "[Parent] Theme Description", "body": "Description with references to related issues"}`
   - Temporary ID must be `aw_` followed by 3-8 alphanumeric characters (e.g., `aw_abc123`, `aw_Test123`)
2. Link each related issue to the parent using `link_sub_issue` tool with the temporary ID:
   - Format: `{"type": "link_sub_issue", "parent_issue_number": "aw_XXXXXXXX", "sub_issue_number": 123}`

.github/workflows/issue-arborist.md:26

  • tools.bash is declared as a list of strings with argument globs (e.g., "cat *"). Other agentic workflows in this repo declare bash as true or as a list of command names (e.g., ["cat", "grep", ...] in .github/workflows/add-tests.md). If the workflow parser expects command names, the current form may prevent the agent from executing cat/jq at all. Consider switching to the same command-name list style (e.g., bash: ["cat", "jq"]).
  bash:
    - "cat *"
    - "jq *"
  • Files reviewed: 2/2 changed files
  • Comments generated: 3

Comment thread .github/workflows/issue-arborist.md
Comment thread .github/workflows/glossary-maintainer.md
Comment thread .github/workflows/glossary-maintainer.md
Add two repo management workflows:
- issue-arborist: Links related issues as parent-child to improve organization
- glossary-maintainer: Maintains project glossary based on codebase changes
@Evangelink Evangelink force-pushed the agentic/repo-organization-docs branch from 95994a2 to 92b006e Compare April 23, 2026 12:31
@Evangelink Evangelink marked this pull request as ready for review April 23, 2026 12:39
Copilot AI review requested due to automatic review settings April 23, 2026 12:39
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Copilot's findings

Comments suppressed due to low confidence (3)

.github/workflows/issue-arborist.md:27

  • tools.bash is using wildcard patterns (e.g., "cat *", "jq *"). Elsewhere in this repo, agentic workflows restrict bash via an explicit allowlist of command names (e.g., cat, jq, git, ...). Please switch to a command-name allowlist to keep the bash tool constrained and consistent with the established security posture.
tools:
  github:
    lockdown: true
    toolsets:
      - issues
    min-integrity: none
  bash:
    - "cat *"
    - "jq *"

.github/workflows/issue-arborist.md:147

  • The workflow instructions refer to create_issue / link_sub_issue tool names, but the configured safe-outputs are create-issue / link-sub-issue. If the agent follows the written instructions it may emit tool calls that don't match the declared safe-outputs, causing the run to fail. Please align the instruction text/examples with the actual safe-output names used by this workflow.
**For orphan clusters (5+ related issues without a parent):**

1. Create a parent issue using the `create_issue` tool with a temporary ID:
   - Format: `{"type": "create_issue", "temporary_id": "aw_XXXXXXXX", "title": "[Parent] Theme Description", "body": "Description with references to related issues"}`
   - Temporary ID must be `aw_` followed by 3-8 alphanumeric characters (e.g., `aw_abc123`, `aw_Test123`)
2. Link each related issue to the parent using `link_sub_issue` tool with the temporary ID:
   - Format: `{"type": "link_sub_issue", "parent_issue_number": "aw_XXXXXXXX", "sub_issue_number": 123}`

**For existing parent-child relationships:**

- Use the `link_sub_issue` tool with actual issue numbers to create the parent-child relationship

.github/workflows/glossary-maintainer.md:36

  • tools.bash: true grants unrestricted shell access. In this repo, agentic workflows typically use a strict allowlist of specific commands for bash (see .github/workflows/add-tests.md). Please replace bash: true with an allowlist containing only the commands this agent needs (e.g., git, find, grep, cat, etc.).
tools:
  cache-memory: true
  github:
    toolsets: [default]
  edit:
  bash: true

  • Files reviewed: 2/2 changed files
  • Comments generated: 2

Comment thread .github/workflows/issue-arborist.md
Comment thread .github/workflows/glossary-maintainer.md
@Evangelink Evangelink enabled auto-merge April 23, 2026 13:01
@Evangelink Evangelink merged commit 5fd7fd9 into main Apr 23, 2026
3 checks passed
@Evangelink Evangelink deleted the agentic/repo-organization-docs branch April 23, 2026 14:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants