Campaign orchestrator: enforce system-agnostic separation between workers and coordination #6929
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Campaign orchestrators previously mixed decision logic, state management, and conditional guidance in generated prompts. Workers could leak campaign awareness through embedded metrics and progress tracking.
Changes
Orchestrator architecture: four explicit phases
Replaced ad-hoc prompt generation with strict phase separation:
Each phase documents inputs, decisions, and outputs. No mixing of concerns.
Predefined project board schema
Orchestrators now update only:
status: "Todo" | "In Progress" | "Done"priority: "High" | "Medium" | "Low"size: "Small" | "Medium" | "Large"campaign_status: "active" | "completed"No free-form field mutation. All operations idempotent.
Removed conditional orchestrator variants
Deleted
ReportBlockersandCompletionGuidanceflags. All orchestrators follow identical rules. Template data simplified from 3 fields to 1 (ProjectURL).Correlation mechanism explicit
Workers embed
tracker-idin all assets via XML comment. Orchestrators discover work by searching"tracker-id: WORKER_ID" in:body. No workflow name matching, no file path dependencies.Example
Before (mixed concerns):
After (phase separation):
Workers unchanged. Project board remains single source of truth.
Warning
Firewall rules blocked me from connecting to one or more addresses (expand for details)
I tried to connect to the following addresses, but was blocked by firewall rules:
https://api.github.com/user/usr/bin/gh gh api user --jq .login eam.git l /opt/hostedtoolcache/go/1.25.0/x64/pkg/tool/linux_amd64/compile **/*.json sh 64/bin/go /opt/hostedtoolcstatus -V=f�� ithub/workflows node 64/bin/node l format:pkg-json node infocmp(http block)/usr/bin/gh gh api user --jq .login 0/x64/bin/node l /usr/bin/git -ignore-path /degit git 64/bin/go git remo�� tags/v6 origin e/git-remote-https npx prettier --cnode git 64/bin/go e/git-remote-https(http block)/usr/bin/gh gh api user --jq .login ithub/workflows -buildtags /usr/bin/git -errorsas -ifaceassert -nilfunc git -C it/ref/tags/v5 rev-parse /usr/lib/git-core/git by/82b4be1687122bash **/*.cjs bin/sh /usr/lib/git-cor/var/run/docker/runtime-runc/moby(http block)If you need me to access, download, or install something from one of these locations, you can either:
Original prompt
💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.