Summary
ai-moderator.md is marked private: true, so it cannot be installed into other repositories via gh aw add. It would be valuable as a shareable workflow — it is one of the more compelling demonstrations of what an agentic workflow can do, and it is currently only usable by copying the file by hand (which loses the source: provenance field and therefore gh aw update support).
Current behaviour
$ gh aw add github/gh-aw/ai-moderator
✗ workflow 'github/gh-aw/.github/workflows/ai-moderator.md@main' is private and cannot be added to other repositories
This is working as designed — the guard lives in pkg/cli/add_workflow_resolution.go:
if ExtractWorkflowPrivate(content) {
return nil, fmt.Errorf("workflow '%s' is private and cannot be added to other repositories", spec.String())
}
and .github/workflows/ai-moderator.md sets private: true on line 2.
Motivation
I would like to contribute an AI Moderator entry to actions/starter-workflows (see actions/starter-workflows#3402) so that people setting up a new repository can adopt it in one click.
The only way to do that today is to copy the markdown into the starter-workflows repo and strip private: true. That is undesirable because:
- It routes around an explicit "do not share this" signal from the workflow's authors.
- The copy has no
source: field, so consumers cannot run gh aw update to pick up fixes.
- The two definitions will silently drift as this repo's version evolves.
A first-class shareable version solves all three.
Proposal
Publish a shareable variant of the AI Moderator workflow, following the pattern already used by the ~60 non-private workflows in .github/workflows/ (e.g. auto-triage-issues.md, ci-doctor.md, breaking-change-checker.md).
Concretely, one of:
- Option A — drop
private: true from ai-moderator.md, if nothing in it is actually specific to this repository.
- Option B — add a generic sibling (e.g.
ai-moderator-shared.md) with repo-specific configuration removed, and keep the private one as this repo's own instance.
Option B is likely safer if the current workflow encodes any gh-aw-specific labels, paths, or repository assumptions.
Acceptance criteria
Notes
Happy to do the work if you would rather take a PR than an issue — I mainly want to confirm the private: true was intentional for this workflow before proposing any change to it.
Summary
ai-moderator.mdis markedprivate: true, so it cannot be installed into other repositories viagh aw add. It would be valuable as a shareable workflow — it is one of the more compelling demonstrations of what an agentic workflow can do, and it is currently only usable by copying the file by hand (which loses thesource:provenance field and thereforegh aw updatesupport).Current behaviour
This is working as designed — the guard lives in
pkg/cli/add_workflow_resolution.go:and
.github/workflows/ai-moderator.mdsetsprivate: trueon line 2.Motivation
I would like to contribute an AI Moderator entry to
actions/starter-workflows(see actions/starter-workflows#3402) so that people setting up a new repository can adopt it in one click.The only way to do that today is to copy the markdown into the starter-workflows repo and strip
private: true. That is undesirable because:source:field, so consumers cannot rungh aw updateto pick up fixes.A first-class shareable version solves all three.
Proposal
Publish a shareable variant of the AI Moderator workflow, following the pattern already used by the ~60 non-private workflows in
.github/workflows/(e.g.auto-triage-issues.md,ci-doctor.md,breaking-change-checker.md).Concretely, one of:
private: truefromai-moderator.md, if nothing in it is actually specific to this repository.ai-moderator-shared.md) with repo-specific configuration removed, and keep the private one as this repo's own instance.Option B is likely safer if the current workflow encodes any gh-aw-specific labels, paths, or repository assumptions.
Acceptance criteria
gh aw add github/gh-aw/<name>succeeds from an unrelated repository.gh aw compile.source:field sogh aw updateworks.Notes
Happy to do the work if you would rather take a PR than an issue — I mainly want to confirm the
private: truewas intentional for this workflow before proposing any change to it.