Skip to content

Conversation

Copy link
Contributor

Copilot AI commented Jan 21, 2026

Remove Active/Passive Campaign Distinction

All campaigns are now "active" in that the orchestrator can make decisions and dispatch workflows.

Changes Made

  • Remove conditional workflow execution instructions in orchestrator compiler
  • Update execute-agentic-campaign-workflow.md to remove "active" terminology
  • Update documentation to remove references to passive/active modes
  • Test campaign compilation with and without workflows configured
  • Run pre-commit validation (fmt, lint, test)
  • Document orchestrator's ability to pass input parameters to workers
  • Add dispatch input examples to worker workflow template
  • Recompile campaigns with updated templates

Implementation Details

pkg/campaign/orchestrator.go:

  • Removed conditional if len(spec.Workflows) > 0 check
  • All campaigns now include workflow execution capabilities regardless of initial configuration
  • Updated comment to reflect that orchestrator can always dispatch workflows

pkg/campaign/template.go:

  • Added add1 template function for 1-based indexing in workflow lists

Template files:

  • Changed "actively execute workflows" to "can execute workflows"
  • Changed "Active execution is an advanced feature" to "Workflow execution is an advanced capability"
  • Removed reference to .lock.yml files to focus on source .md files
  • Documented input parameters: Orchestrator can pass input parameters to workers when dispatching (e.g., inputs: {priority: "high", target: "security"})
  • Added reference to DispatchOps documentation for input parameter examples
  • Worker workflow template: Updated to include workflow_dispatch with example inputs (priority, target)
  • Shows how to reference inputs: Example usage of ${{ github.event.inputs.INPUT_NAME }} in workflow markdown
  • Recompiled campaigns: Updated campaign lock files to incorporate latest template changes

Impact

  • All campaigns gain workflow dispatch capabilities
  • Orchestrators can provide context to workers via input parameters
  • Worker workflows can accept and use input parameters from orchestrators
  • No breaking changes - campaigns without workflows configured still function correctly
  • The orchestrator template is now consistent for all campaigns
  • Tests pass including TestBuildOrchestrator_TrackerIDMonitoring

Testing

  • All campaign orchestrator tests pass
  • Verified compilation works for campaigns with and without workflows
  • Template rendering works correctly with add1 function for workflow lists
  • Generated campaign orchestrators include input parameter guidance
  • Worker workflow creation template includes dispatch inputs configuration
  • Campaigns recompiled successfully with updated templates
Original prompt

There should be no more mention or distinction between active and passive campaigns anymore. They are all active in that they orchestrator makes decisions and dispatches.


💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.

Copilot AI and others added 2 commits January 21, 2026 18:34
Co-authored-by: mnkiefer <8320933+mnkiefer@users.noreply.github.com>
Co-authored-by: mnkiefer <8320933+mnkiefer@users.noreply.github.com>
Copilot AI changed the title [WIP] Remove distinction between active and passive campaigns Remove active/passive campaign distinction Jan 21, 2026
Copilot AI requested a review from mnkiefer January 21, 2026 18:51
@mnkiefer
Copy link
Contributor

@copilot Using dispatch, the campaign orchestrator can also give workers input based on the decisions it makes.

Co-authored-by: mnkiefer <8320933+mnkiefer@users.noreply.github.com>
Copy link
Contributor Author

Copilot AI commented Jan 21, 2026

@copilot Using dispatch, the campaign orchestrator can also give workers input based on the decisions it makes.

Updated the workflow execution template to document this capability. The orchestrator can now pass input parameters to workers (e.g., inputs: {priority: "high", target: "security"}) and includes a reference to the DispatchOps documentation for examples. See commit 0511cb1.

@mnkiefer
Copy link
Contributor

@copilot Ensure that campaign associated worker workflows can accept dispatch inputs from orchestrator.

Co-authored-by: mnkiefer <8320933+mnkiefer@users.noreply.github.com>
Copy link
Contributor Author

Copilot AI commented Jan 21, 2026

@copilot Ensure that campaign associated worker workflows can accept dispatch inputs from orchestrator.

Updated the worker workflow creation template to include workflow_dispatch inputs configuration. The template now shows example priority (choice) and target (string) inputs, and demonstrates how to reference them in the workflow markdown using ${{ github.event.inputs.INPUT_NAME }}. This ensures campaign-associated worker workflows can accept dispatch inputs from the orchestrator. See commit e62b2ab.

@mnkiefer mnkiefer marked this pull request as ready for review January 21, 2026 20:30
@mnkiefer
Copy link
Contributor

@copilot recompile campaigns

Co-authored-by: mnkiefer <8320933+mnkiefer@users.noreply.github.com>
Copy link
Contributor Author

Copilot AI commented Jan 21, 2026

@copilot recompile campaigns

Recompiled campaign with the updated templates. The security-alert-burndown campaign lock file now includes the latest template changes for workflow execution and dispatch inputs. See commit f0c7ddf.

Copilot AI requested a review from mnkiefer January 21, 2026 20:40
@mnkiefer mnkiefer merged commit bc08279 into main Jan 21, 2026
48 checks passed
@mnkiefer mnkiefer deleted the copilot/remove-active-passive-campaigns branch January 21, 2026 20:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants