You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: .github/agents/agentic-campaign-designer.agent.md
+43-20Lines changed: 43 additions & 20 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -19,21 +19,23 @@ This agent operates in two distinct modes:
19
19
When triggered from a GitHub issue created via a "Create a Campaign" issue form:
20
20
21
21
1.**Parse the Issue Form Data** - Extract campaign requirements from the issue body:
22
-
-**Campaign Name**: The `campaign_name` field from the issue form
23
-
-**Campaign Description**: The `campaign_description` field describing the campaign's purpose
22
+
-**Agentic Campaign Goal**: The `campaign_goal` field describing what the campaign should accomplish
24
23
-**Additional Context**: The optional `additional_context` field with extra requirements
24
+
-**Project Board Assignment**: Query the issue's project assignments to get the project URL
25
25
26
26
2.**Generate the Campaign Specification** - Create a complete `.campaign.md` file without interaction:
27
+
- Derive a clear campaign name from the goal
27
28
- Analyze requirements and determine campaign ID (kebab-case)
29
+
- Retrieve project URL from issue's project board assignment
28
30
- Identify required workflows and their purposes
29
31
- Determine owners, sponsors, and risk level
30
32
- Configure allowed safe outputs for campaign operations
31
33
- Apply governance and security best practices
32
34
33
35
3.**Create the Campaign File** at `.github/workflows/<campaign-id>.campaign.md`:
34
-
- Use a kebab-case campaign ID derived from the campaign name (e.g., "Security Q1 2025" → "security-q1-2025")
36
+
- Use a kebab-case campaign ID derived from the goal (e.g., "Security Vulnerability Remediation" → "security-vulnerability-remediation")
35
37
-**CRITICAL**: Before creating, check if the file exists. If it does, append a suffix like `-v2` or a timestamp
36
-
- Include complete frontmatter with all necessary configuration
38
+
- Include complete frontmatter with all necessary configuration including the project URL
37
39
- Write a clear description of campaign goals and agent behavior
38
40
39
41
4.**Compile the Campaign** using `gh aw compile <campaign-id>` to generate the orchestrator workflow
@@ -88,11 +90,13 @@ DO NOT ask all these questions at once; instead, engage in a back-and-forth conv
88
90
89
91
3.**Campaign Spec Fields**
90
92
91
-
Based on the conversation, determine values for:
93
+
Based on the conversation (Interactive Mode) or issue data (Issue Form Mode), determine values for:
92
94
-`id` — stable identifier in kebab-case (e.g., `security-q1-2025`)
93
95
-`name` — human-friendly title
94
96
-`description` — short explanation of campaign purpose
95
97
-`project-url` — GitHub Project URL for campaign dashboard
98
+
-**Issue Form Mode**: Retrieve from issue's project assignments using GitHub CLI
99
+
-**Interactive Mode**: Ask the user for the project URL
96
100
-`workflows` — workflow IDs (basenames under `.github/workflows/` without `.md`)
97
101
-`memory-paths` — repo-memory paths under `memory/campaigns/<campaign-id>-*/**`
98
102
-`owners` — primary human owners
@@ -118,35 +122,54 @@ DO NOT ask all these questions at once; instead, engage in a back-and-forth conv
118
122
119
123
When processing a GitHub issue created via the campaign creation form, follow these steps:
120
124
121
-
### Step 1: Parse the Issue Form
125
+
### Step 1: Parse the Issue Form and Retrieve Project Assignment
122
126
123
127
Extract the following fields from the issue body:
124
-
-**Campaign Name** (required): Look for the "Campaign Name" section
125
-
-**Campaign Description** (required): Look for the "Campaign Description" section
128
+
-**Agentic Campaign Goal** (required): Look for the "Agentic Campaign Goal" section
126
129
-**Additional Context** (optional): Look for the "Additional Context" section
130
+
-**Project Board Assignment** (required): Query the issue's project board assignments using GitHub CLI
127
131
128
132
Example issue body format:
129
133
```
130
-
### Campaign Name
131
-
Security Q1 2025
132
-
133
-
### Campaign Description
134
+
### Agentic Campaign Goal
134
135
Automated security improvements and vulnerability remediation
135
136
136
137
### Additional Context (Optional)
137
-
Should track progress in a GitHub Project and allow creating issues and PRs
138
+
Should allow creating issues and PRs
139
+
```
140
+
141
+
**Important: Retrieve the Project Board URL from Issue Assignments**
142
+
143
+
The user adds the issue to a GitHub Project board via the UI after creating the issue. You must query this assignment using GitHub CLI (replace `ISSUE_NUMBER` with the actual issue number from `github.event.issue.number`):
- Inform the user that a project board assignment is required
157
+
- Provide clear instructions: "Please assign this issue to a GitHub Project board using the project selector in the issue sidebar, then mention me again to continue."
158
+
- Explain they can also recreate the issue from the project board directly (which auto-assigns the project)
159
+
- Do not proceed with campaign creation without a valid project URL
160
+
140
161
### Step 2: Design the Campaign Specification
141
162
142
-
Based on the parsed requirements, determine:
163
+
Based on the parsed requirements and project assignment, determine:
143
164
144
-
1.**Campaign ID**: Convert the campaign name to kebab-case (e.g., "Security Q1 2025" → "security-q1-2025")
145
-
2.**Workflows**: Identify workflows needed to implement the campaign
146
-
3.**Owners**: Determine who will own and maintain the campaign
147
-
4.**Risk Level**: Assess the risk level based on the campaign's scope
148
-
5.**Safe Outputs**: Determine which safe outputs should be allowed
149
-
6.**Approval Policy**: Define approval requirements based on risk level
165
+
1.**Campaign Name**: Derive a clear campaign name from the goal (e.g., "Security Vulnerability Remediation", "Node.js Migration")
166
+
2.**Campaign ID**: Convert the campaign name to kebab-case (e.g., "Security Vulnerability Remediation" → "security-vulnerability-remediation")
167
+
3.**Project URL**: Use the project URL retrieved from the issue's project assignments
168
+
4.**Workflows**: Identify workflows needed to implement the campaign
169
+
5.**Owners**: Determine who will own and maintain the campaign
170
+
6.**Risk Level**: Assess the risk level based on the campaign's scope
171
+
7.**Safe Outputs**: Determine which safe outputs should be allowed
172
+
8.**Approval Policy**: Define approval requirements based on risk level
Copy file name to clipboardExpand all lines: docs/src/content/docs/guides/campaigns/getting-started.md
+18-2Lines changed: 18 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -82,12 +82,27 @@ Campaign tooling enforces that a campaign repo-memory write includes a cursor an
82
82
83
83
## Start an agentic campaign with GitHub Issue Forms
84
84
85
-
This repo also includes a “🚀 Start an Agentic Campaign” issue form. Use it when you want to capture intent first and let an agent scaffold the spec in a PR.
85
+
This repo also includes a "🚀 Start an Agentic Campaign" issue form. Use it when you want to capture intent first and let an agent scaffold the spec in a PR.
86
+
87
+
### Creating the Campaign Issue
88
+
89
+
**Option A (Recommended):** Create from your project board:
90
+
1. Open your GitHub Project board
91
+
2. Click "Add item" → "Create new issue"
92
+
3. Select this repository and choose the "🚀 Start an Agentic Campaign" template
93
+
4. The project will be automatically assigned to the issue ✅
94
+
95
+
**Option B:** Create from the repository's Issues page:
96
+
1. Navigate to Issues → New Issue
97
+
2. Select "🚀 Start an Agentic Campaign"
98
+
3.**Important:** Before submitting, scroll down and use the project selector to assign the issue to your project board
99
+
100
+
Creating the issue from the project board (Option A) is recommended as it ensures the project is automatically assigned and reduces the chance of forgetting this required step.
86
101
87
102
When you submit the issue form:
88
103
89
104
1.**an agentic campaign issue is created** - This becomes your campaign's central hub with the `campaign` and `campaign-tracker` labels
90
-
2.**An agent validates your project board** - Ensures the URL is accessible and properly configured
105
+
2.**An agent validates your project board** - Ensures the project assignment exists and is accessible
91
106
3.**an agentic campaign spec is generated** - Creates `.github/workflows/<id>.campaign.md` with your inputs as a PR
92
107
4.**The spec is linked to the issue** - So you can track the technical implementation
93
108
5.**Your project board is configured** - The agent sets up tracking labels and fields
@@ -101,3 +116,4 @@ You manage the agentic campaign from the issue. The generated workflow files are
101
116
-**Lower barrier to entry**: No need to understand campaign spec file format
102
117
-**Traceable**: Issue serves as the agentic campaign's command center with full history
103
118
-**Agent-assisted scaffolding**: Automated generation of spec files and workflows
119
+
-**Automatic project assignment**: When created from project board, the project is automatically linked
0 commit comments