mirror of
https://github.com/github/awesome-copilot.git
synced 2026-04-30 12:15:56 +00:00
* Add ai-team-orchestration plugin: multi-agent dev team with Producer, Dev Team, QA agents * fix: use kebab-case agent names to match filenames * fix: regenerate README after agent name change * fix: address Copilot review — add edit tools to Producer/QA, use GitHub closing keywords * fix: update agent tools to official VS Code tool set names Replace outdated/nonexistent tool names with current official tool sets: - Producer: search, read, edit, web (removed nonexistent githubRepo) - Dev Team: search, read, edit, execute, web (replaced runCommands, problems, usages, etc.) - QA: search, read, edit, execute, web (removed nonexistent findTestFiles, runTests) Ref: https://code.visualstudio.com/docs/copilot/reference/copilot-vscode-features#_chat-tools * fix: remove frontmatter from plugin README per reviewer feedback --------- Co-authored-by: Aaron Powell <me@aaron-powell.com>
3.7 KiB
3.7 KiB
Anti-Patterns
Lessons learned from real multi-agent projects. Each anti-pattern was encountered at least once and caused real problems.
Git & Branching
| Don't | Do Instead | Why |
|---|---|---|
| Rebase feature branches | Regular merge | Rebase rewrites history and loses commits. When multiple chats contribute to a branch, rebase causes cascading regressions. |
| Squash merge PRs | Regular merge | Squash hides individual commits, making it impossible to revert a single fix. |
| Use worktrees on shared branches | Separate clones | Worktrees share the git index. Parallel teams stepping on each other's staging area causes confusion. |
| Push directly to main | Feature branch → PR → merge | Direct pushes bypass review and can't be reverted cleanly. |
Force push (--force) |
Fix forward or revert | Force push destroys remote history that other teams may have pulled. |
Team Roles
| Don't | Do Instead | Why |
|---|---|---|
| Producer writes code | Producer only plans, merges, files issues | When the coordinator starts coding, they lose track of the big picture. Fixes in the producer chat often conflict with dev team work. |
| One agent does everything | Separate agents for dev, QA, coordination | Context isolation prevents cross-contamination. QA shouldn't have edit tools. |
| Skip the brainstorm | Run brainstorm → plan → execute | Jumping straight to code produces generic results. Brainstorms surface edge cases early. |
| Vague brainstorm prompts ("you are the team") | Name each agent with distinct perspective | Named agents with defined tendencies produce real debate. Generic prompts produce bland consensus. |
Sprint Management
| Don't | Do Instead | Why |
|---|---|---|
| Batch "fix everything" commits | One commit per fix with issue reference | Batch commits make it impossible to track what was fixed. If one fix causes a regression, you can't revert just that fix. |
| Keep bugs only in chat | File GitHub Issues | Chat context dies when the conversation ends. Issues persist across all chats and teams. |
| Skip handoff docs (done.md) | Mandatory done.md + PROJECT_BRIEF update | Without handoff docs, the next chat starts blind. It may overwrite work or duplicate effort. |
| Skip progress tracker | Update progress.md after each phase | Without a progress tracker, context overflow recovery is impossible. The new chat doesn't know where the old one left off. |
| Rush the AI with time pressure | "Take your time, do it right" | Time pressure makes the LLM skip edge cases, write less tests, and produce lower quality code. "No rush" produces better results. |
Testing & QA
| Don't | Do Instead | Why |
|---|---|---|
| Merge before testing | Playtest → file issues → fix → merge | Merging untested code creates a broken main branch. QA can't test against a moving target. |
| QA modifies source code | QA only files issues, dev team fixes | QA fixes often miss context and introduce new bugs. Separation of concerns. |
| Close issues without verification | Dev fixes → QA verifies → close | Self-closing issues skips verification. The fix might not actually work. |
Context & Communication
| Don't | Do Instead | Why |
|---|---|---|
| Assume chats share memory | Files are the shared memory | Each chat is a fresh context. PROJECT_BRIEF.md and progress.md are the only things that survive. |
| Keep decisions in conversation | Write decisions to files | Decisions made in chat are lost when the chat closes. Write to docs/ or GitHub Issues. |
| Relay raw error logs between teams | Summarize and file as GitHub Issue | Raw logs waste context tokens. Summarize: component, steps, expected, actual. |