Skip to content

Conversation

@mnkiefer
Copy link
Contributor

@mnkiefer mnkiefer commented Nov 9, 2025

Campaign capability update-project

  • Within the concept of Campaigns, in which AI agents to orchestrate focused, time-bound initiatives, for example, automatically update project boards to populate tasks and track progress:
    • Updated the main workflow schema to add the update-project safe output, enabling smart management of GitHub Projects (v2) boards, including creation, item addition, and field updates.
    • Added a section to docs detailing campaign workflows, campaign IDs, orchestration patterns, integration with worker workflows, and best practices for planning, execution, and tracking.

Added Workflow "AI Triage Campaign"

  • Added example campaign workflows that uses update-project. Below is a sample run that has picked out 10 AI ready issues and added them to the Campaign Project Board for Copilot to work on.

Run Steps:

Screenshot 2025-11-16 at 09 45 44

Run Summary:

Screenshot 2025-11-16 at 09 46 07

Campaign Project Board:

Screenshot 2025-11-16 at 09 46 46

/cc @pelikhan

@mnkiefer mnkiefer self-assigned this Nov 9, 2025
@mnkiefer mnkiefer changed the title feat: add campaign project management feat: add campaigns Nov 10, 2025
@mnkiefer mnkiefer marked this pull request as ready for review November 15, 2025 10:52
Copilot AI review requested due to automatic review settings November 15, 2025 10:52
Copilot finished reviewing on behalf of mnkiefer November 15, 2025 10:54
Copy link
Contributor

Copilot AI left a 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 adds campaign workflow capabilities to enable AI agents to orchestrate focused, time-bound initiatives with automatic project board management. The key functionality is the new update-project safe output that provides smart GitHub Projects v2 board management - automatically creating projects if they don't exist, adding issues/PRs to boards, and updating custom fields.

Key changes:

  • Adds update-project safe output with support for project creation, item addition, and field updates
  • Implements campaign ID tracking system (format: slug-timestamp) with automatic label generation
  • Adds comprehensive documentation for campaign workflows including patterns and best practices

Reviewed Changes

Copilot reviewed 33 out of 34 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
schemas/agent-output.json Adds UpdateProjectOutput schema with project, campaign_id, content fields, and custom field support
pkg/workflow/update_project_job.go Creates update_project job builder with proper permissions and environment variables
pkg/workflow/update_project.go Defines UpdateProjectConfig struct and parsing logic
pkg/workflow/safe_outputs.go Integrates update-project configuration parsing and safe outputs config generation
pkg/workflow/permissions.go Adds NewPermissionsContentsReadProjectsWrite helper for project write permissions
pkg/workflow/js/update_project.test.cjs Comprehensive test suite covering project creation, item addition, field updates, and error handling
pkg/workflow/js/update_project.cjs Core JavaScript implementation handling project operations, campaign IDs, and GraphQL queries
pkg/workflow/js.go Adds bundling support for update_project script with lazy initialization
pkg/workflow/compiler_jobs.go Integrates update_project job into safe outputs job building pipeline
pkg/workflow/compiler.go Adds UpdateProjects field to SafeOutputsConfig struct
pkg/parser/schemas/main_workflow_schema.json Adds update-project schema to workflow configuration
docs/src/content/docs/guides/campaigns.md Comprehensive campaign workflow documentation with examples and best practices
.golangci.yml Updates golangci-lint configuration version
Multiple .lock.yml files Updates action pins (actions/setup-go@v6, actions/download-artifact@v4, super-linter/slim@v8)
.github/workflows/ai-triage-campaign.md Example campaign workflow demonstrating AI-focused issue triage
pkg/workflow/action_pins_test.go Updates expected action pin count from 20 to 23
Comments suppressed due to low confidence (1)

docs/src/content/docs/guides/campaigns.md:1

  • The documentation references a hardcoded user-specific project URL ('mnkiefer'). This should be replaced with a placeholder or generic example to avoid confusion. Use something like https://github.com/users/YOUR_USERNAME/projects/24 or reference the workflow input variable instead.
---

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@mnkiefer mnkiefer merged commit 5b5fa40 into main Nov 16, 2025
92 checks passed
@mnkiefer mnkiefer deleted the project-boards branch November 16, 2025 08:56
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.

3 participants