-
Notifications
You must be signed in to change notification settings - Fork 34
feat: add support for campaign objectives and kpis #7237
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
mnkiefer
commented
Dec 22, 2025
- Enhanced CampaignSpec to include Objective and KPIs fields.
- Updated BuildOrchestrator to render Objective and KPIs in markdown.
- Added validation rules to ensure consistency between Objective and KPIs.
- Introduced new tests to validate the behavior of Objective and KPIs.
- Updated orchestrator instructions to include guidance on Objective and KPIs.
- Modified JSON schema to reflect new fields for campaign specifications.
- Improved error handling in push_repo_memory.js for campaign mode.
- Enhanced CampaignSpec to include Objective and KPIs fields. - Updated BuildOrchestrator to render Objective and KPIs in markdown. - Added validation rules to ensure consistency between Objective and KPIs. - Introduced new tests to validate the behavior of Objective and KPIs. - Updated orchestrator instructions to include guidance on Objective and KPIs. - Modified JSON schema to reflect new fields for campaign specifications. - Improved error handling in push_repo_memory.js for campaign mode.
|
@copilot: make lint. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR enhances the campaign system by adding first-class support for campaign objectives and KPIs (Key Performance Indicators). The changes enable campaigns to define success criteria with measurable KPIs, enforce validation rules to ensure consistency, and render this information in orchestrator instructions to guide AI agents toward measurable outcomes.
Key changes:
- Added
Objective(string) andKPIs(array) fields toCampaignSpecwith corresponding validation - Enhanced campaign orchestrator to render objectives and KPIs in markdown output and agent instructions
- Implemented campaign mode enforcement in repo-memory push operations with validation for cursor and metrics snapshots
- Updated documentation to explain the objective/KPI model and campaign patterns
Reviewed changes
Copilot reviewed 27 out of 27 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
pkg/campaign/spec.go |
Added Objective field and CampaignKPI struct with validation constraints |
pkg/campaign/validation.go |
Implemented validateObjectiveAndKPIs() with coupling rules and KPI field validation |
pkg/campaign/validation_test.go |
Added comprehensive test coverage for objective/KPI validation scenarios |
pkg/campaign/orchestrator.go |
Updated to render objective and KPIs in markdown and pass to template data |
pkg/campaign/orchestrator_test.go |
Added test verifying objective/KPI rendering in orchestrator output |
pkg/campaign/template.go |
Extended CampaignPromptData with Objective, KPIs, and MetricsGlob fields |
pkg/campaign/loader.go |
Updated skeleton creation to include default MemoryPaths and MetricsGlob |
pkg/campaign/schemas/campaign_spec_schema.json |
Added JSON schema definitions for objective and kpis fields |
pkg/campaign/prompts/orchestrator_instructions.md |
Enhanced instructions with objective/KPI guidance and metrics collection requirements |
pkg/workflow/js/push_repo_memory.cjs |
Added campaign mode detection, validation functions, and path traversal protection |
pkg/cli/compile_campaign_orchestrator_test.go |
Updated test data to use simplified memory path patterns |
docs/src/content/docs/guides/campaigns/specs.md |
Rewrote to explain campaign model with objectives, KPIs, and repo-memory patterns |
docs/src/content/docs/guides/campaigns/getting-started.md |
Simplified getting started guide with objective/KPI examples |
docs/src/content/docs/guides/campaigns.md |
Refactored to emphasize delegation model and measurable outcomes |
Multiple .lock.yml files |
Compiled workflow outputs reflecting the updated push_repo_memory.cjs script |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
@copilot: Only keep affected files in this PR, restore the others to main version. |
| const fs = require("fs"); | ||
| const path = require("path"); | ||
| const { execSync } = require("child_process"); | ||
| const core = require("@actions/core"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@mnkiefer this package is not available locally.