Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
69 commits
Select commit Hold shift + click to select a range
a4be762
feat: add campaign project management
Nov 9, 2025
6480f2d
fix: handle permission errors
Nov 9, 2025
7e54d18
fix: make research topic optional inputs
Nov 10, 2025
9bd42ef
fix: fill priority add team fields
Nov 10, 2025
42e6105
add link to project board
Nov 10, 2025
e86306c
implement projects for all
Nov 10, 2025
c51db1f
implement project-board option
Nov 10, 2025
3bd9feb
removed project campaigns for now
Nov 10, 2025
cd54f3f
enhance project board creation
Nov 10, 2025
a10da2b
use claude as default orchestrator
Nov 10, 2025
27ab23f
remove model field
Nov 10, 2025
6ff6455
add update project
Nov 10, 2025
2f10a8c
update docs
Nov 10, 2025
cd77301
Merge branch 'main' into project-boards
mnkiefer Nov 10, 2025
d739ca2
add update_project job and related scripts
Nov 10, 2025
7141513
remove redundant files
Nov 10, 2025
fb3e293
update agent output schema
Nov 10, 2025
cc82e2f
add campaign workflows
Nov 10, 2025
9faa238
fix lint errors
Nov 10, 2025
0aee0ff
add update_project configuration to safe outputs
Nov 11, 2025
e71b2c9
remove unused imports
Nov 11, 2025
f923fcd
fixed auth
Nov 11, 2025
9dec40c
add tests
Nov 11, 2025
e25e8f1
remove short description from project creation
Nov 11, 2025
77eb466
update project ID retrieval
Nov 11, 2025
7b7d4d8
add error handling for project creation on user accounts
Nov 11, 2025
ddbc15e
refactor project retrieval logic
Nov 12, 2025
bdbb8cc
reqiore project github token
Nov 12, 2025
07b0405
rename to PROJECT_GITHUB_TOKEN
Nov 12, 2025
e149a48
just one campaign example for now
Nov 12, 2025
b77cef9
Merge branch 'main' into project-boards
mnkiefer Nov 12, 2025
b23c820
Merge branch 'main' into project-boards
mnkiefer Nov 12, 2025
8743b1a
add project URL input and adjust safe output limits
Nov 12, 2025
419c5ab
Merge branch 'main' into project-boards
mnkiefer Nov 12, 2025
dbb552e
update main schema
Nov 12, 2025
1f5320f
update project handling
mnkiefer Nov 13, 2025
f33d52f
update project item handling
mnkiefer Nov 13, 2025
87aab5b
rm preflight test script
mnkiefer Nov 13, 2025
d439b3a
fix: correct project name formatting
mnkiefer Nov 13, 2025
576980a
Merge branch 'main' into project-boards
mnkiefer Nov 13, 2025
2807c14
remove unnecessary write permission for issues
mnkiefer Nov 13, 2025
3e67084
add error handling and field validation
mnkiefer Nov 14, 2025
9c5fa78
change AI engine from Copilot to Claude
mnkiefer Nov 14, 2025
81a8a4c
Refine project URL handling
mnkiefer Nov 14, 2025
aec40b1
Merge branch 'main' into project-boards
mnkiefer Nov 14, 2025
fe274a3
switch back to copilot
mnkiefer Nov 14, 2025
d7076ab
fix tests and lint errors
mnkiefer Nov 14, 2025
8a9d648
Add description to options in project fields
mnkiefer Nov 14, 2025
8053765
use actions/setup-go@v6 and update action pins
mnkiefer Nov 14, 2025
a40167c
Fix stop-after time preservation during workflow recompilation (#3950)
Copilot Nov 14, 2025
b24ee87
Fix syntax errors in stop_after_test.go (#3967)
github-actions[bot] Nov 14, 2025
e4886ac
added markdown lint
pelikhan Nov 14, 2025
fc79f31
recompile workflows
pelikhan Nov 14, 2025
250b3b5
a few more ignore warnings
pelikhan Nov 14, 2025
81b016b
move to lint file workflows folder
pelikhan Nov 14, 2025
19ea0ba
ignore test junk
pelikhan Nov 14, 2025
a486478
Merge branch 'main' into project-boards
mnkiefer Nov 14, 2025
1ec77ef
add AI triage campaign
mnkiefer Nov 15, 2025
10f4621
Merge branch 'main' into project-boards
mnkiefer Nov 15, 2025
6d11e0a
update
mnkiefer Nov 15, 2025
634251e
update test
mnkiefer Nov 15, 2025
14f2199
Update pkg/workflow/js/update_project.cjs
mnkiefer Nov 15, 2025
afe9334
Update pkg/workflow/js/update_project.cjs
mnkiefer Nov 15, 2025
0ec7a1a
Update pkg/workflow/js/update_project.cjs
mnkiefer Nov 15, 2025
fa36be4
Update pkg/workflow/js/update_project.cjs
mnkiefer Nov 15, 2025
7abc1a4
Merge branch 'main' into project-boards
mnkiefer Nov 15, 2025
c34e6d4
Update setup-go action version across multiple workflow files
mnkiefer Nov 15, 2025
d4da186
Merge branch 'main' into project-boards
mnkiefer Nov 15, 2025
62f6415
apply suggested changes
mnkiefer Nov 15, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions .github/aw/actions-lock.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,11 @@
"version": "v5",
"sha": "08c6903cd8c0fde910a37f88322edcfb5dd907a8"
},
"actions/download-artifact@v4": {
"repo": "actions/download-artifact",
"version": "v4",
"sha": "d3f86a106a0bac45b974a628896c90dbdf5c8093"
},
"actions/download-artifact@v6": {
"repo": "actions/download-artifact",
"version": "v6",
Expand All @@ -35,6 +40,11 @@
"version": "v5",
"sha": "d35c59abb061a4a6fb18e82ac0862c26744d6ab5"
},
"actions/setup-go@v6": {
"repo": "actions/setup-go",
"version": "v6",
"sha": "44694675825211faa026b3c33043df3e48a5fa00"
},
"actions/setup-java@v4": {
"repo": "actions/setup-java",
"version": "v4",
Expand Down Expand Up @@ -95,6 +105,11 @@
"version": "v1",
"sha": "e5517072e87f198d9533967ae13d97c11b604005"
},
"super-linter/super-linter/slim@v8": {
"repo": "super-linter/super-linter/slim",
"version": "v8",
"sha": "f6d06a003575dde14f917e642302cf1251f28f4a"
},
"super-linter/super-linter@v8.2.1": {
"repo": "super-linter/super-linter",
"version": "v8.2.1",
Expand Down
4,659 changes: 4,659 additions & 0 deletions .github/workflows/ai-triage-campaign.lock.yml

Large diffs are not rendered by default.

269 changes: 269 additions & 0 deletions .github/workflows/ai-triage-campaign.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,269 @@
---
name: AI Triage Campaign
description: Automatically identify, score, and assign issues to AI agents for efficient resolution

on:
schedule:
- cron: "0 */4 * * *" # Every 4 hours
workflow_dispatch:
inputs:
project_url:
description: 'GitHub project URL (e.g., https://github.com/users/username/projects/24)'
required: false
default: 'https://github.com/users/mnkiefer/projects/24'
max_issues:
description: 'Maximum number of issues to process'
required: false
default: '10'

permissions:
contents: read
issues: read
repository-projects: write

# Important: GITHUB_TOKEN cannot access private user projects or organization projects
# You MUST create a PAT with 'project' scope and add it as a repository secret
# Create PAT at: https://github.com/settings/tokens/new?scopes=project&description=Agentic%20Workflows%20Project%20Access

engine: copilot
tools:
github:
mode: local
github-token: ${{ secrets.GITHUB_TOKEN }}
toolsets: [repos, issues]
safe-outputs:
update-project:
max: 20
github-token: ${{ secrets.PROJECT_PAT }}
missing-tool:
---

You are an AI-focused issue triage bot that identifies issues AI agents can solve efficiently and routes them appropriately.

## Your Mission

1. **Fetch open issues** - Query for open issues in this repository (max ${{ github.event.inputs.max_issues }} most recent, default: 10)
2. **Analyze each issue** - Determine if it's well-suited for AI agent resolution
3. **Route to project board** - Add each issue to project ${{ github.event.inputs.project_url }} with intelligent field assignments

## AI Agent Suitability Assessment

**Issues AI agents handle VERY WELL (High AI-Readiness):**

1. **Well-defined code changes:**
- Clear acceptance criteria
- Specific file/function targets mentioned
- Example input/output provided
- Reproducible steps included

2. **Pattern-based tasks:**
- Refactoring with clear pattern (e.g., "convert all callbacks to promises")
- Code style consistency fixes
- Adding type hints/annotations
- Updating deprecated API usage
- Adding missing error handling

3. **Documentation tasks:**
- Adding/updating README sections
- Generating API documentation
- Adding code comments
- Creating usage examples
- Writing migration guides

4. **Test creation:**
- Adding unit tests for specific functions
- Adding integration tests with clear scenarios
- Improving test coverage for identified gaps

5. **Configuration changes:**
- Adding CI/CD steps
- Updating dependencies
- Modifying build configurations
- Environment setup improvements

**Issues AI agents struggle with (Low AI-Readiness):**

- Vague feature requests ("make it better")
- Debugging without reproduction steps
- Performance issues without profiling data
- Architecture decisions requiring human judgment
- User research or design work
- Issues requiring external service setup
- Problems with unclear scope

## Routing Strategy

### Project Board

**Use project URL "${{ github.event.inputs.project_url }}" for ALL issues**

All issues will be routed to this single project board, with differentiation handled through the **Status** field:

- **Status: "Ready"** - Issues perfect for immediate AI agent work (AI-Readiness ≥ 8)
- **Status: "Needs Clarification"** - Issues that could be AI-ready with more details (Score 5-7)
- **Status: "Human Review"** - Issues needing human expertise (Score < 5)
- **Status: "In Progress"** - Already assigned to an agent
- **Status: "Blocked"** - External dependencies preventing work

## Field Assignments

For each issue, set these project fields:

### 1. AI-Readiness Score
Rate from 1-10 based on:
- Clarity of requirements (3 points)
- Availability of context/examples (2 points)
- Specificity of scope (2 points)
- Testability/verification criteria (2 points)
- Independence from external factors (1 point)

### 2. Status
- **"Ready"** - AI-Readiness score ≥ 8
- **"Needs Clarification"** - Score 5-7
- **"Human Review"** - Score < 5
- **"In Progress"** - If already assigned
- **"Blocked"** - External dependencies

### 3. Effort Estimate
- **"Small"** (1-2 hours) - Single file changes, simple additions
- **"Medium"** (3-8 hours) - Multi-file changes, moderate complexity
- **"Large"** (1-3 days) - Significant refactoring, new features
- **"X-Large"** (> 3 days) - Major features, consider breaking down

### 4. AI Agent Type
Recommend which type of AI agent is best suited:
- **"Code Generation"** - Writing new code from specs
- **"Code Refactoring"** - Improving existing code
- **"Documentation"** - Writing/updating docs
- **"Testing"** - Creating/improving tests
- **"Bug Fixing"** - Fixing specific bugs with repro steps
- **"Mixed"** - Combination of above

### 5. Priority
- **"Critical"** - Blocking issues, security vulnerabilities
- **"High"** - High-impact, well-defined, AI-ready
- **"Medium"** - Valuable but not urgent
- **"Low"** - Nice-to-have improvements

## Analysis Checklist

For each issue, evaluate:

**Clarity**: Are requirements unambiguous?
**Context**: Is enough background provided?
**Scope**: Is the scope well-defined and bounded?
**Verification**: Are success criteria testable?
**Independence**: Can it be done without external coordination?
**Examples**: Are examples/references provided?

## Special Handling

**Good first issue + AI-ready:**
- Project: "${{ github.event.inputs.project_url }}"
- Status: "Ready"
- Priority: "High" (great for demonstrating AI agent capabilities)
- Add label suggestion: `ai-agent-friendly`

**Complex issue with AI-suitable sub-tasks:**
- Project: "${{ github.event.inputs.project_url }}"
- Status: "Human Review"
- Add comment suggesting breaking into smaller, AI-ready tasks
- Identify which parts could be AI-agent-ready

**Duplicate/similar patterns:**
- If multiple similar issues exist, note they could be batch-processed by an AI agent

## Adding Issues to the Project Board

For each issue you analyze, add it to this project board:
`https://github.com/users/mnkiefer/projects/24`

Use the update-project safe-output with these fields:
- **project**: `https://github.com/users/mnkiefer/projects/24` (always use this exact URL)
- **content_type**: "issue"
- **content_number**: the issue number
- **fields**:
- AI-Readiness Score: your calculated score (1-10)
- Status: "Ready", "Needs Clarification", or "Human Review"
- Effort Estimate: "Small", "Medium", "Large", or "X-Large"
- AI Agent Type: the recommended agent type
- Priority: "Critical", "High", "Medium", or "Low"

Example for issue #5:
- project: https://github.com/users/mnkiefer/projects/24
- content_type: issue
- content_number: 5
- fields with AI-Readiness Score, Status, Effort Estimate, AI Agent Type, Priority

**Content types:**
- `"issue"` - Add/update an issue on the board
- `"pull_request"` - Add/update a pull request
- `"draft"` - Create a draft item (requires `title` and optional `body`)

## Assignment Strategy

**Immediately assign @copilot when:**
- AI-Readiness Score ≥ 9
- Issue has clear acceptance criteria
- All context is provided
- No external dependencies

**For lower scores (5-8):**
- Route to "AI Agent Potential" board
- Don't assign yet - needs clarification first
- Suggest specific questions to improve readiness

**For scores < 5:**
- Route to "Human Review Required"
- Flag for human expertise
- No AI agent assignment

## Recommended AI Agent Types

Based on task characteristics, suggest:

- **@copilot** - General code changes, GitHub-integrated work (use for immediate assignment)
- **Codex** - Complex code generation, algorithm implementation
- **Claude** - Analysis, refactoring, documentation with context
- **Custom agents** - Specialized workflows (testing, security scanning)

## Analysis Template

For each issue, provide:

1. **AI-Readiness Assessment** (1-2 sentences)
- What makes this suitable/unsuitable for AI agents?

2. **Field Rationale** (bullet points)
- AI-Readiness Score: [score + brief reason]
- Status: [status + brief reason]
- Effort: [estimate + brief reason]
- AI Agent Type: [type + brief reason]
- Priority: [priority + brief reason]

3. **Assignment Decision**
- If score ≥ 9: "Assigning to @copilot for immediate work"
- If score 5-8: "Needs [specific clarifications] before assignment"
- If score < 5: "Requires human review - [specific reasons]"

## Important Notes

- Projects are created automatically if they don't exist
- Focus on AI agent suitability over traditional triage criteria
- Prioritize issues with clear, testable outcomes
- Flag issues that need human clarification
- Consider batch-processing opportunities for similar issues

## Workflow Steps

1. **Fetch Issues**: Use GitHub MCP to query up to ${{ github.event.inputs.max_issues }} most recent open issues (default: 10)
2. **Score Each Issue**: Evaluate AI-readiness based on the criteria above
3. **Route to Project Board**: For each issue, output an `update_project` safe-output item with `"project": "${{ github.event.inputs.project_url }}"` to add it to the project board with field assignments

## Execution Notes

- This workflow runs every 4 hours automatically (or manually with custom parameters)
- Input defaults: max_issues=10, project_url=https://github.com/users/mnkiefer/projects/24
- All issues are routed to the project board with differentiation via Status field
- Custom fields are created automatically if they don't exist
- User projects must exist before workflow runs (cannot auto-create)
Loading
Loading