diff --git a/.agents/skills/pr-watch/SKILL.md b/.agents/skills/pr-watch/SKILL.md index d54afa71..c6a447a1 100644 --- a/.agents/skills/pr-watch/SKILL.md +++ b/.agents/skills/pr-watch/SKILL.md @@ -66,16 +66,29 @@ Redirect to a file if you need to process it. Before treating a PR as done or merging: 1. **Read all review feedback** — reviews against an earlier head may still apply -2. **Answer substantive feedback** on the PR with an identity line naming the - model (the repo owner's account is shared) +2. **Answer substantive feedback with attribution** — every reply must include + the attribution line (see below) 3. **Re-check after each push** that new reviews target the current head SHA 4. **Don't wait indefinitely on Copilot/Codex** — reviews arrive as quota allows; an absent review and an unrequested one look identical. The adversarial review that gates a merge is dispatched by the orchestrator; external reviews are read *in addition*, not instead. -See AGENTS.md "Shipping a wave" and "Read the PR's reviews before merging" for -the full workflow, Copilot request mechanics, and how to answer declined findings. +### GitHub Attribution (Hard Rule) + +**Every GitHub write must include an attribution line.** Posts go out under the +repository owner's account — an unattributed post reads as the human's words. + +Open the body with: `_Posted by ()_` + +Examples: +- `_Posted by Claude (Opus 4.5)_` +- `_Posted by Cursor Agent (claude-sonnet-5)_` + +A thread is not "answered" until the reply carries this attribution. + +See AGENTS.md "GitHub Attribution" for the full rule and "Shipping a wave" for +Copilot request mechanics and how to answer declined findings. ## Do not write the loop yourself diff --git a/AGENTS.md b/AGENTS.md index a207a172..b5c5e18a 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -65,6 +65,29 @@ automatic dev shell activation. See `context/cloud-agents.md` for environment-specific notes (nix, network, etc.). +### GitHub Attribution (Hard Rule) + +**Every GitHub write (PR, comment, review reply) must include an attribution line identifying +the AI agent.** Posts go out under the repository owner's account, and an unattributed post +reads as the human owner's words to everyone who sees it. + +**Format:** Open the body with an italicized attribution line: + +``` +_Posted by ()_ +``` + +Examples: +- `_Posted by Claude (Opus 4.5)_` +- `_Posted by Cursor Agent (claude-sonnet-5)_` +- `_Posted by Claude Code_` + +For PR bodies, the `🤖 Generated with …` footer that some tools add covers this. For +comments and review replies, add the line yourself — there is no automatic footer. + +**This applies to:** PR creation, PR updates, issue comments, review comments, and review +replies. A thread is not "answered" until the reply carries this attribution. + ### PR Tracking: Checks AND Reviews For any PR an agent owns or is working on, **track both CI checks and GitHub comments/reviews**. @@ -76,7 +99,7 @@ not comments, and are easy to miss if you only read the comment thread. 1. **Run `scripts/pr-watch `** — waits for checks, then prints all reviews/comments 2. **Read all review feedback** — reviews against an earlier head may still apply -3. **Answer substantive feedback** with an identity line naming the model before merging +3. **Answer substantive feedback with attribution** before merging (see format above) 4. **Re-check after each push** that new reviews target the current head SHA 5. **Don't wait indefinitely on Copilot/Codex** — reviews arrive as quota allows diff --git a/context/cloud-agents.md b/context/cloud-agents.md index e0ce73c6..fa6bf2f1 100644 --- a/context/cloud-agents.md +++ b/context/cloud-agents.md @@ -172,7 +172,7 @@ For any PR you own, **track both CI checks and GitHub comments/reviews**: - **`scripts/pr-watch `**: Waits for checks, then prints all reviews/comments (default). Reviews are a separate API surface — Codex/ChatGPT reviews arrive as *reviews* not comments. -- **Answer feedback** with an identity line naming the model before marking work done. +- **Answer feedback with attribution** before marking work done (see below). - **Re-check after push** that reviews target the current head SHA. The `pr-watch` skill (`.agents/skills/pr-watch/SKILL.md`) is the agent-facing recipe. @@ -180,6 +180,23 @@ See AGENTS.md "PR Tracking: Checks AND Reviews" and "Shipping a wave" for the fu --- +## GitHub Attribution (Hard Rule) + +**Every GitHub write (PR, comment, review reply) must include an attribution line.** +Posts go out under the repository owner's account — an unattributed post reads as the +human's words. + +Open the body with: `_Posted by ()_` + +Examples: +- `_Posted by Claude (Opus 4.5)_` +- `_Posted by Cursor Agent (claude-sonnet-5)_` + +A thread is not "answered" until the reply carries this attribution. See AGENTS.md +"GitHub Attribution" for the full rule. + +--- + ## Knowledge Base **Use `scripts/kb`, not Prolog MCP.** The Prolog MCP is not available in all agent stacks