Add bootstrap and worker metadata for zero-discovery campaign initialization#11269
Add bootstrap and worker metadata for zero-discovery campaign initialization#11269
Conversation
Co-authored-by: mnkiefer <8320933+mnkiefer@users.noreply.github.com>
Co-authored-by: mnkiefer <8320933+mnkiefer@users.noreply.github.com>
Co-authored-by: mnkiefer <8320933+mnkiefer@users.noreply.github.com>
|
@copilot campaigns should use regular labels, not tracker label/ids. |
…r-label Co-authored-by: mnkiefer <8320933+mnkiefer@users.noreply.github.com>
Updated to use regular labels instead of tracker-label in worker metadata. Workers now use the Changes in commit 967a316:
|
|
@copilot Remove invalid content entry in campaign docs |
Co-authored-by: mnkiefer <8320933+mnkiefer@users.noreply.github.com>
Removed invalid content entry. The Fixed in commit ff659c3. |
Implementation Complete: Bootstrap + Planning Model for Campaign Generator/Orchestrator ✅
This PR implements an explicit bootstrap + planning model for campaign generator/orchestrator workflows, addressing all requirements from the problem statement.
✅ All Requirements Met
1. Bootstrap + Planning Model
Requirement: Create/select initial work items when discovery = 0
Solution: Three bootstrap strategies implemented:
seeder-worker: Dispatch scanner to discover workproject-todos: Read from Project board Todo columnmanual: Wait for manual work item creation2. Worker Metadata / Standardized Payload Schema
Requirement: Deterministic worker selection with defined input contracts
Solution:
WorkerMetadatastruct with capabilities, payload schemas, prioritiesWorkerPayloadFielddefines expected inputs with types and descriptions3. Labeling/Correlation Contract
Requirement: Guarantee worker outputs are discoverable and attributable
Solution:
WorkerOutputLabelingdefines guaranteed labeling format[{key}] {description}4. Orchestrator Integration
Requirement: Orchestrator uses bootstrap when discovery = 0
Solution:
Implementation Details
Core Changes:
pkg/campaign/spec.go: Added 8 new types for bootstrap and worker metadatapkg/campaign/orchestrator.go: Integrated bootstrap renderingpkg/campaign/template.go: AddedRenderBootstrapInstructions()pkg/campaign/schemas/campaign_spec_schema.json: Extended schema.github/aw/bootstrap-agentic-campaign.md: Bootstrap templateTesting:
Documentation:
docs/campaign-workers.mdwith bootstrap guidedocs/bootstrap-implementation-summary.mdFiles Changed (10 files)
Implementation:
pkg/campaign/spec.go- Core types (+206 lines)pkg/campaign/orchestrator.go- Bootstrap integration (+42 lines)pkg/campaign/template.go- Template rendering (+27 lines)pkg/campaign/schemas/campaign_spec_schema.json- Schema (+200 lines).github/aw/bootstrap-agentic-campaign.md- Bootstrap template (+156 lines)Testing:
6.
pkg/campaign/bootstrap_test.go- Unit tests (+500 lines)Documentation:
7.
docs/campaign-workers.md- Bootstrap guide (+120 lines)8.
docs/bootstrap-implementation-summary.md- Complete overview (+350 lines)Key Features
✅ Zero Discovery Bootstrap: 3 strategies for initial work creation
✅ Worker Metadata: Capabilities, schemas, output contracts
✅ Deterministic Selection: Priority-based worker routing
✅ Guaranteed Discoverability: Campaign tracker-label + deterministic keys
✅ Idempotency Strategies: 4 patterns documented
✅ Type Safety: Payload schemas with validation
✅ Regular Labels: Workers use standard labels, not separate tracker-label field
Testing Coverage
Example Usage
Migration Path
✅ Backward Compatible: Existing campaigns work without changes
✅ Opt-in: New features are optional
✅ Incremental: Can add bootstrap or workers independently
Ready for review and merge! 🚀
Original prompt
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.