Conversation
Add a new workflow that acts as a team lead, dynamically assembling specialized AI agent teams (2-4 agents) to handle code implementation, PR reviews, doc reviews, strategy, and communications with built-in quality gates. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
WalkthroughThis PR introduces a new "Dev Team" workflow system that orchestrates multi-agent AI workflows for development tasks. It includes configuration metadata, skill definitions for task orchestration and pull request creation, and comprehensive documentation describing the system's architecture and operation. Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes 🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Copy the PR creation skill from the bugfix workflow, adapted for general use. This handles fork workflows, authentication, and remote setup systematically — addressing failures when the dev-team tried ad-hoc PR creation on the Ambient platform. The dev-team skill now directs users to /pr after code tasks complete instead of attempting its own PR creation logic. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@workflows/dev-team/.claude/skills/pr/SKILL.md`:
- Around line 469-476: Add a concrete URL-encoding example for the compare URL
fallback by showing how to encode PR_TITLE and PR_BODY into ENCODED_TITLE and
ENCODED_BODY and then build COMPARE_URL; specifically, add a shell-based example
that uses python3's urllib.parse.quote (or an equivalent URL-encoding command)
to produce ENCODED_TITLE and ENCODED_BODY from PR_TITLE and PR_BODY and then
demonstrates constructing COMPARE_URL with
?expand=1&title=${ENCODED_TITLE}&body=${ENCODED_BODY} so special characters are
safely encoded and the compare URL won’t break.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro
Run ID: 70ae6da8-edb0-4d73-995c-87911894e4cd
📒 Files selected for processing (4)
workflows/dev-team/.ambient/ambient.jsonworkflows/dev-team/.claude/skills/dev-team/SKILL.mdworkflows/dev-team/.claude/skills/pr/SKILL.mdworkflows/dev-team/README.md
| ```text | ||
| https://github.com/UPSTREAM_OWNER/REPO/compare/main...FORK_OWNER:BRANCH_NAME?expand=1&title=URL_ENCODED_TITLE&body=URL_ENCODED_BODY | ||
| ``` | ||
|
|
||
| URL-encode the title and body. If the encoded URL would exceed ~8KB | ||
| (browser limit), omit the `body` parameter — the commit message body | ||
| from Step 6 will still auto-fill the description for single-commit PRs. | ||
|
|
There was a problem hiding this comment.
Provide URL encoding implementation for compare URL fallback.
The instructions tell the agent to "URL-encode the title and body" but provide no actual encoding mechanism. Without proper URL encoding, special characters (spaces, quotes, special symbols) in PR titles or descriptions will break the compare URL. This fallback path is explicitly noted as "common and expected" for GitHub App bots (line 463), making it a frequently-used code path.
🔧 Suggested fix: Add shell-based URL encoding example
After line 471, add a concrete encoding example:
```text
https://github.com/UPSTREAM_OWNER/REPO/compare/main...FORK_OWNER:BRANCH_NAME?expand=1&title=URL_ENCODED_TITLE&body=URL_ENCODED_BODY
```
+
+ **URL-encode using Python:**
+ ```bash
+ # Encode title and body for the URL
+ ENCODED_TITLE=$(python3 -c "import urllib.parse; print(urllib.parse.quote('''$PR_TITLE'''))")
+ ENCODED_BODY=$(python3 -c "import urllib.parse; print(urllib.parse.quote('''$PR_BODY'''))")
+
+ # Construct the compare URL
+ COMPARE_URL="https://github.com/UPSTREAM_OWNER/REPO/compare/main...FORK_OWNER:BRANCH_NAME?expand=1&title=${ENCODED_TITLE}&body=${ENCODED_BODY}"
+ ```🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@workflows/dev-team/.claude/skills/pr/SKILL.md` around lines 469 - 476, Add a
concrete URL-encoding example for the compare URL fallback by showing how to
encode PR_TITLE and PR_BODY into ENCODED_TITLE and ENCODED_BODY and then build
COMPARE_URL; specifically, add a shell-based example that uses python3's
urllib.parse.quote (or an equivalent URL-encoding command) to produce
ENCODED_TITLE and ENCODED_BODY from PR_TITLE and PR_BODY and then demonstrates
constructing COMPARE_URL with
?expand=1&title=${ENCODED_TITLE}&body=${ENCODED_BODY} so special characters are
safely encoded and the compare URL won’t break.
There was a problem hiding this comment.
Skipping this for now. The PR skill here is a copy from the bugfix workflow, which also doesn't include this encoding example and works fine — the agent running the skill is an LLM that knows how to URL-encode when told to.
The PR skill is also being overhauled in #90, so we'll need to reconcile the diverging versions at some point. We'll address improvements to the PR skill holistically there rather than patching individual copies.
This comment was posted by Claude Code under the supervision of Bill Murdock.
Summary
dev-teamworkflow that acts as a team lead, dynamically assembling 2-4 specialized AI agents to handle development tasks/dev-team [task description]skill as its single entry point. That skill comes from Ben Browning's Claude configuration and is used with his permission.Test plan
https://github.com/jwm4/workflows.gitfeature/add-dev-team-workflowworkflows/dev-team/dev-teamskill with a simple code task/dev-teamskill with a PR review task🤖 Generated with Claude Code
This comment comes from Claude Code under the supervision of Bill Murdock.