Skip to content

feat(cli): add campaign management cmds, specs, and examples - #6082

Merged
mnkiefer merged 31 commits into
mainfrom
campaign-design
Dec 11, 2025
Merged

feat(cli): add campaign management cmds, specs, and examples#6082
mnkiefer merged 31 commits into
mainfrom
campaign-design

Conversation

@mnkiefer

@mnkiefermnkiefer commented Dec 11, 2025

Copy link
Copy Markdown
Collaborator

First-class Campaigns for Enterprises

Adds first‑class campaigns to gh-aw so enterprises can describe initiatives in specs (owners, risk, governance, metrics) while reusing existing workflows.

Campaign specs (*.campaign.md)

  • Treat each campaign as a first‑class object defined in Markdown with YAML frontmatter, with:
    • id, name, description
    • workflows (one or many workflow IDs)
    • owners, executive_sponsors, risk_level, state, tags
    • tracker_label, memory_paths, metrics_glob
    • allowed_safe_outputs, approval_policy
  • Support:
    • Single‑workflow campaigns like incident-response and security-compliance
    • A multi‑workflow campaignorg-modernization that coordinates:
      • org-wide-rollout (rollout coordinator)
      • human-ai-collaboration (human‑in‑loop approvals)
      • intelligence (reporting / trend analysis)

gh aw campaign CLI

  • gh aw campaign / gh aw campaign --json
    List all campaigns defined in campaigns/*.campaign.md.
  • gh aw campaign status / --json
    Show compiled workflow state and basic issue/PR metrics grouped by tracker_label.
  • gh aw campaign validate
    Validate specs (supports JSON output and non‑strict reporting).
  • gh aw campaign new <id>
    Scaffold a new campaign spec file under campaigns/<id>.campaign.md.

Docs & examples

  • Updates docs/src/content/docs/guides/campaigns.md to:
    • Explain how campaigns add ownership, governance, and reporting on top of existing workflows and repo‑memory.
    • Show both single‑workflow and multi‑workflow campaign spec examples.

@mnkiefermnkiefer changed the title chore: add example campaign for issue cleanup[WIP] chore: add example campaign for issue cleanupDec 11, 2025
@mnkiefer
mnkiefer marked this pull request as draft December 11, 2025 01:57
@mnkiefermnkiefer changed the title [WIP] chore: add example campaign for issue cleanup[WIP] chore: add campaign for issue cleanupDec 11, 2025
@mnkiefermnkiefer changed the title [WIP] chore: add campaign for issue cleanup[WIP] chore: refine campaigns and add example for issue cleanupDec 11, 2025
@pelikhan

Copy link
Copy Markdown
Collaborator

Best to avoid the "example-" pattern, instead we want to have campaign that are actually useful to gh-aw. We have lots of issues, it's triage them through campaigns. Examples rot, useful tools
florish.

@mnkiefermnkiefer changed the title [WIP] chore: refine campaigns and add example for issue cleanup[WIP] chore: refine campaigns and add enterprise onesDec 11, 2025
@mnkiefermnkiefer changed the title [WIP] chore: refine campaigns and add enterprise ones[WIP] feat: refine campaigns and add enterprise onesDec 11, 2025
@mnkiefermnkiefer self-assigned this Dec 11, 2025
@mnkiefermnkiefer changed the title [WIP] feat: refine campaigns and add enterprise onesfeat(cli): add campaign management commands and specsDec 11, 2025
@mnkiefermnkiefer changed the title feat(cli): add campaign management commands and specsfeat(cli): add campaign management commands, specs and examplesDec 11, 2025
@mnkiefermnkiefer changed the title feat(cli): add campaign management commands, specs and examplesfeat(cli): add campaign management cmds, specs, and examplesDec 11, 2025
@mnkiefer
mnkiefer marked this pull request as ready for review December 11, 2025 09:21
@pelikhan

Copy link
Copy Markdown
Collaborator

The campaign should probably be a markdown file itself so that we can infuse agentic level behavior.

@mnkiefer

Copy link
Copy Markdown
CollaboratorAuthor

@pelikhan: This is what I'm envisioning for (enterprise) campaigns. Let me know what you think! 🙏🏼

@pelikhanpelikhan left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@copilot

  • move campaign code to pkg/campaign package
  • split campaign.go to small files
  • add extensive tests

Comment threadpkg/cli/campaigns.go Outdated
Comment threadpkg/cli/campaigns.go Outdated

CopilotAI commented Dec 11, 2025

Copy link
Copy Markdown
Contributor

@pelikhan I've opened a new pull request, #6136, to work on those changes. Once the pull request is ready, I'll request review from you.

@pelikhan

Copy link
Copy Markdown
Collaborator

Use -, not _ in yaml names

@pelikhan

Copy link
Copy Markdown
Collaborator

Mark as "experimental" so that you can break/iterate

@mnkiefer
mnkiefer merged commit 30183c1 into mainDec 11, 2025
10 of 12 checks passed
@mnkiefer
mnkiefer deleted the campaign-design branch December 11, 2025 17:20
Sign up for freeto 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

@mnkiefer@pelikhan