Conversation
…te-agentic-workflow prompt - Update guidance to automatically infer network ecosystem from repository language files rather than asking the user - Add .nvmrc to Node.js file indicators - Add setup.cfg and uv.lock to Python file indicators - Add explicit domain names to each ecosystem entry so agents know what registries are being enabled (registry.npmjs.org, pypi.org, files.pythonhosted.org, proxy.golang.org, sum.golang.org, rubygems.org) - Update both the detailed section (~line 200) and quick-ref section (~line 586) Fixes #discussion #18250 Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Updates the create-agentic-workflow authoring prompt to have agents infer network.allowed ecosystem entries from repository file indicators (instead of prompting the user), and expands the indicator lists with more common language/tooling files plus clearer registry/domain guidance.
Changes:
- Switches guidance from “ask the user about
network:allowlist” to “infer ecosystem from repo files; only ask if insufficient context”. - Adds explicit ecosystem → registry/domain notes for Node, Python, Go, and Ruby.
- Expands language indicator lists (e.g.,
.nvmrc,setup.cfg,uv.lock) in both the detailed guidance and the quick-reference checklist.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| - `requirements.txt`, `pyproject.toml`, `setup.py`, `setup.cfg`, `Pipfile`, `uv.lock` → add `python` (enables `pypi.org`, `files.pythonhosted.org` for pip/conda) | ||
| - `package.json`, `.nvmrc`, `yarn.lock`, `pnpm-lock.yaml` → add `node` (enables `registry.npmjs.org` for npm/yarn/pnpm) | ||
| - `go.mod`, `go.sum` → add `go` (enables `proxy.golang.org`, `sum.golang.org` for go module downloads) | ||
| - `pom.xml`, `build.gradle`, `build.gradle.kts` → add `java` (for Maven/Gradle) | ||
| - `Gemfile`, `*.gemspec` → add `ruby` (for Bundler/RubyGems) | ||
| - `Gemfile`, `*.gemspec` → add `ruby` (enables `rubygems.org` for Bundler/RubyGems) |
There was a problem hiding this comment.
The added domain callouts look incomplete/inaccurate compared to the canonical ecosystem/domain mapping in .github/aw/github-agentic-workflows.md (see table around lines 1528-1537). In particular, python mentions “pip/conda” but only lists PyPI domains (conda uses conda.anaconda.org, etc.), and node/go/ruby omit other key domains listed there. Suggest either (a) switch these parentheticals to “e.g.” and avoid implying exhaustiveness, and/or (b) align the listed domains with the table (including conda/yarn/pkg.go.dev where appropriate).
See below for a potential fix:
- `requirements.txt`, `pyproject.toml`, `setup.py`, `setup.cfg`, `Pipfile`, `uv.lock` → add `python` (enables package indexes for pip/conda, e.g., `pypi.org`, `files.pythonhosted.org`, `conda.anaconda.org`)
- `package.json`, `.nvmrc`, `yarn.lock`, `pnpm-lock.yaml` → add `node` (enables npm ecosystem registries, e.g., `registry.npmjs.org`, `registry.yarnpkg.com` for npm/yarn/pnpm)
- `go.mod`, `go.sum` → add `go` (enables Go module endpoints, e.g., `proxy.golang.org`, `sum.golang.org`, `pkg.go.dev` for module downloads)
- `pom.xml`, `build.gradle`, `build.gradle.kts` → add `java` (for Maven/Gradle)
- `Gemfile`, `*.gemspec` → add `ruby` (enables RubyGems endpoints, e.g., `rubygems.org` for Bundler/RubyGems)
| - `requirements.txt`/`pyproject.toml`/`setup.py`/`uv.lock` → `network: { allowed: [defaults, python] }` (enables `pypi.org`, `files.pythonhosted.org`) | ||
| - `package.json`/`.nvmrc`/`yarn.lock` → `network: { allowed: [defaults, node] }` (enables `registry.npmjs.org`) | ||
| - `go.mod`/`go.sum` → `network: { allowed: [defaults, go] }` (enables `proxy.golang.org`, `sum.golang.org`) | ||
| - `pom.xml`/`build.gradle` → `network: { allowed: [defaults, java] }` (Maven/Gradle) | ||
| - `Gemfile` → `network: { allowed: [defaults, ruby] }` (Bundler) | ||
| - `Gemfile`/`*.gemspec` → `network: { allowed: [defaults, ruby] }` (enables `rubygems.org`) |
There was a problem hiding this comment.
This quick-reference indicator list is now inconsistent with the earlier “Key indicators” list above: it adds uv.lock but omits setup.cfg, and it adds .nvmrc but omits pnpm-lock.yaml (and Pipfile / *.gemspec consistency is mixed). If the intent is to keep both sections aligned (as described in the PR), consider updating this checklist list to match the indicators you just added earlier.
See below for a potential fix:
- `requirements.txt`/`pyproject.toml`/`setup.py`/`setup.cfg`/`Pipfile` → `network: { allowed: [defaults, python] }` (enables `pypi.org`, `files.pythonhosted.org`)
- `package.json`/`pnpm-lock.yaml`/`yarn.lock` → `network: { allowed: [defaults, node] }` (enables `registry.npmjs.org`)
- `go.mod`/`go.sum` → `network: { allowed: [defaults, go] }` (enables `proxy.golang.org`, `sum.golang.org`)
- `pom.xml`/`build.gradle` → `network: { allowed: [defaults, java] }` (Maven/Gradle)
- `Gemfile` → `network: { allowed: [defaults, ruby] }` (enables `rubygems.org`)
| @@ -196,14 +196,14 @@ These resources contain workflow patterns, best practices, safe outputs, and per | |||
| - What should trigger the workflow (`on:` — e.g., issues, pull requests, schedule, slash command)? | |||
| - What should the agent do (comment, triage, create PR, fetch API data, etc.)? | |||
| - If the user says “campaign”, “KPI”, “pacing”, “cadence”, or “stop-after”, consult `.github/aw/campaign.md` (it’s still an agentic workflow; this is just a pattern). | |||
There was a problem hiding this comment.
List indentation appears inconsistent here (- bullets at 196-198 vs the newly added bullets starting at 199). The extra leading space before - ⚠️ ... (and subsequent bullets) may render as a deeper nested list level in some Markdown parsers. Suggest normalizing indentation so all bullets under “Interact and Clarify” are at the same nesting level.
| - If the user says “campaign”, “KPI”, “pacing”, “cadence”, or “stop-after”, consult `.github/aw/campaign.md` (it’s still an agentic workflow; this is just a pattern). | |
| - If the user says “campaign”, “KPI”, “pacing”, “cadence”, or “stop-after”, consult `.github/aw/campaign.md` (it’s still an agentic workflow; this is just a pattern). |
The
create-agentic-workflowprompt was telling agents to ask the user aboutnetwork.allowedconfiguration, and its ecosystem-to-file indicator mappings lacked explicit domain names and some common indicators (.nvmrc,setup.cfg,uv.lock).Changes
network:allowlist" to "automatically infer from repository language files; only ask if context is insufficient"node→ enablesregistry.npmjs.orgpython→ enablespypi.org,files.pythonhosted.orggo→ enablesproxy.golang.org,sum.golang.orgruby→ enablesrubygems.org.nvmrcsetup.cfg,uv.lockExample
A workflow for a Python repo with
pyproject.tomlshould now automatically produce:without requiring the user to mention the stack.
Original prompt
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.