Conversation
Agent-Logs-Url: https://github.com/github/gh-aw/sessions/a064782d-41c0-4598-a610-56b542b18186 Co-authored-by: lpcox <15877973+lpcox@users.noreply.github.com>
Agent-Logs-Url: https://github.com/github/gh-aw/sessions/a064782d-41c0-4598-a610-56b542b18186 Co-authored-by: lpcox <15877973+lpcox@users.noreply.github.com>
|
@copilot make sure that repo-assist is the primary entry point and that guidance framed as making repo-assist work for a (primarily open-source) maintainer |
|
@copilot resolve the merge conflicts in this pull request also make sure that safeoutputs is presented as the primary safety mechanism for regulating workflow outputs whereas integrity filtering is the primary safety mechanism for regulating workflow inputs. |
|
Hey A few things to tidy up before marking this ready for review:
If you'd like a hand finishing this off, here's a ready-to-use agent prompt:
|
…ntry point Agent-Logs-Url: https://github.com/github/gh-aw/sessions/88b88ad7-34c7-40e1-a18c-6f0c2b32075a Co-authored-by: lpcox <15877973+lpcox@users.noreply.github.com>
Done in 73645f8. The guide now opens with repo-assist as the primary entry point — the intro frames the problem from an open-source maintainer's perspective, repo-assist is the first concrete thing shown (with a full workflow example), and integrity filtering is explained afterward as the mechanism that makes repo-assist route work safely. The worked examples section also leads with the public OSS scenario (repo-assist → code fix agent) rather than the more generic examples. |
…ety mechanism Co-authored-by: lpcox <15877973+lpcox@users.noreply.github.com>
Done in e012958. Merge conflicts resolved (stale |
There was a problem hiding this comment.
Pull request overview
Adds a new maintainer-focused documentation guide for operating agentic workflows safely at scale (repo-assist + safe-outputs + integrity filtering), along with updated action pin/lock data from a main-branch merge.
Changes:
- Introduces
maintaining-repos.mdguide structured around a two-mechanism safety model and maintainer workflows (triage, scaling, debugging, worked examples). - Updates action pin/lock JSON to include the
gh-aw-mcpg:v0.2.19image entry in the expected location. - Documents integrity reactions and operational debugging patterns (
/agent agentic-workflows,gh aw audit,gh aw logs).
Show a summary per file
| File | Description |
|---|---|
docs/src/content/docs/guides/maintaining-repos.md |
New comprehensive maintainer guide covering repo-assist, safe-outputs, integrity filtering, scaling, and debugging. |
.github/aw/actions-lock.json |
Syncs pinned MCPG image entry (gh-aw-mcpg:v0.2.19) position/content. |
pkg/workflow/data/action_pins.json |
Syncs pinned MCPG image entry (gh-aw-mcpg:v0.2.19) position/content. |
Copilot's findings
Tip
Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Comments suppressed due to low confidence (4)
docs/src/content/docs/guides/maintaining-repos.md:110
- The safe-outputs list/table uses non-existent output types (e.g.,
label-issue,comment-issue,comment-pull-request). Please align the names with the actual safe output types (e.g.,add-labels/remove-labels,add-comment, etc.) from the Safe Outputs reference so readers don’t copy invalid config.
| Safe-output | What it allows |
|------------|---------------|
| `label-issue` | Apply or remove labels on an issue |
| `comment-issue` | Post a comment on an issue |
| `comment-pull-request` | Post a comment on a pull request |
docs/src/content/docs/guides/maintaining-repos.md:145
- The integrity-level descriptions here don’t match the reference definitions (notably,
unapprovedisCONTRIBUTOR/FIRST_TIME_CONTRIBUTOR, whilenoneis the only level that includesNONE/FIRST_TIMER). Update this table (and any dependent guidance) to match the Integrity Filtering reference to avoid misconfiguration.
| Level | Who qualifies |
|-------|--------------|
| `merged` | PRs merged into the default branch; commits reachable from main |
| `approved` | Owners, members, collaborators; non-fork PRs on public repos; recognized bots (`dependabot`, `github-actions`) |
| `unapproved` | Contributors who have had a PR merged before; first-time contributors |
docs/src/content/docs/guides/maintaining-repos.md:53
- This paragraph says
min-integrity: unapprovedallows repo-assist to see “external users, everyone”, butunapprovedstill filters outNONE/FIRST_TIMERauthors. Either change the setting tononeor update the description so it matches the actual integrity semantics.
`min-integrity: unapproved` allows repo-assist to see all community content — first-time contributors, external users, everyone. The `safe-outputs` block limits what repo-assist can do in response: it can only apply labels and post comments. Any other GitHub mutation (opening PRs, merging, closing issues) is blocked by the runtime, regardless of what the agent attempts.
docs/src/content/docs/guides/maintaining-repos.md:49
- This prompt instructs the workflow to “consider assigning the Copilot coding agent”, but the workflow’s
safe-outputs(even once renamed) only allow labeling/commenting. Either add theassign-to-agentsafe output (and describe its limits), or remove the assignment instruction to keep the example internally consistent.
2. If the issue is a quality bug report with a clear reproduction, add the label `needs-investigation`.
3. If the issue is from a maintainer or collaborator, add `trusted-contributor` and consider assigning the Copilot coding agent to investigate.
4. If the issue appears to be spam or off-topic, add `invalid` and post a brief explanation comment.
- Files reviewed: 3/3 changed files
- Comments generated: 7
| max-runs: 5 | ||
| window: 1h |
There was a problem hiding this comment.
rate-limit fields here (max-runs and window: 1h) don’t match the documented schema (max as an integer/expression, window as minutes). Update this example to the supported keys/formats to prevent copy/paste configs that fail validation.
| max-runs: 5 | |
| window: 1h | |
| max: 5 | |
| window: 60 |
| Workflows automatically use dual concurrency control (per-workflow and per-engine). For repo-assist, you may want higher concurrency so multiple issues are triaged in parallel rather than queued: | ||
|
|
||
| ```aw wrap | ||
| concurrency: | ||
| max-parallel: 3 |
There was a problem hiding this comment.
The concurrency example uses concurrency: max-parallel: 3, but max-parallel isn’t a supported concurrency field in this repo’s frontmatter (concurrency is expressed via standard group/cancel-in-progress plus concurrency.job-discriminator, and engine isolation is configured under engine.concurrency). Please revise this section to show a valid way to increase parallelism without introducing invalid keys.
| Workflows automatically use dual concurrency control (per-workflow and per-engine). For repo-assist, you may want higher concurrency so multiple issues are triaged in parallel rather than queued: | |
| ```aw wrap | |
| concurrency: | |
| max-parallel: 3 | |
| Workflows automatically use dual concurrency control (per-workflow and per-engine). For repo-assist, if you want multiple issues to be triaged in parallel rather than queued behind a single workflow slot, give each issue its own job discriminator and raise engine concurrency: | |
| ```aw wrap | |
| concurrency: | |
| job-discriminator: ${{ github.event.issue.number }} | |
| engine: | |
| concurrency: 3 |
| mcp-gateway: | ||
| version: "v0.2.18" |
There was a problem hiding this comment.
The reactions example uses a top-level mcp-gateway: block, but MCP gateway configuration is defined under sandbox.mcp (and typically requires features.mcp-gateway: true). As written, this snippet likely won’t validate/compile; switch to the correct frontmatter structure for pinning the MCP gateway/container version.
| mcp-gateway: | |
| version: "v0.2.18" | |
| mcp-gateway: true | |
| sandbox: | |
| mcp: | |
| version: "v0.2.18" |
| Inside the CLI: | ||
|
|
||
| ```text | ||
| /agent agentic-workflows |
There was a problem hiding this comment.
In the Copilot CLI flow, this guide shows running /agent agentic-workflows directly. The existing Debugging Workflows doc instructs /agent first, then selecting agentic-workflows from the list. Align these instructions to the documented CLI UX to avoid confusing users when the direct subcommand isn’t supported.
| /agent agentic-workflows | |
| /agent | |
| # Select `agentic-workflows` from the list |
| tools: | ||
| github: | ||
| toolsets: [issues, labels] | ||
| min-integrity: unapproved |
There was a problem hiding this comment.
min-integrity: unapproved won’t include authors with association NONE / FIRST_TIMER, so it won’t let repo-assist see all incoming public issues/PRs. If the goal is full community intake, use min-integrity: none; otherwise adjust the prose to clarify that unapproved is limited to contributors + first-time contributors.
This issue also appears in the following locations of the same file:
- line 53
- line 141
| min-integrity: unapproved | |
| min-integrity: none |
| label-issue: | ||
| comment-issue: | ||
| permissions: | ||
| issues: write |
There was a problem hiding this comment.
These examples grant write permissions in permissions: (e.g., issues: write). In this repo, permissions: is meant for the agentic step’s read access; writes should be performed via safe outputs + compiler-generated jobs, and strict mode rejects write perms on the agent job. Please switch these permission blocks to read-only and rely on safe outputs for mutations (and apply the same fix to the other examples below).
This issue also appears on line 47 of the same file.
| issues: write | |
| issues: read |
| label-issue: | ||
| comment-issue: |
There was a problem hiding this comment.
The example uses safe-outputs: label-issue: and comment-issue:, but these aren’t valid safe output types in this repo (the documented types are add-labels/remove-labels and add-comment). Update the example to use the correct safe output names (and targets), otherwise readers will copy a workflow that won’t compile.
This issue also appears on line 106 of the same file.
| label-issue: | |
| comment-issue: | |
| add-labels: | |
| issue: | |
| add-comment: | |
| issue: |
Summary
Adds
docs/src/content/docs/guides/maintaining-repos.md— a comprehensive how-to guide for repository maintainers running agentic workflows at scale. The guide is structured around a two-mechanism safety model and uses repo-assist as the primary entry point.Closes #26072
Key Design Decisions
Two-mechanism safety model — The guide frames the entire maintainer experience around two complementary controls:
Repo-assist first — Rather than covering features in isolation, the guide leads with repo-assist as the recommended triage layer, then layers on safe-outputs and integrity as the maintainer scales
Debugging as a first-class section — Covers AI-assisted debugging via
/agent agentic-workflowsand Copilot CLI commands (gh aw audit,gh aw logs), plus six common failure patterns with targeted fixesContent Outline
merged/approved/unapproved/none),trusted-users,approval-labels,blocked-users, centralized management via GitHub variablesrate-limit, concurrency controls,allowed-reposscoping/agent agentic-workflowsfor AI-assisted debugging,gh aw audit/gh aw logsCLI commands, common failure patterns (missing tools, auth failures, integrity filtering, safe-output violations, token exhaustion, MCP server issues)trusted-usersvia org variable), high-security (min-integrity: merged+blocked-users)Files Changed
docs/src/content/docs/guides/maintaining-repos.md.github/aw/actions-lock.jsonpkg/workflow/data/action_pins.json