diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index d3c1221e713383..a23e28a783c9bc 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -46,6 +46,15 @@ When NOT running under CCA, guidance for creating commits and pushing changes: - Never push to an active PR without being explicitly asked, even in autopilot/yolo mode. Always wait for explicit instruction to push. - Never chain commit and push in the same command. Always commit first, report what was committed, then wait for an explicit push instruction. This creates a mandatory decision point. - Prefer creating a new commit rather than amending an existing one. Exceptions: (1) explicitly asked to amend, or (2) the existing commit is obviously broken with something minor (e.g., typo or comment fix) and hasn't been pushed yet. +- **Before posting to GitHub (PRs, issues, comments):** Include the AI-generated content disclosure (see below). + +## AI-Generated Content Disclosure + +When posting any content to GitHub under a user's credentials — opening PRs, creating issues, commenting on PRs or issues, posting review comments, or any other public-facing action — and the account is **not** a dedicated "copilot" or "bot" account/app, you **MUST** include a concise, visible note (e.g. a `> [!NOTE]` alert) indicating the content was AI/Copilot-generated. + +This applies to all GitHub interactions: PR descriptions, issue bodies, comments, review comments, etc. Exceptions: +- The account is a recognized bot or Copilot app account (e.g., `github-actions[bot]`, `copilot`), where the AI origin is already apparent from the account identity. +- The user explicitly asks you to omit the disclosure. --- diff --git a/.github/skills/api-proposal/SKILL.md b/.github/skills/api-proposal/SKILL.md index c6175744474248..8f1905b87d1428 100644 --- a/.github/skills/api-proposal/SKILL.md +++ b/.github/skills/api-proposal/SKILL.md @@ -270,12 +270,7 @@ Present the complete draft to the user for review. Iterate based on feedback bef ### Phase 5: Publish -> **Agent disclaimer:** When publishing to GitHub on behalf of a user account, prepend the following disclaimer to the proposal body: -> -> ```markdown -> > [!NOTE] -> > This proposal was drafted with the help of an AI agent. Please review for accuracy and remove this notice once you're satisfied with the content. -> ``` +> **AI-generated content disclosure:** When posting any content to GitHub (issue body, PR body, comments) under a user's credentials — i.e., the account is **not** a dedicated "copilot" or "bot" account/app — prepend a concise, visible note (e.g. a `> [!NOTE]` alert) indicating the content was AI/Copilot-generated. This applies to the initial proposal, iteration updates, and any follow-up comments posted on the user's behalf. Skip this if the user explicitly asks you to omit it. #### Step 1: Push and capture commit URL diff --git a/.github/skills/ci-analysis/SKILL.md b/.github/skills/ci-analysis/SKILL.md index 5b42f8363ee1b2..9c8fb5719b5aa6 100644 --- a/.github/skills/ci-analysis/SKILL.md +++ b/.github/skills/ci-analysis/SKILL.md @@ -9,6 +9,8 @@ Analyze CI build status and test failures in Azure DevOps and Helix for dotnet r > 🚨 **NEVER** use `gh pr review --approve` or `--request-changes`. Only `--comment` is allowed. Approval and blocking are human-only actions. +> 📝 **AI-generated content disclosure:** When posting any content to GitHub (PR comments, retry commands, analysis summaries) under a user's credentials — i.e., the account is **not** a dedicated "copilot" or "bot" account/app — you **MUST** include a concise, visible note (e.g. a `> [!NOTE]` alert) indicating the content was AI/Copilot-generated. Skip this if the user explicitly asks you to omit it. + **Workflow**: Gather PR context (Step 0) → run the script → read the human-readable output + `[CI_ANALYSIS_SUMMARY]` JSON → synthesize recommendations yourself. The script collects data; you generate the advice. For supplementary investigation beyond the script, MCP tools (AzDO, Helix, GitHub) provide structured access when available; the script and `gh` CLI work independently when they're not. ## When to Use This Skill diff --git a/.github/skills/code-review/SKILL.md b/.github/skills/code-review/SKILL.md index 7542b697368f0b..7afa18906a9c9d 100644 --- a/.github/skills/code-review/SKILL.md +++ b/.github/skills/code-review/SKILL.md @@ -98,6 +98,8 @@ When the environment supports launching sub-agents with different models (e.g., When presenting the final review (whether as a PR comment or as output to the user), use the following structure. This ensures consistency across reviews and makes the output easy to scan. +> 📝 **AI-generated content disclosure:** When posting review content to GitHub (PR review comments, PR comments) under a user's credentials — i.e., the account is **not** a dedicated "copilot" or "bot" account/app — you **MUST** include a concise, visible note (e.g. a `> [!NOTE]` alert) indicating the content was AI/Copilot-generated. Skip this if the user explicitly asks you to omit it. + ### Structure ``` diff --git a/.github/skills/issue-triage/SKILL.md b/.github/skills/issue-triage/SKILL.md index fe1cded0d58002..a3c920021376e7 100644 --- a/.github/skills/issue-triage/SKILL.md +++ b/.github/skills/issue-triage/SKILL.md @@ -461,6 +461,12 @@ Key points: with these explicit instructions; the constraint above prevents *autonomous* actions before the human decision, not user-directed actions after it. + When posting any content to GitHub (issue comments, label changes with explanations) + under a user's credentials -- i.e., the account is **not** a dedicated "copilot" + or "bot" account/app -- you **MUST** include a concise, visible note (e.g. a + `> [!NOTE]` alert) indicating the content was AI/Copilot-generated. Skip this if + the user explicitly asks you to omit it. + - **NEVER** use `gh issue close`, `gh issue edit`, `gh issue comment`, or `gh pr review --approve`/`--request-changes` **unless the user explicitly asks you to** after picking an outcome. diff --git a/.github/skills/performance-benchmark/SKILL.md b/.github/skills/performance-benchmark/SKILL.md index bfbe80312cc0a0..9e1b8f0bbf6a31 100644 --- a/.github/skills/performance-benchmark/SKILL.md +++ b/.github/skills/performance-benchmark/SKILL.md @@ -125,6 +125,8 @@ public class Bench Post a comment on the PR to trigger EgorBot with your benchmark. The general format is: +> 📝 **AI-generated content disclosure:** When posting benchmark comments to GitHub under a user's credentials — i.e., the account is **not** a dedicated "copilot" or "bot" account/app — you **MUST** include a concise, visible note (e.g. a `> [!NOTE]` alert) indicating the content was AI/Copilot-generated. Skip this if the user explicitly asks you to omit it. + @EgorBot [targets] [options] [BenchmarkDotNet args] ```cs diff --git a/.github/skills/vmr-codeflow-status/SKILL.md b/.github/skills/vmr-codeflow-status/SKILL.md index 01e3ce99930138..f80352e5275bd3 100644 --- a/.github/skills/vmr-codeflow-status/SKILL.md +++ b/.github/skills/vmr-codeflow-status/SKILL.md @@ -11,6 +11,8 @@ Analyze the health of VMR codeflow PRs in both directions: > 🚨 **NEVER** use `gh pr review --approve` or `--request-changes`. Only `--comment` is allowed. Approval and blocking are human-only actions. +> 📝 **AI-generated content disclosure:** When posting any content to GitHub (PR comments, analysis summaries) under a user's credentials — i.e., the account is **not** a dedicated "copilot" or "bot" account/app — you **MUST** include a concise, visible note (e.g. a `> [!NOTE]` alert) indicating the content was AI/Copilot-generated. Skip this if the user explicitly asks you to omit it. + **Workflow**: Run the script → read the human-readable output + `[CODEFLOW_SUMMARY]` JSON → synthesize recommendations yourself. The script collects data; you generate the advice. ## Prerequisites